ooxml-core 1.12.0 → 1.12.2

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.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/dist/{PptxHandler-NROFYT2N.mjs → PptxHandler-FIN6XDTI.mjs} +2 -2
  3. package/dist/{PptxHandler-E44KDHMQ.mjs → PptxHandler-RWTOUCLC.mjs} +1 -1
  4. package/dist/{PptxHandler-DNZHAHUY.cjs → PptxHandler-UU4ZCT6H.cjs} +2 -2
  5. package/dist/{chunk-HCXUI5UC.mjs → chunk-6DELVMYB.mjs} +122 -7
  6. package/dist/{chunk-U2DF3EGK.mjs → chunk-B2JBBAEQ.mjs} +1 -1
  7. package/dist/{chunk-7DSZI7S6.mjs → chunk-G5PQKHCG.mjs} +1 -1
  8. package/dist/{chunk-EC2W2MDY.mjs → chunk-H2FRDUNV.mjs} +1 -1
  9. package/dist/{chunk-2UVH6RHI.cjs → chunk-IT3U6QD6.cjs} +22 -3
  10. package/dist/{chunk-YB5SRNFS.mjs → chunk-O6NIA4NG.mjs} +22 -3
  11. package/dist/{chunk-W5ARCUJB.mjs → chunk-TVE6UIJF.mjs} +3 -3
  12. package/dist/{chunk-DC4JDONB.mjs → chunk-V57HCOUM.mjs} +3 -0
  13. package/dist/{chunk-2V76L5AE.cjs → chunk-WVXCHFRU.cjs} +3 -0
  14. package/dist/docx/ui/index.cjs +15 -3
  15. package/dist/docx/ui/index.mjs +15 -3
  16. package/dist/docx/ui/review-commands.d.ts.map +1 -1
  17. package/dist/i18n/index.cjs +6 -0
  18. package/dist/i18n/index.mjs +6 -1
  19. package/dist/i18n/translator.d.ts +6 -0
  20. package/dist/i18n/translator.d.ts.map +1 -1
  21. package/dist/index.cjs +7 -1
  22. package/dist/index.mjs +7 -1
  23. package/dist/pptx/automation/index.cjs +22 -3
  24. package/dist/pptx/automation/index.d.ts +4 -4
  25. package/dist/pptx/automation/index.mjs +5 -5
  26. package/dist/pptx/chunks/{elements-DD3UGOMd.d.ts → elements-DmbzOhFu.d.ts} +8 -1
  27. package/dist/pptx/chunks/{elements-DD3UGOMd.d.ts.map → elements-DmbzOhFu.d.ts.map} +1 -1
  28. package/dist/pptx/chunks/{index-DdX02BSm.d.ts → index-BmvOxbsh.d.ts} +3 -3
  29. package/dist/pptx/chunks/{index-DdX02BSm.d.ts.map → index-BmvOxbsh.d.ts.map} +1 -1
  30. package/dist/pptx/chunks/{index-BZrFyNtU.d.ts → index-Cija6Dih.d.ts} +42 -5
  31. package/dist/pptx/chunks/index-Cija6Dih.d.ts.map +1 -0
  32. package/dist/pptx/chunks/{text-operations-CyMTMfID.d.ts → text-operations-sXxhsKDd.d.ts} +2 -2
  33. package/dist/pptx/chunks/{text-operations-CyMTMfID.d.ts.map → text-operations-sXxhsKDd.d.ts.map} +1 -1
  34. package/dist/pptx/cli/index.cjs +22 -3
  35. package/dist/pptx/cli/index.d.ts +1 -1
  36. package/dist/pptx/cli/index.mjs +4 -4
  37. package/dist/pptx/converter/index.d.ts +1 -1
  38. package/dist/pptx/converter/index.mjs +2 -2
  39. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  40. package/dist/pptx/editor/render/slide-operations.cjs +1 -1
  41. package/dist/pptx/editor/render/slide-operations.mjs +1 -1
  42. package/dist/pptx/editor/render/table-style-editor-descriptor.cjs +3 -3
  43. package/dist/pptx/editor/render/table-style-editor-descriptor.d.ts.map +1 -1
  44. package/dist/pptx/editor/render/table-style-editor-descriptor.mjs +1 -1
  45. package/dist/pptx/editor/render/table-style-editor-edit.cjs +39 -13
  46. package/dist/pptx/editor/render/table-style-editor-edit.d.ts +11 -2
  47. package/dist/pptx/editor/render/table-style-editor-edit.d.ts.map +1 -1
  48. package/dist/pptx/editor/render/table-style-editor-edit.mjs +36 -10
  49. package/dist/pptx/editor/render/text-runs-style-patch.d.ts +1 -1
  50. package/dist/pptx/editor/render/text-style-scope.d.ts +1 -1
  51. package/dist/pptx/index.cjs +130 -5
  52. package/dist/pptx/index.d.ts +5 -5
  53. package/dist/pptx/index.mjs +5 -5
  54. package/dist/pptx/ui/index.cjs +49 -6
  55. package/dist/pptx/ui/index.d.ts +25 -5
  56. package/dist/pptx/ui/index.d.ts.map +1 -1
  57. package/dist/pptx/ui/index.mjs +48 -7
  58. package/package.json +1 -1
  59. package/dist/pptx/chunks/index-BZrFyNtU.d.ts.map +0 -1
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  One package, one XML model, every format: Word, PowerPoint, Excel and the shared building blocks beneath them. Visio VSDX parsing and bounded editing are available through `ooxml-core/visio`.
11
11
 
12
12
  [![CI](https://github.com/ChristopherVR/ooxml/actions/workflows/ci.yml/badge.svg)](https://github.com/ChristopherVR/ooxml/actions/workflows/ci.yml)
13
- [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
13
+ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](../../CODE_OF_CONDUCT.md)
14
14
 
15
15
  [**Try the apps**](https://christophervr.github.io/ooxml/)  · 
16
16
  [**Packages and areas**](#features-and-api-one-package-many-areas)  · 
@@ -1,5 +1,5 @@
1
- export { PptxHandler } from './chunk-HCXUI5UC.mjs';
2
- import './chunk-EC2W2MDY.mjs';
1
+ export { PptxHandler } from './chunk-6DELVMYB.mjs';
2
+ import './chunk-H2FRDUNV.mjs';
3
3
  import './chunk-KBIJI6P5.mjs';
4
4
  import './chunk-3GXV5MPC.mjs';
5
5
  import './chunk-54S5A5PZ.mjs';
@@ -1,3 +1,3 @@
1
- export { PptxHandler } from './chunk-YB5SRNFS.mjs';
1
+ export { PptxHandler } from './chunk-O6NIA4NG.mjs';
2
2
  import './chunk-UAY26XOI.mjs';
3
3
  import './chunk-GXHKNSZX.mjs';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2UVH6RHI_cjs = require('./chunk-2UVH6RHI.cjs');
3
+ var chunkIT3U6QD6_cjs = require('./chunk-IT3U6QD6.cjs');
4
4
  require('./chunk-7QZGRB3T.cjs');
5
5
  require('./chunk-XZPZHXV4.cjs');
6
6
 
@@ -8,5 +8,5 @@ require('./chunk-XZPZHXV4.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "PptxHandler", {
10
10
  enumerable: true,
11
- get: function () { return chunk2UVH6RHI_cjs.PptxHandler; }
11
+ get: function () { return chunkIT3U6QD6_cjs.PptxHandler; }
12
12
  });
@@ -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, readPathListCommandOrder, 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-EC2W2MDY.mjs';
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, readPathListCommandOrder, 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-H2FRDUNV.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';
@@ -8269,14 +8269,23 @@ function parseSolidFillStyle(solidFill2) {
8269
8269
  ...alpha !== void 0 ? { alpha } : {}
8270
8270
  };
8271
8271
  }
8272
+ function parseLineRef(lnRef) {
8273
+ const idx = parseInt(String(lnRef?.["@_idx"] ?? ""), 10);
8274
+ if (!lnRef || !Number.isFinite(idx)) {
8275
+ return void 0;
8276
+ }
8277
+ const hex3 = String(lnRef["a:srgbClr"]?.["@_val"] ?? "").trim();
8278
+ const color = parseSolidFillStyle(lnRef) ?? (hex3 ? { schemeColor: "", color: hex3.startsWith("#") ? hex3 : `#${hex3}` } : void 0);
8279
+ return { lnRef: color ? { idx, color } : { idx } };
8280
+ }
8272
8281
  function parseBorderSide(side) {
8273
8282
  if (!side) {
8274
8283
  return void 0;
8275
8284
  }
8276
- const ln = side["a:ln"];
8277
- if (!ln) {
8278
- return void 0;
8285
+ if (side["a:ln"] === void 0) {
8286
+ return parseLineRef(side["a:lnRef"]);
8279
8287
  }
8288
+ const ln = typeof side["a:ln"] === "object" ? side["a:ln"] : {};
8280
8289
  const border = {};
8281
8290
  let has = false;
8282
8291
  if (ln["a:noFill"] !== void 0) {
@@ -69227,8 +69236,8 @@ function buildFallbackTransition(transitionNode) {
69227
69236
  }
69228
69237
  fallback[key2] = value;
69229
69238
  }
69230
- const hasChild = Object.keys(fallback).some((key2) => !key2.startsWith("@_"));
69231
- if (!hasChild) {
69239
+ const hasChild2 = Object.keys(fallback).some((key2) => !key2.startsWith("@_"));
69240
+ if (!hasChild2) {
69232
69241
  fallback["p:fade"] = {};
69233
69242
  }
69234
69243
  return fallback;
@@ -71030,6 +71039,16 @@ var LN_CHILD_ORDER = [
71030
71039
  var LN_FILL_KEYS = ["a:noFill", "a:solidFill", "a:gradFill", "a:pattFill"];
71031
71040
  function mergeBorderSideXml(border, existingSide) {
71032
71041
  const existing = existingSide && typeof existingSide === "object" && !Array.isArray(existingSide) ? existingSide : {};
71042
+ const concrete = border.width !== void 0 || border.dash !== void 0 || border.fill !== void 0 || border.color !== void 0 || border.noFill !== void 0;
71043
+ if (border.lnRef && !concrete) {
71044
+ delete existing["a:ln"];
71045
+ const ref = { "@_idx": String(border.lnRef.idx) };
71046
+ if (border.lnRef.color) {
71047
+ Object.assign(ref, colorChoiceXml(border.lnRef.color));
71048
+ }
71049
+ existing["a:lnRef"] = ref;
71050
+ return existing;
71051
+ }
71033
71052
  delete existing["a:lnRef"];
71034
71053
  const ln = ensureChild(existing, "a:ln");
71035
71054
  if (border.width !== void 0) {
@@ -83977,6 +83996,102 @@ function deleteTableStyleFromMap(map, styleId) {
83977
83996
  return true;
83978
83997
  }
83979
83998
 
83999
+ // pptx/core/core/runtime/table-style-line-ref.ts
84000
+ function hasChild(rawNode, key2) {
84001
+ return !!rawNode && typeof rawNode === "object" && Object.prototype.hasOwnProperty.call(rawNode, key2) && rawNode[key2] !== void 0;
84002
+ }
84003
+ function linePlaceholderColor(rawNode) {
84004
+ if (!rawNode || typeof rawNode !== "object") {
84005
+ return void 0;
84006
+ }
84007
+ const solidFill2 = rawNode["a:solidFill"];
84008
+ const schemeClr = solidFill2?.["a:schemeClr"];
84009
+ return schemeClr?.["@_val"] === "phClr" ? schemeClr : void 0;
84010
+ }
84011
+ function resolveTableStyleLineRef(lnRef, formatScheme, colorMap) {
84012
+ if (lnRef.idx === 0) {
84013
+ return { noFill: true };
84014
+ }
84015
+ const line = formatScheme?.lineStyles[lnRef.idx - 1];
84016
+ if (!line) {
84017
+ return void 0;
84018
+ }
84019
+ if (hasChild(line.rawNode, "a:noFill")) {
84020
+ return { noFill: true };
84021
+ }
84022
+ const border = {};
84023
+ if (line.width !== void 0) {
84024
+ border.width = line.width;
84025
+ }
84026
+ if (line.dash && line.dash !== "solid") {
84027
+ border.dash = line.dash;
84028
+ }
84029
+ const placeholder = linePlaceholderColor(line.rawNode);
84030
+ const base = placeholder ? refColor(lnRef, colorMap) : void 0;
84031
+ if (base && placeholder) {
84032
+ border.color = applyDrawingColorTransforms(base, placeholder);
84033
+ } else if (line.color) {
84034
+ border.color = line.color;
84035
+ }
84036
+ return border;
84037
+ }
84038
+ function foldPercent(a, b) {
84039
+ if (a === void 0 || b === void 0) {
84040
+ return a ?? b;
84041
+ }
84042
+ return Math.round(a * b / 1e5);
84043
+ }
84044
+ function refBorderColor(ref) {
84045
+ if (ref?.schemeColor) {
84046
+ return { fill: ref };
84047
+ }
84048
+ return ref?.color ? { color: ref.color } : void 0;
84049
+ }
84050
+ function resolveTableStyleLineRefColor(lnRef, formatScheme) {
84051
+ const ref = lnRef.color;
84052
+ const line = lnRef.idx > 0 ? formatScheme?.lineStyles[lnRef.idx - 1] : void 0;
84053
+ const solidFill2 = line?.rawNode?.["a:solidFill"];
84054
+ const own = parseSolidFillStyle(solidFill2);
84055
+ if (!own) {
84056
+ const hex3 = String(solidFill2?.["a:srgbClr"]?.["@_val"] ?? "");
84057
+ return hex3 ? { color: hex3.startsWith("#") ? hex3 : `#${hex3}` } : refBorderColor(ref);
84058
+ }
84059
+ if (own.schemeColor !== "phClr") {
84060
+ return { fill: own };
84061
+ }
84062
+ if (!ref?.schemeColor) {
84063
+ return refBorderColor(ref);
84064
+ }
84065
+ const fill = { schemeColor: ref.schemeColor };
84066
+ const tint = foldPercent(ref.tint, own.tint);
84067
+ const shade = foldPercent(ref.shade, own.shade);
84068
+ const alpha = own.alpha ?? ref.alpha;
84069
+ if (tint !== void 0) {
84070
+ fill.tint = tint;
84071
+ }
84072
+ if (shade !== void 0) {
84073
+ fill.shade = shade;
84074
+ }
84075
+ if (alpha !== void 0) {
84076
+ fill.alpha = alpha;
84077
+ }
84078
+ return { fill };
84079
+ }
84080
+ function refColor(lnRef, colorMap) {
84081
+ const color = lnRef.color;
84082
+ const base = color?.schemeColor ? colorMap?.[color.schemeColor] : color?.color;
84083
+ if (!base || !color) {
84084
+ return base;
84085
+ }
84086
+ const transforms = {};
84087
+ for (const key2 of ["tint", "shade", "alpha"]) {
84088
+ if (color[key2] !== void 0) {
84089
+ transforms[`a:${key2}`] = { "@_val": String(color[key2]) };
84090
+ }
84091
+ }
84092
+ return Object.keys(transforms).length > 0 ? applyDrawingColorTransforms(base, transforms) : base;
84093
+ }
84094
+
83980
84095
  // pptx/core/ppt/current-user.ts
83981
84096
  var EncryptedPptError = class extends Error {
83982
84097
  isEncrypted = true;
@@ -87407,4 +87522,4 @@ var PptxHandler = class extends PptxHandlerCore {
87407
87522
  * `<p:extLst>` (optional)
87408
87523
  */
87409
87524
 
87410
- export { AFTER_ANIMATION_VALUES, ConnectorXmlFactory, DEFAULT_AFTER_ANIMATION_DIM_COLOR, DEFAULT_ANIMATION_DURATION_MS, DEFAULT_ANIMATION_TRIGGER, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_POWERPOINT_TABLE_STYLE_ID, ELEMENT_PARAGRAPH_GEOMETRY_KEYS, EncryptedPptError, MAX_ZIP_ENTRY_COUNT, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime102 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, PresentationBuilder, STANDARD_LAYOUTS, SlideBuilder, TABLE_STYLE_PART_SEQUENCE, TextShapeXmlFactory, ZipBombError, addChartCategory, addChartSeries, addTableStyleToMap, animationFor, applyAfterAnimationBehavior, applyAfterAnimationFromEditorList, applyConnectorShapeIds, applySoundToEffectCTn, applySpeedToDuration, applyTableCellTextAndStyle, assertChartGradientSupported, breakAutoNumberRun, buildBlankPresentationArchive, buildRelationshipsXml, buildSingleEffectNode, buildSlideReferenceRemap, buildXml, capturedPresetIds, capturedPresetNativeAnimation, capturedSubtypes, clonePartGraph, convertPptToPptx, createAutoNumberSequence, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createFreeformElement, createGroupElement, createImageElement, createMediaElement, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTableStyleEntry, createTextElement, deleteTableStyleFromMap, elements, ensureChartData, ensureDataPoint, extractAfterAnimationFromSubTnLst, extractGraphicBuilds, extractTableCellTextRuns, first, generateTableStyleGuid, getAfterAnimation, getAfterAnimationState, getCapturedPreset, getCapturedTree, hasAnimation, isEncryptedLegacyPpt, isLegacyPpt, isNativeAfterAnimationOnly, mergeNativeAfterAnimationIntoEditorAnimations, mergeNativeSoundIntoEditorAnimations, nextAutoNumber, nextRelationshipId, normalizeTableStyleGuid, ooxmlToPresetName, parseAnimEffectFilter, parseCondition, parseConditionList, parseFilterToken, parseRelationships, parseTimeTargetElement, parseXml, rebuildTableStructureInRawXml, reconcileAnimationTargets, relationshipsPartFor, relativePartTarget, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeEmptyDataPoint, resetIdCounter, resolveConnectorShapeIds, resolveDirectionSubtype, resolveEffectTiming, resolveIterationCount, resolveOoxmlPresetMapping, resolveOpacitySet, resolvePartPath, resolveVisibilitySetTiming, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeTimeTargetElement, setAfterAnimation, setAfterAnimationColor, setChartAreaFormat, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGroupOptions, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, shouldHoldEndState, timingCurveToAccelDecel, toChartGradientFill, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, upsert, validateSeriesIndex };
87525
+ export { AFTER_ANIMATION_VALUES, ConnectorXmlFactory, DEFAULT_AFTER_ANIMATION_DIM_COLOR, DEFAULT_ANIMATION_DURATION_MS, DEFAULT_ANIMATION_TRIGGER, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_POWERPOINT_TABLE_STYLE_ID, ELEMENT_PARAGRAPH_GEOMETRY_KEYS, EncryptedPptError, MAX_ZIP_ENTRY_COUNT, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime102 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, PresentationBuilder, STANDARD_LAYOUTS, SlideBuilder, TABLE_STYLE_PART_SEQUENCE, TextShapeXmlFactory, ZipBombError, addChartCategory, addChartSeries, addTableStyleToMap, animationFor, applyAfterAnimationBehavior, applyAfterAnimationFromEditorList, applyConnectorShapeIds, applySoundToEffectCTn, applySpeedToDuration, applyTableCellTextAndStyle, assertChartGradientSupported, breakAutoNumberRun, buildBlankPresentationArchive, buildRelationshipsXml, buildSingleEffectNode, buildSlideReferenceRemap, buildXml, capturedPresetIds, capturedPresetNativeAnimation, capturedSubtypes, clonePartGraph, convertPptToPptx, createAutoNumberSequence, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createFreeformElement, createGroupElement, createImageElement, createMediaElement, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTableStyleEntry, createTextElement, deleteTableStyleFromMap, elements, ensureChartData, ensureDataPoint, extractAfterAnimationFromSubTnLst, extractGraphicBuilds, extractTableCellTextRuns, first, generateTableStyleGuid, getAfterAnimation, getAfterAnimationState, getCapturedPreset, getCapturedTree, hasAnimation, isEncryptedLegacyPpt, isLegacyPpt, isNativeAfterAnimationOnly, mergeNativeAfterAnimationIntoEditorAnimations, mergeNativeSoundIntoEditorAnimations, nextAutoNumber, nextRelationshipId, normalizeTableStyleGuid, ooxmlToPresetName, parseAnimEffectFilter, parseCondition, parseConditionList, parseFilterToken, parseRelationships, parseTimeTargetElement, parseXml, rebuildTableStructureInRawXml, reconcileAnimationTargets, relationshipsPartFor, relativePartTarget, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeEmptyDataPoint, resetIdCounter, resolveConnectorShapeIds, resolveDirectionSubtype, resolveEffectTiming, resolveIterationCount, resolveOoxmlPresetMapping, resolveOpacitySet, resolvePartPath, resolveTableBackgroundFillRef, resolveTableStyleLineRef, resolveTableStyleLineRefColor, resolveVisibilitySetTiming, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeTimeTargetElement, setAfterAnimation, setAfterAnimationColor, setChartAreaFormat, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGroupOptions, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, shouldHoldEndState, timingCurveToAccelDecel, toChartGradientFill, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, upsert, validateSeriesIndex };
@@ -1,4 +1,4 @@
1
- import { hasTextProperties } from './chunk-EC2W2MDY.mjs';
1
+ import { hasTextProperties } from './chunk-H2FRDUNV.mjs';
2
2
  import { cloneSlide } from './chunk-54S5A5PZ.mjs';
3
3
 
4
4
  // pptx/core/builders/sdk/merge-operations.ts
@@ -1,4 +1,4 @@
1
- import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-EC2W2MDY.mjs';
1
+ import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-H2FRDUNV.mjs';
2
2
 
3
3
  // pptx/converter/media-context.ts
4
4
  var MIME_TO_EXT = {
@@ -21714,7 +21714,7 @@ function findTextBearingElementById(elements2, elementId) {
21714
21714
  }
21715
21715
  async function loadNestedDeck(pptxBytes) {
21716
21716
  try {
21717
- const { PptxHandler } = await import('./PptxHandler-NROFYT2N.mjs');
21717
+ const { PptxHandler } = await import('./PptxHandler-FIN6XDTI.mjs');
21718
21718
  const handler = new PptxHandler();
21719
21719
  const data = await handler.load(pptxBytes.buffer.slice(0));
21720
21720
  return { handler, slides: data.slides };
@@ -9001,14 +9001,23 @@ function parseSolidFillStyle(solidFill2) {
9001
9001
  ...alpha !== void 0 ? { alpha } : {}
9002
9002
  };
9003
9003
  }
9004
+ function parseLineRef(lnRef) {
9005
+ const idx = parseInt(String(lnRef?.["@_idx"] ?? ""), 10);
9006
+ if (!lnRef || !Number.isFinite(idx)) {
9007
+ return void 0;
9008
+ }
9009
+ const hex3 = String(lnRef["a:srgbClr"]?.["@_val"] ?? "").trim();
9010
+ const color2 = parseSolidFillStyle(lnRef) ?? (hex3 ? { schemeColor: "", color: hex3.startsWith("#") ? hex3 : `#${hex3}` } : void 0);
9011
+ return { lnRef: color2 ? { idx, color: color2 } : { idx } };
9012
+ }
9004
9013
  function parseBorderSide(side) {
9005
9014
  if (!side) {
9006
9015
  return void 0;
9007
9016
  }
9008
- const ln = side["a:ln"];
9009
- if (!ln) {
9010
- return void 0;
9017
+ if (side["a:ln"] === void 0) {
9018
+ return parseLineRef(side["a:lnRef"]);
9011
9019
  }
9020
+ const ln = typeof side["a:ln"] === "object" ? side["a:ln"] : {};
9012
9021
  const border = {};
9013
9022
  let has = false;
9014
9023
  if (ln["a:noFill"] !== void 0) {
@@ -71725,6 +71734,16 @@ var LN_CHILD_ORDER = [
71725
71734
  var LN_FILL_KEYS = ["a:noFill", "a:solidFill", "a:gradFill", "a:pattFill"];
71726
71735
  function mergeBorderSideXml(border, existingSide) {
71727
71736
  const existing = existingSide && typeof existingSide === "object" && !Array.isArray(existingSide) ? existingSide : {};
71737
+ const concrete = border.width !== void 0 || border.dash !== void 0 || border.fill !== void 0 || border.color !== void 0 || border.noFill !== void 0;
71738
+ if (border.lnRef && !concrete) {
71739
+ delete existing["a:ln"];
71740
+ const ref = { "@_idx": String(border.lnRef.idx) };
71741
+ if (border.lnRef.color) {
71742
+ Object.assign(ref, colorChoiceXml(border.lnRef.color));
71743
+ }
71744
+ existing["a:lnRef"] = ref;
71745
+ return existing;
71746
+ }
71728
71747
  delete existing["a:lnRef"];
71729
71748
  const ln = ensureChild(existing, "a:ln");
71730
71749
  if (border.width !== void 0) {
@@ -8995,14 +8995,23 @@ function parseSolidFillStyle(solidFill2) {
8995
8995
  ...alpha !== void 0 ? { alpha } : {}
8996
8996
  };
8997
8997
  }
8998
+ function parseLineRef(lnRef) {
8999
+ const idx = parseInt(String(lnRef?.["@_idx"] ?? ""), 10);
9000
+ if (!lnRef || !Number.isFinite(idx)) {
9001
+ return void 0;
9002
+ }
9003
+ const hex3 = String(lnRef["a:srgbClr"]?.["@_val"] ?? "").trim();
9004
+ const color2 = parseSolidFillStyle(lnRef) ?? (hex3 ? { schemeColor: "", color: hex3.startsWith("#") ? hex3 : `#${hex3}` } : void 0);
9005
+ return { lnRef: color2 ? { idx, color: color2 } : { idx } };
9006
+ }
8998
9007
  function parseBorderSide(side) {
8999
9008
  if (!side) {
9000
9009
  return void 0;
9001
9010
  }
9002
- const ln = side["a:ln"];
9003
- if (!ln) {
9004
- return void 0;
9011
+ if (side["a:ln"] === void 0) {
9012
+ return parseLineRef(side["a:lnRef"]);
9005
9013
  }
9014
+ const ln = typeof side["a:ln"] === "object" ? side["a:ln"] : {};
9006
9015
  const border = {};
9007
9016
  let has = false;
9008
9017
  if (ln["a:noFill"] !== void 0) {
@@ -71719,6 +71728,16 @@ var LN_CHILD_ORDER = [
71719
71728
  var LN_FILL_KEYS = ["a:noFill", "a:solidFill", "a:gradFill", "a:pattFill"];
71720
71729
  function mergeBorderSideXml(border, existingSide) {
71721
71730
  const existing = existingSide && typeof existingSide === "object" && !Array.isArray(existingSide) ? existingSide : {};
71731
+ const concrete = border.width !== void 0 || border.dash !== void 0 || border.fill !== void 0 || border.color !== void 0 || border.noFill !== void 0;
71732
+ if (border.lnRef && !concrete) {
71733
+ delete existing["a:ln"];
71734
+ const ref = { "@_idx": String(border.lnRef.idx) };
71735
+ if (border.lnRef.color) {
71736
+ Object.assign(ref, colorChoiceXml(border.lnRef.color));
71737
+ }
71738
+ existing["a:lnRef"] = ref;
71739
+ return existing;
71740
+ }
71722
71741
  delete existing["a:lnRef"];
71723
71742
  const ln = ensureChild(existing, "a:ln");
71724
71743
  if (border.width !== void 0) {
@@ -1,6 +1,6 @@
1
- import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-U2DF3EGK.mjs';
2
- import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, parseXml, first, relationshipsPartFor, parseRelationships, resolvePartPath, elements, clonePartGraph, buildXml, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-HCXUI5UC.mjs';
3
- import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, bytesToBase64, base64ToBytes, hasTextProperties } from './chunk-EC2W2MDY.mjs';
1
+ import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-B2JBBAEQ.mjs';
2
+ import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, parseXml, first, relationshipsPartFor, parseRelationships, resolvePartPath, elements, clonePartGraph, buildXml, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-6DELVMYB.mjs';
3
+ import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, bytesToBase64, base64ToBytes, hasTextProperties } from './chunk-H2FRDUNV.mjs';
4
4
  import { cloneSlide, cloneElement } from './chunk-54S5A5PZ.mjs';
5
5
  import JSZip3 from 'jszip';
6
6
 
@@ -56,6 +56,9 @@ function borderSideColor(border, themeColorMap) {
56
56
  if (border?.color) {
57
57
  return { hex: border.color, ref: void 0 };
58
58
  }
59
+ if (border?.lnRef?.color) {
60
+ return fillToColor(border.lnRef.color, themeColorMap, DEFAULT_BORDER_HEX);
61
+ }
59
62
  return { hex: DEFAULT_BORDER_HEX, ref: void 0 };
60
63
  }
61
64
  function describeBorders(borders, themeColorMap) {
@@ -58,6 +58,9 @@ function borderSideColor(border, themeColorMap) {
58
58
  if (border?.color) {
59
59
  return { hex: border.color, ref: void 0 };
60
60
  }
61
+ if (border?.lnRef?.color) {
62
+ return fillToColor(border.lnRef.color, themeColorMap, DEFAULT_BORDER_HEX);
63
+ }
61
64
  return { hex: DEFAULT_BORDER_HEX, ref: void 0 };
62
65
  }
63
66
  function describeBorders(borders, themeColorMap) {
@@ -9420,6 +9420,15 @@ function resolveSectionPartRevisions(doc, mode) {
9420
9420
  }
9421
9421
 
9422
9422
  // docx/ui/review-commands.ts
9423
+ var reviewQueries = /* @__PURE__ */ new WeakMap();
9424
+ function reviewQuery(doc) {
9425
+ let cached2 = reviewQueries.get(doc);
9426
+ if (!cached2) {
9427
+ cached2 = { ranges: collectRevisionRanges(doc) };
9428
+ reviewQueries.set(doc, cached2);
9429
+ }
9430
+ return cached2;
9431
+ }
9423
9432
  function collectRevisionRanges(doc) {
9424
9433
  const ranges = [];
9425
9434
  doc.descendants((node, pos) => {
@@ -9475,13 +9484,16 @@ function collectRevisionRanges(doc) {
9475
9484
  return ranges.sort((a, b) => a.from - b.from);
9476
9485
  }
9477
9486
  function revisionNear(view) {
9478
- const ranges = collectRevisionRanges(view.state.doc);
9487
+ const { ranges } = reviewQuery(view.state.doc);
9479
9488
  const { from, to } = view.state.selection;
9480
9489
  return ranges.find((range) => range.from < to && range.to > from) ?? ranges.find((r) => r.from >= to);
9481
9490
  }
9482
9491
  function hasAnyChange(view) {
9483
- return Boolean(
9484
- view && (collectRevisionRanges(view.state.doc).length || hasNoteRevisions(view.state.doc) || hasSectionPartRevisions(view.state.doc))
9492
+ if (!view) return false;
9493
+ const doc = view.state.doc;
9494
+ const cached2 = reviewQuery(doc);
9495
+ return cached2.anyChange ??= Boolean(
9496
+ cached2.ranges.length || hasNoteRevisions(doc) || hasSectionPartRevisions(doc)
9485
9497
  );
9486
9498
  }
9487
9499
  function hasChangeAtCursor(view) {
@@ -9398,6 +9398,15 @@ function resolveSectionPartRevisions(doc, mode) {
9398
9398
  }
9399
9399
 
9400
9400
  // docx/ui/review-commands.ts
9401
+ var reviewQueries = /* @__PURE__ */ new WeakMap();
9402
+ function reviewQuery(doc) {
9403
+ let cached2 = reviewQueries.get(doc);
9404
+ if (!cached2) {
9405
+ cached2 = { ranges: collectRevisionRanges(doc) };
9406
+ reviewQueries.set(doc, cached2);
9407
+ }
9408
+ return cached2;
9409
+ }
9401
9410
  function collectRevisionRanges(doc) {
9402
9411
  const ranges = [];
9403
9412
  doc.descendants((node, pos) => {
@@ -9453,13 +9462,16 @@ function collectRevisionRanges(doc) {
9453
9462
  return ranges.sort((a, b) => a.from - b.from);
9454
9463
  }
9455
9464
  function revisionNear(view) {
9456
- const ranges = collectRevisionRanges(view.state.doc);
9465
+ const { ranges } = reviewQuery(view.state.doc);
9457
9466
  const { from, to } = view.state.selection;
9458
9467
  return ranges.find((range) => range.from < to && range.to > from) ?? ranges.find((r) => r.from >= to);
9459
9468
  }
9460
9469
  function hasAnyChange(view) {
9461
- return Boolean(
9462
- view && (collectRevisionRanges(view.state.doc).length || hasNoteRevisions(view.state.doc) || hasSectionPartRevisions(view.state.doc))
9470
+ if (!view) return false;
9471
+ const doc = view.state.doc;
9472
+ const cached2 = reviewQuery(doc);
9473
+ return cached2.anyChange ??= Boolean(
9474
+ cached2.ranges.length || hasNoteRevisions(doc) || hasSectionPartRevisions(doc)
9463
9475
  );
9464
9476
  }
9465
9477
  function hasChangeAtCursor(view) {
@@ -1 +1 @@
1
- {"version":3,"file":"review-commands.d.ts","sourceRoot":"","sources":["../../../docx/ui/review-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAcnD,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACjF,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,mBAAmB,EAAE,IAAI,GAAG,aAAa,EAAE,CAgE5F;AAUD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAOlE;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEvE;AAsDD,wGAAwG;AACxG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAQhF;AACD,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAQhF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM9D;AACD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM9D;AAcD,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,OAAqC,CAAC;AAC1F,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,OAAqC,CAAC;AAmB1F,eAAO,MAAM,cAAc,SAAU,UAAU,KAAG,OAAiC,CAAC;AACpF,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,OAAqC,CAAC"}
1
+ {"version":3,"file":"review-commands.d.ts","sourceRoot":"","sources":["../../../docx/ui/review-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAenD,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACjF,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAeD,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,mBAAmB,EAAE,IAAI,GAAG,aAAa,EAAE,CAgE5F;AAUD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAOlE;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEvE;AAsDD,wGAAwG;AACxG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAQhF;AACD,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAQhF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM9D;AACD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM9D;AAcD,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,OAAqC,CAAC;AAC1F,eAAO,MAAM,gBAAgB,SAAU,UAAU,KAAG,OAAqC,CAAC;AAmB1F,eAAO,MAAM,cAAc,SAAU,UAAU,KAAG,OAAiC,CAAC;AACpF,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,OAAqC,CAAC"}
@@ -58,6 +58,11 @@ function createTranslator(messages, fallbacks = [], options = {}) {
58
58
  return interpolate(text ?? options.missing?.(key) ?? key, params, placeholder);
59
59
  };
60
60
  }
61
+ function translateOr(translate, key, fallback, params) {
62
+ if (!translate) return fallback;
63
+ const text = translate(key, params);
64
+ return text && text !== key ? text : fallback;
65
+ }
61
66
 
62
67
  exports.SUPPORTED_OFFICE_LOCALES = SUPPORTED_OFFICE_LOCALES;
63
68
  exports.createTranslator = createTranslator;
@@ -66,3 +71,4 @@ exports.mergeMessageModules = mergeMessageModules;
66
71
  exports.missingMessageKeys = missingMessageKeys;
67
72
  exports.normalizeLocale = normalizeLocale;
68
73
  exports.normalizeOfficeLocale = normalizeOfficeLocale;
74
+ exports.translateOr = translateOr;
@@ -56,5 +56,10 @@ function createTranslator(messages, fallbacks = [], options = {}) {
56
56
  return interpolate(text ?? options.missing?.(key) ?? key, params, placeholder);
57
57
  };
58
58
  }
59
+ function translateOr(translate, key, fallback, params) {
60
+ if (!translate) return fallback;
61
+ const text = translate(key, params);
62
+ return text && text !== key ? text : fallback;
63
+ }
59
64
 
60
- export { SUPPORTED_OFFICE_LOCALES, createTranslator, interpolate, mergeMessageModules, missingMessageKeys, normalizeLocale, normalizeOfficeLocale };
65
+ export { SUPPORTED_OFFICE_LOCALES, createTranslator, interpolate, mergeMessageModules, missingMessageKeys, normalizeLocale, normalizeOfficeLocale, translateOr };
@@ -15,4 +15,10 @@ export declare function interpolate(template: string, params?: MessageParams, pl
15
15
  * first), then `options.missing(key)`, else the key itself.
16
16
  */
17
17
  export declare function createTranslator(messages: MessageDictionary | undefined, fallbacks?: readonly (MessageDictionary | undefined)[], options?: TranslatorOptions): Translate;
18
+ /**
19
+ * `translate(key, params)` when the binding's dictionary has `key`, else `fallback`. Every
20
+ * binding's translator answers a miss with the key itself, which is what this checks for, so a
21
+ * host with no dictionary entry still shows the English name.
22
+ */
23
+ export declare function translateOr(translate: Translate | undefined, key: string, fallback: string, params?: MessageParams): string;
18
24
  //# sourceMappingURL=translator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../i18n/translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAEtE,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,iBAAiB;IACjC,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAKD,2EAA2E;AAC3E,wBAAgB,WAAW,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,aAAa,EACtB,WAAW,GAAE,QAAQ,GAAG,QAAmB,GACzC,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,iBAAiB,GAAG,SAAS,EACvC,SAAS,GAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAO,EAC1D,OAAO,GAAE,iBAAsB,GAC7B,SAAS,CAOX"}
1
+ {"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../i18n/translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAEtE,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,iBAAiB;IACjC,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAKD,2EAA2E;AAC3E,wBAAgB,WAAW,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,aAAa,EACtB,WAAW,GAAE,QAAQ,GAAG,QAAmB,GACzC,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,iBAAiB,GAAG,SAAS,EACvC,SAAS,GAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAO,EAC1D,OAAO,GAAE,iBAAsB,GAC7B,SAAS,CAOX;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAC1B,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,aAAa,GACpB,MAAM,CAIR"}
package/dist/index.cjs CHANGED
@@ -6320,7 +6320,8 @@ __export(i18n_exports, {
6320
6320
  mergeMessageModules: () => mergeMessageModules,
6321
6321
  missingMessageKeys: () => missingMessageKeys,
6322
6322
  normalizeLocale: () => normalizeLocale,
6323
- normalizeOfficeLocale: () => normalizeOfficeLocale
6323
+ normalizeOfficeLocale: () => normalizeOfficeLocale,
6324
+ translateOr: () => translateOr
6324
6325
  });
6325
6326
 
6326
6327
  // i18n/locale.ts
@@ -6381,6 +6382,11 @@ function createTranslator(messages, fallbacks = [], options = {}) {
6381
6382
  return interpolate2(text3 ?? options.missing?.(key) ?? key, params, placeholder);
6382
6383
  };
6383
6384
  }
6385
+ function translateOr(translate, key, fallback, params) {
6386
+ if (!translate) return fallback;
6387
+ const text3 = translate(key, params);
6388
+ return text3 && text3 !== key ? text3 : fallback;
6389
+ }
6384
6390
 
6385
6391
  // ribbon/index.ts
6386
6392
  var ribbon_exports = {};
package/dist/index.mjs CHANGED
@@ -6314,7 +6314,8 @@ __export(i18n_exports, {
6314
6314
  mergeMessageModules: () => mergeMessageModules,
6315
6315
  missingMessageKeys: () => missingMessageKeys,
6316
6316
  normalizeLocale: () => normalizeLocale,
6317
- normalizeOfficeLocale: () => normalizeOfficeLocale
6317
+ normalizeOfficeLocale: () => normalizeOfficeLocale,
6318
+ translateOr: () => translateOr
6318
6319
  });
6319
6320
 
6320
6321
  // i18n/locale.ts
@@ -6375,6 +6376,11 @@ function createTranslator(messages, fallbacks = [], options = {}) {
6375
6376
  return interpolate2(text3 ?? options.missing?.(key) ?? key, params, placeholder);
6376
6377
  };
6377
6378
  }
6379
+ function translateOr(translate, key, fallback, params) {
6380
+ if (!translate) return fallback;
6381
+ const text3 = translate(key, params);
6382
+ return text3 && text3 !== key ? text3 : fallback;
6383
+ }
6378
6384
 
6379
6385
  // ribbon/index.ts
6380
6386
  var ribbon_exports = {};
@@ -63995,14 +63995,23 @@ function parseSolidFillStyle(solidFill3) {
63995
63995
  ...alpha !== void 0 ? { alpha } : {}
63996
63996
  };
63997
63997
  }
63998
+ function parseLineRef(lnRef) {
63999
+ const idx = parseInt(String(lnRef?.["@_idx"] ?? ""), 10);
64000
+ if (!lnRef || !Number.isFinite(idx)) {
64001
+ return void 0;
64002
+ }
64003
+ const hex3 = String(lnRef["a:srgbClr"]?.["@_val"] ?? "").trim();
64004
+ const color2 = parseSolidFillStyle(lnRef) ?? (hex3 ? { schemeColor: "", color: hex3.startsWith("#") ? hex3 : `#${hex3}` } : void 0);
64005
+ return { lnRef: color2 ? { idx, color: color2 } : { idx } };
64006
+ }
63998
64007
  function parseBorderSide(side) {
63999
64008
  if (!side) {
64000
64009
  return void 0;
64001
64010
  }
64002
- const ln = side["a:ln"];
64003
- if (!ln) {
64004
- return void 0;
64011
+ if (side["a:ln"] === void 0) {
64012
+ return parseLineRef(side["a:lnRef"]);
64005
64013
  }
64014
+ const ln = typeof side["a:ln"] === "object" ? side["a:ln"] : {};
64006
64015
  const border = {};
64007
64016
  let has = false;
64008
64017
  if (ln["a:noFill"] !== void 0) {
@@ -130419,6 +130428,16 @@ var init_PptxHandlerRuntimeSaveHandoutMaster = __esm({
130419
130428
  // pptx/core/core/runtime/table-style-border-write.ts
130420
130429
  function mergeBorderSideXml(border, existingSide) {
130421
130430
  const existing = existingSide && typeof existingSide === "object" && !Array.isArray(existingSide) ? existingSide : {};
130431
+ const concrete = border.width !== void 0 || border.dash !== void 0 || border.fill !== void 0 || border.color !== void 0 || border.noFill !== void 0;
130432
+ if (border.lnRef && !concrete) {
130433
+ delete existing["a:ln"];
130434
+ const ref = { "@_idx": String(border.lnRef.idx) };
130435
+ if (border.lnRef.color) {
130436
+ Object.assign(ref, colorChoiceXml(border.lnRef.color));
130437
+ }
130438
+ existing["a:lnRef"] = ref;
130439
+ return existing;
130440
+ }
130422
130441
  delete existing["a:lnRef"];
130423
130442
  const ln = ensureChild2(existing, "a:ln");
130424
130443
  if (border.width !== void 0) {