ooxml-core 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/{PptxHandler-SJTINPU4.mjs → PptxHandler-VQQS4VS6.mjs} +2 -2
  2. package/dist/automation/index.cjs +1059 -328
  3. package/dist/automation/index.mjs +1059 -328
  4. package/dist/chart/bar-cluster-geometry.d.ts +6 -0
  5. package/dist/chart/bar-cluster-geometry.d.ts.map +1 -1
  6. package/dist/chart/index.cjs +5 -2
  7. package/dist/chart/index.mjs +5 -3
  8. package/dist/chart/render/chart-spacing.d.ts.map +1 -1
  9. package/dist/{chunk-TEOAOAIF.mjs → chunk-5U27IVB7.mjs} +3 -3
  10. package/dist/{chunk-VYTA2OUN.mjs → chunk-5VLNF4OX.mjs} +1 -1
  11. package/dist/{chunk-CQQAPUAG.mjs → chunk-V2BIGIH4.mjs} +11 -9
  12. package/dist/{chunk-FI4RSJ24.mjs → chunk-XBNSBDNT.mjs} +1 -1
  13. package/dist/{chunk-XCZ7U3GZ.mjs → chunk-XSFHGZFH.mjs} +11 -9
  14. package/dist/docx/index.cjs +4 -2
  15. package/dist/docx/index.mjs +4 -2
  16. package/dist/docx/layout/index.cjs +4 -2
  17. package/dist/docx/layout/index.mjs +4 -2
  18. package/dist/docx/ui/index.cjs +4 -2
  19. package/dist/docx/ui/index.mjs +4 -2
  20. package/dist/index.cjs +5 -2
  21. package/dist/index.mjs +5 -2
  22. package/dist/pptx/automation/index.cjs +27 -17
  23. package/dist/pptx/automation/index.mjs +5 -5
  24. package/dist/pptx/chunks/index-EZJZ7USt.d.ts.map +1 -1
  25. package/dist/pptx/cli/index.cjs +27 -17
  26. package/dist/pptx/cli/index.mjs +4 -4
  27. package/dist/pptx/converter/index.mjs +2 -2
  28. package/dist/pptx/index.cjs +27 -17
  29. package/dist/pptx/index.mjs +5 -5
  30. package/dist/teams/index.cjs +157 -82
  31. package/dist/teams/index.mjs +157 -82
  32. package/dist/xlsx/edit/context.d.ts +3 -1
  33. package/dist/xlsx/edit/context.d.ts.map +1 -1
  34. package/dist/xlsx/edit/history.d.ts +18 -0
  35. package/dist/xlsx/edit/history.d.ts.map +1 -1
  36. package/dist/xlsx/edit/session-calc.d.ts +30 -8
  37. package/dist/xlsx/edit/session-calc.d.ts.map +1 -1
  38. package/dist/xlsx/edit/session.d.ts.map +1 -1
  39. package/dist/xlsx/edit/sheets.d.ts.map +1 -1
  40. package/dist/xlsx/edit/types.d.ts +23 -3
  41. package/dist/xlsx/edit/types.d.ts.map +1 -1
  42. package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
  43. package/dist/xlsx/formula/engine-host.d.ts +6 -2
  44. package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
  45. package/dist/xlsx/formula/engine-prepare.d.ts +33 -0
  46. package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -0
  47. package/dist/xlsx/formula/engine-structure.d.ts +40 -0
  48. package/dist/xlsx/formula/engine-structure.d.ts.map +1 -0
  49. package/dist/xlsx/formula/engine-types.d.ts +26 -0
  50. package/dist/xlsx/formula/engine-types.d.ts.map +1 -1
  51. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  52. package/dist/xlsx/formula/formula-shape.d.ts +28 -0
  53. package/dist/xlsx/formula/formula-shape.d.ts.map +1 -0
  54. package/dist/xlsx/formula/graph-index.d.ts +3 -1
  55. package/dist/xlsx/formula/graph-index.d.ts.map +1 -1
  56. package/dist/xlsx/formula/graph.d.ts +5 -0
  57. package/dist/xlsx/formula/graph.d.ts.map +1 -1
  58. package/dist/xlsx/formula/lexemes.d.ts.map +1 -1
  59. package/dist/xlsx/formula/parse-cache.d.ts +9 -0
  60. package/dist/xlsx/formula/parse-cache.d.ts.map +1 -0
  61. package/dist/xlsx/formula/parser.d.ts +3 -0
  62. package/dist/xlsx/formula/parser.d.ts.map +1 -1
  63. package/dist/xlsx/formula/ref-text.d.ts +14 -0
  64. package/dist/xlsx/formula/ref-text.d.ts.map +1 -0
  65. package/dist/xlsx/formula/references.d.ts.map +1 -1
  66. package/dist/xlsx/formula/shift-formula.d.ts +19 -0
  67. package/dist/xlsx/formula/shift-formula.d.ts.map +1 -0
  68. package/dist/xlsx/formula/shift-graph.d.ts +42 -0
  69. package/dist/xlsx/formula/shift-graph.d.ts.map +1 -0
  70. package/dist/xlsx/formula/transform.d.ts +2 -23
  71. package/dist/xlsx/formula/transform.d.ts.map +1 -1
  72. package/dist/xlsx/index.cjs +1069 -329
  73. package/dist/xlsx/index.mjs +1069 -330
  74. package/dist/xlsx/layout/index.d.ts +1 -1
  75. package/dist/xlsx/layout/index.d.ts.map +1 -1
  76. package/dist/xlsx/layout/sheet-queries.d.ts +7 -0
  77. package/dist/xlsx/layout/sheet-queries.d.ts.map +1 -1
  78. package/dist/xlsx/load/index.cjs +152 -90
  79. package/dist/xlsx/load/index.mjs +152 -90
  80. package/dist/xlsx/ui/index.cjs +1071 -340
  81. package/dist/xlsx/ui/index.mjs +1071 -340
  82. package/package.json +1 -1
@@ -6,6 +6,12 @@
6
6
  *
7
7
  * @module chart-bar-cluster-geometry
8
8
  */
9
+ /**
10
+ * ECMA-376 default of `c:gapWidth` when a bar chart omits it: the gap between
11
+ * categories is 150% of one bar's width. Every bar renderer (2D clustered,
12
+ * stacked and percentStacked, and the 3D layouts) falls back to this one value.
13
+ */
14
+ export declare const DEFAULT_BAR_GAP_WIDTH = 150;
9
15
  export interface BarClusterOptions {
10
16
  barGapWidth?: number;
11
17
  barOverlap?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"bar-cluster-geometry.d.ts","sourceRoot":"","sources":["../../chart/bar-cluster-geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CASxE;AAED,MAAM,WAAW,oBAAoB;IACpC,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,iBAAiB,GAC1B,oBAAoB,CA0CtB"}
1
+ {"version":3,"file":"bar-cluster-geometry.d.ts","sourceRoot":"","sources":["../../chart/bar-cluster-geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CASxE;AAED,MAAM,WAAW,oBAAoB;IACpC,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,iBAAiB,GAC1B,oBAAoB,CAwCtB"}
@@ -2354,6 +2354,7 @@ function chartGradientMarkup(def) {
2354
2354
  }
2355
2355
 
2356
2356
  // chart/bar-cluster-geometry.ts
2357
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2357
2358
  function assertBarClusterOptions(options) {
2358
2359
  for (const [field, min, max] of [
2359
2360
  ["barGapWidth", 0, 500],
@@ -2367,7 +2368,8 @@ function assertBarClusterOptions(options) {
2367
2368
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2368
2369
  const overlap = chartData.barOverlap ?? 0;
2369
2370
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2370
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2371
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2372
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2371
2373
  const step = singleBarWidth * (1 - overlap / 100);
2372
2374
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2373
2375
  }
@@ -4399,7 +4401,7 @@ function chartAreaRect(model, part, area) {
4399
4401
  function chartBarSpacing(chart) {
4400
4402
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
4401
4403
  return {
4402
- barGapWidth: chart.barGapWidth ?? 150,
4404
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
4403
4405
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
4404
4406
  };
4405
4407
  }
@@ -5225,6 +5227,7 @@ exports.CHART_COLOR_STYLE_NS = CHART_COLOR_STYLE_NS;
5225
5227
  exports.CHART_COLOR_STYLE_REL = CHART_COLOR_STYLE_REL;
5226
5228
  exports.CHART_GROUP_ELEMENTS = CHART_GROUP_ELEMENTS;
5227
5229
  exports.CHART_STYLE_PARTS = CHART_STYLE_PARTS;
5230
+ exports.DEFAULT_BAR_GAP_WIDTH = DEFAULT_BAR_GAP_WIDTH;
5228
5231
  exports.DEFAULT_THEME_COLORS = DEFAULT_THEME_COLORS;
5229
5232
  exports.DRAWN_CHART_TYPES = DRAWN_CHART_TYPES;
5230
5233
  exports.LABEL_COLLISION_GAP = LABEL_COLLISION_GAP;
@@ -2352,6 +2352,7 @@ function chartGradientMarkup(def) {
2352
2352
  }
2353
2353
 
2354
2354
  // chart/bar-cluster-geometry.ts
2355
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2355
2356
  function assertBarClusterOptions(options) {
2356
2357
  for (const [field, min, max] of [
2357
2358
  ["barGapWidth", 0, 500],
@@ -2365,7 +2366,8 @@ function assertBarClusterOptions(options) {
2365
2366
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2366
2367
  const overlap = chartData.barOverlap ?? 0;
2367
2368
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2368
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2369
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2370
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2369
2371
  const step = singleBarWidth * (1 - overlap / 100);
2370
2372
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2371
2373
  }
@@ -4397,7 +4399,7 @@ function chartAreaRect(model, part, area) {
4397
4399
  function chartBarSpacing(chart) {
4398
4400
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
4399
4401
  return {
4400
- barGapWidth: chart.barGapWidth ?? 150,
4402
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
4401
4403
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
4402
4404
  };
4403
4405
  }
@@ -5214,4 +5216,4 @@ function renderChartSpaceSvg(space, options) {
5214
5216
  return renderChartSvg(view, width, height, svg);
5215
5217
  }
5216
5218
 
5217
- export { BEST_FIT_EDGE_TOLERANCE, BEST_FIT_OUTSIDE_GAP, BEST_FIT_RIM_INSET, CHART_COLOR_PALETTES, CHART_COLOR_STYLE_CONTENT_TYPE, CHART_COLOR_STYLE_NS, CHART_COLOR_STYLE_REL, CHART_GROUP_ELEMENTS, CHART_STYLE_PARTS, DEFAULT_THEME_COLORS, DRAWN_CHART_TYPES, LABEL_COLLISION_GAP, THEME_SLOTS, aggregateByCategory, assertBarClusterOptions, autoSeriesColor, axisTargetIntervals, buildChartGradientDef, builtInChartStyleXml, builtInChartTextStyle, categoryTotals, chartCacheValues, chartColorScheme, chartColorStyleId, chartColorStyleXml, chartGradientMarkup, chartPaletteColors, chartPaletteSeriesColor, chartPaletteSeriesColorChoice, chartSourceValues, chartSpaceKind, chartSummaryFromSpace, chartSummarySeries, chartSummaryView, chartThemePalette, clusteredBarGeometry, computeBoxStats, computeHistogramBins, computeLinearRegression, computeRSquared, computeRadarPoints, computeStackedSeriesPlots, effectiveBuiltInChartStyle, findChartColorPalette, fitPolynomial, formatExponentialEquation, formatLinearEquation, formatLogarithmicEquation, formatPolynomialEquation, formatPowerEquation, formatTrendlineCoefficient, groupRowsByCategory, hasManualLayoutFields, modulateLuminance, niceAxisStep, niceValueAxisBounds, nudgeOutsideLabels, parseChartSpace, placeBestFitLabel, radarAngle, radarRingPoints, readBuiltInChartStyle, readChartFormatting, readChartManualLayoutValues, readChartStyle, readDisplayNaAsBlank, removeGradientStop, renderChartSpaceSvg, renderChartSvg, resolveBlankDisplay, resolveChartGradient, resolveChartStyleDefinition, resolveManualLayoutRect, scottBinCount, sortGradientStops, squarify, themeColor, updateGradientStop, visibleRuns, withChartGradientDirection, withinLinearTransform, writeChartAxisFormatting, writeChartFillFormatting, writeChartLayoutFormatting, writeChartSpace };
5219
+ export { BEST_FIT_EDGE_TOLERANCE, BEST_FIT_OUTSIDE_GAP, BEST_FIT_RIM_INSET, CHART_COLOR_PALETTES, CHART_COLOR_STYLE_CONTENT_TYPE, CHART_COLOR_STYLE_NS, CHART_COLOR_STYLE_REL, CHART_GROUP_ELEMENTS, CHART_STYLE_PARTS, DEFAULT_BAR_GAP_WIDTH, DEFAULT_THEME_COLORS, DRAWN_CHART_TYPES, LABEL_COLLISION_GAP, THEME_SLOTS, aggregateByCategory, assertBarClusterOptions, autoSeriesColor, axisTargetIntervals, buildChartGradientDef, builtInChartStyleXml, builtInChartTextStyle, categoryTotals, chartCacheValues, chartColorScheme, chartColorStyleId, chartColorStyleXml, chartGradientMarkup, chartPaletteColors, chartPaletteSeriesColor, chartPaletteSeriesColorChoice, chartSourceValues, chartSpaceKind, chartSummaryFromSpace, chartSummarySeries, chartSummaryView, chartThemePalette, clusteredBarGeometry, computeBoxStats, computeHistogramBins, computeLinearRegression, computeRSquared, computeRadarPoints, computeStackedSeriesPlots, effectiveBuiltInChartStyle, findChartColorPalette, fitPolynomial, formatExponentialEquation, formatLinearEquation, formatLogarithmicEquation, formatPolynomialEquation, formatPowerEquation, formatTrendlineCoefficient, groupRowsByCategory, hasManualLayoutFields, modulateLuminance, niceAxisStep, niceValueAxisBounds, nudgeOutsideLabels, parseChartSpace, placeBestFitLabel, radarAngle, radarRingPoints, readBuiltInChartStyle, readChartFormatting, readChartManualLayoutValues, readChartStyle, readDisplayNaAsBlank, removeGradientStop, renderChartSpaceSvg, renderChartSvg, resolveBlankDisplay, resolveChartGradient, resolveChartStyleDefinition, resolveManualLayoutRect, scottBinCount, sortGradientStops, squarify, themeColor, updateGradientStop, visibleRuns, withChartGradientDirection, withinLinearTransform, writeChartAxisFormatting, writeChartFillFormatting, writeChartLayoutFormatting, writeChartSpace };
@@ -1 +1 @@
1
- {"version":3,"file":"chart-spacing.d.ts","sourceRoot":"","sources":["../../../chart/render/chart-spacing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,KAAK,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;AAElF,2FAA2F;AAC3F,wBAAgB,eAAe,CAC9B,KAAK,EAAE,YAAY,GACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAM5D"}
1
+ {"version":3,"file":"chart-spacing.d.ts","sourceRoot":"","sources":["../../../chart/render/chart-spacing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,KAAK,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;AAElF,2FAA2F;AAC3F,wBAAgB,eAAe,CAC9B,KAAK,EAAE,YAAY,GACjB,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAM5D"}
@@ -1,6 +1,6 @@
1
- import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-VYTA2OUN.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-XCZ7U3GZ.mjs';
3
- import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, hasTextProperties } from './chunk-CQQAPUAG.mjs';
1
+ import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-5VLNF4OX.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-XSFHGZFH.mjs';
3
+ import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, hasTextProperties } from './chunk-V2BIGIH4.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 } from './chunk-CQQAPUAG.mjs';
1
+ import { hasTextProperties } from './chunk-V2BIGIH4.mjs';
2
2
  import { cloneSlide } from './chunk-54S5A5PZ.mjs';
3
3
 
4
4
  // pptx/core/builders/sdk/merge-operations.ts
@@ -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-SJTINPU4.mjs');
21463
+ const { PptxHandler } = await import('./PptxHandler-VQQS4VS6.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 };
@@ -43642,6 +43642,15 @@ function regenerateClonedUniqueId(clonedNode, localName15) {
43642
43642
  }
43643
43643
  }
43644
43644
 
43645
+ // pptx/core/utils/chart-xml-presence.ts
43646
+ function hasLocalName(node, name) {
43647
+ if (Object.hasOwn(node, name)) {
43648
+ return true;
43649
+ }
43650
+ const suffix = `:${name}`;
43651
+ return Object.keys(node).some((key) => key.endsWith(suffix));
43652
+ }
43653
+
43645
43654
  // pptx/core/utils/chart-series-detail-parser.ts
43646
43655
  function localNameOf6(key) {
43647
43656
  return key.replace(/^.*:/u, "");
@@ -43699,7 +43708,7 @@ function parseShapeProps(spPrNode, xmlLookup, colorParser) {
43699
43708
  }
43700
43709
  const ln = xmlLookup.getChildByLocalName(spPrNode, "ln");
43701
43710
  if (ln) {
43702
- if (Object.keys(ln).some((key) => localNameOf6(key) === "noFill")) {
43711
+ if (hasLocalName(ln, "noFill")) {
43703
43712
  result.lineNoFill = true;
43704
43713
  hasProps = true;
43705
43714
  }
@@ -45077,13 +45086,6 @@ function safeInt3(val) {
45077
45086
  const n = parseInt(String(val), 10);
45078
45087
  return Number.isFinite(n) ? n : void 0;
45079
45088
  }
45080
- function hasLocalName(node, name) {
45081
- if (Object.hasOwn(node, name)) {
45082
- return true;
45083
- }
45084
- const suffix = `:${name}`;
45085
- return Object.keys(node).some((key) => key.endsWith(suffix));
45086
- }
45087
45089
  var AXIS_TYPE_MAP = {
45088
45090
  catAx: "catAx",
45089
45091
  valAx: "valAx",
@@ -1,4 +1,4 @@
1
- import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-CQQAPUAG.mjs';
1
+ import { hasTextProperties, isImageLikeElement, blobUrlToDataUrl, getSubstituteFontFamily, stripXmlOrderSuffix } from './chunk-V2BIGIH4.mjs';
2
2
 
3
3
  // pptx/converter/media-context.ts
4
4
  var MIME_TO_EXT = {
@@ -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-CQQAPUAG.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, 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-V2BIGIH4.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';
@@ -60602,10 +60602,8 @@ var PptxHandlerRuntime22 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
60602
60602
  * first paragraph takes the cell's.
60603
60603
  */
60604
60604
  writeTableCellStyle(xmlCell, style, paragraphs) {
60605
- if (!xmlCell["a:tcPr"]) {
60606
- xmlCell["a:tcPr"] = {};
60607
- }
60608
- const tcPr = xmlCell["a:tcPr"];
60605
+ const existingTcPr = xmlCell["a:tcPr"];
60606
+ const tcPr = existingTcPr ?? {};
60609
60607
  writeCellFill(tcPr, style, (colorXml2) => this.parseColor(colorXml2));
60610
60608
  if (style.vAlign) {
60611
60609
  const vAlignMap = {
@@ -60705,6 +60703,9 @@ var PptxHandlerRuntime22 = class _PptxHandlerRuntime extends PptxHandlerRuntime2
60705
60703
  for (const key2 of Object.keys(reordered)) {
60706
60704
  tcPr[key2] = reordered[key2];
60707
60705
  }
60706
+ if (!existingTcPr && Object.keys(tcPr).length > 0) {
60707
+ xmlCell["a:tcPr"] = tcPr;
60708
+ }
60708
60709
  }
60709
60710
  };
60710
60711
 
@@ -60881,10 +60882,8 @@ var OPAQUE_TC_PR_ATTRS = [
60881
60882
  "slicerCacheId"
60882
60883
  ];
60883
60884
  function serializeCellExtraAttributes(xmlCell, extra) {
60884
- if (!xmlCell["a:tcPr"]) {
60885
- xmlCell["a:tcPr"] = {};
60886
- }
60887
- const tcPr = xmlCell["a:tcPr"];
60885
+ const existing = xmlCell["a:tcPr"];
60886
+ const tcPr = existing ?? {};
60888
60887
  for (const attr5 of OPAQUE_TC_PR_ATTRS) {
60889
60888
  const key2 = `@_${attr5}`;
60890
60889
  const value = extra?.[attr5];
@@ -60894,6 +60893,9 @@ function serializeCellExtraAttributes(xmlCell, extra) {
60894
60893
  delete tcPr[key2];
60895
60894
  }
60896
60895
  }
60896
+ if (!existing && Object.keys(tcPr).length > 0) {
60897
+ xmlCell["a:tcPr"] = tcPr;
60898
+ }
60897
60899
  }
60898
60900
  function serializeCellMergeAttributes(xmlCell, cell) {
60899
60901
  if (cell.gridSpan !== void 0 && cell.gridSpan > 1) {
@@ -6196,10 +6196,12 @@ function chartGradientMarkup(def) {
6196
6196
  }
6197
6197
 
6198
6198
  // chart/bar-cluster-geometry.ts
6199
+ var DEFAULT_BAR_GAP_WIDTH = 150;
6199
6200
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
6200
6201
  const overlap = chartData.barOverlap ?? 0;
6201
6202
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
6202
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
6203
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
6204
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
6203
6205
  const step = singleBarWidth * (1 - overlap / 100);
6204
6206
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
6205
6207
  }
@@ -7675,7 +7677,7 @@ function chartAreaRect(model, part, area) {
7675
7677
  function chartBarSpacing(chart) {
7676
7678
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
7677
7679
  return {
7678
- barGapWidth: chart.barGapWidth ?? 150,
7680
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
7679
7681
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
7680
7682
  };
7681
7683
  }
@@ -6190,10 +6190,12 @@ function chartGradientMarkup(def) {
6190
6190
  }
6191
6191
 
6192
6192
  // chart/bar-cluster-geometry.ts
6193
+ var DEFAULT_BAR_GAP_WIDTH = 150;
6193
6194
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
6194
6195
  const overlap = chartData.barOverlap ?? 0;
6195
6196
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
6196
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
6197
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
6198
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
6197
6199
  const step = singleBarWidth * (1 - overlap / 100);
6198
6200
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
6199
6201
  }
@@ -7669,7 +7671,7 @@ function chartAreaRect(model, part, area) {
7669
7671
  function chartBarSpacing(chart) {
7670
7672
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
7671
7673
  return {
7672
- barGapWidth: chart.barGapWidth ?? 150,
7674
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
7673
7675
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
7674
7676
  };
7675
7677
  }
@@ -2046,10 +2046,12 @@ function chartGradientMarkup(def) {
2046
2046
  }
2047
2047
 
2048
2048
  // chart/bar-cluster-geometry.ts
2049
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2049
2050
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2050
2051
  const overlap = chartData.barOverlap ?? 0;
2051
2052
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2052
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2053
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2054
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2053
2055
  const step = singleBarWidth * (1 - overlap / 100);
2054
2056
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2055
2057
  }
@@ -2738,7 +2740,7 @@ function chartAreaRect(model, part, area) {
2738
2740
  function chartBarSpacing(chart) {
2739
2741
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
2740
2742
  return {
2741
- barGapWidth: chart.barGapWidth ?? 150,
2743
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
2742
2744
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
2743
2745
  };
2744
2746
  }
@@ -2044,10 +2044,12 @@ function chartGradientMarkup(def) {
2044
2044
  }
2045
2045
 
2046
2046
  // chart/bar-cluster-geometry.ts
2047
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2047
2048
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2048
2049
  const overlap = chartData.barOverlap ?? 0;
2049
2050
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2050
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2051
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2052
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2051
2053
  const step = singleBarWidth * (1 - overlap / 100);
2052
2054
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2053
2055
  }
@@ -2736,7 +2738,7 @@ function chartAreaRect(model, part, area) {
2736
2738
  function chartBarSpacing(chart) {
2737
2739
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
2738
2740
  return {
2739
- barGapWidth: chart.barGapWidth ?? 150,
2741
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
2740
2742
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
2741
2743
  };
2742
2744
  }
@@ -3646,10 +3646,12 @@ function chartGradientMarkup(def) {
3646
3646
  }
3647
3647
 
3648
3648
  // chart/bar-cluster-geometry.ts
3649
+ var DEFAULT_BAR_GAP_WIDTH = 150;
3649
3650
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
3650
3651
  const overlap = chartData.barOverlap ?? 0;
3651
3652
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
3652
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
3653
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
3654
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
3653
3655
  const step = singleBarWidth * (1 - overlap / 100);
3654
3656
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
3655
3657
  }
@@ -4338,7 +4340,7 @@ function chartAreaRect(model, part, area) {
4338
4340
  function chartBarSpacing(chart) {
4339
4341
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
4340
4342
  return {
4341
- barGapWidth: chart.barGapWidth ?? 150,
4343
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
4342
4344
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
4343
4345
  };
4344
4346
  }
@@ -3624,10 +3624,12 @@ function chartGradientMarkup(def) {
3624
3624
  }
3625
3625
 
3626
3626
  // chart/bar-cluster-geometry.ts
3627
+ var DEFAULT_BAR_GAP_WIDTH = 150;
3627
3628
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
3628
3629
  const overlap = chartData.barOverlap ?? 0;
3629
3630
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
3630
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
3631
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
3632
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
3631
3633
  const step = singleBarWidth * (1 - overlap / 100);
3632
3634
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
3633
3635
  }
@@ -4316,7 +4318,7 @@ function chartAreaRect(model, part, area) {
4316
4318
  function chartBarSpacing(chart) {
4317
4319
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
4318
4320
  return {
4319
- barGapWidth: chart.barGapWidth ?? 150,
4321
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
4320
4322
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
4321
4323
  };
4322
4324
  }
package/dist/index.cjs CHANGED
@@ -529,6 +529,7 @@ __export(chart_exports, {
529
529
  CHART_COLOR_STYLE_REL: () => CHART_COLOR_STYLE_REL,
530
530
  CHART_GROUP_ELEMENTS: () => CHART_GROUP_ELEMENTS,
531
531
  CHART_STYLE_PARTS: () => CHART_STYLE_PARTS,
532
+ DEFAULT_BAR_GAP_WIDTH: () => DEFAULT_BAR_GAP_WIDTH,
532
533
  DEFAULT_THEME_COLORS: () => DEFAULT_THEME_COLORS,
533
534
  DRAWN_CHART_TYPES: () => DRAWN_CHART_TYPES,
534
535
  LABEL_COLLISION_GAP: () => LABEL_COLLISION_GAP,
@@ -2888,6 +2889,7 @@ function chartGradientMarkup(def) {
2888
2889
  }
2889
2890
 
2890
2891
  // chart/bar-cluster-geometry.ts
2892
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2891
2893
  function assertBarClusterOptions(options) {
2892
2894
  for (const [field, min, max] of [
2893
2895
  ["barGapWidth", 0, 500],
@@ -2901,7 +2903,8 @@ function assertBarClusterOptions(options) {
2901
2903
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2902
2904
  const overlap = chartData.barOverlap ?? 0;
2903
2905
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2904
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2906
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2907
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2905
2908
  const step = singleBarWidth * (1 - overlap / 100);
2906
2909
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2907
2910
  }
@@ -5067,7 +5070,7 @@ function chartAreaRect(model, part, area) {
5067
5070
  function chartBarSpacing(chart) {
5068
5071
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
5069
5072
  return {
5070
- barGapWidth: chart.barGapWidth ?? 150,
5073
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
5071
5074
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
5072
5075
  };
5073
5076
  }
package/dist/index.mjs CHANGED
@@ -523,6 +523,7 @@ __export(chart_exports, {
523
523
  CHART_COLOR_STYLE_REL: () => CHART_COLOR_STYLE_REL,
524
524
  CHART_GROUP_ELEMENTS: () => CHART_GROUP_ELEMENTS,
525
525
  CHART_STYLE_PARTS: () => CHART_STYLE_PARTS,
526
+ DEFAULT_BAR_GAP_WIDTH: () => DEFAULT_BAR_GAP_WIDTH,
526
527
  DEFAULT_THEME_COLORS: () => DEFAULT_THEME_COLORS,
527
528
  DRAWN_CHART_TYPES: () => DRAWN_CHART_TYPES,
528
529
  LABEL_COLLISION_GAP: () => LABEL_COLLISION_GAP,
@@ -2882,6 +2883,7 @@ function chartGradientMarkup(def) {
2882
2883
  }
2883
2884
 
2884
2885
  // chart/bar-cluster-geometry.ts
2886
+ var DEFAULT_BAR_GAP_WIDTH = 150;
2885
2887
  function assertBarClusterOptions(options) {
2886
2888
  for (const [field, min, max] of [
2887
2889
  ["barGapWidth", 0, 500],
@@ -2895,7 +2897,8 @@ function assertBarClusterOptions(options) {
2895
2897
  function clusteredBarGeometry(barGroupWidth, seriesCount, chartData) {
2896
2898
  const overlap = chartData.barOverlap ?? 0;
2897
2899
  const overlapSpan = 1 + (seriesCount - 1) * (1 - overlap / 100);
2898
- const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth / (overlapSpan + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth * 0.7 / seriesCount;
2900
+ const gapWidth = chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH;
2901
+ const singleBarWidth = barGroupWidth / (overlapSpan + Math.max(gapWidth, 0) / 100);
2899
2902
  const step = singleBarWidth * (1 - overlap / 100);
2900
2903
  return { singleBarWidth, step, clusterWidth: singleBarWidth + step * (seriesCount - 1) };
2901
2904
  }
@@ -5061,7 +5064,7 @@ function chartAreaRect(model, part, area) {
5061
5064
  function chartBarSpacing(chart) {
5062
5065
  const stacked = chart.grouping === "stacked" || chart.grouping === "percentStacked";
5063
5066
  return {
5064
- barGapWidth: chart.barGapWidth ?? 150,
5067
+ barGapWidth: chart.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH,
5065
5068
  barOverlap: chart.barOverlap ?? (stacked ? 100 : 0)
5066
5069
  };
5067
5070
  }
@@ -44829,6 +44829,19 @@ var init_chart_series_identity = __esm({
44829
44829
  }
44830
44830
  });
44831
44831
 
44832
+ // pptx/core/utils/chart-xml-presence.ts
44833
+ function hasLocalName(node, name) {
44834
+ if (Object.hasOwn(node, name)) {
44835
+ return true;
44836
+ }
44837
+ const suffix = `:${name}`;
44838
+ return Object.keys(node).some((key2) => key2.endsWith(suffix));
44839
+ }
44840
+ var init_chart_xml_presence = __esm({
44841
+ "pptx/core/utils/chart-xml-presence.ts"() {
44842
+ }
44843
+ });
44844
+
44832
44845
  // pptx/core/utils/chart-series-detail-parser.ts
44833
44846
  function localNameOf7(key2) {
44834
44847
  return key2.replace(/^.*:/u, "");
@@ -44872,7 +44885,7 @@ function parseShapeProps(spPrNode, xmlLookup, colorParser) {
44872
44885
  }
44873
44886
  const ln = xmlLookup.getChildByLocalName(spPrNode, "ln");
44874
44887
  if (ln) {
44875
- if (Object.keys(ln).some((key2) => localNameOf7(key2) === "noFill")) {
44888
+ if (hasLocalName(ln, "noFill")) {
44876
44889
  result.lineNoFill = true;
44877
44890
  hasProps = true;
44878
44891
  }
@@ -44984,6 +44997,7 @@ var init_chart_series_detail_parser = __esm({
44984
44997
  "pptx/core/utils/chart-series-detail-parser.ts"() {
44985
44998
  init_chart_datapoint_serializer();
44986
44999
  init_chart_series_identity();
45000
+ init_chart_xml_presence();
44987
45001
  MARKER_SYMBOL_MAP = {
44988
45002
  circle: "circle",
44989
45003
  dash: "dash",
@@ -46235,13 +46249,6 @@ function safeInt3(val) {
46235
46249
  const n = parseInt(String(val), 10);
46236
46250
  return Number.isFinite(n) ? n : void 0;
46237
46251
  }
46238
- function hasLocalName(node, name) {
46239
- if (Object.hasOwn(node, name)) {
46240
- return true;
46241
- }
46242
- const suffix = `:${name}`;
46243
- return Object.keys(node).some((key2) => key2.endsWith(suffix));
46244
- }
46245
46252
  function parseChartAxes(plotArea, xmlLookup, colorParser, getLocalName2, resolveTypeface) {
46246
46253
  const result = [];
46247
46254
  for (const key2 of Object.keys(plotArea)) {
@@ -46459,6 +46466,7 @@ var init_chart_axis_parser = __esm({
46459
46466
  init_chart_date_axis();
46460
46467
  init_chart_series_detail_parser();
46461
46468
  init_chart_title_xml_ops();
46469
+ init_chart_xml_presence();
46462
46470
  AXIS_TYPE_MAP = {
46463
46471
  catAx: "catAx",
46464
46472
  valAx: "valAx",
@@ -46624,7 +46632,7 @@ function parseCxAxes(plotArea, xmlLookup, colorParser, resolveTypeface) {
46624
46632
  var NO_COLOR;
46625
46633
  var init_chart_cx_axis_parser = __esm({
46626
46634
  "pptx/core/utils/chart-cx-axis-parser.ts"() {
46627
- init_chart_axis_parser();
46635
+ init_chart_xml_presence();
46628
46636
  init_chart_series_detail_parser();
46629
46637
  init_chart_title_xml_ops();
46630
46638
  NO_COLOR = { parseColor: () => void 0 };
@@ -119678,10 +119686,8 @@ var init_PptxHandlerRuntimeSaveTableStyles = __esm({
119678
119686
  * first paragraph takes the cell's.
119679
119687
  */
119680
119688
  writeTableCellStyle(xmlCell, style, paragraphs) {
119681
- if (!xmlCell["a:tcPr"]) {
119682
- xmlCell["a:tcPr"] = {};
119683
- }
119684
- const tcPr = xmlCell["a:tcPr"];
119689
+ const existingTcPr = xmlCell["a:tcPr"];
119690
+ const tcPr = existingTcPr ?? {};
119685
119691
  writeCellFill(tcPr, style, (colorXml2) => this.parseColor(colorXml2));
119686
119692
  if (style.vAlign) {
119687
119693
  const vAlignMap = {
@@ -119781,6 +119787,9 @@ var init_PptxHandlerRuntimeSaveTableStyles = __esm({
119781
119787
  for (const key2 of Object.keys(reordered)) {
119782
119788
  tcPr[key2] = reordered[key2];
119783
119789
  }
119790
+ if (!existingTcPr && Object.keys(tcPr).length > 0) {
119791
+ xmlCell["a:tcPr"] = tcPr;
119792
+ }
119784
119793
  }
119785
119794
  };
119786
119795
  }
@@ -119961,10 +119970,8 @@ var init_PptxHandlerRuntimeChartUserShapes = __esm({
119961
119970
 
119962
119971
  // pptx/core/core/runtime/save-table-merge-helpers.ts
119963
119972
  function serializeCellExtraAttributes(xmlCell, extra) {
119964
- if (!xmlCell["a:tcPr"]) {
119965
- xmlCell["a:tcPr"] = {};
119966
- }
119967
- const tcPr = xmlCell["a:tcPr"];
119973
+ const existing = xmlCell["a:tcPr"];
119974
+ const tcPr = existing ?? {};
119968
119975
  for (const attr6 of OPAQUE_TC_PR_ATTRS) {
119969
119976
  const key2 = `@_${attr6}`;
119970
119977
  const value = extra?.[attr6];
@@ -119974,6 +119981,9 @@ function serializeCellExtraAttributes(xmlCell, extra) {
119974
119981
  delete tcPr[key2];
119975
119982
  }
119976
119983
  }
119984
+ if (!existing && Object.keys(tcPr).length > 0) {
119985
+ xmlCell["a:tcPr"] = tcPr;
119986
+ }
119977
119987
  }
119978
119988
  function serializeCellMergeAttributes(xmlCell, cell) {
119979
119989
  if (cell.gridSpan !== void 0 && cell.gridSpan > 1) {
@@ -1,9 +1,9 @@
1
- import { duplicateSlide, ThemePresets, getThemePreset, ChartBuilder, setChartDataPointStyle, setChartHelperLine, setChartColorMapOverride, listChartUserShapes, addChartUserShape, updateChartUserShape, removeChartUserShape, diffPresentations, findPlaceholders, applyTemplate, getSectionForSlide, moveSlidesToSection, reorderSections, removeSection, addSection, replaceWithCustomGeometry, replaceShapeGeometry, setElementLocked, findLayoutByName, findLayoutByType } from '../../chunk-TEOAOAIF.mjs';
1
+ import { duplicateSlide, ThemePresets, getThemePreset, ChartBuilder, setChartDataPointStyle, setChartHelperLine, setChartColorMapOverride, listChartUserShapes, addChartUserShape, updateChartUserShape, removeChartUserShape, diffPresentations, findPlaceholders, applyTemplate, getSectionForSlide, moveSlidesToSection, reorderSections, removeSection, addSection, replaceWithCustomGeometry, replaceShapeGeometry, setElementLocked, findLayoutByName, findLayoutByType } from '../../chunk-5U27IVB7.mjs';
2
2
  import '../../chunk-6Q7TP72Y.mjs';
3
- import { mergePresentation } from '../../chunk-VYTA2OUN.mjs';
4
- import { PptxMarkdownConverter } from '../../chunk-FI4RSJ24.mjs';
5
- import { rebuildTableStructureInRawXml, TABLE_STYLE_PART_SEQUENCE, normalizeTableStyleGuid, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, setChartType, setChartTitle, setChartGrouping, setChartLegend, setChartDataLabels, setChartAxis, setChartCategories, addChartSeries, removeChartSeries, updateChartSeriesValues, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, setChartSeriesMarker, setChartSeriesTrendline, setChartSeriesErrorBars, PptxHandler } from '../../chunk-XCZ7U3GZ.mjs';
6
- import { hasTextProperties, resolveDisplayedChartTypeName, isTemplateElementId, makeStoreAwareId, reassignDescendantIds, groupElements, ungroupElements, decomposeSmartArt, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, updateSmartArtNodeText, removeSmartArtNode, addSmartArtNode, SvgExporter, buildPptxJsonDocument, deserializePptxFromJson, applyImportedPptxData, validatePptx, repairPptx, resolveOleEditorKindFromPayload, getOleNestedDeckDetail, getOleDocumentParagraphs, getOleSheetGrid, applyOleSheetCellEdit, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, setOleObjectName, parseDataUrlToBytes, replaceOleFile, ELEMENT_FIELD_KIND, SLIDE_FIELD_KIND } from '../../chunk-CQQAPUAG.mjs';
3
+ import { mergePresentation } from '../../chunk-5VLNF4OX.mjs';
4
+ import { PptxMarkdownConverter } from '../../chunk-XBNSBDNT.mjs';
5
+ import { rebuildTableStructureInRawXml, TABLE_STYLE_PART_SEQUENCE, normalizeTableStyleGuid, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, setChartType, setChartTitle, setChartGrouping, setChartLegend, setChartDataLabels, setChartAxis, setChartCategories, addChartSeries, removeChartSeries, updateChartSeriesValues, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, setChartSeriesMarker, setChartSeriesTrendline, setChartSeriesErrorBars, PptxHandler } from '../../chunk-XSFHGZFH.mjs';
6
+ import { hasTextProperties, resolveDisplayedChartTypeName, isTemplateElementId, makeStoreAwareId, reassignDescendantIds, groupElements, ungroupElements, decomposeSmartArt, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, updateSmartArtNodeText, removeSmartArtNode, addSmartArtNode, SvgExporter, buildPptxJsonDocument, deserializePptxFromJson, applyImportedPptxData, validatePptx, repairPptx, resolveOleEditorKindFromPayload, getOleNestedDeckDetail, getOleDocumentParagraphs, getOleSheetGrid, applyOleSheetCellEdit, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, setOleObjectName, parseDataUrlToBytes, replaceOleFile, ELEMENT_FIELD_KIND, SLIDE_FIELD_KIND } from '../../chunk-V2BIGIH4.mjs';
7
7
  import '../../chunk-KBIJI6P5.mjs';
8
8
  import '../../chunk-3GXV5MPC.mjs';
9
9
  import { cloneElement } from '../../chunk-54S5A5PZ.mjs';