office-viewer 0.1.0 → 0.1.3
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 +7 -2
- package/esm/OpenXML.d.ts +19 -0
- package/esm/OpenXML.js +43 -2
- package/esm/Word.d.ts +132 -15
- package/esm/Word.js +233 -54
- package/esm/openxml/ContentType.js +20 -6
- package/esm/openxml/Settings.d.ts +10 -0
- package/esm/openxml/Settings.js +93 -0
- package/esm/openxml/Style.d.ts +1 -1
- package/esm/openxml/Style.js +12 -12
- package/esm/openxml/Theme.js +30 -6
- package/esm/openxml/Types.d.ts +179 -2472
- package/esm/openxml/drawing/Blip.d.ts +7 -0
- package/esm/openxml/{word/drawing → drawing}/Blip.js +2 -1
- package/{lib/openxml/word → esm/openxml}/drawing/BlipFill.d.ts +1 -1
- package/esm/openxml/{word/drawing → drawing}/BlipFill.js +1 -1
- package/esm/openxml/drawing/CustomGeom.d.ts +9 -0
- package/esm/openxml/drawing/CustomGeom.js +17 -0
- package/esm/openxml/drawing/Drawing.d.ts +35 -0
- package/esm/openxml/drawing/Drawing.js +169 -0
- package/esm/openxml/drawing/Geom.d.ts +11 -0
- package/esm/openxml/drawing/Geom.js +34 -0
- package/esm/openxml/drawing/Path.d.ts +37 -0
- package/esm/openxml/drawing/Pic.d.ts +16 -0
- package/esm/openxml/drawing/Pic.js +26 -0
- package/esm/openxml/drawing/Shape.d.ts +20 -0
- package/esm/openxml/drawing/ShapeProperties.d.ts +22 -0
- package/esm/openxml/drawing/ShapeProperties.js +119 -0
- package/{lib/openxml/word → esm/openxml}/drawing/Transform.d.ts +2 -1
- package/esm/openxml/{word/drawing → drawing}/Transform.js +7 -3
- package/esm/openxml/drawing/diagram/Diagram.d.ts +7 -0
- package/esm/openxml/drawing/diagram/Diagram.js +24 -0
- package/esm/openxml/drawing/diagram/Sp.d.ts +2 -0
- package/esm/openxml/drawing/diagram/SpTree.d.ts +5 -0
- package/esm/openxml/drawing/presetShape.d.ts +3 -0
- package/esm/openxml/drawing/presetShape.js +38785 -0
- package/esm/openxml/drawing/svg/arcToA.d.ts +13 -0
- package/esm/openxml/drawing/svg/arcToA.js +88 -0
- package/esm/openxml/drawing/svg/formulas.d.ts +29 -0
- package/esm/openxml/drawing/svg/formulas.js +103 -0
- package/esm/openxml/drawing/svg/generateDefines.d.ts +12 -0
- package/esm/openxml/drawing/svg/generateDefines.js +144 -0
- package/esm/openxml/drawing/svg/presetVal.d.ts +43 -0
- package/esm/openxml/drawing/svg/presetVal.js +53 -0
- package/esm/openxml/drawing/svg/shapeToSVG.d.ts +9 -0
- package/esm/openxml/drawing/svg/shapeToSVG.js +151 -0
- package/esm/openxml/math/OMath.d.ts +5 -0
- package/esm/openxml/math/OMath.js +12 -0
- package/esm/openxml/math/convertOOML.d.ts +4 -0
- package/esm/openxml/math/convertOOML.js +13 -0
- package/esm/openxml/math/xsl.d.ts +4 -0
- package/esm/openxml/math/xsl.js +8 -0
- package/esm/openxml/word/Body.js +11 -7
- package/esm/openxml/word/Break.js +1 -3
- package/esm/openxml/word/Font.d.ts +16 -0
- package/esm/openxml/word/Font.js +78 -0
- package/esm/openxml/word/FontTable.d.ts +9 -0
- package/esm/openxml/word/FontTable.js +34 -0
- package/esm/openxml/word/Header.d.ts +11 -0
- package/esm/openxml/word/Header.js +54 -0
- package/esm/openxml/word/Hyperlink.d.ts +1 -0
- package/esm/openxml/word/Hyperlink.js +7 -3
- package/esm/openxml/word/InlineText.js +1 -1
- package/esm/openxml/word/NoBreakHyphen.d.ts +2 -0
- package/esm/openxml/word/NoBreakHyphen.js +7 -0
- package/esm/openxml/word/Note.d.ts +12 -0
- package/esm/openxml/word/Note.js +48 -0
- package/esm/openxml/word/Paragraph.d.ts +2 -2
- package/esm/openxml/word/Paragraph.js +10 -9
- package/esm/openxml/word/Pict.d.ts +1 -2
- package/esm/openxml/word/Pict.js +5 -3
- package/esm/openxml/word/Ruby.js +1 -1
- package/esm/openxml/word/Run.d.ts +7 -3
- package/esm/openxml/word/Run.js +28 -4
- package/esm/openxml/word/Section.d.ts +18 -5
- package/esm/openxml/word/Section.js +46 -2
- package/esm/openxml/word/Separator.d.ts +5 -0
- package/esm/openxml/word/Separator.js +10 -0
- package/esm/openxml/word/SoftHyphen.d.ts +5 -0
- package/esm/openxml/word/SoftHyphen.js +10 -0
- package/esm/openxml/word/Table.d.ts +4 -9
- package/esm/openxml/word/Table.js +0 -235
- package/esm/openxml/word/WDocument.d.ts +1 -2
- package/esm/openxml/word/WDocument.js +53 -7
- package/esm/openxml/word/numbering/AbstractNum.js +4 -2
- package/esm/openxml/word/numbering/Lvl.js +10 -4
- package/esm/openxml/word/numbering/Num.js +12 -4
- package/esm/openxml/word/numbering/NumberProperties.js +2 -2
- package/esm/openxml/word/numbering/Numbering.js +1 -1
- package/esm/openxml/word/table/Tc.d.ts +1 -22
- package/esm/openxml/word/table/Tc.js +1 -221
- package/esm/openxml/word/table/Tr.d.ts +0 -5
- package/esm/openxml/word/table/Tr.js +0 -97
- package/esm/openxml/word/wps/WPG.d.ts +5 -0
- package/esm/openxml/word/wps/WPS.d.ts +18 -0
- package/esm/openxml/word/wps/WPS.js +147 -0
- package/esm/openxml/word/wps/WPSStyle.d.ts +10 -0
- package/esm/openxml/word/wps/WPSStyle.js +42 -0
- package/esm/package/PackageParser.d.ts +1 -1
- package/esm/package/XMLPackageParser.d.ts +3 -3
- package/esm/package/ZipPackageParser.d.ts +1 -1
- package/esm/package/ZipPackageParser.js +7 -8
- package/esm/parse/Footnotes.d.ts +3 -0
- package/esm/parse/Footnotes.js +25 -0
- package/esm/parse/colorNameMap.d.ts +6 -0
- package/esm/parse/colorNameMap.js +201 -0
- package/esm/parse/jcToTextAlign.js +1 -0
- package/esm/parse/mergeSdt.d.ts +4 -0
- package/esm/parse/mergeSdt.js +57 -0
- package/esm/parse/modifyColor.d.ts +1 -0
- package/esm/parse/modifyColor.js +106 -0
- package/esm/parse/parseBorder.js +2 -21
- package/esm/parse/parseCellMargin.d.ts +2 -0
- package/esm/parse/parseCellMargin.js +38 -0
- package/esm/parse/parseChildColor.d.ts +5 -0
- package/esm/parse/parseChildColor.js +66 -0
- package/esm/parse/parseColor.d.ts +4 -0
- package/esm/parse/parseColor.js +41 -46
- package/esm/parse/parseEndnotes.d.ts +3 -0
- package/esm/parse/parseEndnotes.js +25 -0
- package/esm/parse/parseFont.js +1 -1
- package/esm/parse/parseInsideBorders.d.ts +9 -0
- package/esm/parse/parseInsideBorders.js +24 -0
- package/esm/parse/parsePr.d.ts +3 -0
- package/esm/parse/parsePr.js +108 -11
- package/esm/parse/parseRelationship.js +1 -1
- package/esm/parse/parseSdt.d.ts +5 -0
- package/esm/parse/parseShape.d.ts +10 -0
- package/esm/parse/parseShape.js +239 -0
- package/esm/parse/parseSize.d.ts +2 -1
- package/esm/parse/parseSize.js +7 -1
- package/esm/parse/parseSpacing.js +1 -1
- package/esm/parse/parseTable.d.ts +3 -0
- package/esm/parse/parseTable.js +62 -0
- package/esm/parse/parseTablePr.d.ts +3 -0
- package/esm/parse/parseTablePr.js +185 -0
- package/esm/parse/parseTblWidth.d.ts +4 -0
- package/esm/parse/parseTblWidth.js +23 -0
- package/esm/parse/parseTc.d.ts +10 -0
- package/esm/parse/parseTc.js +64 -0
- package/esm/parse/parseTcPr.d.ts +5 -0
- package/esm/parse/parseTcPr.js +99 -0
- package/esm/parse/parseTextDirection.js +4 -6
- package/esm/parse/parseTr.d.ts +6 -0
- package/esm/parse/parseTr.js +49 -0
- package/esm/parse/parseTrPr.d.ts +3 -0
- package/esm/parse/parseTrPr.js +59 -0
- package/esm/render/fixAbsolutePosition.d.ts +8 -0
- package/esm/render/renderBody.d.ts +6 -2
- package/esm/render/renderBody.js +184 -30
- package/esm/render/renderBr.d.ts +2 -1
- package/esm/render/renderBr.js +4 -1
- package/esm/render/renderCustGeom.d.ts +4 -0
- package/esm/render/renderCustGeom.js +10 -0
- package/esm/render/renderDocument.d.ts +2 -2
- package/esm/render/renderDocument.js +2 -2
- package/esm/render/renderDrawing.d.ts +3 -2
- package/esm/render/renderDrawing.js +129 -24
- package/esm/render/renderFont.d.ts +5 -0
- package/esm/render/renderFont.js +39 -0
- package/esm/render/renderGeom.d.ts +4 -0
- package/esm/render/renderGeom.js +14 -0
- package/esm/render/renderHeader.d.ts +6 -0
- package/esm/render/renderHeader.js +40 -0
- package/esm/render/renderHyperLink.js +4 -1
- package/esm/render/renderInlineText.js +1 -1
- package/esm/render/renderInstrText.js +1 -1
- package/esm/render/renderMath.d.ts +3 -0
- package/esm/render/renderMath.js +7 -0
- package/esm/render/renderNoBreakHyphen.d.ts +1 -0
- package/esm/render/renderNoBreakHyphen.js +9 -0
- package/esm/render/renderNotes.d.ts +5 -0
- package/esm/render/renderNotes.js +77 -0
- package/esm/render/renderNumbering.js +8 -10
- package/esm/render/renderParagraph.d.ts +1 -1
- package/esm/render/renderParagraph.js +26 -29
- package/esm/render/renderPict.js +5 -10
- package/esm/render/renderRuby.js +1 -1
- package/esm/render/renderRun.d.ts +4 -2
- package/esm/render/renderRun.js +35 -10
- package/esm/render/renderSection.d.ts +3 -2
- package/esm/render/renderSection.js +79 -5
- package/esm/render/renderSeparator.d.ts +1 -0
- package/esm/render/renderSeparator.js +9 -0
- package/esm/render/renderSoftHyphen.d.ts +1 -0
- package/esm/render/renderSoftHyphen.js +9 -0
- package/esm/render/renderStyle.js +36 -35
- package/esm/render/renderTab.d.ts +1 -0
- package/esm/render/renderTab.js +4 -6
- package/esm/render/renderTable.js +23 -20
- package/esm/render/setElementStyle.js +7 -2
- package/esm/render/zindex.d.ts +1 -0
- package/esm/util/blob.js +1 -10
- package/esm/util/color.d.ts +48 -0
- package/esm/util/color.js +211 -0
- package/esm/util/createObject.d.ts +10 -0
- package/esm/util/createObject.js +48 -0
- package/esm/util/dom.d.ts +8 -4
- package/esm/util/dom.js +21 -4
- package/esm/util/mergeRun.js +1 -1
- package/esm/util/parseSides.d.ts +11 -0
- package/esm/util/print.d.ts +5 -0
- package/esm/util/print.js +54 -0
- package/esm/util/replaceVar.d.ts +10 -0
- package/esm/util/replaceVar.js +214 -0
- package/esm/util/xml.js +4 -1
- package/lib/OpenXML.d.ts +19 -0
- package/lib/OpenXML.js +44 -1
- package/lib/Word.d.ts +132 -15
- package/lib/Word.js +238 -59
- package/lib/openxml/ContentType.js +20 -6
- package/lib/openxml/Settings.d.ts +10 -0
- package/lib/openxml/Settings.js +97 -0
- package/lib/openxml/Style.d.ts +1 -1
- package/lib/openxml/Style.js +15 -15
- package/lib/openxml/Theme.js +31 -7
- package/lib/openxml/Types.d.ts +179 -2472
- package/lib/openxml/drawing/Blip.d.ts +7 -0
- package/lib/openxml/{word/drawing → drawing}/Blip.js +2 -1
- package/{esm/openxml/word → lib/openxml}/drawing/BlipFill.d.ts +1 -1
- package/lib/openxml/{word/drawing → drawing}/BlipFill.js +1 -1
- package/lib/openxml/drawing/CustomGeom.d.ts +9 -0
- package/lib/openxml/drawing/CustomGeom.js +21 -0
- package/lib/openxml/drawing/Drawing.d.ts +35 -0
- package/lib/openxml/drawing/Drawing.js +173 -0
- package/lib/openxml/drawing/Geom.d.ts +11 -0
- package/lib/openxml/drawing/Geom.js +38 -0
- package/lib/openxml/drawing/Path.d.ts +37 -0
- package/lib/openxml/drawing/Pic.d.ts +16 -0
- package/lib/openxml/drawing/Pic.js +30 -0
- package/lib/openxml/drawing/Shape.d.ts +20 -0
- package/lib/openxml/drawing/ShapeProperties.d.ts +22 -0
- package/lib/openxml/drawing/ShapeProperties.js +123 -0
- package/{esm/openxml/word → lib/openxml}/drawing/Transform.d.ts +2 -1
- package/lib/openxml/{word/drawing → drawing}/Transform.js +7 -3
- package/lib/openxml/drawing/diagram/Diagram.d.ts +7 -0
- package/lib/openxml/drawing/diagram/Diagram.js +28 -0
- package/lib/openxml/drawing/diagram/Sp.d.ts +2 -0
- package/lib/openxml/drawing/diagram/SpTree.d.ts +5 -0
- package/lib/openxml/drawing/presetShape.d.ts +3 -0
- package/lib/openxml/drawing/presetShape.js +38789 -0
- package/lib/openxml/drawing/svg/arcToA.d.ts +13 -0
- package/lib/openxml/drawing/svg/arcToA.js +92 -0
- package/lib/openxml/drawing/svg/formulas.d.ts +29 -0
- package/lib/openxml/drawing/svg/formulas.js +108 -0
- package/lib/openxml/drawing/svg/generateDefines.d.ts +12 -0
- package/lib/openxml/drawing/svg/generateDefines.js +148 -0
- package/lib/openxml/drawing/svg/presetVal.d.ts +43 -0
- package/lib/openxml/drawing/svg/presetVal.js +57 -0
- package/lib/openxml/drawing/svg/shapeToSVG.d.ts +9 -0
- package/lib/openxml/drawing/svg/shapeToSVG.js +155 -0
- package/lib/openxml/math/OMath.d.ts +5 -0
- package/lib/openxml/math/OMath.js +16 -0
- package/lib/openxml/math/convertOOML.d.ts +4 -0
- package/lib/openxml/math/convertOOML.js +17 -0
- package/lib/openxml/math/xsl.d.ts +4 -0
- package/lib/openxml/math/xsl.js +12 -0
- package/lib/openxml/word/Body.js +11 -7
- package/lib/openxml/word/Break.js +1 -3
- package/lib/openxml/word/Font.d.ts +16 -0
- package/lib/openxml/word/Font.js +83 -0
- package/lib/openxml/word/FontTable.d.ts +9 -0
- package/lib/openxml/word/FontTable.js +38 -0
- package/lib/openxml/word/Header.d.ts +11 -0
- package/lib/openxml/word/Header.js +58 -0
- package/lib/openxml/word/Hyperlink.d.ts +1 -0
- package/lib/openxml/word/Hyperlink.js +8 -4
- package/lib/openxml/word/InlineText.js +2 -2
- package/lib/openxml/word/NoBreakHyphen.d.ts +2 -0
- package/lib/openxml/word/NoBreakHyphen.js +11 -0
- package/lib/openxml/word/Note.d.ts +12 -0
- package/lib/openxml/word/Note.js +52 -0
- package/lib/openxml/word/Paragraph.d.ts +2 -2
- package/lib/openxml/word/Paragraph.js +11 -10
- package/lib/openxml/word/Pict.d.ts +1 -2
- package/lib/openxml/word/Pict.js +5 -3
- package/lib/openxml/word/Ruby.js +4 -4
- package/lib/openxml/word/Run.d.ts +7 -3
- package/lib/openxml/word/Run.js +29 -5
- package/lib/openxml/word/Section.d.ts +18 -5
- package/lib/openxml/word/Section.js +47 -3
- package/lib/openxml/word/Separator.d.ts +5 -0
- package/lib/openxml/word/Separator.js +14 -0
- package/lib/openxml/word/SoftHyphen.d.ts +5 -0
- package/lib/openxml/word/SoftHyphen.js +14 -0
- package/lib/openxml/word/Table.d.ts +4 -9
- package/lib/openxml/word/Table.js +0 -235
- package/lib/openxml/word/WDocument.d.ts +1 -2
- package/lib/openxml/word/WDocument.js +53 -7
- package/lib/openxml/word/numbering/AbstractNum.js +5 -3
- package/lib/openxml/word/numbering/Lvl.js +11 -5
- package/lib/openxml/word/numbering/Num.js +12 -4
- package/lib/openxml/word/numbering/NumberProperties.js +2 -2
- package/lib/openxml/word/numbering/Numbering.js +3 -3
- package/lib/openxml/word/table/Tc.d.ts +1 -22
- package/lib/openxml/word/table/Tc.js +0 -224
- package/lib/openxml/word/table/Tr.d.ts +0 -5
- package/lib/openxml/word/table/Tr.js +0 -97
- package/lib/openxml/word/wps/WPG.d.ts +5 -0
- package/lib/openxml/word/wps/WPS.d.ts +18 -0
- package/lib/openxml/word/wps/WPS.js +151 -0
- package/lib/openxml/word/wps/WPSStyle.d.ts +10 -0
- package/lib/openxml/word/wps/WPSStyle.js +46 -0
- package/lib/package/PackageParser.d.ts +1 -1
- package/lib/package/XMLPackageParser.d.ts +3 -3
- package/lib/package/ZipPackageParser.d.ts +1 -1
- package/lib/package/ZipPackageParser.js +7 -8
- package/lib/parse/Footnotes.d.ts +3 -0
- package/lib/parse/Footnotes.js +29 -0
- package/lib/parse/colorNameMap.d.ts +6 -0
- package/lib/parse/colorNameMap.js +205 -0
- package/lib/parse/jcToTextAlign.js +1 -0
- package/lib/parse/mergeSdt.d.ts +4 -0
- package/lib/parse/mergeSdt.js +61 -0
- package/lib/parse/modifyColor.d.ts +1 -0
- package/lib/parse/modifyColor.js +110 -0
- package/lib/parse/parseBorder.js +3 -22
- package/lib/parse/parseCellMargin.d.ts +2 -0
- package/lib/parse/parseCellMargin.js +42 -0
- package/lib/parse/parseChildColor.d.ts +5 -0
- package/lib/parse/parseChildColor.js +70 -0
- package/lib/parse/parseColor.d.ts +4 -0
- package/lib/parse/parseColor.js +41 -45
- package/lib/parse/parseEndnotes.d.ts +3 -0
- package/lib/parse/parseEndnotes.js +29 -0
- package/lib/parse/parseFont.js +2 -2
- package/lib/parse/parseInsideBorders.d.ts +9 -0
- package/lib/parse/parseInsideBorders.js +28 -0
- package/lib/parse/parsePr.d.ts +3 -0
- package/lib/parse/parsePr.js +109 -12
- package/lib/parse/parseRelationship.js +2 -2
- package/lib/parse/parseSdt.d.ts +5 -0
- package/lib/parse/parseShape.d.ts +10 -0
- package/lib/parse/parseShape.js +247 -0
- package/lib/parse/parseSize.d.ts +2 -1
- package/lib/parse/parseSize.js +7 -0
- package/lib/parse/parseSpacing.js +1 -1
- package/lib/parse/parseTable.d.ts +3 -0
- package/lib/parse/parseTable.js +66 -0
- package/lib/parse/parseTablePr.d.ts +3 -0
- package/lib/parse/parseTablePr.js +189 -0
- package/lib/parse/parseTblWidth.d.ts +4 -0
- package/lib/parse/parseTblWidth.js +27 -0
- package/lib/parse/parseTc.d.ts +10 -0
- package/lib/parse/parseTc.js +68 -0
- package/lib/parse/parseTcPr.d.ts +5 -0
- package/lib/parse/parseTcPr.js +104 -0
- package/lib/parse/parseTextDirection.js +4 -6
- package/lib/parse/parseTr.d.ts +6 -0
- package/lib/parse/parseTr.js +53 -0
- package/lib/parse/parseTrPr.d.ts +3 -0
- package/lib/parse/parseTrPr.js +63 -0
- package/lib/render/fixAbsolutePosition.d.ts +8 -0
- package/lib/render/renderBody.d.ts +6 -2
- package/lib/render/renderBody.js +183 -29
- package/lib/render/renderBr.d.ts +2 -1
- package/lib/render/renderBr.js +4 -1
- package/lib/render/renderCustGeom.d.ts +4 -0
- package/lib/render/renderCustGeom.js +14 -0
- package/lib/render/renderDocument.d.ts +2 -2
- package/lib/render/renderDocument.js +2 -2
- package/lib/render/renderDrawing.d.ts +3 -2
- package/lib/render/renderDrawing.js +129 -24
- package/lib/render/renderFont.d.ts +5 -0
- package/lib/render/renderFont.js +43 -0
- package/lib/render/renderGeom.d.ts +4 -0
- package/lib/render/renderGeom.js +18 -0
- package/lib/render/renderHeader.d.ts +6 -0
- package/lib/render/renderHeader.js +44 -0
- package/lib/render/renderHyperLink.js +5 -2
- package/lib/render/renderInlineText.js +2 -2
- package/lib/render/renderInstrText.js +2 -2
- package/lib/render/renderMath.d.ts +3 -0
- package/lib/render/renderMath.js +11 -0
- package/lib/render/renderNoBreakHyphen.d.ts +1 -0
- package/lib/render/renderNoBreakHyphen.js +13 -0
- package/lib/render/renderNotes.d.ts +5 -0
- package/lib/render/renderNotes.js +81 -0
- package/lib/render/renderNumbering.js +9 -11
- package/lib/render/renderParagraph.d.ts +1 -1
- package/lib/render/renderParagraph.js +26 -29
- package/lib/render/renderPict.js +5 -10
- package/lib/render/renderRuby.js +3 -3
- package/lib/render/renderRun.d.ts +4 -2
- package/lib/render/renderRun.js +34 -9
- package/lib/render/renderSection.d.ts +3 -2
- package/lib/render/renderSection.js +79 -5
- package/lib/render/renderSeparator.d.ts +1 -0
- package/lib/render/renderSeparator.js +13 -0
- package/lib/render/renderSoftHyphen.d.ts +1 -0
- package/lib/render/renderSoftHyphen.js +13 -0
- package/lib/render/renderStyle.js +37 -36
- package/lib/render/renderTab.d.ts +1 -0
- package/lib/render/renderTab.js +4 -6
- package/lib/render/renderTable.js +25 -22
- package/lib/render/setElementStyle.js +6 -1
- package/lib/render/zindex.d.ts +1 -0
- package/lib/util/blob.js +0 -10
- package/lib/util/color.d.ts +48 -0
- package/lib/util/color.js +215 -0
- package/lib/util/createObject.d.ts +10 -0
- package/lib/util/createObject.js +54 -0
- package/lib/util/dom.d.ts +8 -4
- package/lib/util/dom.js +24 -5
- package/lib/util/mergeRun.js +5 -5
- package/lib/util/parseSides.d.ts +11 -0
- package/lib/util/print.d.ts +5 -0
- package/lib/util/print.js +58 -0
- package/lib/util/replaceVar.d.ts +10 -0
- package/lib/util/replaceVar.js +219 -0
- package/lib/util/xml.js +4 -0
- package/package.json +17 -6
- package/esm/node_modules/tslib/tslib.es6.js +0 -120
- package/esm/openxml/Types.js +0 -1003
- package/esm/openxml/word/CustomXml.d.ts +0 -8
- package/esm/openxml/word/SmartTag.d.ts +0 -8
- package/esm/openxml/word/SmartTag.js +0 -18
- package/esm/openxml/word/drawing/Blip.d.ts +0 -6
- package/esm/openxml/word/drawing/Drawing.d.ts +0 -6
- package/esm/openxml/word/drawing/Drawing.js +0 -15
- package/esm/openxml/word/drawing/Pic.d.ts +0 -8
- package/esm/openxml/word/drawing/Pic.js +0 -16
- package/esm/openxml/word/drawing/ShapeProperties.d.ts +0 -9
- package/esm/openxml/word/drawing/ShapeProperties.js +0 -20
- package/lib/node_modules/tslib/tslib.es6.js +0 -129
- package/lib/openxml/Types.js +0 -1005
- package/lib/openxml/word/CustomXml.d.ts +0 -8
- package/lib/openxml/word/SmartTag.d.ts +0 -8
- package/lib/openxml/word/SmartTag.js +0 -22
- package/lib/openxml/word/drawing/Blip.d.ts +0 -6
- package/lib/openxml/word/drawing/Drawing.d.ts +0 -6
- package/lib/openxml/word/drawing/Drawing.js +0 -19
- package/lib/openxml/word/drawing/Pic.d.ts +0 -8
- package/lib/openxml/word/drawing/Pic.js +0 -20
- package/lib/openxml/word/drawing/ShapeProperties.d.ts +0 -9
- package/lib/openxml/word/drawing/ShapeProperties.js +0 -24
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 arc 定义转成 SVG PATH 里的 A 命令
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 将 arc 转成 A 指令,但目前看来不太正确,比如 curvedRightArrow 的显示就不对
|
|
6
|
+
*/
|
|
7
|
+
export default function arcToPathA(wR: number, hR: number, stAng: number, swAng: number, preX: number, preY: number): {
|
|
8
|
+
path: string;
|
|
9
|
+
end: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 arc 定义转成 SVG PATH 里的 A 命令
|
|
3
|
+
*/
|
|
4
|
+
function floatEqual(a, b) {
|
|
5
|
+
if (a === b) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
var diff = Math.abs(a - b);
|
|
9
|
+
if (diff < Number.EPSILON) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return diff <= Number.EPSILON * Math.min(Math.abs(a), Math.abs(b));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 计算角度
|
|
16
|
+
*/
|
|
17
|
+
var radians = function (deg) { return Math.PI * (deg / 60000 / 180); };
|
|
18
|
+
/**
|
|
19
|
+
* 将 arc 转成 A 指令,但目前看来不太正确,比如 curvedRightArrow 的显示就不对
|
|
20
|
+
*/
|
|
21
|
+
function arcToPathA(wR, hR, stAng, swAng, preX, preY) {
|
|
22
|
+
var startR = radians(stAng);
|
|
23
|
+
var swAngR = radians(swAng);
|
|
24
|
+
var endR = radians(stAng + swAng);
|
|
25
|
+
if (floatEqual(swAng, 60000 * 360)) {
|
|
26
|
+
// 如果是圆会变成点,所以减少一下避免这种情况
|
|
27
|
+
endR = endR - 0.0001;
|
|
28
|
+
}
|
|
29
|
+
var end = getEndPoint(wR, hR, startR, endR, 0, preX, preY);
|
|
30
|
+
// 是否是大弧
|
|
31
|
+
var largeArcFlag = Math.abs(swAngR) > Math.PI ? 1 : 0;
|
|
32
|
+
// 是否是顺时针
|
|
33
|
+
var sweepFlag = swAng > 0 ? 1 : 0;
|
|
34
|
+
var path = "A ".concat(wR, " ").concat(hR, " 0 ").concat(largeArcFlag, " ").concat(sweepFlag, " ").concat(end.x, ",").concat(end.y);
|
|
35
|
+
return {
|
|
36
|
+
path: path,
|
|
37
|
+
end: end
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 简单实现的矩阵相乘,只支持一种输入
|
|
42
|
+
*/
|
|
43
|
+
function matrixMul(first, second) {
|
|
44
|
+
return [
|
|
45
|
+
first[0][0] * second[0] + first[0][1] * second[1],
|
|
46
|
+
first[1][0] * second[0] + first[1][1] * second[1]
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 算出结束点位置,公式来自
|
|
51
|
+
* https://www.cnblogs.com/ryzen/p/15191386.html
|
|
52
|
+
* https://wiki.documentfoundation.org/Development/Improve_handles_of_DrawingML_shapes
|
|
53
|
+
*
|
|
54
|
+
* @param rx 半长轴半径
|
|
55
|
+
* @param ry 半短轴半径
|
|
56
|
+
* @param stAng 起始角度
|
|
57
|
+
* @param swAng 旋转角度
|
|
58
|
+
* @param rotate 旋转
|
|
59
|
+
* @param x 起始点 x 坐标
|
|
60
|
+
* @param y 起始点 y 坐标
|
|
61
|
+
* @returns 结束点位置
|
|
62
|
+
*/
|
|
63
|
+
function getEndPoint(rx, ry, stAng, swAng, rotate, x, y) {
|
|
64
|
+
var startR = stAng;
|
|
65
|
+
var endR = swAng;
|
|
66
|
+
// 起始节点坐标
|
|
67
|
+
var matrixX1Y1 = [x, y];
|
|
68
|
+
var matrix1 = [
|
|
69
|
+
[Math.cos(rotate), -Math.sin(rotate)],
|
|
70
|
+
[Math.sin(rotate), Math.cos(rotate)]
|
|
71
|
+
];
|
|
72
|
+
var matrix2 = [rx * Math.cos(startR), ry * Math.sin(startR)];
|
|
73
|
+
// 公式第二部分
|
|
74
|
+
var secondPart = matrixMul(matrix1, matrix2);
|
|
75
|
+
var matrixCxCy = [
|
|
76
|
+
matrixX1Y1[0] - secondPart[0],
|
|
77
|
+
matrixX1Y1[1] - secondPart[1]
|
|
78
|
+
];
|
|
79
|
+
var matrix3 = [rx * Math.cos(endR), ry * Math.sin(endR)];
|
|
80
|
+
var firstPart = matrixMul(matrix1, matrix3);
|
|
81
|
+
var result = [matrixCxCy[0] + firstPart[0], matrixCxCy[1] + firstPart[1]];
|
|
82
|
+
return {
|
|
83
|
+
x: result[0],
|
|
84
|
+
y: result[1]
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { arcToPathA as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 计算公式 20.1.9.11
|
|
3
|
+
*/
|
|
4
|
+
export declare const formulas: {
|
|
5
|
+
'*/': (x: number, y: number, z: number) => number;
|
|
6
|
+
'+-': (x: number, y: number, z: number) => number;
|
|
7
|
+
'+/': (x: number, y: number, z: number) => number;
|
|
8
|
+
'?:': (x: number, y: number, z: number) => number;
|
|
9
|
+
abs: (x: number) => number;
|
|
10
|
+
at2: (x: number, y: number) => number;
|
|
11
|
+
cat2: (x: number, y: number, z: number) => number;
|
|
12
|
+
cos: (x: number, y: number) => number;
|
|
13
|
+
max: (x: number, y: number) => number;
|
|
14
|
+
min: (x: number, y: number) => number;
|
|
15
|
+
mod: (x: number, y: number, z: number) => number;
|
|
16
|
+
pin: (x: number, y: number, z: number) => number;
|
|
17
|
+
sat2: (x: number, y: number, z: number) => number;
|
|
18
|
+
sin: (x: number, y: number) => number;
|
|
19
|
+
sqrt: (x: number) => number;
|
|
20
|
+
tan: (x: number, y: number) => number;
|
|
21
|
+
val: (a: string) => number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 执行公式计算并返回结果
|
|
25
|
+
* @param fmla 公式
|
|
26
|
+
* @param vars 变量值
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export declare function evalFmla(name: string, fmla: string, vars: Record<string, number>): number;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 计算公式 20.1.9.11
|
|
3
|
+
*/
|
|
4
|
+
var angleFactor = (1 / 60000 / 180) * Math.PI;
|
|
5
|
+
var formulas = {
|
|
6
|
+
'*/': function (x, y, z) {
|
|
7
|
+
return (x * y) / z;
|
|
8
|
+
},
|
|
9
|
+
'+-': function (x, y, z) {
|
|
10
|
+
return x + y - z;
|
|
11
|
+
},
|
|
12
|
+
'+/': function (x, y, z) {
|
|
13
|
+
return (x + y) / z;
|
|
14
|
+
},
|
|
15
|
+
'?:': function (x, y, z) {
|
|
16
|
+
return x > 0 ? y : z;
|
|
17
|
+
},
|
|
18
|
+
'abs': function (x) {
|
|
19
|
+
return Math.abs(x);
|
|
20
|
+
},
|
|
21
|
+
'at2': function (x, y) {
|
|
22
|
+
// 转回角度,因为后续的计算是基于角度的
|
|
23
|
+
return (Math.atan2(y, x) * 180 * 60000) / Math.PI;
|
|
24
|
+
},
|
|
25
|
+
'cat2': function (x, y, z) {
|
|
26
|
+
return x * Math.cos(Math.atan2(z, y));
|
|
27
|
+
},
|
|
28
|
+
'cos': function (x, y) {
|
|
29
|
+
return x * Math.cos(y * angleFactor);
|
|
30
|
+
},
|
|
31
|
+
'max': function (x, y) {
|
|
32
|
+
return Math.max(x, y);
|
|
33
|
+
},
|
|
34
|
+
'min': function (x, y) {
|
|
35
|
+
return Math.min(x, y);
|
|
36
|
+
},
|
|
37
|
+
'mod': function (x, y, z) {
|
|
38
|
+
return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));
|
|
39
|
+
},
|
|
40
|
+
'pin': function (x, y, z) {
|
|
41
|
+
return y < x ? x : y > z ? z : y;
|
|
42
|
+
},
|
|
43
|
+
'sat2': function (x, y, z) {
|
|
44
|
+
return x * Math.sin(Math.atan2(z, y));
|
|
45
|
+
},
|
|
46
|
+
'sin': function (x, y) {
|
|
47
|
+
return x * Math.sin(y * angleFactor);
|
|
48
|
+
},
|
|
49
|
+
'sqrt': function (x) {
|
|
50
|
+
return Math.sqrt(x);
|
|
51
|
+
},
|
|
52
|
+
'tan': function (x, y) {
|
|
53
|
+
return x * Math.tan(y * angleFactor);
|
|
54
|
+
},
|
|
55
|
+
'val': function (a) {
|
|
56
|
+
var parse = parseInt(a, 10);
|
|
57
|
+
if (isNaN(parse)) {
|
|
58
|
+
return parse;
|
|
59
|
+
}
|
|
60
|
+
return parse;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* 执行公式计算并返回结果
|
|
65
|
+
* @param fmla 公式
|
|
66
|
+
* @param vars 变量值
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
function evalFmla(name, fmla, vars) {
|
|
70
|
+
var fmlaArr = fmla.split(/[ ]+/);
|
|
71
|
+
if (fmlaArr.length <= 1) {
|
|
72
|
+
console.warn('fmla format error', fmla);
|
|
73
|
+
}
|
|
74
|
+
var fmlaName = fmlaArr[0];
|
|
75
|
+
var fmlaArgs = fmlaArr.slice(1);
|
|
76
|
+
// 这里要求 gd 定义必须顺序,不然就找不到之前的值了
|
|
77
|
+
var fmlaArgsNum = fmlaArgs.map(function (arg) {
|
|
78
|
+
if (arg in vars) {
|
|
79
|
+
return vars[arg];
|
|
80
|
+
}
|
|
81
|
+
var parse = parseInt(arg, 10);
|
|
82
|
+
if (isNaN(parse)) {
|
|
83
|
+
console.warn('fmla arg error', arg, fmla);
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
return parse;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
if (fmlaName in formulas) {
|
|
91
|
+
var val = formulas[fmlaName].apply(null, fmlaArgsNum);
|
|
92
|
+
if (isNaN(val)) {
|
|
93
|
+
console.warn('fmla eval error', fmla, name);
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
vars[name] = val;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export { evalFmla, formulas };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Path } from '../Path';
|
|
2
|
+
export type Var = Record<string, number>;
|
|
3
|
+
export type Point = {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* 转成 svg path 里的定义
|
|
10
|
+
* https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateDefines(path: Path, vars: Var, prevPoint: Point[]): string;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { __values } from 'tslib';
|
|
2
|
+
import arcToPathA from './arcToA.js';
|
|
3
|
+
|
|
4
|
+
function getVal(name, vars, scale) {
|
|
5
|
+
var result = 0;
|
|
6
|
+
if (name in vars) {
|
|
7
|
+
result = vars[name];
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
result = parseInt(name, 10);
|
|
11
|
+
if (isNaN(result)) {
|
|
12
|
+
console.warn('var not found', name);
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (scale) {
|
|
17
|
+
return result * scale;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* 转成 svg path 里的定义
|
|
26
|
+
* https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d
|
|
27
|
+
*/
|
|
28
|
+
function generateDefines(path, vars, prevPoint) {
|
|
29
|
+
var e_1, _a;
|
|
30
|
+
var defines = path.defines;
|
|
31
|
+
var paths = [];
|
|
32
|
+
var w = path.w;
|
|
33
|
+
var h = path.h;
|
|
34
|
+
var wScale = 1;
|
|
35
|
+
var hScale = 1;
|
|
36
|
+
if (w) {
|
|
37
|
+
wScale = vars['w'] / w;
|
|
38
|
+
}
|
|
39
|
+
if (h) {
|
|
40
|
+
hScale = vars['h'] / h;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
for (var defines_1 = __values(defines), defines_1_1 = defines_1.next(); !defines_1_1.done; defines_1_1 = defines_1.next()) {
|
|
44
|
+
var def = defines_1_1.value;
|
|
45
|
+
switch (def.type) {
|
|
46
|
+
case 'moveTo': {
|
|
47
|
+
var pt = def.pt;
|
|
48
|
+
var x = getVal(pt.x, vars, wScale);
|
|
49
|
+
var y = getVal(pt.y, vars, hScale);
|
|
50
|
+
paths.push("M ".concat(x, " ").concat(y));
|
|
51
|
+
prevPoint.push({ x: x, y: y });
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case 'lnTo': {
|
|
55
|
+
var pt = def.pt;
|
|
56
|
+
var x = getVal(pt.x, vars, wScale);
|
|
57
|
+
var y = getVal(pt.y, vars, hScale);
|
|
58
|
+
paths.push("L ".concat(x, " ").concat(y));
|
|
59
|
+
prevPoint.push({ x: x, y: y });
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'arcTo': {
|
|
63
|
+
var arc = def;
|
|
64
|
+
var wR = getVal(arc.wR, vars, wScale);
|
|
65
|
+
var hR = getVal(arc.hR, vars, hScale);
|
|
66
|
+
var stAng = getVal(arc.stAng, vars);
|
|
67
|
+
var swAng = getVal(arc.swAng, vars);
|
|
68
|
+
var prev = {
|
|
69
|
+
x: 0,
|
|
70
|
+
y: 0
|
|
71
|
+
};
|
|
72
|
+
if (prevPoint.length > 0) {
|
|
73
|
+
prev = prevPoint[prevPoint.length - 1];
|
|
74
|
+
}
|
|
75
|
+
var aPath = arcToPathA(wR, hR, stAng, swAng, prev.x, prev.y);
|
|
76
|
+
paths.push(aPath.path);
|
|
77
|
+
prevPoint.push({ x: aPath.end.x, y: aPath.end.y });
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'quadBezTo': {
|
|
81
|
+
var quadBezTo = def;
|
|
82
|
+
if (quadBezTo.pts.length >= 2) {
|
|
83
|
+
var pt1 = quadBezTo.pts[0];
|
|
84
|
+
var pt2 = quadBezTo.pts[1];
|
|
85
|
+
var x1 = getVal(pt1.x, vars, wScale);
|
|
86
|
+
var y1 = getVal(pt1.y, vars, hScale);
|
|
87
|
+
var x2 = getVal(pt2.x, vars, wScale);
|
|
88
|
+
var y2 = getVal(pt2.y, vars, hScale);
|
|
89
|
+
paths.push("Q ".concat(x1, ",").concat(y1, " ").concat(x2, ",").concat(y2));
|
|
90
|
+
if (quadBezTo.pts.length > 2) {
|
|
91
|
+
var pt3 = quadBezTo.pts[2];
|
|
92
|
+
var x3 = getVal(pt3.x, vars, wScale);
|
|
93
|
+
var y3 = getVal(pt3.y, vars, hScale);
|
|
94
|
+
paths.push("T ".concat(x3, ",").concat(y3));
|
|
95
|
+
prevPoint.push({ x: x3, y: y3 });
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
prevPoint.push({ x: x2, y: y2 });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.warn('quadBezTo pts length must large than 2', def);
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case 'cubicBezTo': {
|
|
107
|
+
var cubicBezTo = def;
|
|
108
|
+
if (cubicBezTo.pts.length === 3) {
|
|
109
|
+
var pt1 = cubicBezTo.pts[0];
|
|
110
|
+
var pt2 = cubicBezTo.pts[1];
|
|
111
|
+
var pt3 = cubicBezTo.pts[2];
|
|
112
|
+
var x1 = getVal(pt1.x, vars, wScale);
|
|
113
|
+
var y1 = getVal(pt1.y, vars, hScale);
|
|
114
|
+
var x2 = getVal(pt2.x, vars, wScale);
|
|
115
|
+
var y2 = getVal(pt2.y, vars, hScale);
|
|
116
|
+
var x3 = getVal(pt3.x, vars, wScale);
|
|
117
|
+
var y3 = getVal(pt3.y, vars, hScale);
|
|
118
|
+
paths.push("C ".concat(x1, ",").concat(y1, " ").concat(x2, ",").concat(y2, " ").concat(x3, ",").concat(y3));
|
|
119
|
+
prevPoint.push({ x: x3, y: y3 });
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
console.warn('cubicBezTo pts length must be 3', def);
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
case 'close':
|
|
127
|
+
paths.push('Z');
|
|
128
|
+
break;
|
|
129
|
+
default:
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
135
|
+
finally {
|
|
136
|
+
try {
|
|
137
|
+
if (defines_1_1 && !defines_1_1.done && (_a = defines_1.return)) _a.call(defines_1);
|
|
138
|
+
}
|
|
139
|
+
finally { if (e_1) throw e_1.error; }
|
|
140
|
+
}
|
|
141
|
+
return paths.join(' ');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export { generateDefines };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 获取默认 val,20.1.10.56
|
|
3
|
+
*
|
|
4
|
+
* @param width
|
|
5
|
+
* @param height
|
|
6
|
+
*/
|
|
7
|
+
export declare function presetVal(w: number, h: number): {
|
|
8
|
+
t: number;
|
|
9
|
+
'3cd4': number;
|
|
10
|
+
'3cd8': number;
|
|
11
|
+
'5cd8': number;
|
|
12
|
+
'7cd8': number;
|
|
13
|
+
b: number;
|
|
14
|
+
cd2: number;
|
|
15
|
+
cd4: number;
|
|
16
|
+
cd8: number;
|
|
17
|
+
h: number;
|
|
18
|
+
hd2: number;
|
|
19
|
+
hd3: number;
|
|
20
|
+
hd4: number;
|
|
21
|
+
hd6: number;
|
|
22
|
+
hd8: number;
|
|
23
|
+
l: number;
|
|
24
|
+
ls: number;
|
|
25
|
+
r: number;
|
|
26
|
+
ss: number;
|
|
27
|
+
ssd2: number;
|
|
28
|
+
ssd6: number;
|
|
29
|
+
ssd8: number;
|
|
30
|
+
ssd16: number;
|
|
31
|
+
ssd32: number;
|
|
32
|
+
hc: number;
|
|
33
|
+
vc: number;
|
|
34
|
+
w: number;
|
|
35
|
+
wd2: number;
|
|
36
|
+
wd3: number;
|
|
37
|
+
wd4: number;
|
|
38
|
+
wd6: number;
|
|
39
|
+
wd8: number;
|
|
40
|
+
wd10: number;
|
|
41
|
+
wd16: number;
|
|
42
|
+
wd32: number;
|
|
43
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 获取默认 val,20.1.10.56
|
|
3
|
+
*
|
|
4
|
+
* @param width
|
|
5
|
+
* @param height
|
|
6
|
+
*/
|
|
7
|
+
function presetVal(w, h) {
|
|
8
|
+
var ss = Math.min(w, h);
|
|
9
|
+
var ssd2 = ss / 6;
|
|
10
|
+
var ssd6 = ss / 6;
|
|
11
|
+
var ssd8 = ss / 8;
|
|
12
|
+
var ssd32 = ss / 32;
|
|
13
|
+
var ssd16 = ss / 16;
|
|
14
|
+
return {
|
|
15
|
+
't': 0,
|
|
16
|
+
'3cd4': 16200000,
|
|
17
|
+
'3cd8': 8100000,
|
|
18
|
+
'5cd8': 13500000,
|
|
19
|
+
'7cd8': 18900000,
|
|
20
|
+
'b': h,
|
|
21
|
+
'cd2': 10800000,
|
|
22
|
+
'cd4': 5400000,
|
|
23
|
+
'cd8': 2700000,
|
|
24
|
+
h: h,
|
|
25
|
+
'hd2': h / 2,
|
|
26
|
+
'hd3': h / 3,
|
|
27
|
+
'hd4': h / 4,
|
|
28
|
+
'hd6': h / 6,
|
|
29
|
+
'hd8': h / 8,
|
|
30
|
+
'l': 0,
|
|
31
|
+
'ls': Math.max(w, h),
|
|
32
|
+
'r': w,
|
|
33
|
+
ss: ss,
|
|
34
|
+
ssd2: ssd2,
|
|
35
|
+
ssd6: ssd6,
|
|
36
|
+
ssd8: ssd8,
|
|
37
|
+
ssd16: ssd16,
|
|
38
|
+
ssd32: ssd32,
|
|
39
|
+
'hc': w / 2,
|
|
40
|
+
'vc': h / 2,
|
|
41
|
+
w: w,
|
|
42
|
+
'wd2': w / 2,
|
|
43
|
+
'wd3': w / 3,
|
|
44
|
+
'wd4': w / 4,
|
|
45
|
+
'wd6': w / 6,
|
|
46
|
+
'wd8': w / 8,
|
|
47
|
+
'wd10': w / 10,
|
|
48
|
+
'wd16': w / 16,
|
|
49
|
+
'wd32': w / 32
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { presetVal };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 shape 转成 svg 格式
|
|
3
|
+
*
|
|
4
|
+
* https://wiki.documentfoundation.org/Development/Improve_handles_of_DrawingML_shapes
|
|
5
|
+
*/
|
|
6
|
+
import { WPSStyle } from '../../word/wps/WPSStyle';
|
|
7
|
+
import { Shape, ShapeGuide } from '../Shape';
|
|
8
|
+
import { ShapePr } from '../ShapeProperties';
|
|
9
|
+
export declare function shapeToSVG(shape: Shape, avLst: ShapeGuide[], shapePr: ShapePr, width: number, height: number, wpsStyle?: WPSStyle): SVGElement;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { __values } from 'tslib';
|
|
2
|
+
import { Color } from '../../../util/color.js';
|
|
3
|
+
import { createSVGElement } from '../../../util/dom.js';
|
|
4
|
+
import { evalFmla } from './formulas.js';
|
|
5
|
+
import { generateDefines } from './generateDefines.js';
|
|
6
|
+
import { presetVal } from './presetVal.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 将 shape 转成 svg 格式
|
|
10
|
+
*
|
|
11
|
+
* https://wiki.documentfoundation.org/Development/Improve_handles_of_DrawingML_shapes
|
|
12
|
+
*/
|
|
13
|
+
function shapeToSVG(shape, avLst, shapePr, width, height, wpsStyle) {
|
|
14
|
+
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
|
|
15
|
+
var svg = createSVGElement('svg');
|
|
16
|
+
svg.style.display = 'block';
|
|
17
|
+
// 边框有时候会超过
|
|
18
|
+
// block 是为了避免被 text-align 影响
|
|
19
|
+
// z-index 是因为后面可能会有文字,避免遮挡
|
|
20
|
+
svg.setAttribute('style', 'display: block; overflow: visible; position: absolute; z-index: -1');
|
|
21
|
+
svg.setAttribute('width', width.toString() + 'px');
|
|
22
|
+
svg.setAttribute('height', height.toString() + 'px');
|
|
23
|
+
// 变量值
|
|
24
|
+
var vars = presetVal(width, height);
|
|
25
|
+
try {
|
|
26
|
+
// 先执行 avLst 定义初始变量
|
|
27
|
+
for (var _e = __values(shape.avLst || []), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
28
|
+
var gd = _f.value;
|
|
29
|
+
evalFmla(gd.n, gd.f, vars);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
33
|
+
finally {
|
|
34
|
+
try {
|
|
35
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
36
|
+
}
|
|
37
|
+
finally { if (e_1) throw e_1.error; }
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
// 自定义 avLst
|
|
41
|
+
for (var avLst_1 = __values(avLst), avLst_1_1 = avLst_1.next(); !avLst_1_1.done; avLst_1_1 = avLst_1.next()) {
|
|
42
|
+
var gd = avLst_1_1.value;
|
|
43
|
+
evalFmla(gd.n, gd.f, vars);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
47
|
+
finally {
|
|
48
|
+
try {
|
|
49
|
+
if (avLst_1_1 && !avLst_1_1.done && (_b = avLst_1.return)) _b.call(avLst_1);
|
|
50
|
+
}
|
|
51
|
+
finally { if (e_2) throw e_2.error; }
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
// 执行 gdLst
|
|
55
|
+
for (var _g = __values(shape.gdLst || []), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
56
|
+
var gd = _h.value;
|
|
57
|
+
evalFmla(gd.n, gd.f, vars);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
61
|
+
finally {
|
|
62
|
+
try {
|
|
63
|
+
if (_h && !_h.done && (_c = _g.return)) _c.call(_g);
|
|
64
|
+
}
|
|
65
|
+
finally { if (e_3) throw e_3.error; }
|
|
66
|
+
}
|
|
67
|
+
var outline = shapePr.outline;
|
|
68
|
+
var prevPoint = [];
|
|
69
|
+
try {
|
|
70
|
+
for (var _j = __values(shape.pathLst || []), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
71
|
+
var path = _k.value;
|
|
72
|
+
var pathEl = createSVGElement('path');
|
|
73
|
+
var d = generateDefines(path, vars, prevPoint);
|
|
74
|
+
pathEl.setAttribute('d', d);
|
|
75
|
+
if (shapePr.fillColor) {
|
|
76
|
+
pathEl.setAttribute('fill', shapePr.fillColor);
|
|
77
|
+
}
|
|
78
|
+
else if (wpsStyle && wpsStyle.fillColor) {
|
|
79
|
+
pathEl.setAttribute('fill', wpsStyle.fillColor);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
pathEl.setAttribute('fill', 'none');
|
|
83
|
+
}
|
|
84
|
+
if (outline) {
|
|
85
|
+
if (outline.color) {
|
|
86
|
+
pathEl.setAttribute('stroke', outline.color);
|
|
87
|
+
}
|
|
88
|
+
if (outline.width) {
|
|
89
|
+
pathEl.setAttribute('stroke-width', outline.width);
|
|
90
|
+
}
|
|
91
|
+
if (outline.style === 'none') {
|
|
92
|
+
pathEl.setAttribute('stroke', 'none');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (wpsStyle && wpsStyle.lineColor) {
|
|
96
|
+
pathEl.setAttribute('stroke', wpsStyle.lineColor);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
pathEl.setAttribute('stroke', 'none');
|
|
100
|
+
}
|
|
101
|
+
var fillColor = pathEl.getAttribute('fill');
|
|
102
|
+
if (fillColor && fillColor !== 'none') {
|
|
103
|
+
var color = new Color(fillColor);
|
|
104
|
+
var fillMode = path.fill;
|
|
105
|
+
var changeColor = '';
|
|
106
|
+
switch (fillMode) {
|
|
107
|
+
// 这些值目前是瞎编的,官方规范里没说
|
|
108
|
+
// http://webapp.docx4java.org/OnlineDemo/ecma376/DrawingML/ST_PathFillMode.html
|
|
109
|
+
case 'darken':
|
|
110
|
+
changeColor = color.lumOff(-0.5).toHex();
|
|
111
|
+
break;
|
|
112
|
+
case 'darkenLess':
|
|
113
|
+
changeColor = color.lumOff(-0.2).toHex();
|
|
114
|
+
break;
|
|
115
|
+
case 'lighten':
|
|
116
|
+
changeColor = color.lumOff(0.5).toHex();
|
|
117
|
+
break;
|
|
118
|
+
case 'lightenLess':
|
|
119
|
+
changeColor = color.lumOff(0.2).toHex();
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
if (changeColor) {
|
|
123
|
+
pathEl.setAttribute('fill', changeColor);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (path.fill === 'none') {
|
|
127
|
+
pathEl.setAttribute('fill', 'none');
|
|
128
|
+
}
|
|
129
|
+
if (path.stroke === false) {
|
|
130
|
+
pathEl.setAttribute('stroke', 'none');
|
|
131
|
+
if (!path.fill) {
|
|
132
|
+
pathEl.setAttribute('fill', 'none');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (shapePr.noFill) {
|
|
136
|
+
pathEl.setAttribute('fill', 'none');
|
|
137
|
+
}
|
|
138
|
+
svg.appendChild(pathEl);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
142
|
+
finally {
|
|
143
|
+
try {
|
|
144
|
+
if (_k && !_k.done && (_d = _j.return)) _d.call(_j);
|
|
145
|
+
}
|
|
146
|
+
finally { if (e_4) throw e_4.error; }
|
|
147
|
+
}
|
|
148
|
+
return svg;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export { shapeToSVG };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { xsl } from './xsl.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 将 officel 的公式 xml 转成 mathml
|
|
5
|
+
*/
|
|
6
|
+
function convertOOXML(element) {
|
|
7
|
+
var xsltProcessor = new XSLTProcessor();
|
|
8
|
+
xsltProcessor.importStylesheet(xsl);
|
|
9
|
+
var fragment = xsltProcessor.transformToFragment(element, document);
|
|
10
|
+
return fragment;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { convertOOXML };
|