ooxml-core 1.20.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/dist/{PptxHandler-TEKISCJO.cjs → PptxHandler-DNSXWTQV.cjs} +3 -3
- package/dist/{PptxHandler-FYD7IYXT.mjs → PptxHandler-FSKKPZZC.mjs} +3 -3
- package/dist/PptxHandler-H7MEWJJJ.mjs +4 -0
- package/dist/{PresentationBuilder-IMB4DVRN.mjs → PresentationBuilder-7TSENZTX.mjs} +2 -2
- package/dist/{PresentationBuilder-NCKASKXU.cjs → PresentationBuilder-A5NI35VN.cjs} +5 -5
- package/dist/{PresentationBuilder-EYI6Z2JP.mjs → PresentationBuilder-RIJWQSEU.mjs} +3 -3
- package/dist/automation/docx-forms.d.ts +26 -0
- package/dist/automation/docx-forms.d.ts.map +1 -0
- package/dist/automation/index.cjs +39159 -14352
- package/dist/automation/index.d.ts +5 -0
- package/dist/automation/index.d.ts.map +1 -1
- package/dist/automation/index.mjs +39145 -14353
- package/dist/automation/node.cjs +37 -0
- package/dist/automation/node.d.ts +32 -1
- package/dist/automation/node.d.ts.map +1 -1
- package/dist/automation/node.mjs +36 -1
- package/dist/automation/proposal.d.ts +25 -0
- package/dist/automation/proposal.d.ts.map +1 -0
- package/dist/automation/tools/define.d.ts +27 -0
- package/dist/automation/tools/define.d.ts.map +1 -0
- package/dist/automation/tools/docx-tools.d.ts +4 -0
- package/dist/automation/tools/docx-tools.d.ts.map +1 -0
- package/dist/automation/tools/index.d.ts +16 -0
- package/dist/automation/tools/index.d.ts.map +1 -0
- package/dist/automation/tools/types.d.ts +52 -0
- package/dist/automation/tools/types.d.ts.map +1 -0
- package/dist/automation/tools/visio-tools.d.ts +4 -0
- package/dist/automation/tools/visio-tools.d.ts.map +1 -0
- package/dist/automation/tools/xlsx-tools.d.ts +8 -0
- package/dist/automation/tools/xlsx-tools.d.ts.map +1 -0
- package/dist/automation/xlsx-edits.d.ts +88 -0
- package/dist/automation/xlsx-edits.d.ts.map +1 -0
- package/dist/automation/xlsx-proposal.d.ts +34 -0
- package/dist/automation/xlsx-proposal.d.ts.map +1 -0
- package/dist/automation/xlsx.d.ts +10 -5
- package/dist/automation/xlsx.d.ts.map +1 -1
- package/dist/chart/axis-range.d.ts.map +1 -1
- package/dist/chart/bubble-radius.d.ts +0 -5
- package/dist/chart/bubble-radius.d.ts.map +1 -1
- package/dist/chart/extent.d.ts +9 -0
- package/dist/chart/extent.d.ts.map +1 -0
- package/dist/chart/histogram-binning.d.ts.map +1 -1
- package/dist/chart/index.cjs +56 -18
- package/dist/chart/index.mjs +56 -18
- package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
- package/dist/chart/render/chart-svg-legend.d.ts.map +1 -1
- package/dist/chart/render/chart-view-ex.d.ts.map +1 -1
- package/dist/chart/render/chart-view.d.ts.map +1 -1
- package/dist/chart/trendline-fit.d.ts.map +1 -1
- package/dist/{chunk-3IENHIFD.cjs → chunk-4LZIUJI3.cjs} +52 -12
- package/dist/{chunk-LEV2SVMK.mjs → chunk-4QPOJCJG.mjs} +45 -8
- package/dist/{chunk-CC5UNZOO.mjs → chunk-6IIMI5RS.mjs} +52 -12
- package/dist/{chunk-MN27HKHM.mjs → chunk-BA7Z6ATM.mjs} +5 -5
- package/dist/{chunk-LVM3IZJ2.mjs → chunk-DLFMCZZT.mjs} +1 -1
- package/dist/{chunk-M4XLF4R7.mjs → chunk-GBKBR4CX.mjs} +20 -8
- package/dist/{chunk-NXKATFM5.cjs → chunk-HL3FBJ6X.cjs} +1065 -1016
- package/dist/{chunk-WXY5EDGT.mjs → chunk-LF5E5ZOH.mjs} +51 -2
- package/dist/chunk-MHNETXQB.mjs +1 -0
- package/dist/{chunk-MNXKRXFB.mjs → chunk-Q5PKBQXH.mjs} +52 -3
- package/dist/{chunk-GQYQQ3GA.mjs → chunk-VQF6HQEE.mjs} +1 -1
- package/dist/collab/embedding.d.ts +108 -0
- package/dist/collab/embedding.d.ts.map +1 -0
- package/dist/collab/index.cjs +423 -293
- package/dist/collab/index.d.ts +2 -0
- package/dist/collab/index.d.ts.map +1 -1
- package/dist/collab/index.mjs +415 -294
- package/dist/collab/webrtc-provider.d.ts +21 -0
- package/dist/collab/webrtc-provider.d.ts.map +1 -0
- package/dist/color/theme-palette.d.ts +5 -1
- package/dist/color/theme-palette.d.ts.map +1 -1
- package/dist/crypto/index.cjs +27 -2
- package/dist/crypto/index.mjs +27 -2
- package/dist/diagram/index.cjs +31 -3
- package/dist/diagram/index.mjs +31 -3
- package/dist/docx/block-parser.d.ts.map +1 -1
- package/dist/docx/cell-blocks.d.ts +7 -1
- package/dist/docx/cell-blocks.d.ts.map +1 -1
- package/dist/docx/content-control-edit.d.ts +14 -0
- package/dist/docx/content-control-edit.d.ts.map +1 -1
- package/dist/docx/content-control-model.d.ts +8 -0
- package/dist/docx/content-control-model.d.ts.map +1 -1
- package/dist/docx/content-control-values.d.ts +20 -0
- package/dist/docx/content-control-values.d.ts.map +1 -0
- package/dist/docx/content-control.d.ts +7 -1
- package/dist/docx/content-control.d.ts.map +1 -1
- package/dist/docx/element-order.d.ts +10 -5
- package/dist/docx/element-order.d.ts.map +1 -1
- package/dist/docx/embedded.cjs +3861 -1379
- package/dist/docx/embedded.mjs +3861 -1379
- package/dist/docx/field-instruction.d.ts +22 -0
- package/dist/docx/field-instruction.d.ts.map +1 -0
- package/dist/docx/form-field-model.d.ts +48 -0
- package/dist/docx/form-field-model.d.ts.map +1 -0
- package/dist/docx/form-fields.d.ts +31 -0
- package/dist/docx/form-fields.d.ts.map +1 -0
- package/dist/docx/form-fill-fields.d.ts +61 -0
- package/dist/docx/form-fill-fields.d.ts.map +1 -0
- package/dist/docx/form-fill-labels.d.ts +8 -0
- package/dist/docx/form-fill-labels.d.ts.map +1 -0
- package/dist/docx/form-fill-sites.d.ts +59 -0
- package/dist/docx/form-fill-sites.d.ts.map +1 -0
- package/dist/docx/form-fill-values.d.ts +28 -0
- package/dist/docx/form-fill-values.d.ts.map +1 -0
- package/dist/docx/form-fill-write.d.ts +26 -0
- package/dist/docx/form-fill-write.d.ts.map +1 -0
- package/dist/docx/glossary.d.ts +15 -0
- package/dist/docx/glossary.d.ts.map +1 -0
- package/dist/docx/index.cjs +5929 -3153
- package/dist/docx/index.d.ts +7 -0
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +5913 -3154
- package/dist/docx/inline-annotations.d.ts +21 -0
- package/dist/docx/inline-annotations.d.ts.map +1 -0
- package/dist/docx/inline-container-markers.d.ts +14 -0
- package/dist/docx/inline-container-markers.d.ts.map +1 -0
- package/dist/docx/inline-containers.d.ts +54 -0
- package/dist/docx/inline-containers.d.ts.map +1 -0
- package/dist/docx/inline-form-field-bookmarks.d.ts +15 -0
- package/dist/docx/inline-form-field-bookmarks.d.ts.map +1 -0
- package/dist/docx/inline-marker-positions.d.ts +15 -0
- package/dist/docx/inline-marker-positions.d.ts.map +1 -0
- package/dist/docx/inline-markers.d.ts +63 -0
- package/dist/docx/inline-markers.d.ts.map +1 -0
- package/dist/docx/inline-slots.d.ts +24 -0
- package/dist/docx/inline-slots.d.ts.map +1 -0
- package/dist/docx/layout/adapter.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +1176 -563
- package/dist/docx/layout/index.d.ts +2 -1
- package/dist/docx/layout/index.d.ts.map +1 -1
- package/dist/docx/layout/index.mjs +1175 -564
- package/dist/docx/layout/input.d.ts +5 -1
- package/dist/docx/layout/input.d.ts.map +1 -1
- package/dist/docx/layout/page-style-refs.d.ts +21 -0
- package/dist/docx/layout/page-style-refs.d.ts.map +1 -0
- package/dist/docx/layout/paragraph-fragments.d.ts.map +1 -1
- package/dist/docx/layout/result.d.ts +1 -0
- package/dist/docx/layout/result.d.ts.map +1 -1
- package/dist/docx/layout/tab-stops.d.ts +8 -1
- package/dist/docx/layout/tab-stops.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +3969 -1487
- package/dist/docx/load/index.mjs +3969 -1487
- package/dist/docx/model-run.d.ts +24 -2
- package/dist/docx/model-run.d.ts.map +1 -1
- package/dist/docx/model.d.ts +5 -0
- package/dist/docx/model.d.ts.map +1 -1
- package/dist/docx/numbering-format.d.ts.map +1 -1
- package/dist/docx/parse-warnings.d.ts.map +1 -1
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/run-segmentation.d.ts +11 -0
- package/dist/docx/run-segmentation.d.ts.map +1 -0
- package/dist/docx/save.d.ts.map +1 -1
- package/dist/docx/section-model.d.ts +5 -0
- package/dist/docx/section-model.d.ts.map +1 -1
- package/dist/docx/sections.d.ts +4 -2
- package/dist/docx/sections.d.ts.map +1 -1
- package/dist/docx/settings.d.ts +9 -0
- package/dist/docx/settings.d.ts.map +1 -1
- package/dist/docx/special-characters.d.ts +34 -0
- package/dist/docx/special-characters.d.ts.map +1 -0
- package/dist/docx/style-ref-fields.d.ts +40 -0
- package/dist/docx/style-ref-fields.d.ts.map +1 -0
- package/dist/docx/style-ref.d.ts +85 -0
- package/dist/docx/style-ref.d.ts.map +1 -0
- package/dist/docx/table-model.d.ts +2 -2
- package/dist/docx/table-model.d.ts.map +1 -1
- package/dist/docx/ui/break-note-schema.d.ts.map +1 -1
- package/dist/docx/ui/content-control-commands.d.ts +20 -8
- package/dist/docx/ui/content-control-commands.d.ts.map +1 -1
- package/dist/docx/ui/content-control-guard.d.ts +4 -1
- package/dist/docx/ui/content-control-guard.d.ts.map +1 -1
- package/dist/docx/ui/content-control-paste.d.ts +23 -0
- package/dist/docx/ui/content-control-paste.d.ts.map +1 -0
- package/dist/docx/ui/content-control-rows.d.ts +15 -0
- package/dist/docx/ui/content-control-rows.d.ts.map +1 -0
- package/dist/docx/ui/content-control-sources.d.ts +12 -0
- package/dist/docx/ui/content-control-sources.d.ts.map +1 -0
- package/dist/docx/ui/content-control-spans.d.ts +29 -6
- package/dist/docx/ui/content-control-spans.d.ts.map +1 -1
- package/dist/docx/ui/content-control-temporary.d.ts +10 -0
- package/dist/docx/ui/content-control-temporary.d.ts.map +1 -0
- package/dist/docx/ui/form-field-commands.d.ts +41 -0
- package/dist/docx/ui/form-field-commands.d.ts.map +1 -0
- package/dist/docx/ui/form-field-guard.d.ts +24 -0
- package/dist/docx/ui/form-field-guard.d.ts.map +1 -0
- package/dist/docx/ui/form-text-blank.d.ts +18 -0
- package/dist/docx/ui/form-text-blank.d.ts.map +1 -0
- package/dist/docx/ui/index.cjs +9276 -7132
- package/dist/docx/ui/index.d.ts +5 -0
- package/dist/docx/ui/index.d.ts.map +1 -1
- package/dist/docx/ui/index.mjs +9259 -7137
- package/dist/docx/ui/positional-tab-input.d.ts +7 -0
- package/dist/docx/ui/positional-tab-input.d.ts.map +1 -0
- package/dist/docx/ui/run-compare.d.ts.map +1 -1
- package/dist/docx/ui/run-extra-mark.d.ts +1 -1
- package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
- package/dist/docx/ui/schema-marks.d.ts +1 -1
- package/dist/docx/ui/schema-marks.d.ts.map +1 -1
- package/dist/docx/ui/symbol-font.d.ts +4 -0
- package/dist/docx/ui/symbol-font.d.ts.map +1 -0
- package/dist/docx/ui/yjs-collaboration.d.ts +12 -1
- package/dist/docx/ui/yjs-collaboration.d.ts.map +1 -1
- package/dist/docx/write-block-placement.d.ts +7 -0
- package/dist/docx/write-block-placement.d.ts.map +1 -1
- package/dist/docx/write-content-control.d.ts +6 -0
- package/dist/docx/write-content-control.d.ts.map +1 -1
- package/dist/docx/write-header-footer.d.ts +6 -2
- package/dist/docx/write-header-footer.d.ts.map +1 -1
- package/dist/docx/write-inline.d.ts +12 -16
- package/dist/docx/write-inline.d.ts.map +1 -1
- package/dist/docx/write-paragraph.d.ts.map +1 -1
- package/dist/docx/write-revisions.d.ts.map +1 -1
- package/dist/docx/write-run.d.ts.map +1 -1
- package/dist/docx/write-section-properties.d.ts +5 -0
- package/dist/docx/write-section-properties.d.ts.map +1 -0
- package/dist/docx/write-sections.d.ts.map +1 -1
- package/dist/docx/write-table-controls.d.ts +15 -0
- package/dist/docx/write-table-controls.d.ts.map +1 -0
- package/dist/docx/write-table-properties.d.ts.map +1 -1
- package/dist/docx/write-table.d.ts.map +1 -1
- package/dist/docx/write.d.ts.map +1 -1
- package/dist/docx/xml.d.ts +6 -0
- package/dist/docx/xml.d.ts.map +1 -1
- package/dist/drawingml/index.cjs +31 -3
- package/dist/drawingml/index.mjs +31 -3
- package/dist/index.cjs +77 -26
- package/dist/index.mjs +77 -26
- package/dist/math/index.cjs +27 -2
- package/dist/math/index.mjs +27 -2
- package/dist/opc/index.cjs +51 -11
- package/dist/opc/index.mjs +51 -11
- package/dist/opc/zip-folders.d.ts +11 -0
- package/dist/opc/zip-folders.d.ts.map +1 -0
- package/dist/opc/zip-limits.d.ts +9 -0
- package/dist/opc/zip-limits.d.ts.map +1 -1
- package/dist/pptx/automation/index.cjs +28818 -7388
- package/dist/pptx/automation/index.d.ts +93 -3
- package/dist/pptx/automation/index.d.ts.map +1 -1
- package/dist/pptx/automation/index.mjs +740 -63
- package/dist/pptx/automation/schemas/chart-formatting-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/chart-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/chart-user-shape-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/element-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/export-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/geometry-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/hyperlink-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/index.mjs +1 -0
- package/dist/pptx/automation/schemas/json-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/layout-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/lock-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/metadata-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/ole-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/presentation-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/section-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/slide-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/smartart-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/table-style-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/template-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/theme-schemas.d.ts +1 -1
- package/dist/pptx/automation/schemas/validation-schemas.d.ts +1 -1
- package/dist/pptx/chunks/{index-CgFX0T7b.d.ts → index-CPhsd7Df.d.ts} +9 -1
- package/dist/pptx/chunks/{index-CgFX0T7b.d.ts.map → index-CPhsd7Df.d.ts.map} +1 -1
- package/dist/pptx/chunks/{index-qwVYoFn6.d.ts → index-Q5mM8kIR.d.ts} +2 -2
- package/dist/pptx/chunks/{index-qwVYoFn6.d.ts.map → index-Q5mM8kIR.d.ts.map} +1 -1
- package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts → schemas-fuDGetRe.d.ts} +2 -2
- package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts.map → schemas-fuDGetRe.d.ts.map} +1 -1
- package/dist/pptx/cli/index.cjs +116 -17
- package/dist/pptx/cli/index.mjs +5 -5
- package/dist/pptx/converter/index.cjs +12 -3
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +3 -3
- package/dist/pptx/editor/render/find-replace.cjs +14 -14
- package/dist/pptx/editor/render/find-replace.d.ts +1 -1
- package/dist/pptx/editor/render/find-replace.mjs +1 -1
- package/dist/pptx/editor/render/slide-operations.cjs +8 -8
- package/dist/pptx/editor/render/slide-operations.mjs +2 -2
- package/dist/pptx/index.cjs +116 -17
- package/dist/pptx/index.d.ts +2 -2
- package/dist/pptx/index.mjs +6 -6
- package/dist/pptx/signature-node/index.cjs +20 -8
- package/dist/pptx/signature-node/index.mjs +2 -2
- package/dist/teams/index.cjs +105 -70
- package/dist/teams/index.mjs +105 -70
- package/dist/text/text-diff.d.ts +15 -0
- package/dist/text/text-diff.d.ts.map +1 -0
- package/dist/visio/collab/bind.d.ts +44 -0
- package/dist/visio/collab/bind.d.ts.map +1 -0
- package/dist/visio/collab/compose.d.ts +15 -0
- package/dist/visio/collab/compose.d.ts.map +1 -0
- package/dist/visio/collab/index.cjs +1194 -0
- package/dist/visio/collab/index.d.ts +8 -0
- package/dist/visio/collab/index.d.ts.map +1 -0
- package/dist/visio/collab/index.mjs +1152 -0
- package/dist/visio/collab/keys.d.ts +22 -0
- package/dist/visio/collab/keys.d.ts.map +1 -0
- package/dist/visio/collab/order.d.ts +11 -0
- package/dist/visio/collab/order.d.ts.map +1 -0
- package/dist/visio/collab/package.d.ts +37 -0
- package/dist/visio/collab/package.d.ts.map +1 -0
- package/dist/visio/collab/read.d.ts +41 -0
- package/dist/visio/collab/read.d.ts.map +1 -0
- package/dist/visio/collab/scan.d.ts +28 -0
- package/dist/visio/collab/scan.d.ts.map +1 -0
- package/dist/visio/collab/schema.d.ts +70 -0
- package/dist/visio/collab/schema.d.ts.map +1 -0
- package/dist/visio/collab/snapshot.d.ts +61 -0
- package/dist/visio/collab/snapshot.d.ts.map +1 -0
- package/dist/visio/collab/write.d.ts +20 -0
- package/dist/visio/collab/write.d.ts.map +1 -0
- package/dist/visio/index.cjs +159 -39
- package/dist/visio/index.mjs +159 -39
- package/dist/visio/ui/collab-options.d.ts +24 -0
- package/dist/visio/ui/collab-options.d.ts.map +1 -0
- package/dist/visio/ui/collab-presence.d.ts +31 -0
- package/dist/visio/ui/collab-presence.d.ts.map +1 -0
- package/dist/visio/ui/contract.d.ts +9 -3
- package/dist/visio/ui/contract.d.ts.map +1 -1
- package/dist/visio/ui/document-history.d.ts +3 -1
- package/dist/visio/ui/document-history.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +284 -95
- package/dist/visio/ui/index.d.ts +2 -0
- package/dist/visio/ui/index.d.ts.map +1 -1
- package/dist/visio/ui/index.mjs +278 -95
- package/dist/xlsx/collab/index.cjs +8 -3
- package/dist/xlsx/collab/index.mjs +8 -3
- package/dist/xlsx/compare/cells.d.ts +22 -0
- package/dist/xlsx/compare/cells.d.ts.map +1 -0
- package/dist/xlsx/compare/compare.d.ts +12 -0
- package/dist/xlsx/compare/compare.d.ts.map +1 -0
- package/dist/xlsx/compare/conditional.d.ts +7 -0
- package/dist/xlsx/compare/conditional.d.ts.map +1 -0
- package/dist/xlsx/compare/format-key.d.ts +34 -0
- package/dist/xlsx/compare/format-key.d.ts.map +1 -0
- package/dist/xlsx/compare/group.d.ts +8 -0
- package/dist/xlsx/compare/group.d.ts.map +1 -0
- package/dist/xlsx/compare/index.d.ts +5 -0
- package/dist/xlsx/compare/index.d.ts.map +1 -0
- package/dist/xlsx/compare/rich-text.d.ts +7 -0
- package/dist/xlsx/compare/rich-text.d.ts.map +1 -0
- package/dist/xlsx/compare/sheets.d.ts +22 -0
- package/dist/xlsx/compare/sheets.d.ts.map +1 -0
- package/dist/xlsx/compare/structure.d.ts +11 -0
- package/dist/xlsx/compare/structure.d.ts.map +1 -0
- package/dist/xlsx/compare/text.d.ts +8 -0
- package/dist/xlsx/compare/text.d.ts.map +1 -0
- package/dist/xlsx/compare/types.d.ts +173 -0
- package/dist/xlsx/compare/types.d.ts.map +1 -0
- package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
- package/dist/xlsx/edit/clone-cell.d.ts +9 -0
- package/dist/xlsx/edit/clone-cell.d.ts.map +1 -0
- package/dist/xlsx/edit/history.d.ts +8 -3
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/timelines.d.ts.map +1 -1
- package/dist/xlsx/formula/change-areas.d.ts +9 -0
- package/dist/xlsx/formula/change-areas.d.ts.map +1 -0
- package/dist/xlsx/formula/engine-prepare.d.ts +8 -0
- package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -1
- package/dist/xlsx/formula/engine.d.ts.map +1 -1
- package/dist/xlsx/formula/spill.d.ts +5 -1
- package/dist/xlsx/formula/spill.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +2461 -1192
- package/dist/xlsx/index.d.ts +1 -0
- package/dist/xlsx/index.d.ts.map +1 -1
- package/dist/xlsx/index.mjs +2454 -1193
- package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
- package/dist/xlsx/layout/navigate.d.ts.map +1 -1
- package/dist/xlsx/layout/style-view.d.ts +5 -0
- package/dist/xlsx/layout/style-view.d.ts.map +1 -1
- package/dist/xlsx/load/csv-dates.d.ts +22 -0
- package/dist/xlsx/load/csv-dates.d.ts.map +1 -0
- package/dist/xlsx/load/csv-import.d.ts +64 -0
- package/dist/xlsx/load/csv-import.d.ts.map +1 -0
- package/dist/xlsx/load/csv-separators.d.ts +13 -0
- package/dist/xlsx/load/csv-separators.d.ts.map +1 -0
- package/dist/xlsx/load/csv-traits.d.ts +20 -0
- package/dist/xlsx/load/csv-traits.d.ts.map +1 -0
- package/dist/xlsx/load/csv.d.ts +8 -4
- package/dist/xlsx/load/csv.d.ts.map +1 -1
- package/dist/xlsx/load/detect.d.ts +13 -0
- package/dist/xlsx/load/detect.d.ts.map +1 -1
- package/dist/xlsx/load/errors.d.ts +1 -0
- package/dist/xlsx/load/errors.d.ts.map +1 -1
- package/dist/xlsx/load/index.cjs +537 -91
- package/dist/xlsx/load/index.d.ts +3 -1
- package/dist/xlsx/load/index.d.ts.map +1 -1
- package/dist/xlsx/load/index.mjs +536 -92
- package/dist/xlsx/numfmt/input-date.d.ts +2 -0
- package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
- package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
- package/dist/xlsx/pivot/groups.d.ts.map +1 -1
- package/dist/xlsx/read/index.d.ts +2 -1
- package/dist/xlsx/read/index.d.ts.map +1 -1
- package/dist/xlsx/read/limits.d.ts +50 -0
- package/dist/xlsx/read/limits.d.ts.map +1 -0
- package/dist/xlsx/read/load.d.ts +11 -1
- package/dist/xlsx/read/load.d.ts.map +1 -1
- package/dist/xlsx/read/package.d.ts +5 -23
- package/dist/xlsx/read/package.d.ts.map +1 -1
- package/dist/xlsx/read/shared-strings.d.ts +2 -2
- package/dist/xlsx/read/shared-strings.d.ts.map +1 -1
- package/dist/xlsx/read/worksheet.d.ts +2 -0
- package/dist/xlsx/read/worksheet.d.ts.map +1 -1
- package/dist/xlsx/stable-key.d.ts +3 -0
- package/dist/xlsx/stable-key.d.ts.map +1 -0
- package/dist/xlsx/styles.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +662 -372
- package/dist/xlsx/ui/index.mjs +662 -372
- package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
- package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
- package/dist/xml/index.cjs +32 -3
- package/dist/xml/index.mjs +32 -4
- package/dist/xml/xml.d.ts +11 -1
- package/dist/xml/xml.d.ts.map +1 -1
- package/package.json +6 -1
- package/dist/PptxHandler-SITN3K3F.mjs +0 -4
package/dist/visio/index.mjs
CHANGED
|
@@ -74,6 +74,19 @@ var DEFAULT_XML_LIMITS = {
|
|
|
74
74
|
maxDepth: 512,
|
|
75
75
|
maxNodes: 5e6
|
|
76
76
|
};
|
|
77
|
+
var XmlLimitError = class extends Error {
|
|
78
|
+
code = "xml-limit";
|
|
79
|
+
/** The limit that was exceeded. */
|
|
80
|
+
limit;
|
|
81
|
+
/** Its value: the largest depth or element count allowed. */
|
|
82
|
+
maximum;
|
|
83
|
+
constructor(message, limit3, maximum) {
|
|
84
|
+
super(message);
|
|
85
|
+
this.name = "XmlLimitError";
|
|
86
|
+
this.limit = limit3;
|
|
87
|
+
this.maximum = maximum;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
77
90
|
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
78
91
|
var MARKUP_SKIPS = [
|
|
79
92
|
["<!--", "-->"],
|
|
@@ -107,11 +120,22 @@ function checkXmlLimits(xml, label, limits = {}) {
|
|
|
107
120
|
continue;
|
|
108
121
|
}
|
|
109
122
|
nodes++;
|
|
110
|
-
if (nodes > maxNodes)
|
|
123
|
+
if (nodes > maxNodes)
|
|
124
|
+
throw new XmlLimitError(
|
|
125
|
+
`${label} XML exceeds the limit of ${maxNodes} elements`,
|
|
126
|
+
"maxNodes",
|
|
127
|
+
maxNodes
|
|
128
|
+
);
|
|
111
129
|
if (!selfClosing && ++depth > maxDepth)
|
|
112
|
-
throw new
|
|
130
|
+
throw new XmlLimitError(
|
|
131
|
+
`${label} XML exceeds the nesting depth limit of ${maxDepth}`,
|
|
132
|
+
"maxDepth",
|
|
133
|
+
maxDepth
|
|
134
|
+
);
|
|
113
135
|
}
|
|
114
136
|
}
|
|
137
|
+
var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
|
|
138
|
+
var crlfDeclarations = /* @__PURE__ */ new WeakSet();
|
|
115
139
|
function parseXml(xml, options2 = {}) {
|
|
116
140
|
const label = options2.label ?? "OOXML";
|
|
117
141
|
if (/<!DOCTYPE|<!ENTITY/i.test(xml))
|
|
@@ -133,9 +157,13 @@ function parseXml(xml, options2 = {}) {
|
|
|
133
157
|
}
|
|
134
158
|
if (parseError || !parsed.documentElement)
|
|
135
159
|
throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
|
|
160
|
+
if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
|
|
136
161
|
return parsed;
|
|
137
162
|
}
|
|
138
|
-
var buildXml = (node3) =>
|
|
163
|
+
var buildXml = (node3) => {
|
|
164
|
+
const xml = new XMLSerializer().serializeToString(node3);
|
|
165
|
+
return crlfDeclarations.has(node3) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
|
|
166
|
+
};
|
|
139
167
|
var isElement = (node3) => node3.nodeType === 1;
|
|
140
168
|
var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
141
169
|
function named(element2, local, ns, lenient = true) {
|
|
@@ -7684,9 +7712,9 @@ function createWorksheet(name3, sheetId5) {
|
|
|
7684
7712
|
};
|
|
7685
7713
|
}
|
|
7686
7714
|
|
|
7687
|
-
// xlsx/
|
|
7688
|
-
function
|
|
7689
|
-
return JSON.stringify(sortKeys(
|
|
7715
|
+
// xlsx/stable-key.ts
|
|
7716
|
+
function stableKey(value3) {
|
|
7717
|
+
return JSON.stringify(sortKeys(value3));
|
|
7690
7718
|
}
|
|
7691
7719
|
function sortKeys(value3) {
|
|
7692
7720
|
if (Array.isArray(value3)) return value3.map(sortKeys);
|
|
@@ -7700,6 +7728,11 @@ function sortKeys(value3) {
|
|
|
7700
7728
|
}
|
|
7701
7729
|
return value3;
|
|
7702
7730
|
}
|
|
7731
|
+
|
|
7732
|
+
// xlsx/styles.ts
|
|
7733
|
+
function styleKey(style2) {
|
|
7734
|
+
return stableKey(style2);
|
|
7735
|
+
}
|
|
7703
7736
|
function styleAt(workbook, styleId) {
|
|
7704
7737
|
const style2 = workbook.styles[styleId ?? 0] ?? workbook.styles[0];
|
|
7705
7738
|
if (!style2) throw new Error("Workbook has no default cell style");
|
|
@@ -10306,10 +10339,13 @@ var DEFAULT_ZIP_LIMITS = {
|
|
|
10306
10339
|
var ZipLimitError = class extends Error {
|
|
10307
10340
|
code = "ZIP_BOMB";
|
|
10308
10341
|
limit;
|
|
10342
|
+
/** The check that failed (absent when the error was built without one). */
|
|
10343
|
+
kind;
|
|
10309
10344
|
constructor(message, details) {
|
|
10310
10345
|
super(message);
|
|
10311
10346
|
this.name = "ZipLimitError";
|
|
10312
10347
|
this.limit = details.limit;
|
|
10348
|
+
this.kind = details.kind;
|
|
10313
10349
|
}
|
|
10314
10350
|
};
|
|
10315
10351
|
var mib = (bytes) => Math.round(bytes / 1048576);
|
|
@@ -10332,7 +10368,7 @@ function resolveLimits(limits) {
|
|
|
10332
10368
|
maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
|
|
10333
10369
|
maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
|
|
10334
10370
|
label: limits.label ?? "ZIP",
|
|
10335
|
-
fail: (message, limit3) => create2 ? create2(message, { limit: limit3 }) : new ZipLimitError(message, { limit: limit3 })
|
|
10371
|
+
fail: (message, limit3, kind) => create2 ? create2(message, { limit: limit3, kind }) : new ZipLimitError(message, { limit: limit3, kind })
|
|
10336
10372
|
};
|
|
10337
10373
|
}
|
|
10338
10374
|
function inflateEntryGuarded(entry3, alreadyRead, limits) {
|
|
@@ -10355,13 +10391,18 @@ function inflateEntryGuarded(entry3, alreadyRead, limits) {
|
|
|
10355
10391
|
size3 += chunk.byteLength;
|
|
10356
10392
|
if (size3 > declared || size3 > r.maxEntryBytes)
|
|
10357
10393
|
return abort(
|
|
10358
|
-
r.fail(
|
|
10394
|
+
r.fail(
|
|
10395
|
+
`${r.label} part ${entry3.name} inflates past its declared size`,
|
|
10396
|
+
r.maxEntryBytes,
|
|
10397
|
+
size3 > declared ? "declaredSize" : "maxEntryBytes"
|
|
10398
|
+
)
|
|
10359
10399
|
);
|
|
10360
10400
|
if (alreadyRead + size3 > r.maxTotalBytes)
|
|
10361
10401
|
return abort(
|
|
10362
10402
|
r.fail(
|
|
10363
10403
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
10364
|
-
r.maxTotalBytes
|
|
10404
|
+
r.maxTotalBytes,
|
|
10405
|
+
"maxTotalBytes"
|
|
10365
10406
|
)
|
|
10366
10407
|
);
|
|
10367
10408
|
chunks.push(chunk);
|
|
@@ -10394,26 +10435,29 @@ function guardZip(zip, limits = {}) {
|
|
|
10394
10435
|
if (entries.length > r.maxEntries)
|
|
10395
10436
|
throw r.fail(
|
|
10396
10437
|
`${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
|
|
10397
|
-
r.maxEntries
|
|
10438
|
+
r.maxEntries,
|
|
10439
|
+
"maxEntries"
|
|
10398
10440
|
);
|
|
10399
10441
|
let declared = 0;
|
|
10400
10442
|
for (const entry3 of entries) {
|
|
10401
10443
|
const original = entry3.unsafeOriginalName;
|
|
10402
10444
|
if (!isSafePartName(entry3.name) || original !== void 0 && !isSafePartName(original))
|
|
10403
|
-
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
|
|
10445
|
+
throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
|
|
10404
10446
|
if (entry3.dir) continue;
|
|
10405
10447
|
const size3 = declaredEntrySize(entry3);
|
|
10406
10448
|
if (size3 > r.maxEntryBytes)
|
|
10407
10449
|
throw r.fail(
|
|
10408
10450
|
`${r.label} part ${entry3.name} exceeds the uncompressed part size limit`,
|
|
10409
|
-
r.maxEntryBytes
|
|
10451
|
+
r.maxEntryBytes,
|
|
10452
|
+
"maxEntryBytes"
|
|
10410
10453
|
);
|
|
10411
10454
|
declared += size3;
|
|
10412
10455
|
}
|
|
10413
10456
|
if (declared > r.maxTotalBytes)
|
|
10414
10457
|
throw r.fail(
|
|
10415
10458
|
`${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
|
|
10416
|
-
r.maxTotalBytes
|
|
10459
|
+
r.maxTotalBytes,
|
|
10460
|
+
"maxTotalBytes"
|
|
10417
10461
|
);
|
|
10418
10462
|
const produced = /* @__PURE__ */ new Map();
|
|
10419
10463
|
let total = 0;
|
|
@@ -12282,10 +12326,69 @@ function mergeComments(legacy, threaded) {
|
|
|
12282
12326
|
(a2, b) => a2.address.row - b.address.row || a2.address.col - b.address.col
|
|
12283
12327
|
);
|
|
12284
12328
|
}
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
var
|
|
12288
|
-
|
|
12329
|
+
|
|
12330
|
+
// xlsx/read/limits.ts
|
|
12331
|
+
var DEFAULT_XLSX_LOAD_LIMITS = {
|
|
12332
|
+
maxInputBytes: 50 * 1024 * 1024,
|
|
12333
|
+
maxParts: 1e4,
|
|
12334
|
+
maxPartBytes: 200 * 1024 * 1024,
|
|
12335
|
+
maxTotalBytes: 300 * 1024 * 1024,
|
|
12336
|
+
maxXmlElements: 5e6
|
|
12337
|
+
};
|
|
12338
|
+
var WorkbookTooLargeError = class extends Error {
|
|
12339
|
+
code = "workbook-too-large";
|
|
12340
|
+
/** The limit that was exceeded, as named in {@link XlsxLoadLimits}. */
|
|
12341
|
+
limit;
|
|
12342
|
+
/** The value of that limit when the load failed. */
|
|
12343
|
+
maximum;
|
|
12344
|
+
constructor(message, limit3, maximum, options2) {
|
|
12345
|
+
super(message, options2);
|
|
12346
|
+
this.name = "WorkbookTooLargeError";
|
|
12347
|
+
this.limit = limit3;
|
|
12348
|
+
this.maximum = maximum;
|
|
12349
|
+
}
|
|
12350
|
+
};
|
|
12351
|
+
function resolveLoadLimits(limits = {}) {
|
|
12352
|
+
const resolved = { ...DEFAULT_XLSX_LOAD_LIMITS };
|
|
12353
|
+
for (const name3 of Object.keys(resolved)) {
|
|
12354
|
+
const value3 = limits[name3];
|
|
12355
|
+
if (value3 === void 0) continue;
|
|
12356
|
+
if (!Number.isFinite(value3) || value3 <= 0)
|
|
12357
|
+
throw new RangeError(`limits.${name3} must be a positive finite number`);
|
|
12358
|
+
resolved[name3] = value3;
|
|
12359
|
+
}
|
|
12360
|
+
return resolved;
|
|
12361
|
+
}
|
|
12362
|
+
var ZIP_LIMIT_NAMES = {
|
|
12363
|
+
maxInputBytes: "maxInputBytes",
|
|
12364
|
+
maxEntries: "maxParts",
|
|
12365
|
+
maxEntryBytes: "maxPartBytes",
|
|
12366
|
+
maxTotalBytes: "maxTotalBytes"
|
|
12367
|
+
};
|
|
12368
|
+
function zipLimitsFor(limits) {
|
|
12369
|
+
return {
|
|
12370
|
+
maxInputBytes: limits.maxInputBytes,
|
|
12371
|
+
maxEntries: limits.maxParts,
|
|
12372
|
+
maxEntryBytes: limits.maxPartBytes,
|
|
12373
|
+
maxTotalBytes: limits.maxTotalBytes,
|
|
12374
|
+
label: "XLSX",
|
|
12375
|
+
createError: (message, { limit: limit3, kind }) => {
|
|
12376
|
+
const name3 = ZIP_LIMIT_NAMES[kind];
|
|
12377
|
+
return name3 ? new WorkbookTooLargeError(message, name3, limit3) : new ZipLimitError(message, { limit: limit3, kind });
|
|
12378
|
+
}
|
|
12379
|
+
};
|
|
12380
|
+
}
|
|
12381
|
+
function parseDataXml(xml, label, maxXmlElements = DEFAULT_XLSX_LOAD_LIMITS.maxXmlElements) {
|
|
12382
|
+
try {
|
|
12383
|
+
return parseXml(xml, { label, limits: { maxNodes: maxXmlElements } });
|
|
12384
|
+
} catch (error) {
|
|
12385
|
+
if (error instanceof XmlLimitError && error.limit === "maxNodes")
|
|
12386
|
+
throw new WorkbookTooLargeError(error.message, "maxXmlElements", error.maximum, {
|
|
12387
|
+
cause: error
|
|
12388
|
+
});
|
|
12389
|
+
throw error;
|
|
12390
|
+
}
|
|
12391
|
+
}
|
|
12289
12392
|
var CONTENT_TYPES = {
|
|
12290
12393
|
workbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
|
|
12291
12394
|
workbookMacro: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
|
|
@@ -12356,16 +12459,15 @@ var SourceIndex = class {
|
|
|
12356
12459
|
};
|
|
12357
12460
|
var mib2 = (bytes) => Math.round(bytes / 1048576);
|
|
12358
12461
|
async function readZipParts(input, limits = {}) {
|
|
12359
|
-
const
|
|
12360
|
-
const
|
|
12361
|
-
maxEntries: limits.maxParts ?? MAX_PARTS,
|
|
12362
|
-
maxEntryBytes: limits.maxPartBytes ?? MAX_PART_BYTES,
|
|
12363
|
-
maxTotalBytes: limits.maxTotalBytes ?? MAX_UNCOMPRESSED_BYTES,
|
|
12364
|
-
label: "XLSX"
|
|
12365
|
-
};
|
|
12462
|
+
const resolved = resolveLoadLimits(limits);
|
|
12463
|
+
const maxInput = resolved.maxInputBytes;
|
|
12366
12464
|
const bytes = input instanceof Uint8Array ? input : new Uint8Array(input);
|
|
12367
12465
|
if (bytes.byteLength > maxInput)
|
|
12368
|
-
throw new
|
|
12466
|
+
throw new WorkbookTooLargeError(
|
|
12467
|
+
`XLSX package exceeds the ${mib2(maxInput)} MiB compressed input limit`,
|
|
12468
|
+
"maxInputBytes",
|
|
12469
|
+
maxInput
|
|
12470
|
+
);
|
|
12369
12471
|
let loaded;
|
|
12370
12472
|
try {
|
|
12371
12473
|
loaded = await JSZip.loadAsync(bytes);
|
|
@@ -12375,7 +12477,7 @@ async function readZipParts(input, limits = {}) {
|
|
|
12375
12477
|
{ cause: error }
|
|
12376
12478
|
);
|
|
12377
12479
|
}
|
|
12378
|
-
const zip = guardZip(loaded,
|
|
12480
|
+
const zip = guardZip(loaded, zipLimitsFor(resolved));
|
|
12379
12481
|
const parts = /* @__PURE__ */ new Map();
|
|
12380
12482
|
for (const entry3 of Object.values(zip.files)) {
|
|
12381
12483
|
if (entry3.dir) continue;
|
|
@@ -12582,9 +12684,9 @@ function parseRichString(element2, palette) {
|
|
|
12582
12684
|
const text6 = parsed.map((run) => run.text).join("");
|
|
12583
12685
|
return { text: text6, runs: parsed };
|
|
12584
12686
|
}
|
|
12585
|
-
function parseSharedStrings(xml, palette) {
|
|
12687
|
+
function parseSharedStrings(xml, palette, maxXmlElements) {
|
|
12586
12688
|
if (!xml) return [];
|
|
12587
|
-
const root2 =
|
|
12689
|
+
const root2 = parseDataXml(xml, "XLSX shared strings", maxXmlElements).documentElement;
|
|
12588
12690
|
return xChildren(root2, "si").map((si) => parseRichString(si, palette));
|
|
12589
12691
|
}
|
|
12590
12692
|
|
|
@@ -17418,7 +17520,11 @@ function parseWorksheet(ctx, partName, name3, sheetId5) {
|
|
|
17418
17520
|
return sheet;
|
|
17419
17521
|
}
|
|
17420
17522
|
const split = splitSheetData(xml);
|
|
17421
|
-
const root2 =
|
|
17523
|
+
const root2 = parseDataXml(
|
|
17524
|
+
split?.xml ?? xml,
|
|
17525
|
+
"XLSX worksheet",
|
|
17526
|
+
ctx.maxXmlElements
|
|
17527
|
+
).documentElement;
|
|
17422
17528
|
const byName = /* @__PURE__ */ new Map();
|
|
17423
17529
|
const cfBlocks = [];
|
|
17424
17530
|
for (const node3 of elements(root2)) {
|
|
@@ -17492,8 +17598,9 @@ function liftPrintAreas(workbook) {
|
|
|
17492
17598
|
return false;
|
|
17493
17599
|
});
|
|
17494
17600
|
}
|
|
17495
|
-
async function loadXlsx(input) {
|
|
17496
|
-
const
|
|
17601
|
+
async function loadXlsx(input, options2 = {}) {
|
|
17602
|
+
const limits = resolveLoadLimits(options2.limits);
|
|
17603
|
+
const parts = await readZipParts(input, limits);
|
|
17497
17604
|
const source = new SourceIndex(parts);
|
|
17498
17605
|
const workbookPart = source.workbookPart();
|
|
17499
17606
|
if (!workbookPart) throw new Error("XLSX package has no workbook part (xl/workbook.xml)");
|
|
@@ -17514,7 +17621,8 @@ async function loadXlsx(input) {
|
|
|
17514
17621
|
source,
|
|
17515
17622
|
sharedStrings: parseSharedStrings(
|
|
17516
17623
|
stringsPart ? source.text(stringsPart) : void 0,
|
|
17517
|
-
styles.palette
|
|
17624
|
+
styles.palette,
|
|
17625
|
+
limits.maxXmlElements
|
|
17518
17626
|
),
|
|
17519
17627
|
xfMap: styles.xfMap,
|
|
17520
17628
|
date1904: book.date1904,
|
|
@@ -17522,7 +17630,8 @@ async function loadXlsx(input) {
|
|
|
17522
17630
|
dxfs: styles.dxfs,
|
|
17523
17631
|
persons: parsePersons(personsPart ? source.text(personsPart) : void 0),
|
|
17524
17632
|
dynamicCells: parseDynamicArrayMetadata(metadataPart ? source.text(metadataPart) : void 0),
|
|
17525
|
-
warn
|
|
17633
|
+
warn,
|
|
17634
|
+
maxXmlElements: limits.maxXmlElements
|
|
17526
17635
|
};
|
|
17527
17636
|
const rels = source.rels(workbookPart);
|
|
17528
17637
|
const sheets = book.sheets.map((entry3) => {
|
|
@@ -18005,14 +18114,24 @@ function formatAxisValue(value3, percent = false) {
|
|
|
18005
18114
|
return `${v < 0 ? "-" : ""}${grouped}${frac ? `.${frac}` : ""}`;
|
|
18006
18115
|
}
|
|
18007
18116
|
|
|
18117
|
+
// chart/extent.ts
|
|
18118
|
+
function extentOf(values) {
|
|
18119
|
+
let min = Infinity;
|
|
18120
|
+
let max = -Infinity;
|
|
18121
|
+
for (const value3 of values) {
|
|
18122
|
+
min = Math.min(min, value3);
|
|
18123
|
+
max = Math.max(max, value3);
|
|
18124
|
+
}
|
|
18125
|
+
return { min, max };
|
|
18126
|
+
}
|
|
18127
|
+
|
|
18008
18128
|
// chart/axis-range.ts
|
|
18009
18129
|
function computeLogValueRange(series, logBase) {
|
|
18010
18130
|
const allValues = series.flatMap((item) => item.values).filter((value3) => value3 !== null && Number.isFinite(value3) && value3 > 0);
|
|
18011
18131
|
if (allValues.length === 0) {
|
|
18012
18132
|
return { min: 1, max: logBase, span: 1, logScale: true, logBase };
|
|
18013
18133
|
}
|
|
18014
|
-
const dataMin =
|
|
18015
|
-
const dataMax = Math.max(...allValues);
|
|
18134
|
+
const { min: dataMin, max: dataMax } = extentOf(allValues);
|
|
18016
18135
|
const logMin = Math.floor(Math.log(dataMin) / Math.log(logBase));
|
|
18017
18136
|
const logMax = Math.ceil(Math.log(dataMax) / Math.log(logBase));
|
|
18018
18137
|
const min = logBase ** logMin;
|
|
@@ -18740,8 +18859,7 @@ function computeHistogramBins(values, options2, format5 = String) {
|
|
|
18740
18859
|
});
|
|
18741
18860
|
}
|
|
18742
18861
|
if (regular.length > 0) {
|
|
18743
|
-
const min =
|
|
18744
|
-
const max = Math.max(...regular.map((item) => item.value));
|
|
18862
|
+
const { min, max } = extentOf(regular.map((item) => item.value));
|
|
18745
18863
|
const requestedSize = options2.binSize && options2.binSize > 0 ? options2.binSize : void 0;
|
|
18746
18864
|
const requestedCount = options2.binCount && options2.binCount > 0 ? options2.binCount : void 0;
|
|
18747
18865
|
const start = requestedSize ? Math.floor(min / requestedSize) * requestedSize : min;
|
|
@@ -18869,8 +18987,9 @@ function waterfallView(chart, model2, ctx) {
|
|
|
18869
18987
|
colors: { increase: role(0), decrease: role(1), total: role(2) }
|
|
18870
18988
|
};
|
|
18871
18989
|
const ends = steps.flatMap((step2) => [step2.startValue, step2.endValue]);
|
|
18990
|
+
const range2 = extentOf(ends);
|
|
18872
18991
|
model2.valueAxis = {
|
|
18873
|
-
...ends.length ? niceScale(
|
|
18992
|
+
...ends.length ? niceScale(range2.min, range2.max) : niceScale(0, 1),
|
|
18874
18993
|
percent: false
|
|
18875
18994
|
};
|
|
18876
18995
|
const labels = model2.categories;
|
|
@@ -18986,7 +19105,8 @@ function chartSummaryView(chart, theme2, options2 = {}) {
|
|
|
18986
19105
|
s.xValues = s.values.map((_, k) => numeric5 ? toNumber(cats[k] ?? null) : k + 1);
|
|
18987
19106
|
});
|
|
18988
19107
|
const xs = series.flatMap((s) => s.xValues ?? []).filter((x) => x !== null);
|
|
18989
|
-
|
|
19108
|
+
const range2 = extentOf(xs);
|
|
19109
|
+
model2.xAxis = xs.length ? niceScale(range2.min, range2.max) : niceScale(0, 1);
|
|
18990
19110
|
}
|
|
18991
19111
|
if (type === "stock") model2.stock = stockView(chart.stock, ctx);
|
|
18992
19112
|
if (type === "bubble") bubbleView(chart, model2, ctx.evaluateRef);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CollabSession, CollaborationOptions } from '../../collab/index.js';
|
|
2
|
+
import type { VisioPresence } from './collab-presence.js';
|
|
3
|
+
/** Write-back settings of {@link VisioCollaborationOptions}. */
|
|
4
|
+
export interface VisioWriteBackOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Called with the saved VSDX bytes, debounced, after local and remote changes, only in the
|
|
7
|
+
* window whose `user.role` is `owner`. Returning is not a durable-storage acknowledgement: the
|
|
8
|
+
* viewer cannot tell whether the host stored the bytes, and a pending write-back is flushed
|
|
9
|
+
* once when the viewer leaves the room, not retried.
|
|
10
|
+
*/
|
|
11
|
+
onWriteBack?: (bytes: Uint8Array) => void;
|
|
12
|
+
/** Quiet time after the last change before `onWriteBack` fires. Default 5000. */
|
|
13
|
+
writeBackDebounceMs?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The options of `<visio-viewer>.collaboration`. A host-owned `session` should be created with
|
|
17
|
+
* `sanitizeVisioPresence` as its `sanitizePayload` (and `VISIO_INITIAL_PRESENCE` as
|
|
18
|
+
* `initialPresence`); a session made without them is accepted, but its peers carry no cursors or
|
|
19
|
+
* selections.
|
|
20
|
+
*/
|
|
21
|
+
export type VisioCollaborationOptions = Omit<CollaborationOptions<VisioPresence>, 'session'> & VisioWriteBackOptions & {
|
|
22
|
+
session?: CollabSession<VisioPresence> | CollabSession;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=collab-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collab-options.d.ts","sourceRoot":"","sources":["../../../visio/ui/collab-options.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,GAC3F,qBAAqB,GAAG;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;CACvD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { VisioMatrix, VisioPage } from '../model.js';
|
|
2
|
+
/** The presence payload of one Visio collaborator. */
|
|
3
|
+
export interface VisioPresence {
|
|
4
|
+
/** Page id of the page being viewed; an empty string while no page is open. */
|
|
5
|
+
page: string;
|
|
6
|
+
/** Pointer in the page's SVG drawing units (inches, y down); absent while outside the page. */
|
|
7
|
+
x?: number | undefined;
|
|
8
|
+
y?: number | undefined;
|
|
9
|
+
/** Shape ids selected on that page (bounded). */
|
|
10
|
+
selection?: string[] | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare const VISIO_PRESENCE_MAX_SELECTION = 64;
|
|
13
|
+
export declare const VISIO_PRESENCE_MAX_ID = 128;
|
|
14
|
+
/** Drawing coordinates beyond this are corrupt, not a drawing (a Visio page is at most ~600 in). */
|
|
15
|
+
export declare const VISIO_PRESENCE_MAX_COORDINATE = 100000;
|
|
16
|
+
/**
|
|
17
|
+
* Validate a raw awareness `presence` entry. Returns `null` (hide the peer's location) when it
|
|
18
|
+
* names no usable page; wrong-typed pointer or selection fields are dropped, lists are bounded.
|
|
19
|
+
*/
|
|
20
|
+
export declare function sanitizeVisioPresence(raw: Record<string, unknown>): VisioPresence | null;
|
|
21
|
+
/** The presence a window starts with, before it has a page or a pointer. */
|
|
22
|
+
export declare const VISIO_INITIAL_PRESENCE: VisioPresence;
|
|
23
|
+
/** A shape's frame in page drawing space: `transform` maps its local y-up box to the page. */
|
|
24
|
+
export interface VisioShapeFrame {
|
|
25
|
+
transform: VisioMatrix;
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
}
|
|
29
|
+
/** The frame of shape `id` on `page` (parents composed in), or undefined when it is not there. */
|
|
30
|
+
export declare function visioShapeFrame(page: VisioPage, id: string): VisioShapeFrame | undefined;
|
|
31
|
+
//# sourceMappingURL=collab-presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collab-presence.d.ts","sourceRoot":"","sources":["../../../visio/ui/collab-presence.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,UAAU,CAAC;AAEnE,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACjC;AAED,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,oGAAoG;AACpG,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAUrD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAqBxF;AAED,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,EAAE,aAA2C,CAAC;AAEjF,8FAA8F;AAC9F,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAaD,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAkBxF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { RibbonAddInCommandDetail, RibbonAddInTab } from '../../ribbon/index.js';
|
|
2
|
+
import type { CollaborationState } from '../../collab/index.js';
|
|
3
|
+
import type { VisioCollaborationOptions } from './collab-options.js';
|
|
2
4
|
import type { VisioDocument } from '../index.js';
|
|
3
5
|
export interface ViewerProperties {
|
|
4
6
|
canEdit?: boolean;
|
|
@@ -8,6 +10,8 @@ export interface ViewerProperties {
|
|
|
8
10
|
showToolbar: boolean;
|
|
9
11
|
/** Tabs the host adds after Help, as an Office add-in does. */
|
|
10
12
|
ribbonAddIns: readonly RibbonAddInTab[];
|
|
13
|
+
/** Shares the open drawing in a room while set; null leaves it (the shared embedding contract). */
|
|
14
|
+
collaboration: VisioCollaborationOptions | null;
|
|
11
15
|
}
|
|
12
16
|
/** A page-scoped shape identity. Omitted pageId means the currently displayed page. */
|
|
13
17
|
export interface VisioShapeSelection {
|
|
@@ -20,7 +24,7 @@ export interface ViewerEvents {
|
|
|
20
24
|
'document-change': {
|
|
21
25
|
document: VisioDocument;
|
|
22
26
|
dirty: boolean;
|
|
23
|
-
kind: 'edit' | 'undo' | 'redo' | 'remote';
|
|
27
|
+
kind: 'edit' | 'undo' | 'redo' | 'remote' | 'save';
|
|
24
28
|
};
|
|
25
29
|
'document-error': Error;
|
|
26
30
|
'page-change': number;
|
|
@@ -30,12 +34,14 @@ export interface ViewerEvents {
|
|
|
30
34
|
'selection-change': readonly VisioShapeSelection[];
|
|
31
35
|
/** A command of a host tab (`ribbonAddIns`) was chosen. */
|
|
32
36
|
'office-ribbon-add-in': RibbonAddInCommandDetail;
|
|
37
|
+
/** Sharing started, stopped or its status, sync or people changed. */
|
|
38
|
+
'collaboration-change': CollaborationState;
|
|
33
39
|
}
|
|
34
40
|
export type ViewerCallbacks = {
|
|
35
41
|
[K in keyof ViewerEvents]?: (detail: ViewerEvents[K]) => void;
|
|
36
42
|
};
|
|
37
|
-
export declare const propertyKeys: readonly ["canEdit", "document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns"];
|
|
38
|
-
export declare const eventKeys: readonly ["document-load", "document-change", "document-error", "page-change", "zoom-change", "shape-select", "selection-change", "office-ribbon-add-in"];
|
|
43
|
+
export declare const propertyKeys: readonly ["canEdit", "document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns", "collaboration"];
|
|
44
|
+
export declare const eventKeys: readonly ["document-load", "document-change", "document-error", "page-change", "zoom-change", "shape-select", "selection-change", "office-ribbon-add-in", "collaboration-change"];
|
|
39
45
|
export type VsdxSource = ArrayBuffer | Uint8Array | Blob;
|
|
40
46
|
export interface ViewerOptions extends Partial<ViewerProperties> {
|
|
41
47
|
events?: ViewerCallbacks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC,mGAAmG;IACnG,aAAa,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAChD;AACD,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,iBAAiB,EAAE;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;KACnD,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,iFAAiF;IACjF,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,sBAAsB,EAAE,wBAAwB,CAAC;IACjD,sEAAsE;IACtE,sBAAsB,EAAE,kBAAkB,CAAC;CAC3C;AACD,MAAM,MAAM,eAAe,GAAG;KAC5B,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;CAC7D,CAAC;AACF,eAAO,MAAM,YAAY,uGAQ+B,CAAC;AACzD,eAAO,MAAM,SAAS,mLAU8B,CAAC;AASrD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;AACzD,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC/D,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB"}
|
|
@@ -32,8 +32,10 @@ export interface SourceSnapshot {
|
|
|
32
32
|
/** Private controller-owned bytes; transient worker copies and models are separate from this budget. */
|
|
33
33
|
export declare class DocumentHistory {
|
|
34
34
|
#private;
|
|
35
|
-
readonly original: SourceSnapshot;
|
|
36
35
|
constructor(bytes: Uint8Array, maxEntries?: number);
|
|
36
|
+
get original(): SourceSnapshot;
|
|
37
|
+
/** Declare the current snapshot saved: it becomes the reference `dirty` is measured against. */
|
|
38
|
+
markClean(): void;
|
|
37
39
|
get current(): SourceSnapshot;
|
|
38
40
|
get undoTarget(): SourceSnapshot | undefined;
|
|
39
41
|
get redoTarget(): SourceSnapshot | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-history.d.ts","sourceRoot":"","sources":["../../../visio/ui/document-history.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AACD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,eAAO,MAAM,gBAAgB,EAAE,eAS7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;EAAgE,CAAC;AACjG,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAIpD,CAAC;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,wGAAwG;AACxG,qBAAa,eAAe;;
|
|
1
|
+
{"version":3,"file":"document-history.d.ts","sourceRoot":"","sources":["../../../visio/ui/document-history.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AACD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,eAAO,MAAM,gBAAgB,EAAE,eAS7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;EAAgE,CAAC;AACjG,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAIpD,CAAC;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,wGAAwG;AACxG,qBAAa,eAAe;;IAO3B,YAAY,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,EAIjD;IACD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IACD,gGAAgG;IAChG,SAAS,IAAI,IAAI,CAEhB;IACD,IAAI,OAAO,IAAI,cAAc,CAE5B;IACD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IACD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IACD,IAAI,KAAK,IAAI,eAAe,CAU3B;IACD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAWtE;IACD,iGAAiG;IACjG,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,EAU7B;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAeD,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAKjC;IACD,MAAM,IAAI,gBAAgB,CAMzB;CACD"}
|