@lofcz/pptxtojson 2.2.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.
@@ -0,0 +1,364 @@
1
+ export interface Shadow {
2
+ h: number
3
+ v: number
4
+ blur: number
5
+ color: string
6
+ }
7
+
8
+ export interface ColorFill {
9
+ type: 'color'
10
+ value: string
11
+ }
12
+
13
+ export interface ImageFill {
14
+ type: 'image'
15
+ value: {
16
+ ref: string
17
+ base64: string
18
+ blob: string
19
+ opacity: number
20
+ }
21
+ }
22
+
23
+ export interface GradientFill {
24
+ type: 'gradient'
25
+ value: {
26
+ path: 'line' | 'circle' | 'rect' | 'shape'
27
+ rot: number
28
+ colors: {
29
+ pos: string
30
+ color: string
31
+ }[]
32
+ }
33
+ }
34
+
35
+ export interface PatternFill {
36
+ type: 'pattern'
37
+ value: {
38
+ type: string
39
+ foregroundColor: string
40
+ backgroundColor: string
41
+ }
42
+ }
43
+
44
+ export type Fill = ColorFill | ImageFill | GradientFill | PatternFill
45
+
46
+ export interface Border {
47
+ borderColor: string
48
+ borderWidth: number
49
+ borderType:'solid' | 'dashed' | 'dotted'
50
+ }
51
+
52
+ export interface AutoFit {
53
+ type: 'shape' | 'text'
54
+ fontScale?: number
55
+ }
56
+
57
+ export interface TextInset {
58
+ l: number
59
+ t: number
60
+ r: number
61
+ b: number
62
+ }
63
+
64
+ export interface PathViewBox {
65
+ x: number
66
+ y: number
67
+ width: number
68
+ height: number
69
+ }
70
+
71
+ export interface LineEnd {
72
+ type: 'none' | 'triangle' | 'stealth' | 'diamond' | 'oval' | 'arrow'
73
+ width?: 'sm' | 'med' | 'lg'
74
+ length?: 'sm' | 'med' | 'lg'
75
+ }
76
+
77
+ export interface Shape {
78
+ type: 'shape'
79
+ id: string
80
+ left: number
81
+ top: number
82
+ width: number
83
+ height: number
84
+ borderColor: string
85
+ borderWidth: number
86
+ borderType: 'solid' | 'dashed' | 'dotted'
87
+ borderStrokeDasharray: string
88
+ shadow?: Shadow
89
+ fill: Fill
90
+ content: string
91
+ isFlipV: boolean
92
+ isFlipH: boolean
93
+ rotate: number
94
+ shapType: string
95
+ vAlign: string
96
+ wrap: boolean
97
+ path?: string
98
+ pathViewBox?: PathViewBox
99
+ headEnd?: LineEnd
100
+ tailEnd?: LineEnd
101
+ strokeOnly?: boolean
102
+ keypoints?: Record<string, number>
103
+ name: string
104
+ order: number
105
+ autoFit?: AutoFit
106
+ textInset?: TextInset
107
+ link?: string
108
+ }
109
+
110
+ export interface Text {
111
+ type: 'text'
112
+ id: string
113
+ left: number
114
+ top: number
115
+ width: number
116
+ height: number
117
+ borderColor: string
118
+ borderWidth: number
119
+ borderType: 'solid' | 'dashed' | 'dotted'
120
+ borderStrokeDasharray: string
121
+ shadow?: Shadow
122
+ fill: Fill
123
+ isFlipV: boolean
124
+ isFlipH: boolean
125
+ isVertical: boolean
126
+ rotate: number
127
+ content: string
128
+ vAlign: string
129
+ wrap: boolean
130
+ name: string
131
+ order: number
132
+ autoFit?: AutoFit
133
+ textInset?: TextInset
134
+ link?: string
135
+ }
136
+
137
+ export interface Image {
138
+ type: 'image'
139
+ id: string
140
+ left: number
141
+ top: number
142
+ width: number
143
+ height: number
144
+ ref: string
145
+ base64: string
146
+ blob: string
147
+ rotate: number
148
+ isFlipH: boolean
149
+ isFlipV: boolean
150
+ order: number
151
+ rect?: {
152
+ t?: number
153
+ b?: number
154
+ l?: number
155
+ r?: number
156
+ }
157
+ geom: string
158
+ borderColor: string
159
+ borderWidth: number
160
+ borderType: 'solid' | 'dashed' | 'dotted'
161
+ borderStrokeDasharray: string
162
+ filters?: {
163
+ sharpen?: number
164
+ colorTemperature?: number
165
+ saturation?: number
166
+ brightness?: number
167
+ contrast?: number
168
+ }
169
+ link?: string
170
+ }
171
+
172
+ export interface TableCell {
173
+ text: string
174
+ rowSpan?: number
175
+ colSpan?: number
176
+ vMerge?: number
177
+ hMerge?: number
178
+ fillColor?: string
179
+ fontColor?: string
180
+ fontBold?: boolean
181
+ vAlign: string
182
+ borders: {
183
+ top?: Border
184
+ bottom?: Border
185
+ left?: Border
186
+ right?: Border
187
+ }
188
+ }
189
+ export interface Table {
190
+ type: 'table'
191
+ id: string
192
+ left: number
193
+ top: number
194
+ width: number
195
+ height: number
196
+ data: TableCell[][]
197
+ borders: {
198
+ top?: Border
199
+ bottom?: Border
200
+ left?: Border
201
+ right?: Border
202
+ }
203
+ order: number
204
+ rowHeights: number[]
205
+ colWidths: number[]
206
+ }
207
+
208
+ export type ChartType = 'lineChart' |
209
+ 'line3DChart' |
210
+ 'barChart' |
211
+ 'bar3DChart' |
212
+ 'pieChart' |
213
+ 'pie3DChart' |
214
+ 'doughnutChart' |
215
+ 'areaChart' |
216
+ 'area3DChart' |
217
+ 'scatterChart' |
218
+ 'bubbleChart' |
219
+ 'radarChart' |
220
+ 'surfaceChart' |
221
+ 'surface3DChart' |
222
+ 'stockChart'
223
+
224
+ export interface ChartValue {
225
+ x: string
226
+ y: number
227
+ }
228
+ export interface ChartXLabel {
229
+ [key: string]: string
230
+ }
231
+ export interface ChartItem {
232
+ key: string
233
+ values: ChartValue[]
234
+ xlabels: ChartXLabel
235
+ }
236
+ export type ScatterChartData = number[][]
237
+ export interface CommonChart {
238
+ type: 'chart'
239
+ id: string
240
+ left: number
241
+ top: number
242
+ width: number
243
+ height: number
244
+ data: ChartItem[]
245
+ colors: string[]
246
+ chartType: Exclude<ChartType, 'scatterChart' | 'bubbleChart'>
247
+ barDir?: 'bar' | 'col'
248
+ marker?: boolean
249
+ holeSize?: string
250
+ grouping?: string
251
+ style?: string
252
+ order: number
253
+ }
254
+ export interface ScatterChart {
255
+ type: 'chart'
256
+ id: string
257
+ left: number
258
+ top: number
259
+ width: number
260
+ height: number
261
+ data: ScatterChartData
262
+ colors: string[]
263
+ chartType: 'scatterChart' | 'bubbleChart'
264
+ order: number
265
+ }
266
+ export type Chart = CommonChart | ScatterChart
267
+
268
+ export interface Video {
269
+ type: 'video'
270
+ id: string
271
+ left: number
272
+ top: number
273
+ width: number
274
+ height: number
275
+ ref: string
276
+ blob: string
277
+ order: number
278
+ }
279
+
280
+ export interface Audio {
281
+ type: 'audio'
282
+ id: string
283
+ left: number
284
+ top: number
285
+ width: number
286
+ height: number
287
+ ref: string
288
+ blob: string
289
+ order: number
290
+ }
291
+
292
+ export interface Diagram {
293
+ type: 'diagram'
294
+ id: string
295
+ left: number
296
+ top: number
297
+ width: number
298
+ height: number
299
+ elements: (Shape | Text)[]
300
+ textList: string[]
301
+ order: number
302
+ }
303
+
304
+ export interface Math {
305
+ type: 'math'
306
+ id: string
307
+ left: number
308
+ top: number
309
+ width: number
310
+ height: number
311
+ latex: string
312
+ picRef: string
313
+ picBase64: string
314
+ picBlob: string
315
+ order: number
316
+ text?: string
317
+ }
318
+
319
+ export type BaseElement = Shape | Text | Image | Table | Chart | Video | Audio | Diagram | Math
320
+
321
+ export interface Group {
322
+ type: 'group'
323
+ id: string
324
+ left: number
325
+ top: number
326
+ width: number
327
+ height: number
328
+ rotate: number
329
+ elements: BaseElement[]
330
+ order: number
331
+ isFlipH: boolean
332
+ isFlipV: boolean
333
+ }
334
+ export type Element = BaseElement | Group
335
+
336
+ export interface SlideTransition {
337
+ type: string
338
+ duration: number
339
+ direction: string | null
340
+ }
341
+
342
+ export interface Slide {
343
+ fill: Fill
344
+ elements: Element[]
345
+ layoutElements: Element[]
346
+ note: string
347
+ transition?: SlideTransition | null
348
+ }
349
+
350
+ export interface Options {
351
+ imageMode?: 'base64' | 'blob' | 'both' | 'none'
352
+ videoMode?: 'blob' | 'none'
353
+ audioMode?: 'blob' | 'none'
354
+ }
355
+
356
+ export const parse: (file: ArrayBuffer, options?: Options) => Promise<{
357
+ slides: Slide[]
358
+ themeColors: string[]
359
+ usedFonts: string[]
360
+ size: {
361
+ width: number
362
+ height: number
363
+ }
364
+ }>