ooxml.js 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.md +40 -2
  2. package/dist/codec.cjs +28 -0
  3. package/dist/codec.d.cts +72 -0
  4. package/dist/codec.d.ts +72 -0
  5. package/dist/codec.js +24 -0
  6. package/dist/compact.cjs +162 -0
  7. package/dist/compact.d.cts +70 -0
  8. package/dist/compact.d.ts +70 -0
  9. package/dist/compact.js +152 -0
  10. package/dist/image/sniff.cjs +28 -0
  11. package/dist/image/sniff.d.cts +5 -0
  12. package/dist/image/sniff.d.ts +5 -0
  13. package/dist/image/sniff.js +27 -0
  14. package/dist/index.cjs +83 -3025
  15. package/dist/index.d.cts +22 -527
  16. package/dist/index.d.ts +22 -527
  17. package/dist/index.js +22 -2964
  18. package/dist/model/node.cjs +67 -0
  19. package/dist/model/node.d.cts +2 -0
  20. package/dist/model/node.d.ts +2 -0
  21. package/dist/model/node.js +58 -0
  22. package/dist/model/package.cjs +19 -0
  23. package/dist/model/package.d.cts +2 -0
  24. package/dist/model/package.d.ts +2 -0
  25. package/dist/model/package.js +15 -0
  26. package/dist/node-CkBWRjNR.d.cts +83 -0
  27. package/dist/node-CkBWRjNR.d.ts +83 -0
  28. package/dist/package-BUojjTXf.d.ts +114 -0
  29. package/dist/package-L24lkba-.d.cts +114 -0
  30. package/dist/package-io/read.cjs +33 -0
  31. package/dist/package-io/read.d.cts +5 -0
  32. package/dist/package-io/read.d.ts +5 -0
  33. package/dist/package-io/read.js +32 -0
  34. package/dist/package-io/write.cjs +18 -0
  35. package/dist/package-io/write.d.cts +5 -0
  36. package/dist/package-io/write.d.ts +5 -0
  37. package/dist/package-io/write.js +17 -0
  38. package/dist/typed/docx/read.cjs +332 -0
  39. package/dist/typed/docx/read.d.cts +52 -0
  40. package/dist/typed/docx/read.d.ts +52 -0
  41. package/dist/typed/docx/read.js +328 -0
  42. package/dist/typed/docx/styles.cjs +148 -0
  43. package/dist/typed/docx/styles.d.cts +29 -0
  44. package/dist/typed/docx/styles.d.ts +29 -0
  45. package/dist/typed/docx/styles.js +146 -0
  46. package/dist/typed/pptx/inherit.cjs +96 -0
  47. package/dist/typed/pptx/inherit.d.cts +30 -0
  48. package/dist/typed/pptx/inherit.d.ts +30 -0
  49. package/dist/typed/pptx/inherit.js +90 -0
  50. package/dist/typed/pptx/read.cjs +364 -0
  51. package/dist/typed/pptx/read.d.cts +44 -0
  52. package/dist/typed/pptx/read.d.ts +44 -0
  53. package/dist/typed/pptx/read.js +362 -0
  54. package/dist/typed/shared/color.cjs +85 -0
  55. package/dist/typed/shared/color.d.cts +9 -0
  56. package/dist/typed/shared/color.d.ts +9 -0
  57. package/dist/typed/shared/color.js +84 -0
  58. package/dist/typed/shared/drawingml.cjs +191 -0
  59. package/dist/typed/shared/drawingml.d.cts +40 -0
  60. package/dist/typed/shared/drawingml.d.ts +40 -0
  61. package/dist/typed/shared/drawingml.js +180 -0
  62. package/dist/typed/shared/metadata.cjs +44 -0
  63. package/dist/typed/shared/metadata.d.cts +16 -0
  64. package/dist/typed/shared/metadata.d.ts +16 -0
  65. package/dist/typed/shared/metadata.js +42 -0
  66. package/dist/typed/shared/source-path.cjs +18 -0
  67. package/dist/typed/shared/source-path.d.cts +5 -0
  68. package/dist/typed/shared/source-path.d.ts +5 -0
  69. package/dist/typed/shared/source-path.js +17 -0
  70. package/dist/typed/shared/units.cjs +55 -0
  71. package/dist/typed/shared/units.d.cts +20 -0
  72. package/dist/typed/shared/units.d.ts +20 -0
  73. package/dist/typed/shared/units.js +38 -0
  74. package/dist/typed/util.cjs +85 -0
  75. package/dist/typed/util.d.cts +18 -0
  76. package/dist/typed/util.d.ts +18 -0
  77. package/dist/typed/util.js +77 -0
  78. package/dist/typed/xlsx/a1.cjs +64 -0
  79. package/dist/typed/xlsx/a1.d.cts +19 -0
  80. package/dist/typed/xlsx/a1.d.ts +19 -0
  81. package/dist/typed/xlsx/a1.js +58 -0
  82. package/dist/typed/xlsx/build.cjs +456 -0
  83. package/dist/typed/xlsx/build.d.cts +6 -0
  84. package/dist/typed/xlsx/build.d.ts +6 -0
  85. package/dist/typed/xlsx/build.js +455 -0
  86. package/dist/typed/xlsx/content.cjs +257 -0
  87. package/dist/typed/xlsx/content.d.cts +6 -0
  88. package/dist/typed/xlsx/content.d.ts +6 -0
  89. package/dist/typed/xlsx/content.js +256 -0
  90. package/dist/typed/xlsx/defined-names.cjs +90 -0
  91. package/dist/typed/xlsx/defined-names.d.cts +20 -0
  92. package/dist/typed/xlsx/defined-names.d.ts +20 -0
  93. package/dist/typed/xlsx/defined-names.js +83 -0
  94. package/dist/typed/xlsx/print-settings.cjs +116 -0
  95. package/dist/typed/xlsx/print-settings.d.cts +8 -0
  96. package/dist/typed/xlsx/print-settings.d.ts +8 -0
  97. package/dist/typed/xlsx/print-settings.js +114 -0
  98. package/dist/typed/xlsx/shared-strings.cjs +35 -0
  99. package/dist/typed/xlsx/shared-strings.d.cts +12 -0
  100. package/dist/typed/xlsx/shared-strings.d.ts +12 -0
  101. package/dist/typed/xlsx/shared-strings.js +33 -0
  102. package/dist/typed/xlsx/units.cjs +21 -0
  103. package/dist/typed/xlsx/units.d.cts +8 -0
  104. package/dist/typed/xlsx/units.d.ts +8 -0
  105. package/dist/typed/xlsx/units.js +16 -0
  106. package/dist/typed/xlsx/util.cjs +53 -0
  107. package/dist/typed/xlsx/util.d.cts +10 -0
  108. package/dist/typed/xlsx/util.d.ts +10 -0
  109. package/dist/typed/xlsx/util.js +47 -0
  110. package/dist/typed/xlsx.cjs +140 -0
  111. package/dist/typed/xlsx.d.cts +43 -0
  112. package/dist/typed/xlsx.d.ts +43 -0
  113. package/dist/typed/xlsx.js +135 -0
  114. package/dist/util/base64.cjs +48 -0
  115. package/dist/util/base64.d.cts +5 -0
  116. package/dist/util/base64.d.ts +5 -0
  117. package/dist/util/base64.js +46 -0
  118. package/dist/xml/build.cjs +46 -0
  119. package/dist/xml/build.d.cts +5 -0
  120. package/dist/xml/build.d.ts +5 -0
  121. package/dist/xml/build.js +46 -0
  122. package/dist/xml/entities.cjs +7 -0
  123. package/dist/xml/entities.d.cts +4 -0
  124. package/dist/xml/entities.d.ts +4 -0
  125. package/dist/xml/entities.js +6 -0
  126. package/dist/xml/fragment.cjs +22 -0
  127. package/dist/xml/fragment.d.cts +6 -0
  128. package/dist/xml/fragment.d.ts +6 -0
  129. package/dist/xml/fragment.js +20 -0
  130. package/dist/xml/parse.cjs +88 -0
  131. package/dist/xml/parse.d.cts +5 -0
  132. package/dist/xml/parse.d.ts +5 -0
  133. package/dist/xml/parse.js +88 -0
  134. package/dist/zip.cjs +12 -0
  135. package/dist/zip.d.cts +5 -0
  136. package/dist/zip.d.ts +5 -0
  137. package/dist/zip.js +10 -0
  138. package/package.json +9 -1
@@ -0,0 +1,364 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_util_base64 = require("../../util/base64.cjs");
3
+ const require_typed_util = require("../util.cjs");
4
+ const require_typed_shared_metadata = require("../shared/metadata.cjs");
5
+ const require_image_sniff = require("../../image/sniff.cjs");
6
+ const require_typed_shared_units = require("../shared/units.cjs");
7
+ const require_typed_shared_drawingml = require("../shared/drawingml.cjs");
8
+ const require_typed_shared_source_path = require("../shared/source-path.cjs");
9
+ const require_typed_pptx_inherit = require("./inherit.cjs");
10
+ let zod = require("zod");
11
+ let document_schema_js = require("document-schema.js");
12
+ //#region src/typed/pptx/read.ts
13
+ const PptxDocumentSchema = zod.z.object({
14
+ metadata: require_typed_shared_metadata.DocumentMetadataSchema,
15
+ slides: zod.z.array(document_schema_js.ContentSlideSchema)
16
+ });
17
+ const PRESENTATION_PATH = "ppt/presentation.xml";
18
+ const TABLE_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/table";
19
+ function readSlideSize(presentationRoot) {
20
+ const sldSz = presentationRoot === void 0 ? void 0 : require_typed_util.childrenWithTag(presentationRoot, "p:sldSz")[0];
21
+ const cx = sldSz === void 0 ? void 0 : require_typed_util.attr(sldSz, "cx");
22
+ const cy = sldSz === void 0 ? void 0 : require_typed_util.attr(sldSz, "cy");
23
+ return cx === void 0 || cy === void 0 ? document_schema_js.SLIDE_SIZE_WIDESCREEN : {
24
+ widthPt: require_typed_shared_units.emuToPt(Number(cx)),
25
+ heightPt: require_typed_shared_units.emuToPt(Number(cy))
26
+ };
27
+ }
28
+ function readSlidePathsInOrder(pkg, presentationRoot) {
29
+ if (presentationRoot === void 0) return [];
30
+ const sldIdLst = require_typed_util.childrenWithTag(presentationRoot, "p:sldIdLst")[0];
31
+ if (sldIdLst === void 0) return [];
32
+ const presentationRels = require_typed_util.resolveRelationships(pkg, PRESENTATION_PATH);
33
+ const paths = [];
34
+ for (const sldId of require_typed_util.childrenWithTag(sldIdLst, "p:sldId")) {
35
+ const rId = require_typed_util.attr(sldId, "r:id");
36
+ const rel = rId === void 0 ? void 0 : presentationRels.get(rId);
37
+ if (rel !== void 0) paths.push(rel.target);
38
+ }
39
+ return paths;
40
+ }
41
+ function shapeName(shape) {
42
+ const cNvPr = require_typed_util.elementsWithTag([shape], "p:cNvPr")[0];
43
+ return cNvPr === void 0 ? void 0 : require_typed_util.attr(cNvPr, "name");
44
+ }
45
+ function mergeRunProperties(base, override) {
46
+ return {
47
+ fontFamily: override.fontFamily ?? base.fontFamily,
48
+ sizePt: override.sizePt ?? base.sizePt,
49
+ bold: override.bold ?? base.bold,
50
+ italic: override.italic ?? base.italic,
51
+ color: override.color ?? base.color
52
+ };
53
+ }
54
+ function isUnderlined(rPr) {
55
+ if (rPr === void 0) return;
56
+ const u = require_typed_util.attr(rPr, "u");
57
+ return u === void 0 ? void 0 : u !== "none";
58
+ }
59
+ function isStrikethrough(rPr) {
60
+ if (rPr === void 0) return;
61
+ const strike = require_typed_util.attr(rPr, "strike");
62
+ return strike === void 0 ? void 0 : strike !== "noStrike";
63
+ }
64
+ function readHyperlink(rPr, slideRels) {
65
+ if (rPr === void 0) return;
66
+ const hlink = require_typed_util.childrenWithTag(rPr, "a:hlinkClick")[0];
67
+ const rId = hlink === void 0 ? void 0 : require_typed_util.attr(hlink, "r:id");
68
+ const rel = rId === void 0 ? void 0 : slideRels.get(rId);
69
+ return rel?.targetMode === "External" ? rel.target : void 0;
70
+ }
71
+ function readRun(runEl, cascadeBase, context, slideRels) {
72
+ const rPr = require_typed_util.childrenWithTag(runEl, "a:rPr")[0];
73
+ const merged = mergeRunProperties(cascadeBase, rPr === void 0 ? {} : require_typed_pptx_inherit.readRunPropertiesFromElement(rPr, context));
74
+ const tEl = require_typed_util.childrenWithTag(runEl, "a:t")[0];
75
+ return {
76
+ text: tEl === void 0 ? "" : require_typed_util.textContent(tEl),
77
+ bold: merged.bold,
78
+ italic: merged.italic,
79
+ underline: isUnderlined(rPr),
80
+ strike: isStrikethrough(rPr),
81
+ fontFamily: merged.fontFamily,
82
+ sizePt: merged.sizePt,
83
+ color: merged.color,
84
+ hyperlink: readHyperlink(rPr, slideRels)
85
+ };
86
+ }
87
+ function readAlignment(algn) {
88
+ if (algn === "l") return "left";
89
+ if (algn === "ctr") return "center";
90
+ if (algn === "r") return "right";
91
+ if (algn === "just" || algn === "justLow") return "justify";
92
+ }
93
+ function readAbsoluteSpacingPt(spc) {
94
+ if (spc === void 0) return;
95
+ const pts = require_typed_util.childrenWithTag(spc, "a:spcPts")[0];
96
+ const val = pts === void 0 ? void 0 : require_typed_util.attr(pts, "val");
97
+ return val === void 0 ? void 0 : require_typed_shared_units.drawingMlFontSizeToPt(Number(val));
98
+ }
99
+ function readLineSpacingMultiplier(pPr) {
100
+ const lnSpc = pPr === void 0 ? void 0 : require_typed_util.childrenWithTag(pPr, "a:lnSpc")[0];
101
+ const pct = lnSpc === void 0 ? void 0 : require_typed_util.childrenWithTag(lnSpc, "a:spcPct")[0];
102
+ const val = pct === void 0 ? void 0 : require_typed_util.attr(pct, "val");
103
+ return val === void 0 ? void 0 : Number(val) / 1e5;
104
+ }
105
+ function readParagraph(pEl, placeholderType, context, slideRels) {
106
+ const pPr = require_typed_util.childrenWithTag(pEl, "a:pPr")[0];
107
+ const masterDefaults = require_typed_pptx_inherit.resolveDefaultRunProperties(placeholderType, pPr === void 0 ? 0 : Number(require_typed_util.attr(pPr, "lvl") ?? "0"), context);
108
+ const pPrDefRPr = pPr === void 0 ? void 0 : require_typed_util.childrenWithTag(pPr, "a:defRPr")[0];
109
+ const paragraphDefaults = pPrDefRPr === void 0 ? masterDefaults : mergeRunProperties(masterDefaults, require_typed_pptx_inherit.readRunPropertiesFromElement(pPrDefRPr, context));
110
+ const runs = [];
111
+ for (const child of pEl.children) {
112
+ if (child.type !== "element") continue;
113
+ if (child.tag === "a:r" || child.tag === "a:fld") runs.push(readRun(child, paragraphDefaults, context, slideRels));
114
+ else if (child.tag === "a:br") runs.push({ text: "\n" });
115
+ }
116
+ const marL = pPr === void 0 ? void 0 : require_typed_util.attr(pPr, "marL");
117
+ const indent = pPr === void 0 ? void 0 : require_typed_util.attr(pPr, "indent");
118
+ return {
119
+ kind: "paragraph",
120
+ runs,
121
+ alignment: pPr === void 0 ? void 0 : readAlignment(require_typed_util.attr(pPr, "algn")),
122
+ spacingBeforePt: readAbsoluteSpacingPt(pPr === void 0 ? void 0 : require_typed_util.childrenWithTag(pPr, "a:spcBef")[0]),
123
+ spacingAfterPt: readAbsoluteSpacingPt(pPr === void 0 ? void 0 : require_typed_util.childrenWithTag(pPr, "a:spcAft")[0]),
124
+ lineSpacing: readLineSpacingMultiplier(pPr),
125
+ indentLeftPt: marL === void 0 ? void 0 : require_typed_shared_units.emuToPt(Number(marL)),
126
+ indentFirstLinePt: indent === void 0 ? void 0 : require_typed_shared_units.emuToPt(Number(indent))
127
+ };
128
+ }
129
+ function textBodyParagraphs(txBody, placeholderType, context, slideRels) {
130
+ return txBody === void 0 ? [] : require_typed_util.childrenWithTag(txBody, "a:p").map((p) => readParagraph(p, placeholderType, context, slideRels));
131
+ }
132
+ const DEFAULT_INSET_LEFT_RIGHT_EMU = 91440;
133
+ const DEFAULT_INSET_TOP_BOTTOM_EMU = 45720;
134
+ const NO_TEXT_BODY_EXTRAS = {
135
+ insetLeftPt: 0,
136
+ insetTopPt: 0,
137
+ insetRightPt: 0,
138
+ insetBottomPt: 0,
139
+ fontScale: void 0,
140
+ lineSpacingReduction: void 0
141
+ };
142
+ function readShapeTextExtras(txBody) {
143
+ if (txBody === void 0) return NO_TEXT_BODY_EXTRAS;
144
+ const bodyPr = require_typed_util.childrenWithTag(txBody, "a:bodyPr")[0];
145
+ const lIns = bodyPr === void 0 ? void 0 : require_typed_util.attr(bodyPr, "lIns");
146
+ const tIns = bodyPr === void 0 ? void 0 : require_typed_util.attr(bodyPr, "tIns");
147
+ const rIns = bodyPr === void 0 ? void 0 : require_typed_util.attr(bodyPr, "rIns");
148
+ const bIns = bodyPr === void 0 ? void 0 : require_typed_util.attr(bodyPr, "bIns");
149
+ const normAutofit = bodyPr === void 0 ? void 0 : require_typed_util.childrenWithTag(bodyPr, "a:normAutofit")[0];
150
+ const fontScale = normAutofit === void 0 ? void 0 : require_typed_util.attr(normAutofit, "fontScale");
151
+ const lnSpcReduction = normAutofit === void 0 ? void 0 : require_typed_util.attr(normAutofit, "lnSpcReduction");
152
+ return {
153
+ insetLeftPt: require_typed_shared_units.emuToPt(lIns === void 0 ? DEFAULT_INSET_LEFT_RIGHT_EMU : Number(lIns)),
154
+ insetTopPt: require_typed_shared_units.emuToPt(tIns === void 0 ? DEFAULT_INSET_TOP_BOTTOM_EMU : Number(tIns)),
155
+ insetRightPt: require_typed_shared_units.emuToPt(rIns === void 0 ? DEFAULT_INSET_LEFT_RIGHT_EMU : Number(rIns)),
156
+ insetBottomPt: require_typed_shared_units.emuToPt(bIns === void 0 ? DEFAULT_INSET_TOP_BOTTOM_EMU : Number(bIns)),
157
+ fontScale: fontScale === void 0 ? void 0 : Number(fontScale) / 1e5,
158
+ lineSpacingReduction: lnSpcReduction === void 0 ? void 0 : Number(lnSpcReduction) / 1e5
159
+ };
160
+ }
161
+ function resolveShapeFrame(shape, context, parentTransform) {
162
+ const key = require_typed_pptx_inherit.readPlaceholderKey(shape);
163
+ const spPr = require_typed_util.childrenWithTag(shape, "p:spPr")[0];
164
+ const xfrm = (spPr === void 0 ? void 0 : require_typed_shared_drawingml.readXfrm(require_typed_util.childrenWithTag(spPr, "a:xfrm")[0])) ?? (key === void 0 ? void 0 : require_typed_pptx_inherit.resolvePlaceholderXfrm(key, context));
165
+ if (xfrm === void 0) return;
166
+ const localFrame = {
167
+ xPt: xfrm.xPt,
168
+ yPt: xfrm.yPt,
169
+ widthPt: xfrm.widthPt,
170
+ heightPt: xfrm.heightPt
171
+ };
172
+ return {
173
+ frame: parentTransform === void 0 ? localFrame : require_typed_shared_drawingml.applyGroupTransform(parentTransform, localFrame),
174
+ rotationDeg: xfrm.rotationDeg === 0 ? void 0 : xfrm.rotationDeg
175
+ };
176
+ }
177
+ function readSpShape(sp, context, slideRels, parentTransform) {
178
+ const resolved = resolveShapeFrame(sp, context, parentTransform);
179
+ if (resolved === void 0) return;
180
+ const key = require_typed_pptx_inherit.readPlaceholderKey(sp);
181
+ const txBody = require_typed_util.childrenWithTag(sp, "p:txBody")[0];
182
+ const blocks = textBodyParagraphs(txBody, key?.type, context, slideRels);
183
+ const extras = readShapeTextExtras(txBody);
184
+ return {
185
+ name: shapeName(sp),
186
+ frame: resolved.frame,
187
+ rotationDeg: resolved.rotationDeg,
188
+ ...extras,
189
+ blocks
190
+ };
191
+ }
192
+ function readPicShape(pic, context, slideRels, pkg, parentTransform) {
193
+ const resolved = resolveShapeFrame(pic, context, parentTransform);
194
+ if (resolved === void 0) return;
195
+ const blipFill = require_typed_util.childrenWithTag(pic, "p:blipFill")[0];
196
+ const blip = blipFill === void 0 ? void 0 : require_typed_util.childrenWithTag(blipFill, "a:blip")[0];
197
+ const rId = blip === void 0 ? void 0 : require_typed_util.attr(blip, "r:embed");
198
+ const rel = rId === void 0 ? void 0 : slideRels.get(rId);
199
+ const mediaPart = rel === void 0 ? void 0 : pkg.parts[rel.target];
200
+ const blocks = [];
201
+ if (mediaPart?.kind === "binary") {
202
+ const format = require_image_sniff.sniffImageFormat(require_util_base64.base64ToBytes(mediaPart.base64));
203
+ if (format !== void 0) {
204
+ const image = {
205
+ kind: "image",
206
+ format,
207
+ base64: mediaPart.base64,
208
+ widthPt: resolved.frame.widthPt,
209
+ heightPt: resolved.frame.heightPt
210
+ };
211
+ blocks.push(image);
212
+ }
213
+ }
214
+ return {
215
+ name: shapeName(pic),
216
+ frame: resolved.frame,
217
+ rotationDeg: resolved.rotationDeg,
218
+ ...NO_TEXT_BODY_EXTRAS,
219
+ blocks
220
+ };
221
+ }
222
+ function readTableCell(tc, context, slideRels) {
223
+ const hMerge = require_typed_util.attr(tc, "hMerge");
224
+ const vMerge = require_typed_util.attr(tc, "vMerge");
225
+ if (hMerge === "1" || vMerge === "1") return { blocks: [] };
226
+ const tcPr = require_typed_util.childrenWithTag(tc, "a:tcPr")[0];
227
+ const background = require_typed_shared_drawingml.readSolidFillColor(tcPr === void 0 ? void 0 : require_typed_util.childrenWithTag(tcPr, "a:solidFill")[0], context.colorMap, context.theme);
228
+ const txBody = require_typed_util.childrenWithTag(tc, "a:txBody")[0];
229
+ const gridSpan = require_typed_util.attr(tc, "gridSpan");
230
+ const rowSpan = require_typed_util.attr(tc, "rowSpan");
231
+ return {
232
+ blocks: textBodyParagraphs(txBody, void 0, context, slideRels),
233
+ colSpan: gridSpan === void 0 ? void 0 : Number(gridSpan),
234
+ rowSpan: rowSpan === void 0 ? void 0 : Number(rowSpan),
235
+ background
236
+ };
237
+ }
238
+ function readTable(tbl, context, slideRels) {
239
+ const tblGrid = require_typed_util.childrenWithTag(tbl, "a:tblGrid")[0];
240
+ const columnWidthsPt = tblGrid === void 0 ? [] : require_typed_util.childrenWithTag(tblGrid, "a:gridCol").map((col) => require_typed_shared_units.emuToPt(Number(require_typed_util.attr(col, "w") ?? "0")));
241
+ return {
242
+ kind: "table",
243
+ rows: require_typed_util.childrenWithTag(tbl, "a:tr").map((tr) => {
244
+ const h = require_typed_util.attr(tr, "h");
245
+ return {
246
+ cells: require_typed_util.childrenWithTag(tr, "a:tc").map((tc) => readTableCell(tc, context, slideRels)),
247
+ heightPt: h === void 0 ? void 0 : require_typed_shared_units.emuToPt(Number(h))
248
+ };
249
+ }),
250
+ columnWidthsPt
251
+ };
252
+ }
253
+ function readGraphicFrameShape(gf, context, slideRels, parentTransform) {
254
+ const xfrm = require_typed_shared_drawingml.readXfrm(require_typed_util.childrenWithTag(gf, "p:xfrm")[0]);
255
+ if (xfrm === void 0) return;
256
+ const localFrame = {
257
+ xPt: xfrm.xPt,
258
+ yPt: xfrm.yPt,
259
+ widthPt: xfrm.widthPt,
260
+ heightPt: xfrm.heightPt
261
+ };
262
+ const frame = parentTransform === void 0 ? localFrame : require_typed_shared_drawingml.applyGroupTransform(parentTransform, localFrame);
263
+ const rotationDeg = xfrm.rotationDeg === 0 ? void 0 : xfrm.rotationDeg;
264
+ const graphic = require_typed_util.childrenWithTag(gf, "a:graphic")[0];
265
+ const graphicData = graphic === void 0 ? void 0 : require_typed_util.childrenWithTag(graphic, "a:graphicData")[0];
266
+ const tbl = (graphicData === void 0 ? void 0 : require_typed_util.attr(graphicData, "uri")) === TABLE_GRAPHIC_URI && graphicData !== void 0 ? require_typed_util.childrenWithTag(graphicData, "a:tbl")[0] : void 0;
267
+ const blocks = tbl === void 0 ? [] : [readTable(tbl, context, slideRels)];
268
+ return {
269
+ name: shapeName(gf),
270
+ frame,
271
+ rotationDeg,
272
+ ...NO_TEXT_BODY_EXTRAS,
273
+ blocks
274
+ };
275
+ }
276
+ function walkShapeTreeChildren(children, parentTransform, context, slideRels, pkg, out) {
277
+ for (const node of children) {
278
+ if (node.type !== "element") continue;
279
+ if (node.tag === "p:sp") {
280
+ const shape = readSpShape(node, context, slideRels, parentTransform);
281
+ if (shape !== void 0) out.push(shape);
282
+ } else if (node.tag === "p:pic") {
283
+ const shape = readPicShape(node, context, slideRels, pkg, parentTransform);
284
+ if (shape !== void 0) out.push(shape);
285
+ } else if (node.tag === "p:graphicFrame") {
286
+ const shape = readGraphicFrameShape(node, context, slideRels, parentTransform);
287
+ if (shape !== void 0) out.push(shape);
288
+ } else if (node.tag === "p:grpSp") {
289
+ const grpSpPr = require_typed_util.childrenWithTag(node, "p:grpSpPr")[0];
290
+ const composed = composeGroupTransform(require_typed_shared_drawingml.readGroupXfrm(grpSpPr === void 0 ? void 0 : require_typed_util.childrenWithTag(grpSpPr, "a:xfrm")[0]), parentTransform);
291
+ walkShapeTreeChildren(node.children, composed, context, slideRels, pkg, out);
292
+ }
293
+ }
294
+ }
295
+ function composeGroupTransform(own, parent) {
296
+ if (own === void 0) return;
297
+ if (parent === void 0) return own;
298
+ const absolute = require_typed_shared_drawingml.applyGroupTransform(parent, {
299
+ xPt: own.offXPt,
300
+ yPt: own.offYPt,
301
+ widthPt: own.extWidthPt,
302
+ heightPt: own.extHeightPt
303
+ });
304
+ return {
305
+ ...own,
306
+ offXPt: absolute.xPt,
307
+ offYPt: absolute.yPt,
308
+ extWidthPt: absolute.widthPt,
309
+ extHeightPt: absolute.heightPt
310
+ };
311
+ }
312
+ const NOTES_SLIDE_REL_SUFFIX = "/notesSlide";
313
+ function readNotes(pkg, slidePath) {
314
+ let notesPath;
315
+ for (const rel of require_typed_util.resolveRelationships(pkg, slidePath).values()) if (rel.type.endsWith(NOTES_SLIDE_REL_SUFFIX)) {
316
+ notesPath = rel.target;
317
+ break;
318
+ }
319
+ if (notesPath === void 0) return "";
320
+ const notesRoot = require_typed_util.rootElement(pkg.parts[notesPath]);
321
+ if (notesRoot === void 0) return "";
322
+ const bodyShape = require_typed_util.elementsWithTag([notesRoot], "p:sp").find((shape) => {
323
+ const key = require_typed_pptx_inherit.readPlaceholderKey(shape);
324
+ return key !== void 0 && (key.type === void 0 || key.type === "body");
325
+ });
326
+ if (bodyShape !== void 0) {
327
+ const txBody = require_typed_util.childrenWithTag(bodyShape, "p:txBody")[0];
328
+ if (txBody !== void 0) return require_typed_util.elementsWithTag(txBody.children, "a:t").map(require_typed_util.textContent).join("");
329
+ }
330
+ return require_typed_util.elementsWithTag([notesRoot], "a:t").map(require_typed_util.textContent).join("");
331
+ }
332
+ function readSlide(pkg, slidePath, size) {
333
+ const slideRoot = require_typed_util.rootElement(pkg.parts[slidePath]);
334
+ const context = require_typed_pptx_inherit.resolveSlideInheritance(pkg, slidePath);
335
+ const slideRels = require_typed_util.resolveRelationships(pkg, slidePath);
336
+ const cSld = slideRoot === void 0 ? void 0 : require_typed_util.childrenWithTag(slideRoot, "p:cSld")[0];
337
+ const spTree = cSld === void 0 ? void 0 : require_typed_util.childrenWithTag(cSld, "p:spTree")[0];
338
+ const shapes = [];
339
+ if (spTree !== void 0) walkShapeTreeChildren(spTree.children, void 0, context, slideRels, pkg, shapes);
340
+ return {
341
+ size,
342
+ shapes,
343
+ notes: readNotes(pkg, slidePath)
344
+ };
345
+ }
346
+ function readPptx(pkg) {
347
+ const presentationRoot = require_typed_util.rootElement(pkg.parts[PRESENTATION_PATH]);
348
+ const size = readSlideSize(presentationRoot);
349
+ const slides = readSlidePathsInOrder(pkg, presentationRoot).map((slidePath) => readSlide(pkg, slidePath, size));
350
+ slides.forEach((slide, slideIndex) => {
351
+ slide.shapes.forEach((shape, shapeIndex) => {
352
+ const shapePath = `slides[${slideIndex}].shapes[${shapeIndex}]`;
353
+ shape.sourcePath = shapePath;
354
+ require_typed_shared_source_path.assignSourcePaths(shape.blocks, shapePath);
355
+ });
356
+ });
357
+ return {
358
+ metadata: require_typed_shared_metadata.readCoreProperties(pkg),
359
+ slides
360
+ };
361
+ }
362
+ //#endregion
363
+ exports.PptxDocumentSchema = PptxDocumentSchema;
364
+ exports.readPptx = readPptx;
@@ -0,0 +1,44 @@
1
+ import { r as Package } from "../../package-L24lkba-.cjs";
2
+ import { z } from "zod";
3
+ import { ContentBlock } from "document-schema.js";
4
+ //#region src/typed/pptx/read.d.ts
5
+ declare const PptxDocumentSchema: z.ZodObject<{
6
+ metadata: z.ZodObject<{
7
+ title: z.ZodOptional<z.ZodString>;
8
+ author: z.ZodOptional<z.ZodString>;
9
+ subject: z.ZodOptional<z.ZodString>;
10
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ creator: z.ZodOptional<z.ZodString>;
12
+ createdIso: z.ZodOptional<z.ZodString>;
13
+ modifiedIso: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strip>;
15
+ slides: z.ZodArray<z.ZodObject<{
16
+ size: z.ZodObject<{
17
+ widthPt: z.ZodNumber;
18
+ heightPt: z.ZodNumber;
19
+ }, z.core.$strip>;
20
+ shapes: z.ZodArray<z.ZodObject<{
21
+ name: z.ZodOptional<z.ZodString>;
22
+ frame: z.ZodObject<{
23
+ xPt: z.ZodNumber;
24
+ yPt: z.ZodNumber;
25
+ widthPt: z.ZodNumber;
26
+ heightPt: z.ZodNumber;
27
+ }, z.core.$strip>;
28
+ rotationDeg: z.ZodOptional<z.ZodNumber>;
29
+ insetLeftPt: z.ZodNumber;
30
+ insetTopPt: z.ZodNumber;
31
+ insetRightPt: z.ZodNumber;
32
+ insetBottomPt: z.ZodNumber;
33
+ fontScale: z.ZodOptional<z.ZodNumber>;
34
+ lineSpacingReduction: z.ZodOptional<z.ZodNumber>;
35
+ sourcePath: z.ZodOptional<z.ZodString>;
36
+ blocks: z.ZodArray<z.ZodCustom<ContentBlock, ContentBlock>>;
37
+ }, z.core.$strip>>;
38
+ notes: z.ZodString;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
41
+ type PptxDocument = z.infer<typeof PptxDocumentSchema>;
42
+ declare function readPptx(pkg: Package): PptxDocument;
43
+ //#endregion
44
+ export { PptxDocument, PptxDocumentSchema, readPptx };
@@ -0,0 +1,44 @@
1
+ import { r as Package } from "../../package-BUojjTXf.js";
2
+ import { z } from "zod";
3
+ import { ContentBlock } from "document-schema.js";
4
+ //#region src/typed/pptx/read.d.ts
5
+ declare const PptxDocumentSchema: z.ZodObject<{
6
+ metadata: z.ZodObject<{
7
+ title: z.ZodOptional<z.ZodString>;
8
+ author: z.ZodOptional<z.ZodString>;
9
+ subject: z.ZodOptional<z.ZodString>;
10
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ creator: z.ZodOptional<z.ZodString>;
12
+ createdIso: z.ZodOptional<z.ZodString>;
13
+ modifiedIso: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strip>;
15
+ slides: z.ZodArray<z.ZodObject<{
16
+ size: z.ZodObject<{
17
+ widthPt: z.ZodNumber;
18
+ heightPt: z.ZodNumber;
19
+ }, z.core.$strip>;
20
+ shapes: z.ZodArray<z.ZodObject<{
21
+ name: z.ZodOptional<z.ZodString>;
22
+ frame: z.ZodObject<{
23
+ xPt: z.ZodNumber;
24
+ yPt: z.ZodNumber;
25
+ widthPt: z.ZodNumber;
26
+ heightPt: z.ZodNumber;
27
+ }, z.core.$strip>;
28
+ rotationDeg: z.ZodOptional<z.ZodNumber>;
29
+ insetLeftPt: z.ZodNumber;
30
+ insetTopPt: z.ZodNumber;
31
+ insetRightPt: z.ZodNumber;
32
+ insetBottomPt: z.ZodNumber;
33
+ fontScale: z.ZodOptional<z.ZodNumber>;
34
+ lineSpacingReduction: z.ZodOptional<z.ZodNumber>;
35
+ sourcePath: z.ZodOptional<z.ZodString>;
36
+ blocks: z.ZodArray<z.ZodCustom<ContentBlock, ContentBlock>>;
37
+ }, z.core.$strip>>;
38
+ notes: z.ZodString;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
41
+ type PptxDocument = z.infer<typeof PptxDocumentSchema>;
42
+ declare function readPptx(pkg: Package): PptxDocument;
43
+ //#endregion
44
+ export { PptxDocument, PptxDocumentSchema, readPptx };