ooxml-core 1.5.0 → 1.6.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/dist/{PptxHandler-ZPJNHEZZ.mjs → PptxHandler-DDEJ6CKU.mjs} +2 -2
- package/dist/automation/index.cjs +15757 -8955
- package/dist/automation/index.mjs +15757 -8955
- package/dist/{chunk-XGLKW3JJ.mjs → chunk-5L4DHJV3.mjs} +23 -3
- package/dist/{chunk-IVDC75E5.mjs → chunk-EPNLABIU.mjs} +1 -1
- package/dist/{chunk-BB55ASTX.mjs → chunk-Q52O7SXQ.mjs} +3 -3
- package/dist/{chunk-QPQDLSJQ.mjs → chunk-QXZJOUW4.mjs} +1 -1
- package/dist/{chunk-H4TPDZV4.mjs → chunk-UQQGC6O3.mjs} +1 -1
- package/dist/drawingml/index.cjs +102 -24
- package/dist/drawingml/index.d.ts +1 -0
- package/dist/drawingml/index.d.ts.map +1 -1
- package/dist/drawingml/index.mjs +102 -25
- package/dist/drawingml/write-theme.d.ts +17 -0
- package/dist/drawingml/write-theme.d.ts.map +1 -0
- package/dist/geometry/auto-align.d.ts +32 -0
- package/dist/geometry/auto-align.d.ts.map +1 -0
- package/dist/geometry/graph-layout.d.ts +37 -0
- package/dist/geometry/graph-layout.d.ts.map +1 -0
- package/dist/geometry/index.cjs +361 -7
- package/dist/geometry/index.d.ts +2 -0
- package/dist/geometry/index.d.ts.map +1 -1
- package/dist/geometry/index.mjs +359 -8
- package/dist/index.cjs +624 -122
- package/dist/index.mjs +624 -122
- package/dist/pptx/automation/index.cjs +23 -2
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/cli/index.cjs +23 -2
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/index.cjs +23 -2
- package/dist/pptx/index.mjs +5 -5
- package/dist/text/change-case.d.ts +20 -0
- package/dist/text/change-case.d.ts.map +1 -0
- package/dist/text/index.cjs +70 -0
- package/dist/text/index.d.ts +1 -0
- package/dist/text/index.d.ts.map +1 -1
- package/dist/text/index.mjs +68 -1
- package/dist/visio/arrow-shapes.d.ts +16 -0
- package/dist/visio/arrow-shapes.d.ts.map +1 -0
- package/dist/visio/basic-shapes.d.ts +2 -0
- package/dist/visio/basic-shapes.d.ts.map +1 -1
- package/dist/visio/comments.d.ts +39 -0
- package/dist/visio/comments.d.ts.map +1 -0
- package/dist/visio/connector-route.d.ts +31 -0
- package/dist/visio/connector-route.d.ts.map +1 -0
- package/dist/visio/data-recordsets.d.ts +66 -0
- package/dist/visio/data-recordsets.d.ts.map +1 -0
- package/dist/visio/edit-change-shape-commands.d.ts +17 -0
- package/dist/visio/edit-change-shape-commands.d.ts.map +1 -0
- package/dist/visio/edit-change-shape.d.ts +4 -0
- package/dist/visio/edit-change-shape.d.ts.map +1 -0
- package/dist/visio/edit-commands.d.ts +41 -6
- package/dist/visio/edit-commands.d.ts.map +1 -1
- package/dist/visio/edit-comment-commands.d.ts +32 -0
- package/dist/visio/edit-comment-commands.d.ts.map +1 -0
- package/dist/visio/edit-comments.d.ts +7 -0
- package/dist/visio/edit-comments.d.ts.map +1 -0
- package/dist/visio/edit-connection-points.d.ts +19 -0
- package/dist/visio/edit-connection-points.d.ts.map +1 -0
- package/dist/visio/edit-connector-commands.d.ts +57 -0
- package/dist/visio/edit-connector-commands.d.ts.map +1 -0
- package/dist/visio/edit-connector-glue.d.ts +43 -0
- package/dist/visio/edit-connector-glue.d.ts.map +1 -0
- package/dist/visio/edit-connector-layout.d.ts +37 -0
- package/dist/visio/edit-connector-layout.d.ts.map +1 -0
- package/dist/visio/edit-connector-reroute.d.ts +30 -0
- package/dist/visio/edit-connector-reroute.d.ts.map +1 -0
- package/dist/visio/edit-connector.d.ts +42 -0
- package/dist/visio/edit-connector.d.ts.map +1 -0
- package/dist/visio/edit-data-commands.d.ts +49 -0
- package/dist/visio/edit-data-commands.d.ts.map +1 -0
- package/dist/visio/edit-data-parts.d.ts +34 -0
- package/dist/visio/edit-data-parts.d.ts.map +1 -0
- package/dist/visio/edit-data.d.ts +8 -0
- package/dist/visio/edit-data.d.ts.map +1 -0
- package/dist/visio/edit-delete.d.ts.map +1 -1
- package/dist/visio/edit-diagram-parts-commands.d.ts +55 -0
- package/dist/visio/edit-diagram-parts-commands.d.ts.map +1 -0
- package/dist/visio/edit-diagram-parts.d.ts +16 -0
- package/dist/visio/edit-diagram-parts.d.ts.map +1 -0
- package/dist/visio/edit-ellipse-geometry.d.ts +2 -0
- package/dist/visio/edit-ellipse-geometry.d.ts.map +1 -1
- package/dist/visio/edit-foreign-bitmap.d.ts +7 -0
- package/dist/visio/edit-foreign-bitmap.d.ts.map +1 -0
- package/dist/visio/edit-formatting-cell-admission.d.ts +2 -0
- package/dist/visio/edit-formatting-cell-admission.d.ts.map +1 -1
- package/dist/visio/edit-formatting-commands.d.ts +14 -1
- package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
- package/dist/visio/edit-formatting-effects.d.ts +50 -0
- package/dist/visio/edit-formatting-effects.d.ts.map +1 -0
- package/dist/visio/edit-formatting-glow.d.ts +43 -0
- package/dist/visio/edit-formatting-glow.d.ts.map +1 -0
- package/dist/visio/edit-formatting-paint-scope.d.ts.map +1 -1
- package/dist/visio/edit-formatting-paint.d.ts +6 -0
- package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
- package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
- package/dist/visio/edit-formatting-text-commands.d.ts +56 -0
- package/dist/visio/edit-formatting-text-commands.d.ts.map +1 -0
- package/dist/visio/edit-formatting-text-extra.d.ts +11 -0
- package/dist/visio/edit-formatting-text-extra.d.ts.map +1 -0
- package/dist/visio/edit-formatting-text.d.ts.map +1 -1
- package/dist/visio/edit-formatting-theme-context.d.ts +14 -0
- package/dist/visio/edit-formatting-theme-context.d.ts.map +1 -0
- package/dist/visio/edit-formatting.d.ts +2 -0
- package/dist/visio/edit-formatting.d.ts.map +1 -1
- package/dist/visio/edit-geometry-admission.d.ts +1 -1
- package/dist/visio/edit-geometry-admission.d.ts.map +1 -1
- package/dist/visio/edit-geometry.d.ts.map +1 -1
- package/dist/visio/edit-group-commands.d.ts +22 -0
- package/dist/visio/edit-group-commands.d.ts.map +1 -0
- package/dist/visio/edit-group-rotation.d.ts +7 -1
- package/dist/visio/edit-group-rotation.d.ts.map +1 -1
- package/dist/visio/edit-group.d.ts +17 -0
- package/dist/visio/edit-group.d.ts.map +1 -0
- package/dist/visio/edit-guide-commands.d.ts +26 -0
- package/dist/visio/edit-guide-commands.d.ts.map +1 -0
- package/dist/visio/edit-guides.d.ts +4 -0
- package/dist/visio/edit-guides.d.ts.map +1 -0
- package/dist/visio/edit-layer-commands.d.ts +20 -0
- package/dist/visio/edit-layer-commands.d.ts.map +1 -0
- package/dist/visio/edit-layers.d.ts +7 -0
- package/dist/visio/edit-layers.d.ts.map +1 -0
- package/dist/visio/edit-metadata-commands.d.ts +46 -0
- package/dist/visio/edit-metadata-commands.d.ts.map +1 -0
- package/dist/visio/edit-metadata.d.ts +4 -0
- package/dist/visio/edit-metadata.d.ts.map +1 -0
- package/dist/visio/edit-page-auto-size.d.ts +19 -0
- package/dist/visio/edit-page-auto-size.d.ts.map +1 -0
- package/dist/visio/edit-page-create.d.ts +24 -0
- package/dist/visio/edit-page-create.d.ts.map +1 -0
- package/dist/visio/edit-page-decoration.d.ts +14 -0
- package/dist/visio/edit-page-decoration.d.ts.map +1 -0
- package/dist/visio/edit-page-setup-commands.d.ts +57 -0
- package/dist/visio/edit-page-setup-commands.d.ts.map +1 -0
- package/dist/visio/edit-page-setup.d.ts +13 -0
- package/dist/visio/edit-page-setup.d.ts.map +1 -0
- package/dist/visio/edit-page-size.d.ts +4 -0
- package/dist/visio/edit-page-size.d.ts.map +1 -1
- package/dist/visio/edit-page-theme-commands.d.ts +15 -0
- package/dist/visio/edit-page-theme-commands.d.ts.map +1 -0
- package/dist/visio/edit-page-theme-recolor.d.ts +3 -0
- package/dist/visio/edit-page-theme-recolor.d.ts.map +1 -0
- package/dist/visio/edit-page-theme.d.ts +10 -0
- package/dist/visio/edit-page-theme.d.ts.map +1 -0
- package/dist/visio/edit-pages.d.ts.map +1 -1
- package/dist/visio/edit-path-commands.d.ts +19 -0
- package/dist/visio/edit-path-commands.d.ts.map +1 -0
- package/dist/visio/edit-path-create.d.ts +23 -0
- package/dist/visio/edit-path-create.d.ts.map +1 -0
- package/dist/visio/edit-picture.d.ts +7 -0
- package/dist/visio/edit-picture.d.ts.map +1 -0
- package/dist/visio/edit-recalculate-index.d.ts +2 -0
- package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
- package/dist/visio/edit-resize-anchor.d.ts +1 -1
- package/dist/visio/edit-resize-anchor.d.ts.map +1 -1
- package/dist/visio/edit-scope.d.ts.map +1 -1
- package/dist/visio/edit-shape-create.d.ts +8 -0
- package/dist/visio/edit-shape-create.d.ts.map +1 -1
- package/dist/visio/edit-shape-data-commands.d.ts +34 -0
- package/dist/visio/edit-shape-data-commands.d.ts.map +1 -0
- package/dist/visio/edit-shape-data.d.ts +22 -0
- package/dist/visio/edit-shape-data.d.ts.map +1 -0
- package/dist/visio/edit-shape-order.d.ts.map +1 -1
- package/dist/visio/edit-subprocess-commands.d.ts +27 -0
- package/dist/visio/edit-subprocess-commands.d.ts.map +1 -0
- package/dist/visio/edit-subprocess.d.ts +9 -0
- package/dist/visio/edit-subprocess.d.ts.map +1 -0
- package/dist/visio/edit-text-field-commands.d.ts +21 -0
- package/dist/visio/edit-text-field-commands.d.ts.map +1 -0
- package/dist/visio/edit-text-field.d.ts +5 -0
- package/dist/visio/edit-text-field.d.ts.map +1 -0
- package/dist/visio/edit-text-range-plan.d.ts.map +1 -1
- package/dist/visio/edit-text-ranges.d.ts.map +1 -1
- package/dist/visio/edit-text.d.ts.map +1 -1
- package/dist/visio/edit.d.ts +2 -1
- package/dist/visio/edit.d.ts.map +1 -1
- package/dist/visio/effects.d.ts +13 -0
- package/dist/visio/effects.d.ts.map +1 -0
- package/dist/visio/formula-evaluate.d.ts.map +1 -1
- package/dist/visio/index.cjs +26474 -19318
- package/dist/visio/index.d.ts +25 -1
- package/dist/visio/index.d.ts.map +1 -1
- package/dist/visio/index.mjs +26406 -19319
- package/dist/visio/model.d.ts +125 -0
- package/dist/visio/model.d.ts.map +1 -1
- package/dist/visio/page-decoration.d.ts +66 -0
- package/dist/visio/page-decoration.d.ts.map +1 -0
- package/dist/visio/page-scale.d.ts.map +1 -1
- package/dist/visio/page-setup.d.ts +8 -0
- package/dist/visio/page-setup.d.ts.map +1 -0
- package/dist/visio/page-theme.d.ts +9 -0
- package/dist/visio/page-theme.d.ts.map +1 -0
- package/dist/visio/paper-sizes.d.ts +24 -0
- package/dist/visio/paper-sizes.d.ts.map +1 -0
- package/dist/visio/parser.d.ts.map +1 -1
- package/dist/visio/path-fit.d.ts +69 -0
- package/dist/visio/path-fit.d.ts.map +1 -0
- package/dist/visio/shadow.d.ts +9 -0
- package/dist/visio/shadow.d.ts.map +1 -0
- package/dist/visio/shape-connections.d.ts +5 -0
- package/dist/visio/shape-connections.d.ts.map +1 -0
- package/dist/visio/shape-metadata.d.ts +3 -0
- package/dist/visio/shape-metadata.d.ts.map +1 -1
- package/dist/visio/shape-structure.d.ts +10 -0
- package/dist/visio/shape-structure.d.ts.map +1 -0
- package/dist/visio/shapes.d.ts.map +1 -1
- package/dist/visio/stencil-shapes.d.ts +20 -0
- package/dist/visio/stencil-shapes.d.ts.map +1 -0
- package/dist/visio/stencils.d.ts +30 -0
- package/dist/visio/stencils.d.ts.map +1 -0
- package/dist/visio/style.d.ts +3 -0
- package/dist/visio/style.d.ts.map +1 -1
- package/dist/visio/text-character.d.ts +5 -0
- package/dist/visio/text-character.d.ts.map +1 -0
- package/dist/visio/text-field-context.d.ts +6 -0
- package/dist/visio/text-field-context.d.ts.map +1 -0
- package/dist/visio/text-field-display.d.ts +12 -0
- package/dist/visio/text-field-display.d.ts.map +1 -0
- package/dist/visio/text-fields.d.ts +65 -0
- package/dist/visio/text-fields.d.ts.map +1 -0
- package/dist/visio/theme-builtins.d.ts +32 -0
- package/dist/visio/theme-builtins.d.ts.map +1 -0
- package/dist/visio/theme-write.d.ts +4 -0
- package/dist/visio/theme-write.d.ts.map +1 -0
- package/dist/visio/theme.d.ts +2 -0
- package/dist/visio/theme.d.ts.map +1 -1
- package/dist/visio/ui/auto-layout.d.ts +38 -0
- package/dist/visio/ui/auto-layout.d.ts.map +1 -0
- package/dist/visio/ui/change-case.d.ts +12 -0
- package/dist/visio/ui/change-case.d.ts.map +1 -0
- package/dist/visio/ui/connection-points.d.ts +45 -0
- package/dist/visio/ui/connection-points.d.ts.map +1 -0
- package/dist/visio/ui/connector-preview.d.ts +24 -0
- package/dist/visio/ui/connector-preview.d.ts.map +1 -0
- package/dist/visio/ui/data-graphic-rules.d.ts +45 -0
- package/dist/visio/ui/data-graphic-rules.d.ts.map +1 -0
- package/dist/visio/ui/data-graphics.d.ts +15 -0
- package/dist/visio/ui/data-graphics.d.ts.map +1 -0
- package/dist/visio/ui/data-table.d.ts +33 -0
- package/dist/visio/ui/data-table.d.ts.map +1 -0
- package/dist/visio/ui/diagram-check.d.ts +32 -0
- package/dist/visio/ui/diagram-check.d.ts.map +1 -0
- package/dist/visio/ui/diagram-parts.d.ts +20 -0
- package/dist/visio/ui/diagram-parts.d.ts.map +1 -0
- package/dist/visio/ui/draw-path-plan.d.ts +21 -0
- package/dist/visio/ui/draw-path-plan.d.ts.map +1 -0
- package/dist/visio/ui/draw-plan.d.ts +11 -3
- package/dist/visio/ui/draw-plan.d.ts.map +1 -1
- package/dist/visio/ui/edit-commands.d.ts.map +1 -1
- package/dist/visio/ui/format-painter.d.ts +25 -0
- package/dist/visio/ui/format-painter.d.ts.map +1 -0
- package/dist/visio/ui/guides.d.ts +34 -0
- package/dist/visio/ui/guides.d.ts.map +1 -0
- package/dist/visio/ui/index.cjs +8006 -2705
- package/dist/visio/ui/index.d.ts +25 -0
- package/dist/visio/ui/index.d.ts.map +1 -1
- package/dist/visio/ui/index.mjs +7894 -2706
- package/dist/visio/ui/insert.d.ts +26 -0
- package/dist/visio/ui/insert.d.ts.map +1 -0
- package/dist/visio/ui/layer-assign.d.ts +31 -0
- package/dist/visio/ui/layer-assign.d.ts.map +1 -0
- package/dist/visio/ui/page-edit.d.ts.map +1 -1
- package/dist/visio/ui/page-setup.d.ts +50 -0
- package/dist/visio/ui/page-setup.d.ts.map +1 -0
- package/dist/visio/ui/page-size.d.ts +2 -11
- package/dist/visio/ui/page-size.d.ts.map +1 -1
- package/dist/visio/ui/paste-text.d.ts +13 -0
- package/dist/visio/ui/paste-text.d.ts.map +1 -0
- package/dist/visio/ui/scene-data.d.ts +4 -0
- package/dist/visio/ui/scene-data.d.ts.map +1 -0
- package/dist/visio/ui/scene-details.d.ts.map +1 -1
- package/dist/visio/ui/scene-validation-text.d.ts +8 -0
- package/dist/visio/ui/scene-validation-text.d.ts.map +1 -0
- package/dist/visio/ui/scene-validation.d.ts.map +1 -1
- package/dist/visio/ui/select-by-type.d.ts +35 -0
- package/dist/visio/ui/select-by-type.d.ts.map +1 -0
- package/dist/visio/ui/shape-arrange.d.ts.map +1 -1
- package/dist/visio/ui/shape-change.d.ts +11 -0
- package/dist/visio/ui/shape-change.d.ts.map +1 -0
- package/dist/visio/ui/shape-effects.d.ts +14 -0
- package/dist/visio/ui/shape-effects.d.ts.map +1 -0
- package/dist/visio/ui/shape-formatting.d.ts +5 -0
- package/dist/visio/ui/shape-formatting.d.ts.map +1 -1
- package/dist/visio/ui/shape-group.d.ts +9 -0
- package/dist/visio/ui/shape-group.d.ts.map +1 -0
- package/dist/visio/ui/shape-move.d.ts +5 -2
- package/dist/visio/ui/shape-move.d.ts.map +1 -1
- package/dist/visio/ui/shape-report.d.ts +37 -0
- package/dist/visio/ui/shape-report.d.ts.map +1 -0
- package/dist/visio/ui/shape-resize.d.ts.map +1 -1
- package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
- package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
- package/dist/visio/ui/subprocess.d.ts +13 -0
- package/dist/visio/ui/subprocess.d.ts.map +1 -0
- package/dist/visio/ui/text-block.d.ts +42 -0
- package/dist/visio/ui/text-block.d.ts.map +1 -0
- package/dist/visio/ui/text-dialog.d.ts +54 -0
- package/dist/visio/ui/text-dialog.d.ts.map +1 -0
- package/dist/visio/ui/text-draft.d.ts +25 -0
- package/dist/visio/ui/text-draft.d.ts.map +1 -0
- package/dist/visio/ui/text-field-catalog.d.ts +17 -0
- package/dist/visio/ui/text-field-catalog.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SMART_ART_DEFINITION_PARTS, VML_SHAPE_TAGS, isAlternateContentChoiceXmlSupported, parseVmlElement, unwrapAlternateContent, xmlChild, xmlAttr, parseDrawingMediaReference, cropShapeForPresetGeometry, isHeaderFooterPlaceholder, xmlPath, inheritedPlaceholderFieldType, parseParagraphLevel, xmlHasChild, parseParagraphExtraAttributes, parseParagraphMargins, parseAlignmentAttr, parseParagraphRtl, parseTabStops, resolveParagraphAlignment, xmlText, parseBodyPrBooleanAttrs, selectAlternateContentBranch, parseBulletSizePercent, extractColorChoiceXml, formatAutoNumberMarker, parseParagraphSpacingPx, createBuiltinVariables, resolveCoordinate, parseStructuredCustomGeometry, parseAdjustmentValues, parseGuideDefinitions, evaluateGuides, evaluateGeometryPaths, inheritCustomGeometryCommandOrder, parseInkMlContent, parseModel3DScene, remapElementShapeIds, parseShapeId, isTemplateElementId, remapShapeIdReferences, reapplyAlternateContentToTree, buildOle2, SHAPE_TREE_ELEMENT_TAGS, MAX_SHAPE_ID, orderedXmlKey, safeResolveZipPath, parseDataUrlToBytes, base64Decode, EMU_PER_PX, reorderObjectKeys, encodeCompressedPng, zlibStore, hash, concatArrays, encodePasswordUtf16LE, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, uint32LE, pptxActionToElementAction, buildClrMapOverrideXml, applyActiveXControlsToSlide, BLIP_FILL_ORDER, SP_PR_ORDER, hasShapeProperties, ensureXmlChild, hasTextProperties, inkElementToStrokes, buildInkMlContent, ensureXmlChildOrCreate, isXmlNode, applyChartLayouts, stripXmlOrderSuffix, serializeTabStop, colorsEqual, generateFontGuid, applyBubbleChartOptions, applyChartUpDownBars, applyDataLabelsRangeToDLbls, applyChartAxisScaling, applyChartAxisLabelFormatting, upsertChartAxisChild, applyChartDateAxisUnits, applyChartAxisDisplayUnitsToXml, writeChartShapeProps, resolveTxPrDefRPr, buildDefRPrTextProperties, buildChartGradFillXml, applySeriesMarkerToXml, applySeriesDataPointsToXml, chartColorHex, applyChartManualLayout, buildTrendlineLabel, serializeColorChoice, replaceOleEmbedding, findKey, collectAllText, buildNodeGuidMap, buildPresentationGuidMap, regenerateSmartArtDrawingShapes, buildFabricatedDrawingXml, buildFabricatedDiagramDataXml, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, applyDiagramRelationshipIds, buildSaveTimeCustomGeometryXml, applyCustomGeometryGuideOverrides, avLstForPreset, filterValidShapeAdjustmentEntries, applyDrawingMediaReference, XML_PROLOG, DGM_XMLNS, xmlEscape, writeBodyPrBooleanAttrs, applyTextBodySp3d, writeShapeEffects, SHAPE_STYLE_ORDER, roundCoordinate, scaleVectorToIntegers, EMU_PER_PIXEL, P14_GUIDE_URI, P15_GUIDE_URI, buildGuideListExtension, resetSpPrFormattingForStyleMatrix, fillIsPurelyStyleMatrix, serializeColorChoiceWithRef, createLineStyleGate, applyDrawingLineDash, getSignaturePathsToStrip, mergeSmartArtPointXml, mergeSmartArtConnectionXml, obfuscateFont, containsConvertibleStrictNamespaceAttribute, convertXmlToStrict, applySeriesPictureOptionsToXml, findChartExtByUri, findChildByLocalName, regenerateClonedUniqueId, buildChartUniqueIdExtLst, createOfficeGuid, isContentPoint, newSmartArtGuid, parseChartUserShapesDrawing, xmlChildren, applyChartGradientToSpPr, setAutoTitleDeleted, insertAt, replaceFirstText, shouldRebuildFromParagraphs, buildPointFromParagraphs, shouldRebuildFromRuns, buildPointFromRuns, buildPointText, ensureXmlChildren, TC_PR_BORDERS_ORDER, writeChartColorChoice, parseChartFormulaRange, expandRangeAddresses, applyCellWritesToWorksheet, stripParentDirSegments, parseChartUniqueId, buildChartMarkerXml, chartGradientsEqual, chartColorChoiceValue, preservesSpreadsheetXmlWhitespace, buildEffectDagTreeFromXml, syncPictureShapeTypeWithCropShape, buildSrgbColorChoice, fetchUrlToBytes, parseChartWideTextStyle, parseDefRPrTextStyle, parseChartDataLabelOptions, shadowOffsetToDistanceAndDirection, positiveFixedAngleAttribute, xmlAttrNumber, parseCustomShows, parseShapeProps, parseActiveXControlsFromSlide, convertMetafileToDataUrl, blobUrlToDataUrl, ooxmlGradientAngleToCssDegrees, isAlternateContentChoiceSupported, SvgExporter, detectStrictConformance, normalizeStrictXml, DEFAULT_CHART_GRADIENT_ANGLE, supportsChartGradientFill, svgToCustomGeometryPaths, normalizeStShapeType, applyCustomShows, applySections, reorderObjectKeysByLocalName, PRESENTATION_CHILD_ORDER, applyKinsokuToXml, normalizeNamespaceUri, captureStyleBaseline, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, STYLE_MATRIX_EFFECT_KEYS, detectOleObjectType, inferOleExtensionFromTarget, deriveSlideTitles, parseSlideDrawingGuides, parseP14DirectChild, parseP14FromExtLst, P14_TRANSITION_TYPES, decodeXmlEntities, preservesXmlWhitespace, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, encodeXmlAttributeValue, encodeXmlTextValue, stripXmlOrderMarkers, MIN_ELEMENT_SIZE, createDrawingObjectId, DEFAULT_TEXT_FONT_SIZE, EncryptedFileError, decodePptxJsonText, deserializePptxFromJson, applyImportedPptxData, MIN_TABLE_DIMENSION, MAX_TABLE_DIMENSION, escAttr, escText, SYSTEM_COLOR_MAP, PRESET_COLOR_MAP, effectChild, mergeEffectNode, mergeAttributeEffectNode, estimateMediaDurationMs, parseVmlElements, prismFamilyFlags, prismFamilyTypeOfNode, prismFamilyTypeForFlags, P14_DIR_IS_ORIENTATION_TYPE, IncorrectPasswordError, applyThemeToData, detectFileFormat, parseOle2, decryptPptx, encryptPptx, OOXML_PERCENT_UNITS, parseDrawingLineDash, parseLineSpacingMultiplier, parseLineSpacingExactPt, parseEncryptionInfo, RC4_ALG_ID, isOle2CompoundFile, ENTRY_TYPE_ROOT, PML_XMLNS, solidFill, esc, parsePresentationDrawingGuides, parsePresentationSmartTags, resolveLayoutDisplayName, detectDigitalSignatures, unwrapOleEmbedding, mimeTypeForOleFile, oleBytesToDataUrl, emu, extractGuidFromPartName, deobfuscateFont, detectFontFormat, gradFill, parseKinsoku, parseLineStyle, parseChartUpDownBars, parseDataTable, parseChart3DSurfaces, parseChartAxes, parseBubbleChartOptions, parseChartLayouts, parseCxChartSeries, parseChartDataPointPictureBlipRel, parseSeriesTrendlines, parseSeriesErrBars, parseSeriesDataPoints, parseMarker, parseSeriesDataLabels, parseChartDataPointPicture, parseImplicitBlipPictureFill, parseEmbeddedXlsx, EMU_PER_POINT, parseDiagramRelationshipIds, parseSmartArtTextParagraphs, firstParagraphRuns, smartArtParagraphsText, parseSmartArtPresLayoutVars, readChartManualLayoutValues, parseSmartArtConnection, projectSmartArtNodeText, resolveSmartArtNodeStyleRoles, resolveSmartArtNodeCoherent3DOff, parseSmartArtDefinitionMetadata, parseSmartArtColorStyleLabels, buildSmartArtColorLists, buildSmartArtColorRoleMap, parseSmartArtQuickStyleLabels, resolveSmartArtEffectIntensity, parseSmartArtStyleLabelRefs, extractStyleReferenceColorXml, withThemePlaceholderColor, getElementOrientationMatrix, isTextOrientationMatrix, TEXT_ORIENTATION_IDENTITY, multiplyTextOrientationMatrices } from './chunk-
|
|
1
|
+
import { SMART_ART_DEFINITION_PARTS, VML_SHAPE_TAGS, isAlternateContentChoiceXmlSupported, parseVmlElement, unwrapAlternateContent, xmlChild, xmlAttr, parseDrawingMediaReference, cropShapeForPresetGeometry, isHeaderFooterPlaceholder, xmlPath, inheritedPlaceholderFieldType, parseParagraphLevel, xmlHasChild, parseParagraphExtraAttributes, parseParagraphMargins, parseAlignmentAttr, parseParagraphRtl, parseTabStops, resolveParagraphAlignment, xmlText, parseBodyPrBooleanAttrs, selectAlternateContentBranch, parseBulletSizePercent, extractColorChoiceXml, formatAutoNumberMarker, parseParagraphSpacingPx, createBuiltinVariables, resolveCoordinate, parseStructuredCustomGeometry, parseAdjustmentValues, parseGuideDefinitions, evaluateGuides, evaluateGeometryPaths, inheritCustomGeometryCommandOrder, parseInkMlContent, parseModel3DScene, remapElementShapeIds, parseShapeId, isTemplateElementId, remapShapeIdReferences, reapplyAlternateContentToTree, buildOle2, SHAPE_TREE_ELEMENT_TAGS, MAX_SHAPE_ID, orderedXmlKey, safeResolveZipPath, parseDataUrlToBytes, base64Decode, EMU_PER_PX, reorderObjectKeys, encodeCompressedPng, zlibStore, hash, concatArrays, encodePasswordUtf16LE, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, uint32LE, pptxActionToElementAction, buildClrMapOverrideXml, applyActiveXControlsToSlide, BLIP_FILL_ORDER, SP_PR_ORDER, hasShapeProperties, ensureXmlChild, hasTextProperties, inkElementToStrokes, buildInkMlContent, ensureXmlChildOrCreate, isXmlNode, applyChartLayouts, stripXmlOrderSuffix, serializeTabStop, colorsEqual, generateFontGuid, applyBubbleChartOptions, applyChartUpDownBars, applyDataLabelsRangeToDLbls, applyChartAxisScaling, applyChartAxisLabelFormatting, upsertChartAxisChild, applyChartDateAxisUnits, applyChartAxisDisplayUnitsToXml, writeChartShapeProps, resolveTxPrDefRPr, buildDefRPrTextProperties, buildChartGradFillXml, applySeriesMarkerToXml, applySeriesDataPointsToXml, chartColorHex, applyChartManualLayout, buildTrendlineLabel, serializeColorChoice, replaceOleEmbedding, findKey, collectAllText, buildNodeGuidMap, buildPresentationGuidMap, regenerateSmartArtDrawingShapes, buildFabricatedDrawingXml, buildFabricatedDiagramDataXml, DIAGRAM_DRAWING_CONTENT_TYPE, DIAGRAM_DRAWING_REL_TYPE, applyDiagramRelationshipIds, buildSaveTimeCustomGeometryXml, applyCustomGeometryGuideOverrides, avLstForPreset, filterValidShapeAdjustmentEntries, applyDrawingMediaReference, XML_PROLOG, DGM_XMLNS, xmlEscape, writeBodyPrBooleanAttrs, applyTextBodySp3d, writeShapeEffects, SHAPE_STYLE_ORDER, roundCoordinate, scaleVectorToIntegers, EMU_PER_PIXEL, P14_GUIDE_URI, P15_GUIDE_URI, buildGuideListExtension, resetSpPrFormattingForStyleMatrix, fillIsPurelyStyleMatrix, serializeColorChoiceWithRef, createLineStyleGate, applyDrawingLineDash, getSignaturePathsToStrip, mergeSmartArtPointXml, mergeSmartArtConnectionXml, obfuscateFont, containsConvertibleStrictNamespaceAttribute, convertXmlToStrict, applySeriesPictureOptionsToXml, findChartExtByUri, findChildByLocalName, regenerateClonedUniqueId, buildChartUniqueIdExtLst, createOfficeGuid, isContentPoint, newSmartArtGuid, parseChartUserShapesDrawing, xmlChildren, applyChartGradientToSpPr, setAutoTitleDeleted, insertAt, replaceFirstText, shouldRebuildFromParagraphs, buildPointFromParagraphs, shouldRebuildFromRuns, buildPointFromRuns, buildPointText, ensureXmlChildren, TC_PR_BORDERS_ORDER, writeChartColorChoice, parseChartFormulaRange, expandRangeAddresses, applyCellWritesToWorksheet, stripParentDirSegments, parseChartUniqueId, buildChartMarkerXml, chartGradientsEqual, chartColorChoiceValue, preservesSpreadsheetXmlWhitespace, buildEffectDagTreeFromXml, syncPictureShapeTypeWithCropShape, buildSrgbColorChoice, fetchUrlToBytes, parseChartWideTextStyle, parseDefRPrTextStyle, parseChartDataLabelOptions, shadowOffsetToDistanceAndDirection, positiveFixedAngleAttribute, xmlAttrNumber, parseCustomShows, parseShapeProps, parseActiveXControlsFromSlide, convertMetafileToDataUrl, blobUrlToDataUrl, ooxmlGradientAngleToCssDegrees, isAlternateContentChoiceSupported, SvgExporter, detectStrictConformance, normalizeStrictXml, DEFAULT_CHART_GRADIENT_ANGLE, supportsChartGradientFill, svgToCustomGeometryPaths, normalizeStShapeType, applyCustomShows, applySections, reorderObjectKeysByLocalName, PRESENTATION_CHILD_ORDER, applyKinsokuToXml, normalizeNamespaceUri, captureStyleBaseline, STYLE_MATRIX_FILL_KEYS, STYLE_MATRIX_LINE_KEYS, STYLE_MATRIX_EFFECT_KEYS, detectOleObjectType, inferOleExtensionFromTarget, deriveSlideTitles, parseSlideDrawingGuides, parseP14DirectChild, parseP14FromExtLst, P14_TRANSITION_TYPES, decodeXmlEntities, preservesXmlWhitespace, annotateCustomGeometryCommandOrder, annotateSmartArtTextOrder, encodeXmlAttributeValue, encodeXmlTextValue, stripXmlOrderMarkers, MIN_ELEMENT_SIZE, createDrawingObjectId, DEFAULT_TEXT_FONT_SIZE, EncryptedFileError, decodePptxJsonText, deserializePptxFromJson, applyImportedPptxData, MIN_TABLE_DIMENSION, MAX_TABLE_DIMENSION, escAttr, escText, SYSTEM_COLOR_MAP, PRESET_COLOR_MAP, effectChild, mergeEffectNode, mergeAttributeEffectNode, estimateMediaDurationMs, parseVmlElements, prismFamilyFlags, prismFamilyTypeOfNode, prismFamilyTypeForFlags, P14_DIR_IS_ORIENTATION_TYPE, IncorrectPasswordError, applyThemeToData, detectFileFormat, parseOle2, decryptPptx, encryptPptx, OOXML_PERCENT_UNITS, parseDrawingLineDash, parseLineSpacingMultiplier, parseLineSpacingExactPt, parseEncryptionInfo, RC4_ALG_ID, isOle2CompoundFile, ENTRY_TYPE_ROOT, PML_XMLNS, solidFill, esc, parsePresentationDrawingGuides, parsePresentationSmartTags, resolveLayoutDisplayName, detectDigitalSignatures, unwrapOleEmbedding, mimeTypeForOleFile, oleBytesToDataUrl, emu, extractGuidFromPartName, deobfuscateFont, detectFontFormat, gradFill, parseKinsoku, parseLineStyle, parseChartUpDownBars, parseDataTable, parseChart3DSurfaces, parseChartAxes, parseBubbleChartOptions, parseChartLayouts, parseCxChartSeries, parseChartDataPointPictureBlipRel, parseSeriesTrendlines, parseSeriesErrBars, parseSeriesDataPoints, parseMarker, parseSeriesDataLabels, parseChartDataPointPicture, parseImplicitBlipPictureFill, parseEmbeddedXlsx, EMU_PER_POINT, parseDiagramRelationshipIds, parseSmartArtTextParagraphs, firstParagraphRuns, smartArtParagraphsText, parseSmartArtPresLayoutVars, readChartManualLayoutValues, parseSmartArtConnection, projectSmartArtNodeText, resolveSmartArtNodeStyleRoles, resolveSmartArtNodeCoherent3DOff, parseSmartArtDefinitionMetadata, parseSmartArtColorStyleLabels, buildSmartArtColorLists, buildSmartArtColorRoleMap, parseSmartArtQuickStyleLabels, resolveSmartArtEffectIntensity, parseSmartArtStyleLabelRefs, extractStyleReferenceColorXml, withThemePlaceholderColor, getElementOrientationMatrix, isTextOrientationMatrix, TEXT_ORIENTATION_IDENTITY, multiplyTextOrientationMatrices } from './chunk-UQQGC6O3.mjs';
|
|
2
2
|
import { DIGITAL_SIGNATURE_ORIGIN_REL_TYPE } from './chunk-KBIJI6P5.mjs';
|
|
3
3
|
import { resolveSmartArtLayoutCategory } from './chunk-3GXV5MPC.mjs';
|
|
4
4
|
import { cloneXmlObject, applySmartArtLayoutDefinition, cloneSlide, parseSmartArtLayoutDefinition } from './chunk-54S5A5PZ.mjs';
|
|
@@ -60389,7 +60389,27 @@ function writeDiagonalBorders(tcPr, style, emuPerPx) {
|
|
|
60389
60389
|
}
|
|
60390
60390
|
}
|
|
60391
60391
|
}
|
|
60392
|
-
function
|
|
60392
|
+
function writeEmptyParagraphSizes(xmlCell, style, paragraphs, ensureArray12) {
|
|
60393
|
+
const txBody = xmlCell["a:txBody"];
|
|
60394
|
+
if (!txBody || typeof txBody !== "object") {
|
|
60395
|
+
return;
|
|
60396
|
+
}
|
|
60397
|
+
const xmlParagraphs = ensureXmlChildren(txBody, "a:p");
|
|
60398
|
+
const empty = xmlParagraphs.map(
|
|
60399
|
+
(paragraph) => ["a:r", "a:fld", "a:br"].every((tag) => ensureArray12(paragraph[tag]).length === 0)
|
|
60400
|
+
);
|
|
60401
|
+
const cellFallback = empty.every(Boolean) ? style.fontSize : void 0;
|
|
60402
|
+
for (const [index, paragraph] of xmlParagraphs.entries()) {
|
|
60403
|
+
const size = paragraphs?.[index]?.endParaFontSize ?? cellFallback;
|
|
60404
|
+
if (!empty[index] || size === void 0) {
|
|
60405
|
+
continue;
|
|
60406
|
+
}
|
|
60407
|
+
const endParaRPr = ensureXmlChildOrCreate(paragraph, "a:endParaRPr", "last");
|
|
60408
|
+
endParaRPr["@_sz"] = String(Math.round(size * 100));
|
|
60409
|
+
}
|
|
60410
|
+
}
|
|
60411
|
+
function writeCellTextFormatting(xmlCell, style, ensureArray12, cellParagraphs2) {
|
|
60412
|
+
writeEmptyParagraphSizes(xmlCell, style, cellParagraphs2, ensureArray12);
|
|
60393
60413
|
if (style.bold === void 0 && style.italic === void 0 && style.underline === void 0 && style.fontSize === void 0 && style.color === void 0) {
|
|
60394
60414
|
return;
|
|
60395
60415
|
}
|
|
@@ -60695,7 +60715,7 @@ var PptxHandlerRuntime22 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
|
|
|
60695
60715
|
delete tcPr["a:tcMar"];
|
|
60696
60716
|
writeDiagonalBorders(tcPr, style, _PptxHandlerRuntime.EMU_PER_PX);
|
|
60697
60717
|
if (!isRichCellTxBody(xmlCell["a:txBody"], this.ensureArray.bind(this))) {
|
|
60698
|
-
writeCellTextFormatting(xmlCell, style, this.ensureArray.bind(this));
|
|
60718
|
+
writeCellTextFormatting(xmlCell, style, this.ensureArray.bind(this), paragraphs);
|
|
60699
60719
|
}
|
|
60700
60720
|
const reordered = reorderObjectKeys(tcPr, TC_PR_BORDERS_ORDER);
|
|
60701
60721
|
for (const key2 of Object.keys(tcPr)) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-
|
|
2
|
-
import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, PptxXmlBuilder } from './chunk-
|
|
3
|
-
import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, hasTextProperties } from './chunk-
|
|
1
|
+
import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-EPNLABIU.mjs';
|
|
2
|
+
import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, PptxXmlBuilder } from './chunk-5L4DHJV3.mjs';
|
|
3
|
+
import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, hasTextProperties } from './chunk-UQQGC6O3.mjs';
|
|
4
4
|
import { cloneSlide, cloneElement } from './chunk-54S5A5PZ.mjs';
|
|
5
5
|
import JSZip from 'jszip';
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-
|
|
1
|
+
import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-UQQGC6O3.mjs';
|
|
2
2
|
|
|
3
3
|
// pptx/converter/media-context.ts
|
|
4
4
|
var MIME_TO_EXT = {
|
|
@@ -21460,7 +21460,7 @@ function findTextBearingElementById(elements2, elementId) {
|
|
|
21460
21460
|
}
|
|
21461
21461
|
async function loadNestedDeck(pptxBytes) {
|
|
21462
21462
|
try {
|
|
21463
|
-
const { PptxHandler } = await import('./PptxHandler-
|
|
21463
|
+
const { PptxHandler } = await import('./PptxHandler-DDEJ6CKU.mjs');
|
|
21464
21464
|
const handler = new PptxHandler();
|
|
21465
21465
|
const data = await handler.load(pptxBytes.buffer.slice(0));
|
|
21466
21466
|
return { handler, slides: data.slides };
|
package/dist/drawingml/index.cjs
CHANGED
|
@@ -840,7 +840,7 @@ function drawingFillXml(fill) {
|
|
|
840
840
|
const root = doc.documentElement;
|
|
841
841
|
if (root.namespaceURI !== NS.a || root.localName !== "gradFill")
|
|
842
842
|
throw new Error("Invalid gradient source XML");
|
|
843
|
-
const
|
|
843
|
+
const fragment2 = (xml) => doc.importNode(elements(parseXml(`<w xmlns:a="${NS.a}">${xml}</w>`).documentElement)[0], true);
|
|
844
844
|
let list = first(root, "gsLst", NS.a);
|
|
845
845
|
if (!list) {
|
|
846
846
|
list = doc.createElementNS(NS.a, "a:gsLst");
|
|
@@ -855,7 +855,7 @@ function drawingFillXml(fill) {
|
|
|
855
855
|
node.setAttribute("pos", String(Math.round(stop.position * 1e3)));
|
|
856
856
|
for (const old of elements(node))
|
|
857
857
|
if (old.namespaceURI === NS.a && old.localName.endsWith("Clr")) node.removeChild(old);
|
|
858
|
-
node.insertBefore(
|
|
858
|
+
node.insertBefore(fragment2(drawingColorXml(stop.color)), node.firstChild);
|
|
859
859
|
});
|
|
860
860
|
for (const stop of stops.slice(fill.stops.length)) list.removeChild(stop);
|
|
861
861
|
for (const node of elements(root))
|
|
@@ -905,6 +905,105 @@ function drawingFillXml(fill) {
|
|
|
905
905
|
return buildXml(doc);
|
|
906
906
|
}
|
|
907
907
|
|
|
908
|
+
// drawingml/theme-model.ts
|
|
909
|
+
var THEME_COLOR_SLOTS = [
|
|
910
|
+
"dk1",
|
|
911
|
+
"lt1",
|
|
912
|
+
"dk2",
|
|
913
|
+
"lt2",
|
|
914
|
+
"accent1",
|
|
915
|
+
"accent2",
|
|
916
|
+
"accent3",
|
|
917
|
+
"accent4",
|
|
918
|
+
"accent5",
|
|
919
|
+
"accent6",
|
|
920
|
+
"hlink",
|
|
921
|
+
"folHlink"
|
|
922
|
+
];
|
|
923
|
+
var DEFAULT_THEME_COLOR_MAP = {
|
|
924
|
+
bg1: "lt1",
|
|
925
|
+
tx1: "dk1",
|
|
926
|
+
bg2: "lt2",
|
|
927
|
+
tx2: "dk2"
|
|
928
|
+
};
|
|
929
|
+
|
|
930
|
+
// drawingml/write-theme.ts
|
|
931
|
+
function fragment(host, xml, namespaces) {
|
|
932
|
+
const declarations = Object.entries({ a: NS.a, ...namespaces }).map(([prefix, uri]) => ` xmlns:${prefix}="${uri}"`).join("");
|
|
933
|
+
const wrapper = parseXml(`<w${declarations}>${xml}</w>`, { label: "DrawingML theme fragment" });
|
|
934
|
+
return elements(wrapper.documentElement).map(
|
|
935
|
+
(node) => host.ownerDocument.importNode(node, true)
|
|
936
|
+
);
|
|
937
|
+
}
|
|
938
|
+
function extensionList(parent, extensions, namespaces) {
|
|
939
|
+
const entries = Object.entries(extensions ?? {});
|
|
940
|
+
if (!entries.length) return;
|
|
941
|
+
const doc = parent.ownerDocument;
|
|
942
|
+
const list = doc.createElementNS(NS.a, "a:extLst");
|
|
943
|
+
for (const [uri, xml] of entries) {
|
|
944
|
+
const ext = doc.createElementNS(NS.a, "a:ext");
|
|
945
|
+
ext.setAttribute("uri", uri);
|
|
946
|
+
for (const node of fragment(ext, xml, namespaces)) ext.appendChild(node);
|
|
947
|
+
list.appendChild(ext);
|
|
948
|
+
}
|
|
949
|
+
parent.appendChild(list);
|
|
950
|
+
}
|
|
951
|
+
function fontCollection(parent, name, fonts) {
|
|
952
|
+
const doc = parent.ownerDocument;
|
|
953
|
+
const node = doc.createElementNS(NS.a, `a:${name}`);
|
|
954
|
+
for (const [local, face] of [
|
|
955
|
+
["latin", fonts.latin],
|
|
956
|
+
["ea", fonts.eastAsia],
|
|
957
|
+
["cs", fonts.complexScript]
|
|
958
|
+
]) {
|
|
959
|
+
const font = doc.createElementNS(NS.a, `a:${local}`);
|
|
960
|
+
font.setAttribute("typeface", face ?? "");
|
|
961
|
+
node.appendChild(font);
|
|
962
|
+
}
|
|
963
|
+
for (const [script, face] of Object.entries(fonts.scripts)) {
|
|
964
|
+
const font = doc.createElementNS(NS.a, "a:font");
|
|
965
|
+
font.setAttribute("script", script);
|
|
966
|
+
font.setAttribute("typeface", face);
|
|
967
|
+
node.appendChild(font);
|
|
968
|
+
}
|
|
969
|
+
parent.appendChild(node);
|
|
970
|
+
}
|
|
971
|
+
function drawingThemeXml(theme, parts) {
|
|
972
|
+
const namespaces = parts.namespaces ?? {};
|
|
973
|
+
const doc = parseXml(
|
|
974
|
+
`<a:theme xmlns:a="${NS.a}"${Object.entries(namespaces).map(([prefix, uri]) => ` xmlns:${prefix}="${uri}"`).join("")}/>`
|
|
975
|
+
);
|
|
976
|
+
const root = doc.documentElement;
|
|
977
|
+
if (theme.name !== void 0) root.setAttribute("name", theme.name);
|
|
978
|
+
const elementsNode = doc.createElementNS(NS.a, "a:themeElements");
|
|
979
|
+
root.appendChild(elementsNode);
|
|
980
|
+
const scheme = doc.createElementNS(NS.a, "a:clrScheme");
|
|
981
|
+
scheme.setAttribute("name", theme.colorScheme.name ?? theme.name ?? "Custom");
|
|
982
|
+
for (const slot of THEME_COLOR_SLOTS) {
|
|
983
|
+
const color = theme.colorScheme.colors[slot];
|
|
984
|
+
if (!color) throw new Error(`The theme colour scheme has no ${slot} colour.`);
|
|
985
|
+
const node = doc.createElementNS(NS.a, `a:${slot}`);
|
|
986
|
+
for (const child of fragment(node, drawingColorXml(color), namespaces)) node.appendChild(child);
|
|
987
|
+
scheme.appendChild(node);
|
|
988
|
+
}
|
|
989
|
+
extensionList(scheme, parts.colorSchemeExtensions, namespaces);
|
|
990
|
+
elementsNode.appendChild(scheme);
|
|
991
|
+
const fonts = doc.createElementNS(NS.a, "a:fontScheme");
|
|
992
|
+
fonts.setAttribute("name", theme.fontScheme.name ?? theme.name ?? "Custom");
|
|
993
|
+
fontCollection(fonts, "majorFont", theme.fontScheme.major);
|
|
994
|
+
fontCollection(fonts, "minorFont", theme.fontScheme.minor);
|
|
995
|
+
elementsNode.appendChild(fonts);
|
|
996
|
+
const format = fragment(elementsNode, parts.formatScheme, namespaces);
|
|
997
|
+
if (format.length !== 1 || format[0].localName !== "fmtScheme" || format[0].namespaceURI !== NS.a)
|
|
998
|
+
throw new Error("The theme format scheme must be one a:fmtScheme element.");
|
|
999
|
+
elementsNode.appendChild(format[0]);
|
|
1000
|
+
extensionList(elementsNode, parts.themeElementsExtensions, namespaces);
|
|
1001
|
+
root.appendChild(doc.createElementNS(NS.a, "a:objectDefaults"));
|
|
1002
|
+
root.appendChild(doc.createElementNS(NS.a, "a:extraClrSchemeLst"));
|
|
1003
|
+
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
1004
|
+
${buildXml(doc)}`;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
908
1007
|
// drawingml/gradient-preset-data.ts
|
|
909
1008
|
var OFFICE_GRADIENT_PRESET_DATA = [
|
|
910
1009
|
[
|
|
@@ -1359,28 +1458,6 @@ function buildRectPathGradientImage(stops, focalPoint, fillToRect) {
|
|
|
1359
1458
|
return `url("data:image/svg+xml,${encodeURIComponent(markup)}")`;
|
|
1360
1459
|
}
|
|
1361
1460
|
|
|
1362
|
-
// drawingml/theme-model.ts
|
|
1363
|
-
var THEME_COLOR_SLOTS = [
|
|
1364
|
-
"dk1",
|
|
1365
|
-
"lt1",
|
|
1366
|
-
"dk2",
|
|
1367
|
-
"lt2",
|
|
1368
|
-
"accent1",
|
|
1369
|
-
"accent2",
|
|
1370
|
-
"accent3",
|
|
1371
|
-
"accent4",
|
|
1372
|
-
"accent5",
|
|
1373
|
-
"accent6",
|
|
1374
|
-
"hlink",
|
|
1375
|
-
"folHlink"
|
|
1376
|
-
];
|
|
1377
|
-
var DEFAULT_THEME_COLOR_MAP = {
|
|
1378
|
-
bg1: "lt1",
|
|
1379
|
-
tx1: "dk1",
|
|
1380
|
-
bg2: "lt2",
|
|
1381
|
-
tx2: "dk2"
|
|
1382
|
-
};
|
|
1383
|
-
|
|
1384
1461
|
// drawingml/theme.ts
|
|
1385
1462
|
var MAP_KEYS = [
|
|
1386
1463
|
"bg1",
|
|
@@ -1509,6 +1586,7 @@ exports.drawingColorBrightness = drawingColorBrightness;
|
|
|
1509
1586
|
exports.drawingColorCss = drawingColorCss;
|
|
1510
1587
|
exports.drawingColorXml = drawingColorXml;
|
|
1511
1588
|
exports.drawingFillXml = drawingFillXml;
|
|
1589
|
+
exports.drawingThemeXml = drawingThemeXml;
|
|
1512
1590
|
exports.fillElementOf = fillElementOf;
|
|
1513
1591
|
exports.integerAttribute = integerAttribute;
|
|
1514
1592
|
exports.isThemeColorSlot = isThemeColorSlot;
|
|
@@ -10,6 +10,7 @@ export * from './drawing-geometry.js';
|
|
|
10
10
|
export * from './drawing-shadow.js';
|
|
11
11
|
export * from './write-color.js';
|
|
12
12
|
export * from './write-fill.js';
|
|
13
|
+
export * from './write-theme.js';
|
|
13
14
|
export * from './gradient-presets.js';
|
|
14
15
|
export * from './gradient-geometry.js';
|
|
15
16
|
export * from './rect-path-gradient.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../drawingml/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,eAAe,GACf,MAAM,OAAO,CAAC;AACf,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../drawingml/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,eAAe,GACf,MAAM,OAAO,CAAC;AACf,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
|
package/dist/drawingml/index.mjs
CHANGED
|
@@ -838,7 +838,7 @@ function drawingFillXml(fill) {
|
|
|
838
838
|
const root = doc.documentElement;
|
|
839
839
|
if (root.namespaceURI !== NS.a || root.localName !== "gradFill")
|
|
840
840
|
throw new Error("Invalid gradient source XML");
|
|
841
|
-
const
|
|
841
|
+
const fragment2 = (xml) => doc.importNode(elements(parseXml(`<w xmlns:a="${NS.a}">${xml}</w>`).documentElement)[0], true);
|
|
842
842
|
let list = first(root, "gsLst", NS.a);
|
|
843
843
|
if (!list) {
|
|
844
844
|
list = doc.createElementNS(NS.a, "a:gsLst");
|
|
@@ -853,7 +853,7 @@ function drawingFillXml(fill) {
|
|
|
853
853
|
node.setAttribute("pos", String(Math.round(stop.position * 1e3)));
|
|
854
854
|
for (const old of elements(node))
|
|
855
855
|
if (old.namespaceURI === NS.a && old.localName.endsWith("Clr")) node.removeChild(old);
|
|
856
|
-
node.insertBefore(
|
|
856
|
+
node.insertBefore(fragment2(drawingColorXml(stop.color)), node.firstChild);
|
|
857
857
|
});
|
|
858
858
|
for (const stop of stops.slice(fill.stops.length)) list.removeChild(stop);
|
|
859
859
|
for (const node of elements(root))
|
|
@@ -903,6 +903,105 @@ function drawingFillXml(fill) {
|
|
|
903
903
|
return buildXml(doc);
|
|
904
904
|
}
|
|
905
905
|
|
|
906
|
+
// drawingml/theme-model.ts
|
|
907
|
+
var THEME_COLOR_SLOTS = [
|
|
908
|
+
"dk1",
|
|
909
|
+
"lt1",
|
|
910
|
+
"dk2",
|
|
911
|
+
"lt2",
|
|
912
|
+
"accent1",
|
|
913
|
+
"accent2",
|
|
914
|
+
"accent3",
|
|
915
|
+
"accent4",
|
|
916
|
+
"accent5",
|
|
917
|
+
"accent6",
|
|
918
|
+
"hlink",
|
|
919
|
+
"folHlink"
|
|
920
|
+
];
|
|
921
|
+
var DEFAULT_THEME_COLOR_MAP = {
|
|
922
|
+
bg1: "lt1",
|
|
923
|
+
tx1: "dk1",
|
|
924
|
+
bg2: "lt2",
|
|
925
|
+
tx2: "dk2"
|
|
926
|
+
};
|
|
927
|
+
|
|
928
|
+
// drawingml/write-theme.ts
|
|
929
|
+
function fragment(host, xml, namespaces) {
|
|
930
|
+
const declarations = Object.entries({ a: NS.a, ...namespaces }).map(([prefix, uri]) => ` xmlns:${prefix}="${uri}"`).join("");
|
|
931
|
+
const wrapper = parseXml(`<w${declarations}>${xml}</w>`, { label: "DrawingML theme fragment" });
|
|
932
|
+
return elements(wrapper.documentElement).map(
|
|
933
|
+
(node) => host.ownerDocument.importNode(node, true)
|
|
934
|
+
);
|
|
935
|
+
}
|
|
936
|
+
function extensionList(parent, extensions, namespaces) {
|
|
937
|
+
const entries = Object.entries(extensions ?? {});
|
|
938
|
+
if (!entries.length) return;
|
|
939
|
+
const doc = parent.ownerDocument;
|
|
940
|
+
const list = doc.createElementNS(NS.a, "a:extLst");
|
|
941
|
+
for (const [uri, xml] of entries) {
|
|
942
|
+
const ext = doc.createElementNS(NS.a, "a:ext");
|
|
943
|
+
ext.setAttribute("uri", uri);
|
|
944
|
+
for (const node of fragment(ext, xml, namespaces)) ext.appendChild(node);
|
|
945
|
+
list.appendChild(ext);
|
|
946
|
+
}
|
|
947
|
+
parent.appendChild(list);
|
|
948
|
+
}
|
|
949
|
+
function fontCollection(parent, name, fonts) {
|
|
950
|
+
const doc = parent.ownerDocument;
|
|
951
|
+
const node = doc.createElementNS(NS.a, `a:${name}`);
|
|
952
|
+
for (const [local, face] of [
|
|
953
|
+
["latin", fonts.latin],
|
|
954
|
+
["ea", fonts.eastAsia],
|
|
955
|
+
["cs", fonts.complexScript]
|
|
956
|
+
]) {
|
|
957
|
+
const font = doc.createElementNS(NS.a, `a:${local}`);
|
|
958
|
+
font.setAttribute("typeface", face ?? "");
|
|
959
|
+
node.appendChild(font);
|
|
960
|
+
}
|
|
961
|
+
for (const [script, face] of Object.entries(fonts.scripts)) {
|
|
962
|
+
const font = doc.createElementNS(NS.a, "a:font");
|
|
963
|
+
font.setAttribute("script", script);
|
|
964
|
+
font.setAttribute("typeface", face);
|
|
965
|
+
node.appendChild(font);
|
|
966
|
+
}
|
|
967
|
+
parent.appendChild(node);
|
|
968
|
+
}
|
|
969
|
+
function drawingThemeXml(theme, parts) {
|
|
970
|
+
const namespaces = parts.namespaces ?? {};
|
|
971
|
+
const doc = parseXml(
|
|
972
|
+
`<a:theme xmlns:a="${NS.a}"${Object.entries(namespaces).map(([prefix, uri]) => ` xmlns:${prefix}="${uri}"`).join("")}/>`
|
|
973
|
+
);
|
|
974
|
+
const root = doc.documentElement;
|
|
975
|
+
if (theme.name !== void 0) root.setAttribute("name", theme.name);
|
|
976
|
+
const elementsNode = doc.createElementNS(NS.a, "a:themeElements");
|
|
977
|
+
root.appendChild(elementsNode);
|
|
978
|
+
const scheme = doc.createElementNS(NS.a, "a:clrScheme");
|
|
979
|
+
scheme.setAttribute("name", theme.colorScheme.name ?? theme.name ?? "Custom");
|
|
980
|
+
for (const slot of THEME_COLOR_SLOTS) {
|
|
981
|
+
const color = theme.colorScheme.colors[slot];
|
|
982
|
+
if (!color) throw new Error(`The theme colour scheme has no ${slot} colour.`);
|
|
983
|
+
const node = doc.createElementNS(NS.a, `a:${slot}`);
|
|
984
|
+
for (const child of fragment(node, drawingColorXml(color), namespaces)) node.appendChild(child);
|
|
985
|
+
scheme.appendChild(node);
|
|
986
|
+
}
|
|
987
|
+
extensionList(scheme, parts.colorSchemeExtensions, namespaces);
|
|
988
|
+
elementsNode.appendChild(scheme);
|
|
989
|
+
const fonts = doc.createElementNS(NS.a, "a:fontScheme");
|
|
990
|
+
fonts.setAttribute("name", theme.fontScheme.name ?? theme.name ?? "Custom");
|
|
991
|
+
fontCollection(fonts, "majorFont", theme.fontScheme.major);
|
|
992
|
+
fontCollection(fonts, "minorFont", theme.fontScheme.minor);
|
|
993
|
+
elementsNode.appendChild(fonts);
|
|
994
|
+
const format = fragment(elementsNode, parts.formatScheme, namespaces);
|
|
995
|
+
if (format.length !== 1 || format[0].localName !== "fmtScheme" || format[0].namespaceURI !== NS.a)
|
|
996
|
+
throw new Error("The theme format scheme must be one a:fmtScheme element.");
|
|
997
|
+
elementsNode.appendChild(format[0]);
|
|
998
|
+
extensionList(elementsNode, parts.themeElementsExtensions, namespaces);
|
|
999
|
+
root.appendChild(doc.createElementNS(NS.a, "a:objectDefaults"));
|
|
1000
|
+
root.appendChild(doc.createElementNS(NS.a, "a:extraClrSchemeLst"));
|
|
1001
|
+
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
1002
|
+
${buildXml(doc)}`;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
906
1005
|
// drawingml/gradient-preset-data.ts
|
|
907
1006
|
var OFFICE_GRADIENT_PRESET_DATA = [
|
|
908
1007
|
[
|
|
@@ -1357,28 +1456,6 @@ function buildRectPathGradientImage(stops, focalPoint, fillToRect) {
|
|
|
1357
1456
|
return `url("data:image/svg+xml,${encodeURIComponent(markup)}")`;
|
|
1358
1457
|
}
|
|
1359
1458
|
|
|
1360
|
-
// drawingml/theme-model.ts
|
|
1361
|
-
var THEME_COLOR_SLOTS = [
|
|
1362
|
-
"dk1",
|
|
1363
|
-
"lt1",
|
|
1364
|
-
"dk2",
|
|
1365
|
-
"lt2",
|
|
1366
|
-
"accent1",
|
|
1367
|
-
"accent2",
|
|
1368
|
-
"accent3",
|
|
1369
|
-
"accent4",
|
|
1370
|
-
"accent5",
|
|
1371
|
-
"accent6",
|
|
1372
|
-
"hlink",
|
|
1373
|
-
"folHlink"
|
|
1374
|
-
];
|
|
1375
|
-
var DEFAULT_THEME_COLOR_MAP = {
|
|
1376
|
-
bg1: "lt1",
|
|
1377
|
-
tx1: "dk1",
|
|
1378
|
-
bg2: "lt2",
|
|
1379
|
-
tx2: "dk2"
|
|
1380
|
-
};
|
|
1381
|
-
|
|
1382
1459
|
// drawingml/theme.ts
|
|
1383
1460
|
var MAP_KEYS = [
|
|
1384
1461
|
"bg1",
|
|
@@ -1494,4 +1571,4 @@ function themeDrawingColorTheme(scheme, colorMap) {
|
|
|
1494
1571
|
};
|
|
1495
1572
|
}
|
|
1496
1573
|
|
|
1497
|
-
export { DEFAULT_THEME_COLOR_MAP, OFFICE_GRADIENT_PRESETS, RECT_GRADIENT_DIRECTIONS, THEME_COLOR_SLOTS, attributeReader, booleanAttribute, buildRectPathGradientImage, buildRectPathGradientSvg, descendants, drawingColorBrightness, drawingColorCss, drawingColorXml, drawingFillXml, fillElementOf, integerAttribute, isThemeColorSlot, officeGradientPresetFill, officeGradientPresetId, orderedColorTransforms, parseDrawingColor, parseDrawingColorIn, parseDrawingColorList, parseDrawingFill, parseDrawingGeometry, parseDrawingLine, parseDrawingTextBody, parseFrame, parseTheme, parseThemeColorMap, parseThemeColorScheme, parseThemeFontScheme, parseThemeXml, parseTransform, rectGradientDirection, rectGradientFocus, resolveDrawingColor, resolveDrawingShadow, resolveDrawingShadowXml, resolveSchemeColor, setDrawingFillXml, stringAttribute, svgDropShadowElement, themeColorSlotFor, themeDrawingColorTheme, themeSlotHex, withDrawingColorBrightness, withDrawingGradientGeometry };
|
|
1574
|
+
export { DEFAULT_THEME_COLOR_MAP, OFFICE_GRADIENT_PRESETS, RECT_GRADIENT_DIRECTIONS, THEME_COLOR_SLOTS, attributeReader, booleanAttribute, buildRectPathGradientImage, buildRectPathGradientSvg, descendants, drawingColorBrightness, drawingColorCss, drawingColorXml, drawingFillXml, drawingThemeXml, fillElementOf, integerAttribute, isThemeColorSlot, officeGradientPresetFill, officeGradientPresetId, orderedColorTransforms, parseDrawingColor, parseDrawingColorIn, parseDrawingColorList, parseDrawingFill, parseDrawingGeometry, parseDrawingLine, parseDrawingTextBody, parseFrame, parseTheme, parseThemeColorMap, parseThemeColorScheme, parseThemeFontScheme, parseThemeXml, parseTransform, rectGradientDirection, rectGradientFocus, resolveDrawingColor, resolveDrawingShadow, resolveDrawingShadowXml, resolveSchemeColor, setDrawingFillXml, stringAttribute, svgDropShadowElement, themeColorSlotFor, themeDrawingColorTheme, themeSlotHex, withDrawingColorBrightness, withDrawingGradientGeometry };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type DrawingTheme } from './theme-model.js';
|
|
2
|
+
export interface DrawingThemeXmlParts {
|
|
3
|
+
/** The `a:fmtScheme` element (required by the schema), as one `a:` fragment. */
|
|
4
|
+
formatScheme: string;
|
|
5
|
+
/** Children of an `a:ext` appended to `a:clrScheme`, keyed by extension URI. */
|
|
6
|
+
colorSchemeExtensions?: Readonly<Record<string, string>>;
|
|
7
|
+
/** Children of an `a:ext` appended to `a:themeElements`, keyed by extension URI. */
|
|
8
|
+
themeElementsExtensions?: Readonly<Record<string, string>>;
|
|
9
|
+
/** Extra namespace prefixes the fragments use (the `a` prefix is always declared). */
|
|
10
|
+
namespaces?: Readonly<Record<string, string>>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A complete `a:theme` part. Every one of the twelve colour slots must be present in the model;
|
|
14
|
+
* the format scheme and extensions are product data and are copied as given.
|
|
15
|
+
*/
|
|
16
|
+
export declare function drawingThemeXml(theme: DrawingTheme, parts: DrawingThemeXmlParts): string;
|
|
17
|
+
//# sourceMappingURL=write-theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-theme.d.ts","sourceRoot":"","sources":["../../drawingml/write-theme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,YAAY,EAA4B,MAAM,eAAe,CAAC;AAE/F,MAAM,WAAW,oBAAoB;IACpC,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,sFAAsF;IACtF,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C;AAuDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAuCxF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format-neutral "Auto Align & Space": boxes whose centres nearly line up are snapped into
|
|
3
|
+
* shared rows and columns, then the rows and columns are spaced evenly.
|
|
4
|
+
*
|
|
5
|
+
* Boxes use `{ x, y }` as the top-left corner with y growing downward. Clustering compares
|
|
6
|
+
* centres: a centre joins the current row (column) while it stays within `tolerance` of that
|
|
7
|
+
* row's mean centre; the default tolerance is half the median box height (width). Rows keep the
|
|
8
|
+
* top of the first row and columns the left of the first column; the gap between neighbouring
|
|
9
|
+
* rows (columns) becomes their current average gap, clamped to at least `minimumGap`.
|
|
10
|
+
*/
|
|
11
|
+
export interface AutoAlignBox {
|
|
12
|
+
id: string;
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
export interface AutoAlignOptions {
|
|
19
|
+
/** Centre distance that still counts as the same row or column. */
|
|
20
|
+
tolerance?: {
|
|
21
|
+
x?: number;
|
|
22
|
+
y?: number;
|
|
23
|
+
};
|
|
24
|
+
/** Smallest gap kept between rows and between columns. */
|
|
25
|
+
minimumGap?: number;
|
|
26
|
+
}
|
|
27
|
+
/** New top-left corners for every box. Boxes need not overlap-free input; ids must be unique. */
|
|
28
|
+
export declare function autoAlignBoxes(boxes: readonly AutoAlignBox[], options?: AutoAlignOptions): Map<string, {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=auto-align.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-align.d.ts","sourceRoot":"","sources":["../../geometry/auto-align.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAChC,mEAAmE;IACnE,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AA8DD,iGAAiG;AACjG,wBAAgB,cAAc,CAC7B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,OAAO,GAAE,gBAAqB,GAC5B,GAAG,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+BvC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format-neutral automatic layout of a directed graph of boxes: layered (a small Sugiyama
|
|
3
|
+
* variant for flowcharts and hierarchies), an indented compact tree and a circle per connected
|
|
4
|
+
* component. Unconnected boxes are placed in a grid after the connected ones.
|
|
5
|
+
*
|
|
6
|
+
* Coordinates are abstract units with y growing downward; results are box centres relative to
|
|
7
|
+
* the top-left corner of the whole layout. No DOM and no format semantics: callers map their
|
|
8
|
+
* own shapes and connections in and apply the positions themselves.
|
|
9
|
+
*/
|
|
10
|
+
export interface GraphLayoutNode {
|
|
11
|
+
id: string;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}
|
|
15
|
+
/** A directed connection; edges naming unknown nodes, self loops and duplicates are ignored. */
|
|
16
|
+
export interface GraphLayoutEdge {
|
|
17
|
+
from: string;
|
|
18
|
+
to: string;
|
|
19
|
+
}
|
|
20
|
+
export type GraphLayoutStyle = 'flowchart-tb' | 'flowchart-lr' | 'hierarchy' | 'compact-tree' | 'circular';
|
|
21
|
+
export declare const GRAPH_LAYOUT_STYLES: readonly GraphLayoutStyle[];
|
|
22
|
+
export interface GraphLayoutOptions {
|
|
23
|
+
/** Gap between neighbouring boxes in the same layer, row or circle. */
|
|
24
|
+
spacing?: number;
|
|
25
|
+
/** Gap between layers (or tree levels). Defaults to `spacing`. */
|
|
26
|
+
layerSpacing?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface GraphLayoutPoint {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Lay out every node. Components are packed side by side (stacked for left-to-right flowcharts),
|
|
34
|
+
* then unconnected nodes follow in a grid. Returns centres relative to the layout's top left.
|
|
35
|
+
*/
|
|
36
|
+
export declare function layoutGraph(nodes: readonly GraphLayoutNode[], edges: readonly GraphLayoutEdge[], style: GraphLayoutStyle, options?: GraphLayoutOptions): Map<string, GraphLayoutPoint>;
|
|
37
|
+
//# sourceMappingURL=graph-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../geometry/graph-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AACD,gGAAgG;AAChG,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AACD,MAAM,MAAM,gBAAgB,GACzB,cAAc,GACd,cAAc,GACd,WAAW,GACX,cAAc,GACd,UAAU,CAAC;AACd,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAM1D,CAAC;AACF,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,gBAAgB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AA+QD;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC9B,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAyD/B"}
|