pptx-kit 0.6.1 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # pptx-kit
2
2
 
3
+ ## 0.6.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 099d77b: Emit PowerPoint's default cell insets on table cells
8
+
9
+ `addSlideTable` cells now carry the explicit default insets PowerPoint and
10
+ PptxGenJS both write — `<a:tcPr marL="91440" marR="91440" marT="45720"
11
+ marB="45720">` — plus a `<a:pPr marL="0" indent="0"><a:buNone/></a:pPr>` that
12
+ suppresses any inherited list bullet on the cell paragraph. The table renders
13
+ identically (these match the values PowerPoint applies when they're absent),
14
+ but the cell is now self-describing, so the output matches a PowerPoint- or
15
+ PptxGenJS-authored table byte-for-byte at the cell level.
16
+
17
+ Note: `getTableCellMargins` now returns the explicit `91440 / 45720` defaults
18
+ for a freshly-authored cell instead of `null`.
19
+
20
+ ## 0.6.2
21
+
22
+ ### Patch Changes
23
+
24
+ - c41d8f9: Fix jammed bullet lists and unreadable chart categories
25
+
26
+ - **Bulleted text boxes now indent correctly.** `setShapeBullets` /
27
+ `setParagraphBullet` added the bullet glyph but no hanging indent, so a bullet
28
+ authored on a text box (which inherits the master's `otherStyle`, marL=0, not
29
+ the body style) rendered with the glyph jammed against the text. They now
30
+ write PowerPoint's per-level default `marL` / `indent` (unless the caller set
31
+ their own), matching PowerPoint and PptxGenJS.
32
+ - **Charts with multi-level category references now read back.** The chart
33
+ reader handled `<c:strRef>` / `<c:strLit>` categories but not
34
+ `<c:multiLvlStrRef>`, which is what PowerPoint and PptxGenJS emit — so
35
+ `getShapeChartCategories` (and the full `getShapeChartSpec`) returned an empty
36
+ category list for those charts. It now reads the level's points.
37
+
3
38
  ## 0.6.1
4
39
 
5
40
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1506,6 +1506,17 @@ var applyAlignmentToAllParagraphs = (txBody, align) => {
1506
1506
  pPr.attrs.push(attr(ATTR_ALGN, token));
1507
1507
  }
1508
1508
  };
1509
+ var BULLET_INDENT_BY_LEVEL = [
1510
+ { marL: 342900, indent: -342900 },
1511
+ { marL: 742950, indent: -285750 },
1512
+ { marL: 1143e3, indent: -228600 },
1513
+ { marL: 1600200, indent: -228600 },
1514
+ { marL: 2057400, indent: -228600 }
1515
+ ];
1516
+ var bulletIndentForLevel = (lvl) => BULLET_INDENT_BY_LEVEL[Math.min(lvl, BULLET_INDENT_BY_LEVEL.length - 1)];
1517
+ var ATTR_MAR_L = qname("", "marL", "");
1518
+ var ATTR_INDENT = qname("", "indent", "");
1519
+ var hasAttr = (el, local) => el.attrs.some((a2) => a2.name.namespaceURI === "" && a2.name.localName === local);
1509
1520
  var applyBulletToParagraph = (paragraph, style) => {
1510
1521
  let pPr = firstChildElement(paragraph, NAME_PPR_FOR_BULLET);
1511
1522
  if (pPr === null) {
@@ -1515,6 +1526,15 @@ var applyBulletToParagraph = (paragraph, style) => {
1515
1526
  pPr.children = pPr.children.filter(
1516
1527
  (c2) => !(c2.kind === "element" && c2.name.namespaceURI === NS.dml && (c2.name.localName === "buChar" || c2.name.localName === "buAutoNum" || c2.name.localName === "buNone"))
1517
1528
  );
1529
+ if (style !== "none") {
1530
+ const lvl = Number.parseInt(
1531
+ pPr.attrs.find((a2) => a2.name.localName === "lvl")?.value ?? "0",
1532
+ 10
1533
+ );
1534
+ const { marL, indent } = bulletIndentForLevel(Number.isFinite(lvl) ? lvl : 0);
1535
+ if (!hasAttr(pPr, "marL")) pPr.attrs.push(attr(ATTR_MAR_L, String(marL)));
1536
+ if (!hasAttr(pPr, "indent")) pPr.attrs.push(attr(ATTR_INDENT, String(indent)));
1537
+ }
1518
1538
  pPr.children.push(buildBulletElement(style));
1519
1539
  };
1520
1540
  var applyBulletToAllParagraphs = (txBody, style) => {
@@ -2958,7 +2978,14 @@ var NAME_RPR6 = qname("a", "rPr", NS.dml);
2958
2978
  var NAME_SOLID_FILL5 = qname("a", "solidFill", NS.dml);
2959
2979
  var NAME_SRGB_CLR3 = qname("a", "srgbClr", NS.dml);
2960
2980
  var NAME_T5 = qname("a", "t", NS.dml);
2981
+ var NAME_PPR2 = qname("a", "pPr", NS.dml);
2982
+ var NAME_BU_NONE2 = qname("a", "buNone", NS.dml);
2961
2983
  var ATTR_VAL5 = qname("", "val", "");
2984
+ var ATTR_MAR_L2 = qname("", "marL", "");
2985
+ var ATTR_MAR_R = qname("", "marR", "");
2986
+ var ATTR_MAR_T = qname("", "marT", "");
2987
+ var ATTR_MAR_B = qname("", "marB", "");
2988
+ var ATTR_INDENT2 = qname("", "indent", "");
2962
2989
  var ATTR_ID9 = qname("", "id", "");
2963
2990
  var ATTR_NAME9 = qname("", "name", "");
2964
2991
  var ATTR_NO_GRP2 = qname("", "noGrp", "");
@@ -2991,11 +3018,23 @@ var buildTextCellBody = (value, textColorHex) => {
2991
3018
  const r2 = elem(NAME_R7, {
2992
3019
  children: [buildCellRunProps(textColorHex), t]
2993
3020
  });
2994
- const p = elem(NAME_P6, { children: [r2] });
3021
+ const pPr = elem(NAME_PPR2, {
3022
+ attrs: [attr(ATTR_MAR_L2, "0"), attr(ATTR_INDENT2, "0")],
3023
+ children: [elem(NAME_BU_NONE2)]
3024
+ });
3025
+ const p = elem(NAME_P6, { children: [pPr, r2] });
2995
3026
  return elem(NAME_TX_BODY5, { children: [elem(NAME_BODY_PR4), elem(NAME_LST_STYLE4), p] });
2996
3027
  };
3028
+ var buildCellProps = () => elem(NAME_TC_PR, {
3029
+ attrs: [
3030
+ attr(ATTR_MAR_L2, "91440"),
3031
+ attr(ATTR_MAR_R, "91440"),
3032
+ attr(ATTR_MAR_T, "45720"),
3033
+ attr(ATTR_MAR_B, "45720")
3034
+ ]
3035
+ });
2997
3036
  var buildTableCell = (value, textColorHex) => {
2998
- return elem(NAME_TC, { children: [buildTextCellBody(value, textColorHex), elem(NAME_TC_PR)] });
3037
+ return elem(NAME_TC, { children: [buildTextCellBody(value, textColorHex), buildCellProps()] });
2999
3038
  };
3000
3039
  var buildTableRow = (cells, h, textColorHex) => elem(NAME_TR, {
3001
3040
  attrs: [attr(ATTR_H2, String(Math.round(h)))],
@@ -4929,6 +4968,9 @@ var NAME_STR_CACHE = qname("c", "strCache", NS_C2);
4929
4968
  var NAME_NUM_CACHE = qname("c", "numCache", NS_C2);
4930
4969
  var NAME_STR_LIT = qname("c", "strLit", NS_C2);
4931
4970
  var NAME_NUM_LIT = qname("c", "numLit", NS_C2);
4971
+ var NAME_MULTI_LVL_STR_REF = qname("c", "multiLvlStrRef", NS_C2);
4972
+ var NAME_MULTI_LVL_STR_CACHE = qname("c", "multiLvlStrCache", NS_C2);
4973
+ var NAME_LVL = qname("c", "lvl", NS_C2);
4932
4974
  var NAME_PT = qname("c", "pt", NS_C2);
4933
4975
  var NAME_V = qname("c", "v", NS_C2);
4934
4976
  var NAME_TITLE = qname("c", "title", NS_C2);
@@ -5003,6 +5045,12 @@ var readStringChannel = (parent) => {
5003
5045
  }
5004
5046
  const lit = firstChildElement(parent, NAME_STR_LIT);
5005
5047
  if (lit) return readPtArray(lit);
5048
+ const multi = firstChildElement(parent, NAME_MULTI_LVL_STR_REF);
5049
+ if (multi) {
5050
+ const cache = firstChildElement(multi, NAME_MULTI_LVL_STR_CACHE);
5051
+ const lvl = cache ? firstChildElement(cache, NAME_LVL) : null;
5052
+ if (lvl) return readPtArray(lvl);
5053
+ }
5006
5054
  return null;
5007
5055
  };
5008
5056
  var readStringRef = (parent) => readStringChannel(parent);
@@ -13670,7 +13718,7 @@ var mergePresentations = (targetPres, sourcePres, targetLayout) => {
13670
13718
  };
13671
13719
 
13672
13720
  // src/api/index.ts
13673
- var VERSION = "0.6.1" ;
13721
+ var VERSION = "0.6.3" ;
13674
13722
 
13675
13723
  export { SLIDE_SIZE_16_10, SLIDE_SIZE_16_9, SLIDE_SIZE_4_3, VERSION, _internalPackageOf, addBlankSlide, addContentSlide, addSectionHeaderSlide, addSlide, addSlideAt, addSlideChart, addSlideComment, addSlideImage, addSlideLine, addSlideShape, addSlideTable, addSlideTextBox, addTitleSlide, appendShapeText, appendSlideNotes, bringShapeForward, bringShapeToFront, centerShapeOnSlide, clearAllHyperlinks, clearAllSlideComments, clearAllSlideNotes, clearShapeEffects, clearShapeFill, clearShapeStroke, clearSlideAnimations, clearSlideBackground, clearSlideComments, clearSlideHyperlinks, clearSlideShapes, clearSlideTransition, clearTableCellFill, cm, compactPackage, copyShape, createPresentation, duplicateSlide, duplicateSlideAt, emu, findChartByKind, findChartsBySeriesName, findChartsWithDataLabels, findChartsWithTrendlines, findCommentAuthorByName, findCommentsAfter, findCommentsBefore, findCommentsByAuthor, findCommentsByText, findEmptyPlaceholders, findFlippedShapes, findLayoutsWithPlaceholderType, findOverlappingShapePairs, findShapeById, findShapeByName, findShapeByText, findShapeInPresentation, findShapesAtPoint, findShapesByEffect, findShapesByHyperlink, findShapesByKind, findShapesByName, findShapesByPreset, findShapesByText, findShapesInRect, findShapesOutsideCanvas, findShapesWithAnimation, findShapesWithHyperlinks, findSlideByPartName, findSlideByText, findSlideByTitle, findSlideLayout, findSlideLayoutByPartName, findSlideLayoutByType, findSlidePlaceholder, findSlidePlaceholderByIdx, findSlidePlaceholders, findSlidesByHyperlink, findSlidesByLayoutName, findSlidesByLayoutPartName, findSlidesByLayoutType, findSlidesByNotes, findSlidesByText, findSlidesWithChartKind, findSlidesWithChartTrendlines, findSlidesWithCommentsByAuthor, getAllCharts, getAllComments, getAllHyperlinks, getAllImages, getAllNotes, getAllShapes, getAllTables, getCommentAuthor, getCommentAuthors, getCommentDate, getCommentPosition, getCommentSlide, getCommentText, getCommentsSortedByDate, getCoreProperties, getDistinctHyperlinkUrls, getEffectiveColorMap, getEmptySlides, getExtendedProperties, getGroupChildren, getGroupTransform, getHiddenSlides, getMaxShapeId, getMaxShapeIdInPresentation, getMediaParts, getOrphanMediaPartNames, getOutlineText, getPackageSize, getParagraphAlignment, getParagraphBullet, getParagraphBulletImageBytes, getParagraphBulletStyle, getParagraphIndent, getParagraphLevel, getParagraphLineSpacing, getParagraphPropertiesEffective, getParagraphSpacing, getPresentationChartCountsBySlide, getPresentationChartKindCounts, getPresentationCommentCountsByAuthor, getPresentationCommentCountsBySlide, getPresentationCommenters, getPresentationCreated, getPresentationFonts, getPresentationHyperlinkCountsBySlide, getPresentationImageCountsBySlide, getPresentationModified, getPresentationNotesLength, getPresentationNotesLengthsBySlide, getPresentationNotesText, getPresentationShapeCountsBySlide, getPresentationSummary, getPresentationTableCountsBySlide, getPresentationText, getPresentationTextLength, getPresentationTextLengthsBySlide, getPresentationTheme, getShapeAdjustValues, getShapeAltTitle, getShapeAnimation, getShapeAt, getShapeBodyPrEffective, getShapeBounds, getShapeBoundsResolved, getShapeCenter, getShapeChartCategories, getShapeChartKind, getShapeChartSeriesNames, getShapeChartSeriesValues, getShapeChartSpec, getShapeClickAction, getShapeCustomGeometry, getShapeDescription, getShapeEffect, getShapeEffects, getShapeEffectsEffective, getShapeFill, getShapeFillColor, getShapeFillColorResolved, getShapeFillEffective, getShapeFlip, getShapeGradientFill, getShapeGradientFillEffective, getShapeHyperlink, getShapeHyperlinkTooltip, getShapeId, getShapeImageBiLevelThreshold, getShapeImageBrightness, getShapeImageBytes, getShapeImageContrast, getShapeImageCrop, getShapeImageDuotone, getShapeImageFillBytes, getShapeImageFormat, getShapeImageLinkUrl, getShapeImageOpacity, getShapeImagePartName, getShapeIndex, getShapeKind, getShapeName, getShapeParagraphCount, getShapeParagraphElements, getShapePatternFill, getShapePlaceholderIdx, getShapePlaceholderType, getShapePosition, getShapePreset, getShapeRotation, getShapeRunClickAction, getShapeRunCount, getShapeRunFormat, getShapeRunFormatEffective, getShapeRunHyperlink, getShapeRunHyperlinkTooltip, getShapeRunText, getShapeSize, getShapeSlide, getShapeStroke, getShapeStrokeArrow, getShapeStrokeCap, getShapeStrokeColor, getShapeStrokeColorResolved, getShapeStrokeCompound, getShapeStrokeDash, getShapeStrokeEffective, getShapeStrokeJoin, getShapeStrokeWidth, getShapeText, getShapeTextAnchor, getShapeTextAutoFit, getShapeTextAutoFitParams, getShapeTextBodyRotationDeg, getShapeTextColumns, getShapeTextDirection, getShapeTextMargins, getShapeTextWrap, getShapeXmlString, getShapeZIndex, getShapesBounds, getSlideAt, getSlideBackground, getSlideBackgroundGradientFill, getSlideBackgroundImageBytes, getSlideBackgroundPatternFill, getSlideBody, getSlideCharts, getSlideColorMapOverride, getSlideCommentAuthors, getSlideComments, getSlideCount, getSlideIndex, getSlideInfo, getSlideLayout, getSlideLayoutBackground, getSlideLayoutBackgroundGradientFill, getSlideLayoutBackgroundImageBytes, getSlideLayoutBackgroundPatternFill, getSlideLayoutBackgroundShapes, getSlideLayoutCount, getSlideLayoutName, getSlideLayoutPartName, getSlideLayoutPlaceholders, getSlideLayoutShapes, getSlideLayoutType, getSlideLayoutUsageCounts, getSlideLayoutUsageCountsByType, getSlideLayouts, getSlideMasterBackground, getSlideMasterBackgroundGradientFill, getSlideMasterBackgroundImageBytes, getSlideMasterBackgroundPatternFill, getSlideMasterCount, getSlideMasterPartName, getSlideMasterPartNames, getSlideMasterShapes, getSlideMasterUsageCounts, getSlideMediaPartNames, getSlideNotes, getSlideNotesLength, getSlideOutline, getSlidePartName, getSlideSections, getSlideShapes, getSlideSize, getSlideTables, getSlideText, getSlideTextLength, getSlideTitle, getSlideTransition, getSlideXmlString, getSlides, getSlidesByLayout, getSlidesWithCharts, getSlidesWithComments, getSlidesWithEmptyPlaceholders, getSlidesWithHyperlinks, getSlidesWithImages, getSlidesWithNotes, getSlidesWithOverlap, getSlidesWithTables, getTableCell, getTableCellAlignment, getTableCellAnchor, getTableCellBorders, getTableCellFill, getTableCellMargins, getTableCellParagraphs, getTableCellPosition, getTableCellSpan, getTableCellText, getTableCellTextDirection, getTableCells, getTableColumnWidths, getTableDimensions, getTableRowHeights, getTableSize, getTableStyleFlags, getTableStyleId, getThumbnail, getUnusedSlideLayouts, getUnusedSlideMasters, getVisibleSlides, hasShapeImage, hasShapeText, hasSlideNotes, importSlide, inches, incrementRevision, insertTableColumn, insertTableRow, isChartShape, isParagraphBulletPicture, isShapeHidden, isShapeImageGrayscale, isShapePlaceholder, isShapeTextBox, isSlideHidden, isTableShape, listPackageParts, loadPresentation, mergePresentations, mergeTableCells, mm, moveSlide, pointInShape, pt, readPackagePart, removeShape, removeSlide, removeSlideComment, removeSlideNotes, removeTableColumn, removeTableRow, removeThumbnail, renameShape, replaceHyperlink, replaceTextInNotes, replaceTextInPresentation, replaceTextInSlide, replaceTextInSlideNotes, replaceTokensInPresentation, replaceTokensInSlide, resolveDeckBodyTextColor, resolveDrawingColor, reverseSlides, savePresentation, searchSlides, sendShapeBackward, sendShapeToBack, setChartSpec, setCoreProperties, setExtendedProperties, setMediaPartBytes, setParagraphAlignment, setParagraphBullet, setParagraphLevel, setParagraphSpacing, setShapeAlignment, setShapeAltTitle, setShapeAnimation, setShapeBounds, setShapeBullets, setShapeClickAction, setShapeDescription, setShapeFill, setShapeFlip, setShapeGlow, setShapeGradientFill, setShapeHidden, setShapeHyperlink, setShapeImage, setShapeImageBrightness, setShapeImageContrast, setShapeImageCrop, setShapeImageFill, setShapeImageOpacity, setShapeNoFill, setShapeNoStroke, setShapePatternFill, setShapePosition, setShapeRotation, setShapeRunFormat, setShapeRunHyperlink, setShapeRunText, setShapeShadow, setShapeSize, setShapeStroke, setShapeStrokeArrow, setShapeStrokeCap, setShapeStrokeCompound, setShapeStrokeDash, setShapeStrokeJoin, setShapeText, setShapeTextAnchor, setShapeTextAutoFit, setShapeTextBodyRotationDeg, setShapeTextColumns, setShapeTextDirection, setShapeTextFormat, setShapeTextMargins, setShapeTextWrap, setShapeZIndex, setSlideBackground, setSlideBackgroundImage, setSlideBody, setSlideHidden, setSlideLayout, setSlideNotes, setSlidePlaceholders, setSlideSections, setSlideSize, setSlideTitle, setSlideTransition, setTableCellAlignment, setTableCellAnchor, setTableCellBorders, setTableCellFill, setTableCellMargins, setTableCellText, setTableCellTextDirection, setTableCellTextFormat, setTableColumnWidth, setTableRowHeight, setTableStyleFlags, setTableStyleId, setThumbnail, shapesOverlap, slideHasAnimations, slidesUsingMediaPart, sortSlides, swapSlides, touchModified, translateShapes, validatePresentation };
13676
13724
  //# sourceMappingURL=index.js.map