@fiduswriter/document 0.1.0-alpha.3 → 0.1.0-alpha.5
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/README.md +22 -1
- package/dist/bibliography/common.d.ts +10 -0
- package/dist/bibliography/common.d.ts.map +1 -0
- package/dist/bibliography/common.js +86 -0
- package/dist/bibliography/common.js.map +1 -0
- package/dist/bibliography/csl_bib.d.ts +3 -0
- package/dist/bibliography/csl_bib.d.ts.map +1 -0
- package/dist/bibliography/csl_bib.js +131 -0
- package/dist/bibliography/csl_bib.js.map +1 -0
- package/dist/citations/citeproc_sys.d.ts +12 -0
- package/dist/citations/citeproc_sys.d.ts.map +1 -0
- package/dist/citations/citeproc_sys.js +48 -0
- package/dist/citations/citeproc_sys.js.map +1 -0
- package/dist/citations/format.d.ts +40 -0
- package/dist/citations/format.d.ts.map +1 -0
- package/dist/citations/format.js +186 -0
- package/dist/citations/format.js.map +1 -0
- package/dist/editor/e2ee/encryptor.d.ts +123 -0
- package/dist/editor/e2ee/encryptor.d.ts.map +1 -0
- package/dist/editor/e2ee/encryptor.js +201 -0
- package/dist/editor/e2ee/encryptor.js.map +1 -0
- package/dist/exporter/docx/citations.d.ts +31 -0
- package/dist/exporter/docx/citations.d.ts.map +1 -0
- package/dist/exporter/docx/citations.js +171 -0
- package/dist/exporter/docx/citations.js.map +1 -0
- package/dist/exporter/docx/comments.d.ts +22 -0
- package/dist/exporter/docx/comments.d.ts.map +1 -0
- package/dist/exporter/docx/comments.js +170 -0
- package/dist/exporter/docx/comments.js.map +1 -0
- package/dist/exporter/docx/footnotes.d.ts +47 -0
- package/dist/exporter/docx/footnotes.d.ts.map +1 -0
- package/dist/exporter/docx/footnotes.js +216 -0
- package/dist/exporter/docx/footnotes.js.map +1 -0
- package/dist/exporter/docx/images.d.ts +25 -0
- package/dist/exporter/docx/images.d.ts.map +1 -0
- package/dist/exporter/docx/images.js +101 -0
- package/dist/exporter/docx/images.js.map +1 -0
- package/dist/exporter/docx/index.d.ts +16 -0
- package/dist/exporter/docx/index.d.ts.map +1 -0
- package/dist/exporter/docx/index.js +115 -0
- package/dist/exporter/docx/index.js.map +1 -0
- package/dist/exporter/docx/lists.d.ts +38 -0
- package/dist/exporter/docx/lists.d.ts.map +1 -0
- package/dist/exporter/docx/lists.js +276 -0
- package/dist/exporter/docx/lists.js.map +1 -0
- package/dist/exporter/docx/math.d.ts +13 -0
- package/dist/exporter/docx/math.d.ts.map +1 -0
- package/dist/exporter/docx/math.js +59 -0
- package/dist/exporter/docx/math.js.map +1 -0
- package/dist/exporter/docx/metadata.d.ts +17 -0
- package/dist/exporter/docx/metadata.d.ts.map +1 -0
- package/dist/exporter/docx/metadata.js +272 -0
- package/dist/exporter/docx/metadata.js.map +1 -0
- package/dist/exporter/docx/rels.d.ts +27 -0
- package/dist/exporter/docx/rels.d.ts.map +1 -0
- package/dist/exporter/docx/rels.js +183 -0
- package/dist/exporter/docx/rels.js.map +1 -0
- package/dist/exporter/docx/render.d.ts +22 -0
- package/dist/exporter/docx/render.d.ts.map +1 -0
- package/dist/exporter/docx/render.js +780 -0
- package/dist/exporter/docx/render.js.map +1 -0
- package/dist/exporter/docx/richtext.d.ts +25 -0
- package/dist/exporter/docx/richtext.d.ts.map +1 -0
- package/dist/exporter/docx/richtext.js +1070 -0
- package/dist/exporter/docx/richtext.js.map +1 -0
- package/dist/exporter/docx/tables.d.ts +16 -0
- package/dist/exporter/docx/tables.d.ts.map +1 -0
- package/dist/exporter/docx/tables.js +115 -0
- package/dist/exporter/docx/tables.js.map +1 -0
- package/dist/exporter/docx/tools.d.ts +4 -0
- package/dist/exporter/docx/tools.d.ts.map +1 -0
- package/dist/exporter/docx/tools.js +48 -0
- package/dist/exporter/docx/tools.js.map +1 -0
- package/dist/exporter/epub/index.d.ts +19 -0
- package/dist/exporter/epub/index.d.ts.map +1 -0
- package/dist/exporter/epub/index.js +109 -0
- package/dist/exporter/epub/index.js.map +1 -0
- package/dist/exporter/epub/templates.d.ts +63 -0
- package/dist/exporter/epub/templates.d.ts.map +1 -0
- package/dist/exporter/epub/templates.js +95 -0
- package/dist/exporter/epub/templates.js.map +1 -0
- package/dist/exporter/epub/tools.d.ts +13 -0
- package/dist/exporter/epub/tools.d.ts.map +1 -0
- package/{src → dist}/exporter/epub/tools.js +32 -46
- package/dist/exporter/epub/tools.js.map +1 -0
- package/dist/exporter/html/citations.d.ts +29 -0
- package/dist/exporter/html/citations.d.ts.map +1 -0
- package/dist/exporter/html/citations.js +110 -0
- package/dist/exporter/html/citations.js.map +1 -0
- package/dist/exporter/html/convert.d.ts +50 -0
- package/dist/exporter/html/convert.d.ts.map +1 -0
- package/dist/exporter/html/convert.js +750 -0
- package/dist/exporter/html/convert.js.map +1 -0
- package/dist/exporter/html/index.d.ts +64 -0
- package/dist/exporter/html/index.d.ts.map +1 -0
- package/dist/exporter/html/index.js +154 -0
- package/dist/exporter/html/index.js.map +1 -0
- package/dist/exporter/html/templates.d.ts +24 -0
- package/dist/exporter/html/templates.d.ts.map +1 -0
- package/dist/exporter/html/templates.js +21 -0
- package/dist/exporter/html/templates.js.map +1 -0
- package/dist/exporter/html/tools.d.ts +2 -0
- package/dist/exporter/html/tools.d.ts.map +1 -0
- package/dist/exporter/html/tools.js +49 -0
- package/dist/exporter/html/tools.js.map +1 -0
- package/dist/exporter/jats/bibliography.d.ts +3 -0
- package/dist/exporter/jats/bibliography.d.ts.map +1 -0
- package/dist/exporter/jats/bibliography.js +158 -0
- package/dist/exporter/jats/bibliography.js.map +1 -0
- package/dist/exporter/jats/citations.d.ts +16 -0
- package/dist/exporter/jats/citations.d.ts.map +1 -0
- package/dist/exporter/jats/citations.js +105 -0
- package/dist/exporter/jats/citations.js.map +1 -0
- package/dist/exporter/jats/convert.d.ts +41 -0
- package/dist/exporter/jats/convert.d.ts.map +1 -0
- package/dist/exporter/jats/convert.js +816 -0
- package/dist/exporter/jats/convert.js.map +1 -0
- package/dist/exporter/jats/index.d.ts +25 -0
- package/dist/exporter/jats/index.d.ts.map +1 -0
- package/dist/exporter/jats/index.js +82 -0
- package/dist/exporter/jats/index.js.map +1 -0
- package/dist/exporter/jats/templates.d.ts +18 -0
- package/dist/exporter/jats/templates.d.ts.map +1 -0
- package/dist/exporter/jats/templates.js +25 -0
- package/dist/exporter/jats/templates.js.map +1 -0
- package/dist/exporter/jats/text.d.ts +4 -0
- package/dist/exporter/jats/text.d.ts.map +1 -0
- package/dist/exporter/jats/text.js +72 -0
- package/dist/exporter/jats/text.js.map +1 -0
- package/dist/exporter/latex/convert.d.ts +24 -0
- package/dist/exporter/latex/convert.d.ts.map +1 -0
- package/dist/exporter/latex/convert.js +881 -0
- package/dist/exporter/latex/convert.js.map +1 -0
- package/dist/exporter/latex/escape_latex.d.ts +2 -0
- package/dist/exporter/latex/escape_latex.d.ts.map +1 -0
- package/dist/exporter/latex/escape_latex.js +20 -0
- package/dist/exporter/latex/escape_latex.js.map +1 -0
- package/dist/exporter/latex/index.d.ts +24 -0
- package/dist/exporter/latex/index.d.ts.map +1 -0
- package/dist/exporter/latex/index.js +67 -0
- package/dist/exporter/latex/index.js.map +1 -0
- package/dist/exporter/latex/readme.d.ts +2 -0
- package/dist/exporter/latex/readme.d.ts.map +1 -0
- package/dist/exporter/latex/readme.js +23 -0
- package/dist/exporter/latex/readme.js.map +1 -0
- package/dist/exporter/native/copy.d.ts +30 -0
- package/dist/exporter/native/copy.d.ts.map +1 -0
- package/dist/exporter/native/copy.js +151 -0
- package/dist/exporter/native/copy.js.map +1 -0
- package/dist/exporter/native/file.d.ts +12 -0
- package/dist/exporter/native/file.d.ts.map +1 -0
- package/dist/exporter/native/file.js +38 -0
- package/dist/exporter/native/file.js.map +1 -0
- package/dist/exporter/native/index.d.ts +5 -0
- package/dist/exporter/native/index.d.ts.map +1 -0
- package/dist/exporter/native/index.js +5 -0
- package/dist/exporter/native/index.js.map +1 -0
- package/dist/exporter/native/revision.d.ts +18 -0
- package/dist/exporter/native/revision.d.ts.map +1 -0
- package/dist/exporter/native/revision.js +39 -0
- package/dist/exporter/native/revision.js.map +1 -0
- package/dist/exporter/native/shrink.d.ts +36 -0
- package/dist/exporter/native/shrink.d.ts.map +1 -0
- package/dist/exporter/native/shrink.js +124 -0
- package/dist/exporter/native/shrink.js.map +1 -0
- package/dist/exporter/native/zip.d.ts +25 -0
- package/dist/exporter/native/zip.d.ts.map +1 -0
- package/dist/exporter/native/zip.js +56 -0
- package/dist/exporter/native/zip.js.map +1 -0
- package/dist/exporter/odt/citations.d.ts +21 -0
- package/dist/exporter/odt/citations.d.ts.map +1 -0
- package/dist/exporter/odt/citations.js +104 -0
- package/dist/exporter/odt/citations.js.map +1 -0
- package/dist/exporter/odt/footnotes.d.ts +31 -0
- package/dist/exporter/odt/footnotes.d.ts.map +1 -0
- package/dist/exporter/odt/footnotes.js +129 -0
- package/dist/exporter/odt/footnotes.js.map +1 -0
- package/dist/exporter/odt/images.d.ts +25 -0
- package/dist/exporter/odt/images.d.ts.map +1 -0
- package/dist/exporter/odt/images.js +106 -0
- package/dist/exporter/odt/images.js.map +1 -0
- package/dist/exporter/odt/index.d.ts +17 -0
- package/dist/exporter/odt/index.d.ts.map +1 -0
- package/dist/exporter/odt/index.js +108 -0
- package/dist/exporter/odt/index.js.map +1 -0
- package/dist/exporter/odt/math.d.ts +15 -0
- package/dist/exporter/odt/math.d.ts.map +1 -0
- package/dist/exporter/odt/math.js +71 -0
- package/dist/exporter/odt/math.js.map +1 -0
- package/dist/exporter/odt/metadata.d.ts +18 -0
- package/dist/exporter/odt/metadata.d.ts.map +1 -0
- package/dist/exporter/odt/metadata.js +224 -0
- package/dist/exporter/odt/metadata.js.map +1 -0
- package/dist/exporter/odt/render.d.ts +26 -0
- package/dist/exporter/odt/render.d.ts.map +1 -0
- package/dist/exporter/odt/render.js +651 -0
- package/dist/exporter/odt/render.js.map +1 -0
- package/dist/exporter/odt/richtext.d.ts +22 -0
- package/dist/exporter/odt/richtext.d.ts.map +1 -0
- package/dist/exporter/odt/richtext.js +743 -0
- package/dist/exporter/odt/richtext.js.map +1 -0
- package/dist/exporter/odt/styles.d.ts +41 -0
- package/dist/exporter/odt/styles.d.ts.map +1 -0
- package/dist/exporter/odt/styles.js +370 -0
- package/dist/exporter/odt/styles.js.map +1 -0
- package/dist/exporter/odt/track.d.ts +18 -0
- package/dist/exporter/odt/track.d.ts.map +1 -0
- package/dist/exporter/odt/track.js +66 -0
- package/dist/exporter/odt/track.js.map +1 -0
- package/dist/exporter/pandoc/citations.d.ts +23 -0
- package/dist/exporter/pandoc/citations.d.ts.map +1 -0
- package/dist/exporter/pandoc/citations.js +99 -0
- package/dist/exporter/pandoc/citations.js.map +1 -0
- package/dist/exporter/pandoc/convert.d.ts +19 -0
- package/dist/exporter/pandoc/convert.d.ts.map +1 -0
- package/dist/exporter/pandoc/convert.js +886 -0
- package/dist/exporter/pandoc/convert.js.map +1 -0
- package/dist/exporter/pandoc/index.d.ts +25 -0
- package/dist/exporter/pandoc/index.d.ts.map +1 -0
- package/dist/exporter/pandoc/index.js +79 -0
- package/dist/exporter/pandoc/index.js.map +1 -0
- package/dist/exporter/pandoc/readme.d.ts +2 -0
- package/dist/exporter/pandoc/readme.d.ts.map +1 -0
- package/dist/exporter/pandoc/readme.js +8 -0
- package/dist/exporter/pandoc/readme.js.map +1 -0
- package/dist/exporter/pandoc/tools.d.ts +22 -0
- package/dist/exporter/pandoc/tools.d.ts.map +1 -0
- package/dist/exporter/pandoc/tools.js +52 -0
- package/dist/exporter/pandoc/tools.js.map +1 -0
- package/dist/exporter/print/index.d.ts +20 -0
- package/dist/exporter/print/index.d.ts.map +1 -0
- package/dist/exporter/print/index.js +142 -0
- package/dist/exporter/print/index.js.map +1 -0
- package/dist/exporter/tools/doc_content.d.ts +6 -0
- package/dist/exporter/tools/doc_content.d.ts.map +1 -0
- package/dist/exporter/tools/doc_content.js +130 -0
- package/dist/exporter/tools/doc_content.js.map +1 -0
- package/dist/exporter/tools/file.d.ts +2 -0
- package/dist/exporter/tools/file.d.ts.map +1 -0
- package/dist/exporter/tools/file.js +10 -0
- package/dist/exporter/tools/file.js.map +1 -0
- package/dist/exporter/tools/json.d.ts +7 -0
- package/dist/exporter/tools/json.d.ts.map +1 -0
- package/dist/exporter/tools/json.js +82 -0
- package/dist/exporter/tools/json.js.map +1 -0
- package/dist/exporter/tools/svg.d.ts +8 -0
- package/dist/exporter/tools/svg.d.ts.map +1 -0
- package/dist/exporter/tools/svg.js +26 -0
- package/dist/exporter/tools/svg.js.map +1 -0
- package/dist/exporter/tools/xml.d.ts +42 -0
- package/dist/exporter/tools/xml.d.ts.map +1 -0
- package/dist/exporter/tools/xml.js +467 -0
- package/dist/exporter/tools/xml.js.map +1 -0
- package/dist/exporter/tools/xml_zip.d.ts +21 -0
- package/dist/exporter/tools/xml_zip.d.ts.map +1 -0
- package/dist/exporter/tools/xml_zip.js +92 -0
- package/dist/exporter/tools/xml_zip.js.map +1 -0
- package/dist/exporter/tools/zip.d.ts +35 -0
- package/dist/exporter/tools/zip.d.ts.map +1 -0
- package/dist/exporter/tools/zip.js +78 -0
- package/dist/exporter/tools/zip.js.map +1 -0
- package/dist/exporter/tools/zotero_csl.d.ts +23 -0
- package/dist/exporter/tools/zotero_csl.d.ts.map +1 -0
- package/dist/exporter/tools/zotero_csl.js +78 -0
- package/dist/exporter/tools/zotero_csl.js.map +1 -0
- package/dist/importer/citations.d.ts +28 -0
- package/dist/importer/citations.d.ts.map +1 -0
- package/dist/importer/citations.js +68 -0
- package/dist/importer/citations.js.map +1 -0
- package/dist/importer/docx/citations.d.ts +43 -0
- package/dist/importer/docx/citations.d.ts.map +1 -0
- package/dist/importer/docx/citations.js +81 -0
- package/dist/importer/docx/citations.js.map +1 -0
- package/dist/importer/docx/convert.d.ts +150 -0
- package/dist/importer/docx/convert.d.ts.map +1 -0
- package/dist/importer/docx/convert.js +1243 -0
- package/dist/importer/docx/convert.js.map +1 -0
- package/dist/importer/docx/helpers.d.ts +2 -0
- package/dist/importer/docx/helpers.d.ts.map +1 -0
- package/dist/importer/docx/helpers.js +10 -0
- package/dist/importer/docx/helpers.js.map +1 -0
- package/dist/importer/docx/index.d.ts +27 -0
- package/dist/importer/docx/index.d.ts.map +1 -0
- package/dist/importer/docx/index.js +77 -0
- package/dist/importer/docx/index.js.map +1 -0
- package/dist/importer/docx/omml2mathml.d.ts +6 -0
- package/dist/importer/docx/omml2mathml.d.ts.map +1 -0
- package/dist/importer/docx/omml2mathml.js +1146 -0
- package/dist/importer/docx/omml2mathml.js.map +1 -0
- package/dist/importer/docx/parse.d.ts +96 -0
- package/dist/importer/docx/parse.d.ts.map +1 -0
- package/dist/importer/docx/parse.js +681 -0
- package/dist/importer/docx/parse.js.map +1 -0
- package/dist/importer/native/extract_template.d.ts +6 -0
- package/dist/importer/native/extract_template.d.ts.map +1 -0
- package/dist/importer/native/extract_template.js +80 -0
- package/dist/importer/native/extract_template.js.map +1 -0
- package/dist/importer/native/file.d.ts +37 -0
- package/dist/importer/native/file.d.ts.map +1 -0
- package/dist/importer/native/file.js +162 -0
- package/dist/importer/native/file.js.map +1 -0
- package/dist/importer/native/get_images.d.ts +21 -0
- package/dist/importer/native/get_images.d.ts.map +1 -0
- package/dist/importer/native/get_images.js +58 -0
- package/dist/importer/native/get_images.js.map +1 -0
- package/dist/importer/native/importer.d.ts +41 -0
- package/dist/importer/native/importer.d.ts.map +1 -0
- package/dist/importer/native/importer.js +170 -0
- package/dist/importer/native/importer.js.map +1 -0
- package/dist/importer/native/index.d.ts +7 -0
- package/dist/importer/native/index.d.ts.map +1 -0
- package/dist/importer/native/index.js +7 -0
- package/dist/importer/native/index.js.map +1 -0
- package/dist/importer/native/update.d.ts +7 -0
- package/dist/importer/native/update.d.ts.map +1 -0
- package/dist/importer/native/update.js +27 -0
- package/dist/importer/native/update.js.map +1 -0
- package/dist/importer/native/update_template.d.ts +12 -0
- package/dist/importer/native/update_template.d.ts.map +1 -0
- package/dist/importer/native/update_template.js +19 -0
- package/dist/importer/native/update_template.js.map +1 -0
- package/dist/importer/odt/citations.d.ts +27 -0
- package/dist/importer/odt/citations.d.ts.map +1 -0
- package/dist/importer/odt/citations.js +57 -0
- package/dist/importer/odt/citations.js.map +1 -0
- package/dist/importer/odt/convert.d.ts +146 -0
- package/dist/importer/odt/convert.d.ts.map +1 -0
- package/dist/importer/odt/convert.js +1530 -0
- package/dist/importer/odt/convert.js.map +1 -0
- package/dist/importer/odt/index.d.ts +30 -0
- package/dist/importer/odt/index.d.ts.map +1 -0
- package/dist/importer/odt/index.js +124 -0
- package/dist/importer/odt/index.js.map +1 -0
- package/dist/importer/pandoc/convert.d.ts +32 -0
- package/dist/importer/pandoc/convert.d.ts.map +1 -0
- package/dist/importer/pandoc/convert.js +790 -0
- package/dist/importer/pandoc/convert.js.map +1 -0
- package/dist/importer/pandoc/helpers.d.ts +5 -0
- package/dist/importer/pandoc/helpers.d.ts.map +1 -0
- package/dist/importer/pandoc/helpers.js +73 -0
- package/dist/importer/pandoc/helpers.js.map +1 -0
- package/dist/importer/pandoc/index.d.ts +31 -0
- package/dist/importer/pandoc/index.d.ts.map +1 -0
- package/dist/importer/pandoc/index.js +114 -0
- package/dist/importer/pandoc/index.js.map +1 -0
- package/dist/importer/registry.d.ts +21 -0
- package/dist/importer/registry.d.ts.map +1 -0
- package/dist/importer/registry.js +41 -0
- package/dist/importer/registry.js.map +1 -0
- package/dist/importer/zip_analyzer.d.ts +31 -0
- package/dist/importer/zip_analyzer.d.ts.map +1 -0
- package/dist/importer/zip_analyzer.js +89 -0
- package/dist/importer/zip_analyzer.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/mathlive/opf_includes.d.ts +2 -0
- package/dist/mathlive/opf_includes.d.ts.map +1 -0
- package/dist/mathlive/opf_includes.js +25 -0
- package/dist/mathlive/opf_includes.js.map +1 -0
- package/dist/schema/common/annotate.d.ts +47 -0
- package/dist/schema/common/annotate.d.ts.map +1 -0
- package/dist/schema/common/annotate.js +75 -0
- package/dist/schema/common/annotate.js.map +1 -0
- package/dist/schema/common/base.d.ts +91 -0
- package/dist/schema/common/base.d.ts.map +1 -0
- package/dist/schema/common/base.js +109 -0
- package/dist/schema/common/base.js.map +1 -0
- package/dist/schema/common/citation.d.ts +30 -0
- package/dist/schema/common/citation.d.ts.map +1 -0
- package/dist/schema/common/citation.js +61 -0
- package/dist/schema/common/citation.js.map +1 -0
- package/dist/schema/common/equation.d.ts +17 -0
- package/dist/schema/common/equation.d.ts.map +1 -0
- package/dist/schema/common/equation.js +32 -0
- package/dist/schema/common/equation.js.map +1 -0
- package/dist/schema/common/figure.d.ts +87 -0
- package/dist/schema/common/figure.d.ts.map +1 -0
- package/dist/schema/common/figure.js +178 -0
- package/dist/schema/common/figure.js.map +1 -0
- package/dist/schema/common/heading.d.ts +9 -0
- package/dist/schema/common/heading.d.ts.map +1 -0
- package/dist/schema/common/heading.js +41 -0
- package/dist/schema/common/heading.js.map +1 -0
- package/dist/schema/common/index.d.ts +11 -0
- package/dist/schema/common/index.d.ts.map +1 -0
- package/dist/schema/common/index.js +11 -0
- package/dist/schema/common/index.js.map +1 -0
- package/dist/schema/common/list.d.ts +63 -0
- package/dist/schema/common/list.d.ts.map +1 -0
- package/dist/schema/common/list.js +92 -0
- package/dist/schema/common/list.js.map +1 -0
- package/dist/schema/common/reference.d.ts +70 -0
- package/dist/schema/common/reference.d.ts.map +1 -0
- package/dist/schema/common/reference.js +97 -0
- package/dist/schema/common/reference.js.map +1 -0
- package/dist/schema/common/table.d.ts +76 -0
- package/dist/schema/common/table.d.ts.map +1 -0
- package/dist/schema/common/table.js +86 -0
- package/dist/schema/common/table.js.map +1 -0
- package/dist/schema/common/track.d.ts +117 -0
- package/dist/schema/common/track.d.ts.map +1 -0
- package/{src → dist}/schema/common/track.js +44 -49
- package/dist/schema/common/track.js.map +1 -0
- package/dist/schema/const.d.ts +3 -0
- package/dist/schema/const.d.ts.map +1 -0
- package/{src → dist}/schema/const.js +3 -3
- package/dist/schema/const.js.map +1 -0
- package/dist/schema/convert.d.ts +3 -0
- package/dist/schema/convert.d.ts.map +1 -0
- package/dist/schema/convert.js +1215 -0
- package/dist/schema/convert.js.map +1 -0
- package/dist/schema/document/content.d.ts +110 -0
- package/dist/schema/document/content.d.ts.map +1 -0
- package/dist/schema/document/content.js +177 -0
- package/dist/schema/document/content.js.map +1 -0
- package/dist/schema/document/index.d.ts +795 -0
- package/dist/schema/document/index.d.ts.map +1 -0
- package/dist/schema/document/index.js +68 -0
- package/dist/schema/document/index.js.map +1 -0
- package/dist/schema/document/structure.d.ts +164 -0
- package/dist/schema/document/structure.d.ts.map +1 -0
- package/dist/schema/document/structure.js +445 -0
- package/dist/schema/document/structure.js.map +1 -0
- package/dist/schema/export.d.ts +7 -0
- package/dist/schema/export.d.ts.map +1 -0
- package/dist/schema/export.js +17 -0
- package/dist/schema/export.js.map +1 -0
- package/dist/schema/footnotes.d.ts +454 -0
- package/dist/schema/footnotes.d.ts.map +1 -0
- package/dist/schema/footnotes.js +90 -0
- package/dist/schema/footnotes.js.map +1 -0
- package/dist/schema/footnotes_convert.d.ts +5 -0
- package/dist/schema/footnotes_convert.d.ts.map +1 -0
- package/dist/schema/footnotes_convert.js +30 -0
- package/dist/schema/footnotes_convert.js.map +1 -0
- package/dist/schema/i18n.d.ts +55 -0
- package/dist/schema/i18n.d.ts.map +1 -0
- package/{src → dist}/schema/i18n.js +14 -23
- package/dist/schema/i18n.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +6 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/mini_json.d.ts +4 -0
- package/dist/schema/mini_json.d.ts.map +1 -0
- package/{src → dist}/schema/mini_json.js +19 -28
- package/dist/schema/mini_json.js.map +1 -0
- package/dist/schema/text.d.ts +3 -0
- package/dist/schema/text.d.ts.map +1 -0
- package/dist/schema/text.js +23 -0
- package/dist/schema/text.js.map +1 -0
- package/dist/types.d.ts +281 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +51 -16
- package/scripts/export-schema.js +1 -1
- package/src/bibliography/{common.js → common.ts} +15 -12
- package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
- package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
- package/src/citations/{format.js → format.ts} +80 -24
- package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
- package/src/exporter/docx/{citations.js → citations.ts} +51 -23
- package/src/exporter/docx/{comments.js → comments.ts} +69 -26
- package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
- package/src/exporter/docx/images.ts +128 -0
- package/src/exporter/docx/{index.js → index.ts} +48 -25
- package/src/exporter/docx/{lists.js → lists.ts} +89 -46
- package/src/exporter/docx/{math.js → math.ts} +29 -9
- package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
- package/src/exporter/docx/{rels.js → rels.ts} +71 -50
- package/src/exporter/docx/{render.js → render.ts} +124 -87
- package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
- package/src/exporter/docx/{tables.js → tables.ts} +33 -23
- package/src/exporter/docx/{tools.js → tools.ts} +4 -3
- package/src/exporter/epub/{index.js → index.ts} +44 -15
- package/src/exporter/epub/{templates.js → templates.ts} +71 -7
- package/src/exporter/epub/tools.ts +102 -0
- package/src/exporter/html/{citations.js → citations.ts} +79 -31
- package/src/exporter/html/{convert.js → convert.ts} +118 -71
- package/src/exporter/html/{index.js → index.ts} +63 -29
- package/src/exporter/html/{templates.js → templates.ts} +22 -2
- package/src/exporter/html/{tools.js → tools.ts} +9 -6
- package/src/exporter/jats/bibliography.ts +199 -0
- package/src/exporter/jats/{citations.js → citations.ts} +56 -20
- package/src/exporter/jats/{convert.js → convert.ts} +72 -53
- package/src/exporter/jats/index.ts +132 -0
- package/src/exporter/jats/{templates.js → templates.ts} +19 -3
- package/src/exporter/jats/{text.js → text.ts} +8 -6
- package/src/exporter/latex/{convert.js → convert.ts} +160 -125
- package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
- package/src/exporter/latex/{index.js → index.ts} +27 -12
- package/src/exporter/latex/{readme.js → readme.ts} +2 -2
- package/src/exporter/native/copy.ts +231 -0
- package/src/exporter/native/file.ts +65 -0
- package/src/exporter/native/index.ts +4 -0
- package/src/exporter/native/revision.ts +76 -0
- package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
- package/src/exporter/native/zip.ts +85 -0
- package/src/exporter/odt/{citations.js → citations.ts} +35 -15
- package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
- package/src/exporter/odt/images.ts +135 -0
- package/src/exporter/odt/{index.js → index.ts} +49 -27
- package/src/exporter/odt/{math.js → math.ts} +38 -9
- package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
- package/src/exporter/odt/{render.js → render.ts} +89 -60
- package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
- package/src/exporter/odt/{styles.js → styles.ts} +98 -66
- package/src/exporter/odt/{track.js → track.ts} +22 -6
- package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
- package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
- package/src/exporter/pandoc/{index.js → index.ts} +36 -13
- package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
- package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
- package/src/exporter/print/{index.js → index.ts} +38 -19
- package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
- package/src/exporter/tools/{file.js → file.ts} +1 -1
- package/src/exporter/tools/{json.js → json.ts} +30 -19
- package/src/exporter/tools/{svg.js → svg.ts} +9 -3
- package/src/exporter/tools/{xml.js → xml.ts} +187 -138
- package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
- package/src/exporter/tools/{zip.js → zip.ts} +35 -11
- package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
- package/src/global.d.ts +13 -0
- package/src/importer/citations.ts +116 -0
- package/src/importer/docx/{citations.js → citations.ts} +22 -37
- package/src/importer/docx/{convert.js → convert.ts} +176 -141
- package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
- package/src/importer/docx/index.ts +124 -0
- package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
- package/src/importer/docx/{parse.js → parse.ts} +103 -81
- package/src/importer/native/extract_template.ts +83 -0
- package/src/importer/native/file.ts +282 -0
- package/src/importer/native/get_images.ts +82 -0
- package/src/importer/native/importer.ts +244 -0
- package/src/importer/native/index.ts +6 -0
- package/src/importer/native/{update.js → update.ts} +13 -5
- package/src/importer/native/update_template.ts +32 -0
- package/src/importer/odt/{citations.js → citations.ts} +17 -29
- package/src/importer/odt/{convert.js → convert.ts} +261 -237
- package/src/importer/odt/index.ts +202 -0
- package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
- package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
- package/src/importer/pandoc/index.ts +171 -0
- package/src/importer/registry.ts +69 -0
- package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
- package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
- package/src/modules.d.ts +40 -0
- package/src/schema/common/{annotate.js → annotate.ts} +10 -8
- package/src/schema/common/{base.js → base.ts} +12 -10
- package/src/schema/common/{citation.js → citation.ts} +17 -8
- package/src/schema/common/{equation.js → equation.ts} +6 -4
- package/src/schema/common/{figure.js → figure.ts} +43 -23
- package/src/schema/common/{heading.js → heading.ts} +7 -5
- package/src/schema/common/{list.js → list.ts} +15 -13
- package/src/schema/common/{reference.js → reference.ts} +14 -12
- package/src/schema/common/{table.js → table.ts} +16 -14
- package/src/schema/common/track.ts +201 -0
- package/src/schema/const.ts +58 -0
- package/src/schema/{convert.js → convert.ts} +6 -2
- package/src/schema/document/{content.js → content.ts} +22 -20
- package/src/schema/document/{structure.js → structure.ts} +15 -9
- package/src/schema/{export.js → export.ts} +4 -2
- package/src/schema/{footnotes.js → footnotes.ts} +11 -8
- package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
- package/src/schema/i18n.ts +601 -0
- package/src/schema/mini_json.ts +60 -0
- package/src/schema/{text.js → text.ts} +6 -2
- package/src/types.ts +314 -0
- package/jest.config.js +0 -24
- package/src/exporter/docx/images.js +0 -101
- package/src/exporter/jats/bibliography.js +0 -183
- package/src/exporter/jats/index.js +0 -92
- package/src/exporter/odt/images.js +0 -115
- package/src/importer/citations.js +0 -129
- package/src/importer/native/get_images.js +0 -76
- /package/src/{index.js → index.ts} +0 -0
- /package/src/schema/common/{index.js → index.ts} +0 -0
- /package/src/schema/document/{index.js → index.ts} +0 -0
- /package/src/schema/{index.js → index.ts} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {MathMLToLaTeX} from "mathml-to-latex"
|
|
2
2
|
import {xmlDOM} from "../../exporter/tools/xml.js"
|
|
3
|
+
import type {XMLElement} from "../../exporter/tools/xml.js"
|
|
3
4
|
import {
|
|
4
5
|
randomCommentId,
|
|
5
6
|
randomFigureId,
|
|
@@ -16,9 +17,36 @@ import {
|
|
|
16
17
|
import {normalizeText} from "./helpers.js"
|
|
17
18
|
import {omml2mathml} from "./omml2mathml.js"
|
|
18
19
|
import {DocxParser} from "./parse.js"
|
|
20
|
+
import {gettext} from "fwtoolkit"
|
|
21
|
+
import type {BibDB, FidusDoc, FidusNode, ImageDBEntry} from "../../types.js"
|
|
22
|
+
|
|
23
|
+
function attr(node: unknown, name: string): string {
|
|
24
|
+
if (node && typeof node === "object" && "getAttribute" in node) {
|
|
25
|
+
return String((node as XMLElement).getAttribute(name) || "")
|
|
26
|
+
}
|
|
27
|
+
return ""
|
|
28
|
+
}
|
|
19
29
|
|
|
20
30
|
export class DocxConvert {
|
|
21
|
-
|
|
31
|
+
zip: any
|
|
32
|
+
importId: string
|
|
33
|
+
template: {content: FidusDoc}
|
|
34
|
+
bibliography: Record<string, any>
|
|
35
|
+
images: Record<number, ImageDBEntry>
|
|
36
|
+
parser: DocxParser
|
|
37
|
+
tracks: Record<string, any>
|
|
38
|
+
currentTracks: any[]
|
|
39
|
+
currentFields: any[]
|
|
40
|
+
currentCommentIds: string[]
|
|
41
|
+
sourcesXml: string | null
|
|
42
|
+
referenceTargets: Record<string, {id: string; type: string; text?: string}>
|
|
43
|
+
|
|
44
|
+
constructor(
|
|
45
|
+
zip: any,
|
|
46
|
+
importId: string,
|
|
47
|
+
template: {content: FidusDoc},
|
|
48
|
+
bibliography: Record<string, any>
|
|
49
|
+
) {
|
|
22
50
|
this.zip = zip
|
|
23
51
|
this.importId = importId
|
|
24
52
|
this.template = template
|
|
@@ -30,16 +58,21 @@ export class DocxConvert {
|
|
|
30
58
|
this.currentFields = []
|
|
31
59
|
this.currentCommentIds = []
|
|
32
60
|
this.sourcesXml = null
|
|
61
|
+
this.referenceTargets = {}
|
|
33
62
|
}
|
|
34
63
|
|
|
35
|
-
async init() {
|
|
64
|
+
async init(): Promise<{
|
|
65
|
+
content: FidusDoc
|
|
66
|
+
settings: Record<string, any>
|
|
67
|
+
comments: Record<string, any>
|
|
68
|
+
}> {
|
|
36
69
|
await this.parser.init()
|
|
37
70
|
// Load Word-native bibliography sources if present.
|
|
38
71
|
// This file is required by DocxCitationsParser for CITATION field codes.
|
|
39
72
|
this.sourcesXml =
|
|
40
73
|
(await this.zip.file("customXml/item1.xml")?.async("string")) ??
|
|
41
74
|
null
|
|
42
|
-
const body = this.parser.document
|
|
75
|
+
const body = this.parser.document!.query("w:body")
|
|
43
76
|
if (!body) {
|
|
44
77
|
return {
|
|
45
78
|
content: {
|
|
@@ -55,7 +88,7 @@ export class DocxConvert {
|
|
|
55
88
|
}
|
|
56
89
|
}
|
|
57
90
|
// Find all reference targets in the document for cross-references
|
|
58
|
-
this.referenceTargets = this.findReferenceTargets(this.parser.document)
|
|
91
|
+
this.referenceTargets = this.findReferenceTargets(this.parser.document!)
|
|
59
92
|
|
|
60
93
|
const convertedContent = this.convertDocument(body)
|
|
61
94
|
// Convert document
|
|
@@ -63,18 +96,18 @@ export class DocxConvert {
|
|
|
63
96
|
content: convertedContent,
|
|
64
97
|
settings: {
|
|
65
98
|
import_id: this.importId,
|
|
66
|
-
tracked: this.hasTrackedChanges(this.parser.document),
|
|
67
|
-
language: this.detectLanguage(this.parser.document)
|
|
99
|
+
tracked: this.hasTrackedChanges(this.parser.document!),
|
|
100
|
+
language: this.detectLanguage(this.parser.document!)
|
|
68
101
|
},
|
|
69
102
|
comments: this.parser.comments
|
|
70
103
|
}
|
|
71
104
|
}
|
|
72
105
|
|
|
73
|
-
convertDocument(body) {
|
|
106
|
+
convertDocument(body: any): FidusDoc {
|
|
74
107
|
const templateParts = this.template.content.content.slice()
|
|
75
108
|
templateParts.shift() // Remove first element
|
|
76
109
|
|
|
77
|
-
const document = {
|
|
110
|
+
const document: any = {
|
|
78
111
|
type: "doc",
|
|
79
112
|
attrs: {
|
|
80
113
|
import_id: this.importId
|
|
@@ -89,23 +122,23 @@ export class DocxConvert {
|
|
|
89
122
|
{type: "text", text: gettext("Untitled")}
|
|
90
123
|
]
|
|
91
124
|
})
|
|
92
|
-
title.containerNodes.forEach(node => {
|
|
125
|
+
title.containerNodes.forEach((node: any) => {
|
|
93
126
|
node.parentElement.removeChild(node)
|
|
94
127
|
})
|
|
95
128
|
document.attrs.title =
|
|
96
|
-
title.content.map(node => node.textContent).join("") ||
|
|
129
|
+
title.content.map((node: any) => node.textContent).join("") ||
|
|
97
130
|
gettext("Untitled")
|
|
98
131
|
// Extract metadata sections
|
|
99
132
|
const metadata = this.extractMetadata(body)
|
|
100
|
-
metadata.forEach(({type, content}) => {
|
|
133
|
+
metadata.forEach(({type, content}: any) => {
|
|
101
134
|
const templatePart = templateParts.find(
|
|
102
|
-
part => part.attrs.metadata === type
|
|
135
|
+
(part: any) => part.attrs.metadata === type
|
|
103
136
|
)
|
|
104
|
-
const attrs = {}
|
|
105
|
-
if (templatePart.attrs.hidden) {
|
|
106
|
-
attrs.hidden = false
|
|
107
|
-
}
|
|
137
|
+
const attrs: Record<string, any> = {}
|
|
108
138
|
if (templatePart) {
|
|
139
|
+
if (templatePart.attrs?.hidden) {
|
|
140
|
+
attrs.hidden = false
|
|
141
|
+
}
|
|
109
142
|
document.content.push({
|
|
110
143
|
type: templatePart.type,
|
|
111
144
|
attrs: {
|
|
@@ -115,7 +148,7 @@ export class DocxConvert {
|
|
|
115
148
|
content: content.content
|
|
116
149
|
})
|
|
117
150
|
// Remove paragraphs from content so they are not added to body
|
|
118
|
-
content.containerNodes.forEach(node => {
|
|
151
|
+
content.containerNodes.forEach((node: any) => {
|
|
119
152
|
node.parentElement?.removeChild(node)
|
|
120
153
|
})
|
|
121
154
|
}
|
|
@@ -123,7 +156,7 @@ export class DocxConvert {
|
|
|
123
156
|
// Extract main content sections
|
|
124
157
|
const sections = this.groupContentIntoSections(body)
|
|
125
158
|
// Map sections to template parts
|
|
126
|
-
sections.forEach(section => {
|
|
159
|
+
sections.forEach((section: any) => {
|
|
127
160
|
const templatePart = this.findMatchingTemplatePart(
|
|
128
161
|
section.title,
|
|
129
162
|
templateParts
|
|
@@ -149,40 +182,38 @@ export class DocxConvert {
|
|
|
149
182
|
// Add remaining content to body section
|
|
150
183
|
const unassignedContent = sections
|
|
151
184
|
.filter(
|
|
152
|
-
section =>
|
|
185
|
+
(section: any) =>
|
|
153
186
|
!this.findMatchingTemplatePart(section.title, templateParts)
|
|
154
187
|
)
|
|
155
|
-
.flatMap(section => section.content)
|
|
188
|
+
.flatMap((section: any) => section.content)
|
|
156
189
|
|
|
157
190
|
if (unassignedContent.length) {
|
|
158
191
|
const bodyTemplatePart = templateParts.find(
|
|
159
|
-
part => !part.attrs.metadata && part.type === "richtext_part"
|
|
192
|
+
(part: any) => !part.attrs.metadata && part.type === "richtext_part"
|
|
160
193
|
)
|
|
161
194
|
|
|
162
195
|
document.content.push({
|
|
163
196
|
type: "richtext_part",
|
|
164
197
|
attrs: {
|
|
165
|
-
title: bodyTemplatePart
|
|
166
|
-
|
|
167
|
-
: "Body",
|
|
168
|
-
id: bodyTemplatePart ? bodyTemplatePart.attrs.id : "body",
|
|
198
|
+
title: bodyTemplatePart?.attrs?.title || "Body",
|
|
199
|
+
id: bodyTemplatePart?.attrs?.id || "body",
|
|
169
200
|
marks: ["strong", "em", "link"]
|
|
170
201
|
},
|
|
171
202
|
content: unassignedContent
|
|
172
203
|
})
|
|
173
204
|
}
|
|
174
205
|
|
|
175
|
-
return document
|
|
206
|
+
return document as FidusDoc
|
|
176
207
|
}
|
|
177
208
|
|
|
178
|
-
extractMetadata(body) {
|
|
179
|
-
const metadata = []
|
|
209
|
+
extractMetadata(body: any) {
|
|
210
|
+
const metadata: any[] = []
|
|
180
211
|
|
|
181
212
|
// Try structured contributor data from custom properties first
|
|
182
213
|
const contributorsByRole = this.extractContributorsFromCustomProps()
|
|
183
214
|
if (Object.keys(contributorsByRole).length) {
|
|
184
215
|
Object.entries(contributorsByRole).forEach(
|
|
185
|
-
([role, contributors]) => {
|
|
216
|
+
([role, contributors]: any) => {
|
|
186
217
|
metadata.push({
|
|
187
218
|
type: role,
|
|
188
219
|
content: {content: contributors, containerNodes: []}
|
|
@@ -226,10 +257,10 @@ export class DocxConvert {
|
|
|
226
257
|
}
|
|
227
258
|
|
|
228
259
|
const properties = this.parser.customDoc.queryAll("property")
|
|
229
|
-
const contributors = []
|
|
260
|
+
const contributors: any[] = []
|
|
230
261
|
|
|
231
|
-
properties.forEach(prop => {
|
|
232
|
-
const name = prop
|
|
262
|
+
properties.forEach((prop: any) => {
|
|
263
|
+
const name = attr(prop, "name")
|
|
233
264
|
if (!name || !name.startsWith("fidus_contributor_")) {
|
|
234
265
|
return
|
|
235
266
|
}
|
|
@@ -272,8 +303,8 @@ export class DocxConvert {
|
|
|
272
303
|
}
|
|
273
304
|
})
|
|
274
305
|
|
|
275
|
-
const byRole = {}
|
|
276
|
-
contributors.forEach(contributor => {
|
|
306
|
+
const byRole: Record<string, any> = {}
|
|
307
|
+
contributors.forEach((contributor: any) => {
|
|
277
308
|
if (!contributor) {
|
|
278
309
|
return
|
|
279
310
|
}
|
|
@@ -287,15 +318,15 @@ export class DocxConvert {
|
|
|
287
318
|
return byRole
|
|
288
319
|
}
|
|
289
320
|
|
|
290
|
-
extractAuthors(body) {
|
|
291
|
-
const authors = []
|
|
321
|
+
extractAuthors(body: any) {
|
|
322
|
+
const authors: any[] = []
|
|
292
323
|
|
|
293
324
|
// Try to find author information in metadata
|
|
294
325
|
const authorNodes = body
|
|
295
326
|
.queryAll("w:pStyle", {"w:val": "Author"})
|
|
296
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
297
|
-
.filter(p => p)
|
|
298
|
-
authorNodes.forEach(authorNode => {
|
|
327
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
328
|
+
.filter((p: any) => p)
|
|
329
|
+
authorNodes.forEach((authorNode: any) => {
|
|
299
330
|
const authorText = this.getTextContent(authorNode)
|
|
300
331
|
const [firstname = "", lastname = ""] = authorText.split(" ", 2)
|
|
301
332
|
authors.push({
|
|
@@ -315,7 +346,7 @@ export class DocxConvert {
|
|
|
315
346
|
}
|
|
316
347
|
}
|
|
317
348
|
// Also check Creator in document properties
|
|
318
|
-
const creator = this.parser.coreDoc
|
|
349
|
+
const creator = this.parser.coreDoc?.query("dc:creator")?.textContent
|
|
319
350
|
|
|
320
351
|
if (creator) {
|
|
321
352
|
const [firstname = "", lastname = ""] = creator.split(" ", 2)
|
|
@@ -338,15 +369,15 @@ export class DocxConvert {
|
|
|
338
369
|
return {content: [], containerNodes: []}
|
|
339
370
|
}
|
|
340
371
|
|
|
341
|
-
extractAbstract(body) {
|
|
372
|
+
extractAbstract(body: any) {
|
|
342
373
|
// Look for section with Abstract style or heading
|
|
343
374
|
const abstractNodes = body
|
|
344
375
|
.queryAll("w:pStyle", {"w:val": "Abstract"})
|
|
345
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
346
|
-
.filter(p => p)
|
|
376
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
377
|
+
.filter((p: any) => p)
|
|
347
378
|
if (abstractNodes.length) {
|
|
348
379
|
return {
|
|
349
|
-
content: abstractNodes.map(abstractNode =>
|
|
380
|
+
content: abstractNodes.map((abstractNode: any) =>
|
|
350
381
|
this.convertBlock(abstractNode)
|
|
351
382
|
),
|
|
352
383
|
containerNodes: abstractNodes
|
|
@@ -355,7 +386,7 @@ export class DocxConvert {
|
|
|
355
386
|
const extractedPart = this.extractPartOnTitle(body, ["Abstract"])
|
|
356
387
|
if (extractedPart.content.length) {
|
|
357
388
|
return {
|
|
358
|
-
content: extractedPart.content.map(abstractNode =>
|
|
389
|
+
content: extractedPart.content.map((abstractNode: any) =>
|
|
359
390
|
this.convertBlock(abstractNode)
|
|
360
391
|
),
|
|
361
392
|
containerNodes: extractedPart.content.concat([
|
|
@@ -366,13 +397,13 @@ export class DocxConvert {
|
|
|
366
397
|
return {content: [], containerNodes: []}
|
|
367
398
|
}
|
|
368
399
|
|
|
369
|
-
extractKeywords(body) {
|
|
370
|
-
let extraNodes = []
|
|
400
|
+
extractKeywords(body: any) {
|
|
401
|
+
let extraNodes: any[] = []
|
|
371
402
|
// Look for keywords section or metadata
|
|
372
403
|
let keywordNodes = body
|
|
373
404
|
.queryAll("w:pStyle", {"w:val": "Keywords"})
|
|
374
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
375
|
-
.filter(p => p)
|
|
405
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
406
|
+
.filter((p: any) => p)
|
|
376
407
|
|
|
377
408
|
if (!keywordNodes.length) {
|
|
378
409
|
// If no keywords section is found, look for a title called "Keywords"
|
|
@@ -391,11 +422,11 @@ export class DocxConvert {
|
|
|
391
422
|
if (keywordNodes) {
|
|
392
423
|
return {
|
|
393
424
|
content: keywordNodes
|
|
394
|
-
.map(keywordsNode => this.getTextContent(keywordsNode))
|
|
395
|
-
.flatMap(str => str.split(/[,;|:]+/)) // Split on multiple separators
|
|
396
|
-
.map(keyword => keyword.trim()) // Trim whitespace
|
|
397
|
-
.filter(keyword => keyword.length > 0)
|
|
398
|
-
.map(keyword => ({
|
|
425
|
+
.map((keywordsNode: any) => this.getTextContent(keywordsNode))
|
|
426
|
+
.flatMap((str: any) => str.split(/[,;|:]+/)) // Split on multiple separators
|
|
427
|
+
.map((keyword: any) => keyword.trim()) // Trim whitespace
|
|
428
|
+
.filter((keyword: any) => keyword.length > 0)
|
|
429
|
+
.map((keyword: any) => ({
|
|
399
430
|
type: "tag",
|
|
400
431
|
attrs: {
|
|
401
432
|
tag: keyword
|
|
@@ -408,7 +439,7 @@ export class DocxConvert {
|
|
|
408
439
|
return {content: [], containerNodes: []}
|
|
409
440
|
}
|
|
410
441
|
|
|
411
|
-
extractPartOnTitle(body, titleWords, maxPars = false) {
|
|
442
|
+
extractPartOnTitle(body: any, titleWords: any, maxPars: any = false) {
|
|
412
443
|
// Fall back to heading starting with TITLEWORD in text
|
|
413
444
|
if (typeof titleWords === "string") {
|
|
414
445
|
titleWords = [titleWords]
|
|
@@ -427,12 +458,12 @@ export class DocxConvert {
|
|
|
427
458
|
"Heading9"
|
|
428
459
|
]
|
|
429
460
|
})
|
|
430
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
431
|
-
.filter(p => p)
|
|
432
|
-
const header = headingPars.find(p =>
|
|
461
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
462
|
+
.filter((p: any) => p)
|
|
463
|
+
const header = headingPars.find((p: any) =>
|
|
433
464
|
titleWords.includes(this.getTextContent(p).trim())
|
|
434
465
|
)
|
|
435
|
-
const content = []
|
|
466
|
+
const content: any[] = []
|
|
436
467
|
if (header && header.nextSibling) {
|
|
437
468
|
//const content = []
|
|
438
469
|
//const containerNodes = [sectionHeader]
|
|
@@ -456,16 +487,16 @@ export class DocxConvert {
|
|
|
456
487
|
return {header, content}
|
|
457
488
|
}
|
|
458
489
|
|
|
459
|
-
groupContentIntoSections(body) {
|
|
460
|
-
const sections = []
|
|
461
|
-
let currentSection = {
|
|
490
|
+
groupContentIntoSections(body: any) {
|
|
491
|
+
const sections: any[] = []
|
|
492
|
+
let currentSection: Record<string, any> = {
|
|
462
493
|
title: null,
|
|
463
494
|
content: []
|
|
464
495
|
}
|
|
465
496
|
|
|
466
|
-
const skippedBlocks = []
|
|
497
|
+
const skippedBlocks: any[] = []
|
|
467
498
|
|
|
468
|
-
body.children.forEach(node => {
|
|
499
|
+
body.children.forEach((node: any) => {
|
|
469
500
|
if (skippedBlocks.includes(node)) {
|
|
470
501
|
return
|
|
471
502
|
}
|
|
@@ -498,7 +529,7 @@ export class DocxConvert {
|
|
|
498
529
|
return sections
|
|
499
530
|
}
|
|
500
531
|
|
|
501
|
-
getSectionTitle(node, style) {
|
|
532
|
+
getSectionTitle(node: any, style: any) {
|
|
502
533
|
if (!node || !style) {
|
|
503
534
|
return null
|
|
504
535
|
}
|
|
@@ -519,14 +550,14 @@ export class DocxConvert {
|
|
|
519
550
|
return null
|
|
520
551
|
}
|
|
521
552
|
|
|
522
|
-
findMatchingTemplatePart(sectionTitle, templateParts) {
|
|
553
|
+
findMatchingTemplatePart(sectionTitle: any, templateParts: any) {
|
|
523
554
|
if (!sectionTitle) {
|
|
524
555
|
return null
|
|
525
556
|
}
|
|
526
557
|
|
|
527
558
|
// Try exact match first
|
|
528
559
|
let matchingPart = templateParts.find(
|
|
529
|
-
part =>
|
|
560
|
+
(part: any) =>
|
|
530
561
|
part.type === "richtext_part" &&
|
|
531
562
|
!part.attrs.metadata &&
|
|
532
563
|
part.attrs.title.toLowerCase() === sectionTitle.toLowerCase()
|
|
@@ -535,7 +566,7 @@ export class DocxConvert {
|
|
|
535
566
|
if (!matchingPart) {
|
|
536
567
|
// Try fuzzy matching
|
|
537
568
|
matchingPart = templateParts.find(
|
|
538
|
-
part =>
|
|
569
|
+
(part: any) =>
|
|
539
570
|
part.type === "richtext_part" &&
|
|
540
571
|
!part.attrs.metadata &&
|
|
541
572
|
this.isSimilarTitle(part.attrs.title, sectionTitle)
|
|
@@ -545,7 +576,7 @@ export class DocxConvert {
|
|
|
545
576
|
return matchingPart
|
|
546
577
|
}
|
|
547
578
|
|
|
548
|
-
isSimilarTitle(title1, title2) {
|
|
579
|
+
isSimilarTitle(title1: any, title2: any) {
|
|
549
580
|
const normalized1 = normalizeText(title1)
|
|
550
581
|
const normalized2 = normalizeText(title2)
|
|
551
582
|
|
|
@@ -555,19 +586,19 @@ export class DocxConvert {
|
|
|
555
586
|
)
|
|
556
587
|
}
|
|
557
588
|
|
|
558
|
-
getTextContent(node) {
|
|
589
|
+
getTextContent(node: any) {
|
|
559
590
|
return node
|
|
560
591
|
.queryAll("w:t")
|
|
561
|
-
.map(t => t.textContent)
|
|
592
|
+
.map((t: any) => t.textContent)
|
|
562
593
|
.join("")
|
|
563
594
|
}
|
|
564
595
|
|
|
565
|
-
extractTitle(body) {
|
|
596
|
+
extractTitle(body: any) {
|
|
566
597
|
// First try to find paragraph with Title style
|
|
567
598
|
const titlePars = body
|
|
568
599
|
.queryAll("w:pStyle", {"w:val": "Title"})
|
|
569
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
570
|
-
.filter(p => p)
|
|
600
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
601
|
+
.filter((p: any) => p)
|
|
571
602
|
|
|
572
603
|
if (titlePars.length) {
|
|
573
604
|
return {
|
|
@@ -591,8 +622,8 @@ export class DocxConvert {
|
|
|
591
622
|
"Heading9"
|
|
592
623
|
]
|
|
593
624
|
})
|
|
594
|
-
.map(pStyle => pStyle.closest("w:p"))
|
|
595
|
-
.filter(p => p)
|
|
625
|
+
.map((pStyle: any) => pStyle.closest("w:p"))
|
|
626
|
+
.filter((p: any) => p)
|
|
596
627
|
if (headingPars.length) {
|
|
597
628
|
return {
|
|
598
629
|
content: this.convertInline(headingPars[0]),
|
|
@@ -611,7 +642,7 @@ export class DocxConvert {
|
|
|
611
642
|
}
|
|
612
643
|
}
|
|
613
644
|
|
|
614
|
-
inBibliography(node) {
|
|
645
|
+
inBibliography(node: any) {
|
|
615
646
|
// Check if we currently are in a field.
|
|
616
647
|
const currentField = this.currentFields[this.currentFields.length - 1]
|
|
617
648
|
|
|
@@ -631,7 +662,7 @@ export class DocxConvert {
|
|
|
631
662
|
return false
|
|
632
663
|
}
|
|
633
664
|
|
|
634
|
-
convertBlock(node, skippedBlocks = []) {
|
|
665
|
+
convertBlock(node: any, skippedBlocks: any = []) {
|
|
635
666
|
if (node.tagName !== "w:p") {
|
|
636
667
|
return null
|
|
637
668
|
}
|
|
@@ -675,7 +706,7 @@ export class DocxConvert {
|
|
|
675
706
|
return this.wrapTrackChanges(node, converted)
|
|
676
707
|
}
|
|
677
708
|
|
|
678
|
-
wrapTrackChanges(node, content) {
|
|
709
|
+
wrapTrackChanges(node: any, content: any) {
|
|
679
710
|
if (!content || !node.previousSibling) {
|
|
680
711
|
return content
|
|
681
712
|
}
|
|
@@ -690,30 +721,30 @@ export class DocxConvert {
|
|
|
690
721
|
}
|
|
691
722
|
}
|
|
692
723
|
|
|
693
|
-
getTracksFromNode(node) {
|
|
724
|
+
getTracksFromNode(node: any) {
|
|
694
725
|
const deletion = node.query("w:pPr")?.query("w:del")
|
|
695
726
|
const insertion = node.query("w:pPr")?.query("w:ins")
|
|
696
727
|
|
|
697
|
-
const tracks = []
|
|
728
|
+
const tracks: any[] = []
|
|
698
729
|
|
|
699
730
|
if (insertion) {
|
|
700
|
-
const date = new Date(insertion
|
|
731
|
+
const date = new Date(attr(insertion, "w:date"))
|
|
701
732
|
const date10 = Math.floor(date.getTime() / 60000) * 10
|
|
702
733
|
tracks.push({
|
|
703
734
|
type: "insertion",
|
|
704
735
|
user: 0, // Default user ID
|
|
705
|
-
username: insertion
|
|
736
|
+
username: attr(insertion, "w:author"),
|
|
706
737
|
date: date10
|
|
707
738
|
})
|
|
708
739
|
}
|
|
709
740
|
|
|
710
741
|
if (deletion) {
|
|
711
|
-
const date = new Date(deletion
|
|
742
|
+
const date = new Date(attr(deletion, "w:date"))
|
|
712
743
|
const date10 = Math.floor(date.getTime() / 60000) * 10
|
|
713
744
|
tracks.push({
|
|
714
745
|
type: "deletion",
|
|
715
746
|
user: 0, // Default user ID
|
|
716
|
-
username: deletion
|
|
747
|
+
username: attr(deletion, "w:author"),
|
|
717
748
|
date: date10
|
|
718
749
|
})
|
|
719
750
|
}
|
|
@@ -725,15 +756,15 @@ export class DocxConvert {
|
|
|
725
756
|
return tracks
|
|
726
757
|
}
|
|
727
758
|
|
|
728
|
-
getParaStyle(node) {
|
|
759
|
+
getParaStyle(node: any) {
|
|
729
760
|
const pStyle = node.query("w:pStyle")
|
|
730
|
-
const styleId = pStyle
|
|
761
|
+
const styleId = attr(pStyle, "w:val")
|
|
731
762
|
const style = this.parser.styles[styleId] || {}
|
|
732
763
|
|
|
733
764
|
const numPr = node.query("w:numPr")
|
|
734
|
-
const numId = numPr?.query("w:numId")
|
|
765
|
+
const numId = attr(numPr?.query("w:numId"), "w:val")
|
|
735
766
|
const ilvl = parseInt(
|
|
736
|
-
numPr?.query("w:ilvl")
|
|
767
|
+
attr(numPr?.query("w:ilvl"), "w:val") || "0"
|
|
737
768
|
)
|
|
738
769
|
|
|
739
770
|
return {
|
|
@@ -748,9 +779,9 @@ export class DocxConvert {
|
|
|
748
779
|
}
|
|
749
780
|
}
|
|
750
781
|
|
|
751
|
-
convertParagraph(node) {
|
|
782
|
+
convertParagraph(node: any) {
|
|
752
783
|
const pStyle = node.query("w:pStyle")
|
|
753
|
-
const styleId = pStyle
|
|
784
|
+
const styleId = attr(pStyle, "w:val")
|
|
754
785
|
|
|
755
786
|
// Check if this is a code block (Code style or inherited from one)
|
|
756
787
|
if (
|
|
@@ -776,7 +807,7 @@ export class DocxConvert {
|
|
|
776
807
|
}
|
|
777
808
|
}
|
|
778
809
|
|
|
779
|
-
convertHeading(node, style) {
|
|
810
|
+
convertHeading(node: any, style: any) {
|
|
780
811
|
return {
|
|
781
812
|
type: `heading${style.level}`,
|
|
782
813
|
attrs: {
|
|
@@ -787,7 +818,7 @@ export class DocxConvert {
|
|
|
787
818
|
}
|
|
788
819
|
}
|
|
789
820
|
|
|
790
|
-
convertListItem(node, style) {
|
|
821
|
+
convertListItem(node: any, style: any) {
|
|
791
822
|
const numbering = style.numbering
|
|
792
823
|
const level = numbering.definition?.levels[numbering.level]
|
|
793
824
|
|
|
@@ -807,7 +838,7 @@ export class DocxConvert {
|
|
|
807
838
|
}
|
|
808
839
|
}
|
|
809
840
|
|
|
810
|
-
convertFigure(node, captionNode = null) {
|
|
841
|
+
convertFigure(node: any, captionNode: any = null) {
|
|
811
842
|
let captionBlock, captionOrder
|
|
812
843
|
if (captionNode) {
|
|
813
844
|
captionBlock = this.convertParagraph(captionNode)
|
|
@@ -824,7 +855,7 @@ export class DocxConvert {
|
|
|
824
855
|
return null
|
|
825
856
|
}
|
|
826
857
|
|
|
827
|
-
const rId = blip
|
|
858
|
+
const rId = attr(blip, "r:embed")
|
|
828
859
|
const rel = this.parser.relationships[rId]
|
|
829
860
|
if (!rel) {
|
|
830
861
|
return null
|
|
@@ -840,8 +871,8 @@ export class DocxConvert {
|
|
|
840
871
|
// <a:ext cx="5753598" cy="4463556" />
|
|
841
872
|
//
|
|
842
873
|
const size = drawing.query("a:ext")
|
|
843
|
-
const width = parseInt(size
|
|
844
|
-
const height = parseInt(size
|
|
874
|
+
const width = parseInt(attr(size, "cx") || "0") / 9525 // In EMUs
|
|
875
|
+
const height = parseInt(attr(size, "cy") || "0") / 9525 // In EMUs
|
|
845
876
|
|
|
846
877
|
const imageId = Math.floor(Math.random() * 1000000)
|
|
847
878
|
this.images[imageId] = {
|
|
@@ -861,14 +892,14 @@ export class DocxConvert {
|
|
|
861
892
|
height
|
|
862
893
|
}
|
|
863
894
|
|
|
864
|
-
const image = {
|
|
895
|
+
const image: Record<string, any> = {
|
|
865
896
|
type: "image",
|
|
866
897
|
attrs: {
|
|
867
898
|
image: imageId
|
|
868
899
|
}
|
|
869
900
|
}
|
|
870
901
|
|
|
871
|
-
const caption = {
|
|
902
|
+
const caption: Record<string, any> = {
|
|
872
903
|
type: "figure_caption",
|
|
873
904
|
content: captionBlock?.content || []
|
|
874
905
|
}
|
|
@@ -888,11 +919,11 @@ export class DocxConvert {
|
|
|
888
919
|
}
|
|
889
920
|
}
|
|
890
921
|
|
|
891
|
-
convertInline(node) {
|
|
892
|
-
const content = []
|
|
922
|
+
convertInline(node: any) {
|
|
923
|
+
const content: any[] = []
|
|
893
924
|
|
|
894
925
|
// We'll process all inline nodes in document order
|
|
895
|
-
node.children.forEach(child => {
|
|
926
|
+
node.children.forEach((child: any) => {
|
|
896
927
|
let contentReceiver = content
|
|
897
928
|
const currentField =
|
|
898
929
|
this.currentFields[this.currentFields.length - 1]
|
|
@@ -915,7 +946,7 @@ export class DocxConvert {
|
|
|
915
946
|
if (fieldChar) {
|
|
916
947
|
let currentField
|
|
917
948
|
let rendercurrentField = false
|
|
918
|
-
const type = fieldChar
|
|
949
|
+
const type = attr(fieldChar, "w:fldCharType")
|
|
919
950
|
if (type === "begin") {
|
|
920
951
|
currentField = {
|
|
921
952
|
status: "instruction",
|
|
@@ -949,7 +980,7 @@ export class DocxConvert {
|
|
|
949
980
|
}
|
|
950
981
|
|
|
951
982
|
if (rendercurrentField && currentField) {
|
|
952
|
-
this.renderField(currentField).forEach(node =>
|
|
983
|
+
this.renderField(currentField).forEach((node: any) =>
|
|
953
984
|
contentReceiver.push(node)
|
|
954
985
|
)
|
|
955
986
|
}
|
|
@@ -959,7 +990,7 @@ export class DocxConvert {
|
|
|
959
990
|
// Process footnote references
|
|
960
991
|
const footnoteRef = child.query("w:footnoteReference")
|
|
961
992
|
if (footnoteRef) {
|
|
962
|
-
const footnoteId = footnoteRef
|
|
993
|
+
const footnoteId = attr(footnoteRef, "w:id")
|
|
963
994
|
if (this.parser.footnotes[footnoteId]) {
|
|
964
995
|
contentReceiver.push(this.convertFootnote(footnoteId))
|
|
965
996
|
}
|
|
@@ -969,7 +1000,7 @@ export class DocxConvert {
|
|
|
969
1000
|
// Process endnote references
|
|
970
1001
|
const endnoteRef = child.query("w:endnoteReference")
|
|
971
1002
|
if (endnoteRef) {
|
|
972
|
-
const endnoteId = endnoteRef
|
|
1003
|
+
const endnoteId = attr(endnoteRef, "w:id")
|
|
973
1004
|
if (this.parser.endnotes[endnoteId]) {
|
|
974
1005
|
contentReceiver.push(
|
|
975
1006
|
this.convertFootnote(endnoteId, true)
|
|
@@ -1003,13 +1034,13 @@ export class DocxConvert {
|
|
|
1003
1034
|
marks: this.getCurrentMarks(formatting, insertion, deletion)
|
|
1004
1035
|
})
|
|
1005
1036
|
} else if (child.tagName === "w:commentRangeStart") {
|
|
1006
|
-
const commentId = child
|
|
1037
|
+
const commentId = attr(child, "w:id")
|
|
1007
1038
|
if (commentId && this.parser.comments[commentId]) {
|
|
1008
1039
|
this.currentCommentIds.push(commentId)
|
|
1009
1040
|
}
|
|
1010
1041
|
return
|
|
1011
1042
|
} else if (child.tagName === "w:commentRangeEnd") {
|
|
1012
|
-
const commentId = child
|
|
1043
|
+
const commentId = attr(child, "w:id")
|
|
1013
1044
|
if (commentId) {
|
|
1014
1045
|
const index = this.currentCommentIds.indexOf(commentId)
|
|
1015
1046
|
if (index !== -1) {
|
|
@@ -1025,8 +1056,8 @@ export class DocxConvert {
|
|
|
1025
1056
|
return
|
|
1026
1057
|
} else if (child.tagName === "w:hyperlink") {
|
|
1027
1058
|
// Process hyperlink
|
|
1028
|
-
const rId = child
|
|
1029
|
-
const anchor = child
|
|
1059
|
+
const rId = attr(child, "r:id")
|
|
1060
|
+
const anchor = attr(child, "w:anchor")
|
|
1030
1061
|
const relationship = rId ? this.parser.relationships[rId] : null
|
|
1031
1062
|
const href =
|
|
1032
1063
|
relationship?.target || (anchor ? `#${anchor}` : null)
|
|
@@ -1034,7 +1065,7 @@ export class DocxConvert {
|
|
|
1034
1065
|
if (href) {
|
|
1035
1066
|
const runs = child.queryAll("w:r")
|
|
1036
1067
|
const text = runs
|
|
1037
|
-
.map(run => run.query("w:t")?.textContent || "")
|
|
1068
|
+
.map((run: any) => run.query("w:t")?.textContent || "")
|
|
1038
1069
|
.join("")
|
|
1039
1070
|
|
|
1040
1071
|
if (text) {
|
|
@@ -1103,13 +1134,13 @@ export class DocxConvert {
|
|
|
1103
1134
|
}
|
|
1104
1135
|
|
|
1105
1136
|
// Method to help process cross-references in documents
|
|
1106
|
-
findReferenceTargets(document) {
|
|
1107
|
-
const targets = {}
|
|
1137
|
+
findReferenceTargets(document: any) {
|
|
1138
|
+
const targets: Record<string, any> = {}
|
|
1108
1139
|
|
|
1109
1140
|
// Find bookmarks
|
|
1110
|
-
document.queryAll("w:bookmarkStart").forEach(bookmark => {
|
|
1111
|
-
const id = bookmark
|
|
1112
|
-
const name = bookmark
|
|
1141
|
+
document.queryAll("w:bookmarkStart").forEach((bookmark: any) => {
|
|
1142
|
+
const id = attr(bookmark, "w:id")
|
|
1143
|
+
const name = attr(bookmark, "w:name")
|
|
1113
1144
|
if (id && name) {
|
|
1114
1145
|
targets[name] = {
|
|
1115
1146
|
id: name,
|
|
@@ -1119,8 +1150,8 @@ export class DocxConvert {
|
|
|
1119
1150
|
})
|
|
1120
1151
|
|
|
1121
1152
|
// Find headings (with styles like Heading1, Heading2, etc.)
|
|
1122
|
-
document.queryAll("w:pStyle").forEach(pStyle => {
|
|
1123
|
-
const val = pStyle
|
|
1153
|
+
document.queryAll("w:pStyle").forEach((pStyle: any) => {
|
|
1154
|
+
const val = attr(pStyle, "w:val")
|
|
1124
1155
|
if (val && val.match(/^Heading\d+$/)) {
|
|
1125
1156
|
const paragraph = pStyle.closest("w:p")
|
|
1126
1157
|
if (paragraph) {
|
|
@@ -1144,18 +1175,18 @@ export class DocxConvert {
|
|
|
1144
1175
|
return targets
|
|
1145
1176
|
}
|
|
1146
1177
|
|
|
1147
|
-
convertFootnote(id, isEndnote = false) {
|
|
1178
|
+
convertFootnote(id: any, isEndnote: any = false) {
|
|
1148
1179
|
const footnoteContent = isEndnote
|
|
1149
1180
|
? this.parser.endnotes[id].content
|
|
1150
1181
|
: this.parser.footnotes[id].content
|
|
1151
1182
|
|
|
1152
1183
|
// Convert the footnote content to our document model
|
|
1153
|
-
const content = []
|
|
1154
|
-
footnoteContent.forEach(block => {
|
|
1184
|
+
const content: any[] = []
|
|
1185
|
+
footnoteContent.forEach((block: any) => {
|
|
1155
1186
|
if (block.type === "paragraph") {
|
|
1156
1187
|
content.push({
|
|
1157
1188
|
type: "paragraph",
|
|
1158
|
-
content: block.content.map(node => {
|
|
1189
|
+
content: block.content.map((node: any) => {
|
|
1159
1190
|
if (node.type === "text") {
|
|
1160
1191
|
return {
|
|
1161
1192
|
type: "text",
|
|
@@ -1177,7 +1208,7 @@ export class DocxConvert {
|
|
|
1177
1208
|
}
|
|
1178
1209
|
}
|
|
1179
1210
|
|
|
1180
|
-
convertEquation(oMathNode) {
|
|
1211
|
+
convertEquation(oMathNode: any) {
|
|
1181
1212
|
// Extract OMML content and convert to MathML
|
|
1182
1213
|
const mmlNode = omml2mathml(oMathNode)
|
|
1183
1214
|
const latex = MathMLToLaTeX.convert(mmlNode.outerXML)
|
|
@@ -1189,7 +1220,7 @@ export class DocxConvert {
|
|
|
1189
1220
|
}
|
|
1190
1221
|
}
|
|
1191
1222
|
|
|
1192
|
-
simplifiedOmmlToLatex(omml) {
|
|
1223
|
+
simplifiedOmmlToLatex(omml: any) {
|
|
1193
1224
|
// This is a very basic conversion - in a real implementation you would
|
|
1194
1225
|
// use a library like MathML-to-LaTeX or implement a more complete converter
|
|
1195
1226
|
|
|
@@ -1239,7 +1270,7 @@ export class DocxConvert {
|
|
|
1239
1270
|
return textContent || "x^2" // Default fallback
|
|
1240
1271
|
}
|
|
1241
1272
|
|
|
1242
|
-
renderField(field) {
|
|
1273
|
+
renderField(field: any) {
|
|
1243
1274
|
const instr = field.instructions.trim()
|
|
1244
1275
|
|
|
1245
1276
|
// Handle REF fields (cross-references)
|
|
@@ -1249,7 +1280,7 @@ export class DocxConvert {
|
|
|
1249
1280
|
if (parts.length > 0) {
|
|
1250
1281
|
const target = parts[0]
|
|
1251
1282
|
const text = field.display.reduce(
|
|
1252
|
-
(accumulator, currentValue) => {
|
|
1283
|
+
(accumulator: any, currentValue: any) => {
|
|
1253
1284
|
if (currentValue.type === "text") {
|
|
1254
1285
|
return accumulator + currentValue.text
|
|
1255
1286
|
}
|
|
@@ -1267,7 +1298,7 @@ export class DocxConvert {
|
|
|
1267
1298
|
const seqMatch = instr.match(/^SEQ\s+(\S+)/)
|
|
1268
1299
|
if (seqMatch) {
|
|
1269
1300
|
const _seqName = seqMatch[1]
|
|
1270
|
-
const text = field.display.reduce((acc, curr) => {
|
|
1301
|
+
const text = field.display.reduce((acc: any, curr: any) => {
|
|
1271
1302
|
if (curr.type === "text") {
|
|
1272
1303
|
return acc + curr.text
|
|
1273
1304
|
}
|
|
@@ -1305,7 +1336,7 @@ export class DocxConvert {
|
|
|
1305
1336
|
}
|
|
1306
1337
|
}
|
|
1307
1338
|
|
|
1308
|
-
convertCrossReference(targetId, displayText) {
|
|
1339
|
+
convertCrossReference(targetId: any, displayText: any) {
|
|
1309
1340
|
// Look up the target in our reference targets
|
|
1310
1341
|
const target = this.referenceTargets[targetId]
|
|
1311
1342
|
|
|
@@ -1330,8 +1361,8 @@ export class DocxConvert {
|
|
|
1330
1361
|
}
|
|
1331
1362
|
}
|
|
1332
1363
|
|
|
1333
|
-
createMarksFromFormatting(formatting, insertion = null, deletion = null) {
|
|
1334
|
-
const marks = []
|
|
1364
|
+
createMarksFromFormatting(formatting: any, insertion: any = null, deletion: any = null) {
|
|
1365
|
+
const marks: any[] = []
|
|
1335
1366
|
if (formatting.bold) {
|
|
1336
1367
|
marks.push({type: "strong"})
|
|
1337
1368
|
}
|
|
@@ -1350,7 +1381,7 @@ export class DocxConvert {
|
|
|
1350
1381
|
}
|
|
1351
1382
|
// Handle inline code (monospace fonts)
|
|
1352
1383
|
if (formatting.fontFamily) {
|
|
1353
|
-
const monospacePatterns = [
|
|
1384
|
+
const monospacePatterns: any[] = [
|
|
1354
1385
|
/^courier/i,
|
|
1355
1386
|
/^consolas/i,
|
|
1356
1387
|
/^monaco/i,
|
|
@@ -1364,7 +1395,7 @@ export class DocxConvert {
|
|
|
1364
1395
|
/^ubuntu mono/i,
|
|
1365
1396
|
/^droid sans mono/i
|
|
1366
1397
|
]
|
|
1367
|
-
const isMonospace = monospacePatterns.some(pattern =>
|
|
1398
|
+
const isMonospace = monospacePatterns.some((pattern: any) =>
|
|
1368
1399
|
pattern.test(formatting.fontFamily)
|
|
1369
1400
|
)
|
|
1370
1401
|
if (isMonospace) {
|
|
@@ -1372,26 +1403,26 @@ export class DocxConvert {
|
|
|
1372
1403
|
}
|
|
1373
1404
|
}
|
|
1374
1405
|
if (insertion) {
|
|
1375
|
-
const date = new Date(insertion
|
|
1406
|
+
const date = new Date(attr(insertion, "w:date"))
|
|
1376
1407
|
const date10 = Math.floor(date.getTime() / 600000) * 10
|
|
1377
1408
|
marks.push({
|
|
1378
1409
|
type: "insertion",
|
|
1379
1410
|
attrs: {
|
|
1380
1411
|
user: 0,
|
|
1381
|
-
username: insertion
|
|
1412
|
+
username: attr(insertion, "w:author"),
|
|
1382
1413
|
date: date10,
|
|
1383
1414
|
approved: false
|
|
1384
1415
|
}
|
|
1385
1416
|
})
|
|
1386
1417
|
}
|
|
1387
1418
|
if (deletion) {
|
|
1388
|
-
const date = new Date(deletion
|
|
1419
|
+
const date = new Date(attr(deletion, "w:date"))
|
|
1389
1420
|
const date10 = Math.floor(date.getTime() / 600000) * 10
|
|
1390
1421
|
marks.push({
|
|
1391
1422
|
type: "deletion",
|
|
1392
1423
|
attrs: {
|
|
1393
1424
|
user: 0,
|
|
1394
|
-
username: deletion
|
|
1425
|
+
username: attr(deletion, "w:author"),
|
|
1395
1426
|
date: date10
|
|
1396
1427
|
}
|
|
1397
1428
|
})
|
|
@@ -1399,14 +1430,18 @@ export class DocxConvert {
|
|
|
1399
1430
|
return marks
|
|
1400
1431
|
}
|
|
1401
1432
|
|
|
1402
|
-
getCurrentMarks(
|
|
1433
|
+
getCurrentMarks(
|
|
1434
|
+
formatting: any,
|
|
1435
|
+
insertion: any = null,
|
|
1436
|
+
deletion: any = null
|
|
1437
|
+
): any[] {
|
|
1403
1438
|
const marks = this.createMarksFromFormatting(
|
|
1404
1439
|
formatting,
|
|
1405
1440
|
insertion,
|
|
1406
1441
|
deletion
|
|
1407
1442
|
)
|
|
1408
1443
|
// Add comment marks for any active comment IDs
|
|
1409
|
-
this.currentCommentIds.forEach(commentId => {
|
|
1444
|
+
this.currentCommentIds.forEach((commentId: any) => {
|
|
1410
1445
|
marks.push({
|
|
1411
1446
|
type: "comment",
|
|
1412
1447
|
attrs: {
|
|
@@ -1417,11 +1452,11 @@ export class DocxConvert {
|
|
|
1417
1452
|
return marks
|
|
1418
1453
|
}
|
|
1419
1454
|
|
|
1420
|
-
hasTrackedChanges(doc) {
|
|
1455
|
+
hasTrackedChanges(doc: any) {
|
|
1421
1456
|
return Boolean(doc.query("w:ins") || doc.query("w:del"))
|
|
1422
1457
|
}
|
|
1423
1458
|
|
|
1424
|
-
detectLanguage(doc) {
|
|
1425
|
-
return doc.query("w:lang")
|
|
1459
|
+
detectLanguage(doc: any) {
|
|
1460
|
+
return attr(doc.query("w:lang"), "w:val") || "en-US"
|
|
1426
1461
|
}
|
|
1427
1462
|
}
|