documents.js 1.57.1 → 1.59.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.
- package/README.md +19 -7
- package/dist/blr-types-CYYC3yYU.d.cts +35 -0
- package/dist/blr-types-CYYC3yYU.d.ts +35 -0
- package/dist/cell-CNHPsDEk.d.cts +17 -0
- package/dist/cell-CNHPsDEk.d.ts +17 -0
- package/dist/color-71eoF1Up.d.cts +2 -0
- package/dist/color-Bo228AY2.d.ts +2 -0
- package/dist/convert/capability.cjs +198 -0
- package/dist/convert/capability.d.cts +42 -0
- package/dist/convert/capability.d.ts +42 -0
- package/dist/convert/capability.js +195 -0
- package/dist/convert/codec.cjs +56 -0
- package/dist/convert/codec.d.cts +14 -0
- package/dist/convert/codec.d.ts +14 -0
- package/dist/convert/codec.js +46 -0
- package/dist/convert/convert.cjs +467 -0
- package/dist/convert/convert.d.cts +57 -0
- package/dist/convert/convert.d.ts +57 -0
- package/dist/convert/convert.js +441 -0
- package/dist/convert/local.cjs +84 -0
- package/dist/convert/local.d.cts +5 -0
- package/dist/convert/local.d.ts +5 -0
- package/dist/convert/local.js +83 -0
- package/dist/convert/port.cjs +0 -0
- package/dist/convert/port.d.cts +34 -0
- package/dist/convert/port.d.ts +34 -0
- package/dist/convert/port.js +0 -0
- package/dist/edit/docx/content.cjs +71 -0
- package/dist/edit/docx/content.d.cts +6 -0
- package/dist/edit/docx/content.d.ts +6 -0
- package/dist/edit/docx/content.js +70 -0
- package/dist/edit/docx/editor.cjs +116 -0
- package/dist/edit/docx/editor.d.cts +23 -0
- package/dist/edit/docx/editor.d.ts +23 -0
- package/dist/edit/docx/editor.js +113 -0
- package/dist/edit/docx/image.cjs +74 -0
- package/dist/edit/docx/image.d.cts +2 -0
- package/dist/edit/docx/image.d.ts +2 -0
- package/dist/edit/docx/image.js +72 -0
- package/dist/edit/docx/paragraph.cjs +132 -0
- package/dist/edit/docx/paragraph.d.cts +40 -0
- package/dist/edit/docx/paragraph.d.ts +40 -0
- package/dist/edit/docx/paragraph.js +130 -0
- package/dist/edit/docx/props.cjs +132 -0
- package/dist/edit/docx/props.d.cts +20 -0
- package/dist/edit/docx/props.d.ts +20 -0
- package/dist/edit/docx/props.js +117 -0
- package/dist/edit/docx/run.cjs +143 -0
- package/dist/edit/docx/run.d.cts +2 -0
- package/dist/edit/docx/run.d.ts +2 -0
- package/dist/edit/docx/run.js +141 -0
- package/dist/edit/docx/scaffold.cjs +97 -0
- package/dist/edit/docx/scaffold.d.cts +5 -0
- package/dist/edit/docx/scaffold.d.ts +5 -0
- package/dist/edit/docx/scaffold.js +96 -0
- package/dist/edit/docx/table.cjs +99 -0
- package/dist/edit/docx/table.d.cts +34 -0
- package/dist/edit/docx/table.d.ts +34 -0
- package/dist/edit/docx/table.js +95 -0
- package/dist/edit/odg/content.cjs +65 -0
- package/dist/edit/odg/content.d.cts +6 -0
- package/dist/edit/odg/content.d.ts +6 -0
- package/dist/edit/odg/content.js +64 -0
- package/dist/edit/odg/editor.cjs +96 -0
- package/dist/edit/odg/editor.d.cts +19 -0
- package/dist/edit/odg/editor.d.ts +19 -0
- package/dist/edit/odg/editor.js +93 -0
- package/dist/edit/odg/page.cjs +70 -0
- package/dist/edit/odg/page.d.cts +34 -0
- package/dist/edit/odg/page.d.ts +34 -0
- package/dist/edit/odg/page.js +69 -0
- package/dist/edit/odg/scaffold.cjs +106 -0
- package/dist/edit/odg/scaffold.d.cts +7 -0
- package/dist/edit/odg/scaffold.d.ts +7 -0
- package/dist/edit/odg/scaffold.js +103 -0
- package/dist/edit/odg/style.cjs +83 -0
- package/dist/edit/odg/style.d.cts +14 -0
- package/dist/edit/odg/style.d.ts +14 -0
- package/dist/edit/odg/style.js +78 -0
- package/dist/edit/odg/svg-path.cjs +30 -0
- package/dist/edit/odg/svg-path.d.cts +7 -0
- package/dist/edit/odg/svg-path.d.ts +7 -0
- package/dist/edit/odg/svg-path.js +27 -0
- package/dist/edit/odg/vector.cjs +208 -0
- package/dist/edit/odg/vector.d.cts +2 -0
- package/dist/edit/odg/vector.d.ts +2 -0
- package/dist/edit/odg/vector.js +201 -0
- package/dist/edit/odp/content.cjs +42 -0
- package/dist/edit/odp/content.d.cts +6 -0
- package/dist/edit/odp/content.d.ts +6 -0
- package/dist/edit/odp/content.js +41 -0
- package/dist/edit/odp/editor.cjs +113 -0
- package/dist/edit/odp/editor.d.cts +20 -0
- package/dist/edit/odp/editor.d.ts +20 -0
- package/dist/edit/odp/editor.js +110 -0
- package/dist/edit/odp/image.cjs +10 -0
- package/dist/edit/odp/image.d.cts +2 -0
- package/dist/edit/odp/image.d.ts +2 -0
- package/dist/edit/odp/image.js +9 -0
- package/dist/edit/odp/scaffold.cjs +108 -0
- package/dist/edit/odp/scaffold.d.cts +7 -0
- package/dist/edit/odp/scaffold.d.ts +7 -0
- package/dist/edit/odp/scaffold.js +105 -0
- package/dist/edit/odp/shape.cjs +133 -0
- package/dist/edit/odp/shape.d.cts +2 -0
- package/dist/edit/odp/shape.d.ts +2 -0
- package/dist/edit/odp/shape.js +130 -0
- package/dist/edit/odp/slide.cjs +80 -0
- package/dist/edit/odp/slide.d.cts +31 -0
- package/dist/edit/odp/slide.d.ts +31 -0
- package/dist/edit/odp/slide.js +79 -0
- package/dist/edit/ods/address.cjs +108 -0
- package/dist/edit/ods/address.d.cts +15 -0
- package/dist/edit/ods/address.d.ts +15 -0
- package/dist/edit/ods/address.js +97 -0
- package/dist/edit/ods/cell.cjs +177 -0
- package/dist/edit/ods/cell.d.cts +2 -0
- package/dist/edit/ods/cell.d.ts +2 -0
- package/dist/edit/ods/cell.js +176 -0
- package/dist/edit/ods/column-row.cjs +31 -0
- package/dist/edit/ods/column-row.d.cts +6 -0
- package/dist/edit/ods/column-row.d.ts +6 -0
- package/dist/edit/ods/column-row.js +29 -0
- package/dist/edit/ods/content.cjs +28 -0
- package/dist/edit/ods/content.d.cts +6 -0
- package/dist/edit/ods/content.d.ts +6 -0
- package/dist/edit/ods/content.js +27 -0
- package/dist/edit/ods/editor.cjs +84 -0
- package/dist/edit/ods/editor.d.cts +17 -0
- package/dist/edit/ods/editor.d.ts +17 -0
- package/dist/edit/ods/editor.js +81 -0
- package/dist/edit/ods/print-settings.cjs +90 -0
- package/dist/edit/ods/print-settings.d.cts +7 -0
- package/dist/edit/ods/print-settings.d.ts +7 -0
- package/dist/edit/ods/print-settings.js +88 -0
- package/dist/edit/ods/scaffold.cjs +129 -0
- package/dist/edit/ods/scaffold.d.cts +9 -0
- package/dist/edit/ods/scaffold.d.ts +9 -0
- package/dist/edit/ods/scaffold.js +124 -0
- package/dist/edit/ods/sheet.cjs +77 -0
- package/dist/edit/ods/sheet.d.cts +24 -0
- package/dist/edit/ods/sheet.d.ts +24 -0
- package/dist/edit/ods/sheet.js +76 -0
- package/dist/edit/odt/automatic-styles.cjs +49 -0
- package/dist/edit/odt/automatic-styles.d.cts +8 -0
- package/dist/edit/odt/automatic-styles.d.ts +8 -0
- package/dist/edit/odt/automatic-styles.js +45 -0
- package/dist/edit/odt/content.cjs +110 -0
- package/dist/edit/odt/content.d.cts +9 -0
- package/dist/edit/odt/content.d.ts +9 -0
- package/dist/edit/odt/content.js +108 -0
- package/dist/edit/odt/editor.cjs +98 -0
- package/dist/edit/odt/editor.d.cts +25 -0
- package/dist/edit/odt/editor.d.ts +25 -0
- package/dist/edit/odt/editor.js +95 -0
- package/dist/edit/odt/list.cjs +82 -0
- package/dist/edit/odt/list.d.cts +2 -0
- package/dist/edit/odt/list.d.ts +2 -0
- package/dist/edit/odt/list.js +79 -0
- package/dist/edit/odt/paragraph.cjs +84 -0
- package/dist/edit/odt/paragraph.d.cts +2 -0
- package/dist/edit/odt/paragraph.d.ts +2 -0
- package/dist/edit/odt/paragraph.js +82 -0
- package/dist/edit/odt/props.cjs +26 -0
- package/dist/edit/odt/props.d.cts +7 -0
- package/dist/edit/odt/props.d.ts +7 -0
- package/dist/edit/odt/props.js +23 -0
- package/dist/edit/odt/run.cjs +82 -0
- package/dist/edit/odt/run.d.cts +2 -0
- package/dist/edit/odt/run.d.ts +2 -0
- package/dist/edit/odt/run.js +80 -0
- package/dist/edit/odt/scaffold.cjs +109 -0
- package/dist/edit/odt/scaffold.d.cts +5 -0
- package/dist/edit/odt/scaffold.d.ts +5 -0
- package/dist/edit/odt/scaffold.js +108 -0
- package/dist/edit/odt/table.cjs +123 -0
- package/dist/edit/odt/table.d.cts +37 -0
- package/dist/edit/odt/table.d.ts +37 -0
- package/dist/edit/odt/table.js +119 -0
- package/dist/edit/pptx/content.cjs +49 -0
- package/dist/edit/pptx/content.d.cts +6 -0
- package/dist/edit/pptx/content.d.ts +6 -0
- package/dist/edit/pptx/content.js +48 -0
- package/dist/edit/pptx/editor.cjs +187 -0
- package/dist/edit/pptx/editor.d.cts +20 -0
- package/dist/edit/pptx/editor.d.ts +20 -0
- package/dist/edit/pptx/editor.js +184 -0
- package/dist/edit/pptx/image.cjs +27 -0
- package/dist/edit/pptx/image.d.cts +2 -0
- package/dist/edit/pptx/image.d.ts +2 -0
- package/dist/edit/pptx/image.js +26 -0
- package/dist/edit/pptx/scaffold.cjs +292 -0
- package/dist/edit/pptx/scaffold.d.cts +13 -0
- package/dist/edit/pptx/scaffold.d.ts +13 -0
- package/dist/edit/pptx/scaffold.js +283 -0
- package/dist/edit/pptx/shape.cjs +182 -0
- package/dist/edit/pptx/shape.d.cts +2 -0
- package/dist/edit/pptx/shape.d.ts +2 -0
- package/dist/edit/pptx/shape.js +179 -0
- package/dist/edit/pptx/slide.cjs +146 -0
- package/dist/edit/pptx/slide.d.cts +33 -0
- package/dist/edit/pptx/slide.d.ts +33 -0
- package/dist/edit/pptx/slide.js +145 -0
- package/dist/firebird/backup.cjs +150 -0
- package/dist/firebird/backup.d.cts +21 -0
- package/dist/firebird/backup.d.ts +21 -0
- package/dist/firebird/backup.js +145 -0
- package/dist/firebird/blr-types.cjs +118 -0
- package/dist/firebird/blr-types.d.cts +2 -0
- package/dist/firebird/blr-types.d.ts +2 -0
- package/dist/firebird/blr-types.js +90 -0
- package/dist/firebird/data.cjs +231 -0
- package/dist/firebird/data.d.cts +17 -0
- package/dist/firebird/data.d.ts +17 -0
- package/dist/firebird/data.js +228 -0
- package/dist/firebird/date.cjs +63 -0
- package/dist/firebird/date.d.cts +17 -0
- package/dist/firebird/date.d.ts +17 -0
- package/dist/firebird/date.js +58 -0
- package/dist/firebird/reader.cjs +157 -0
- package/dist/firebird/reader.d.cts +2 -0
- package/dist/firebird/reader.d.ts +2 -0
- package/dist/firebird/reader.js +154 -0
- package/dist/firebird/schema.cjs +91 -0
- package/dist/firebird/schema.d.cts +2 -0
- package/dist/firebird/schema.d.ts +2 -0
- package/dist/firebird/schema.js +89 -0
- package/dist/geometry-DvwdrIij.d.cts +5 -0
- package/dist/geometry-DvwdrIij.d.ts +5 -0
- package/dist/hsqldb/cache.cjs +88 -0
- package/dist/hsqldb/cache.d.cts +13 -0
- package/dist/hsqldb/cache.d.ts +13 -0
- package/dist/hsqldb/cache.js +84 -0
- package/dist/hsqldb/rowformat.cjs +222 -0
- package/dist/hsqldb/rowformat.d.cts +21 -0
- package/dist/hsqldb/rowformat.d.ts +21 -0
- package/dist/hsqldb/rowformat.js +218 -0
- package/dist/hsqldb/script.cjs +450 -0
- package/dist/hsqldb/script.d.cts +19 -0
- package/dist/hsqldb/script.d.ts +19 -0
- package/dist/hsqldb/script.js +447 -0
- package/dist/image-B-xQWYYS.d.ts +16 -0
- package/dist/image-BZDy72Jb.d.cts +16 -0
- package/dist/image-BfRLAD9B.d.cts +18 -0
- package/dist/image-BfRLAD9B.d.ts +18 -0
- package/dist/image-CeqwL-Qs.d.ts +14 -0
- package/dist/image-DWX6cNOD.d.cts +14 -0
- package/dist/index.cjs +204 -10863
- package/dist/index.d.cts +72 -1407
- package/dist/index.d.ts +72 -1407
- package/dist/index.js +68 -10728
- package/dist/layout/drawing.cjs +117 -0
- package/dist/layout/drawing.d.cts +13 -0
- package/dist/layout/drawing.d.ts +13 -0
- package/dist/layout/drawing.js +116 -0
- package/dist/layout/engine.cjs +216 -0
- package/dist/layout/engine.d.cts +19 -0
- package/dist/layout/engine.d.ts +19 -0
- package/dist/layout/engine.js +215 -0
- package/dist/layout/reconstruct.cjs +809 -0
- package/dist/layout/reconstruct.d.cts +12 -0
- package/dist/layout/reconstruct.d.ts +12 -0
- package/dist/layout/reconstruct.js +805 -0
- package/dist/layout/shared.cjs +104 -0
- package/dist/layout/shared.d.cts +15 -0
- package/dist/layout/shared.d.ts +15 -0
- package/dist/layout/shared.js +96 -0
- package/dist/layout/sheets.cjs +413 -0
- package/dist/layout/sheets.d.cts +14 -0
- package/dist/layout/sheets.d.ts +14 -0
- package/dist/layout/sheets.js +414 -0
- package/dist/layout/slides.cjs +194 -0
- package/dist/layout/slides.d.cts +25 -0
- package/dist/layout/slides.d.ts +25 -0
- package/dist/layout/slides.js +192 -0
- package/dist/list-BuBM9rwQ.d.cts +24 -0
- package/dist/list-CvKxhy3y.d.ts +24 -0
- package/dist/mathml/compose.cjs +53 -0
- package/dist/mathml/compose.d.cts +8 -0
- package/dist/mathml/compose.d.ts +8 -0
- package/dist/mathml/compose.js +49 -0
- package/dist/mathml/layout-types.cjs +0 -0
- package/dist/mathml/layout-types.d.cts +50 -0
- package/dist/mathml/layout-types.d.ts +50 -0
- package/dist/mathml/layout-types.js +0 -0
- package/dist/mathml/layout.cjs +373 -0
- package/dist/mathml/layout.d.cts +24 -0
- package/dist/mathml/layout.d.ts +24 -0
- package/dist/mathml/layout.js +371 -0
- package/dist/mathml/length.cjs +41 -0
- package/dist/mathml/length.d.cts +4 -0
- package/dist/mathml/length.d.ts +4 -0
- package/dist/mathml/length.js +40 -0
- package/dist/mathml/metrics.cjs +0 -0
- package/dist/mathml/metrics.d.cts +44 -0
- package/dist/mathml/metrics.d.ts +44 -0
- package/dist/mathml/metrics.js +0 -0
- package/dist/mathml/nodes.cjs +39 -0
- package/dist/mathml/nodes.d.cts +2 -0
- package/dist/mathml/nodes.d.ts +2 -0
- package/dist/mathml/nodes.js +32 -0
- package/dist/mathml/operators.cjs +189 -0
- package/dist/mathml/operators.d.cts +13 -0
- package/dist/mathml/operators.d.ts +13 -0
- package/dist/mathml/operators.js +188 -0
- package/dist/mathml/radical.cjs +46 -0
- package/dist/mathml/radical.d.cts +10 -0
- package/dist/mathml/radical.d.ts +10 -0
- package/dist/mathml/radical.js +45 -0
- package/dist/mathml/variant.cjs +1160 -0
- package/dist/mathml/variant.d.cts +7 -0
- package/dist/mathml/variant.d.ts +7 -0
- package/dist/mathml/variant.js +1157 -0
- package/dist/model/bytes.cjs +88 -0
- package/dist/model/bytes.d.cts +12 -0
- package/dist/model/bytes.d.ts +12 -0
- package/dist/model/bytes.js +80 -0
- package/dist/model/color.cjs +26 -0
- package/dist/model/color.d.cts +2 -0
- package/dist/model/color.d.ts +2 -0
- package/dist/model/color.js +2 -0
- package/dist/model/content.cjs +34 -0
- package/dist/model/content.d.cts +362 -0
- package/dist/model/content.d.ts +362 -0
- package/dist/model/content.js +32 -0
- package/dist/model/formula.cjs +0 -0
- package/dist/model/formula.d.cts +8 -0
- package/dist/model/formula.d.ts +8 -0
- package/dist/model/formula.js +0 -0
- package/dist/model/geometry.cjs +55 -0
- package/dist/model/geometry.d.cts +2 -0
- package/dist/model/geometry.d.ts +2 -0
- package/dist/model/geometry.js +12 -0
- package/dist/model/style.cjs +20 -0
- package/dist/model/style.d.cts +2 -0
- package/dist/model/style.d.ts +2 -0
- package/dist/model/style.js +2 -0
- package/dist/model/units.cjs +55 -0
- package/dist/model/units.d.cts +20 -0
- package/dist/model/units.d.ts +20 -0
- package/dist/model/units.js +38 -0
- package/dist/nodes-pArN9ilm.d.cts +27 -0
- package/dist/nodes-pArN9ilm.d.ts +27 -0
- package/dist/odb/csv.cjs +48 -0
- package/dist/odb/csv.d.cts +14 -0
- package/dist/odb/csv.d.ts +14 -0
- package/dist/odb/csv.js +45 -0
- package/dist/odb/read.cjs +87 -0
- package/dist/odb/read.d.cts +15 -0
- package/dist/odb/read.d.ts +15 -0
- package/dist/odb/read.js +85 -0
- package/dist/odb/spreadsheet.cjs +68 -0
- package/dist/odb/spreadsheet.d.cts +6 -0
- package/dist/odb/spreadsheet.d.ts +6 -0
- package/dist/odb/spreadsheet.js +67 -0
- package/dist/odf/formula/detect.cjs +29 -0
- package/dist/odf/formula/detect.d.cts +12 -0
- package/dist/odf/formula/detect.d.ts +12 -0
- package/dist/odf/formula/detect.js +28 -0
- package/dist/odf/formula/placeholder.cjs +37 -0
- package/dist/odf/formula/placeholder.d.cts +14 -0
- package/dist/odf/formula/placeholder.d.ts +14 -0
- package/dist/odf/formula/placeholder.js +36 -0
- package/dist/odf/formula/read.cjs +32 -0
- package/dist/odf/formula/read.d.cts +11 -0
- package/dist/odf/formula/read.d.ts +11 -0
- package/dist/odf/formula/read.js +30 -0
- package/dist/odf/odg/read.cjs +15 -0
- package/dist/odf/odg/read.d.cts +6 -0
- package/dist/odf/odg/read.d.ts +6 -0
- package/dist/odf/odg/read.js +14 -0
- package/dist/odf/odp/read.cjs +45 -0
- package/dist/odf/odp/read.d.cts +11 -0
- package/dist/odf/odp/read.d.ts +11 -0
- package/dist/odf/odp/read.js +44 -0
- package/dist/odf/ods/read.cjs +15 -0
- package/dist/odf/ods/read.d.cts +6 -0
- package/dist/odf/ods/read.d.ts +6 -0
- package/dist/odf/ods/read.js +14 -0
- package/dist/odf/odt/read.cjs +43 -0
- package/dist/odf/odt/read.d.cts +11 -0
- package/dist/odf/odt/read.d.ts +11 -0
- package/dist/odf/odt/read.js +42 -0
- package/dist/odf-package/manifest.cjs +62 -0
- package/dist/odf-package/manifest.d.cts +2 -0
- package/dist/odf-package/manifest.d.ts +2 -0
- package/dist/odf-package/manifest.js +2 -0
- package/dist/odf-package/media.cjs +34 -0
- package/dist/odf-package/media.d.cts +8 -0
- package/dist/odf-package/media.d.ts +8 -0
- package/dist/odf-package/media.js +34 -0
- package/dist/ooxml/docx/read.cjs +15 -0
- package/dist/ooxml/docx/read.d.cts +6 -0
- package/dist/ooxml/docx/read.d.ts +6 -0
- package/dist/ooxml/docx/read.js +14 -0
- package/dist/ooxml/pptx/read.cjs +15 -0
- package/dist/ooxml/pptx/read.d.cts +6 -0
- package/dist/ooxml/pptx/read.d.ts +6 -0
- package/dist/ooxml/pptx/read.js +14 -0
- package/dist/opc/content-types.cjs +47 -0
- package/dist/opc/content-types.d.cts +7 -0
- package/dist/opc/content-types.d.ts +7 -0
- package/dist/opc/content-types.js +44 -0
- package/dist/opc/media.cjs +45 -0
- package/dist/opc/media.d.cts +10 -0
- package/dist/opc/media.d.ts +10 -0
- package/dist/opc/media.js +44 -0
- package/dist/opc/paths.cjs +28 -0
- package/dist/opc/paths.d.cts +5 -0
- package/dist/opc/paths.d.ts +5 -0
- package/dist/opc/paths.js +26 -0
- package/dist/opc/rels.cjs +47 -0
- package/dist/opc/rels.d.cts +10 -0
- package/dist/opc/rels.d.ts +10 -0
- package/dist/opc/rels.js +46 -0
- package/dist/paragraph-BXbXKPy3.d.cts +30 -0
- package/dist/paragraph-CoUi_88j.d.ts +30 -0
- package/dist/ports/abort.cjs +7 -0
- package/dist/ports/abort.d.cts +4 -0
- package/dist/ports/abort.d.ts +4 -0
- package/dist/ports/abort.js +6 -0
- package/dist/ports/clock.cjs +9 -0
- package/dist/ports/clock.d.cts +8 -0
- package/dist/ports/clock.d.ts +8 -0
- package/dist/ports/clock.js +7 -0
- package/dist/reader-DP0Mbaj4.d.cts +41 -0
- package/dist/reader-DP0Mbaj4.d.ts +41 -0
- package/dist/run-B3GNScJH.d.cts +38 -0
- package/dist/run-CJfh8rv3.d.ts +38 -0
- package/dist/run-D2rTWHbt.d.ts +38 -0
- package/dist/run-F8JN7Vy4.d.cts +38 -0
- package/dist/schema-Acco3Ezi.d.cts +22 -0
- package/dist/schema-VkAA6pF5.d.ts +22 -0
- package/dist/shape-BUfjw5eZ.d.cts +35 -0
- package/dist/shape-BfN3m52m.d.ts +30 -0
- package/dist/shape-CN2ycxOo.d.cts +30 -0
- package/dist/shape-CTkl6kt8.d.ts +35 -0
- package/dist/style-DkamR3aY.d.cts +2 -0
- package/dist/style-DkamR3aY.d.ts +2 -0
- package/dist/vector-ClohqsOe.d.cts +76 -0
- package/dist/vector-ClohqsOe.d.ts +76 -0
- package/dist/xml/edit.cjs +65 -0
- package/dist/xml/edit.d.cts +12 -0
- package/dist/xml/edit.d.ts +12 -0
- package/dist/xml/edit.js +57 -0
- package/dist/xml/entities.cjs +12 -0
- package/dist/xml/entities.d.cts +5 -0
- package/dist/xml/entities.d.ts +5 -0
- package/dist/xml/entities.js +10 -0
- package/dist/xml/fragment.cjs +22 -0
- package/dist/xml/fragment.d.cts +6 -0
- package/dist/xml/fragment.d.ts +6 -0
- package/dist/xml/fragment.js +20 -0
- package/dist/xml/odf-text.cjs +53 -0
- package/dist/xml/odf-text.d.cts +6 -0
- package/dist/xml/odf-text.d.ts +6 -0
- package/dist/xml/odf-text.js +51 -0
- package/dist/xml/query.cjs +33 -0
- package/dist/xml/query.d.cts +12 -0
- package/dist/xml/query.d.ts +12 -0
- package/dist/xml/query.js +29 -0
- package/package.json +9 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { el } from "../../xml/fragment.js";
|
|
2
|
+
import { MASTER_PAGE_NAME, createEmptyOdpPackage } from "./scaffold.js";
|
|
3
|
+
import { OdpSlide } from "./slide.js";
|
|
4
|
+
import { attr } from "ooxml.js";
|
|
5
|
+
import { decodePackage as decodePackage$1, encodePackage as encodePackage$1, formatOdfLength, parseOdfLength } from "odf.js";
|
|
6
|
+
//#region src/edit/odp/editor.ts
|
|
7
|
+
const CONTENT_PART_PATH = "content.xml";
|
|
8
|
+
const STYLES_PART_PATH = "styles.xml";
|
|
9
|
+
function directChild(parent, tag) {
|
|
10
|
+
for (const child of parent.children) if (child.type === "element" && child.tag === tag) return child;
|
|
11
|
+
}
|
|
12
|
+
function findRoot(pkg, partPath) {
|
|
13
|
+
const part = pkg.parts[partPath];
|
|
14
|
+
const root = part?.kind === "xml" ? part.nodes.find((n) => n.type === "element") : void 0;
|
|
15
|
+
if (root === void 0) throw new Error(`package has no root element at ${partPath}`);
|
|
16
|
+
return root;
|
|
17
|
+
}
|
|
18
|
+
function findOfficePresentation(pkg) {
|
|
19
|
+
const body = directChild(findRoot(pkg, CONTENT_PART_PATH), "office:body");
|
|
20
|
+
const presentation = body === void 0 ? void 0 : directChild(body, "office:presentation");
|
|
21
|
+
if (presentation === void 0) throw new Error(`${CONTENT_PART_PATH} has no office:body/office:presentation element`);
|
|
22
|
+
return presentation;
|
|
23
|
+
}
|
|
24
|
+
function findPageLayoutProperties(pkg) {
|
|
25
|
+
const pageLayout = directChild(findRoot(pkg, STYLES_PART_PATH), "office:automatic-styles")?.children.find((c) => c.type === "element" && c.tag === "style:page-layout" && attr(c, "style:name") === "PM1");
|
|
26
|
+
const properties = pageLayout === void 0 ? void 0 : directChild(pageLayout, "style:page-layout-properties");
|
|
27
|
+
if (properties === void 0) throw new Error(`${STYLES_PART_PATH} has no style:page-layout[style:name="PM1"]/style:page-layout-properties element`);
|
|
28
|
+
return properties;
|
|
29
|
+
}
|
|
30
|
+
var OdpEditor = class {
|
|
31
|
+
pkg;
|
|
32
|
+
constructor(pkg) {
|
|
33
|
+
this.pkg = pkg;
|
|
34
|
+
}
|
|
35
|
+
slides() {
|
|
36
|
+
const presentation = findOfficePresentation(this.pkg);
|
|
37
|
+
const out = [];
|
|
38
|
+
for (const child of presentation.children) if (child.type === "element" && child.tag === "draw:page") {
|
|
39
|
+
const context = { pkg: this.pkg };
|
|
40
|
+
out.push(new OdpSlide(presentation.children, child, context));
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
addSlide() {
|
|
45
|
+
const presentation = findOfficePresentation(this.pkg);
|
|
46
|
+
const pageElement = el("draw:page", { "draw:master-page-name": MASTER_PAGE_NAME });
|
|
47
|
+
presentation.children.push(pageElement);
|
|
48
|
+
const context = { pkg: this.pkg };
|
|
49
|
+
return new OdpSlide(presentation.children, pageElement, context);
|
|
50
|
+
}
|
|
51
|
+
removeSlideAt(index) {
|
|
52
|
+
const presentation = findOfficePresentation(this.pkg);
|
|
53
|
+
const target = presentation.children.filter((c) => c.type === "element" && c.tag === "draw:page")[index];
|
|
54
|
+
if (target === void 0) throw new Error(`slide index ${index} does not exist`);
|
|
55
|
+
const listIndex = presentation.children.indexOf(target);
|
|
56
|
+
presentation.children.splice(listIndex, 1);
|
|
57
|
+
}
|
|
58
|
+
moveSlide(from, to) {
|
|
59
|
+
const presentation = findOfficePresentation(this.pkg);
|
|
60
|
+
const pageIndices = [];
|
|
61
|
+
presentation.children.forEach((child, i) => {
|
|
62
|
+
if (child.type === "element" && child.tag === "draw:page") pageIndices.push(i);
|
|
63
|
+
});
|
|
64
|
+
const fromChildIndex = pageIndices[from];
|
|
65
|
+
if (fromChildIndex === void 0) throw new Error(`slide index ${from} does not exist`);
|
|
66
|
+
const [moved] = presentation.children.splice(fromChildIndex, 1);
|
|
67
|
+
if (moved === void 0) throw new Error(`slide index ${from} does not exist`);
|
|
68
|
+
const updatedIndices = [];
|
|
69
|
+
presentation.children.forEach((child, i) => {
|
|
70
|
+
if (child.type === "element" && child.tag === "draw:page") updatedIndices.push(i);
|
|
71
|
+
});
|
|
72
|
+
const insertAt = to < updatedIndices.length ? updatedIndices[to] ?? presentation.children.length : presentation.children.length;
|
|
73
|
+
presentation.children.splice(insertAt, 0, moved);
|
|
74
|
+
}
|
|
75
|
+
get slideSize() {
|
|
76
|
+
const properties = findPageLayoutProperties(this.pkg);
|
|
77
|
+
const widthValue = attr(properties, "fo:page-width");
|
|
78
|
+
const heightValue = attr(properties, "fo:page-height");
|
|
79
|
+
const widthPt = widthValue === void 0 ? void 0 : parseOdfLength(widthValue);
|
|
80
|
+
const heightPt = heightValue === void 0 ? void 0 : parseOdfLength(heightValue);
|
|
81
|
+
return {
|
|
82
|
+
widthPt: widthPt ?? 0,
|
|
83
|
+
heightPt: heightPt ?? 0
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
set slideSize(size) {
|
|
87
|
+
const properties = findPageLayoutProperties(this.pkg);
|
|
88
|
+
properties.attributes = [{
|
|
89
|
+
name: "fo:page-width",
|
|
90
|
+
value: formatOdfLength(size.widthPt)
|
|
91
|
+
}, {
|
|
92
|
+
name: "fo:page-height",
|
|
93
|
+
value: formatOdfLength(size.heightPt)
|
|
94
|
+
}];
|
|
95
|
+
}
|
|
96
|
+
toPackage() {
|
|
97
|
+
return this.pkg;
|
|
98
|
+
}
|
|
99
|
+
toBytes() {
|
|
100
|
+
return encodePackage$1(this.pkg);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
function openOdp(bytes) {
|
|
104
|
+
return new OdpEditor(decodePackage$1(bytes));
|
|
105
|
+
}
|
|
106
|
+
function createOdp() {
|
|
107
|
+
return new OdpEditor(createEmptyOdpPackage());
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
export { OdpEditor, createOdp, openOdp };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_odf_package_media = require("../../odf-package/media.cjs");
|
|
3
|
+
const require_edit_odp_shape = require("./shape.cjs");
|
|
4
|
+
//#region src/edit/odp/image.ts
|
|
5
|
+
function insertImageFrameMedia(context, frame, image) {
|
|
6
|
+
const { partPath } = require_odf_package_media.addImageMedia(context.pkg, image.bytes, image.format);
|
|
7
|
+
return require_edit_odp_shape.buildImageFrame(partPath, frame);
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.insertImageFrameMedia = insertImageFrameMedia;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { addImageMedia } from "../../odf-package/media.js";
|
|
2
|
+
import { buildImageFrame } from "./shape.js";
|
|
3
|
+
//#region src/edit/odp/image.ts
|
|
4
|
+
function insertImageFrameMedia(context, frame, image) {
|
|
5
|
+
const { partPath } = addImageMedia(context.pkg, image.bytes, image.format);
|
|
6
|
+
return buildImageFrame(partPath, frame);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { insertImageFrameMedia };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_xml_fragment = require("../../xml/fragment.cjs");
|
|
3
|
+
let odf_js = require("odf.js");
|
|
4
|
+
let document_schema_js = require("document-schema.js");
|
|
5
|
+
//#region src/edit/odp/scaffold.ts
|
|
6
|
+
const CONTENT_NS_PREFIXES = [
|
|
7
|
+
"office",
|
|
8
|
+
"style",
|
|
9
|
+
"text",
|
|
10
|
+
"table",
|
|
11
|
+
"draw",
|
|
12
|
+
"presentation",
|
|
13
|
+
"fo",
|
|
14
|
+
"svg",
|
|
15
|
+
"xlink"
|
|
16
|
+
];
|
|
17
|
+
const STYLES_NS_PREFIXES = [
|
|
18
|
+
"office",
|
|
19
|
+
"style",
|
|
20
|
+
"text",
|
|
21
|
+
"table",
|
|
22
|
+
"draw",
|
|
23
|
+
"presentation",
|
|
24
|
+
"fo",
|
|
25
|
+
"svg",
|
|
26
|
+
"xlink"
|
|
27
|
+
];
|
|
28
|
+
const META_NS_PREFIXES = [
|
|
29
|
+
"office",
|
|
30
|
+
"meta",
|
|
31
|
+
"dc"
|
|
32
|
+
];
|
|
33
|
+
const ODF_VERSION = "1.3";
|
|
34
|
+
const PAGE_LAYOUT_NAME = "PM1";
|
|
35
|
+
const MASTER_PAGE_NAME = "Standard";
|
|
36
|
+
function declaration() {
|
|
37
|
+
return {
|
|
38
|
+
type: "declaration",
|
|
39
|
+
attributes: [
|
|
40
|
+
{
|
|
41
|
+
name: "version",
|
|
42
|
+
value: "1.0"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "encoding",
|
|
46
|
+
value: "UTF-8"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "standalone",
|
|
50
|
+
value: "yes"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function buildPageLayout() {
|
|
56
|
+
return require_xml_fragment.el("style:page-layout", { "style:name": "PM1" }, [require_xml_fragment.el("style:page-layout-properties", {
|
|
57
|
+
"fo:page-width": `${document_schema_js.SLIDE_SIZE_WIDESCREEN.widthPt}pt`,
|
|
58
|
+
"fo:page-height": `${document_schema_js.SLIDE_SIZE_WIDESCREEN.heightPt}pt`
|
|
59
|
+
})]);
|
|
60
|
+
}
|
|
61
|
+
function buildStylesXml() {
|
|
62
|
+
return require_xml_fragment.el("office:document-styles", {
|
|
63
|
+
...(0, odf_js.xmlnsAttributes)([...STYLES_NS_PREFIXES]),
|
|
64
|
+
"office:version": ODF_VERSION
|
|
65
|
+
}, [
|
|
66
|
+
require_xml_fragment.el("office:styles"),
|
|
67
|
+
require_xml_fragment.el("office:automatic-styles", {}, [buildPageLayout()]),
|
|
68
|
+
require_xml_fragment.el("office:master-styles", {}, [require_xml_fragment.el("style:master-page", {
|
|
69
|
+
"style:name": MASTER_PAGE_NAME,
|
|
70
|
+
"style:page-layout-name": "PM1"
|
|
71
|
+
})])
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
function buildContentXml() {
|
|
75
|
+
return require_xml_fragment.el("office:document-content", {
|
|
76
|
+
...(0, odf_js.xmlnsAttributes)([...CONTENT_NS_PREFIXES]),
|
|
77
|
+
"office:version": ODF_VERSION
|
|
78
|
+
}, [require_xml_fragment.el("office:automatic-styles"), require_xml_fragment.el("office:body", {}, [require_xml_fragment.el("office:presentation")])]);
|
|
79
|
+
}
|
|
80
|
+
function buildMetaXml() {
|
|
81
|
+
return require_xml_fragment.el("office:document-meta", {
|
|
82
|
+
...(0, odf_js.xmlnsAttributes)([...META_NS_PREFIXES]),
|
|
83
|
+
"office:version": ODF_VERSION
|
|
84
|
+
}, [require_xml_fragment.el("office:meta")]);
|
|
85
|
+
}
|
|
86
|
+
function createEmptyOdpPackage() {
|
|
87
|
+
const pkg = { parts: {
|
|
88
|
+
"content.xml": {
|
|
89
|
+
kind: "xml",
|
|
90
|
+
nodes: [declaration(), buildContentXml()]
|
|
91
|
+
},
|
|
92
|
+
"styles.xml": {
|
|
93
|
+
kind: "xml",
|
|
94
|
+
nodes: [declaration(), buildStylesXml()]
|
|
95
|
+
},
|
|
96
|
+
"meta.xml": {
|
|
97
|
+
kind: "xml",
|
|
98
|
+
nodes: [declaration(), buildMetaXml()]
|
|
99
|
+
}
|
|
100
|
+
} };
|
|
101
|
+
(0, odf_js.setDocumentMediaType)(pkg, odf_js.ODF_MEDIA_TYPES.odp);
|
|
102
|
+
(0, odf_js.syncManifest)(pkg);
|
|
103
|
+
return pkg;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
exports.MASTER_PAGE_NAME = MASTER_PAGE_NAME;
|
|
107
|
+
exports.PAGE_LAYOUT_NAME = PAGE_LAYOUT_NAME;
|
|
108
|
+
exports.createEmptyOdpPackage = createEmptyOdpPackage;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Package } from "odf.js";
|
|
2
|
+
//#region src/edit/odp/scaffold.d.ts
|
|
3
|
+
declare const PAGE_LAYOUT_NAME = "PM1";
|
|
4
|
+
declare const MASTER_PAGE_NAME = "Standard";
|
|
5
|
+
declare function createEmptyOdpPackage(): Package;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { MASTER_PAGE_NAME, PAGE_LAYOUT_NAME, createEmptyOdpPackage };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Package } from "odf.js";
|
|
2
|
+
//#region src/edit/odp/scaffold.d.ts
|
|
3
|
+
declare const PAGE_LAYOUT_NAME = "PM1";
|
|
4
|
+
declare const MASTER_PAGE_NAME = "Standard";
|
|
5
|
+
declare function createEmptyOdpPackage(): Package;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { MASTER_PAGE_NAME, PAGE_LAYOUT_NAME, createEmptyOdpPackage };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { SLIDE_SIZE_WIDESCREEN } from "../../model/geometry.js";
|
|
2
|
+
import { el } from "../../xml/fragment.js";
|
|
3
|
+
import { ODF_MEDIA_TYPES, setDocumentMediaType, syncManifest, xmlnsAttributes } from "odf.js";
|
|
4
|
+
//#region src/edit/odp/scaffold.ts
|
|
5
|
+
const CONTENT_NS_PREFIXES = [
|
|
6
|
+
"office",
|
|
7
|
+
"style",
|
|
8
|
+
"text",
|
|
9
|
+
"table",
|
|
10
|
+
"draw",
|
|
11
|
+
"presentation",
|
|
12
|
+
"fo",
|
|
13
|
+
"svg",
|
|
14
|
+
"xlink"
|
|
15
|
+
];
|
|
16
|
+
const STYLES_NS_PREFIXES = [
|
|
17
|
+
"office",
|
|
18
|
+
"style",
|
|
19
|
+
"text",
|
|
20
|
+
"table",
|
|
21
|
+
"draw",
|
|
22
|
+
"presentation",
|
|
23
|
+
"fo",
|
|
24
|
+
"svg",
|
|
25
|
+
"xlink"
|
|
26
|
+
];
|
|
27
|
+
const META_NS_PREFIXES = [
|
|
28
|
+
"office",
|
|
29
|
+
"meta",
|
|
30
|
+
"dc"
|
|
31
|
+
];
|
|
32
|
+
const ODF_VERSION = "1.3";
|
|
33
|
+
const PAGE_LAYOUT_NAME = "PM1";
|
|
34
|
+
const MASTER_PAGE_NAME = "Standard";
|
|
35
|
+
function declaration() {
|
|
36
|
+
return {
|
|
37
|
+
type: "declaration",
|
|
38
|
+
attributes: [
|
|
39
|
+
{
|
|
40
|
+
name: "version",
|
|
41
|
+
value: "1.0"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "encoding",
|
|
45
|
+
value: "UTF-8"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "standalone",
|
|
49
|
+
value: "yes"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function buildPageLayout() {
|
|
55
|
+
return el("style:page-layout", { "style:name": "PM1" }, [el("style:page-layout-properties", {
|
|
56
|
+
"fo:page-width": `${SLIDE_SIZE_WIDESCREEN.widthPt}pt`,
|
|
57
|
+
"fo:page-height": `${SLIDE_SIZE_WIDESCREEN.heightPt}pt`
|
|
58
|
+
})]);
|
|
59
|
+
}
|
|
60
|
+
function buildStylesXml() {
|
|
61
|
+
return el("office:document-styles", {
|
|
62
|
+
...xmlnsAttributes([...STYLES_NS_PREFIXES]),
|
|
63
|
+
"office:version": ODF_VERSION
|
|
64
|
+
}, [
|
|
65
|
+
el("office:styles"),
|
|
66
|
+
el("office:automatic-styles", {}, [buildPageLayout()]),
|
|
67
|
+
el("office:master-styles", {}, [el("style:master-page", {
|
|
68
|
+
"style:name": MASTER_PAGE_NAME,
|
|
69
|
+
"style:page-layout-name": "PM1"
|
|
70
|
+
})])
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
function buildContentXml() {
|
|
74
|
+
return el("office:document-content", {
|
|
75
|
+
...xmlnsAttributes([...CONTENT_NS_PREFIXES]),
|
|
76
|
+
"office:version": ODF_VERSION
|
|
77
|
+
}, [el("office:automatic-styles"), el("office:body", {}, [el("office:presentation")])]);
|
|
78
|
+
}
|
|
79
|
+
function buildMetaXml() {
|
|
80
|
+
return el("office:document-meta", {
|
|
81
|
+
...xmlnsAttributes([...META_NS_PREFIXES]),
|
|
82
|
+
"office:version": ODF_VERSION
|
|
83
|
+
}, [el("office:meta")]);
|
|
84
|
+
}
|
|
85
|
+
function createEmptyOdpPackage() {
|
|
86
|
+
const pkg = { parts: {
|
|
87
|
+
"content.xml": {
|
|
88
|
+
kind: "xml",
|
|
89
|
+
nodes: [declaration(), buildContentXml()]
|
|
90
|
+
},
|
|
91
|
+
"styles.xml": {
|
|
92
|
+
kind: "xml",
|
|
93
|
+
nodes: [declaration(), buildStylesXml()]
|
|
94
|
+
},
|
|
95
|
+
"meta.xml": {
|
|
96
|
+
kind: "xml",
|
|
97
|
+
nodes: [declaration(), buildMetaXml()]
|
|
98
|
+
}
|
|
99
|
+
} };
|
|
100
|
+
setDocumentMediaType(pkg, ODF_MEDIA_TYPES.odp);
|
|
101
|
+
syncManifest(pkg);
|
|
102
|
+
return pkg;
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { MASTER_PAGE_NAME, PAGE_LAYOUT_NAME, createEmptyOdpPackage };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_xml_fragment = require("../../xml/fragment.cjs");
|
|
3
|
+
const require_xml_edit = require("../../xml/edit.cjs");
|
|
4
|
+
const require_edit_odt_paragraph = require("../odt/paragraph.cjs");
|
|
5
|
+
const require_edit_odt_list = require("../odt/list.cjs");
|
|
6
|
+
let ooxml_js = require("ooxml.js");
|
|
7
|
+
let odf_js = require("odf.js");
|
|
8
|
+
//#region src/edit/odp/shape.ts
|
|
9
|
+
function directChild(parent, tag) {
|
|
10
|
+
for (const child of parent.children) if (child.type === "element" && child.tag === tag) return child;
|
|
11
|
+
}
|
|
12
|
+
function buildTransformAttr(frame, rotationDeg) {
|
|
13
|
+
const angleRad = -rotationDeg * Math.PI / 180;
|
|
14
|
+
const localCenter = {
|
|
15
|
+
xPt: frame.widthPt / 2,
|
|
16
|
+
yPt: frame.heightPt / 2
|
|
17
|
+
};
|
|
18
|
+
const rotatedCenter = (0, odf_js.applyOdfTransform)([{
|
|
19
|
+
kind: "rotate",
|
|
20
|
+
angleRad
|
|
21
|
+
}], localCenter);
|
|
22
|
+
const desiredCenter = {
|
|
23
|
+
xPt: frame.xPt + frame.widthPt / 2,
|
|
24
|
+
yPt: frame.yPt + frame.heightPt / 2
|
|
25
|
+
};
|
|
26
|
+
const txPt = desiredCenter.xPt - rotatedCenter.xPt;
|
|
27
|
+
const tyPt = desiredCenter.yPt - rotatedCenter.yPt;
|
|
28
|
+
return `rotate(${angleRad}) translate(${(0, odf_js.formatOdfLength)(txPt)} ${(0, odf_js.formatOdfLength)(tyPt)})`;
|
|
29
|
+
}
|
|
30
|
+
var OdpShape = class {
|
|
31
|
+
container;
|
|
32
|
+
node;
|
|
33
|
+
pkg;
|
|
34
|
+
removed = false;
|
|
35
|
+
constructor(container, node, pkg) {
|
|
36
|
+
this.container = container;
|
|
37
|
+
this.node = node;
|
|
38
|
+
this.pkg = pkg;
|
|
39
|
+
}
|
|
40
|
+
live() {
|
|
41
|
+
if (this.removed) throw new Error("this OdpShape has been removed from its slide and can no longer be used");
|
|
42
|
+
return this.node;
|
|
43
|
+
}
|
|
44
|
+
get name() {
|
|
45
|
+
return (0, ooxml_js.attr)(this.live(), "draw:name");
|
|
46
|
+
}
|
|
47
|
+
get frame() {
|
|
48
|
+
return (0, odf_js.resolveOdfShapeGeometry)(this.live())?.frame;
|
|
49
|
+
}
|
|
50
|
+
set frame(value) {
|
|
51
|
+
this.applyGeometry(value, this.rotationDeg);
|
|
52
|
+
}
|
|
53
|
+
get rotationDeg() {
|
|
54
|
+
return (0, odf_js.resolveOdfShapeGeometry)(this.live())?.rotationDeg;
|
|
55
|
+
}
|
|
56
|
+
set rotationDeg(value) {
|
|
57
|
+
const currentFrame = this.frame;
|
|
58
|
+
if (currentFrame === void 0) throw new Error("cannot set rotationDeg on a shape with no resolvable frame (missing svg:width/svg:height)");
|
|
59
|
+
this.applyGeometry(currentFrame, value);
|
|
60
|
+
}
|
|
61
|
+
applyGeometry(frame, rotationDeg) {
|
|
62
|
+
const node = this.live();
|
|
63
|
+
require_xml_edit.setAttr(node, "svg:width", (0, odf_js.formatOdfLength)(frame.widthPt));
|
|
64
|
+
require_xml_edit.setAttr(node, "svg:height", (0, odf_js.formatOdfLength)(frame.heightPt));
|
|
65
|
+
if (rotationDeg === void 0 || rotationDeg === 0) {
|
|
66
|
+
require_xml_edit.removeAttr(node, "draw:transform");
|
|
67
|
+
require_xml_edit.setAttr(node, "svg:x", (0, odf_js.formatOdfLength)(frame.xPt));
|
|
68
|
+
require_xml_edit.setAttr(node, "svg:y", (0, odf_js.formatOdfLength)(frame.yPt));
|
|
69
|
+
} else {
|
|
70
|
+
require_xml_edit.removeAttr(node, "svg:x");
|
|
71
|
+
require_xml_edit.removeAttr(node, "svg:y");
|
|
72
|
+
require_xml_edit.setAttr(node, "draw:transform", buildTransformAttr(frame, rotationDeg));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
textBox(create) {
|
|
76
|
+
const node = this.live();
|
|
77
|
+
const existing = directChild(node, "draw:text-box");
|
|
78
|
+
if (existing !== void 0 || !create) return existing;
|
|
79
|
+
const created = require_xml_fragment.el("draw:text-box");
|
|
80
|
+
node.children.push(created);
|
|
81
|
+
return created;
|
|
82
|
+
}
|
|
83
|
+
paragraphs() {
|
|
84
|
+
const textBox = this.textBox(false);
|
|
85
|
+
if (textBox === void 0) return [];
|
|
86
|
+
const out = [];
|
|
87
|
+
for (const child of textBox.children) if (child.type === "element" && child.tag === "text:p") out.push(new require_edit_odt_paragraph.OdtParagraph(textBox.children, child, this.pkg));
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
appendParagraph(init) {
|
|
91
|
+
const textBox = this.textBox(true);
|
|
92
|
+
const paragraphElement = require_edit_odt_paragraph.buildParagraph(this.pkg, init);
|
|
93
|
+
textBox.children.push(paragraphElement);
|
|
94
|
+
return new require_edit_odt_paragraph.OdtParagraph(textBox.children, paragraphElement, this.pkg);
|
|
95
|
+
}
|
|
96
|
+
get text() {
|
|
97
|
+
return this.paragraphs().map((p) => p.text).join("\n");
|
|
98
|
+
}
|
|
99
|
+
set text(value) {
|
|
100
|
+
const textBox = this.textBox(true);
|
|
101
|
+
textBox.children = [require_edit_odt_paragraph.buildParagraph(this.pkg, { text: value })];
|
|
102
|
+
}
|
|
103
|
+
addList() {
|
|
104
|
+
const textBox = this.textBox(true);
|
|
105
|
+
const listElement = require_edit_odt_list.buildList(this.pkg);
|
|
106
|
+
textBox.children.push(listElement);
|
|
107
|
+
return new require_edit_odt_list.OdtList(textBox.children, listElement, this.pkg);
|
|
108
|
+
}
|
|
109
|
+
remove() {
|
|
110
|
+
require_xml_edit.removeChild(this.container, this.live());
|
|
111
|
+
this.removed = true;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
function buildTextBoxFrame(pkg, frame, text) {
|
|
115
|
+
return require_xml_fragment.el("draw:frame", {
|
|
116
|
+
"svg:x": (0, odf_js.formatOdfLength)(frame.xPt),
|
|
117
|
+
"svg:y": (0, odf_js.formatOdfLength)(frame.yPt),
|
|
118
|
+
"svg:width": (0, odf_js.formatOdfLength)(frame.widthPt),
|
|
119
|
+
"svg:height": (0, odf_js.formatOdfLength)(frame.heightPt)
|
|
120
|
+
}, [require_xml_fragment.el("draw:text-box", {}, [require_edit_odt_paragraph.buildParagraph(pkg, { text })])]);
|
|
121
|
+
}
|
|
122
|
+
function buildImageFrame(partPath, frame) {
|
|
123
|
+
return require_xml_fragment.el("draw:frame", {
|
|
124
|
+
"svg:x": (0, odf_js.formatOdfLength)(frame.xPt),
|
|
125
|
+
"svg:y": (0, odf_js.formatOdfLength)(frame.yPt),
|
|
126
|
+
"svg:width": (0, odf_js.formatOdfLength)(frame.widthPt),
|
|
127
|
+
"svg:height": (0, odf_js.formatOdfLength)(frame.heightPt)
|
|
128
|
+
}, [require_xml_fragment.el("draw:image", { "xlink:href": partPath })]);
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
exports.OdpShape = OdpShape;
|
|
132
|
+
exports.buildImageFrame = buildImageFrame;
|
|
133
|
+
exports.buildTextBoxFrame = buildTextBoxFrame;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { el } from "../../xml/fragment.js";
|
|
2
|
+
import { removeAttr, removeChild, setAttr } from "../../xml/edit.js";
|
|
3
|
+
import { OdtParagraph, buildParagraph } from "../odt/paragraph.js";
|
|
4
|
+
import { OdtList, buildList } from "../odt/list.js";
|
|
5
|
+
import { attr } from "ooxml.js";
|
|
6
|
+
import { applyOdfTransform, formatOdfLength, resolveOdfShapeGeometry } from "odf.js";
|
|
7
|
+
//#region src/edit/odp/shape.ts
|
|
8
|
+
function directChild(parent, tag) {
|
|
9
|
+
for (const child of parent.children) if (child.type === "element" && child.tag === tag) return child;
|
|
10
|
+
}
|
|
11
|
+
function buildTransformAttr(frame, rotationDeg) {
|
|
12
|
+
const angleRad = -rotationDeg * Math.PI / 180;
|
|
13
|
+
const localCenter = {
|
|
14
|
+
xPt: frame.widthPt / 2,
|
|
15
|
+
yPt: frame.heightPt / 2
|
|
16
|
+
};
|
|
17
|
+
const rotatedCenter = applyOdfTransform([{
|
|
18
|
+
kind: "rotate",
|
|
19
|
+
angleRad
|
|
20
|
+
}], localCenter);
|
|
21
|
+
const desiredCenter = {
|
|
22
|
+
xPt: frame.xPt + frame.widthPt / 2,
|
|
23
|
+
yPt: frame.yPt + frame.heightPt / 2
|
|
24
|
+
};
|
|
25
|
+
const txPt = desiredCenter.xPt - rotatedCenter.xPt;
|
|
26
|
+
const tyPt = desiredCenter.yPt - rotatedCenter.yPt;
|
|
27
|
+
return `rotate(${angleRad}) translate(${formatOdfLength(txPt)} ${formatOdfLength(tyPt)})`;
|
|
28
|
+
}
|
|
29
|
+
var OdpShape = class {
|
|
30
|
+
container;
|
|
31
|
+
node;
|
|
32
|
+
pkg;
|
|
33
|
+
removed = false;
|
|
34
|
+
constructor(container, node, pkg) {
|
|
35
|
+
this.container = container;
|
|
36
|
+
this.node = node;
|
|
37
|
+
this.pkg = pkg;
|
|
38
|
+
}
|
|
39
|
+
live() {
|
|
40
|
+
if (this.removed) throw new Error("this OdpShape has been removed from its slide and can no longer be used");
|
|
41
|
+
return this.node;
|
|
42
|
+
}
|
|
43
|
+
get name() {
|
|
44
|
+
return attr(this.live(), "draw:name");
|
|
45
|
+
}
|
|
46
|
+
get frame() {
|
|
47
|
+
return resolveOdfShapeGeometry(this.live())?.frame;
|
|
48
|
+
}
|
|
49
|
+
set frame(value) {
|
|
50
|
+
this.applyGeometry(value, this.rotationDeg);
|
|
51
|
+
}
|
|
52
|
+
get rotationDeg() {
|
|
53
|
+
return resolveOdfShapeGeometry(this.live())?.rotationDeg;
|
|
54
|
+
}
|
|
55
|
+
set rotationDeg(value) {
|
|
56
|
+
const currentFrame = this.frame;
|
|
57
|
+
if (currentFrame === void 0) throw new Error("cannot set rotationDeg on a shape with no resolvable frame (missing svg:width/svg:height)");
|
|
58
|
+
this.applyGeometry(currentFrame, value);
|
|
59
|
+
}
|
|
60
|
+
applyGeometry(frame, rotationDeg) {
|
|
61
|
+
const node = this.live();
|
|
62
|
+
setAttr(node, "svg:width", formatOdfLength(frame.widthPt));
|
|
63
|
+
setAttr(node, "svg:height", formatOdfLength(frame.heightPt));
|
|
64
|
+
if (rotationDeg === void 0 || rotationDeg === 0) {
|
|
65
|
+
removeAttr(node, "draw:transform");
|
|
66
|
+
setAttr(node, "svg:x", formatOdfLength(frame.xPt));
|
|
67
|
+
setAttr(node, "svg:y", formatOdfLength(frame.yPt));
|
|
68
|
+
} else {
|
|
69
|
+
removeAttr(node, "svg:x");
|
|
70
|
+
removeAttr(node, "svg:y");
|
|
71
|
+
setAttr(node, "draw:transform", buildTransformAttr(frame, rotationDeg));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
textBox(create) {
|
|
75
|
+
const node = this.live();
|
|
76
|
+
const existing = directChild(node, "draw:text-box");
|
|
77
|
+
if (existing !== void 0 || !create) return existing;
|
|
78
|
+
const created = el("draw:text-box");
|
|
79
|
+
node.children.push(created);
|
|
80
|
+
return created;
|
|
81
|
+
}
|
|
82
|
+
paragraphs() {
|
|
83
|
+
const textBox = this.textBox(false);
|
|
84
|
+
if (textBox === void 0) return [];
|
|
85
|
+
const out = [];
|
|
86
|
+
for (const child of textBox.children) if (child.type === "element" && child.tag === "text:p") out.push(new OdtParagraph(textBox.children, child, this.pkg));
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
appendParagraph(init) {
|
|
90
|
+
const textBox = this.textBox(true);
|
|
91
|
+
const paragraphElement = buildParagraph(this.pkg, init);
|
|
92
|
+
textBox.children.push(paragraphElement);
|
|
93
|
+
return new OdtParagraph(textBox.children, paragraphElement, this.pkg);
|
|
94
|
+
}
|
|
95
|
+
get text() {
|
|
96
|
+
return this.paragraphs().map((p) => p.text).join("\n");
|
|
97
|
+
}
|
|
98
|
+
set text(value) {
|
|
99
|
+
const textBox = this.textBox(true);
|
|
100
|
+
textBox.children = [buildParagraph(this.pkg, { text: value })];
|
|
101
|
+
}
|
|
102
|
+
addList() {
|
|
103
|
+
const textBox = this.textBox(true);
|
|
104
|
+
const listElement = buildList(this.pkg);
|
|
105
|
+
textBox.children.push(listElement);
|
|
106
|
+
return new OdtList(textBox.children, listElement, this.pkg);
|
|
107
|
+
}
|
|
108
|
+
remove() {
|
|
109
|
+
removeChild(this.container, this.live());
|
|
110
|
+
this.removed = true;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
function buildTextBoxFrame(pkg, frame, text) {
|
|
114
|
+
return el("draw:frame", {
|
|
115
|
+
"svg:x": formatOdfLength(frame.xPt),
|
|
116
|
+
"svg:y": formatOdfLength(frame.yPt),
|
|
117
|
+
"svg:width": formatOdfLength(frame.widthPt),
|
|
118
|
+
"svg:height": formatOdfLength(frame.heightPt)
|
|
119
|
+
}, [el("draw:text-box", {}, [buildParagraph(pkg, { text })])]);
|
|
120
|
+
}
|
|
121
|
+
function buildImageFrame(partPath, frame) {
|
|
122
|
+
return el("draw:frame", {
|
|
123
|
+
"svg:x": formatOdfLength(frame.xPt),
|
|
124
|
+
"svg:y": formatOdfLength(frame.yPt),
|
|
125
|
+
"svg:width": formatOdfLength(frame.widthPt),
|
|
126
|
+
"svg:height": formatOdfLength(frame.heightPt)
|
|
127
|
+
}, [el("draw:image", { "xlink:href": partPath })]);
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { OdpShape, buildImageFrame, buildTextBoxFrame };
|