ooxml-core 1.1.0 → 1.2.1
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 +18 -18
- package/dist/{PptxHandler-75LOVF7I.mjs → PptxHandler-VQQS4VS6.mjs} +3 -3
- package/dist/automation/index.cjs +7567 -4401
- package/dist/automation/index.mjs +7567 -4401
- package/dist/chart/bar-cluster-geometry.d.ts +6 -0
- package/dist/chart/bar-cluster-geometry.d.ts.map +1 -1
- package/dist/chart/color-palettes.d.ts +2 -2
- package/dist/chart/color-palettes.d.ts.map +1 -1
- package/dist/chart/data-cache.d.ts +6 -0
- package/dist/chart/data-cache.d.ts.map +1 -0
- package/dist/chart/gradient-coincident-stops.d.ts +17 -0
- package/dist/chart/gradient-coincident-stops.d.ts.map +1 -0
- package/dist/chart/gradient-definition.d.ts +3 -3
- package/dist/chart/gradient-definition.d.ts.map +1 -1
- package/dist/chart/index.cjs +3069 -140
- package/dist/chart/index.d.ts +7 -0
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.mjs +3048 -141
- package/dist/chart/model-chrome.d.ts +39 -0
- package/dist/chart/model-chrome.d.ts.map +1 -0
- package/dist/chart/model-series.d.ts +189 -0
- package/dist/chart/model-series.d.ts.map +1 -0
- package/dist/chart/model.d.ts +202 -0
- package/dist/chart/model.d.ts.map +1 -0
- package/dist/chart/parse-chrome.d.ts +16 -0
- package/dist/chart/parse-chrome.d.ts.map +1 -0
- package/dist/chart/parse-plot.d.ts +11 -0
- package/dist/chart/parse-plot.d.ts.map +1 -0
- package/dist/chart/parse-series.d.ts +8 -0
- package/dist/chart/parse-series.d.ts.map +1 -0
- package/dist/chart/parse-space.d.ts +8 -0
- package/dist/chart/parse-space.d.ts.map +1 -0
- package/dist/chart/parse-text.d.ts +12 -0
- package/dist/chart/parse-text.d.ts.map +1 -0
- package/dist/chart/parse-util.d.ts +42 -0
- package/dist/chart/parse-util.d.ts.map +1 -0
- package/dist/{xlsx/layout → chart/render}/chart-appearance.d.ts +4 -4
- package/dist/chart/render/chart-appearance.d.ts.map +1 -0
- package/dist/chart/render/chart-colors.d.ts +9 -0
- package/dist/chart/render/chart-colors.d.ts.map +1 -0
- package/dist/chart/render/chart-scale.d.ts.map +1 -0
- package/dist/chart/render/chart-spacing.d.ts +6 -0
- package/dist/chart/render/chart-spacing.d.ts.map +1 -0
- package/dist/{xlsx/layout → chart/render}/chart-svg-appearance.d.ts +1 -1
- package/dist/chart/render/chart-svg-appearance.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-bars.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-legend.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-radial.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-text-metrics.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-title-text.d.ts.map +1 -0
- package/dist/chart/render/chart-svg-util.d.ts.map +1 -0
- package/dist/chart/render/chart-svg.d.ts.map +1 -0
- package/dist/chart/render/chart-title-text.d.ts +14 -0
- package/dist/chart/render/chart-title-text.d.ts.map +1 -0
- package/dist/chart/render/chart-value-axis.d.ts +6 -0
- package/dist/chart/render/chart-value-axis.d.ts.map +1 -0
- package/dist/chart/render/chart-view.d.ts +71 -0
- package/dist/chart/render/chart-view.d.ts.map +1 -0
- package/dist/chart/render/index.d.ts +9 -0
- package/dist/chart/render/index.d.ts.map +1 -0
- package/dist/chart/render/render-space.d.ts +34 -0
- package/dist/chart/render/render-space.d.ts.map +1 -0
- package/dist/chart/render/summary-from-space.d.ts +15 -0
- package/dist/chart/render/summary-from-space.d.ts.map +1 -0
- package/dist/chart/render/summary.d.ts +51 -0
- package/dist/chart/render/summary.d.ts.map +1 -0
- package/dist/chart/render/theme-palette.d.ts +8 -0
- package/dist/chart/render/theme-palette.d.ts.map +1 -0
- package/dist/chart/style-definition.d.ts +7 -7
- package/dist/chart/style-definition.d.ts.map +1 -1
- package/dist/chart/write-axes.d.ts +5 -0
- package/dist/chart/write-axes.d.ts.map +1 -0
- package/dist/chart/write-chrome.d.ts +9 -0
- package/dist/chart/write-chrome.d.ts.map +1 -0
- package/dist/chart/write-plot.d.ts +7 -0
- package/dist/chart/write-plot.d.ts.map +1 -0
- package/dist/chart/write-series.d.ts +7 -0
- package/dist/chart/write-series.d.ts.map +1 -0
- package/dist/chart/write-shape.d.ts +21 -0
- package/dist/chart/write-shape.d.ts.map +1 -0
- package/dist/chart/write-space.d.ts +15 -0
- package/dist/chart/write-space.d.ts.map +1 -0
- package/dist/chart/write-text-body.d.ts +6 -0
- package/dist/chart/write-text-body.d.ts.map +1 -0
- package/dist/chart/write-text.d.ts +15 -0
- package/dist/chart/write-text.d.ts.map +1 -0
- package/dist/chart/write-util.d.ts +24 -0
- package/dist/chart/write-util.d.ts.map +1 -0
- package/dist/chart/xml-fragment.d.ts +13 -0
- package/dist/chart/xml-fragment.d.ts.map +1 -0
- package/dist/{chunk-HUBK4EOT.mjs → chunk-3IT6ZD7K.mjs} +2 -0
- package/dist/{chunk-TS3E27NK.mjs → chunk-3UMDVJRN.mjs} +12 -1
- package/dist/{chunk-P22OKTRK.mjs → chunk-54S5A5PZ.mjs} +208 -159
- package/dist/{chunk-OMGH6IKY.mjs → chunk-5U27IVB7.mjs} +42 -5
- package/dist/{chunk-RFX7AJDZ.mjs → chunk-5VLNF4OX.mjs} +2 -2
- package/dist/{chunk-OJI3N5AY.cjs → chunk-FRUB573B.cjs} +2 -0
- package/dist/{chunk-75LA7H3F.mjs → chunk-V2BIGIH4.mjs} +27504 -27464
- package/dist/{chunk-Q27H4HFS.mjs → chunk-XBNSBDNT.mjs} +1 -1
- package/dist/{chunk-2C72N64G.cjs → chunk-XROY25LN.cjs} +12 -0
- package/dist/{chunk-LA7D6ZYQ.mjs → chunk-XSFHGZFH.mjs} +3579 -2083
- package/dist/collab/index.cjs +1 -0
- package/dist/collab/index.mjs +1 -0
- package/dist/collab/transport-provider.d.ts.map +1 -1
- package/dist/color/hex-rgb.d.ts +5 -0
- package/dist/color/hex-rgb.d.ts.map +1 -0
- package/dist/color/index.cjs +12 -0
- package/dist/color/index.d.ts +1 -0
- package/dist/color/index.d.ts.map +1 -1
- package/dist/color/index.mjs +11 -1
- package/dist/diagram/engine/alg-composite.d.ts +18 -0
- package/dist/diagram/engine/alg-composite.d.ts.map +1 -0
- package/dist/diagram/engine/alg-connector.d.ts +17 -0
- package/dist/diagram/engine/alg-connector.d.ts.map +1 -0
- package/dist/diagram/engine/alg-cycle.d.ts +28 -0
- package/dist/diagram/engine/alg-cycle.d.ts.map +1 -0
- package/dist/diagram/engine/alg-hier.d.ts +33 -0
- package/dist/diagram/engine/alg-hier.d.ts.map +1 -0
- package/dist/diagram/engine/alg-linear.d.ts +24 -0
- package/dist/diagram/engine/alg-linear.d.ts.map +1 -0
- package/dist/diagram/engine/alg-pyra.d.ts +117 -0
- package/dist/diagram/engine/alg-pyra.d.ts.map +1 -0
- package/dist/diagram/engine/alg-snake.d.ts +21 -0
- package/dist/diagram/engine/alg-snake.d.ts.map +1 -0
- package/dist/diagram/engine/axis.d.ts +24 -0
- package/dist/diagram/engine/axis.d.ts.map +1 -0
- package/dist/diagram/engine/conditions.d.ts +12 -0
- package/dist/diagram/engine/conditions.d.ts.map +1 -0
- package/dist/diagram/engine/connector-shape.d.ts +25 -0
- package/dist/diagram/engine/connector-shape.d.ts.map +1 -0
- package/dist/diagram/engine/connector-size.d.ts +30 -0
- package/dist/diagram/engine/connector-size.d.ts.map +1 -0
- package/dist/diagram/engine/constraint-eval.d.ts +37 -0
- package/dist/diagram/engine/constraint-eval.d.ts.map +1 -0
- package/dist/diagram/engine/constraint-fill-idiom.d.ts +61 -0
- package/dist/diagram/engine/constraint-fill-idiom.d.ts.map +1 -0
- package/dist/diagram/engine/constraint-units.d.ts +35 -0
- package/dist/diagram/engine/constraint-units.d.ts.map +1 -0
- package/dist/diagram/engine/data-points.d.ts +48 -0
- package/dist/diagram/engine/data-points.d.ts.map +1 -0
- package/dist/diagram/engine/engine-context.d.ts +21 -0
- package/dist/diagram/engine/engine-context.d.ts.map +1 -0
- package/dist/diagram/engine/engine-first-allowlist.d.ts +31 -0
- package/dist/diagram/engine/engine-first-allowlist.d.ts.map +1 -0
- package/dist/diagram/engine/engine-fonts.d.ts +26 -0
- package/dist/diagram/engine/engine-fonts.d.ts.map +1 -0
- package/dist/diagram/engine/engine-node.d.ts +72 -0
- package/dist/diagram/engine/engine-node.d.ts.map +1 -0
- package/dist/diagram/engine/engine-to-result.d.ts +43 -0
- package/dist/diagram/engine/engine-to-result.d.ts.map +1 -0
- package/dist/diagram/engine/engine.d.ts +18 -0
- package/dist/diagram/engine/engine.d.ts.map +1 -0
- package/dist/diagram/engine/font-groups.d.ts +33 -0
- package/dist/diagram/engine/font-groups.d.ts.map +1 -0
- package/dist/diagram/engine/font-length.d.ts +26 -0
- package/dist/diagram/engine/font-length.d.ts.map +1 -0
- package/dist/diagram/engine/font-search.d.ts +38 -0
- package/dist/diagram/engine/font-search.d.ts.map +1 -0
- package/dist/diagram/engine/hier-assistants.d.ts +47 -0
- package/dist/diagram/engine/hier-assistants.d.ts.map +1 -0
- package/dist/diagram/engine/hier-hang.d.ts +28 -0
- package/dist/diagram/engine/hier-hang.d.ts.map +1 -0
- package/dist/diagram/engine/hier-measure.d.ts +33 -0
- package/dist/diagram/engine/hier-measure.d.ts.map +1 -0
- package/dist/diagram/engine/hier-node-size.d.ts +23 -0
- package/dist/diagram/engine/hier-node-size.d.ts.map +1 -0
- package/dist/diagram/engine/hier-shape.d.ts +31 -0
- package/dist/diagram/engine/hier-shape.d.ts.map +1 -0
- package/dist/diagram/engine/index.d.ts +6 -0
- package/dist/diagram/engine/index.d.ts.map +1 -0
- package/dist/diagram/engine/layout-def-parse.d.ts +13 -0
- package/dist/diagram/engine/layout-def-parse.d.ts.map +1 -0
- package/dist/diagram/engine/layout-def-types.d.ts +118 -0
- package/dist/diagram/engine/layout-def-types.d.ts.map +1 -0
- package/dist/diagram/engine/layout-driver.d.ts +41 -0
- package/dist/diagram/engine/layout-driver.d.ts.map +1 -0
- package/dist/diagram/engine/layout-font.d.ts +27 -0
- package/dist/diagram/engine/layout-font.d.ts.map +1 -0
- package/dist/diagram/engine/move-with-merge.d.ts +49 -0
- package/dist/diagram/engine/move-with-merge.d.ts.map +1 -0
- package/dist/diagram/engine/node-text.d.ts +20 -0
- package/dist/diagram/engine/node-text.d.ts.map +1 -0
- package/dist/diagram/engine/ordered-xml.d.ts +30 -0
- package/dist/diagram/engine/ordered-xml.d.ts.map +1 -0
- package/dist/diagram/engine/preferred-size.d.ts +28 -0
- package/dist/diagram/engine/preferred-size.d.ts.map +1 -0
- package/dist/diagram/engine/pres-tree.d.ts +58 -0
- package/dist/diagram/engine/pres-tree.d.ts.map +1 -0
- package/dist/diagram/engine/registry.d.ts +7 -0
- package/dist/diagram/engine/registry.d.ts.map +1 -0
- package/dist/diagram/engine/render-filter.d.ts +43 -0
- package/dist/diagram/engine/render-filter.d.ts.map +1 -0
- package/dist/diagram/engine/shape-adjust.d.ts +16 -0
- package/dist/diagram/engine/shape-adjust.d.ts.map +1 -0
- package/dist/diagram/engine/shape-transform.d.ts +14 -0
- package/dist/diagram/engine/shape-transform.d.ts.map +1 -0
- package/dist/diagram/engine/snake-rule-fit.d.ts +34 -0
- package/dist/diagram/engine/snake-rule-fit.d.ts.map +1 -0
- package/dist/diagram/engine/style-label.d.ts +24 -0
- package/dist/diagram/engine/style-label.d.ts.map +1 -0
- package/dist/diagram/engine/text-fit.d.ts +61 -0
- package/dist/diagram/engine/text-fit.d.ts.map +1 -0
- package/dist/diagram/engine/text-grow.d.ts +33 -0
- package/dist/diagram/engine/text-grow.d.ts.map +1 -0
- package/dist/diagram/engine/text-measure.d.ts +77 -0
- package/dist/diagram/engine/text-measure.d.ts.map +1 -0
- package/dist/diagram/hierarchy/index.d.ts +5 -0
- package/dist/diagram/hierarchy/index.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts +65 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-axis-pitch.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts +68 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-axis-swap-orientation.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts +54 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-branch-mode.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts +58 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-cascade.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts +63 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-centered-fan-axis.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts +41 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-child-order.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts +129 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-composite-child.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts +76 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-constraint-lookup.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts +49 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-corner-plan.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts +58 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-dispatch-lindir.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts +48 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fan-aware-width.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts +97 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fan.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts +42 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang-geometry.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts +74 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fanned-hang.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts +111 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fit-item-box.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts +44 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-fold-depth.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts +60 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-generation-gap.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts +106 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-generation-templates.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts +133 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hang-depth.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts +28 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hang-dispatch.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts +28 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-arrange.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts +86 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-box.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts +36 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging-fold.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts +118 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-hanging.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts +64 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-item-template.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts +53 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orgchart-tree.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts +36 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation-resolve.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts +81 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation-types.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts +78 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-orientation.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts +140 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-pitch.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts +131 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-shared.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts +91 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard-options.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts +21 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard-rows.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts +36 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-standard.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts +20 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-tailed-placer.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts +50 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-tailed-transpose.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts +23 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-transpose.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts +22 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-transposed-orientation.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts +93 -0
- package/dist/diagram/hierarchy/smartart-hierarchy-wrapped-groups.d.ts.map +1 -0
- package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts +49 -0
- package/dist/diagram/hierarchy/smartart-layout-interpreter-hierarchy.d.ts.map +1 -0
- package/dist/diagram/index.cjs +22537 -80
- package/dist/diagram/index.d.ts +4 -0
- package/dist/diagram/index.d.ts.map +1 -1
- package/dist/diagram/index.mjs +22453 -81
- package/dist/diagram/layout/index.d.ts +38 -0
- package/dist/diagram/layout/index.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-choose-xml.d.ts +32 -0
- package/dist/diagram/layout/smartart-choose-xml.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-branch-index.d.ts +49 -0
- package/dist/diagram/layout/smartart-constraint-branch-index.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-declared-by.d.ts +64 -0
- package/dist/diagram/layout/smartart-constraint-declared-by.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts +18 -0
- package/dist/diagram/layout/smartart-constraint-ratio-fallback.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-resolve.d.ts +24 -0
- package/dist/diagram/layout/smartart-constraint-resolve.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-rules.d.ts +26 -0
- package/dist/diagram/layout/smartart-constraint-rules.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts +100 -0
- package/dist/diagram/layout/smartart-constraint-sibling-roles.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-solver.d.ts +133 -0
- package/dist/diagram/layout/smartart-constraint-solver.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-constraint-values.d.ts +5 -0
- package/dist/diagram/layout/smartart-constraint-values.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-font-table.d.ts +14 -0
- package/dist/diagram/layout/smartart-font-table.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts +75 -0
- package/dist/diagram/layout/smartart-interpreter-fold-text.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-control-flow.d.ts +25 -0
- package/dist/diagram/layout/smartart-layout-control-flow.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts +56 -0
- package/dist/diagram/layout/smartart-layout-interpreter-arranged-selection.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts +37 -0
- package/dist/diagram/layout/smartart-layout-interpreter-arrangement-kind.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts +66 -0
- package/dist/diagram/layout/smartart-layout-interpreter-aux.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts +128 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-count.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts +73 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-depth.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts +48 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-hop.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts +19 -0
- package/dist/diagram/layout/smartart-layout-interpreter-axis-range.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts +60 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-algorithm.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts +36 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-branch.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts +42 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-composite.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts +102 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-depth.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts +32 -0
- package/dist/diagram/layout/smartart-layout-interpreter-choose-resolve.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts +33 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-alternative.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts +95 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-anchor.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts +84 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-aspect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts +60 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-candidates.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts +86 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-children.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts +44 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-choose-groups.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts +109 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-choose.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts +182 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-detect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts +60 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-fontfit.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts +36 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-foreach.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts +92 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-group-slots.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts +45 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-iteration.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts +57 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-nested-cycle.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts +24 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-order-fallback.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts +41 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-order.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts +34 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-pairs.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts +29 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-render.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts +40 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-ring.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts +22 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-slot-dim.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts +69 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite-slots.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts +56 -0
- package/dist/diagram/layout/smartart-layout-interpreter-composite.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts +42 -0
- package/dist/diagram/layout/smartart-layout-interpreter-conn-path.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts +23 -0
- package/dist/diagram/layout/smartart-layout-interpreter-connector-order.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts +28 -0
- package/dist/diagram/layout/smartart-layout-interpreter-constraints.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts +31 -0
- package/dist/diagram/layout/smartart-layout-interpreter-custom.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts +36 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-boxes.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts +21 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-connectors.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts +116 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-constraints.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts +110 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-extension.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts +50 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-fontfit.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts +66 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-detect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts +81 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio-usersize.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts +109 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-hub-ratio.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts +121 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-aspect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts +57 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-item-node.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts +34 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-bulge.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts +39 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-item.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts +22 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-nested-hub.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts +43 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring-offset.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts +76 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-ring.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts +40 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle-sibtrans.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts +69 -0
- package/dist/diagram/layout/smartart-layout-interpreter-cycle.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts +18 -0
- package/dist/diagram/layout/smartart-layout-interpreter-dispatch.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts +29 -0
- package/dist/diagram/layout/smartart-layout-interpreter-flow-direction.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts +49 -0
- package/dist/diagram/layout/smartart-layout-interpreter-flow.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts +60 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-descendant.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts +45 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hierarchy-fontfit.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts +26 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hub-detect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts +62 -0
- package/dist/diagram/layout/smartart-layout-interpreter-hub.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts +36 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-compound.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts +80 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-orientation.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts +102 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-shared.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts +23 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-columns.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts +77 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-fields.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts +20 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack-rect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts +53 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-stack.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts +50 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-role-transition.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts +87 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles-recursive.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts +57 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles-unwrap.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts +109 -0
- package/dist/diagram/layout/smartart-layout-interpreter-item-roles.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts +42 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-content-size.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts +94 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-item-aspect.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts +17 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-main-axis.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts +21 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-shared.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts +76 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear-table.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts +20 -0
- package/dist/diagram/layout/smartart-layout-interpreter-linear.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts +77 -0
- package/dist/diagram/layout/smartart-layout-interpreter-model.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts +93 -0
- package/dist/diagram/layout/smartart-layout-interpreter-named-rules.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts +58 -0
- package/dist/diagram/layout/smartart-layout-interpreter-position-family.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts +61 -0
- package/dist/diagram/layout/smartart-layout-interpreter-preset-node.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts +29 -0
- package/dist/diagram/layout/smartart-layout-interpreter-presof-choose.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts +41 -0
- package/dist/diagram/layout/smartart-layout-interpreter-pyramid-bands.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts +100 -0
- package/dist/diagram/layout/smartart-layout-interpreter-pyramid.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts +86 -0
- package/dist/diagram/layout/smartart-layout-interpreter-render.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts +18 -0
- package/dist/diagram/layout/smartart-layout-interpreter-snake.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts +28 -0
- package/dist/diagram/layout/smartart-layout-interpreter-tree-location.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts +15 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when-numeric.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts +12 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when-var.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts +69 -0
- package/dist/diagram/layout/smartart-layout-interpreter-when.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-interpreter.d.ts +80 -0
- package/dist/diagram/layout/smartart-layout-interpreter.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-item-font-role.d.ts +80 -0
- package/dist/diagram/layout/smartart-layout-item-font-role.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-item-font-size.d.ts +129 -0
- package/dist/diagram/layout/smartart-layout-item-font-size.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts +70 -0
- package/dist/diagram/layout/smartart-layout-item-font-tier-fit.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts +139 -0
- package/dist/diagram/layout/smartart-layout-item-font-tier.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts +105 -0
- package/dist/diagram/layout/smartart-layout-item-tx-anchor.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts +17 -0
- package/dist/diagram/layout/smartart-layout-shape-polygon.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-shape-preset.d.ts +127 -0
- package/dist/diagram/layout/smartart-layout-shape-preset.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-snake-grid.d.ts +43 -0
- package/dist/diagram/layout/smartart-layout-snake-grid.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-style-helpers.d.ts +84 -0
- package/dist/diagram/layout/smartart-layout-style-helpers.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-layout-types.d.ts +253 -0
- package/dist/diagram/layout/smartart-layout-types.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-line-pitch.d.ts +29 -0
- package/dist/diagram/layout/smartart-line-pitch.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-node-role-colors.d.ts +30 -0
- package/dist/diagram/layout/smartart-node-role-colors.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-node-tree-axis.d.ts +91 -0
- package/dist/diagram/layout/smartart-node-tree-axis.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-text-wrap-fit.d.ts +84 -0
- package/dist/diagram/layout/smartart-text-wrap-fit.d.ts.map +1 -0
- package/dist/diagram/layout/smartart-tree.d.ts +33 -0
- package/dist/diagram/layout/smartart-tree.d.ts.map +1 -0
- package/dist/diagram/model/constraint-rules.d.ts +31 -0
- package/dist/diagram/model/constraint-rules.d.ts.map +1 -0
- package/dist/diagram/model/data.d.ts +109 -0
- package/dist/diagram/model/data.d.ts.map +1 -0
- package/dist/diagram/model/index.d.ts +7 -0
- package/dist/diagram/model/index.d.ts.map +1 -0
- package/dist/diagram/model/layout-definition.d.ts +276 -0
- package/dist/diagram/model/layout-definition.d.ts.map +1 -0
- package/dist/diagram/model/layout-primitives.d.ts +82 -0
- package/dist/diagram/model/layout-primitives.d.ts.map +1 -0
- package/dist/diagram/model/node.d.ts +194 -0
- package/dist/diagram/model/node.d.ts.map +1 -0
- package/dist/diagram/model/style-definition.d.ts +131 -0
- package/dist/diagram/model/style-definition.d.ts.map +1 -0
- package/dist/docx/chart-paint.d.ts +14 -0
- package/dist/docx/chart-paint.d.ts.map +1 -0
- package/dist/docx/chart.d.ts +43 -0
- package/dist/docx/chart.d.ts.map +1 -0
- package/dist/docx/drawing.d.ts.map +1 -1
- package/dist/docx/embedded.cjs +1393 -326
- package/dist/docx/embedded.mjs +1393 -326
- package/dist/docx/index.cjs +4044 -683
- package/dist/docx/index.d.ts +2 -0
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +4040 -684
- package/dist/docx/inline-model.d.ts +3 -0
- package/dist/docx/inline-model.d.ts.map +1 -1
- package/dist/docx/layout/adapter.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +2674 -88
- package/dist/docx/layout/index.mjs +2675 -89
- package/dist/docx/layout/input.d.ts +5 -0
- package/dist/docx/layout/input.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +1616 -549
- package/dist/docx/load/index.mjs +1616 -549
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/ui/chart-spec.d.ts +10 -0
- package/dist/docx/ui/chart-spec.d.ts.map +1 -0
- package/dist/docx/ui/index.cjs +2602 -186
- package/dist/docx/ui/index.d.ts +1 -0
- package/dist/docx/ui/index.d.ts.map +1 -1
- package/dist/docx/ui/index.mjs +2601 -188
- package/dist/docx/ui/inline-content-schema.d.ts.map +1 -1
- package/dist/docx/ui/run-adapter.d.ts.map +1 -1
- package/dist/drawingml/write-line.d.ts +7 -0
- package/dist/drawingml/write-line.d.ts.map +1 -0
- package/dist/geometry/ooxml-arc.d.ts +31 -0
- package/dist/geometry/ooxml-arc.d.ts.map +1 -0
- package/dist/geometry/preset-shape-evaluator.d.ts +73 -0
- package/dist/geometry/preset-shape-evaluator.d.ts.map +1 -0
- package/dist/index.cjs +34839 -18368
- package/dist/index.mjs +34835 -18368
- package/dist/opc/embedded-packages.d.ts +11 -0
- package/dist/opc/embedded-packages.d.ts.map +1 -0
- package/dist/opc/index.cjs +365 -70
- package/dist/opc/index.d.ts +1 -0
- package/dist/opc/index.d.ts.map +1 -1
- package/dist/opc/index.mjs +353 -71
- package/dist/opc/properties/app.d.ts +9 -3
- package/dist/opc/properties/app.d.ts.map +1 -1
- package/dist/opc/properties/core.d.ts +5 -1
- package/dist/opc/properties/core.d.ts.map +1 -1
- package/dist/opc/properties/custom.d.ts +19 -0
- package/dist/opc/properties/custom.d.ts.map +1 -1
- package/dist/opc/properties/index.d.ts +6 -3
- package/dist/opc/properties/index.d.ts.map +1 -1
- package/dist/opc/properties/patch.d.ts +38 -0
- package/dist/opc/properties/patch.d.ts.map +1 -0
- package/dist/opc/properties/title-groups.d.ts +30 -0
- package/dist/opc/properties/title-groups.d.ts.map +1 -0
- package/dist/opc/properties/types.d.ts +15 -0
- package/dist/opc/properties/types.d.ts.map +1 -1
- package/dist/pptx/automation/index.cjs +9049 -7167
- package/dist/pptx/automation/index.d.ts +4 -4
- package/dist/pptx/automation/index.mjs +6 -6
- package/dist/pptx/chunks/{index-BYkdcS8J.d.ts → index-EZJZ7USt.d.ts} +907 -962
- package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-BHqL5KXH.d.ts → index-JNv7AJx5.d.ts} +163 -210
- package/dist/pptx/chunks/index-JNv7AJx5.d.ts.map +1 -0
- package/dist/pptx/chunks/{smart-art-CO2jmJFf.d.ts → smart-art-Q2kZQtHh.d.ts} +436 -374
- package/dist/pptx/chunks/smart-art-Q2kZQtHh.d.ts.map +1 -0
- package/dist/pptx/chunks/{text-operations-DEJ7alZR.d.ts → text-operations-DtCxXrMh.d.ts} +55 -4
- package/dist/pptx/chunks/text-operations-DtCxXrMh.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +8728 -6846
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +5 -5
- package/dist/pptx/converter/index.cjs +7124 -7136
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +3 -3
- package/dist/pptx/editor/render/table-cell-edit.cjs +7 -3
- package/dist/pptx/editor/render/table-cell-edit.d.ts +16 -1
- package/dist/pptx/editor/render/table-cell-edit.d.ts.map +1 -1
- package/dist/pptx/editor/render/table-cell-edit.mjs +1 -1
- package/dist/pptx/editor/render/table-cell-merge.cjs +3 -3
- package/dist/pptx/editor/render/table-cell-merge.mjs +1 -1
- package/dist/pptx/editor/render/table-data-grid-ops.cjs +7 -7
- package/dist/pptx/editor/render/table-data-grid-ops.mjs +2 -2
- package/dist/pptx/editor/render/table-layout.cjs +6 -6
- package/dist/pptx/editor/render/table-layout.d.ts.map +1 -1
- package/dist/pptx/editor/render/table-layout.mjs +1 -1
- package/dist/pptx/editor/render/table-merge.cjs +5 -5
- package/dist/pptx/editor/render/table-merge.mjs +1 -1
- package/dist/pptx/index.cjs +9300 -7249
- package/dist/pptx/index.d.ts +5 -5
- package/dist/pptx/index.mjs +6 -6
- package/dist/pptx/smartart-layouts/index.cjs +135 -106
- package/dist/pptx/smartart-layouts/index.d.ts +1 -1
- package/dist/pptx/smartart-layouts/index.mjs +1 -1
- package/dist/teams/content.d.ts.map +1 -1
- package/dist/teams/index.cjs +3931 -2077
- package/dist/teams/index.d.ts +1 -0
- package/dist/teams/index.d.ts.map +1 -1
- package/dist/teams/index.mjs +3930 -2077
- package/dist/teams/server-file-storage.d.ts +11 -0
- package/dist/teams/server-file-storage.d.ts.map +1 -0
- package/dist/teams/store.d.ts +2 -0
- package/dist/teams/store.d.ts.map +1 -1
- package/dist/teams/stored-file.d.ts.map +1 -1
- package/dist/{xlsx/layout/font-family.d.ts → text/css-font-family.d.ts} +1 -1
- package/dist/text/css-font-family.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-aptos-display.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-aptos.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-arial.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-calibri-light.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-calibri.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-segoe-ui.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts +10 -0
- package/dist/text/font-metrics/font-advance-widths-times-new-roman.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-advance-widths.generated.d.ts +48 -0
- package/dist/text/font-metrics/font-advance-widths.generated.d.ts.map +1 -0
- package/dist/text/font-metrics/font-kerning.d.ts +19 -0
- package/dist/text/font-metrics/font-kerning.d.ts.map +1 -0
- package/dist/visio/index.cjs +645 -119
- package/dist/visio/index.mjs +645 -119
- package/dist/visio/theme-color.d.ts +13 -3
- package/dist/visio/theme-color.d.ts.map +1 -1
- package/dist/visio/theme-resolve.d.ts +2 -1
- package/dist/visio/theme-resolve.d.ts.map +1 -1
- package/dist/visio/theme.d.ts +5 -2
- package/dist/visio/theme.d.ts.map +1 -1
- package/dist/xlsx/collab/adapter.d.ts +18 -0
- package/dist/xlsx/collab/adapter.d.ts.map +1 -0
- package/dist/xlsx/collab/apply.d.ts +8 -0
- package/dist/xlsx/collab/apply.d.ts.map +1 -0
- package/dist/xlsx/collab/bind.d.ts +34 -0
- package/dist/xlsx/collab/bind.d.ts.map +1 -0
- package/dist/xlsx/collab/codec.d.ts +35 -0
- package/dist/xlsx/collab/codec.d.ts.map +1 -0
- package/dist/xlsx/collab/dirty.d.ts +23 -0
- package/dist/xlsx/collab/dirty.d.ts.map +1 -0
- package/dist/xlsx/collab/index.cjs +1245 -0
- package/dist/xlsx/collab/index.d.ts +10 -0
- package/dist/xlsx/collab/index.d.ts.map +1 -0
- package/dist/xlsx/collab/index.mjs +1207 -0
- package/dist/xlsx/collab/lines.d.ts +22 -0
- package/dist/xlsx/collab/lines.d.ts.map +1 -0
- package/dist/xlsx/collab/names.d.ts +16 -0
- package/dist/xlsx/collab/names.d.ts.map +1 -0
- package/dist/xlsx/collab/presence.d.ts +31 -0
- package/dist/xlsx/collab/presence.d.ts.map +1 -0
- package/dist/xlsx/collab/schema.d.ts +30 -0
- package/dist/xlsx/collab/schema.d.ts.map +1 -0
- package/dist/xlsx/collab/sheets.d.ts +34 -0
- package/dist/xlsx/collab/sheets.d.ts.map +1 -0
- package/dist/xlsx/collab/styles.d.ts +26 -0
- package/dist/xlsx/collab/styles.d.ts.map +1 -0
- package/dist/xlsx/collab/write.d.ts +14 -0
- package/dist/xlsx/collab/write.d.ts.map +1 -0
- package/dist/xlsx/edit/chart-colors.d.ts +2 -2
- package/dist/xlsx/edit/chart-colors.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-element-fill.d.ts +3 -3
- package/dist/xlsx/edit/chart-element-fill.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-fill.d.ts +2 -2
- package/dist/xlsx/edit/chart-series-fill.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-gradient.d.ts +3 -3
- package/dist/xlsx/edit/chart-series-gradient.d.ts.map +1 -1
- package/dist/xlsx/edit/chart-series-target.d.ts +15 -0
- package/dist/xlsx/edit/chart-series-target.d.ts.map +1 -0
- package/dist/xlsx/edit/chart-series-transparency.d.ts +2 -2
- package/dist/xlsx/edit/chart-series-transparency.d.ts.map +1 -1
- package/dist/xlsx/edit/context.d.ts +3 -1
- package/dist/xlsx/edit/context.d.ts.map +1 -1
- package/dist/xlsx/edit/external.d.ts +28 -0
- package/dist/xlsx/edit/external.d.ts.map +1 -0
- package/dist/xlsx/edit/history.d.ts +18 -0
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/index.d.ts +1 -0
- package/dist/xlsx/edit/index.d.ts.map +1 -1
- package/dist/xlsx/edit/session-calc.d.ts +32 -3
- package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
- package/dist/xlsx/edit/session.d.ts.map +1 -1
- package/dist/xlsx/edit/sheets.d.ts.map +1 -1
- package/dist/xlsx/edit/types.d.ts +37 -4
- package/dist/xlsx/edit/types.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-host.d.ts +6 -2
- package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-prepare.d.ts +33 -0
- package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-structure.d.ts +40 -0
- package/dist/xlsx/formula/engine-structure.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-types.d.ts +26 -0
- package/dist/xlsx/formula/engine-types.d.ts.map +1 -1
- package/dist/xlsx/formula/engine.d.ts.map +1 -1
- package/dist/xlsx/formula/formula-shape.d.ts +28 -0
- package/dist/xlsx/formula/formula-shape.d.ts.map +1 -0
- package/dist/xlsx/formula/graph-index.d.ts +3 -1
- package/dist/xlsx/formula/graph-index.d.ts.map +1 -1
- package/dist/xlsx/formula/graph.d.ts +5 -0
- package/dist/xlsx/formula/graph.d.ts.map +1 -1
- package/dist/xlsx/formula/lexemes.d.ts +6 -0
- package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
- package/dist/xlsx/formula/parse-cache.d.ts +9 -0
- package/dist/xlsx/formula/parse-cache.d.ts.map +1 -0
- package/dist/xlsx/formula/parser.d.ts +3 -0
- package/dist/xlsx/formula/parser.d.ts.map +1 -1
- package/dist/xlsx/formula/ref-text.d.ts +14 -0
- package/dist/xlsx/formula/ref-text.d.ts.map +1 -0
- package/dist/xlsx/formula/references.d.ts.map +1 -1
- package/dist/xlsx/formula/shift-formula.d.ts +19 -0
- package/dist/xlsx/formula/shift-formula.d.ts.map +1 -0
- package/dist/xlsx/formula/shift-graph.d.ts +42 -0
- package/dist/xlsx/formula/shift-graph.d.ts.map +1 -0
- package/dist/xlsx/formula/tokenizer.d.ts.map +1 -1
- package/dist/xlsx/formula/transform.d.ts +2 -23
- package/dist/xlsx/formula/transform.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +5620 -2680
- package/dist/xlsx/index.mjs +5609 -2681
- package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
- package/dist/xlsx/layout/chart-view.d.ts +3 -54
- package/dist/xlsx/layout/chart-view.d.ts.map +1 -1
- package/dist/xlsx/layout/colors.d.ts +1 -4
- package/dist/xlsx/layout/colors.d.ts.map +1 -1
- package/dist/xlsx/layout/index.d.ts +8 -5
- package/dist/xlsx/layout/index.d.ts.map +1 -1
- package/dist/xlsx/layout/remote-selections.d.ts +40 -0
- package/dist/xlsx/layout/remote-selections.d.ts.map +1 -0
- package/dist/xlsx/layout/sheet-queries.d.ts +7 -0
- package/dist/xlsx/layout/sheet-queries.d.ts.map +1 -1
- package/dist/xlsx/layout/sparkline-data.d.ts +19 -0
- package/dist/xlsx/layout/sparkline-data.d.ts.map +1 -0
- package/dist/xlsx/layout/sparkline-view.d.ts +52 -0
- package/dist/xlsx/layout/sparkline-view.d.ts.map +1 -0
- package/dist/xlsx/layout/tint.d.ts +3 -12
- package/dist/xlsx/layout/tint.d.ts.map +1 -1
- package/dist/xlsx/layout/types.d.ts +3 -0
- package/dist/xlsx/layout/types.d.ts.map +1 -1
- package/dist/xlsx/load/index.cjs +3124 -1312
- package/dist/xlsx/load/index.mjs +3124 -1312
- package/dist/xlsx/model-sparklines.d.ts +52 -0
- package/dist/xlsx/model-sparklines.d.ts.map +1 -0
- package/dist/xlsx/model.d.ts +10 -47
- package/dist/xlsx/model.d.ts.map +1 -1
- package/dist/xlsx/read/chart.d.ts +1 -4
- package/dist/xlsx/read/chart.d.ts.map +1 -1
- package/dist/xlsx/read/index.d.ts +1 -0
- package/dist/xlsx/read/index.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-data-source.d.ts +10 -0
- package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -0
- package/dist/xlsx/read/sparklines.d.ts +12 -0
- package/dist/xlsx/read/sparklines.d.ts.map +1 -0
- package/dist/xlsx/read/worksheet.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
- package/dist/xlsx/ui/context.d.ts +15 -1
- package/dist/xlsx/ui/context.d.ts.map +1 -1
- package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -1
- package/dist/xlsx/ui/grid/cell-paint.d.ts +1 -1
- package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -1
- package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +2165 -866
- package/dist/xlsx/ui/index.mjs +2165 -867
- package/dist/xlsx/ui/locales/de/collab.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/collab.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/en/collab.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/collab.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/es/collab.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/collab.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/fr/collab.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/collab.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/zh-CN/collab.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/collab.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -1
- package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -1
- package/dist/xlsx/write/chart-colors.d.ts +3 -0
- package/dist/xlsx/write/chart-colors.d.ts.map +1 -1
- package/dist/xlsx/write/chart-space.d.ts +5 -0
- package/dist/xlsx/write/chart-space.d.ts.map +1 -0
- package/dist/xlsx/write/chart-title.d.ts +4 -1
- package/dist/xlsx/write/chart-title.d.ts.map +1 -1
- package/dist/xlsx/write/chart.d.ts +4 -1
- package/dist/xlsx/write/chart.d.ts.map +1 -1
- package/dist/xml/index.cjs +162 -0
- package/dist/xml/index.d.ts +1 -0
- package/dist/xml/index.d.ts.map +1 -1
- package/dist/xml/index.mjs +161 -1
- package/dist/xml/lite.d.ts +30 -0
- package/dist/xml/lite.d.ts.map +1 -0
- package/package.json +6 -1
- package/dist/pptx/chunks/index-BHqL5KXH.d.ts.map +0 -1
- package/dist/pptx/chunks/index-BYkdcS8J.d.ts.map +0 -1
- package/dist/pptx/chunks/smart-art-CO2jmJFf.d.ts.map +0 -1
- package/dist/pptx/chunks/text-operations-DEJ7alZR.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-appearance.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-colors.d.ts +0 -9
- package/dist/xlsx/layout/chart-colors.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-scale.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-spacing.d.ts +0 -6
- package/dist/xlsx/layout/chart-spacing.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-appearance.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-bars.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-cartesian.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-legend.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-radial.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-text-metrics.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-title-text.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg-util.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-svg.d.ts.map +0 -1
- package/dist/xlsx/layout/chart-title-text.d.ts +0 -14
- package/dist/xlsx/layout/chart-title-text.d.ts.map +0 -1
- package/dist/xlsx/layout/font-family.d.ts.map +0 -1
- /package/dist/{xlsx/layout → chart/render}/chart-scale.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-bars.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-cartesian.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-legend.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-radial.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-text-metrics.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-title-text.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg-util.d.ts +0 -0
- /package/dist/{xlsx/layout → chart/render}/chart-svg.d.ts +0 -0
package/dist/docx/embedded.mjs
CHANGED
|
@@ -7,12 +7,18 @@ var NS = {
|
|
|
7
7
|
w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
|
|
8
8
|
/** DrawingML main. */
|
|
9
9
|
a: "http://schemas.openxmlformats.org/drawingml/2006/main",
|
|
10
|
+
/** DrawingML chart. */
|
|
11
|
+
c: "http://schemas.openxmlformats.org/drawingml/2006/chart",
|
|
12
|
+
/** Office 2010 chart extensions, including built-in modern chart styles. */
|
|
13
|
+
c14: "http://schemas.microsoft.com/office/drawing/2007/8/2/chart",
|
|
10
14
|
/** DrawingML diagram (SmartArt) main. */
|
|
11
15
|
dgm: "http://schemas.openxmlformats.org/drawingml/2006/diagram",
|
|
12
16
|
/** Office 2007+ diagram drawing (`dsp`). */
|
|
13
17
|
dsp: "http://schemas.microsoft.com/office/drawing/2008/diagram",
|
|
14
18
|
/** Relationships (`r:id`, `r:embed`). */
|
|
15
19
|
r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
20
|
+
/** Markup compatibility (`mc:AlternateContent`). */
|
|
21
|
+
mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
|
|
16
22
|
/** OPC relationships part. */
|
|
17
23
|
rels: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
18
24
|
/** OPC content types part. */
|
|
@@ -360,12 +366,12 @@ function runPropertyChanged(run, base, key) {
|
|
|
360
366
|
function parseDirectRunProperties(props) {
|
|
361
367
|
const result = parseRunProperties(props);
|
|
362
368
|
const language = first2(props, "lang");
|
|
363
|
-
for (const [
|
|
369
|
+
for (const [attribute2, key] of [
|
|
364
370
|
["val", "language"],
|
|
365
371
|
["eastAsia", "eastAsiaLanguage"],
|
|
366
372
|
["bidi", "bidiLanguage"]
|
|
367
373
|
]) {
|
|
368
|
-
const value = getW(language,
|
|
374
|
+
const value = getW(language, attribute2);
|
|
369
375
|
if (value !== void 0) result[key] = value;
|
|
370
376
|
}
|
|
371
377
|
const rtl = onOffElement(first2(props, "rtl"));
|
|
@@ -923,10 +929,10 @@ var COLOR_ELEMENTS = {
|
|
|
923
929
|
hslClr: "hsl"
|
|
924
930
|
};
|
|
925
931
|
function colorValue(kind, element) {
|
|
926
|
-
const
|
|
927
|
-
if (kind === "scrgb") return `${
|
|
928
|
-
if (kind === "hsl") return `${
|
|
929
|
-
return
|
|
932
|
+
const attribute2 = (name) => element.getAttribute(name) ?? "";
|
|
933
|
+
if (kind === "scrgb") return `${attribute2("r")},${attribute2("g")},${attribute2("b")}`;
|
|
934
|
+
if (kind === "hsl") return `${attribute2("hue")},${attribute2("sat")},${attribute2("lum")}`;
|
|
935
|
+
return attribute2("val");
|
|
930
936
|
}
|
|
931
937
|
function parseDrawingColorIn(container) {
|
|
932
938
|
if (!container) return void 0;
|
|
@@ -1148,6 +1154,10 @@ function resolvePartPath(basePart, target) {
|
|
|
1148
1154
|
}
|
|
1149
1155
|
return resolved.join("/");
|
|
1150
1156
|
}
|
|
1157
|
+
function relationshipsPartFor(partName) {
|
|
1158
|
+
const slash = partName.lastIndexOf("/");
|
|
1159
|
+
return `${partName.slice(0, slash + 1)}_rels/${partName.slice(slash + 1)}.rels`;
|
|
1160
|
+
}
|
|
1151
1161
|
function nextRelationshipId(used) {
|
|
1152
1162
|
let index = 1;
|
|
1153
1163
|
while (used.has(`rId${index}`)) index++;
|
|
@@ -1278,7 +1288,7 @@ function parseCoreProperties(xml) {
|
|
|
1278
1288
|
}
|
|
1279
1289
|
return Object.keys(result).length ? result : void 0;
|
|
1280
1290
|
}
|
|
1281
|
-
var same = (
|
|
1291
|
+
var same = (a2, b) => PROPERTY_FIELDS.every((field) => (a2?.[field] ?? "") === (b?.[field] ?? ""));
|
|
1282
1292
|
async function applyCoreProperties(zip, next, prior) {
|
|
1283
1293
|
if (same(next, prior)) return;
|
|
1284
1294
|
const existing = zip.file(CORE_PATH);
|
|
@@ -1437,13 +1447,13 @@ function buildCommentsExtendedDocument(comments) {
|
|
|
1437
1447
|
);
|
|
1438
1448
|
const root = doc.documentElement;
|
|
1439
1449
|
comments.forEach((comment, index) => {
|
|
1440
|
-
const
|
|
1441
|
-
|
|
1442
|
-
if (comment.resolved)
|
|
1443
|
-
const parentIndex = comments.findIndex((
|
|
1450
|
+
const entry2 = doc.createElementNS(W15_NS, "w15:commentEx");
|
|
1451
|
+
entry2.setAttributeNS(W15_NS, "w15:paraId", paraIdFor(comment.id, index));
|
|
1452
|
+
if (comment.resolved) entry2.setAttributeNS(W15_NS, "w15:done", "1");
|
|
1453
|
+
const parentIndex = comments.findIndex((c2) => c2.id === comment.parentId);
|
|
1444
1454
|
if (parentIndex >= 0)
|
|
1445
|
-
|
|
1446
|
-
root.appendChild(
|
|
1455
|
+
entry2.setAttributeNS(W15_NS, "w15:paraIdParent", paraIdFor(comment.parentId, parentIndex));
|
|
1456
|
+
root.appendChild(entry2);
|
|
1447
1457
|
});
|
|
1448
1458
|
return doc;
|
|
1449
1459
|
}
|
|
@@ -1573,7 +1583,7 @@ function rangeEdges(runs, ranges) {
|
|
|
1573
1583
|
const opens = /* @__PURE__ */ new Map();
|
|
1574
1584
|
const closes = /* @__PURE__ */ new Map();
|
|
1575
1585
|
const order = (key) => key.startsWith("comment:") ? 0 : 1;
|
|
1576
|
-
for (const key of [...first3.keys()].sort((
|
|
1586
|
+
for (const key of [...first3.keys()].sort((a2, b) => order(a2) - order(b))) {
|
|
1577
1587
|
if (!ranges?.before.has(key)) {
|
|
1578
1588
|
const index = first3.get(key);
|
|
1579
1589
|
(opens.get(index) ?? opens.set(index, []).get(index)).push(edgeFor(key, index));
|
|
@@ -1796,8 +1806,8 @@ function orderChildren(parent, order) {
|
|
|
1796
1806
|
if (rank >= 0) previousRank = rank;
|
|
1797
1807
|
return { element, index, rank: rank >= 0 ? rank : previousRank + 0.5 };
|
|
1798
1808
|
});
|
|
1799
|
-
const sorted = [...ranked].sort((
|
|
1800
|
-
if (sorted.every((
|
|
1809
|
+
const sorted = [...ranked].sort((a2, b) => a2.rank - b.rank || a2.index - b.index);
|
|
1810
|
+
if (sorted.every((entry2, index) => entry2.element === elements2[index])) return;
|
|
1801
1811
|
for (const { element } of sorted) parent.appendChild(element);
|
|
1802
1812
|
}
|
|
1803
1813
|
var SECTPR_ORDER = [
|
|
@@ -2584,7 +2594,7 @@ function borderElement(doc, name, side) {
|
|
|
2584
2594
|
}
|
|
2585
2595
|
return element;
|
|
2586
2596
|
}
|
|
2587
|
-
var sameJson = (
|
|
2597
|
+
var sameJson = (a2, b) => JSON.stringify(a2 ?? null) === JSON.stringify(b ?? null);
|
|
2588
2598
|
function updateShading(doc, props, paragraph, base) {
|
|
2589
2599
|
if (base && paragraph.shadingFill === base.shadingFill) return;
|
|
2590
2600
|
for (const element of children2(props, "shd")) props.removeChild(element);
|
|
@@ -2776,8 +2786,8 @@ function reconcileBookmarks(doc, starts, ends, names, baseNames, nextId) {
|
|
|
2776
2786
|
function setAttribute3(element, local, value) {
|
|
2777
2787
|
element.setAttributeNS(WORD_NS, `w:${local}`, value);
|
|
2778
2788
|
}
|
|
2779
|
-
function sameNumbering(
|
|
2780
|
-
return
|
|
2789
|
+
function sameNumbering(a2, b) {
|
|
2790
|
+
return a2?.numId === b?.numId && a2?.level === b?.level;
|
|
2781
2791
|
}
|
|
2782
2792
|
function writeNumberingProperties(doc, props, paragraph, base) {
|
|
2783
2793
|
if (base && sameNumbering(paragraph.numbering, base.numbering)) return;
|
|
@@ -2960,11 +2970,11 @@ var allowedRunPropertyAttributes = {
|
|
|
2960
2970
|
shd: ["val", "fill", "color", "themeFill", "themeFillTint", "themeFillShade"]
|
|
2961
2971
|
};
|
|
2962
2972
|
function hasUnexpectedAttributes(element, allowed, allowDateUtc = false) {
|
|
2963
|
-
for (const
|
|
2964
|
-
if (
|
|
2965
|
-
if (allowDateUtc &&
|
|
2973
|
+
for (const attribute2 of Array.from(element.attributes)) {
|
|
2974
|
+
if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
|
|
2975
|
+
if (allowDateUtc && attribute2.namespaceURI === WORD_DATE_UTC_NS && attribute2.localName === "dateUtc")
|
|
2966
2976
|
continue;
|
|
2967
|
-
if (
|
|
2977
|
+
if (attribute2.namespaceURI !== WORD_NS || !allowed.includes(attribute2.localName)) return true;
|
|
2968
2978
|
}
|
|
2969
2979
|
return false;
|
|
2970
2980
|
}
|
|
@@ -2991,7 +3001,7 @@ function runPropertiesHaveUnknownContent(properties) {
|
|
|
2991
3001
|
if (!isLigatures(property.getAttributeNS(WORD_2010_NS, "val")) || elements(property).length)
|
|
2992
3002
|
return true;
|
|
2993
3003
|
if (Array.from(property.attributes).some(
|
|
2994
|
-
(
|
|
3004
|
+
(attribute2) => attribute2.namespaceURI !== "http://www.w3.org/2000/xmlns/" && (attribute2.namespaceURI !== WORD_2010_NS || attribute2.localName !== "val")
|
|
2995
3005
|
))
|
|
2996
3006
|
return true;
|
|
2997
3007
|
continue;
|
|
@@ -3138,19 +3148,19 @@ function colorOf(value) {
|
|
|
3138
3148
|
}
|
|
3139
3149
|
function parseWatermarkShape(shape) {
|
|
3140
3150
|
if (!shape || !(shape.getAttribute("id") ?? "").startsWith(WATERMARK_PREFIX)) return void 0;
|
|
3141
|
-
const
|
|
3142
|
-
if (!
|
|
3151
|
+
const path2 = Array.from(shape.getElementsByTagNameNS(VML_NS, "textpath"))[0];
|
|
3152
|
+
if (!path2) return void 0;
|
|
3143
3153
|
const style = shape.getAttribute("style") ?? "";
|
|
3144
3154
|
const fill = Array.from(shape.getElementsByTagNameNS(VML_NS, "fill"))[0];
|
|
3145
3155
|
const opacity = fill?.getAttribute("opacity");
|
|
3146
3156
|
const family = /font-family:\s*(?:"|"|')?([^;"'&]+)/i.exec(
|
|
3147
|
-
|
|
3157
|
+
path2.getAttribute("style") ?? ""
|
|
3148
3158
|
)?.[1];
|
|
3149
3159
|
const width = /width:\s*([\d.]+)pt/i.exec(style);
|
|
3150
3160
|
const height = /height:\s*([\d.]+)pt/i.exec(style);
|
|
3151
3161
|
const rotation = /rotation:\s*(-?[\d.]+)/i.exec(style);
|
|
3152
3162
|
const spec = {
|
|
3153
|
-
text:
|
|
3163
|
+
text: path2.getAttribute("string") ?? "",
|
|
3154
3164
|
color: colorOf(shape.getAttribute("fillcolor")),
|
|
3155
3165
|
semitransparent: opacity !== null && opacity !== "" && opacity !== "1",
|
|
3156
3166
|
layout: rotation && Math.abs(Number(rotation[1]) % 360) > 1 ? "diagonal" : "horizontal",
|
|
@@ -3206,11 +3216,11 @@ function buildWatermarkRun(doc, spec, uniqueId) {
|
|
|
3206
3216
|
f.setAttribute("eqn", eqn);
|
|
3207
3217
|
formulas.appendChild(f);
|
|
3208
3218
|
}
|
|
3209
|
-
const
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3219
|
+
const path2 = v("path");
|
|
3220
|
+
path2.setAttribute("textpathok", "t");
|
|
3221
|
+
path2.setAttributeNS(OFFICE_NS, "o:connecttype", "custom");
|
|
3222
|
+
path2.setAttributeNS(OFFICE_NS, "o:connectlocs", "@9,0;@10,10800;@11,21600;@12,10800");
|
|
3223
|
+
path2.setAttributeNS(OFFICE_NS, "o:connectangles", "270,180,90,0");
|
|
3214
3224
|
const typePath = v("textpath");
|
|
3215
3225
|
typePath.setAttribute("on", "t");
|
|
3216
3226
|
typePath.setAttribute("fitshape", "t");
|
|
@@ -3223,7 +3233,7 @@ function buildWatermarkRun(doc, spec, uniqueId) {
|
|
|
3223
3233
|
lock.setAttributeNS(VML_NS, "v:ext", "edit");
|
|
3224
3234
|
lock.setAttribute("text", "t");
|
|
3225
3235
|
lock.setAttribute("shapetype", "t");
|
|
3226
|
-
for (const child3 of [formulas,
|
|
3236
|
+
for (const child3 of [formulas, path2, typePath, handles, lock]) type.appendChild(child3);
|
|
3227
3237
|
const size = watermarkSizePt(spec);
|
|
3228
3238
|
const shape = v("shape");
|
|
3229
3239
|
shape.setAttribute("id", `${WATERMARK_PREFIX}${uniqueId}`);
|
|
@@ -3456,8 +3466,8 @@ var CUSTOM_LAYOUT_ATTRIBUTES = [
|
|
|
3456
3466
|
];
|
|
3457
3467
|
function parseCustomLayoutAttributes(get) {
|
|
3458
3468
|
const custom = {};
|
|
3459
|
-
for (const [key,
|
|
3460
|
-
const raw = get(
|
|
3469
|
+
for (const [key, attribute2, kind] of CUSTOM_LAYOUT_ATTRIBUTES) {
|
|
3470
|
+
const raw = get(attribute2);
|
|
3461
3471
|
const value = kind === "flag" ? optionalBoolean(raw) : optionalScaled(raw, kind === "angle" ? 6e4 : 1e5);
|
|
3462
3472
|
if (value !== void 0) custom[key] = value;
|
|
3463
3473
|
}
|
|
@@ -3471,8 +3481,8 @@ var RELATIONSHIP_ATTRIBUTES = [
|
|
|
3471
3481
|
];
|
|
3472
3482
|
function parseRelationshipIdAttributes(get) {
|
|
3473
3483
|
const result = {};
|
|
3474
|
-
for (const [property,
|
|
3475
|
-
const value = optionalString(get(
|
|
3484
|
+
for (const [property, attribute2] of RELATIONSHIP_ATTRIBUTES) {
|
|
3485
|
+
const value = optionalString(get(attribute2));
|
|
3476
3486
|
if (value) result[property] = value;
|
|
3477
3487
|
}
|
|
3478
3488
|
return result;
|
|
@@ -3534,7 +3544,7 @@ async function resolveDiagramDrawingPart(hostPart, dataRelId, drawingExtensionRe
|
|
|
3534
3544
|
const entries = await host.readRelationshipEntries(diagramRelationshipsPart(dataPath));
|
|
3535
3545
|
if (!entries) return void 0;
|
|
3536
3546
|
const drawing = entries.find(
|
|
3537
|
-
(
|
|
3547
|
+
(entry2) => (!drawingExtensionRelId || entry2.id.trim() === drawingExtensionRelId) && entry2.type.endsWith("/diagramDrawing")
|
|
3538
3548
|
);
|
|
3539
3549
|
const id = drawing?.id.trim() ?? "";
|
|
3540
3550
|
const target = drawing?.target.trim() ?? "";
|
|
@@ -3638,14 +3648,14 @@ function parseDiagramDataModel(source, part) {
|
|
|
3638
3648
|
if (connection.modelId && connectionIds.has(connection.modelId))
|
|
3639
3649
|
report("CONNECTION_ID_DUPLICATE", `Duplicate dgm:cxn modelId: ${connection.modelId}.`);
|
|
3640
3650
|
if (connection.modelId) connectionIds.add(connection.modelId);
|
|
3641
|
-
for (const [
|
|
3651
|
+
for (const [attribute2, id] of [
|
|
3642
3652
|
["srcId", connection.sourceId],
|
|
3643
3653
|
["destId", connection.destId]
|
|
3644
3654
|
])
|
|
3645
3655
|
if (!ids.has(id))
|
|
3646
3656
|
report(
|
|
3647
3657
|
"CONNECTION_ENDPOINT_MISSING",
|
|
3648
|
-
`dgm:cxn ${
|
|
3658
|
+
`dgm:cxn ${attribute2} references missing point: ${id}.`
|
|
3649
3659
|
);
|
|
3650
3660
|
const label = connectionLabel(connection, transitionText);
|
|
3651
3661
|
connections.push(label ? { ...connection, label } : connection);
|
|
@@ -3788,7 +3798,7 @@ function parseDrawingFill(properties) {
|
|
|
3788
3798
|
});
|
|
3789
3799
|
const angle = Number.parseInt(first(fill, "lin", NS.a)?.getAttribute("ang") ?? "", 10);
|
|
3790
3800
|
const scaled = first(fill, "lin", NS.a)?.getAttribute("scaled");
|
|
3791
|
-
const
|
|
3801
|
+
const path2 = first(fill, "path", NS.a)?.getAttribute("path");
|
|
3792
3802
|
const focus = first(first(fill, "path", NS.a), "fillToRect", NS.a);
|
|
3793
3803
|
const tile = first(fill, "tileRect", NS.a);
|
|
3794
3804
|
const tileRect = tile ? {
|
|
@@ -3810,7 +3820,7 @@ function parseDrawingFill(properties) {
|
|
|
3810
3820
|
...Number.isFinite(angle) ? { angle: angle / 6e4 } : {},
|
|
3811
3821
|
...scaled === "1" || scaled === "true" ? { scaled: true } : {},
|
|
3812
3822
|
...scaled === "0" || scaled === "false" ? { scaled: false } : {},
|
|
3813
|
-
...
|
|
3823
|
+
...path2 ? { path: path2 } : {},
|
|
3814
3824
|
...fillToRect && Object.values(fillToRect).every(Number.isFinite) ? { fillToRect } : {},
|
|
3815
3825
|
...tileRect && Object.values(tileRect).every(Number.isFinite) ? { tileRect } : {}
|
|
3816
3826
|
};
|
|
@@ -3914,13 +3924,13 @@ function parseDrawingTextBody(body) {
|
|
|
3914
3924
|
const anchor = properties?.getAttribute("anchor");
|
|
3915
3925
|
if (anchor) result.anchor = anchor;
|
|
3916
3926
|
const insets = {};
|
|
3917
|
-
for (const [key,
|
|
3927
|
+
for (const [key, attribute2] of [
|
|
3918
3928
|
["left", "lIns"],
|
|
3919
3929
|
["top", "tIns"],
|
|
3920
3930
|
["right", "rIns"],
|
|
3921
3931
|
["bottom", "bIns"]
|
|
3922
3932
|
]) {
|
|
3923
|
-
const value = Number.parseInt(properties?.getAttribute(
|
|
3933
|
+
const value = Number.parseInt(properties?.getAttribute(attribute2) ?? "", 10);
|
|
3924
3934
|
if (Number.isFinite(value)) insets[key] = value;
|
|
3925
3935
|
}
|
|
3926
3936
|
if (Object.keys(insets).length > 0) result.insetsEmu = insets;
|
|
@@ -3951,18 +3961,18 @@ function parseTransform(xfrm) {
|
|
|
3951
3961
|
...booleanAttribute(xfrm, "flipV") ? { flipVertical: true } : {}
|
|
3952
3962
|
};
|
|
3953
3963
|
}
|
|
3954
|
-
function parsePathCommands(
|
|
3964
|
+
function parsePathCommands(path2) {
|
|
3955
3965
|
const commands = [];
|
|
3956
3966
|
const point = (element) => {
|
|
3957
3967
|
const x = int(element, "x");
|
|
3958
3968
|
const y = int(element, "y");
|
|
3959
3969
|
return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : void 0;
|
|
3960
3970
|
};
|
|
3961
|
-
for (const element of Array.from(
|
|
3971
|
+
for (const element of Array.from(path2.childNodes)) {
|
|
3962
3972
|
if (element.nodeType !== 1) continue;
|
|
3963
3973
|
const node = element;
|
|
3964
3974
|
const points = children(node, "pt", NS.a).map(point);
|
|
3965
|
-
if (points.some((
|
|
3975
|
+
if (points.some((entry2) => entry2 === void 0)) return void 0;
|
|
3966
3976
|
const [p0, p1, p2] = points;
|
|
3967
3977
|
switch (node.localName) {
|
|
3968
3978
|
case "moveTo":
|
|
@@ -4005,17 +4015,17 @@ function parseDrawingGeometry(spPr) {
|
|
|
4005
4015
|
const custom = first(spPr, "custGeom", NS.a);
|
|
4006
4016
|
if (custom) {
|
|
4007
4017
|
const paths = [];
|
|
4008
|
-
for (const
|
|
4009
|
-
const commands = parsePathCommands(
|
|
4018
|
+
for (const path2 of children(first(custom, "pathLst", NS.a) ?? custom, "path", NS.a)) {
|
|
4019
|
+
const commands = parsePathCommands(path2);
|
|
4010
4020
|
if (!commands) return { geometry: "custom", issue: "CUSTOM_GEOMETRY_GUIDES_UNSUPPORTED" };
|
|
4011
|
-
const width = int(
|
|
4012
|
-
const height = int(
|
|
4021
|
+
const width = int(path2, "w");
|
|
4022
|
+
const height = int(path2, "h");
|
|
4013
4023
|
paths.push({
|
|
4014
4024
|
commands,
|
|
4015
4025
|
...Number.isFinite(width) ? { width } : {},
|
|
4016
4026
|
...Number.isFinite(height) ? { height } : {},
|
|
4017
|
-
...
|
|
4018
|
-
...
|
|
4027
|
+
...path2.getAttribute("fill") ? { fill: path2.getAttribute("fill") } : {},
|
|
4028
|
+
...path2.getAttribute("stroke") === "0" || path2.getAttribute("stroke") === "false" ? { stroke: false } : {}
|
|
4019
4029
|
});
|
|
4020
4030
|
}
|
|
4021
4031
|
return { geometry: "custom", paths };
|
|
@@ -4357,6 +4367,1179 @@ async function resolveDiagramParts(diagram, readText) {
|
|
|
4357
4367
|
diagram.notice = diagramNotice(diagram.rendering);
|
|
4358
4368
|
}
|
|
4359
4369
|
|
|
4370
|
+
// chart/color-style.ts
|
|
4371
|
+
var CHART_COLOR_STYLE_NS = "http://schemas.microsoft.com/office/drawing/2012/chartStyle";
|
|
4372
|
+
function chartColorStyleId(xml) {
|
|
4373
|
+
const root = parseXml(xml).documentElement;
|
|
4374
|
+
if (root.localName !== "colorStyle" || root.namespaceURI !== CHART_COLOR_STYLE_NS)
|
|
4375
|
+
return void 0;
|
|
4376
|
+
const value = root.getAttribute("id");
|
|
4377
|
+
if (!value || !/^\d+$/.test(value)) return void 0;
|
|
4378
|
+
const id = Number(value);
|
|
4379
|
+
return Number.isInteger(id) && id >= 0 ? id : void 0;
|
|
4380
|
+
}
|
|
4381
|
+
|
|
4382
|
+
// chart/built-in-text-style.ts
|
|
4383
|
+
var C14 = NS.c14;
|
|
4384
|
+
function readBuiltInChartStyle(root) {
|
|
4385
|
+
for (const content of children(root, "AlternateContent", NS.mc)) {
|
|
4386
|
+
for (const choice of children(content, "Choice", NS.mc)) {
|
|
4387
|
+
const requires = choice.getAttribute("Requires")?.trim().split(/\s+/);
|
|
4388
|
+
if (!requires?.length || !requires.every((prefix) => choice.lookupNamespaceURI(prefix) === C14))
|
|
4389
|
+
continue;
|
|
4390
|
+
const modern = first(choice, "style", C14)?.getAttribute("val");
|
|
4391
|
+
if (modern && /^\d+$/.test(modern) && Number(modern) >= 101 && Number(modern) <= 148)
|
|
4392
|
+
return Number(modern);
|
|
4393
|
+
}
|
|
4394
|
+
}
|
|
4395
|
+
const legacy = first(root, "style", NS.c) ?? first(first(first(root, "AlternateContent", NS.mc), "Fallback", NS.mc), "style", NS.c);
|
|
4396
|
+
const value = legacy?.getAttribute("val");
|
|
4397
|
+
if (!legacy) return 2;
|
|
4398
|
+
return value && /^\d+$/.test(value) && Number.isSafeInteger(Number(value)) ? Number(value) : void 0;
|
|
4399
|
+
}
|
|
4400
|
+
|
|
4401
|
+
// chart/read-appearance.ts
|
|
4402
|
+
function readChartAppearance(text, properties) {
|
|
4403
|
+
const out = {};
|
|
4404
|
+
const size = Number(text?.getAttribute("sz") ?? NaN);
|
|
4405
|
+
if (Number.isFinite(size) && size > 0) out.fontSize = size / 100;
|
|
4406
|
+
for (const [attribute2, key] of [
|
|
4407
|
+
["b", "bold"],
|
|
4408
|
+
["i", "italic"]
|
|
4409
|
+
]) {
|
|
4410
|
+
const value = text?.getAttribute(attribute2);
|
|
4411
|
+
if (value !== null && value !== void 0) out[key] = value === "1" || value === "true";
|
|
4412
|
+
}
|
|
4413
|
+
const typeface = first(text, "latin", NS.a)?.getAttribute("typeface");
|
|
4414
|
+
const underline = text?.getAttribute("u");
|
|
4415
|
+
if (underline) out.underline = underline !== "none";
|
|
4416
|
+
if (typeface) out.typeface = typeface;
|
|
4417
|
+
const color = parseDrawingColorIn(first(text, "solidFill", NS.a));
|
|
4418
|
+
if (color) out.textColor = color;
|
|
4419
|
+
const fill = parseDrawingFill(properties);
|
|
4420
|
+
const line = parseDrawingLine(first(properties, "ln", NS.a));
|
|
4421
|
+
if (fill) out.fill = fill;
|
|
4422
|
+
if (line) out.line = line;
|
|
4423
|
+
const effects = first(text, "effectLst", NS.a);
|
|
4424
|
+
if (effects) out.textEffectsXml = buildXml(effects);
|
|
4425
|
+
return out;
|
|
4426
|
+
}
|
|
4427
|
+
|
|
4428
|
+
// chart/formatting-nodes.ts
|
|
4429
|
+
function chartFormattingNodes(root) {
|
|
4430
|
+
const chart = first(root, "chart", NS.c);
|
|
4431
|
+
const plot = first(chart, "plotArea", NS.c);
|
|
4432
|
+
const category = first(plot, "catAx", NS.c) ?? first(plot, "dateAx", NS.c);
|
|
4433
|
+
const values = plot ? children(plot, "valAx", NS.c) : [];
|
|
4434
|
+
return {
|
|
4435
|
+
chartArea: root,
|
|
4436
|
+
plotArea: plot,
|
|
4437
|
+
title: first(chart, "title", NS.c),
|
|
4438
|
+
legend: first(chart, "legend", NS.c),
|
|
4439
|
+
categoryAxis: category ?? values[0],
|
|
4440
|
+
valueAxis: category ? values[0] : values[1],
|
|
4441
|
+
gridlineMajor: first(values[0], "majorGridlines", NS.c),
|
|
4442
|
+
gridlineMinor: first(values[0], "minorGridlines", NS.c)
|
|
4443
|
+
};
|
|
4444
|
+
}
|
|
4445
|
+
|
|
4446
|
+
// chart/manual-layout.ts
|
|
4447
|
+
function readChartManualLayoutValues(value) {
|
|
4448
|
+
const result = {};
|
|
4449
|
+
const enumeration = (name, values) => {
|
|
4450
|
+
const raw = value(name);
|
|
4451
|
+
return values.includes(raw) ? raw : void 0;
|
|
4452
|
+
};
|
|
4453
|
+
const target = enumeration("layoutTarget", ["inner", "outer"]);
|
|
4454
|
+
if (target) result.layoutTarget = target;
|
|
4455
|
+
for (const [xml, key] of [
|
|
4456
|
+
["xMode", "xMode"],
|
|
4457
|
+
["yMode", "yMode"],
|
|
4458
|
+
["wMode", "widthMode"],
|
|
4459
|
+
["hMode", "heightMode"]
|
|
4460
|
+
]) {
|
|
4461
|
+
const mode = enumeration(xml, ["edge", "factor"]);
|
|
4462
|
+
if (mode) result[key] = mode;
|
|
4463
|
+
}
|
|
4464
|
+
for (const [xml, key] of [
|
|
4465
|
+
["x", "x"],
|
|
4466
|
+
["y", "y"],
|
|
4467
|
+
["w", "width"],
|
|
4468
|
+
["h", "height"]
|
|
4469
|
+
]) {
|
|
4470
|
+
const raw = value(xml);
|
|
4471
|
+
if (typeof raw !== "string" && typeof raw !== "number" || typeof raw === "string" && !raw.trim())
|
|
4472
|
+
continue;
|
|
4473
|
+
const number = Number(raw);
|
|
4474
|
+
if (Number.isFinite(number)) result[key] = number;
|
|
4475
|
+
}
|
|
4476
|
+
return Object.keys(result).length ? result : void 0;
|
|
4477
|
+
}
|
|
4478
|
+
|
|
4479
|
+
// chart/read-formatting.ts
|
|
4480
|
+
var c = (parent, name) => first(parent, name, NS.c);
|
|
4481
|
+
var a = (parent, name) => first(parent, name, NS.a);
|
|
4482
|
+
function entry(node) {
|
|
4483
|
+
const body = c(node, "txPr");
|
|
4484
|
+
const paragraph = a(body, "p");
|
|
4485
|
+
const defaults = a(a(paragraph, "pPr"), "defRPr");
|
|
4486
|
+
const rich = c(c(node, "tx"), "rich");
|
|
4487
|
+
const richParagraph = a(rich, "p");
|
|
4488
|
+
const textBody = parseDrawingTextBody(rich);
|
|
4489
|
+
const manual = c(c(node, "layout"), "manualLayout");
|
|
4490
|
+
const layout2 = manual ? readChartManualLayoutValues((name) => c(manual, name)?.getAttribute("val")) : void 0;
|
|
4491
|
+
const overlay = c(node, "overlay")?.getAttribute("val");
|
|
4492
|
+
const out = {
|
|
4493
|
+
sourceXml: buildXml(node),
|
|
4494
|
+
...layout2 ? { layout: layout2 } : {},
|
|
4495
|
+
...overlay === "0" || overlay === "false" ? { overlay: false } : overlay === "1" || overlay === "true" ? { overlay: true } : {},
|
|
4496
|
+
...readChartAppearance(defaults, c(node, "spPr")),
|
|
4497
|
+
...readChartAppearance(a(a(richParagraph, "pPr"), "defRPr"), void 0),
|
|
4498
|
+
...readChartAppearance(a(a(richParagraph, "r"), "rPr"), void 0),
|
|
4499
|
+
...textBody ? { textBody, textBodyStyle: readChartAppearance(defaults, void 0) } : {}
|
|
4500
|
+
};
|
|
4501
|
+
if (["catAx", "dateAx", "valAx"].includes(node.localName)) {
|
|
4502
|
+
const deleted = c(node, "delete")?.getAttribute("val");
|
|
4503
|
+
if (deleted !== void 0) out.axisVisible = deleted !== "1" && deleted !== "true";
|
|
4504
|
+
out.labelsVisible = out.axisVisible !== false && c(node, "tickLblPos")?.getAttribute("val") !== "none";
|
|
4505
|
+
}
|
|
4506
|
+
return out;
|
|
4507
|
+
}
|
|
4508
|
+
function readChartFormatting(root) {
|
|
4509
|
+
const nodes = chartFormattingNodes(root);
|
|
4510
|
+
const entries = Object.fromEntries(
|
|
4511
|
+
Object.entries(nodes).flatMap(([name, node]) => node ? [[name, entry(node)]] : [])
|
|
4512
|
+
);
|
|
4513
|
+
const builtInStyle = readBuiltInChartStyle(root);
|
|
4514
|
+
const textBody = c(root, "txPr");
|
|
4515
|
+
const textDefaults = textBody ? {
|
|
4516
|
+
sourceXml: buildXml(textBody),
|
|
4517
|
+
...readChartAppearance(a(a(a(textBody, "p"), "pPr"), "defRPr"), void 0)
|
|
4518
|
+
} : void 0;
|
|
4519
|
+
return Object.keys(entries).length ? {
|
|
4520
|
+
entries,
|
|
4521
|
+
sourceXml: buildXml(root),
|
|
4522
|
+
...builtInStyle === void 0 ? {} : { builtInStyle },
|
|
4523
|
+
...textDefaults ? { textDefaults } : {}
|
|
4524
|
+
} : void 0;
|
|
4525
|
+
}
|
|
4526
|
+
|
|
4527
|
+
// chart/data-cache.ts
|
|
4528
|
+
function chartCacheValues(cache) {
|
|
4529
|
+
if (!cache) return [];
|
|
4530
|
+
const numeric = cache.type === "number";
|
|
4531
|
+
const out = [];
|
|
4532
|
+
for (const point of cache.points) {
|
|
4533
|
+
const text = point.value;
|
|
4534
|
+
out[point.index ?? out.length] = numeric && text.trim() !== "" && Number.isFinite(Number(text)) ? Number(text) : text;
|
|
4535
|
+
}
|
|
4536
|
+
const size = Math.max(cache.pointCount ?? 0, out.length);
|
|
4537
|
+
for (let index = 0; index < size; index++) if (out[index] === void 0) out[index] = "";
|
|
4538
|
+
return out;
|
|
4539
|
+
}
|
|
4540
|
+
|
|
4541
|
+
// chart/xml-fragment.ts
|
|
4542
|
+
var CHART_ROOT_BINDINGS = /* @__PURE__ */ new Map([
|
|
4543
|
+
["c", NS.c],
|
|
4544
|
+
["a", NS.a],
|
|
4545
|
+
["r", NS.r]
|
|
4546
|
+
]);
|
|
4547
|
+
var DECLARATION = / xmlns:([A-Za-z_][\w.-]*)="([^"]*)"/g;
|
|
4548
|
+
function stripDeclarations(xml, bindings) {
|
|
4549
|
+
const conflicting = /* @__PURE__ */ new Set();
|
|
4550
|
+
for (const [, prefix, uri] of xml.matchAll(DECLARATION))
|
|
4551
|
+
if (prefix !== void 0 && bindings.has(prefix) && bindings.get(prefix) !== uri)
|
|
4552
|
+
conflicting.add(prefix);
|
|
4553
|
+
return xml.replace(
|
|
4554
|
+
DECLARATION,
|
|
4555
|
+
(match, prefix, uri) => bindings.get(prefix) === uri && !conflicting.has(prefix) ? "" : match
|
|
4556
|
+
);
|
|
4557
|
+
}
|
|
4558
|
+
var innerXml = (element) => stripDeclarations(elements(element).map(buildXml).join(""), CHART_ROOT_BINDINGS);
|
|
4559
|
+
|
|
4560
|
+
// chart/parse-util.ts
|
|
4561
|
+
var cChild = (parent, local) => first(parent, local, NS.c);
|
|
4562
|
+
var attribute = (element, name) => element?.hasAttribute(name) ? element.getAttribute(name) ?? void 0 : void 0;
|
|
4563
|
+
var cVal = (parent, local) => attribute(cChild(parent, local), "val");
|
|
4564
|
+
var path = (element) => `c:${element.parentNode?.localName ?? ""}/c:${element.localName}`;
|
|
4565
|
+
function malformed(context, element, value) {
|
|
4566
|
+
context.issues.push({
|
|
4567
|
+
code: "CHART_VALUE_INVALID",
|
|
4568
|
+
message: `${path(element)} has an unreadable value "${value}".`
|
|
4569
|
+
});
|
|
4570
|
+
}
|
|
4571
|
+
function cBool(context, parent, local) {
|
|
4572
|
+
const element = cChild(parent, local);
|
|
4573
|
+
if (!element) return void 0;
|
|
4574
|
+
const raw = attribute(element, "val");
|
|
4575
|
+
if (raw === void 0) return true;
|
|
4576
|
+
const value = raw.trim().toLowerCase();
|
|
4577
|
+
if (value === "1" || value === "true") return true;
|
|
4578
|
+
if (value === "0" || value === "false") return false;
|
|
4579
|
+
malformed(context, element, raw);
|
|
4580
|
+
return void 0;
|
|
4581
|
+
}
|
|
4582
|
+
function cNumber(context, parent, local) {
|
|
4583
|
+
const element = cChild(parent, local);
|
|
4584
|
+
const raw = attribute(element, "val");
|
|
4585
|
+
if (!element || raw === void 0) return void 0;
|
|
4586
|
+
const value = raw.trim() ? Number(raw) : Number.NaN;
|
|
4587
|
+
if (Number.isFinite(value)) return value;
|
|
4588
|
+
malformed(context, element, raw);
|
|
4589
|
+
return void 0;
|
|
4590
|
+
}
|
|
4591
|
+
function reportUnmodelled(context, element, handled) {
|
|
4592
|
+
for (const child3 of elements(element)) {
|
|
4593
|
+
if (handled.has(child3.localName)) continue;
|
|
4594
|
+
context.issues.push({
|
|
4595
|
+
code: "CHART_ELEMENT_NOT_MODELLED",
|
|
4596
|
+
message: `${path(child3)} is not modelled; it is kept only in the source part.`
|
|
4597
|
+
});
|
|
4598
|
+
}
|
|
4599
|
+
}
|
|
4600
|
+
function extensionList(parent) {
|
|
4601
|
+
const extLst = cChild(parent, "extLst");
|
|
4602
|
+
return extLst ? buildXml(extLst) : void 0;
|
|
4603
|
+
}
|
|
4604
|
+
function readShapeFields(spPr) {
|
|
4605
|
+
const out = {};
|
|
4606
|
+
const fill = parseDrawingFill(spPr);
|
|
4607
|
+
if (fill) out.fill = fill;
|
|
4608
|
+
const line = parseDrawingLine(first(spPr, "ln", NS.a));
|
|
4609
|
+
if (line) out.line = line;
|
|
4610
|
+
const effects = first(spPr, "effectLst", NS.a);
|
|
4611
|
+
if (effects) out.effectsXml = buildXml(effects);
|
|
4612
|
+
return out;
|
|
4613
|
+
}
|
|
4614
|
+
function shapeProperties(parent) {
|
|
4615
|
+
const spPr = cChild(parent, "spPr");
|
|
4616
|
+
if (!spPr) return void 0;
|
|
4617
|
+
const out = readShapeFields(spPr);
|
|
4618
|
+
const source = innerXml(spPr);
|
|
4619
|
+
if (source) out.sourceXml = source;
|
|
4620
|
+
return out;
|
|
4621
|
+
}
|
|
4622
|
+
function chartTextBody(element) {
|
|
4623
|
+
const body = parseDrawingTextBody(element);
|
|
4624
|
+
if (!body || !element) return body;
|
|
4625
|
+
const source = innerXml(element);
|
|
4626
|
+
if (source) body.sourceXml = source;
|
|
4627
|
+
return body;
|
|
4628
|
+
}
|
|
4629
|
+
var textProperties = (parent) => chartTextBody(cChild(parent, "txPr"));
|
|
4630
|
+
function chartLines(parent, local) {
|
|
4631
|
+
const element = cChild(parent, local);
|
|
4632
|
+
if (!element) return void 0;
|
|
4633
|
+
const spPr = shapeProperties(element);
|
|
4634
|
+
return spPr ? { spPr } : {};
|
|
4635
|
+
}
|
|
4636
|
+
function numberFormat(parent) {
|
|
4637
|
+
const element = cChild(parent, "numFmt");
|
|
4638
|
+
const formatCode = attribute(element, "formatCode");
|
|
4639
|
+
if (formatCode === void 0) return void 0;
|
|
4640
|
+
const linked = attribute(element, "sourceLinked");
|
|
4641
|
+
return {
|
|
4642
|
+
formatCode,
|
|
4643
|
+
...linked === "1" || linked === "true" ? { sourceLinked: true } : {},
|
|
4644
|
+
...linked === "0" || linked === "false" ? { sourceLinked: false } : {}
|
|
4645
|
+
};
|
|
4646
|
+
}
|
|
4647
|
+
function readLayoutFields(layout2) {
|
|
4648
|
+
const manual = cChild(layout2, "manualLayout");
|
|
4649
|
+
return (manual && readChartManualLayoutValues((name) => cVal(manual, name))) ?? {};
|
|
4650
|
+
}
|
|
4651
|
+
function manualLayout(parent) {
|
|
4652
|
+
const layout2 = cChild(parent, "layout");
|
|
4653
|
+
if (!layout2) return void 0;
|
|
4654
|
+
const out = readLayoutFields(layout2);
|
|
4655
|
+
const source = innerXml(layout2);
|
|
4656
|
+
if (source) out.sourceXml = source;
|
|
4657
|
+
return out;
|
|
4658
|
+
}
|
|
4659
|
+
function assignDefined(target, values) {
|
|
4660
|
+
for (const [key, value] of Object.entries(values))
|
|
4661
|
+
if (value !== void 0) target[key] = value;
|
|
4662
|
+
return target;
|
|
4663
|
+
}
|
|
4664
|
+
|
|
4665
|
+
// chart/parse-text.ts
|
|
4666
|
+
function parseCache(node) {
|
|
4667
|
+
const cache = {
|
|
4668
|
+
type: node.localName === "numCache" || node.localName === "numLit" ? "number" : "string",
|
|
4669
|
+
points: children(node, "pt", NS.c).map((pt) => {
|
|
4670
|
+
const point = { value: cChild(pt, "v")?.textContent ?? "" };
|
|
4671
|
+
const index = Number(attribute(pt, "idx") ?? Number.NaN);
|
|
4672
|
+
if (Number.isInteger(index) && index >= 0) point.index = index;
|
|
4673
|
+
const formatCode2 = attribute(pt, "formatCode");
|
|
4674
|
+
if (formatCode2 !== void 0) point.formatCode = formatCode2;
|
|
4675
|
+
return point;
|
|
4676
|
+
})
|
|
4677
|
+
};
|
|
4678
|
+
const count = Number(cVal(node, "ptCount") ?? Number.NaN);
|
|
4679
|
+
if (Number.isInteger(count) && count >= 0) cache.pointCount = count;
|
|
4680
|
+
const formatCode = cChild(node, "formatCode")?.textContent;
|
|
4681
|
+
if (formatCode) cache.formatCode = formatCode;
|
|
4682
|
+
return cache;
|
|
4683
|
+
}
|
|
4684
|
+
function parseDataSource(element) {
|
|
4685
|
+
if (!element) return void 0;
|
|
4686
|
+
const source = {};
|
|
4687
|
+
const ref = cChild(element, "numRef") ?? cChild(element, "strRef") ?? cChild(element, "multiLvlStrRef");
|
|
4688
|
+
if (ref) {
|
|
4689
|
+
source.kind = ref.localName;
|
|
4690
|
+
const formula = cChild(ref, "f")?.textContent;
|
|
4691
|
+
if (formula) source.formula = formula;
|
|
4692
|
+
const cache = cChild(ref, "numCache") ?? cChild(ref, "strCache");
|
|
4693
|
+
if (cache) source.cache = parseCache(cache);
|
|
4694
|
+
const levels = cChild(ref, "multiLvlStrCache");
|
|
4695
|
+
if (levels) {
|
|
4696
|
+
source.levels = children(levels, "lvl", NS.c).map(parseCache);
|
|
4697
|
+
const count = Number(cVal(levels, "ptCount") ?? Number.NaN);
|
|
4698
|
+
if (Number.isInteger(count) && count >= 0) source.levelPointCount = count;
|
|
4699
|
+
}
|
|
4700
|
+
return source;
|
|
4701
|
+
}
|
|
4702
|
+
const literal = cChild(element, "numLit") ?? cChild(element, "strLit");
|
|
4703
|
+
if (literal) {
|
|
4704
|
+
source.kind = literal.localName;
|
|
4705
|
+
source.cache = parseCache(literal);
|
|
4706
|
+
}
|
|
4707
|
+
return source;
|
|
4708
|
+
}
|
|
4709
|
+
function parseChartText(context, tx, allowValue) {
|
|
4710
|
+
if (!tx) return void 0;
|
|
4711
|
+
const text = {};
|
|
4712
|
+
const rich = chartTextBody(cChild(tx, "rich"));
|
|
4713
|
+
if (rich) text.rich = rich;
|
|
4714
|
+
if (cChild(tx, "strRef")) {
|
|
4715
|
+
const reference = parseDataSource(tx);
|
|
4716
|
+
if (reference) text.reference = reference;
|
|
4717
|
+
}
|
|
4718
|
+
const value = allowValue ? cChild(tx, "v")?.textContent : void 0;
|
|
4719
|
+
if (value !== void 0 && value !== null) text.value = value;
|
|
4720
|
+
const cached2 = chartCacheValues(text.reference?.cache)[0];
|
|
4721
|
+
const flat = text.value ?? (rich ? rich.text : cached2 === void 0 ? void 0 : String(cached2));
|
|
4722
|
+
if (flat !== void 0) text.text = flat;
|
|
4723
|
+
reportUnmodelled(context, tx, new Set(allowValue ? ["strRef", "v"] : ["rich", "strRef"]));
|
|
4724
|
+
return text;
|
|
4725
|
+
}
|
|
4726
|
+
var TITLE = /* @__PURE__ */ new Set(["tx", "layout", "overlay", "spPr", "txPr", "extLst"]);
|
|
4727
|
+
function parseTitle(context, element) {
|
|
4728
|
+
const tx = parseChartText(context, cChild(element, "tx"), false);
|
|
4729
|
+
reportUnmodelled(context, element, TITLE);
|
|
4730
|
+
return assignDefined(
|
|
4731
|
+
{},
|
|
4732
|
+
{
|
|
4733
|
+
tx,
|
|
4734
|
+
text: tx?.text,
|
|
4735
|
+
overlay: cBool(context, element, "overlay"),
|
|
4736
|
+
layout: manualLayout(element),
|
|
4737
|
+
spPr: shapeProperties(element),
|
|
4738
|
+
txPr: textProperties(element),
|
|
4739
|
+
extLst: extensionList(element)
|
|
4740
|
+
}
|
|
4741
|
+
);
|
|
4742
|
+
}
|
|
4743
|
+
var LABEL_OPTIONS = [
|
|
4744
|
+
"delete",
|
|
4745
|
+
"showLegendKey",
|
|
4746
|
+
"showVal",
|
|
4747
|
+
"showCatName",
|
|
4748
|
+
"showSerName",
|
|
4749
|
+
"showPercent",
|
|
4750
|
+
"showBubbleSize",
|
|
4751
|
+
"separator",
|
|
4752
|
+
"dLblPos",
|
|
4753
|
+
"numFmt",
|
|
4754
|
+
"spPr",
|
|
4755
|
+
"txPr",
|
|
4756
|
+
"extLst"
|
|
4757
|
+
];
|
|
4758
|
+
function labelOptions(context, element) {
|
|
4759
|
+
const flag2 = (local) => cBool(context, element, local);
|
|
4760
|
+
return assignDefined(
|
|
4761
|
+
{},
|
|
4762
|
+
{
|
|
4763
|
+
deleted: flag2("delete"),
|
|
4764
|
+
showLegendKey: flag2("showLegendKey"),
|
|
4765
|
+
showValue: flag2("showVal"),
|
|
4766
|
+
showCategoryName: flag2("showCatName"),
|
|
4767
|
+
showSeriesName: flag2("showSerName"),
|
|
4768
|
+
showPercent: flag2("showPercent"),
|
|
4769
|
+
showBubbleSize: flag2("showBubbleSize"),
|
|
4770
|
+
separator: cChild(element, "separator")?.textContent ?? void 0,
|
|
4771
|
+
position: cVal(element, "dLblPos"),
|
|
4772
|
+
numberFormat: numberFormat(element),
|
|
4773
|
+
spPr: shapeProperties(element),
|
|
4774
|
+
txPr: textProperties(element),
|
|
4775
|
+
extLst: extensionList(element)
|
|
4776
|
+
}
|
|
4777
|
+
);
|
|
4778
|
+
}
|
|
4779
|
+
var LABEL = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "idx", "layout", "tx"]);
|
|
4780
|
+
var LABELS = /* @__PURE__ */ new Set([...LABEL_OPTIONS, "dLbl", "showLeaderLines", "leaderLines"]);
|
|
4781
|
+
function parseDataLabels(context, element) {
|
|
4782
|
+
if (!element) return void 0;
|
|
4783
|
+
const labels = children(element, "dLbl", NS.c).map((node) => {
|
|
4784
|
+
reportUnmodelled(context, node, LABEL);
|
|
4785
|
+
return assignDefined(labelOptions(context, node), {
|
|
4786
|
+
index: cNumber(context, node, "idx"),
|
|
4787
|
+
tx: parseChartText(context, cChild(node, "tx"), false),
|
|
4788
|
+
layout: manualLayout(node)
|
|
4789
|
+
});
|
|
4790
|
+
});
|
|
4791
|
+
reportUnmodelled(context, element, LABELS);
|
|
4792
|
+
return assignDefined(
|
|
4793
|
+
{ ...labelOptions(context, element), labels },
|
|
4794
|
+
{
|
|
4795
|
+
showLeaderLines: cBool(context, element, "showLeaderLines"),
|
|
4796
|
+
leaderLines: chartLines(element, "leaderLines")
|
|
4797
|
+
}
|
|
4798
|
+
);
|
|
4799
|
+
}
|
|
4800
|
+
|
|
4801
|
+
// chart/parse-chrome.ts
|
|
4802
|
+
var SURFACE = /* @__PURE__ */ new Set(["thickness", "spPr", "pictureOptions", "extLst"]);
|
|
4803
|
+
function parseSurface(context, element) {
|
|
4804
|
+
if (!element) return void 0;
|
|
4805
|
+
reportUnmodelled(context, element, SURFACE);
|
|
4806
|
+
const pictureOptions = cChild(element, "pictureOptions");
|
|
4807
|
+
return assignDefined(
|
|
4808
|
+
{},
|
|
4809
|
+
{
|
|
4810
|
+
thickness: cNumber(context, element, "thickness"),
|
|
4811
|
+
spPr: shapeProperties(element),
|
|
4812
|
+
pictureOptionsXml: pictureOptions ? buildXml(pictureOptions) : void 0,
|
|
4813
|
+
extLst: extensionList(element)
|
|
4814
|
+
}
|
|
4815
|
+
);
|
|
4816
|
+
}
|
|
4817
|
+
var DATA_TABLE = /* @__PURE__ */ new Set([
|
|
4818
|
+
"showHorzBorder",
|
|
4819
|
+
"showVertBorder",
|
|
4820
|
+
"showOutline",
|
|
4821
|
+
"showKeys",
|
|
4822
|
+
"spPr",
|
|
4823
|
+
"txPr",
|
|
4824
|
+
"extLst"
|
|
4825
|
+
]);
|
|
4826
|
+
function parseDataTable(context, element) {
|
|
4827
|
+
if (!element) return void 0;
|
|
4828
|
+
reportUnmodelled(context, element, DATA_TABLE);
|
|
4829
|
+
return assignDefined(
|
|
4830
|
+
{},
|
|
4831
|
+
{
|
|
4832
|
+
showHorizontalBorder: cBool(context, element, "showHorzBorder"),
|
|
4833
|
+
showVerticalBorder: cBool(context, element, "showVertBorder"),
|
|
4834
|
+
showOutline: cBool(context, element, "showOutline"),
|
|
4835
|
+
showKeys: cBool(context, element, "showKeys"),
|
|
4836
|
+
spPr: shapeProperties(element),
|
|
4837
|
+
txPr: textProperties(element),
|
|
4838
|
+
extLst: extensionList(element)
|
|
4839
|
+
}
|
|
4840
|
+
);
|
|
4841
|
+
}
|
|
4842
|
+
var DISPLAY_UNITS = /* @__PURE__ */ new Set(["custUnit", "builtInUnit", "dispUnitsLbl", "extLst"]);
|
|
4843
|
+
var DISPLAY_UNITS_LABEL = /* @__PURE__ */ new Set(["layout", "tx", "spPr", "txPr"]);
|
|
4844
|
+
function parseDisplayUnits(context, element) {
|
|
4845
|
+
if (!element) return void 0;
|
|
4846
|
+
reportUnmodelled(context, element, DISPLAY_UNITS);
|
|
4847
|
+
const labelElement = cChild(element, "dispUnitsLbl");
|
|
4848
|
+
let label;
|
|
4849
|
+
if (labelElement) {
|
|
4850
|
+
reportUnmodelled(context, labelElement, DISPLAY_UNITS_LABEL);
|
|
4851
|
+
label = assignDefined(
|
|
4852
|
+
{},
|
|
4853
|
+
{
|
|
4854
|
+
layout: manualLayout(labelElement),
|
|
4855
|
+
tx: parseChartText(context, cChild(labelElement, "tx"), false),
|
|
4856
|
+
spPr: shapeProperties(labelElement),
|
|
4857
|
+
txPr: textProperties(labelElement)
|
|
4858
|
+
}
|
|
4859
|
+
);
|
|
4860
|
+
}
|
|
4861
|
+
return assignDefined(
|
|
4862
|
+
{},
|
|
4863
|
+
{
|
|
4864
|
+
builtInUnit: cVal(element, "builtInUnit"),
|
|
4865
|
+
customUnit: cNumber(context, element, "custUnit"),
|
|
4866
|
+
label,
|
|
4867
|
+
extLst: extensionList(element)
|
|
4868
|
+
}
|
|
4869
|
+
);
|
|
4870
|
+
}
|
|
4871
|
+
|
|
4872
|
+
// chart/parse-series.ts
|
|
4873
|
+
var MARKER = /* @__PURE__ */ new Set(["symbol", "size", "spPr", "extLst"]);
|
|
4874
|
+
function parseMarker(context, element) {
|
|
4875
|
+
if (!element) return void 0;
|
|
4876
|
+
reportUnmodelled(context, element, MARKER);
|
|
4877
|
+
return assignDefined(
|
|
4878
|
+
{},
|
|
4879
|
+
{
|
|
4880
|
+
symbol: cVal(element, "symbol"),
|
|
4881
|
+
size: cNumber(context, element, "size"),
|
|
4882
|
+
spPr: shapeProperties(element),
|
|
4883
|
+
extLst: extensionList(element)
|
|
4884
|
+
}
|
|
4885
|
+
);
|
|
4886
|
+
}
|
|
4887
|
+
var POINT = /* @__PURE__ */ new Set([
|
|
4888
|
+
"idx",
|
|
4889
|
+
"invertIfNegative",
|
|
4890
|
+
"marker",
|
|
4891
|
+
"bubble3D",
|
|
4892
|
+
"explosion",
|
|
4893
|
+
"spPr",
|
|
4894
|
+
"extLst"
|
|
4895
|
+
]);
|
|
4896
|
+
function parseDataPoint(context, element) {
|
|
4897
|
+
reportUnmodelled(context, element, POINT);
|
|
4898
|
+
const index = cNumber(context, element, "idx");
|
|
4899
|
+
return assignDefined(
|
|
4900
|
+
{},
|
|
4901
|
+
{
|
|
4902
|
+
index: index !== void 0 && Number.isInteger(index) && index >= 0 ? index : void 0,
|
|
4903
|
+
invertIfNegative: cBool(context, element, "invertIfNegative"),
|
|
4904
|
+
bubble3D: cBool(context, element, "bubble3D"),
|
|
4905
|
+
explosion: cNumber(context, element, "explosion"),
|
|
4906
|
+
marker: parseMarker(context, cChild(element, "marker")),
|
|
4907
|
+
spPr: shapeProperties(element),
|
|
4908
|
+
extLst: extensionList(element)
|
|
4909
|
+
}
|
|
4910
|
+
);
|
|
4911
|
+
}
|
|
4912
|
+
var SERIES = /* @__PURE__ */ new Set([
|
|
4913
|
+
"idx",
|
|
4914
|
+
"order",
|
|
4915
|
+
"tx",
|
|
4916
|
+
"spPr",
|
|
4917
|
+
"invertIfNegative",
|
|
4918
|
+
"dPt",
|
|
4919
|
+
"dLbls",
|
|
4920
|
+
"cat",
|
|
4921
|
+
"val",
|
|
4922
|
+
"xVal",
|
|
4923
|
+
"yVal",
|
|
4924
|
+
"smooth",
|
|
4925
|
+
"marker",
|
|
4926
|
+
"explosion",
|
|
4927
|
+
"bubbleSize",
|
|
4928
|
+
"bubble3D",
|
|
4929
|
+
"shape",
|
|
4930
|
+
"extLst"
|
|
4931
|
+
]);
|
|
4932
|
+
function parseSeries(context, element) {
|
|
4933
|
+
reportUnmodelled(context, element, SERIES);
|
|
4934
|
+
return assignDefined(
|
|
4935
|
+
{ dataPoints: children(element, "dPt", NS.c).map((point) => parseDataPoint(context, point)) },
|
|
4936
|
+
{
|
|
4937
|
+
index: cNumber(context, element, "idx"),
|
|
4938
|
+
order: cNumber(context, element, "order"),
|
|
4939
|
+
tx: parseChartText(context, cChild(element, "tx"), true),
|
|
4940
|
+
spPr: shapeProperties(element),
|
|
4941
|
+
marker: parseMarker(context, cChild(element, "marker")),
|
|
4942
|
+
dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
|
|
4943
|
+
categories: parseDataSource(cChild(element, "cat")),
|
|
4944
|
+
values: parseDataSource(cChild(element, "val")),
|
|
4945
|
+
xValues: parseDataSource(cChild(element, "xVal")),
|
|
4946
|
+
yValues: parseDataSource(cChild(element, "yVal")),
|
|
4947
|
+
bubbleSizes: parseDataSource(cChild(element, "bubbleSize")),
|
|
4948
|
+
smooth: cBool(context, element, "smooth"),
|
|
4949
|
+
invertIfNegative: cBool(context, element, "invertIfNegative"),
|
|
4950
|
+
explosion: cNumber(context, element, "explosion"),
|
|
4951
|
+
bubble3D: cBool(context, element, "bubble3D"),
|
|
4952
|
+
shape: cVal(element, "shape"),
|
|
4953
|
+
extLst: extensionList(element)
|
|
4954
|
+
}
|
|
4955
|
+
);
|
|
4956
|
+
}
|
|
4957
|
+
|
|
4958
|
+
// chart/parse-plot.ts
|
|
4959
|
+
var CHART_GROUP_ELEMENTS = {
|
|
4960
|
+
barChart: { kind: "bar", is3D: false },
|
|
4961
|
+
bar3DChart: { kind: "bar", is3D: true },
|
|
4962
|
+
lineChart: { kind: "line", is3D: false },
|
|
4963
|
+
line3DChart: { kind: "line", is3D: true },
|
|
4964
|
+
areaChart: { kind: "area", is3D: false },
|
|
4965
|
+
area3DChart: { kind: "area", is3D: true },
|
|
4966
|
+
pieChart: { kind: "pie", is3D: false },
|
|
4967
|
+
pie3DChart: { kind: "pie", is3D: true },
|
|
4968
|
+
ofPieChart: { kind: "ofPie", is3D: false },
|
|
4969
|
+
doughnutChart: { kind: "doughnut", is3D: false },
|
|
4970
|
+
scatterChart: { kind: "scatter", is3D: false },
|
|
4971
|
+
radarChart: { kind: "radar", is3D: false },
|
|
4972
|
+
bubbleChart: { kind: "bubble", is3D: false },
|
|
4973
|
+
stockChart: { kind: "stock", is3D: false },
|
|
4974
|
+
surfaceChart: { kind: "surface", is3D: false },
|
|
4975
|
+
surface3DChart: { kind: "surface", is3D: true }
|
|
4976
|
+
};
|
|
4977
|
+
var AXIS_ELEMENTS = {
|
|
4978
|
+
catAx: "cat",
|
|
4979
|
+
valAx: "val",
|
|
4980
|
+
dateAx: "date",
|
|
4981
|
+
serAx: "ser"
|
|
4982
|
+
};
|
|
4983
|
+
var GROUP = /* @__PURE__ */ new Set([
|
|
4984
|
+
"ser",
|
|
4985
|
+
"axId",
|
|
4986
|
+
"varyColors",
|
|
4987
|
+
"dLbls",
|
|
4988
|
+
"barDir",
|
|
4989
|
+
"grouping",
|
|
4990
|
+
"gapWidth",
|
|
4991
|
+
"overlap",
|
|
4992
|
+
"gapDepth",
|
|
4993
|
+
"shape",
|
|
4994
|
+
"marker",
|
|
4995
|
+
"smooth",
|
|
4996
|
+
"dropLines",
|
|
4997
|
+
"hiLowLines",
|
|
4998
|
+
"upDownBars",
|
|
4999
|
+
"serLines",
|
|
5000
|
+
"firstSliceAng",
|
|
5001
|
+
"holeSize",
|
|
5002
|
+
"ofPieType",
|
|
5003
|
+
"scatterStyle",
|
|
5004
|
+
"radarStyle",
|
|
5005
|
+
"bubble3D",
|
|
5006
|
+
"bubbleScale",
|
|
5007
|
+
"showNegBubbles",
|
|
5008
|
+
"sizeRepresents",
|
|
5009
|
+
"wireframe",
|
|
5010
|
+
"extLst"
|
|
5011
|
+
]);
|
|
5012
|
+
function parseGroup(context, element) {
|
|
5013
|
+
const { kind, is3D } = CHART_GROUP_ELEMENTS[element.localName] ?? { kind: "bar", is3D: false };
|
|
5014
|
+
reportUnmodelled(context, element, GROUP);
|
|
5015
|
+
const number = (local) => cNumber(context, element, local);
|
|
5016
|
+
const flag2 = (local) => cBool(context, element, local);
|
|
5017
|
+
const barDir = cVal(element, "barDir");
|
|
5018
|
+
const present = (local) => cChild(element, local) ? true : void 0;
|
|
5019
|
+
const linesShape = (local) => chartLines(element, local)?.spPr;
|
|
5020
|
+
const bars = cChild(element, "upDownBars");
|
|
5021
|
+
return assignDefined(
|
|
5022
|
+
{
|
|
5023
|
+
kind,
|
|
5024
|
+
element: element.localName,
|
|
5025
|
+
is3D,
|
|
5026
|
+
series: children(element, "ser", NS.c).map((ser) => parseSeries(context, ser)),
|
|
5027
|
+
axisIds: children(element, "axId", NS.c).flatMap((axis) => {
|
|
5028
|
+
const raw = attribute(axis, "val")?.trim();
|
|
5029
|
+
const id = raw ? Number(raw) : Number.NaN;
|
|
5030
|
+
return Number.isFinite(id) ? [id] : [];
|
|
5031
|
+
})
|
|
5032
|
+
},
|
|
5033
|
+
{
|
|
5034
|
+
varyColors: flag2("varyColors"),
|
|
5035
|
+
dataLabels: parseDataLabels(context, cChild(element, "dLbls")),
|
|
5036
|
+
barDirection: barDir === "bar" || barDir === "col" ? barDir : void 0,
|
|
5037
|
+
grouping: cVal(element, "grouping"),
|
|
5038
|
+
gapWidth: number("gapWidth"),
|
|
5039
|
+
overlap: number("overlap"),
|
|
5040
|
+
gapDepth: number("gapDepth"),
|
|
5041
|
+
shape: cVal(element, "shape"),
|
|
5042
|
+
marker: flag2("marker"),
|
|
5043
|
+
smooth: flag2("smooth"),
|
|
5044
|
+
dropLines: present("dropLines"),
|
|
5045
|
+
hiLowLines: present("hiLowLines"),
|
|
5046
|
+
upDownBars: present("upDownBars"),
|
|
5047
|
+
seriesLines: present("serLines"),
|
|
5048
|
+
dropLinesSpPr: linesShape("dropLines"),
|
|
5049
|
+
hiLowLinesSpPr: linesShape("hiLowLines"),
|
|
5050
|
+
seriesLinesSpPr: linesShape("serLines"),
|
|
5051
|
+
upDownBarsGapWidth: cNumber(context, bars, "gapWidth"),
|
|
5052
|
+
upBars: chartLines(bars, "upBars"),
|
|
5053
|
+
downBars: chartLines(bars, "downBars"),
|
|
5054
|
+
firstSliceAngle: number("firstSliceAng"),
|
|
5055
|
+
holeSize: number("holeSize"),
|
|
5056
|
+
ofPieType: cVal(element, "ofPieType"),
|
|
5057
|
+
scatterStyle: cVal(element, "scatterStyle"),
|
|
5058
|
+
radarStyle: cVal(element, "radarStyle"),
|
|
5059
|
+
bubble3D: flag2("bubble3D"),
|
|
5060
|
+
bubbleScale: number("bubbleScale"),
|
|
5061
|
+
showNegativeBubbles: flag2("showNegBubbles"),
|
|
5062
|
+
sizeRepresents: cVal(element, "sizeRepresents"),
|
|
5063
|
+
wireframe: flag2("wireframe"),
|
|
5064
|
+
extLst: extensionList(element)
|
|
5065
|
+
}
|
|
5066
|
+
);
|
|
5067
|
+
}
|
|
5068
|
+
var SCALING = /* @__PURE__ */ new Set(["orientation", "logBase", "min", "max", "extLst"]);
|
|
5069
|
+
var AXIS = /* @__PURE__ */ new Set([
|
|
5070
|
+
"axId",
|
|
5071
|
+
"scaling",
|
|
5072
|
+
"delete",
|
|
5073
|
+
"axPos",
|
|
5074
|
+
"majorGridlines",
|
|
5075
|
+
"minorGridlines",
|
|
5076
|
+
"title",
|
|
5077
|
+
"numFmt",
|
|
5078
|
+
"majorTickMark",
|
|
5079
|
+
"minorTickMark",
|
|
5080
|
+
"tickLblPos",
|
|
5081
|
+
"spPr",
|
|
5082
|
+
"txPr",
|
|
5083
|
+
"crossAx",
|
|
5084
|
+
"crosses",
|
|
5085
|
+
"crossesAt",
|
|
5086
|
+
"crossBetween",
|
|
5087
|
+
"majorUnit",
|
|
5088
|
+
"minorUnit",
|
|
5089
|
+
"auto",
|
|
5090
|
+
"lblAlgn",
|
|
5091
|
+
"lblOffset",
|
|
5092
|
+
"tickLblSkip",
|
|
5093
|
+
"tickMarkSkip",
|
|
5094
|
+
"noMultiLvlLbl",
|
|
5095
|
+
"baseTimeUnit",
|
|
5096
|
+
"dispUnits",
|
|
5097
|
+
"extLst"
|
|
5098
|
+
]);
|
|
5099
|
+
function parseAxis(context, element, kind) {
|
|
5100
|
+
reportUnmodelled(context, element, AXIS);
|
|
5101
|
+
const number = (local) => cNumber(context, element, local);
|
|
5102
|
+
const scalingElement = cChild(element, "scaling");
|
|
5103
|
+
if (scalingElement) reportUnmodelled(context, scalingElement, SCALING);
|
|
5104
|
+
const scaling = assignDefined(
|
|
5105
|
+
{},
|
|
5106
|
+
{
|
|
5107
|
+
orientation: cVal(scalingElement, "orientation"),
|
|
5108
|
+
min: cNumber(context, scalingElement, "min"),
|
|
5109
|
+
max: cNumber(context, scalingElement, "max"),
|
|
5110
|
+
logBase: cNumber(context, scalingElement, "logBase")
|
|
5111
|
+
}
|
|
5112
|
+
);
|
|
5113
|
+
const title = cChild(element, "title");
|
|
5114
|
+
return assignDefined(
|
|
5115
|
+
{
|
|
5116
|
+
kind,
|
|
5117
|
+
scaling,
|
|
5118
|
+
majorGridlines: cChild(element, "majorGridlines") !== void 0,
|
|
5119
|
+
minorGridlines: cChild(element, "minorGridlines") !== void 0
|
|
5120
|
+
},
|
|
5121
|
+
{
|
|
5122
|
+
majorGridlinesSpPr: chartLines(element, "majorGridlines")?.spPr,
|
|
5123
|
+
minorGridlinesSpPr: chartLines(element, "minorGridlines")?.spPr,
|
|
5124
|
+
id: number("axId"),
|
|
5125
|
+
crossAxisId: number("crossAx"),
|
|
5126
|
+
position: cVal(element, "axPos"),
|
|
5127
|
+
deleted: cBool(context, element, "delete"),
|
|
5128
|
+
title: title ? parseTitle(context, title) : void 0,
|
|
5129
|
+
numberFormat: numberFormat(element),
|
|
5130
|
+
majorTickMark: cVal(element, "majorTickMark"),
|
|
5131
|
+
minorTickMark: cVal(element, "minorTickMark"),
|
|
5132
|
+
tickLabelPosition: cVal(element, "tickLblPos"),
|
|
5133
|
+
crosses: cVal(element, "crosses"),
|
|
5134
|
+
crossesAt: number("crossesAt"),
|
|
5135
|
+
crossBetween: cVal(element, "crossBetween"),
|
|
5136
|
+
majorUnit: number("majorUnit"),
|
|
5137
|
+
minorUnit: number("minorUnit"),
|
|
5138
|
+
auto: cBool(context, element, "auto"),
|
|
5139
|
+
labelAlign: cVal(element, "lblAlgn"),
|
|
5140
|
+
labelOffset: number("lblOffset"),
|
|
5141
|
+
tickLabelSkip: number("tickLblSkip"),
|
|
5142
|
+
tickMarkSkip: number("tickMarkSkip"),
|
|
5143
|
+
noMultiLevelLabels: cBool(context, element, "noMultiLvlLbl"),
|
|
5144
|
+
baseTimeUnit: cVal(element, "baseTimeUnit"),
|
|
5145
|
+
displayUnits: parseDisplayUnits(context, cChild(element, "dispUnits")),
|
|
5146
|
+
spPr: shapeProperties(element),
|
|
5147
|
+
txPr: textProperties(element),
|
|
5148
|
+
extLst: extensionList(element)
|
|
5149
|
+
}
|
|
5150
|
+
);
|
|
5151
|
+
}
|
|
5152
|
+
var PLOT_AREA = /* @__PURE__ */ new Set(["layout", "dTable", "spPr", "extLst"]);
|
|
5153
|
+
function parsePlotArea(context, element) {
|
|
5154
|
+
const plotArea = { groups: [], axes: [] };
|
|
5155
|
+
if (!element) {
|
|
5156
|
+
context.issues.push({
|
|
5157
|
+
code: "CHART_PLOT_AREA_MISSING",
|
|
5158
|
+
message: "The chart has no c:plotArea."
|
|
5159
|
+
});
|
|
5160
|
+
return plotArea;
|
|
5161
|
+
}
|
|
5162
|
+
const handled = new Set(PLOT_AREA);
|
|
5163
|
+
for (const child3 of elements(element)) {
|
|
5164
|
+
if (CHART_GROUP_ELEMENTS[child3.localName]) {
|
|
5165
|
+
plotArea.groups.push(parseGroup(context, child3));
|
|
5166
|
+
handled.add(child3.localName);
|
|
5167
|
+
}
|
|
5168
|
+
const axis = AXIS_ELEMENTS[child3.localName];
|
|
5169
|
+
if (axis) {
|
|
5170
|
+
plotArea.axes.push(parseAxis(context, child3, axis));
|
|
5171
|
+
handled.add(child3.localName);
|
|
5172
|
+
}
|
|
5173
|
+
}
|
|
5174
|
+
reportUnmodelled(context, element, handled);
|
|
5175
|
+
return assignDefined(plotArea, {
|
|
5176
|
+
layout: manualLayout(element),
|
|
5177
|
+
dataTable: parseDataTable(context, cChild(element, "dTable")),
|
|
5178
|
+
spPr: shapeProperties(element),
|
|
5179
|
+
extLst: extensionList(element)
|
|
5180
|
+
});
|
|
5181
|
+
}
|
|
5182
|
+
|
|
5183
|
+
// chart/parse-space.ts
|
|
5184
|
+
var LEGEND = /* @__PURE__ */ new Set(["legendPos", "legendEntry", "layout", "overlay", "spPr", "txPr", "extLst"]);
|
|
5185
|
+
function parseLegend(context, element) {
|
|
5186
|
+
reportUnmodelled(context, element, LEGEND);
|
|
5187
|
+
const entries = children(element, "legendEntry", NS.c).map(
|
|
5188
|
+
(entry2) => assignDefined(
|
|
5189
|
+
{},
|
|
5190
|
+
{
|
|
5191
|
+
index: cNumber(context, entry2, "idx"),
|
|
5192
|
+
deleted: cBool(context, entry2, "delete"),
|
|
5193
|
+
txPr: textProperties(entry2)
|
|
5194
|
+
}
|
|
5195
|
+
)
|
|
5196
|
+
);
|
|
5197
|
+
return assignDefined(
|
|
5198
|
+
{ entries },
|
|
5199
|
+
{
|
|
5200
|
+
position: cVal(element, "legendPos"),
|
|
5201
|
+
overlay: cBool(context, element, "overlay"),
|
|
5202
|
+
layout: manualLayout(element),
|
|
5203
|
+
spPr: shapeProperties(element),
|
|
5204
|
+
txPr: textProperties(element),
|
|
5205
|
+
extLst: extensionList(element)
|
|
5206
|
+
}
|
|
5207
|
+
);
|
|
5208
|
+
}
|
|
5209
|
+
var VIEW_3D = /* @__PURE__ */ new Set(["rotX", "rotY", "depthPercent", "hPercent", "rAngAx", "perspective"]);
|
|
5210
|
+
function parseView3D(context, element) {
|
|
5211
|
+
reportUnmodelled(context, element, VIEW_3D);
|
|
5212
|
+
return assignDefined(
|
|
5213
|
+
{},
|
|
5214
|
+
{
|
|
5215
|
+
rotX: cNumber(context, element, "rotX"),
|
|
5216
|
+
rotY: cNumber(context, element, "rotY"),
|
|
5217
|
+
depthPercent: cNumber(context, element, "depthPercent"),
|
|
5218
|
+
heightPercent: cNumber(context, element, "hPercent"),
|
|
5219
|
+
rightAngleAxes: cBool(context, element, "rAngAx"),
|
|
5220
|
+
perspective: cNumber(context, element, "perspective")
|
|
5221
|
+
}
|
|
5222
|
+
);
|
|
5223
|
+
}
|
|
5224
|
+
function chartStyle(context, space) {
|
|
5225
|
+
const direct = cNumber(context, space, "style");
|
|
5226
|
+
if (direct !== void 0) return direct;
|
|
5227
|
+
for (const alternate of children(space, "AlternateContent", NS.mc)) {
|
|
5228
|
+
const style = cNumber(context, first(alternate, "Fallback", NS.mc), "style");
|
|
5229
|
+
if (style !== void 0) return style;
|
|
5230
|
+
}
|
|
5231
|
+
return void 0;
|
|
5232
|
+
}
|
|
5233
|
+
function c14Style(space) {
|
|
5234
|
+
for (const alternate of children(space, "AlternateContent", NS.mc)) {
|
|
5235
|
+
const raw = attribute(first(first(alternate, "Choice", NS.mc), "style", NS.c14, false), "val");
|
|
5236
|
+
const value = raw?.trim() ? Number(raw) : Number.NaN;
|
|
5237
|
+
if (Number.isFinite(value)) return value;
|
|
5238
|
+
}
|
|
5239
|
+
return void 0;
|
|
5240
|
+
}
|
|
5241
|
+
function namespaceDeclarations(root) {
|
|
5242
|
+
const out = [];
|
|
5243
|
+
for (const item of Array.from(root.attributes)) {
|
|
5244
|
+
if (item.prefix !== "xmlns" || CHART_ROOT_BINDINGS.get(item.localName) === item.value) continue;
|
|
5245
|
+
out.push({ prefix: item.localName, uri: item.value });
|
|
5246
|
+
}
|
|
5247
|
+
return out.length ? out : void 0;
|
|
5248
|
+
}
|
|
5249
|
+
var CHART = /* @__PURE__ */ new Set([
|
|
5250
|
+
"title",
|
|
5251
|
+
"autoTitleDeleted",
|
|
5252
|
+
"view3D",
|
|
5253
|
+
"floor",
|
|
5254
|
+
"sideWall",
|
|
5255
|
+
"backWall",
|
|
5256
|
+
"plotArea",
|
|
5257
|
+
"legend",
|
|
5258
|
+
"plotVisOnly",
|
|
5259
|
+
"dispBlanksAs",
|
|
5260
|
+
"showDLblsOverMax",
|
|
5261
|
+
"extLst"
|
|
5262
|
+
]);
|
|
5263
|
+
var SPACE = /* @__PURE__ */ new Set([
|
|
5264
|
+
"date1904",
|
|
5265
|
+
"lang",
|
|
5266
|
+
"roundedCorners",
|
|
5267
|
+
"AlternateContent",
|
|
5268
|
+
"style",
|
|
5269
|
+
"chart",
|
|
5270
|
+
"spPr",
|
|
5271
|
+
"txPr",
|
|
5272
|
+
"externalData",
|
|
5273
|
+
"printSettings",
|
|
5274
|
+
"userShapes",
|
|
5275
|
+
"extLst"
|
|
5276
|
+
]);
|
|
5277
|
+
function parseChartSpace(source) {
|
|
5278
|
+
const context = { issues: [] };
|
|
5279
|
+
const root = typeof source === "string" ? parseXml(source, { label: "Chart part" }).documentElement : source;
|
|
5280
|
+
if (root.localName !== "chartSpace" || root.namespaceURI && root.namespaceURI !== NS.c) {
|
|
5281
|
+
context.issues.push({
|
|
5282
|
+
code: "CHART_ROOT_UNEXPECTED",
|
|
5283
|
+
message: `The part root is {${root.namespaceURI ?? ""}}${root.localName}, not c:chartSpace (chartex parts are not modelled).`
|
|
5284
|
+
});
|
|
5285
|
+
return { chartSpace: { plotArea: { groups: [], axes: [] } }, issues: context.issues };
|
|
5286
|
+
}
|
|
5287
|
+
reportUnmodelled(context, root, SPACE);
|
|
5288
|
+
const chart = cChild(root, "chart");
|
|
5289
|
+
if (!chart)
|
|
5290
|
+
context.issues.push({ code: "CHART_CHART_MISSING", message: "The part has no c:chart." });
|
|
5291
|
+
else reportUnmodelled(context, chart, CHART);
|
|
5292
|
+
const title = cChild(chart, "title");
|
|
5293
|
+
const legend = cChild(chart, "legend");
|
|
5294
|
+
const view3D = cChild(chart, "view3D");
|
|
5295
|
+
const printSettings = cChild(root, "printSettings");
|
|
5296
|
+
const chartSpace = assignDefined(
|
|
5297
|
+
{ plotArea: parsePlotArea(context, cChild(chart, "plotArea")) },
|
|
5298
|
+
{
|
|
5299
|
+
date1904: cBool(context, root, "date1904"),
|
|
5300
|
+
language: cVal(root, "lang"),
|
|
5301
|
+
roundedCorners: cBool(context, root, "roundedCorners"),
|
|
5302
|
+
style: chartStyle(context, root),
|
|
5303
|
+
c14Style: c14Style(root),
|
|
5304
|
+
title: title ? parseTitle(context, title) : void 0,
|
|
5305
|
+
autoTitleDeleted: cBool(context, chart, "autoTitleDeleted"),
|
|
5306
|
+
view3D: view3D ? parseView3D(context, view3D) : void 0,
|
|
5307
|
+
floor: parseSurface(context, cChild(chart, "floor")),
|
|
5308
|
+
sideWall: parseSurface(context, cChild(chart, "sideWall")),
|
|
5309
|
+
backWall: parseSurface(context, cChild(chart, "backWall")),
|
|
5310
|
+
legend: legend ? parseLegend(context, legend) : void 0,
|
|
5311
|
+
plotVisibleOnly: cBool(context, chart, "plotVisOnly"),
|
|
5312
|
+
displayBlanksAs: cVal(chart, "dispBlanksAs"),
|
|
5313
|
+
showDataLabelsOverMax: cBool(context, chart, "showDLblsOverMax"),
|
|
5314
|
+
spPr: shapeProperties(root),
|
|
5315
|
+
txPr: textProperties(root),
|
|
5316
|
+
externalDataRelId: relAttr(cChild(root, "externalData"), "id") || void 0,
|
|
5317
|
+
externalDataAutoUpdate: cBool(context, cChild(root, "externalData"), "autoUpdate"),
|
|
5318
|
+
printSettings: printSettings ? buildXml(printSettings) : void 0,
|
|
5319
|
+
userShapesRelId: relAttr(cChild(root, "userShapes"), "id") || void 0,
|
|
5320
|
+
chartExtLst: extensionList(chart),
|
|
5321
|
+
extLst: extensionList(root),
|
|
5322
|
+
namespaceDeclarations: namespaceDeclarations(root)
|
|
5323
|
+
}
|
|
5324
|
+
);
|
|
5325
|
+
return { chartSpace, issues: context.issues };
|
|
5326
|
+
}
|
|
5327
|
+
|
|
5328
|
+
// docx/breaks.ts
|
|
5329
|
+
function isCachedPageBreak(element) {
|
|
5330
|
+
return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
|
|
5331
|
+
(attribute2) => attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/"
|
|
5332
|
+
);
|
|
5333
|
+
}
|
|
5334
|
+
function hasSpecialBreak(element) {
|
|
5335
|
+
for (const attribute2 of Array.from(element.attributes)) {
|
|
5336
|
+
if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
|
|
5337
|
+
if (attribute2.namespaceURI !== WORD_NS) return true;
|
|
5338
|
+
if (attribute2.localName === "type") {
|
|
5339
|
+
if (attribute2.value !== "textWrapping") return true;
|
|
5340
|
+
} else if (attribute2.localName === "clear") {
|
|
5341
|
+
if (attribute2.value !== "none") return true;
|
|
5342
|
+
} else return true;
|
|
5343
|
+
}
|
|
5344
|
+
return false;
|
|
5345
|
+
}
|
|
5346
|
+
function classifyBreak(element) {
|
|
5347
|
+
const type = getW(element, "type");
|
|
5348
|
+
return type === "page" || type === "column" ? type : "textWrapping";
|
|
5349
|
+
}
|
|
5350
|
+
function isModeledBreak(element) {
|
|
5351
|
+
const kind = classifyBreak(element);
|
|
5352
|
+
if (kind === "textWrapping") return false;
|
|
5353
|
+
for (const attribute2 of Array.from(element.attributes)) {
|
|
5354
|
+
if (attribute2.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
|
|
5355
|
+
if (attribute2.namespaceURI !== WORD_NS || attribute2.localName !== "type") return false;
|
|
5356
|
+
}
|
|
5357
|
+
return true;
|
|
5358
|
+
}
|
|
5359
|
+
|
|
5360
|
+
// docx/parse-warnings.ts
|
|
5361
|
+
function hasAny(document, names) {
|
|
5362
|
+
return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
|
|
5363
|
+
}
|
|
5364
|
+
function warningsFor(document) {
|
|
5365
|
+
const warnings = [];
|
|
5366
|
+
const features = [
|
|
5367
|
+
[["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
|
|
5368
|
+
[["altChunk"], "Embedded alternate-format content is not represented in the document model."],
|
|
5369
|
+
[
|
|
5370
|
+
["fldSimple", "instrText", "fldChar"],
|
|
5371
|
+
"Fields show the result Word last saved while editing; Print Layout recalculates PAGE, NUMPAGES, SECTIONPAGES, DATE and TIME, and tables of contents update from the References tab."
|
|
5372
|
+
],
|
|
5373
|
+
[
|
|
5374
|
+
["moveFrom", "moveTo"],
|
|
5375
|
+
"Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
|
|
5376
|
+
],
|
|
5377
|
+
[
|
|
5378
|
+
["rPrChange"],
|
|
5379
|
+
"Formatting-change revisions retain their prior run-properties snapshots and support acceptance and rejection; recording new formatting changes and showing prior formatting in Original display are not supported yet."
|
|
5380
|
+
],
|
|
5381
|
+
[
|
|
5382
|
+
["pPrChange"],
|
|
5383
|
+
"Paragraph-formatting-change revisions retain their prior properties snapshots and support acceptance and rejection; recording new paragraph formatting changes and showing prior formatting in Original display are not supported yet."
|
|
5384
|
+
],
|
|
5385
|
+
[
|
|
5386
|
+
["tblPrChange", "trPrChange", "tcPrChange"],
|
|
5387
|
+
"Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
|
|
5388
|
+
]
|
|
5389
|
+
];
|
|
5390
|
+
for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
|
|
5391
|
+
if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
|
|
5392
|
+
(el3) => /HYPERLINK/i.test(textContent(el3))
|
|
5393
|
+
))
|
|
5394
|
+
warnings.push(
|
|
5395
|
+
"Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
|
|
5396
|
+
);
|
|
5397
|
+
const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
|
|
5398
|
+
(br) => hasSpecialBreak(br) && !isModeledBreak(br)
|
|
5399
|
+
) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
|
|
5400
|
+
(cr) => cr.attributes.length > 0
|
|
5401
|
+
);
|
|
5402
|
+
if (specialBreak)
|
|
5403
|
+
warnings.push(
|
|
5404
|
+
"Some non-line breaks other than page and column breaks are not distinguished from line breaks in the document model; edits to paragraphs containing them are rejected to preserve the original XML."
|
|
5405
|
+
);
|
|
5406
|
+
return warnings;
|
|
5407
|
+
}
|
|
5408
|
+
function forEachParagraph2(blocks, visit) {
|
|
5409
|
+
for (const block of blocks) {
|
|
5410
|
+
if (block.type === "paragraph") visit(block);
|
|
5411
|
+
else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
|
|
5412
|
+
}
|
|
5413
|
+
}
|
|
5414
|
+
function imageAndBookmarkWarnings(blocks) {
|
|
5415
|
+
const warnings = [];
|
|
5416
|
+
let hasPicture = false;
|
|
5417
|
+
let hasAnchored = false;
|
|
5418
|
+
const unsupportedKinds = /* @__PURE__ */ new Set();
|
|
5419
|
+
let hasBookmarks = false;
|
|
5420
|
+
forEachParagraph2(blocks, (paragraph) => {
|
|
5421
|
+
if (paragraph.bookmarks?.length) hasBookmarks = true;
|
|
5422
|
+
for (const run of paragraph.runs) {
|
|
5423
|
+
if (!run.image) continue;
|
|
5424
|
+
if (run.image.unsupported) {
|
|
5425
|
+
if (run.image.diagram?.rendering !== "cached-drawing")
|
|
5426
|
+
unsupportedKinds.add(run.image.unsupported);
|
|
5427
|
+
} else hasPicture = true;
|
|
5428
|
+
if (run.image.anchored) hasAnchored = true;
|
|
5429
|
+
}
|
|
5430
|
+
});
|
|
5431
|
+
if (hasPicture)
|
|
5432
|
+
warnings.push(
|
|
5433
|
+
"Inline pictures render from their original bytes and can be deleted or newly inserted; crop, artistic effects, and non-inline text wrapping are not reproduced."
|
|
5434
|
+
);
|
|
5435
|
+
if (hasAnchored)
|
|
5436
|
+
warnings.push(
|
|
5437
|
+
"Floating pictures follow their text wrapping approximately (floated left or right, or on their own line); exact positions, vertical offsets and in-front/behind layering are not reproduced."
|
|
5438
|
+
);
|
|
5439
|
+
if (unsupportedKinds.size)
|
|
5440
|
+
warnings.push(
|
|
5441
|
+
`${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
|
|
5442
|
+
);
|
|
5443
|
+
if (hasBookmarks)
|
|
5444
|
+
warnings.push(
|
|
5445
|
+
"Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
|
|
5446
|
+
);
|
|
5447
|
+
return warnings;
|
|
5448
|
+
}
|
|
5449
|
+
|
|
5450
|
+
// docx/chart.ts
|
|
5451
|
+
var CHART_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
5452
|
+
var CHART_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart";
|
|
5453
|
+
var PACKAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
|
|
5454
|
+
var CHART_NOTICE = "The chart is drawn from the values cached in its part (bar, column, line, area, pie, doughnut, scatter and radar charts; other kinds show a labelled frame). It is not editable, and the chart part and its workbook are preserved unchanged on save.";
|
|
5455
|
+
function parseChartGraphic(graphicData, docPr, rels, isAnchor) {
|
|
5456
|
+
const element = Array.from(graphicData.childNodes).find(
|
|
5457
|
+
(node) => isElement(node) && node.localName === "chart"
|
|
5458
|
+
);
|
|
5459
|
+
const relId = getR(element, "id") || void 0;
|
|
5460
|
+
const issues = [];
|
|
5461
|
+
let partName;
|
|
5462
|
+
const rel = relId ? rels.get(relId) : void 0;
|
|
5463
|
+
if (!relId)
|
|
5464
|
+
issues.push({
|
|
5465
|
+
code: "CHART_RELATIONSHIP_MISSING",
|
|
5466
|
+
message: "The graphic has no c:chart/@r:id."
|
|
5467
|
+
});
|
|
5468
|
+
else if (!rel || rel.mode === "External")
|
|
5469
|
+
issues.push({
|
|
5470
|
+
code: "CHART_RELATIONSHIP_UNRESOLVED",
|
|
5471
|
+
message: `Chart relationship ${relId} does not point at a part in this package.`
|
|
5472
|
+
});
|
|
5473
|
+
else {
|
|
5474
|
+
if (rel.type !== CHART_RELATIONSHIP_TYPE)
|
|
5475
|
+
issues.push({
|
|
5476
|
+
code: "CHART_RELATIONSHIP_TYPE",
|
|
5477
|
+
message: `Chart relationship ${relId} has type ${rel.type}, expected ${CHART_RELATIONSHIP_TYPE}.`
|
|
5478
|
+
});
|
|
5479
|
+
partName = resolvePartPath("word/document.xml", rel.target);
|
|
5480
|
+
}
|
|
5481
|
+
const name = docPr?.getAttribute("name") || void 0;
|
|
5482
|
+
const id = docPr?.getAttribute("id") || void 0;
|
|
5483
|
+
return {
|
|
5484
|
+
placement: isAnchor ? "anchor" : "inline",
|
|
5485
|
+
...name ? { name } : {},
|
|
5486
|
+
...id ? { id } : {},
|
|
5487
|
+
...relId ? { relId } : {},
|
|
5488
|
+
...partName ? { partName } : {},
|
|
5489
|
+
notice: CHART_NOTICE,
|
|
5490
|
+
issues
|
|
5491
|
+
};
|
|
5492
|
+
}
|
|
5493
|
+
async function resolveChartPart(chart, readText) {
|
|
5494
|
+
if (!chart.partName) return;
|
|
5495
|
+
try {
|
|
5496
|
+
const xml = await readText(chart.partName);
|
|
5497
|
+
if (xml === void 0) {
|
|
5498
|
+
chart.issues.push({
|
|
5499
|
+
code: "CHART_PART_MISSING",
|
|
5500
|
+
message: `The chart part ${chart.partName} is not in the package.`
|
|
5501
|
+
});
|
|
5502
|
+
return;
|
|
5503
|
+
}
|
|
5504
|
+
const root = parseXml(xml, { label: "Chart part" }).documentElement;
|
|
5505
|
+
const { chartSpace, issues } = parseChartSpace(root);
|
|
5506
|
+
chart.chartSpace = chartSpace;
|
|
5507
|
+
chart.issues.push(...issues);
|
|
5508
|
+
const title = chartSpace.autoTitleDeleted ? void 0 : chartSpace.title?.text;
|
|
5509
|
+
if (title) chart.title = title;
|
|
5510
|
+
if (chartSpace.plotArea.groups.length) {
|
|
5511
|
+
const formatting = readChartFormatting(root);
|
|
5512
|
+
if (formatting) chart.formatting = formatting;
|
|
5513
|
+
}
|
|
5514
|
+
const rels = parseRelationships(await readText(relationshipsPartFor(chart.partName)));
|
|
5515
|
+
const dataRelId = chartSpace.externalDataRelId;
|
|
5516
|
+
const dataRel = dataRelId ? rels.get(dataRelId) : void 0;
|
|
5517
|
+
if (dataRel && dataRel.mode !== "External" && dataRel.type === PACKAGE_RELATIONSHIP_TYPE)
|
|
5518
|
+
chart.workbookPartName = resolvePartPath(chart.partName, dataRel.target);
|
|
5519
|
+
const colorsRel = [...rels.values()].find(
|
|
5520
|
+
(rel) => rel.mode !== "External" && rel.type.endsWith("/chartColorStyle")
|
|
5521
|
+
);
|
|
5522
|
+
const colorsXml = colorsRel && await readText(resolvePartPath(chart.partName, colorsRel.target));
|
|
5523
|
+
const palette = colorsXml ? chartColorStyleId(colorsXml) : void 0;
|
|
5524
|
+
if (palette !== void 0) chart.colorPalette = palette;
|
|
5525
|
+
} catch (error) {
|
|
5526
|
+
chart.issues.push({
|
|
5527
|
+
code: "CHART_PART_UNREADABLE",
|
|
5528
|
+
message: `The chart part ${chart.partName} could not be read: ${error instanceof Error ? error.message : String(error)}`
|
|
5529
|
+
});
|
|
5530
|
+
}
|
|
5531
|
+
}
|
|
5532
|
+
function chartsIn(blocks) {
|
|
5533
|
+
const charts = [];
|
|
5534
|
+
forEachParagraph2(blocks, (paragraph) => {
|
|
5535
|
+
for (const run of paragraph.runs) if (run.image?.chart) charts.push(run.image.chart);
|
|
5536
|
+
});
|
|
5537
|
+
return charts;
|
|
5538
|
+
}
|
|
5539
|
+
async function resolveDocumentCharts(blocks, readText) {
|
|
5540
|
+
for (const chart of chartsIn(blocks)) await resolveChartPart(chart, readText);
|
|
5541
|
+
}
|
|
5542
|
+
|
|
4360
5543
|
// docx/drawing.ts
|
|
4361
5544
|
var WP_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
|
|
4362
5545
|
var A_NS2 = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
@@ -4472,6 +5655,7 @@ function parseModernDrawing(node, context) {
|
|
|
4472
5655
|
...svg ? { svgPartName: svg.partName } : {}
|
|
4473
5656
|
};
|
|
4474
5657
|
const diagram = uri === DIAGRAM_GRAPHIC_URI && graphicData ? parseDiagramGraphic(graphicData, extent, docPr, context.rels, Boolean(anchored)) : void 0;
|
|
5658
|
+
const chart = uri === CHART_GRAPHIC_URI && graphicData ? parseChartGraphic(graphicData, docPr, context.rels, Boolean(anchored)) : void 0;
|
|
4475
5659
|
const textBox = uri.includes("wordprocessingShape") ? textBoxParagraphs(graphicData) : void 0;
|
|
4476
5660
|
return {
|
|
4477
5661
|
relId: relId ?? "",
|
|
@@ -4482,6 +5666,7 @@ function parseModernDrawing(node, context) {
|
|
|
4482
5666
|
...definedProps({ altText, title, anchored }),
|
|
4483
5667
|
unsupported: textBox ? "Text box" : unsupportedKindLabel(uri),
|
|
4484
5668
|
...diagram ? { diagram } : {},
|
|
5669
|
+
...chart ? { chart } : {},
|
|
4485
5670
|
...diagram && placement ? { placement } : {},
|
|
4486
5671
|
...textBox ? { textBoxText: textBox } : {},
|
|
4487
5672
|
...textBox && isSimpleTextBox(graphicData, Boolean(anchored)) ? { textBoxEditable: true, textBoxBorder: textBoxHasBorder(graphicData) } : {}
|
|
@@ -4561,8 +5746,8 @@ function findDrawingChild(run) {
|
|
|
4561
5746
|
if (isElement(child3) && (named2(child3, "drawing") || named2(child3, "pict"))) return child3;
|
|
4562
5747
|
return void 0;
|
|
4563
5748
|
}
|
|
4564
|
-
function sameUnderlyingImage(
|
|
4565
|
-
return Boolean(
|
|
5749
|
+
function sameUnderlyingImage(a2, b) {
|
|
5750
|
+
return Boolean(a2.partName) && a2.relId === b.relId && a2.partName === b.partName;
|
|
4566
5751
|
}
|
|
4567
5752
|
function walk(root, visit) {
|
|
4568
5753
|
const stack = [root];
|
|
@@ -4772,17 +5957,17 @@ function setBooleanAttribute(doc, props, local, value) {
|
|
|
4772
5957
|
}
|
|
4773
5958
|
setAttribute6(element, "val", value ? "1" : "0");
|
|
4774
5959
|
}
|
|
4775
|
-
function setLanguageAttribute(doc, props,
|
|
5960
|
+
function setLanguageAttribute(doc, props, attribute2, value) {
|
|
4776
5961
|
let language = first2(props, "lang");
|
|
4777
5962
|
if (value === void 0 || value === "") {
|
|
4778
5963
|
if (!language) return;
|
|
4779
|
-
language.removeAttributeNS(WORD_NS,
|
|
5964
|
+
language.removeAttributeNS(WORD_NS, attribute2);
|
|
4780
5965
|
} else {
|
|
4781
5966
|
if (!language) {
|
|
4782
5967
|
language = makeW(doc, "lang");
|
|
4783
5968
|
props.appendChild(language);
|
|
4784
5969
|
}
|
|
4785
|
-
setAttribute6(language,
|
|
5970
|
+
setAttribute6(language, attribute2, value);
|
|
4786
5971
|
}
|
|
4787
5972
|
if (language && !language.attributes.length && !language.childNodes.length)
|
|
4788
5973
|
props.removeChild(language);
|
|
@@ -4882,8 +6067,8 @@ function setRunProperties(doc, runNode, run, base) {
|
|
|
4882
6067
|
};
|
|
4883
6068
|
for (const script of ["ascii", "hAnsi", "eastAsia", "cs"]) {
|
|
4884
6069
|
const role = run.fontTheme?.[script];
|
|
4885
|
-
const [
|
|
4886
|
-
if (role) setAttribute6(fonts,
|
|
6070
|
+
const [attribute2, suffix] = themeAttribute[script];
|
|
6071
|
+
if (role) setAttribute6(fonts, attribute2, `${role}${suffix}`);
|
|
4887
6072
|
}
|
|
4888
6073
|
props.appendChild(fonts);
|
|
4889
6074
|
}
|
|
@@ -4971,8 +6156,8 @@ function createRun(doc, run, base, old, allocator) {
|
|
|
4971
6156
|
}
|
|
4972
6157
|
|
|
4973
6158
|
// docx/inline-source.ts
|
|
4974
|
-
function samePictureSource(
|
|
4975
|
-
return !!
|
|
6159
|
+
function samePictureSource(a2, b) {
|
|
6160
|
+
return !!a2?.partName && a2.partName === b?.partName && a2.relId === b?.relId;
|
|
4976
6161
|
}
|
|
4977
6162
|
function inlineSourceLookup(runs, base) {
|
|
4978
6163
|
const usedPictures = /* @__PURE__ */ new Set();
|
|
@@ -5014,8 +6199,8 @@ function takeSimpleFieldCommentEdges(doc, runs, start, end, opens, closes) {
|
|
|
5014
6199
|
}
|
|
5015
6200
|
|
|
5016
6201
|
// docx/field-lock.ts
|
|
5017
|
-
function sameFieldFlags(
|
|
5018
|
-
return
|
|
6202
|
+
function sameFieldFlags(a2, b) {
|
|
6203
|
+
return a2?.locked === b?.locked && a2?.dirty === b?.dirty;
|
|
5019
6204
|
}
|
|
5020
6205
|
var MATH_NAMESPACES = /* @__PURE__ */ new Set([
|
|
5021
6206
|
"http://schemas.openxmlformats.org/officeDocument/2006/math",
|
|
@@ -5042,38 +6227,6 @@ function preserveEquation(run, base, old) {
|
|
|
5042
6227
|
return old.cloneNode(true);
|
|
5043
6228
|
}
|
|
5044
6229
|
|
|
5045
|
-
// docx/breaks.ts
|
|
5046
|
-
function isCachedPageBreak(element) {
|
|
5047
|
-
return named2(element, "lastRenderedPageBreak") && !element.childNodes.length && Array.from(element.attributes).every(
|
|
5048
|
-
(attribute) => attribute.namespaceURI === "http://www.w3.org/2000/xmlns/"
|
|
5049
|
-
);
|
|
5050
|
-
}
|
|
5051
|
-
function hasSpecialBreak(element) {
|
|
5052
|
-
for (const attribute of Array.from(element.attributes)) {
|
|
5053
|
-
if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
|
|
5054
|
-
if (attribute.namespaceURI !== WORD_NS) return true;
|
|
5055
|
-
if (attribute.localName === "type") {
|
|
5056
|
-
if (attribute.value !== "textWrapping") return true;
|
|
5057
|
-
} else if (attribute.localName === "clear") {
|
|
5058
|
-
if (attribute.value !== "none") return true;
|
|
5059
|
-
} else return true;
|
|
5060
|
-
}
|
|
5061
|
-
return false;
|
|
5062
|
-
}
|
|
5063
|
-
function classifyBreak(element) {
|
|
5064
|
-
const type = getW(element, "type");
|
|
5065
|
-
return type === "page" || type === "column" ? type : "textWrapping";
|
|
5066
|
-
}
|
|
5067
|
-
function isModeledBreak(element) {
|
|
5068
|
-
const kind = classifyBreak(element);
|
|
5069
|
-
if (kind === "textWrapping") return false;
|
|
5070
|
-
for (const attribute of Array.from(element.attributes)) {
|
|
5071
|
-
if (attribute.namespaceURI === "http://www.w3.org/2000/xmlns/") continue;
|
|
5072
|
-
if (attribute.namespaceURI !== WORD_NS || attribute.localName !== "type") return false;
|
|
5073
|
-
}
|
|
5074
|
-
return true;
|
|
5075
|
-
}
|
|
5076
|
-
|
|
5077
6230
|
// docx/parse-revisions.ts
|
|
5078
6231
|
var REVISION_WRAPPERS = {
|
|
5079
6232
|
ins: "insert",
|
|
@@ -5095,7 +6248,7 @@ function trackMoveRange(item, moves) {
|
|
|
5095
6248
|
const open = moves[range.kind];
|
|
5096
6249
|
if (range.start) open.push({ name: getW(item, "name") ?? id, id });
|
|
5097
6250
|
else {
|
|
5098
|
-
const index = open.findIndex((
|
|
6251
|
+
const index = open.findIndex((entry2) => entry2.id === id);
|
|
5099
6252
|
if (index >= 0) open.splice(index, 1);
|
|
5100
6253
|
}
|
|
5101
6254
|
return true;
|
|
@@ -5268,10 +6421,10 @@ function replaceableInlineChildren(paragraph) {
|
|
|
5268
6421
|
(child3) => isElement(child3) && (isEquationElement(child3) || named2(child3, "r") || named2(child3, "hyperlink") || named2(child3, "fldSimple") || isRevisionWrapperElement(child3) || isCommentAnchorElement(child3))
|
|
5269
6422
|
);
|
|
5270
6423
|
}
|
|
5271
|
-
function sameLink(
|
|
5272
|
-
if (!
|
|
5273
|
-
if (!
|
|
5274
|
-
return
|
|
6424
|
+
function sameLink(a2, b) {
|
|
6425
|
+
if (!a2 && !b) return true;
|
|
6426
|
+
if (!a2 || !b) return false;
|
|
6427
|
+
return a2.href === b.href && a2.anchor === b.anchor && a2.tooltip === b.tooltip;
|
|
5275
6428
|
}
|
|
5276
6429
|
function setW6(element, local, value) {
|
|
5277
6430
|
element.setAttributeNS(WORD_NS, `w:${local}`, value);
|
|
@@ -5360,10 +6513,10 @@ function containerGroup(run) {
|
|
|
5360
6513
|
};
|
|
5361
6514
|
return void 0;
|
|
5362
6515
|
}
|
|
5363
|
-
function sameGroup(
|
|
5364
|
-
if (!
|
|
5365
|
-
if (
|
|
5366
|
-
return
|
|
6516
|
+
function sameGroup(a2, b) {
|
|
6517
|
+
if (!a2 || !b) return a2 === b;
|
|
6518
|
+
if (a2.kind === "link" && b.kind === "link") return sameLink(a2.link, b.link);
|
|
6519
|
+
return a2.kind === "simpleField" && b.kind === "simpleField" && a2.instr === b.instr && a2.instanceId === b.instanceId && sameFieldFlags(a2.fieldFlags, b.fieldFlags);
|
|
5367
6520
|
}
|
|
5368
6521
|
|
|
5369
6522
|
// docx/paragraph-properties.ts
|
|
@@ -5595,8 +6748,8 @@ var IMAGE_RELATIONSHIP_TYPE = RELATIONSHIP_TYPES.image;
|
|
|
5595
6748
|
function scanUsedRelationshipIds(doc) {
|
|
5596
6749
|
const used = /* @__PURE__ */ new Set();
|
|
5597
6750
|
const visit = (node) => {
|
|
5598
|
-
for (const
|
|
5599
|
-
if (
|
|
6751
|
+
for (const attribute2 of Array.from(node.attributes))
|
|
6752
|
+
if (attribute2.namespaceURI === REL_NS) used.add(attribute2.value);
|
|
5600
6753
|
for (const child3 of Array.from(node.childNodes)) if (isElement(child3)) visit(child3);
|
|
5601
6754
|
};
|
|
5602
6755
|
if (doc.documentElement) visit(doc.documentElement);
|
|
@@ -5834,9 +6987,9 @@ function isXsdDateTime(value) {
|
|
|
5834
6987
|
return !zone || Number(zone[1]) <= 14 && Number(zone[2]) <= 59;
|
|
5835
6988
|
}
|
|
5836
6989
|
var Checker = class _Checker {
|
|
5837
|
-
constructor(issues,
|
|
6990
|
+
constructor(issues, path2) {
|
|
5838
6991
|
this.issues = issues;
|
|
5839
|
-
this.path =
|
|
6992
|
+
this.path = path2;
|
|
5840
6993
|
}
|
|
5841
6994
|
issues;
|
|
5842
6995
|
path;
|
|
@@ -5882,78 +7035,78 @@ var Checker = class _Checker {
|
|
|
5882
7035
|
|
|
5883
7036
|
// docx/validate-paragraph.ts
|
|
5884
7037
|
var isFraction = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
|
|
5885
|
-
function validateThemeReference(
|
|
7038
|
+
function validateThemeReference(c2, field, value) {
|
|
5886
7039
|
if (value === void 0) return;
|
|
5887
|
-
const at =
|
|
7040
|
+
const at = c2.at(`.${field}`);
|
|
5888
7041
|
at.theme("token", value.token);
|
|
5889
7042
|
at.check("tint", value.tint, isFraction, "must be a fraction between 0 and 1");
|
|
5890
7043
|
at.check("shade", value.shade, isFraction, "must be a fraction between 0 and 1");
|
|
5891
7044
|
}
|
|
5892
|
-
function validateRevision(
|
|
7045
|
+
function validateRevision(c2, field, revision) {
|
|
5893
7046
|
if (revision === void 0) return;
|
|
5894
|
-
|
|
7047
|
+
c2.at(`.${field}`).dateTime("date", revision.date);
|
|
5895
7048
|
}
|
|
5896
|
-
function validateFontSize(
|
|
5897
|
-
|
|
7049
|
+
function validateFontSize(c2, value) {
|
|
7050
|
+
c2.check(
|
|
5898
7051
|
"fontSize",
|
|
5899
7052
|
value,
|
|
5900
7053
|
(v) => typeof v === "number" && Number.isFinite(v) && Math.round(v * 2) >= 0,
|
|
5901
7054
|
"must be a finite, non-negative point size that converts to whole half-points (ST_HpsMeasure)"
|
|
5902
7055
|
);
|
|
5903
7056
|
}
|
|
5904
|
-
function validateRun(
|
|
5905
|
-
|
|
5906
|
-
validateFontSize(
|
|
5907
|
-
|
|
7057
|
+
function validateRun(c2, run) {
|
|
7058
|
+
c2.enum("ligatures", run.ligatures, isLigatures, "ST_Ligatures");
|
|
7059
|
+
validateFontSize(c2, run.fontSize);
|
|
7060
|
+
c2.check(
|
|
5908
7061
|
"textScalePercent",
|
|
5909
7062
|
run.textScalePercent,
|
|
5910
7063
|
(v) => Number.isSafeInteger(v) && v >= 0 && v <= 600,
|
|
5911
7064
|
"must be a whole percentage from 0 through 600 (ST_TextScale)"
|
|
5912
7065
|
);
|
|
5913
|
-
|
|
7066
|
+
c2.check(
|
|
5914
7067
|
"kerningHalfPoints",
|
|
5915
7068
|
run.kerningHalfPoints,
|
|
5916
7069
|
(v) => Number.isSafeInteger(v) && v >= 0,
|
|
5917
7070
|
"must be a nonnegative whole number of half-points (ST_HpsMeasure)"
|
|
5918
7071
|
);
|
|
5919
|
-
|
|
7072
|
+
c2.check(
|
|
5920
7073
|
"positionHalfPoints",
|
|
5921
7074
|
run.positionHalfPoints,
|
|
5922
7075
|
Number.isSafeInteger,
|
|
5923
7076
|
"must be a signed whole number of half-points (ST_SignedHpsMeasure)"
|
|
5924
7077
|
);
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
validateThemeReference(
|
|
5929
|
-
validateThemeReference(
|
|
5930
|
-
|
|
7078
|
+
c2.hex("color", run.color);
|
|
7079
|
+
c2.hex("shadingFill", run.shadingFill);
|
|
7080
|
+
c2.hex("underlineColor", run.underlineColor);
|
|
7081
|
+
validateThemeReference(c2, "colorTheme", run.colorTheme);
|
|
7082
|
+
validateThemeReference(c2, "shadingThemeFill", run.shadingThemeFill);
|
|
7083
|
+
c2.enum("underlineStyle", run.underlineStyle, isStUnderline, "ST_Underline");
|
|
5931
7084
|
if (run.highlight !== void 0 && !isStHighlightColor(run.highlight))
|
|
5932
|
-
|
|
7085
|
+
c2.fail(
|
|
5933
7086
|
"highlight",
|
|
5934
7087
|
run.highlight,
|
|
5935
7088
|
`Unsupported Word highlight token: ${String(run.highlight)}`
|
|
5936
7089
|
);
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
7090
|
+
c2.enum("break", run.break, isStBrType, "ST_BrType");
|
|
7091
|
+
c2.enum("fieldChar", run.fieldChar, isStFldCharType, "ST_FldCharType");
|
|
7092
|
+
c2.check(
|
|
5940
7093
|
"characterSpacingTwips",
|
|
5941
7094
|
run.characterSpacingTwips,
|
|
5942
7095
|
(v) => typeof v === "number" && Number.isFinite(v),
|
|
5943
7096
|
"must be a finite number of twips (ST_SignedTwipsMeasure)"
|
|
5944
7097
|
);
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
7098
|
+
c2.language("language", run.language);
|
|
7099
|
+
c2.language("eastAsiaLanguage", run.eastAsiaLanguage);
|
|
7100
|
+
c2.language("bidiLanguage", run.bidiLanguage);
|
|
7101
|
+
c2.check(
|
|
5949
7102
|
"verticalAlign",
|
|
5950
7103
|
run.verticalAlign,
|
|
5951
7104
|
isStVerticalAlignRun,
|
|
5952
7105
|
'must be "baseline", "superscript" or "subscript"'
|
|
5953
7106
|
);
|
|
5954
|
-
validateRevision(
|
|
7107
|
+
validateRevision(c2, "revision", run.revision);
|
|
5955
7108
|
if (run.image) {
|
|
5956
|
-
const image =
|
|
7109
|
+
const image = c2.at(".image");
|
|
5957
7110
|
for (const key of ["widthPx", "heightPx"])
|
|
5958
7111
|
image.check(
|
|
5959
7112
|
key,
|
|
@@ -5963,14 +7116,14 @@ function validateRun(c, run) {
|
|
|
5963
7116
|
);
|
|
5964
7117
|
}
|
|
5965
7118
|
}
|
|
5966
|
-
function validateTabStop(
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
7119
|
+
function validateTabStop(c2, stop) {
|
|
7120
|
+
c2.signed("posTwips", stop.posTwips, "CT_TabStop/@pos");
|
|
7121
|
+
c2.enum("align", stop.align, isStTabJc, "ST_TabJc");
|
|
7122
|
+
c2.enum("leader", stop.leader, isStTabTlc, "ST_TabTlc");
|
|
5970
7123
|
}
|
|
5971
|
-
function validateParagraph(
|
|
7124
|
+
function validateParagraph(c2, paragraph) {
|
|
5972
7125
|
if (paragraph.dropCap) {
|
|
5973
|
-
const at =
|
|
7126
|
+
const at = c2.at(".dropCap");
|
|
5974
7127
|
at.check(
|
|
5975
7128
|
"style",
|
|
5976
7129
|
paragraph.dropCap.style,
|
|
@@ -5990,14 +7143,14 @@ function validateParagraph(c, paragraph) {
|
|
|
5990
7143
|
"must be a nonnegative whole number of twips"
|
|
5991
7144
|
);
|
|
5992
7145
|
}
|
|
5993
|
-
|
|
7146
|
+
c2.check(
|
|
5994
7147
|
"align",
|
|
5995
7148
|
paragraph.align,
|
|
5996
7149
|
(v) => v === "left" || v === "center" || v === "right" || v === "justify",
|
|
5997
7150
|
'must be "left", "center", "right" or "justify"'
|
|
5998
7151
|
);
|
|
5999
|
-
|
|
6000
|
-
|
|
7152
|
+
c2.enum("justification", paragraph.justification, isStJc, "ST_Jc");
|
|
7153
|
+
c2.check(
|
|
6001
7154
|
"direction",
|
|
6002
7155
|
paragraph.direction,
|
|
6003
7156
|
(v) => v === "ltr" || v === "rtl",
|
|
@@ -6009,7 +7162,7 @@ function validateParagraph(c, paragraph) {
|
|
|
6009
7162
|
"firstLineTwips",
|
|
6010
7163
|
"hangingTwips"
|
|
6011
7164
|
])
|
|
6012
|
-
|
|
7165
|
+
c2.unsigned(key, paragraph[key], "ST_TwipsMeasure");
|
|
6013
7166
|
for (const key of [
|
|
6014
7167
|
"lineSpacingTwips",
|
|
6015
7168
|
"indentLeftTwips",
|
|
@@ -6017,87 +7170,87 @@ function validateParagraph(c, paragraph) {
|
|
|
6017
7170
|
"indentStartTwips",
|
|
6018
7171
|
"indentEndTwips"
|
|
6019
7172
|
])
|
|
6020
|
-
|
|
6021
|
-
|
|
7173
|
+
c2.signed(key, paragraph[key], "ST_SignedTwipsMeasure");
|
|
7174
|
+
c2.enum("lineSpacingRule", paragraph.lineSpacingRule, isStLineSpacingRule, "ST_LineSpacingRule");
|
|
6022
7175
|
if (paragraph.numbering) {
|
|
6023
|
-
const numbering =
|
|
7176
|
+
const numbering = c2.at(".numbering");
|
|
6024
7177
|
numbering.unsigned("numId", paragraph.numbering.numId, "ST_DecimalNumber");
|
|
6025
7178
|
numbering.unsigned("level", paragraph.numbering.level, "ST_DecimalNumber");
|
|
6026
7179
|
}
|
|
6027
|
-
paragraph.tabStops?.forEach((stop, index) => validateTabStop(
|
|
6028
|
-
validateRevision(
|
|
6029
|
-
paragraph.runs.forEach((run, index) => validateRun(
|
|
7180
|
+
paragraph.tabStops?.forEach((stop, index) => validateTabStop(c2.at(`.tabStops[${index}]`), stop));
|
|
7181
|
+
validateRevision(c2, "markRevision", paragraph.markRevision);
|
|
7182
|
+
paragraph.runs.forEach((run, index) => validateRun(c2.at(`.runs[${index}]`), run));
|
|
6030
7183
|
}
|
|
6031
7184
|
|
|
6032
7185
|
// docx/validate-structure.ts
|
|
6033
|
-
function validateBorderSide(
|
|
7186
|
+
function validateBorderSide(c2, side) {
|
|
6034
7187
|
if (!side) return;
|
|
6035
|
-
|
|
6036
|
-
|
|
6037
|
-
|
|
6038
|
-
|
|
6039
|
-
|
|
7188
|
+
c2.enum("style", side.style, isStBorder, "ST_Border");
|
|
7189
|
+
c2.unsigned("sizeEighthPoints", side.sizeEighthPoints, "ST_EighthPointMeasure");
|
|
7190
|
+
c2.unsigned("spacePoints", side.spacePoints, "ST_PointMeasure");
|
|
7191
|
+
c2.hex("color", side.color);
|
|
7192
|
+
c2.theme("themeColor", side.themeColor);
|
|
6040
7193
|
}
|
|
6041
|
-
function validateBorders(
|
|
7194
|
+
function validateBorders(c2, borders) {
|
|
6042
7195
|
if (!borders) return;
|
|
6043
7196
|
for (const side of ["top", "left", "bottom", "right", "insideH", "insideV"])
|
|
6044
|
-
validateBorderSide(
|
|
7197
|
+
validateBorderSide(c2.at(`.${side}`), borders[side]);
|
|
6045
7198
|
}
|
|
6046
|
-
function validateCell(
|
|
6047
|
-
|
|
7199
|
+
function validateCell(c2, cell) {
|
|
7200
|
+
c2.check(
|
|
6048
7201
|
"gridSpan",
|
|
6049
7202
|
cell.gridSpan,
|
|
6050
7203
|
(v) => typeof v === "number" && Number.isSafeInteger(v) && v >= 1,
|
|
6051
7204
|
"must be a positive integer (CT_DecimalNumber)"
|
|
6052
7205
|
);
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
validateThemeReference(
|
|
6058
|
-
validateBorders(
|
|
7206
|
+
c2.enum("verticalMerge", cell.verticalMerge, isStMerge, "ST_Merge");
|
|
7207
|
+
c2.unsigned("widthTwips", cell.widthTwips, "ST_TwipsMeasure");
|
|
7208
|
+
c2.enum("verticalAlign", cell.verticalAlign, isStVerticalJc, "ST_VerticalJc");
|
|
7209
|
+
c2.hex("shadingFill", cell.shadingFill);
|
|
7210
|
+
validateThemeReference(c2, "shadingThemeFill", cell.shadingThemeFill);
|
|
7211
|
+
validateBorders(c2.at(".borders"), cell.borders);
|
|
6059
7212
|
if (cell.margins)
|
|
6060
7213
|
for (const side of ["top", "bottom", "left", "right"])
|
|
6061
|
-
|
|
7214
|
+
c2.at(".margins").signed(side, cell.margins[side], "ST_SignedTwipsMeasure");
|
|
6062
7215
|
}
|
|
6063
|
-
function validateTable(
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
7216
|
+
function validateTable(c2, table) {
|
|
7217
|
+
c2.unsigned("widthTwips", table.widthTwips, "ST_TwipsMeasure");
|
|
7218
|
+
c2.signed("indentTwips", table.indentTwips, "ST_SignedTwipsMeasure");
|
|
7219
|
+
c2.check(
|
|
6067
7220
|
"alignment",
|
|
6068
7221
|
table.alignment,
|
|
6069
7222
|
(v) => v === "left" || v === "center" || v === "right",
|
|
6070
7223
|
'must be "left", "center" or "right"'
|
|
6071
7224
|
);
|
|
6072
|
-
|
|
7225
|
+
c2.enum("justification", table.justification, isStJcTable, "ST_JcTable");
|
|
6073
7226
|
table.grid?.forEach(
|
|
6074
|
-
(width, index) =>
|
|
7227
|
+
(width, index) => c2.at(`.grid[${index}]`).unsigned("width", width, "ST_TwipsMeasure")
|
|
6075
7228
|
);
|
|
6076
|
-
validateBorders(
|
|
7229
|
+
validateBorders(c2.at(".borders"), table.borders);
|
|
6077
7230
|
if (table.cellMargins)
|
|
6078
7231
|
for (const side of ["top", "bottom", "left", "right"])
|
|
6079
|
-
|
|
7232
|
+
c2.at(".cellMargins").signed(side, table.cellMargins[side], "ST_SignedTwipsMeasure");
|
|
6080
7233
|
table.rowProperties?.forEach((row, index) => {
|
|
6081
7234
|
if (row)
|
|
6082
|
-
|
|
7235
|
+
c2.at(`.rowProperties[${index}]`).unsigned("heightTwips", row.heightTwips, "ST_TwipsMeasure");
|
|
6083
7236
|
});
|
|
6084
7237
|
table.rows.forEach(
|
|
6085
|
-
(row, r) => row.forEach((cell, k) => validateCell(
|
|
7238
|
+
(row, r) => row.forEach((cell, k) => validateCell(c2.at(`.rows[${r}][${k}]`), cell))
|
|
6086
7239
|
);
|
|
6087
7240
|
}
|
|
6088
|
-
function validateSection(
|
|
6089
|
-
|
|
6090
|
-
|
|
6091
|
-
|
|
7241
|
+
function validateSection(c2, section) {
|
|
7242
|
+
c2.enum("type", section.type, isStSectionMark, "ST_SectionMark");
|
|
7243
|
+
c2.enum("orientation", section.orientation, isStPageOrientation, "ST_PageOrientation");
|
|
7244
|
+
c2.enum("verticalAlign", section.verticalAlign, isStVerticalJc, "ST_VerticalJc");
|
|
6092
7245
|
for (const key of ["pageWidthTwips", "pageHeightTwips"])
|
|
6093
|
-
|
|
7246
|
+
c2.check(
|
|
6094
7247
|
key,
|
|
6095
7248
|
section[key],
|
|
6096
7249
|
(v) => typeof v === "number" && Number.isSafeInteger(v) && v > 0,
|
|
6097
7250
|
"must be a positive integer number of twips (CT_PageSz)"
|
|
6098
7251
|
);
|
|
6099
7252
|
for (const key of ["marginTopTwips", "marginBottomTwips"])
|
|
6100
|
-
|
|
7253
|
+
c2.signed(key, section[key], "ST_SignedTwipsMeasure");
|
|
6101
7254
|
for (const key of [
|
|
6102
7255
|
"marginLeftTwips",
|
|
6103
7256
|
"marginRightTwips",
|
|
@@ -6105,8 +7258,8 @@ function validateSection(c, section) {
|
|
|
6105
7258
|
"footerDistanceTwips",
|
|
6106
7259
|
"gutterTwips"
|
|
6107
7260
|
])
|
|
6108
|
-
|
|
6109
|
-
const columns =
|
|
7261
|
+
c2.unsigned(key, section[key], "ST_TwipsMeasure");
|
|
7262
|
+
const columns = c2.at(".columns");
|
|
6110
7263
|
columns.check(
|
|
6111
7264
|
"count",
|
|
6112
7265
|
section.columns?.count,
|
|
@@ -6120,7 +7273,7 @@ function validateSection(c, section) {
|
|
|
6120
7273
|
at.unsigned("spacingTwips", column.spacingTwips, "ST_TwipsMeasure");
|
|
6121
7274
|
});
|
|
6122
7275
|
if (section.lineNumberSettings) {
|
|
6123
|
-
const line =
|
|
7276
|
+
const line = c2.at(".lineNumberSettings");
|
|
6124
7277
|
const settings = section.lineNumberSettings;
|
|
6125
7278
|
line.check(
|
|
6126
7279
|
"countBy",
|
|
@@ -6143,12 +7296,12 @@ function validateSection(c, section) {
|
|
|
6143
7296
|
line.unsigned("distanceTwips", settings.distanceTwips, "ST_TwipsMeasure");
|
|
6144
7297
|
}
|
|
6145
7298
|
if (section.pageNumbering) {
|
|
6146
|
-
const numbering =
|
|
7299
|
+
const numbering = c2.at(".pageNumbering");
|
|
6147
7300
|
numbering.enum("format", section.pageNumbering.format, isStNumberFormat, "ST_NumberFormat");
|
|
6148
7301
|
numbering.signed("start", section.pageNumbering.start, "ST_DecimalNumber");
|
|
6149
7302
|
}
|
|
6150
7303
|
}
|
|
6151
|
-
function validateNumberingCatalog(
|
|
7304
|
+
function validateNumberingCatalog(c2, catalog) {
|
|
6152
7305
|
const levelOf = (at, level) => {
|
|
6153
7306
|
at.enum("numFmt", level.numFmt, isStNumberFormat, "ST_NumberFormat");
|
|
6154
7307
|
at.signed("start", level.start, "ST_DecimalNumber");
|
|
@@ -6179,19 +7332,19 @@ function validateNumberingCatalog(c, catalog) {
|
|
|
6179
7332
|
};
|
|
6180
7333
|
for (const [id, abstract] of Object.entries(catalog.abstractNums))
|
|
6181
7334
|
for (const [key, level] of Object.entries(abstract.levels))
|
|
6182
|
-
levelOf(new Checker(
|
|
7335
|
+
levelOf(new Checker(c2.issues, `${c2.path}.abstractNums[${id}].levels[${key}]`), level);
|
|
6183
7336
|
for (const [id, num] of Object.entries(catalog.nums))
|
|
6184
7337
|
for (const [key, override] of Object.entries(num.levelOverrides ?? {})) {
|
|
6185
|
-
const at = new Checker(
|
|
7338
|
+
const at = new Checker(c2.issues, `${c2.path}.nums[${id}].levelOverrides[${key}]`);
|
|
6186
7339
|
at.signed("startOverride", override.startOverride, "ST_DecimalNumber");
|
|
6187
7340
|
if (override.lvl) levelOf(at.at(".lvl"), override.lvl);
|
|
6188
7341
|
}
|
|
6189
7342
|
}
|
|
6190
7343
|
|
|
6191
7344
|
// docx/validate-model.ts
|
|
6192
|
-
function validateBlocks(
|
|
7345
|
+
function validateBlocks(c2, blocks) {
|
|
6193
7346
|
blocks?.forEach((block, index) => {
|
|
6194
|
-
const at =
|
|
7347
|
+
const at = c2.at(`[${index}]`);
|
|
6195
7348
|
if (block.type === "paragraph") return validateParagraph(at, block);
|
|
6196
7349
|
validateTable(at, block);
|
|
6197
7350
|
block.rows.forEach(
|
|
@@ -6205,8 +7358,8 @@ function validateBlocks(c, blocks) {
|
|
|
6205
7358
|
}
|
|
6206
7359
|
function validateDocumentModel(model) {
|
|
6207
7360
|
const issues = [];
|
|
6208
|
-
const
|
|
6209
|
-
const page =
|
|
7361
|
+
const path2 = (suffix) => new Checker(issues, suffix);
|
|
7362
|
+
const page = path2("page");
|
|
6210
7363
|
for (const key of ["width", "height"])
|
|
6211
7364
|
page.check(
|
|
6212
7365
|
key,
|
|
@@ -6221,9 +7374,9 @@ function validateDocumentModel(model) {
|
|
|
6221
7374
|
(v) => typeof v === "number" && Number.isFinite(v) && (key === "marginTop" || key === "marginBottom" || v >= 0),
|
|
6222
7375
|
"must be a finite pixel size (converted to integer twips; left/right non-negative)"
|
|
6223
7376
|
);
|
|
6224
|
-
validateBlocks(
|
|
7377
|
+
validateBlocks(path2("blocks"), model.blocks);
|
|
6225
7378
|
model.sections?.forEach((section, index) => {
|
|
6226
|
-
const at =
|
|
7379
|
+
const at = path2(`sections[${index}]`);
|
|
6227
7380
|
validateSection(at, section);
|
|
6228
7381
|
for (const kind of ["headers", "footers"])
|
|
6229
7382
|
for (const [slot2, content] of Object.entries(section[kind] ?? {}))
|
|
@@ -6231,16 +7384,16 @@ function validateDocumentModel(model) {
|
|
|
6231
7384
|
});
|
|
6232
7385
|
for (const kind of ["footnotes", "endnotes"])
|
|
6233
7386
|
model[kind]?.forEach(
|
|
6234
|
-
(note, index) => validateBlocks(
|
|
7387
|
+
(note, index) => validateBlocks(path2(`${kind}[${index}].blocks`), note.blocks)
|
|
6235
7388
|
);
|
|
6236
7389
|
model.comments?.forEach(
|
|
6237
|
-
(comment, index) =>
|
|
7390
|
+
(comment, index) => path2(`comments[${index}]`).dateTime("date", comment.date)
|
|
6238
7391
|
);
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
7392
|
+
path2("model").hex("pageColor", model.pageColor);
|
|
7393
|
+
path2("model").enum("footnoteNumFmt", model.footnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
|
|
7394
|
+
path2("model").enum("endnoteNumFmt", model.endnoteNumFmt, isStNumberFormat, "ST_NumberFormat");
|
|
6242
7395
|
if (model.numberingCatalog)
|
|
6243
|
-
validateNumberingCatalog(
|
|
7396
|
+
validateNumberingCatalog(path2("numberingCatalog"), model.numberingCatalog);
|
|
6244
7397
|
return issues;
|
|
6245
7398
|
}
|
|
6246
7399
|
function assertValidDocumentModel(model) {
|
|
@@ -6356,12 +7509,12 @@ function parseNum(element) {
|
|
|
6356
7509
|
const levelOverrides = {};
|
|
6357
7510
|
for (const override of children2(element, "lvlOverride")) {
|
|
6358
7511
|
const level = integer2(getW(override, "ilvl"), 0);
|
|
6359
|
-
const
|
|
7512
|
+
const entry2 = {};
|
|
6360
7513
|
const startOverride = getW(first2(override, "startOverride"), "val");
|
|
6361
|
-
if (startOverride !== void 0)
|
|
7514
|
+
if (startOverride !== void 0) entry2.startOverride = integer2(startOverride, 1);
|
|
6362
7515
|
const lvl = first2(override, "lvl");
|
|
6363
|
-
if (lvl)
|
|
6364
|
-
if (Object.keys(
|
|
7516
|
+
if (lvl) entry2.lvl = parseNumberingLevel(lvl);
|
|
7517
|
+
if (Object.keys(entry2).length) levelOverrides[level] = entry2;
|
|
6365
7518
|
}
|
|
6366
7519
|
return {
|
|
6367
7520
|
id,
|
|
@@ -6567,7 +7720,7 @@ function buildAbstractNumElement(doc, def) {
|
|
|
6567
7720
|
const element = makeW(doc, "abstractNum");
|
|
6568
7721
|
setAttribute8(element, "abstractNumId", def.id);
|
|
6569
7722
|
element.appendChild(valueElement(doc, "multiLevelType", "hybridMultilevel"));
|
|
6570
|
-
for (const level of Object.values(def.levels).sort((
|
|
7723
|
+
for (const level of Object.values(def.levels).sort((a2, b) => a2.level - b.level))
|
|
6571
7724
|
element.appendChild(buildLevelElement(doc, level));
|
|
6572
7725
|
return element;
|
|
6573
7726
|
}
|
|
@@ -6686,13 +7839,13 @@ async function applyStyleNumbering(zip, model, base) {
|
|
|
6686
7839
|
// docx/part-relationships.ts
|
|
6687
7840
|
var CONTENT_TYPES_PART = "[Content_Types].xml";
|
|
6688
7841
|
var extensionOf = (partName) => partName.split(".").pop()?.toLowerCase() ?? "";
|
|
6689
|
-
function
|
|
7842
|
+
function relationshipsPartFor2(partName) {
|
|
6690
7843
|
const slash = partName.lastIndexOf("/");
|
|
6691
7844
|
return `${partName.slice(0, slash)}/_rels/${partName.slice(slash + 1)}.rels`;
|
|
6692
7845
|
}
|
|
6693
7846
|
async function allocatorForPart(zip, partName, doc, docPrIds) {
|
|
6694
7847
|
const declared = parseRelationships(
|
|
6695
|
-
await zip.file(
|
|
7848
|
+
await zip.file(relationshipsPartFor2(partName))?.async("string")
|
|
6696
7849
|
);
|
|
6697
7850
|
const allocator = new RelationshipAllocator(
|
|
6698
7851
|
[...scanUsedRelationshipIds(doc), ...declared.keys()],
|
|
@@ -6703,7 +7856,7 @@ async function allocatorForPart(zip, partName, doc, docPrIds) {
|
|
|
6703
7856
|
}
|
|
6704
7857
|
async function writeNewRelationships(zip, partName, created, pendingMedia) {
|
|
6705
7858
|
if (!created.length) return;
|
|
6706
|
-
const relsPath =
|
|
7859
|
+
const relsPath = relationshipsPartFor2(partName);
|
|
6707
7860
|
const relationships = parseRelationships(await zip.file(relsPath)?.async("string"));
|
|
6708
7861
|
let contentTypesXml = await zip.file(CONTENT_TYPES_PART)?.async("string");
|
|
6709
7862
|
for (const relationship of created) {
|
|
@@ -6787,8 +7940,8 @@ async function createHeaderFooterParts(zip, model, base, docPrIds) {
|
|
|
6787
7940
|
(_match, start, end) => `${start}${docPrIds.next()}${end}`
|
|
6788
7941
|
) : xml
|
|
6789
7942
|
);
|
|
6790
|
-
const rels = zip.file(
|
|
6791
|
-
if (rels) zip.file(
|
|
7943
|
+
const rels = zip.file(relationshipsPartFor2(content.sourcePartName));
|
|
7944
|
+
if (rels) zip.file(relationshipsPartFor2(partName), await rels.async("uint8array"));
|
|
6792
7945
|
}
|
|
6793
7946
|
await ensureContentTypeOverride(
|
|
6794
7947
|
zip,
|
|
@@ -7861,15 +9014,15 @@ function parseNotesPart(xml, kind, parseBlocks) {
|
|
|
7861
9014
|
}
|
|
7862
9015
|
|
|
7863
9016
|
// docx/document-parts.ts
|
|
7864
|
-
async function partContext(zip,
|
|
9017
|
+
async function partContext(zip, path2, base) {
|
|
7865
9018
|
if (!base) return void 0;
|
|
7866
|
-
const slash =
|
|
7867
|
-
const relsPath = `${
|
|
9019
|
+
const slash = path2.lastIndexOf("/");
|
|
9020
|
+
const relsPath = `${path2.slice(0, slash)}/_rels/${path2.slice(slash + 1)}.rels`;
|
|
7868
9021
|
return { ...base, rels: parseRelationships(await readPart(zip, relsPath)) };
|
|
7869
9022
|
}
|
|
7870
9023
|
var FIELD_MARKUP = /<w:(?:fldSimple|instrText|fldChar)\b/;
|
|
7871
|
-
async function readPart(zip,
|
|
7872
|
-
return zip.file(
|
|
9024
|
+
async function readPart(zip, path2) {
|
|
9025
|
+
return zip.file(path2)?.async("string");
|
|
7873
9026
|
}
|
|
7874
9027
|
function parseSettings(xml) {
|
|
7875
9028
|
if (!xml) return { evenAndOddHeaders: false, autoHyphenation: false };
|
|
@@ -7897,21 +9050,21 @@ async function resolveSlots(zip, relationships, refs, cache, fieldMarkup, drawin
|
|
|
7897
9050
|
for (const ref of refs) {
|
|
7898
9051
|
const relationship = relationships.get(ref.rId);
|
|
7899
9052
|
if (!relationship) continue;
|
|
7900
|
-
const
|
|
7901
|
-
let blocks = cache.get(
|
|
9053
|
+
const path2 = resolvePartPath("word/document.xml", relationship.target);
|
|
9054
|
+
let blocks = cache.get(path2);
|
|
7902
9055
|
if (!blocks) {
|
|
7903
|
-
const xml = await readPart(zip,
|
|
9056
|
+
const xml = await readPart(zip, path2);
|
|
7904
9057
|
if (xml === void 0) continue;
|
|
7905
9058
|
if (FIELD_MARKUP.test(xml)) fieldMarkup.seen = true;
|
|
7906
|
-
const context = await partContext(zip,
|
|
9059
|
+
const context = await partContext(zip, path2, drawings);
|
|
7907
9060
|
const root = parseXml2(xml).documentElement;
|
|
7908
9061
|
blocks = withParseWarnings(
|
|
7909
9062
|
sink2,
|
|
7910
|
-
() => parseBlocksFromContainer(root, `${
|
|
9063
|
+
() => parseBlocksFromContainer(root, `${path2.replace(/[^a-z0-9]+/gi, "")}-`, context)
|
|
7911
9064
|
);
|
|
7912
|
-
cache.set(
|
|
9065
|
+
cache.set(path2, blocks);
|
|
7913
9066
|
}
|
|
7914
|
-
slots[ref.slot] = { blocks, partName:
|
|
9067
|
+
slots[ref.slot] = { blocks, partName: path2 };
|
|
7915
9068
|
}
|
|
7916
9069
|
return Object.keys(slots).length ? slots : void 0;
|
|
7917
9070
|
}
|
|
@@ -7947,8 +9100,8 @@ async function parseDocumentParts(zip, body, blocks, drawings) {
|
|
|
7947
9100
|
}
|
|
7948
9101
|
const footnotesXml = await readPart(zip, "word/footnotes.xml");
|
|
7949
9102
|
const endnotesXml = await readPart(zip, "word/endnotes.xml");
|
|
7950
|
-
const notesParser = async (
|
|
7951
|
-
const context = await partContext(zip,
|
|
9103
|
+
const notesParser = async (path2) => {
|
|
9104
|
+
const context = await partContext(zip, path2, drawings);
|
|
7952
9105
|
return (container, prefix) => withParseWarnings(warnings, () => parseBlocksFromContainer(container, prefix, context));
|
|
7953
9106
|
};
|
|
7954
9107
|
const footnotes = footnotesXml ? parseNotesPart(footnotesXml, "footnote", await notesParser("word/footnotes.xml")) : void 0;
|
|
@@ -8000,15 +9153,15 @@ function parseComments(commentsXml, extendedXml) {
|
|
|
8000
9153
|
});
|
|
8001
9154
|
if (extendedXml) {
|
|
8002
9155
|
const extended = parseXml2(extendedXml);
|
|
8003
|
-
for (const
|
|
9156
|
+
for (const entry2 of Array.from(
|
|
8004
9157
|
extended.getElementsByTagNameNS(W15_NS2, "commentEx")
|
|
8005
9158
|
)) {
|
|
8006
|
-
const paraId =
|
|
8007
|
-
const comment = paraId && comments.find((
|
|
9159
|
+
const paraId = entry2.getAttributeNS(W15_NS2, "paraId");
|
|
9160
|
+
const comment = paraId && comments.find((c2) => c2.id === paraIdToCommentId.get(paraId));
|
|
8008
9161
|
if (!comment) continue;
|
|
8009
|
-
const done =
|
|
9162
|
+
const done = entry2.getAttributeNS(W15_NS2, "done");
|
|
8010
9163
|
comment.resolved = done === "1" || done === "true";
|
|
8011
|
-
const parentParaId =
|
|
9164
|
+
const parentParaId = entry2.getAttributeNS(W15_NS2, "paraIdParent");
|
|
8012
9165
|
const parentId = parentParaId && paraIdToCommentId.get(parentParaId);
|
|
8013
9166
|
if (parentId) comment.parentId = parentId;
|
|
8014
9167
|
}
|
|
@@ -8016,96 +9169,6 @@ function parseComments(commentsXml, extendedXml) {
|
|
|
8016
9169
|
return comments;
|
|
8017
9170
|
}
|
|
8018
9171
|
|
|
8019
|
-
// docx/parse-warnings.ts
|
|
8020
|
-
function hasAny(document, names) {
|
|
8021
|
-
return names.some((name) => document.getElementsByTagNameNS(WORD_NS, name).length > 0);
|
|
8022
|
-
}
|
|
8023
|
-
function warningsFor(document) {
|
|
8024
|
-
const warnings = [];
|
|
8025
|
-
const features = [
|
|
8026
|
-
[["object"], "Embedded OLE objects (w:object) are preserved but rendered as a placeholder."],
|
|
8027
|
-
[["altChunk"], "Embedded alternate-format content is not represented in the document model."],
|
|
8028
|
-
[
|
|
8029
|
-
["fldSimple", "instrText", "fldChar"],
|
|
8030
|
-
"Fields show the result Word last saved while editing; Print Layout recalculates PAGE, NUMPAGES, SECTIONPAGES, DATE and TIME, and tables of contents update from the References tab."
|
|
8031
|
-
],
|
|
8032
|
-
[
|
|
8033
|
-
["moveFrom", "moveTo"],
|
|
8034
|
-
"Moved text is linked by its move name: accepting or rejecting either side resolves both. Moves are shown and saved with their range markers."
|
|
8035
|
-
],
|
|
8036
|
-
[
|
|
8037
|
-
["rPrChange"],
|
|
8038
|
-
"Formatting-change revisions retain their prior run-properties snapshots and support acceptance and rejection; recording new formatting changes and showing prior formatting in Original display are not supported yet."
|
|
8039
|
-
],
|
|
8040
|
-
[
|
|
8041
|
-
["pPrChange"],
|
|
8042
|
-
"Paragraph-formatting-change revisions retain their prior properties snapshots and support acceptance and rejection; recording new paragraph formatting changes and showing prior formatting in Original display are not supported yet."
|
|
8043
|
-
],
|
|
8044
|
-
[
|
|
8045
|
-
["tblPrChange", "trPrChange", "tcPrChange"],
|
|
8046
|
-
"Table-structure tracked changes are preserved in the source XML but are not represented in the document model."
|
|
8047
|
-
]
|
|
8048
|
-
];
|
|
8049
|
-
for (const [names, message] of features) if (hasAny(document, names)) warnings.push(message);
|
|
8050
|
-
if (Array.from(document.getElementsByTagNameNS(WORD_NS, "instrText")).some(
|
|
8051
|
-
(el3) => /HYPERLINK/i.test(textContent(el3))
|
|
8052
|
-
))
|
|
8053
|
-
warnings.push(
|
|
8054
|
-
"Complex HYPERLINK field codes (w:fldChar/w:instrText) are preserved but not parsed as links; their result text edits as plain text."
|
|
8055
|
-
);
|
|
8056
|
-
const specialBreak = Array.from(document.getElementsByTagNameNS(WORD_NS, "br")).some(
|
|
8057
|
-
(br) => hasSpecialBreak(br) && !isModeledBreak(br)
|
|
8058
|
-
) || Array.from(document.getElementsByTagNameNS(WORD_NS, "cr")).some(
|
|
8059
|
-
(cr) => cr.attributes.length > 0
|
|
8060
|
-
);
|
|
8061
|
-
if (specialBreak)
|
|
8062
|
-
warnings.push(
|
|
8063
|
-
"Some non-line breaks other than page and column breaks are not distinguished from line breaks in the document model; edits to paragraphs containing them are rejected to preserve the original XML."
|
|
8064
|
-
);
|
|
8065
|
-
return warnings;
|
|
8066
|
-
}
|
|
8067
|
-
function forEachParagraph2(blocks, visit) {
|
|
8068
|
-
for (const block of blocks) {
|
|
8069
|
-
if (block.type === "paragraph") visit(block);
|
|
8070
|
-
else for (const row of block.rows) for (const cell of row) cell.paragraphs.forEach(visit);
|
|
8071
|
-
}
|
|
8072
|
-
}
|
|
8073
|
-
function imageAndBookmarkWarnings(blocks) {
|
|
8074
|
-
const warnings = [];
|
|
8075
|
-
let hasPicture = false;
|
|
8076
|
-
let hasAnchored = false;
|
|
8077
|
-
const unsupportedKinds = /* @__PURE__ */ new Set();
|
|
8078
|
-
let hasBookmarks = false;
|
|
8079
|
-
forEachParagraph2(blocks, (paragraph) => {
|
|
8080
|
-
if (paragraph.bookmarks?.length) hasBookmarks = true;
|
|
8081
|
-
for (const run of paragraph.runs) {
|
|
8082
|
-
if (!run.image) continue;
|
|
8083
|
-
if (run.image.unsupported) {
|
|
8084
|
-
if (run.image.diagram?.rendering !== "cached-drawing")
|
|
8085
|
-
unsupportedKinds.add(run.image.unsupported);
|
|
8086
|
-
} else hasPicture = true;
|
|
8087
|
-
if (run.image.anchored) hasAnchored = true;
|
|
8088
|
-
}
|
|
8089
|
-
});
|
|
8090
|
-
if (hasPicture)
|
|
8091
|
-
warnings.push(
|
|
8092
|
-
"Inline pictures render from their original bytes and can be deleted or newly inserted; crop, artistic effects, and non-inline text wrapping are not reproduced."
|
|
8093
|
-
);
|
|
8094
|
-
if (hasAnchored)
|
|
8095
|
-
warnings.push(
|
|
8096
|
-
"Floating pictures follow their text wrapping approximately (floated left or right, or on their own line); exact positions, vertical offsets and in-front/behind layering are not reproduced."
|
|
8097
|
-
);
|
|
8098
|
-
if (unsupportedKinds.size)
|
|
8099
|
-
warnings.push(
|
|
8100
|
-
`${Array.from(unsupportedKinds).join(", ")} content is rendered as a labeled placeholder and is not editable.`
|
|
8101
|
-
);
|
|
8102
|
-
if (hasBookmarks)
|
|
8103
|
-
warnings.push(
|
|
8104
|
-
"Bookmark names are read-only; editing a paragraph that contains bookmarks preserves them but moves their start/end to the paragraph boundaries."
|
|
8105
|
-
);
|
|
8106
|
-
return warnings;
|
|
8107
|
-
}
|
|
8108
|
-
|
|
8109
9172
|
// docx/diagram-document.ts
|
|
8110
9173
|
function diagramsIn(blocks) {
|
|
8111
9174
|
const diagrams = [];
|
|
@@ -8143,7 +9206,7 @@ async function readPackage(input) {
|
|
|
8143
9206
|
const entries = Object.values(zip.files);
|
|
8144
9207
|
if (entries.length > 5e3) throw new Error("DOCX package exceeds the 5,000 part limit");
|
|
8145
9208
|
const totalSize = entries.reduce(
|
|
8146
|
-
(sum,
|
|
9209
|
+
(sum, entry2) => sum + Number(entry2._data?.uncompressedSize ?? 0),
|
|
8147
9210
|
0
|
|
8148
9211
|
);
|
|
8149
9212
|
if (totalSize > 200 * 1024 * 1024)
|
|
@@ -8294,6 +9357,10 @@ async function readPackage(input) {
|
|
|
8294
9357
|
pictureBlocks,
|
|
8295
9358
|
async (partName) => zip.file(partName)?.async("string")
|
|
8296
9359
|
);
|
|
9360
|
+
await resolveDocumentCharts(
|
|
9361
|
+
pictureBlocks,
|
|
9362
|
+
async (partName) => zip.file(partName)?.async("string")
|
|
9363
|
+
);
|
|
8297
9364
|
model.warnings.push(...imageAndBookmarkWarnings(blocks), ...diagramWarnings(pictureBlocks));
|
|
8298
9365
|
for (const warning of schemaWarnings)
|
|
8299
9366
|
if (!model.warnings.includes(warning)) model.warnings.push(warning);
|