@shbernal/pptxgenjs 5.0.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,2583 @@
1
+ //#region src/core-interfaces.d.ts
2
+ /**
3
+ * Coordinate number - either:
4
+ * - Inches (0-n)
5
+ * - Percentage (0-100)
6
+ *
7
+ * @example 10.25 // coordinate in inches
8
+ * @example '75%' // coordinate as percentage of slide size
9
+ */
10
+ type Coord = number | `${number}%`;
11
+ interface PositionProps {
12
+ /**
13
+ * Horizontal position
14
+ * - inches or percentage
15
+ * @example 10.25 // position in inches
16
+ * @example '75%' // position as percentage of slide size
17
+ */
18
+ x?: Coord;
19
+ /**
20
+ * Vertical position
21
+ * - inches or percentage
22
+ * @example 10.25 // position in inches
23
+ * @example '75%' // position as percentage of slide size
24
+ */
25
+ y?: Coord;
26
+ /**
27
+ * Height
28
+ * - inches or percentage
29
+ * @example 10.25 // height in inches
30
+ * @example '75%' // height as percentage of slide size
31
+ */
32
+ h?: Coord;
33
+ /**
34
+ * Width
35
+ * - inches or percentage
36
+ * @example 10.25 // width in inches
37
+ * @example '75%' // width as percentage of slide size
38
+ */
39
+ w?: Coord;
40
+ }
41
+ /**
42
+ * Reusable optional data/path fields.
43
+ * Use `DataOrPathRequiredProps` for APIs that require at least one source.
44
+ */
45
+ interface DataOrPathProps {
46
+ /**
47
+ * URL or relative path
48
+ *
49
+ * @example 'https://onedrives.com/myimg.png` // retrieve image via URL
50
+ * @example '/home/gitbrent/images/myimg.png` // retrieve image via local path
51
+ */
52
+ path?: string;
53
+ /**
54
+ * base64-encoded string
55
+ * - Useful for avoiding potential path/server issues
56
+ *
57
+ * @example 'image/png;base64,iVtDafDrBF[...]=' // pre-encoded image in base-64
58
+ */
59
+ data?: string;
60
+ }
61
+ type DataOrPathRequiredProps = (DataOrPathProps & {
62
+ data: string;
63
+ }) | (DataOrPathProps & {
64
+ path: string;
65
+ });
66
+ interface BackgroundProps extends DataOrPathProps, ShapeFillProps {
67
+ /**
68
+ * Color (hex format)
69
+ * @deprecated v3.6.0 - use `ShapeFillProps` instead
70
+ */
71
+ fill?: HexColor;
72
+ /**
73
+ * source URL
74
+ * @deprecated v3.6.0 - use `DataOrPathProps` instead - remove in v4.0.0
75
+ */
76
+ src?: string;
77
+ }
78
+ /**
79
+ * Color in Hex format
80
+ * @example 'FF3399'
81
+ */
82
+ type HexColor = string;
83
+ type ThemeColor = 'tx1' | 'tx2' | 'bg1' | 'bg2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6';
84
+ type Color = HexColor | ThemeColor;
85
+ type Margin = number | [number, number, number, number];
86
+ type HAlign = 'left' | 'center' | 'right' | 'justify';
87
+ type VAlign = 'top' | 'middle' | 'bottom';
88
+ interface BorderProps {
89
+ /**
90
+ * Border type
91
+ * @default solid
92
+ */
93
+ type?: 'none' | 'dash' | 'solid';
94
+ /**
95
+ * Border color (hex)
96
+ * @example 'FF3399'
97
+ * @default '666666'
98
+ */
99
+ color?: HexColor;
100
+ /**
101
+ * Border size (points)
102
+ * @default 1
103
+ */
104
+ pt?: number;
105
+ }
106
+ interface HyperlinkProps {
107
+ _rId?: number;
108
+ /**
109
+ * Slide number to link to
110
+ */
111
+ slide?: number;
112
+ /**
113
+ * Url to link to
114
+ */
115
+ url?: string;
116
+ /**
117
+ * Hyperlink Tooltip
118
+ */
119
+ tooltip?: string;
120
+ }
121
+ interface ShadowProps {
122
+ /**
123
+ * shadow type
124
+ * @default 'none'
125
+ */
126
+ type: 'outer' | 'inner' | 'none';
127
+ /**
128
+ * opacity (percent)
129
+ * - range: 0.0-1.0
130
+ * @example 0.5 // 50% opaque
131
+ */
132
+ opacity?: number;
133
+ /**
134
+ * blur (points)
135
+ * - range: 0-100
136
+ * @default 0
137
+ */
138
+ blur?: number;
139
+ /**
140
+ * angle (degrees)
141
+ * - range: 0-359
142
+ * @default 0
143
+ */
144
+ angle?: number;
145
+ /**
146
+ * shadow offset (points)
147
+ * - range: 0-200
148
+ * @default 0
149
+ */
150
+ offset?: number;
151
+ /**
152
+ * shadow color (hex format)
153
+ * @example 'FF3399'
154
+ */
155
+ color?: HexColor;
156
+ /**
157
+ * whether to rotate shadow with shape
158
+ * @default false
159
+ */
160
+ rotateWithShape?: boolean;
161
+ }
162
+ interface ShapeFillProps {
163
+ /**
164
+ * Fill color
165
+ * - `HexColor` or `ThemeColor`
166
+ * @example 'FF0000' // hex color (red)
167
+ * @example pptx.SchemeColor.text1 // Theme color (Text1)
168
+ */
169
+ color?: Color;
170
+ /**
171
+ * Transparency (percent)
172
+ * - MS-PPT > Format Shape > Fill & Line > Fill > Transparency
173
+ * - range: 0-100
174
+ * @default 0
175
+ */
176
+ transparency?: number;
177
+ /**
178
+ * Fill type
179
+ * @default 'solid'
180
+ */
181
+ type?: 'none' | 'solid';
182
+ /**
183
+ * Transparency (percent)
184
+ * @deprecated v3.3.0 - use `transparency`
185
+ */
186
+ alpha?: number;
187
+ }
188
+ interface ShapeLineProps extends ShapeFillProps {
189
+ /**
190
+ * Line width (pt)
191
+ * @default 1
192
+ */
193
+ width?: number;
194
+ /**
195
+ * Dash type
196
+ * @default 'solid'
197
+ */
198
+ dashType?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot';
199
+ /**
200
+ * Begin arrow type
201
+ * @since v3.3.0
202
+ */
203
+ beginArrowType?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
204
+ /**
205
+ * End arrow type
206
+ * @since v3.3.0
207
+ */
208
+ endArrowType?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
209
+ /**
210
+ * Dash type
211
+ * @deprecated v3.3.0 - use `dashType`
212
+ */
213
+ lineDash?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot';
214
+ /**
215
+ * @deprecated v3.3.0 - use `beginArrowType`
216
+ */
217
+ lineHead?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
218
+ /**
219
+ * @deprecated v3.3.0 - use `endArrowType`
220
+ */
221
+ lineTail?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
222
+ /**
223
+ * Line width (pt)
224
+ * @deprecated v3.3.0 - use `width`
225
+ */
226
+ pt?: number;
227
+ /**
228
+ * Line size (pt)
229
+ * @deprecated v3.3.0 - use `width`
230
+ */
231
+ size?: number;
232
+ }
233
+ interface TextBaseProps {
234
+ /**
235
+ * Horizontal alignment
236
+ * @default 'left'
237
+ */
238
+ align?: HAlign;
239
+ /**
240
+ * Bold style
241
+ * @default false
242
+ */
243
+ bold?: boolean;
244
+ /**
245
+ * Add a line-break
246
+ * @default false
247
+ */
248
+ breakLine?: boolean;
249
+ /**
250
+ * Add standard or custom bullet
251
+ * - use `true` for standard bullet
252
+ * - pass object options for custom bullet
253
+ * @default false
254
+ */
255
+ bullet?: boolean | {
256
+ /**
257
+ * Bullet type
258
+ * @default bullet
259
+ */
260
+ type?: 'bullet' | 'number';
261
+ /**
262
+ * Bullet character code (unicode)
263
+ * @since v3.3.0
264
+ * @example '25BA' // 'BLACK RIGHT-POINTING POINTER' (U+25BA)
265
+ */
266
+ characterCode?: string;
267
+ /**
268
+ * Indentation (space between bullet and text) (points)
269
+ * @since v3.3.0
270
+ * @default 27 // DEF_BULLET_MARGIN
271
+ * @example 10 // Indents text 10 points from bullet
272
+ */
273
+ indent?: number;
274
+ /**
275
+ * Number type
276
+ * @since v3.3.0
277
+ * @example 'romanLcParenR' // roman numerals lower-case with paranthesis right
278
+ */
279
+ numberType?: 'alphaLcParenBoth' | 'alphaLcParenR' | 'alphaLcPeriod' | 'alphaUcParenBoth' | 'alphaUcParenR' | 'alphaUcPeriod' | 'arabicParenBoth' | 'arabicParenR' | 'arabicPeriod' | 'arabicPlain' | 'romanLcParenBoth' | 'romanLcParenR' | 'romanLcPeriod' | 'romanUcParenBoth' | 'romanUcParenR' | 'romanUcPeriod';
280
+ /**
281
+ * Number bullets start at
282
+ * @since v3.3.0
283
+ * @default 1
284
+ * @example 10 // numbered bullets start with 10
285
+ */
286
+ numberStartAt?: number;
287
+ /**
288
+ * Bullet code (unicode)
289
+ * @deprecated v3.3.0 - use `characterCode`
290
+ */
291
+ code?: string;
292
+ /**
293
+ * Margin between bullet and text
294
+ * @since v3.2.1
295
+ * @deplrecated v3.3.0 - use `indent`
296
+ */
297
+ marginPt?: number;
298
+ /**
299
+ * Number to start with (only applies to type:number)
300
+ * @deprecated v3.3.0 - use `numberStartAt`
301
+ */
302
+ startAt?: number;
303
+ /**
304
+ * Number type
305
+ * @deprecated v3.3.0 - use `numberType`
306
+ */
307
+ style?: string;
308
+ };
309
+ /**
310
+ * Text color
311
+ * - `HexColor` or `ThemeColor`
312
+ * - MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Color
313
+ * @example 'FF0000' // hex color (red)
314
+ * @example pptx.SchemeColor.text1 // Theme color (Text1)
315
+ */
316
+ color?: Color;
317
+ /**
318
+ * Font face name
319
+ * @example 'Arial' // Arial font
320
+ */
321
+ fontFace?: string;
322
+ /**
323
+ * Font size
324
+ * @example 12 // Font size 12
325
+ */
326
+ fontSize?: number;
327
+ /**
328
+ * Text highlight color (hex format)
329
+ * @example 'FFFF00' // yellow
330
+ */
331
+ highlight?: HexColor;
332
+ /**
333
+ * italic style
334
+ * @default false
335
+ */
336
+ italic?: boolean;
337
+ /**
338
+ * language
339
+ * - ISO 639-1 standard language code
340
+ * @default 'en-US' // english US
341
+ * @example 'fr-CA' // french Canadian
342
+ */
343
+ lang?: string;
344
+ /**
345
+ * Add a soft line-break (shift+enter) before line text content
346
+ * @default false
347
+ * @since v3.5.0
348
+ */
349
+ softBreakBefore?: boolean;
350
+ /**
351
+ * tab stops
352
+ * - PowerPoint: Paragraph > Tabs > Tab stop position
353
+ * @example [{ position:1 }, { position:3 }] // Set first tab stop to 1 inch, set second tab stop to 3 inches
354
+ */
355
+ tabStops?: Array<{
356
+ position: number;
357
+ alignment?: 'l' | 'r' | 'ctr' | 'dec';
358
+ }>;
359
+ /**
360
+ * text direction
361
+ * `horz` = horizontal
362
+ * `vert` = rotate 90^
363
+ * `vert270` = rotate 270^
364
+ * `wordArtVert` = stacked
365
+ * @default 'horz'
366
+ */
367
+ textDirection?: 'horz' | 'vert' | 'vert270' | 'wordArtVert';
368
+ /**
369
+ * Transparency (percent)
370
+ * - MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Transparency
371
+ * - range: 0-100
372
+ * @default 0
373
+ */
374
+ transparency?: number;
375
+ /**
376
+ * underline properties
377
+ * - PowerPoint: Font > Color & Underline > Underline Style/Underline Color
378
+ * @default (none)
379
+ */
380
+ underline?: {
381
+ style?: 'dash' | 'dashHeavy' | 'dashLong' | 'dashLongHeavy' | 'dbl' | 'dotDash' | 'dotDashHeave' | 'dotDotDash' | 'dotDotDashHeavy' | 'dotted' | 'dottedHeavy' | 'heavy' | 'none' | 'sng' | 'wavy' | 'wavyDbl' | 'wavyHeavy';
382
+ color?: Color;
383
+ };
384
+ /**
385
+ * vertical alignment
386
+ * @default 'top'
387
+ */
388
+ valign?: VAlign;
389
+ }
390
+ interface PlaceholderProps extends PositionProps, TextBaseProps {
391
+ name: string;
392
+ type: PLACEHOLDER_TYPE;
393
+ /**
394
+ * margin (points)
395
+ */
396
+ margin?: Margin;
397
+ }
398
+ interface ObjectNameProps {
399
+ /**
400
+ * Object name
401
+ * - used instead of default "Object N" name
402
+ * - PowerPoint: Home > Arrange > Selection Pane...
403
+ * @since v3.10.0
404
+ * @default 'Object 1'
405
+ * @example 'Antenna Design 9'
406
+ */
407
+ objectName?: string;
408
+ }
409
+ interface ThemeProps {
410
+ /**
411
+ * Headings font face name
412
+ * @example 'Arial Narrow'
413
+ * @default 'Calibri Light'
414
+ */
415
+ headFontFace?: string;
416
+ /**
417
+ * Body font face name
418
+ * @example 'Arial'
419
+ * @default 'Calibri'
420
+ */
421
+ bodyFontFace?: string;
422
+ }
423
+ type MediaType = 'audio' | 'online' | 'video';
424
+ interface ImageBaseProps extends PositionProps, ObjectNameProps {
425
+ /**
426
+ * Alt Text value ("How would you describe this object and its contents to someone who is blind?")
427
+ * - PowerPoint: [right-click on an image] > "Edit Alt Text..."
428
+ */
429
+ altText?: string;
430
+ /**
431
+ * Flip horizontally?
432
+ * @default false
433
+ */
434
+ flipH?: boolean;
435
+ /**
436
+ * Flip vertical?
437
+ * @default false
438
+ */
439
+ flipV?: boolean;
440
+ hyperlink?: HyperlinkProps;
441
+ /**
442
+ * Placeholder type
443
+ * - values: 'body' | 'header' | 'footer' | 'title' | et. al.
444
+ * @example 'body'
445
+ * @see https://docs.microsoft.com/en-us/office/vba/api/powerpoint.ppplaceholdertype
446
+ */
447
+ placeholder?: string;
448
+ /**
449
+ * Image rotation (degrees)
450
+ * - range: -360 to 360
451
+ * @default 0
452
+ * @example 180 // rotate image 180 degrees
453
+ */
454
+ rotate?: number;
455
+ /**
456
+ * Enable image rounding
457
+ * @default false
458
+ */
459
+ rounding?: boolean;
460
+ /**
461
+ * Shadow Props
462
+ * - MS-PPT > Format Picture > Shadow
463
+ * @example
464
+ * { type: 'outer', color: '000000', opacity: 0.5, blur: 20, offset: 20, angle: 270 }
465
+ */
466
+ shadow?: ShadowProps;
467
+ /**
468
+ * Image sizing options
469
+ */
470
+ sizing?: {
471
+ /**
472
+ * Sizing type
473
+ */
474
+ type: 'contain' | 'cover' | 'crop';
475
+ /**
476
+ * Image width
477
+ * - inches or percentage
478
+ * @example 10.25 // position in inches
479
+ * @example '75%' // position as percentage of slide size
480
+ */
481
+ w: Coord;
482
+ /**
483
+ * Image height
484
+ * - inches or percentage
485
+ * @example 10.25 // position in inches
486
+ * @example '75%' // position as percentage of slide size
487
+ */
488
+ h: Coord;
489
+ /**
490
+ * Offset from left to crop image
491
+ * - `crop` only
492
+ * - inches or percentage
493
+ * @example 10.25 // position in inches
494
+ * @example '75%' // position as percentage of slide size
495
+ */
496
+ x?: Coord;
497
+ /**
498
+ * Offset from top to crop image
499
+ * - `crop` only
500
+ * - inches or percentage
501
+ * @example 10.25 // position in inches
502
+ * @example '75%' // position as percentage of slide size
503
+ */
504
+ y?: Coord;
505
+ };
506
+ /**
507
+ * Transparency (percent)
508
+ * - MS-PPT > Format Picture > Picture > Picture Transparency > Transparency
509
+ * - range: 0-100
510
+ * @default 0
511
+ * @example 25 // 25% transparent
512
+ */
513
+ transparency?: number;
514
+ }
515
+ type ImageProps = ImageBaseProps & DataOrPathRequiredProps;
516
+ /**
517
+ * Add media (audio/video) to slide
518
+ * @requires either `data` or `path`; online media requires `link`
519
+ */
520
+ interface MediaBaseProps extends PositionProps, ObjectNameProps {
521
+ /**
522
+ * Cover image
523
+ * @since 3.9.0
524
+ * @default "play button" image, gray background
525
+ */
526
+ cover?: string;
527
+ /**
528
+ * media file extension
529
+ * - use when the media file path does not already have an extension, ex: "/folder/SomeSong"
530
+ * @since 3.9.0
531
+ * @default extension from file provided
532
+ */
533
+ extn?: string;
534
+ }
535
+ type MediaProps = MediaBaseProps & ((DataOrPathRequiredProps & {
536
+ /**
537
+ * Media type
538
+ */
539
+ type: Exclude<MediaType, 'online'>;
540
+ /**
541
+ * Optional video embed link metadata.
542
+ */
543
+ link?: string;
544
+ }) | (DataOrPathProps & {
545
+ /**
546
+ * Use 'online' to embed a YouTube video (only supported in recent versions of PowerPoint)
547
+ */
548
+ type: 'online';
549
+ /**
550
+ * video embed link
551
+ * - works with YouTube
552
+ * - other sites may not show correctly in PowerPoint
553
+ * @example 'https://www.youtube.com/embed/Dph6ynRVyUc' // embed a youtube video
554
+ */
555
+ link: string;
556
+ }));
557
+ interface ShapeProps extends PositionProps, ObjectNameProps {
558
+ /**
559
+ * Horizontal alignment
560
+ * @default 'left'
561
+ */
562
+ align?: HAlign;
563
+ /**
564
+ * Radius (only for pptx.shapes.PIE, pptx.shapes.ARC, pptx.shapes.BLOCK_ARC)
565
+ * - In the case of pptx.shapes.BLOCK_ARC you have to setup the arcThicknessRatio
566
+ * - values: [0-359, 0-359]
567
+ * @since v3.4.0
568
+ * @default [270, 0]
569
+ */
570
+ angleRange?: [number, number];
571
+ /**
572
+ * Radius (only for pptx.shapes.BLOCK_ARC)
573
+ * - You have to setup the angleRange values too
574
+ * - values: 0.0-1.0
575
+ * @since v3.4.0
576
+ * @default 0.5
577
+ */
578
+ arcThicknessRatio?: number;
579
+ /**
580
+ * Shape fill color properties
581
+ * @example { color:'FF0000' } // hex color (red)
582
+ * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent
583
+ * @example { color:pptx.SchemeColor.accent1 } // Theme color Accent1
584
+ */
585
+ fill?: ShapeFillProps;
586
+ /**
587
+ * Flip shape horizontally?
588
+ * @default false
589
+ */
590
+ flipH?: boolean;
591
+ /**
592
+ * Flip shape vertical?
593
+ * @default false
594
+ */
595
+ flipV?: boolean;
596
+ /**
597
+ * Add hyperlink to shape
598
+ * @example hyperlink: { url: "https://github.com/gitbrent/pptxgenjs", tooltip: "Visit Homepage" },
599
+ */
600
+ hyperlink?: HyperlinkProps;
601
+ /**
602
+ * Line options
603
+ */
604
+ line?: ShapeLineProps;
605
+ /**
606
+ * Points (only for pptx.shapes.CUSTOM_GEOMETRY)
607
+ * - type: 'arc'
608
+ * - `hR` Shape Arc Height Radius
609
+ * - `wR` Shape Arc Width Radius
610
+ * - `stAng` Shape Arc Start Angle
611
+ * - `swAng` Shape Arc Swing Angle
612
+ * @see http://www.datypic.com/sc/ooxml/e-a_arcTo-1.html
613
+ * @example [{ x: 0, y: 0 }, { x: 10, y: 10 }] // draw a line between those two points
614
+ */
615
+ points?: Array<{
616
+ x: Coord;
617
+ y: Coord;
618
+ moveTo?: boolean;
619
+ } | {
620
+ x: Coord;
621
+ y: Coord;
622
+ curve: {
623
+ type: 'arc';
624
+ hR: Coord;
625
+ wR: Coord;
626
+ stAng: number;
627
+ swAng: number;
628
+ };
629
+ } | {
630
+ x: Coord;
631
+ y: Coord;
632
+ curve: {
633
+ type: 'cubic';
634
+ x1: Coord;
635
+ y1: Coord;
636
+ x2: Coord;
637
+ y2: Coord;
638
+ };
639
+ } | {
640
+ x: Coord;
641
+ y: Coord;
642
+ curve: {
643
+ type: 'quadratic';
644
+ x1: Coord;
645
+ y1: Coord;
646
+ };
647
+ } | {
648
+ close: true;
649
+ }>;
650
+ /**
651
+ * Rounded rectangle radius (only for pptx.shapes.ROUNDED_RECTANGLE)
652
+ * - values: 0.0 to 1.0
653
+ * @default 0
654
+ */
655
+ rectRadius?: number;
656
+ /**
657
+ * Rotation (degrees)
658
+ * - range: -360 to 360
659
+ * @default 0
660
+ * @example 180 // rotate 180 degrees
661
+ */
662
+ rotate?: number;
663
+ /**
664
+ * Shadow options
665
+ * TODO: need new demo.js entry for shape shadow
666
+ */
667
+ shadow?: ShadowProps;
668
+ /**
669
+ * @deprecated v3.3.0
670
+ */
671
+ lineSize?: number;
672
+ /**
673
+ * @deprecated v3.3.0
674
+ */
675
+ lineDash?: 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'solid' | 'sysDash' | 'sysDot';
676
+ /**
677
+ * @deprecated v3.3.0
678
+ */
679
+ lineHead?: 'arrow' | 'diamond' | 'none' | 'oval' | 'stealth' | 'triangle';
680
+ /**
681
+ * @deprecated v3.3.0
682
+ */
683
+ lineTail?: 'arrow' | 'diamond' | 'none' | 'oval' | 'stealth' | 'triangle';
684
+ /**
685
+ * Shape name (used instead of default "Shape N" name)
686
+ * @deprecated v3.10.0 - use `objectName`
687
+ */
688
+ shapeName?: string;
689
+ }
690
+ interface TableToSlidesProps extends TableProps {
691
+ _arrObjTabHeadRows?: TableRow[];
692
+ /**
693
+ * Add an image to slide(s) created during autopaging
694
+ * - `image` prop requires either `path` or `data`
695
+ * - see `DataOrPathProps` for details on `image` props
696
+ * - see `PositionProps` for details on `options` props
697
+ */
698
+ addImage?: {
699
+ image: DataOrPathProps;
700
+ options: PositionProps;
701
+ };
702
+ /**
703
+ * Add a shape to slide(s) created during autopaging
704
+ */
705
+ addShape?: {
706
+ shapeName: SHAPE_NAME;
707
+ options: ShapeProps;
708
+ };
709
+ /**
710
+ * Add a table to slide(s) created during autopaging
711
+ */
712
+ addTable?: {
713
+ rows: TableRow[];
714
+ options: TableProps;
715
+ };
716
+ /**
717
+ * Add a text object to slide(s) created during autopaging
718
+ */
719
+ addText?: {
720
+ text: TextProps[];
721
+ options: TextPropsOptions;
722
+ };
723
+ /**
724
+ * Whether to enable auto-paging
725
+ * - auto-paging creates new slides as content overflows a slide
726
+ * @default true
727
+ */
728
+ autoPage?: boolean;
729
+ /**
730
+ * Auto-paging character weight
731
+ * - adjusts how many characters are used before lines wrap
732
+ * - range: -1.0 to 1.0
733
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
734
+ * @default 0.0
735
+ * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)
736
+ */
737
+ autoPageCharWeight?: number;
738
+ /**
739
+ * Auto-paging line weight
740
+ * - adjusts how many lines are used before slides wrap
741
+ * - range: -1.0 to 1.0
742
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
743
+ * @default 0.0
744
+ * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)
745
+ */
746
+ autoPageLineWeight?: number;
747
+ /**
748
+ * Whether to repeat head row(s) on new tables created by autopaging
749
+ * @since v3.3.0
750
+ * @default false
751
+ */
752
+ autoPageRepeatHeader?: boolean;
753
+ /**
754
+ * The `y` location to use on subsequent slides created by autopaging
755
+ * @default (top margin of Slide)
756
+ */
757
+ autoPageSlideStartY?: number;
758
+ /**
759
+ * Column widths (inches)
760
+ */
761
+ colW?: number | number[];
762
+ /**
763
+ * Master slide name
764
+ * - define a master slide to have your auto-paged slides have corporate design, etc.
765
+ * @see https://gitbrent.github.io/PptxGenJS/docs/masters.html
766
+ */
767
+ masterSlideName?: string;
768
+ /**
769
+ * Slide margin
770
+ * - this margin will be across all slides created by auto-paging
771
+ */
772
+ slideMargin?: Margin;
773
+ /**
774
+ * @deprecated v3.3.0 - use `autoPageRepeatHeader`
775
+ */
776
+ addHeaderToEach?: boolean;
777
+ /**
778
+ * @deprecated v3.3.0 - use `autoPageSlideStartY`
779
+ */
780
+ newSlideStartY?: number;
781
+ }
782
+ interface TableCellProps extends TextBaseProps {
783
+ /**
784
+ * Auto-paging character weight
785
+ * - adjusts how many characters are used before lines wrap
786
+ * - range: -1.0 to 1.0
787
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
788
+ * @default 0.0
789
+ * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)
790
+ */
791
+ autoPageCharWeight?: number;
792
+ /**
793
+ * Auto-paging line weight
794
+ * - adjusts how many lines are used before slides wrap
795
+ * - range: -1.0 to 1.0
796
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
797
+ * @default 0.0
798
+ * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)
799
+ */
800
+ autoPageLineWeight?: number;
801
+ /**
802
+ * Cell border
803
+ */
804
+ border?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps];
805
+ /**
806
+ * Cell colspan
807
+ */
808
+ colspan?: number;
809
+ /**
810
+ * Fill color
811
+ * @example { color:'FF0000' } // hex color (red)
812
+ * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent
813
+ * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1
814
+ */
815
+ fill?: ShapeFillProps;
816
+ hyperlink?: HyperlinkProps;
817
+ /**
818
+ * Cell margin (inches)
819
+ * @default 0
820
+ */
821
+ margin?: Margin;
822
+ /**
823
+ * Cell rowspan
824
+ */
825
+ rowspan?: number;
826
+ }
827
+ interface TableProps extends PositionProps, TextBaseProps, ObjectNameProps {
828
+ _arrObjTabHeadRows?: TableRow[];
829
+ /**
830
+ * Whether to enable auto-paging
831
+ * - auto-paging creates new slides as content overflows a slide
832
+ * @default false
833
+ */
834
+ autoPage?: boolean;
835
+ /**
836
+ * Auto-paging character weight
837
+ * - adjusts how many characters are used before lines wrap
838
+ * - range: -1.0 to 1.0
839
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
840
+ * @default 0.0
841
+ * @example 0.5 // lines are longer (increases the number of characters that can fit on a given line)
842
+ */
843
+ autoPageCharWeight?: number;
844
+ /**
845
+ * Auto-paging line weight
846
+ * - adjusts how many lines are used before slides wrap
847
+ * - range: -1.0 to 1.0
848
+ * @see https://gitbrent.github.io/PptxGenJS/docs/api-tables.html
849
+ * @default 0.0
850
+ * @example 0.5 // tables are taller (increases the number of lines that can fit on a given slide)
851
+ */
852
+ autoPageLineWeight?: number;
853
+ /**
854
+ * Whether table header row(s) should be repeated on each new slide creating by autoPage.
855
+ * Use `autoPageHeaderRows` to designate how many rows comprise the table header (1+).
856
+ * @default false
857
+ * @since v3.3.0
858
+ */
859
+ autoPageRepeatHeader?: boolean;
860
+ /**
861
+ * Number of rows that comprise table headers
862
+ * - required when `autoPageRepeatHeader` is set to true.
863
+ * @example 2 - repeats the first two table rows on each new slide created
864
+ * @default 1
865
+ * @since v3.3.0
866
+ */
867
+ autoPageHeaderRows?: number;
868
+ /**
869
+ * The `y` location to use on subsequent slides created by autopaging
870
+ * @default (top margin of Slide)
871
+ */
872
+ autoPageSlideStartY?: number;
873
+ /**
874
+ * Table border
875
+ * - single value is applied to all 4 sides
876
+ * - array of values in TRBL order for individual sides
877
+ */
878
+ border?: BorderProps | [BorderProps, BorderProps, BorderProps, BorderProps];
879
+ /**
880
+ * Width of table columns (inches)
881
+ * - single value is applied to every column equally based upon `w`
882
+ * - array of values in applied to each column in order
883
+ * @default columns of equal width based upon `w`
884
+ */
885
+ colW?: number | number[];
886
+ /**
887
+ * Cell background color
888
+ * @example { color:'FF0000' } // hex color (red)
889
+ * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent
890
+ * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1
891
+ */
892
+ fill?: ShapeFillProps;
893
+ /**
894
+ * Cell margin (inches)
895
+ * - affects all table cells, is superceded by cell options
896
+ */
897
+ margin?: Margin;
898
+ /**
899
+ * Height of table rows (inches)
900
+ * - single value is applied to every row equally based upon `h`
901
+ * - array of values in applied to each row in order
902
+ * @default rows of equal height based upon `h`
903
+ */
904
+ rowH?: number | number[];
905
+ /**
906
+ * DEV TOOL: Verbose Mode (to console)
907
+ * - tell the library to provide an almost ridiculous amount of detail during auto-paging calculations
908
+ * @default false // obviously
909
+ */
910
+ verbose?: boolean;
911
+ /**
912
+ * @deprecated v3.3.0 - use `autoPageSlideStartY`
913
+ */
914
+ newSlideStartY?: number;
915
+ }
916
+ interface TableCell {
917
+ _type?: SLIDE_OBJECT_TYPES.tablecell;
918
+ /** lines in this cell (autoPage) */
919
+ _lines?: TableCell[][];
920
+ /** `text` prop but guaranteed to hold "TableCell[]" */
921
+ _tableCells?: TableCell[];
922
+ /** height in EMU */
923
+ _lineHeight?: number;
924
+ _hmerge?: boolean;
925
+ _vmerge?: boolean;
926
+ _rowContinue?: number;
927
+ _optImp?: any;
928
+ text?: string | number | TableCell[];
929
+ options?: TableCellProps;
930
+ }
931
+ interface TableRowSlide {
932
+ rows: TableRow[];
933
+ }
934
+ type TableRow = TableCell[];
935
+ interface TextGlowProps {
936
+ /**
937
+ * Border color (hex format)
938
+ * @example 'FF3399'
939
+ */
940
+ color?: HexColor;
941
+ /**
942
+ * opacity (0.0 - 1.0)
943
+ * @example 0.5
944
+ * 50% opaque
945
+ */
946
+ opacity?: number;
947
+ /**
948
+ * size (points)
949
+ */
950
+ size: number;
951
+ }
952
+ interface TextPropsOptions extends PositionProps, DataOrPathProps, TextBaseProps, ObjectNameProps {
953
+ _bodyProp?: {
954
+ autoFit?: boolean;
955
+ align?: TEXT_HALIGN;
956
+ anchor?: TEXT_VALIGN;
957
+ lIns?: number;
958
+ rIns?: number;
959
+ tIns?: number;
960
+ bIns?: number;
961
+ vert?: 'eaVert' | 'horz' | 'mongolianVert' | 'vert' | 'vert270' | 'wordArtVert' | 'wordArtVertRtl';
962
+ wrap?: boolean;
963
+ };
964
+ _lineIdx?: number;
965
+ baseline?: number;
966
+ /**
967
+ * Character spacing
968
+ */
969
+ charSpacing?: number;
970
+ /**
971
+ * Text fit options
972
+ *
973
+ * MS-PPT > Format Shape > Shape Options > Text Box > "[unlabeled group]": [3 options below]
974
+ * - 'none' = Do not Autofit
975
+ * - 'shrink' = Shrink text on overflow
976
+ * - 'resize' = Resize shape to fit text
977
+ *
978
+ * **Note** 'shrink' and 'resize' only take effect after editing text/resize shape.
979
+ * Both PowerPoint and Word dynamically calculate a scaling factor and apply it when edit/resize occurs.
980
+ *
981
+ * There is no way for this library to trigger that behavior, sorry.
982
+ * @since v3.3.0
983
+ * @default "none"
984
+ */
985
+ fit?: 'none' | 'shrink' | 'resize';
986
+ /**
987
+ * Shape fill
988
+ * @example { color:'FF0000' } // hex color (red)
989
+ * @example { color:'0088CC', transparency:50 } // hex color, 50% transparent
990
+ * @example { color:pptx.SchemeColor.accent1 } // theme color Accent1
991
+ */
992
+ fill?: ShapeFillProps;
993
+ /**
994
+ * Flip shape horizontally?
995
+ * @default false
996
+ */
997
+ flipH?: boolean;
998
+ /**
999
+ * Flip shape vertical?
1000
+ * @default false
1001
+ */
1002
+ flipV?: boolean;
1003
+ glow?: TextGlowProps;
1004
+ hyperlink?: HyperlinkProps;
1005
+ indentLevel?: number;
1006
+ isTextBox?: boolean;
1007
+ line?: ShapeLineProps;
1008
+ /**
1009
+ * Line spacing (pt)
1010
+ * - PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > "Exactly"
1011
+ * @example 28 // 28pt
1012
+ */
1013
+ lineSpacing?: number;
1014
+ /**
1015
+ * line spacing multiple (percent)
1016
+ * - range: 0.0-9.99
1017
+ * - PowerPoint: Paragraph > Indents and Spacing > Line Spacing: > "Multiple"
1018
+ * @example 1.5 // 1.5X line spacing
1019
+ * @since v3.5.0
1020
+ */
1021
+ lineSpacingMultiple?: number;
1022
+ /**
1023
+ * Margin (points)
1024
+ * - PowerPoint: Format Shape > Shape Options > Size & Properties > Text Box > Left/Right/Top/Bottom margin
1025
+ * @default "Normal" margin in PowerPoint [3.5, 7.0, 3.5, 7.0] // (this library sets no value, but PowerPoint defaults to "Normal" [0.05", 0.1", 0.05", 0.1"])
1026
+ * @example 0 // Top/Right/Bottom/Left margin 0 [0.0" in powerpoint]
1027
+ * @example 10 // Top/Right/Bottom/Left margin 10 [0.14" in powerpoint]
1028
+ * @example [10,5,10,5] // Top margin 10, Right margin 5, Bottom margin 10, Left margin 5
1029
+ */
1030
+ margin?: Margin;
1031
+ outline?: {
1032
+ color: Color;
1033
+ size: number;
1034
+ };
1035
+ paraSpaceAfter?: number;
1036
+ paraSpaceBefore?: number;
1037
+ placeholder?: string;
1038
+ /**
1039
+ * Rounded rectangle radius (only for pptx.shapes.ROUNDED_RECTANGLE)
1040
+ * - values: 0.0 to 1.0
1041
+ * @default 0
1042
+ */
1043
+ rectRadius?: number;
1044
+ /**
1045
+ * Rotation (degrees)
1046
+ * - range: -360 to 360
1047
+ * @default 0
1048
+ * @example 180 // rotate 180 degrees
1049
+ */
1050
+ rotate?: number;
1051
+ /**
1052
+ * Whether to enable right-to-left mode
1053
+ * @default false
1054
+ */
1055
+ rtlMode?: boolean;
1056
+ shadow?: ShadowProps;
1057
+ shape?: SHAPE_NAME;
1058
+ strike?: boolean | 'dblStrike' | 'sngStrike';
1059
+ subscript?: boolean;
1060
+ superscript?: boolean;
1061
+ /**
1062
+ * Vertical alignment
1063
+ * @default middle
1064
+ */
1065
+ valign?: VAlign;
1066
+ vert?: 'eaVert' | 'horz' | 'mongolianVert' | 'vert' | 'vert270' | 'wordArtVert' | 'wordArtVertRtl';
1067
+ /**
1068
+ * Text wrap
1069
+ * @since v3.3.0
1070
+ * @default true
1071
+ */
1072
+ wrap?: boolean;
1073
+ /**
1074
+ * Whether "Fit to Shape?" is enabled
1075
+ * @deprecated v3.3.0 - use `fit`
1076
+ */
1077
+ autoFit?: boolean;
1078
+ /**
1079
+ * Whather "Shrink Text on Overflow?" is enabled
1080
+ * @deprecated v3.3.0 - use `fit`
1081
+ */
1082
+ shrinkText?: boolean;
1083
+ /**
1084
+ * Inset
1085
+ * @deprecated v3.10.0 - use `margin`
1086
+ */
1087
+ inset?: number;
1088
+ /**
1089
+ * Dash type
1090
+ * @deprecated v3.3.0 - use `line.dashType`
1091
+ */
1092
+ lineDash?: 'solid' | 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'sysDash' | 'sysDot';
1093
+ /**
1094
+ * @deprecated v3.3.0 - use `line.beginArrowType`
1095
+ */
1096
+ lineHead?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
1097
+ /**
1098
+ * @deprecated v3.3.0 - use `line.width`
1099
+ */
1100
+ lineSize?: number;
1101
+ /**
1102
+ * @deprecated v3.3.0 - use `line.endArrowType`
1103
+ */
1104
+ lineTail?: 'none' | 'arrow' | 'diamond' | 'oval' | 'stealth' | 'triangle';
1105
+ }
1106
+ interface TextProps {
1107
+ text?: string | number;
1108
+ options?: TextPropsOptions;
1109
+ }
1110
+ type ChartAxisTickMark = 'none' | 'inside' | 'outside' | 'cross';
1111
+ type ChartLineCap = 'flat' | 'round' | 'square';
1112
+ interface OptsChartData {
1113
+ _dataIndex?: number;
1114
+ /**
1115
+ * category labels
1116
+ * @example ['Year 2000', 'Year 2010', 'Year 2020'] // single-level category axes labels
1117
+ * @example [['Year 2000', 'Year 2010', 'Year 2020'], ['Decades', '', '']] // multi-level category axes labels
1118
+ * @since `labels` string[][] type added v3.11.0
1119
+ */
1120
+ labels?: string[] | string[][];
1121
+ /**
1122
+ * series name
1123
+ * @example 'Locations'
1124
+ */
1125
+ name?: string;
1126
+ /**
1127
+ * bubble sizes
1128
+ * @example [5, 1, 5, 1]
1129
+ */
1130
+ sizes?: number[];
1131
+ /**
1132
+ * category values
1133
+ * @example [2000, 2010, 2020]
1134
+ */
1135
+ values?: number[];
1136
+ }
1137
+ interface IOptsChartData extends OptsChartData {
1138
+ labels?: string[][];
1139
+ }
1140
+ interface OptsChartGridLine {
1141
+ /**
1142
+ * MS-PPT > Chart format > Format Major Gridlines > Line > Cap type
1143
+ * - line cap type
1144
+ * @default flat
1145
+ */
1146
+ cap?: ChartLineCap;
1147
+ /**
1148
+ * Gridline color (hex)
1149
+ * @example 'FF3399'
1150
+ */
1151
+ color?: HexColor;
1152
+ /**
1153
+ * Gridline size (points)
1154
+ */
1155
+ size?: number;
1156
+ /**
1157
+ * Gridline style
1158
+ */
1159
+ style?: 'solid' | 'dash' | 'dot' | 'none';
1160
+ }
1161
+ interface IChartMulti {
1162
+ type: CHART_NAME;
1163
+ data: OptsChartData[];
1164
+ options: IChartOptsLib;
1165
+ }
1166
+ interface IChartPropsFillLine {
1167
+ /**
1168
+ * PowerPoint: Format Chart Area/Plot > Border ["Line"]
1169
+ * @example border: {color: 'FF0000', pt: 1} // hex RGB color, 1 pt line
1170
+ */
1171
+ border?: BorderProps;
1172
+ /**
1173
+ * PowerPoint: Format Chart Area/Plot Area > Fill
1174
+ * @example fill: {color: '696969'} // hex RGB color value
1175
+ * @example fill: {color: pptx.SchemeColor.background2} // Theme color value
1176
+ * @example fill: {transparency: 50} // 50% transparency
1177
+ */
1178
+ fill?: ShapeFillProps;
1179
+ }
1180
+ interface IChartAreaProps extends IChartPropsFillLine {
1181
+ /**
1182
+ * Whether the chart area has rounded corners
1183
+ * - only applies when either `fill` or `border` is used
1184
+ * @default true
1185
+ * @since v3.11
1186
+ */
1187
+ roundedCorners?: boolean;
1188
+ }
1189
+ interface IChartPropsBase {
1190
+ /**
1191
+ * Axis position
1192
+ */
1193
+ axisPos?: 'b' | 'l' | 'r' | 't';
1194
+ chartColors?: HexColor[];
1195
+ /**
1196
+ * opacity (0 - 100)
1197
+ * @example 50 // 50% opaque
1198
+ */
1199
+ chartColorsOpacity?: number;
1200
+ dataBorder?: BorderProps;
1201
+ displayBlanksAs?: string;
1202
+ invertedColors?: HexColor[];
1203
+ lang?: string;
1204
+ layout?: PositionProps;
1205
+ shadow?: ShadowProps;
1206
+ /**
1207
+ * @default false
1208
+ */
1209
+ showLabel?: boolean;
1210
+ showLeaderLines?: boolean;
1211
+ /**
1212
+ * @default false
1213
+ */
1214
+ showLegend?: boolean;
1215
+ /**
1216
+ * @default false
1217
+ */
1218
+ showPercent?: boolean;
1219
+ /**
1220
+ * @default false
1221
+ */
1222
+ showSerName?: boolean;
1223
+ /**
1224
+ * @default false
1225
+ */
1226
+ showTitle?: boolean;
1227
+ /**
1228
+ * @default false
1229
+ */
1230
+ showValue?: boolean;
1231
+ /**
1232
+ * 3D Perspecitve
1233
+ * - range: 0-120
1234
+ * @default 30
1235
+ */
1236
+ v3DPerspective?: number;
1237
+ /**
1238
+ * Right Angle Axes
1239
+ * - Shows chart from first-person perspective
1240
+ * - Overrides `v3DPerspective` when true
1241
+ * - PowerPoint: Chart Options > 3-D Rotation
1242
+ * @default false
1243
+ */
1244
+ v3DRAngAx?: boolean;
1245
+ /**
1246
+ * X Rotation
1247
+ * - PowerPoint: Chart Options > 3-D Rotation
1248
+ * - range: 0-359.9
1249
+ * @default 30
1250
+ */
1251
+ v3DRotX?: number;
1252
+ /**
1253
+ * Y Rotation
1254
+ * - range: 0-359.9
1255
+ * @default 30
1256
+ */
1257
+ v3DRotY?: number;
1258
+ /**
1259
+ * PowerPoint: Format Chart Area (Fill & Border/Line)
1260
+ * @since v3.11
1261
+ */
1262
+ chartArea?: IChartAreaProps;
1263
+ /**
1264
+ * PowerPoint: Format Plot Area (Fill & Border/Line)
1265
+ * @since v3.11
1266
+ */
1267
+ plotArea?: IChartPropsFillLine;
1268
+ /**
1269
+ * @deprecated v3.11.0 - use `plotArea.border`
1270
+ */
1271
+ border?: BorderProps;
1272
+ /**
1273
+ * @deprecated v3.11.0 - use `plotArea.fill`
1274
+ */
1275
+ fill?: HexColor;
1276
+ }
1277
+ interface IChartPropsAxisCat {
1278
+ /**
1279
+ * Multi-Chart prop: array of cat axes
1280
+ */
1281
+ catAxes?: IChartPropsAxisCat[];
1282
+ catAxisBaseTimeUnit?: string;
1283
+ catAxisCrossesAt?: number | 'autoZero';
1284
+ catAxisHidden?: boolean;
1285
+ catAxisLabelColor?: string;
1286
+ catAxisLabelFontBold?: boolean;
1287
+ catAxisLabelFontFace?: string;
1288
+ catAxisLabelFontItalic?: boolean;
1289
+ catAxisLabelFontSize?: number;
1290
+ catAxisLabelFrequency?: string;
1291
+ catAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo';
1292
+ catAxisLabelRotate?: number;
1293
+ catAxisLineColor?: string;
1294
+ catAxisLineShow?: boolean;
1295
+ catAxisLineSize?: number;
1296
+ catAxisLineStyle?: 'solid' | 'dash' | 'dot';
1297
+ catAxisMajorTickMark?: ChartAxisTickMark;
1298
+ catAxisMajorTimeUnit?: string;
1299
+ catAxisMajorUnit?: number;
1300
+ catAxisMaxVal?: number;
1301
+ catAxisMinorTickMark?: ChartAxisTickMark;
1302
+ catAxisMinorTimeUnit?: string;
1303
+ catAxisMinorUnit?: number;
1304
+ catAxisMinVal?: number;
1305
+ /** @since v3.11.0 */
1306
+ catAxisMultiLevelLabels?: boolean;
1307
+ catAxisOrientation?: 'minMax';
1308
+ catAxisTitle?: string;
1309
+ catAxisTitleColor?: string;
1310
+ catAxisTitleFontFace?: string;
1311
+ catAxisTitleFontSize?: number;
1312
+ catAxisTitleRotate?: number;
1313
+ catGridLine?: OptsChartGridLine;
1314
+ catLabelFormatCode?: string;
1315
+ /**
1316
+ * Whether data should use secondary category axis (instead of primary)
1317
+ * @default false
1318
+ */
1319
+ secondaryCatAxis?: boolean;
1320
+ showCatAxisTitle?: boolean;
1321
+ }
1322
+ interface IChartPropsAxisSer {
1323
+ serAxisBaseTimeUnit?: string;
1324
+ serAxisHidden?: boolean;
1325
+ serAxisLabelColor?: string;
1326
+ serAxisLabelFontBold?: boolean;
1327
+ serAxisLabelFontFace?: string;
1328
+ serAxisLabelFontItalic?: boolean;
1329
+ serAxisLabelFontSize?: number;
1330
+ serAxisLabelFrequency?: string;
1331
+ serAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo';
1332
+ serAxisLineColor?: string;
1333
+ serAxisLineShow?: boolean;
1334
+ serAxisMajorTimeUnit?: string;
1335
+ serAxisMajorUnit?: number;
1336
+ serAxisMinorTimeUnit?: string;
1337
+ serAxisMinorUnit?: number;
1338
+ serAxisOrientation?: string;
1339
+ serAxisTitle?: string;
1340
+ serAxisTitleColor?: string;
1341
+ serAxisTitleFontFace?: string;
1342
+ serAxisTitleFontSize?: number;
1343
+ serAxisTitleRotate?: number;
1344
+ serGridLine?: OptsChartGridLine;
1345
+ serLabelFormatCode?: string;
1346
+ showSerAxisTitle?: boolean;
1347
+ }
1348
+ interface IChartPropsAxisVal {
1349
+ /**
1350
+ * Whether data should use secondary value axis (instead of primary)
1351
+ * @default false
1352
+ */
1353
+ secondaryValAxis?: boolean;
1354
+ showValAxisTitle?: boolean;
1355
+ /**
1356
+ * Multi-Chart prop: array of val axes
1357
+ */
1358
+ valAxes?: IChartPropsAxisVal[];
1359
+ valAxisCrossesAt?: number | 'autoZero';
1360
+ valAxisDisplayUnit?: 'billions' | 'hundredMillions' | 'hundreds' | 'hundredThousands' | 'millions' | 'tenMillions' | 'tenThousands' | 'thousands' | 'trillions';
1361
+ valAxisDisplayUnitLabel?: boolean;
1362
+ valAxisHidden?: boolean;
1363
+ valAxisLabelColor?: string;
1364
+ valAxisLabelFontBold?: boolean;
1365
+ valAxisLabelFontFace?: string;
1366
+ valAxisLabelFontItalic?: boolean;
1367
+ valAxisLabelFontSize?: number;
1368
+ valAxisLabelFormatCode?: string;
1369
+ valAxisLabelPos?: 'none' | 'low' | 'high' | 'nextTo';
1370
+ valAxisLabelRotate?: number;
1371
+ valAxisLineColor?: string;
1372
+ valAxisLineShow?: boolean;
1373
+ valAxisLineSize?: number;
1374
+ valAxisLineStyle?: 'solid' | 'dash' | 'dot';
1375
+ /**
1376
+ * PowerPoint: Format Axis > Axis Options > Logarithmic scale - Base
1377
+ * - range: 2-99
1378
+ * @since v3.5.0
1379
+ */
1380
+ valAxisLogScaleBase?: number;
1381
+ valAxisMajorTickMark?: ChartAxisTickMark;
1382
+ valAxisMajorUnit?: number;
1383
+ valAxisMaxVal?: number;
1384
+ valAxisMinorTickMark?: ChartAxisTickMark;
1385
+ valAxisMinVal?: number;
1386
+ valAxisOrientation?: 'minMax';
1387
+ valAxisTitle?: string;
1388
+ valAxisTitleColor?: string;
1389
+ valAxisTitleFontFace?: string;
1390
+ valAxisTitleFontSize?: number;
1391
+ valAxisTitleRotate?: number;
1392
+ valGridLine?: OptsChartGridLine;
1393
+ /**
1394
+ * Value label format code
1395
+ * - this also directs Data Table formatting
1396
+ * @since v3.3.0
1397
+ * @example '#%' // round percent
1398
+ * @example '0.00%' // shows values as '0.00%'
1399
+ * @example '$0.00' // shows values as '$0.00'
1400
+ */
1401
+ valLabelFormatCode?: string;
1402
+ }
1403
+ interface IChartPropsChartBar {
1404
+ bar3DShape?: string;
1405
+ barDir?: string;
1406
+ barGapDepthPct?: number;
1407
+ /**
1408
+ * MS-PPT > Format chart > Format Data Point > Series Options > "Gap Width"
1409
+ * - width (percent)
1410
+ * - range: `0`-`500`
1411
+ * @default 150
1412
+ */
1413
+ barGapWidthPct?: number;
1414
+ barGrouping?: string;
1415
+ /**
1416
+ * MS-PPT > Format chart > Format Data Point > Series Options > "Series Overlap"
1417
+ * - overlap (percent)
1418
+ * - range: `-100`-`100`
1419
+ * @since v3.9.0
1420
+ * @default 0
1421
+ */
1422
+ barOverlapPct?: number;
1423
+ }
1424
+ interface IChartPropsChartDoughnut {
1425
+ dataNoEffects?: boolean;
1426
+ holeSize?: number;
1427
+ }
1428
+ interface IChartPropsChartLine {
1429
+ /**
1430
+ * MS-PPT > Chart format > Format Data Series > Line > Cap type
1431
+ * - line cap type
1432
+ * @default flat
1433
+ */
1434
+ lineCap?: ChartLineCap;
1435
+ /**
1436
+ * MS-PPT > Chart format > Format Data Series > Marker Options > Built-in > Type
1437
+ * - line dash type
1438
+ * @default solid
1439
+ */
1440
+ lineDash?: 'dash' | 'dashDot' | 'lgDash' | 'lgDashDot' | 'lgDashDotDot' | 'solid' | 'sysDash' | 'sysDot';
1441
+ /**
1442
+ * MS-PPT > Chart format > Format Data Series > Marker Options > Built-in > Type
1443
+ * - marker type
1444
+ * @default circle
1445
+ */
1446
+ lineDataSymbol?: 'circle' | 'dash' | 'diamond' | 'dot' | 'none' | 'square' | 'triangle';
1447
+ /**
1448
+ * MS-PPT > Chart format > Format Data Series > [Marker Options] > Border > Color
1449
+ * - border color
1450
+ * @default circle
1451
+ */
1452
+ lineDataSymbolLineColor?: string;
1453
+ /**
1454
+ * MS-PPT > Chart format > Format Data Series > [Marker Options] > Border > Width
1455
+ * - border width (points)
1456
+ * @default 0.75
1457
+ */
1458
+ lineDataSymbolLineSize?: number;
1459
+ /**
1460
+ * MS-PPT > Chart format > Format Data Series > Marker Options > Built-in > Size
1461
+ * - marker size
1462
+ * - range: 2-72
1463
+ * @default 6
1464
+ */
1465
+ lineDataSymbolSize?: number;
1466
+ /**
1467
+ * MS-PPT > Chart format > Format Data Series > Line > Width
1468
+ * - line width (points)
1469
+ * - range: 0-1584
1470
+ * @default 2
1471
+ */
1472
+ lineSize?: number;
1473
+ /**
1474
+ * MS-PPT > Chart format > Format Data Series > Line > Smoothed line
1475
+ * - "Smoothed line"
1476
+ * @default false
1477
+ */
1478
+ lineSmooth?: boolean;
1479
+ }
1480
+ interface IChartPropsChartPie {
1481
+ dataNoEffects?: boolean;
1482
+ /**
1483
+ * MS-PPT > Format chart > Format Data Series > Series Options > "Angle of first slice"
1484
+ * - angle (degrees)
1485
+ * - range: 0-359
1486
+ * @since v3.4.0
1487
+ * @default 0
1488
+ */
1489
+ firstSliceAng?: number;
1490
+ }
1491
+ interface IChartPropsChartRadar {
1492
+ /**
1493
+ * MS-PPT > Chart Type > Waterfall
1494
+ * - radar chart type
1495
+ * @default standard
1496
+ */
1497
+ radarStyle?: 'standard' | 'marker' | 'filled';
1498
+ }
1499
+ interface IChartPropsDataLabel {
1500
+ dataLabelBkgrdColors?: boolean;
1501
+ dataLabelColor?: string;
1502
+ dataLabelFontBold?: boolean;
1503
+ dataLabelFontFace?: string;
1504
+ dataLabelFontItalic?: boolean;
1505
+ dataLabelFontSize?: number;
1506
+ /**
1507
+ * Data label format code
1508
+ * @example '#%' // round percent
1509
+ * @example '0.00%' // shows values as '0.00%'
1510
+ * @example '$0.00' // shows values as '$0.00'
1511
+ */
1512
+ dataLabelFormatCode?: string;
1513
+ dataLabelFormatScatter?: 'custom' | 'customXY' | 'XY';
1514
+ dataLabelPosition?: 'b' | 'bestFit' | 'ctr' | 'l' | 'r' | 't' | 'inEnd' | 'outEnd';
1515
+ }
1516
+ interface IChartPropsDataTable {
1517
+ dataTableFontSize?: number;
1518
+ /**
1519
+ * Data table format code
1520
+ * @since v3.3.0
1521
+ * @example '#%' // round percent
1522
+ * @example '0.00%' // shows values as '0.00%'
1523
+ * @example '$0.00' // shows values as '$0.00'
1524
+ */
1525
+ dataTableFormatCode?: string;
1526
+ /**
1527
+ * Whether to show a data table adjacent to the chart
1528
+ * @default false
1529
+ */
1530
+ showDataTable?: boolean;
1531
+ showDataTableHorzBorder?: boolean;
1532
+ showDataTableKeys?: boolean;
1533
+ showDataTableOutline?: boolean;
1534
+ showDataTableVertBorder?: boolean;
1535
+ }
1536
+ interface IChartPropsLegend {
1537
+ legendColor?: string;
1538
+ legendFontFace?: string;
1539
+ legendFontSize?: number;
1540
+ legendPos?: 'b' | 'l' | 'r' | 't' | 'tr';
1541
+ }
1542
+ interface IChartPropsTitle extends TextBaseProps {
1543
+ title?: string;
1544
+ titleAlign?: string;
1545
+ titleBold?: boolean;
1546
+ titleColor?: string;
1547
+ titleFontFace?: string;
1548
+ titleFontSize?: number;
1549
+ titlePos?: {
1550
+ x: number;
1551
+ y: number;
1552
+ };
1553
+ titleRotate?: number;
1554
+ }
1555
+ interface IChartOpts extends IChartPropsAxisCat, IChartPropsAxisSer, IChartPropsAxisVal, IChartPropsBase, IChartPropsChartBar, IChartPropsChartDoughnut, IChartPropsChartLine, IChartPropsChartPie, IChartPropsChartRadar, IChartPropsDataLabel, IChartPropsDataTable, IChartPropsLegend, IChartPropsTitle, ObjectNameProps, OptsChartGridLine, PositionProps {
1556
+ /**
1557
+ * Alt Text value ("How would you describe this object and its contents to someone who is blind?")
1558
+ * - PowerPoint: [right-click on a chart] > "Edit Alt Text..."
1559
+ */
1560
+ altText?: string;
1561
+ }
1562
+ interface IChartOptsLib extends IChartOpts {
1563
+ _type?: CHART_NAME | IChartMulti[];
1564
+ }
1565
+ interface ISlideRelChart extends OptsChartData {
1566
+ type: CHART_NAME | IChartMulti[];
1567
+ opts: IChartOptsLib;
1568
+ data: IOptsChartData[];
1569
+ rId: number;
1570
+ Target: string;
1571
+ globalId: number;
1572
+ fileName: string;
1573
+ }
1574
+ interface ISlideRel {
1575
+ type: SLIDE_OBJECT_TYPES;
1576
+ Target: string;
1577
+ fileName?: string;
1578
+ data: any[] | string;
1579
+ opts?: IChartOpts;
1580
+ path?: string;
1581
+ extn?: string;
1582
+ globalId?: number;
1583
+ rId: number;
1584
+ }
1585
+ interface ISlideRelMedia {
1586
+ type: string;
1587
+ opts?: MediaProps;
1588
+ path?: string;
1589
+ extn?: string;
1590
+ data?: string | ArrayBuffer;
1591
+ /** used to indicate that a media file has already been read/enocded (PERF) */
1592
+ isDuplicate?: boolean;
1593
+ isSvgPng?: boolean;
1594
+ svgSize?: {
1595
+ w: number;
1596
+ h: number;
1597
+ };
1598
+ rId: number;
1599
+ Target: string;
1600
+ }
1601
+ interface ISlideObject {
1602
+ _type: SLIDE_OBJECT_TYPES;
1603
+ options?: ObjectOptions;
1604
+ text?: TextProps[];
1605
+ arrTabRows?: TableCell[][];
1606
+ chartRid?: number;
1607
+ image?: string;
1608
+ imageRid?: number;
1609
+ hyperlink?: HyperlinkProps;
1610
+ media?: string;
1611
+ mtype?: MediaType;
1612
+ mediaRid?: number;
1613
+ shape?: SHAPE_NAME;
1614
+ }
1615
+ interface WriteBaseProps {
1616
+ /**
1617
+ * Whether to compress export (can save substantial space, but takes a bit longer to export)
1618
+ * @default false
1619
+ * @since v3.5.0
1620
+ */
1621
+ compression?: boolean;
1622
+ }
1623
+ interface WriteProps extends WriteBaseProps {
1624
+ /**
1625
+ * Output type
1626
+ * - values: 'arraybuffer' | 'base64' | 'binarystring' | 'blob' | 'nodebuffer' | 'uint8array' | 'STREAM'
1627
+ * @default 'blob'
1628
+ */
1629
+ outputType?: WRITE_OUTPUT_TYPE;
1630
+ }
1631
+ interface WriteFileProps extends WriteBaseProps {
1632
+ /**
1633
+ * Export file name
1634
+ * @default 'Presentation.pptx'
1635
+ */
1636
+ fileName?: string;
1637
+ }
1638
+ interface SectionProps {
1639
+ /**
1640
+ * Section title
1641
+ */
1642
+ title: string;
1643
+ /**
1644
+ * Section order - uses to add section at any index
1645
+ * - values: 1-n
1646
+ */
1647
+ order?: number;
1648
+ }
1649
+ interface SectionInternalProps extends SectionProps {
1650
+ _type?: 'user' | 'default';
1651
+ _slides: PresSlideInternal[];
1652
+ }
1653
+ interface PresLayout {
1654
+ _sizeW?: number;
1655
+ _sizeH?: number;
1656
+ /**
1657
+ * Layout Name
1658
+ * @example 'LAYOUT_WIDE'
1659
+ */
1660
+ name: string;
1661
+ width: number;
1662
+ height: number;
1663
+ }
1664
+ interface SlideNumberProps extends PositionProps, TextBaseProps {
1665
+ /**
1666
+ * margin (points)
1667
+ */
1668
+ margin?: Margin;
1669
+ }
1670
+ interface SlideMasterChartProps {
1671
+ type: CHART_NAME | IChartMulti[];
1672
+ data: OptsChartData[];
1673
+ options?: IChartOptsLib;
1674
+ opts?: IChartOptsLib;
1675
+ }
1676
+ type SlideMasterObject = {
1677
+ chart: SlideMasterChartProps;
1678
+ } | {
1679
+ image: ImageProps;
1680
+ } | {
1681
+ line: ShapeProps;
1682
+ } | {
1683
+ rect: ShapeProps;
1684
+ } | {
1685
+ text: TextProps;
1686
+ } | {
1687
+ placeholder: {
1688
+ options: PlaceholderProps;
1689
+ /**
1690
+ * Text to be shown in placeholder (shown until user focuses textbox or adds text)
1691
+ * - Leave blank to have powerpoint show default phrase (ex: "Click to add title")
1692
+ */
1693
+ text?: string;
1694
+ };
1695
+ };
1696
+ interface SlideMasterProps {
1697
+ /**
1698
+ * Unique name for this master
1699
+ */
1700
+ title: string;
1701
+ background?: BackgroundProps;
1702
+ margin?: Margin;
1703
+ slideNumber?: SlideNumberProps;
1704
+ objects?: SlideMasterObject[];
1705
+ /**
1706
+ * @deprecated v3.3.0 - use `background`
1707
+ */
1708
+ bkgd?: string | BackgroundProps;
1709
+ }
1710
+ interface ObjectOptions extends ImageBaseProps, PositionProps, ShapeProps, TableCellProps, TextPropsOptions {
1711
+ _placeholderIdx?: number;
1712
+ _placeholderType?: PLACEHOLDER_TYPE;
1713
+ cx?: Coord;
1714
+ cy?: Coord;
1715
+ margin?: Margin;
1716
+ colW?: number | number[];
1717
+ rowH?: number | number[];
1718
+ }
1719
+ interface SlideBaseProps {
1720
+ _bkgdImgRid?: number;
1721
+ _margin?: Margin;
1722
+ _name?: string;
1723
+ _presLayout: PresLayout;
1724
+ _rels: ISlideRel[];
1725
+ _relsChart: ISlideRelChart[];
1726
+ _relsMedia: ISlideRelMedia[];
1727
+ _slideNum: number;
1728
+ _slideNumberProps?: SlideNumberProps | null;
1729
+ _slideObjects: ISlideObject[];
1730
+ background?: BackgroundProps;
1731
+ /**
1732
+ * @deprecated v3.3.0 - use `background`
1733
+ */
1734
+ bkgd?: string | BackgroundProps;
1735
+ }
1736
+ interface SlideLayout {
1737
+ background?: BackgroundProps;
1738
+ /**
1739
+ * @deprecated v3.3.0 - use `background`
1740
+ */
1741
+ bkgd?: string | BackgroundProps;
1742
+ }
1743
+ interface SlideLayoutInternal extends SlideBaseProps, SlideLayout {
1744
+ _slide?: {
1745
+ _bkgdImgRid?: number;
1746
+ back: string;
1747
+ color: string;
1748
+ hidden?: boolean;
1749
+ } | null;
1750
+ }
1751
+ interface PresSlide {
1752
+ addChart(type: CHART_NAME, data: OptsChartData[], options?: IChartOpts): PresSlide;
1753
+ addChart(type: IChartMulti[], options?: IChartOpts): PresSlide;
1754
+ addImage: (options: ImageProps) => PresSlide;
1755
+ addMedia: (options: MediaProps) => PresSlide;
1756
+ addNotes: (notes: string) => PresSlide;
1757
+ addShape: (shapeName: SHAPE_NAME, options?: ShapeProps) => PresSlide;
1758
+ addTable: (tableRows: TableRow[], options?: TableProps) => PresSlide;
1759
+ addText: (text: string | number | TextProps[], options?: TextPropsOptions) => PresSlide;
1760
+ readonly newAutoPagedSlides?: PresSlide[];
1761
+ /**
1762
+ * Background color or image (`color` | `path` | `data`)
1763
+ * @example { color: 'FF3399' } - hex color
1764
+ * @example { color: 'FF3399', transparency:50 } - hex color with 50% transparency
1765
+ * @example { path: 'https://onedrives.com/myimg.png` } - retrieve image via URL
1766
+ * @example { path: '/home/gitbrent/images/myimg.png` } - retrieve image via local path
1767
+ * @example { data: 'image/png;base64,iVtDaDrF[...]=' } - base64 string
1768
+ * @since v3.3.0
1769
+ */
1770
+ background?: BackgroundProps;
1771
+ /**
1772
+ * @deprecated v3.3.0 - use `background`
1773
+ */
1774
+ bkgd?: string | BackgroundProps;
1775
+ /**
1776
+ * Default text color (hex format)
1777
+ * @example 'FF3399'
1778
+ * @default '000000' (DEF_FONT_COLOR)
1779
+ */
1780
+ color?: HexColor;
1781
+ /**
1782
+ * Whether slide is hidden
1783
+ * @default false
1784
+ */
1785
+ hidden?: boolean;
1786
+ /**
1787
+ * Slide number options
1788
+ */
1789
+ slideNumber?: SlideNumberProps;
1790
+ }
1791
+ interface PresSlideInternal extends SlideBaseProps, PresSlide {
1792
+ _rId: number;
1793
+ _slideLayout: SlideLayoutInternal | null;
1794
+ _slideId: number;
1795
+ }
1796
+ interface AddSlideProps {
1797
+ masterName?: string;
1798
+ sectionTitle?: string;
1799
+ }
1800
+ interface PresentationProps {
1801
+ author: string;
1802
+ company: string;
1803
+ layout: string;
1804
+ masterSlide: PresSlide;
1805
+ /**
1806
+ * Presentation's layout
1807
+ * read-only
1808
+ */
1809
+ presLayout: PresLayout;
1810
+ revision: string;
1811
+ /**
1812
+ * Whether to enable right-to-left mode
1813
+ * @default false
1814
+ */
1815
+ rtlMode: boolean;
1816
+ subject: string;
1817
+ theme: ThemeProps;
1818
+ title: string;
1819
+ }
1820
+ interface IPresentationProps extends PresentationProps {
1821
+ masterSlide: PresSlideInternal;
1822
+ sections: SectionInternalProps[];
1823
+ slideLayouts: SlideLayoutInternal[];
1824
+ slides: PresSlideInternal[];
1825
+ }
1826
+ //#endregion
1827
+ //#region src/core-enums.d.ts
1828
+ declare const EMU = 914400;
1829
+ declare const ONEPT = 12700;
1830
+ declare const CRLF = "\r\n";
1831
+ declare const LAYOUT_IDX_SERIES_BASE = 2147483649;
1832
+ declare const REGEX_HEX_COLOR: RegExp;
1833
+ declare const LINEH_MODIFIER = 1.67;
1834
+ declare const DEF_BULLET_MARGIN = 27;
1835
+ declare const DEF_CELL_BORDER: BorderProps;
1836
+ declare const DEF_CELL_MARGIN_PT: [number, number, number, number];
1837
+ declare const DEF_CELL_MARGIN_IN: [number, number, number, number];
1838
+ declare const DEF_CHART_BORDER: BorderProps;
1839
+ declare const DEF_CHART_GRIDLINE: OptsChartGridLine;
1840
+ declare const DEF_FONT_COLOR = "000000";
1841
+ declare const DEF_FONT_SIZE = 12;
1842
+ declare const DEF_FONT_TITLE_SIZE = 18;
1843
+ declare const DEF_PRES_LAYOUT = "LAYOUT_16x9";
1844
+ declare const DEF_PRES_LAYOUT_NAME = "DEFAULT";
1845
+ declare const DEF_SHAPE_LINE_COLOR = "333333";
1846
+ declare const DEF_SHAPE_SHADOW: {
1847
+ type: string;
1848
+ blur: number;
1849
+ offset: number;
1850
+ angle: number;
1851
+ color: string;
1852
+ opacity: number;
1853
+ rotateWithShape: boolean;
1854
+ };
1855
+ declare const DEF_SLIDE_BKGD = "FFFFFF";
1856
+ declare const DEF_SLIDE_MARGIN_IN: [number, number, number, number];
1857
+ declare const DEF_TEXT_SHADOW: {
1858
+ type: string;
1859
+ blur: number;
1860
+ offset: number;
1861
+ angle: number;
1862
+ color: string;
1863
+ opacity: number;
1864
+ };
1865
+ declare const DEF_TEXT_GLOW: {
1866
+ size: number;
1867
+ color: string;
1868
+ opacity: number;
1869
+ };
1870
+ declare const AXIS_ID_VALUE_PRIMARY = "2094734552";
1871
+ declare const AXIS_ID_VALUE_SECONDARY = "2094734553";
1872
+ declare const AXIS_ID_CATEGORY_PRIMARY = "2094734554";
1873
+ declare const AXIS_ID_CATEGORY_SECONDARY = "2094734555";
1874
+ declare const AXIS_ID_SERIES_PRIMARY = "2094734556";
1875
+ type JSZIP_OUTPUT_TYPE = 'arraybuffer' | 'base64' | 'binarystring' | 'blob' | 'nodebuffer' | 'uint8array';
1876
+ type WRITE_OUTPUT_TYPE = JSZIP_OUTPUT_TYPE | 'STREAM';
1877
+ type CHART_NAME = 'area' | 'bar' | 'bar3D' | 'bubble' | 'bubble3D' | 'doughnut' | 'line' | 'pie' | 'radar' | 'scatter';
1878
+ type SCHEME_COLORS = 'tx1' | 'tx2' | 'bg1' | 'bg2' | 'accent1' | 'accent2' | 'accent3' | 'accent4' | 'accent5' | 'accent6';
1879
+ declare const LETTERS: string[];
1880
+ declare const BARCHART_COLORS: string[];
1881
+ declare const PIECHART_COLORS: string[];
1882
+ declare enum TEXT_HALIGN {
1883
+ 'left' = "left",
1884
+ 'center' = "center",
1885
+ 'right' = "right",
1886
+ 'justify' = "justify"
1887
+ }
1888
+ declare enum TEXT_VALIGN {
1889
+ 'b' = "b",
1890
+ 'ctr' = "ctr",
1891
+ 't' = "t"
1892
+ }
1893
+ declare const SLDNUMFLDID = "{F7021451-1387-4CA6-816F-3879F97B5CBC}";
1894
+ declare enum OutputType {
1895
+ 'arraybuffer' = "arraybuffer",
1896
+ 'base64' = "base64",
1897
+ 'binarystring' = "binarystring",
1898
+ 'blob' = "blob",
1899
+ 'nodebuffer' = "nodebuffer",
1900
+ 'uint8array' = "uint8array"
1901
+ }
1902
+ declare enum ChartType {
1903
+ 'area' = "area",
1904
+ 'bar' = "bar",
1905
+ 'bar3d' = "bar3D",
1906
+ 'bubble' = "bubble",
1907
+ 'bubble3d' = "bubble3D",
1908
+ 'doughnut' = "doughnut",
1909
+ 'line' = "line",
1910
+ 'pie' = "pie",
1911
+ 'radar' = "radar",
1912
+ 'scatter' = "scatter"
1913
+ }
1914
+ declare enum ShapeType {
1915
+ 'accentBorderCallout1' = "accentBorderCallout1",
1916
+ 'accentBorderCallout2' = "accentBorderCallout2",
1917
+ 'accentBorderCallout3' = "accentBorderCallout3",
1918
+ 'accentCallout1' = "accentCallout1",
1919
+ 'accentCallout2' = "accentCallout2",
1920
+ 'accentCallout3' = "accentCallout3",
1921
+ 'actionButtonBackPrevious' = "actionButtonBackPrevious",
1922
+ 'actionButtonBeginning' = "actionButtonBeginning",
1923
+ 'actionButtonBlank' = "actionButtonBlank",
1924
+ 'actionButtonDocument' = "actionButtonDocument",
1925
+ 'actionButtonEnd' = "actionButtonEnd",
1926
+ 'actionButtonForwardNext' = "actionButtonForwardNext",
1927
+ 'actionButtonHelp' = "actionButtonHelp",
1928
+ 'actionButtonHome' = "actionButtonHome",
1929
+ 'actionButtonInformation' = "actionButtonInformation",
1930
+ 'actionButtonMovie' = "actionButtonMovie",
1931
+ 'actionButtonReturn' = "actionButtonReturn",
1932
+ 'actionButtonSound' = "actionButtonSound",
1933
+ 'arc' = "arc",
1934
+ 'bentArrow' = "bentArrow",
1935
+ 'bentUpArrow' = "bentUpArrow",
1936
+ 'bevel' = "bevel",
1937
+ 'blockArc' = "blockArc",
1938
+ 'borderCallout1' = "borderCallout1",
1939
+ 'borderCallout2' = "borderCallout2",
1940
+ 'borderCallout3' = "borderCallout3",
1941
+ 'bracePair' = "bracePair",
1942
+ 'bracketPair' = "bracketPair",
1943
+ 'callout1' = "callout1",
1944
+ 'callout2' = "callout2",
1945
+ 'callout3' = "callout3",
1946
+ 'can' = "can",
1947
+ 'chartPlus' = "chartPlus",
1948
+ 'chartStar' = "chartStar",
1949
+ 'chartX' = "chartX",
1950
+ 'chevron' = "chevron",
1951
+ 'chord' = "chord",
1952
+ 'circularArrow' = "circularArrow",
1953
+ 'cloud' = "cloud",
1954
+ 'cloudCallout' = "cloudCallout",
1955
+ 'corner' = "corner",
1956
+ 'cornerTabs' = "cornerTabs",
1957
+ 'cube' = "cube",
1958
+ 'curvedDownArrow' = "curvedDownArrow",
1959
+ 'curvedLeftArrow' = "curvedLeftArrow",
1960
+ 'curvedRightArrow' = "curvedRightArrow",
1961
+ 'curvedUpArrow' = "curvedUpArrow",
1962
+ 'custGeom' = "custGeom",
1963
+ 'decagon' = "decagon",
1964
+ 'diagStripe' = "diagStripe",
1965
+ 'diamond' = "diamond",
1966
+ 'dodecagon' = "dodecagon",
1967
+ 'donut' = "donut",
1968
+ 'doubleWave' = "doubleWave",
1969
+ 'downArrow' = "downArrow",
1970
+ 'downArrowCallout' = "downArrowCallout",
1971
+ 'ellipse' = "ellipse",
1972
+ 'ellipseRibbon' = "ellipseRibbon",
1973
+ 'ellipseRibbon2' = "ellipseRibbon2",
1974
+ 'flowChartAlternateProcess' = "flowChartAlternateProcess",
1975
+ 'flowChartCollate' = "flowChartCollate",
1976
+ 'flowChartConnector' = "flowChartConnector",
1977
+ 'flowChartDecision' = "flowChartDecision",
1978
+ 'flowChartDelay' = "flowChartDelay",
1979
+ 'flowChartDisplay' = "flowChartDisplay",
1980
+ 'flowChartDocument' = "flowChartDocument",
1981
+ 'flowChartExtract' = "flowChartExtract",
1982
+ 'flowChartInputOutput' = "flowChartInputOutput",
1983
+ 'flowChartInternalStorage' = "flowChartInternalStorage",
1984
+ 'flowChartMagneticDisk' = "flowChartMagneticDisk",
1985
+ 'flowChartMagneticDrum' = "flowChartMagneticDrum",
1986
+ 'flowChartMagneticTape' = "flowChartMagneticTape",
1987
+ 'flowChartManualInput' = "flowChartManualInput",
1988
+ 'flowChartManualOperation' = "flowChartManualOperation",
1989
+ 'flowChartMerge' = "flowChartMerge",
1990
+ 'flowChartMultidocument' = "flowChartMultidocument",
1991
+ 'flowChartOfflineStorage' = "flowChartOfflineStorage",
1992
+ 'flowChartOffpageConnector' = "flowChartOffpageConnector",
1993
+ 'flowChartOnlineStorage' = "flowChartOnlineStorage",
1994
+ 'flowChartOr' = "flowChartOr",
1995
+ 'flowChartPredefinedProcess' = "flowChartPredefinedProcess",
1996
+ 'flowChartPreparation' = "flowChartPreparation",
1997
+ 'flowChartProcess' = "flowChartProcess",
1998
+ 'flowChartPunchedCard' = "flowChartPunchedCard",
1999
+ 'flowChartPunchedTape' = "flowChartPunchedTape",
2000
+ 'flowChartSort' = "flowChartSort",
2001
+ 'flowChartSummingJunction' = "flowChartSummingJunction",
2002
+ 'flowChartTerminator' = "flowChartTerminator",
2003
+ 'folderCorner' = "folderCorner",
2004
+ 'frame' = "frame",
2005
+ 'funnel' = "funnel",
2006
+ 'gear6' = "gear6",
2007
+ 'gear9' = "gear9",
2008
+ 'halfFrame' = "halfFrame",
2009
+ 'heart' = "heart",
2010
+ 'heptagon' = "heptagon",
2011
+ 'hexagon' = "hexagon",
2012
+ 'homePlate' = "homePlate",
2013
+ 'horizontalScroll' = "horizontalScroll",
2014
+ 'irregularSeal1' = "irregularSeal1",
2015
+ 'irregularSeal2' = "irregularSeal2",
2016
+ 'leftArrow' = "leftArrow",
2017
+ 'leftArrowCallout' = "leftArrowCallout",
2018
+ 'leftBrace' = "leftBrace",
2019
+ 'leftBracket' = "leftBracket",
2020
+ 'leftCircularArrow' = "leftCircularArrow",
2021
+ 'leftRightArrow' = "leftRightArrow",
2022
+ 'leftRightArrowCallout' = "leftRightArrowCallout",
2023
+ 'leftRightCircularArrow' = "leftRightCircularArrow",
2024
+ 'leftRightRibbon' = "leftRightRibbon",
2025
+ 'leftRightUpArrow' = "leftRightUpArrow",
2026
+ 'leftUpArrow' = "leftUpArrow",
2027
+ 'lightningBolt' = "lightningBolt",
2028
+ 'line' = "line",
2029
+ 'lineInv' = "lineInv",
2030
+ 'mathDivide' = "mathDivide",
2031
+ 'mathEqual' = "mathEqual",
2032
+ 'mathMinus' = "mathMinus",
2033
+ 'mathMultiply' = "mathMultiply",
2034
+ 'mathNotEqual' = "mathNotEqual",
2035
+ 'mathPlus' = "mathPlus",
2036
+ 'moon' = "moon",
2037
+ 'noSmoking' = "noSmoking",
2038
+ 'nonIsoscelesTrapezoid' = "nonIsoscelesTrapezoid",
2039
+ 'notchedRightArrow' = "notchedRightArrow",
2040
+ 'octagon' = "octagon",
2041
+ 'parallelogram' = "parallelogram",
2042
+ 'pentagon' = "pentagon",
2043
+ 'pie' = "pie",
2044
+ 'pieWedge' = "pieWedge",
2045
+ 'plaque' = "plaque",
2046
+ 'plaqueTabs' = "plaqueTabs",
2047
+ 'plus' = "plus",
2048
+ 'quadArrow' = "quadArrow",
2049
+ 'quadArrowCallout' = "quadArrowCallout",
2050
+ 'rect' = "rect",
2051
+ 'ribbon' = "ribbon",
2052
+ 'ribbon2' = "ribbon2",
2053
+ 'rightArrow' = "rightArrow",
2054
+ 'rightArrowCallout' = "rightArrowCallout",
2055
+ 'rightBrace' = "rightBrace",
2056
+ 'rightBracket' = "rightBracket",
2057
+ 'round1Rect' = "round1Rect",
2058
+ 'round2DiagRect' = "round2DiagRect",
2059
+ 'round2SameRect' = "round2SameRect",
2060
+ 'roundRect' = "roundRect",
2061
+ 'rtTriangle' = "rtTriangle",
2062
+ 'smileyFace' = "smileyFace",
2063
+ 'snip1Rect' = "snip1Rect",
2064
+ 'snip2DiagRect' = "snip2DiagRect",
2065
+ 'snip2SameRect' = "snip2SameRect",
2066
+ 'snipRoundRect' = "snipRoundRect",
2067
+ 'squareTabs' = "squareTabs",
2068
+ 'star10' = "star10",
2069
+ 'star12' = "star12",
2070
+ 'star16' = "star16",
2071
+ 'star24' = "star24",
2072
+ 'star32' = "star32",
2073
+ 'star4' = "star4",
2074
+ 'star5' = "star5",
2075
+ 'star6' = "star6",
2076
+ 'star7' = "star7",
2077
+ 'star8' = "star8",
2078
+ 'stripedRightArrow' = "stripedRightArrow",
2079
+ 'sun' = "sun",
2080
+ 'swooshArrow' = "swooshArrow",
2081
+ 'teardrop' = "teardrop",
2082
+ 'trapezoid' = "trapezoid",
2083
+ 'triangle' = "triangle",
2084
+ 'upArrow' = "upArrow",
2085
+ 'upArrowCallout' = "upArrowCallout",
2086
+ 'upDownArrow' = "upDownArrow",
2087
+ 'upDownArrowCallout' = "upDownArrowCallout",
2088
+ 'uturnArrow' = "uturnArrow",
2089
+ 'verticalScroll' = "verticalScroll",
2090
+ 'wave' = "wave",
2091
+ 'wedgeEllipseCallout' = "wedgeEllipseCallout",
2092
+ 'wedgeRectCallout' = "wedgeRectCallout",
2093
+ 'wedgeRoundRectCallout' = "wedgeRoundRectCallout"
2094
+ }
2095
+ /**
2096
+ * TODO: FUTURE: v4.0: rename to `ThemeColor`
2097
+ */
2098
+ declare enum SchemeColor {
2099
+ 'text1' = "tx1",
2100
+ 'text2' = "tx2",
2101
+ 'background1' = "bg1",
2102
+ 'background2' = "bg2",
2103
+ 'accent1' = "accent1",
2104
+ 'accent2' = "accent2",
2105
+ 'accent3' = "accent3",
2106
+ 'accent4' = "accent4",
2107
+ 'accent5' = "accent5",
2108
+ 'accent6' = "accent6"
2109
+ }
2110
+ declare enum AlignH {
2111
+ 'left' = "left",
2112
+ 'center' = "center",
2113
+ 'right' = "right",
2114
+ 'justify' = "justify"
2115
+ }
2116
+ declare enum AlignV {
2117
+ 'top' = "top",
2118
+ 'middle' = "middle",
2119
+ 'bottom' = "bottom"
2120
+ }
2121
+ declare enum SHAPE_TYPE {
2122
+ ACTION_BUTTON_BACK_OR_PREVIOUS = "actionButtonBackPrevious",
2123
+ ACTION_BUTTON_BEGINNING = "actionButtonBeginning",
2124
+ ACTION_BUTTON_CUSTOM = "actionButtonBlank",
2125
+ ACTION_BUTTON_DOCUMENT = "actionButtonDocument",
2126
+ ACTION_BUTTON_END = "actionButtonEnd",
2127
+ ACTION_BUTTON_FORWARD_OR_NEXT = "actionButtonForwardNext",
2128
+ ACTION_BUTTON_HELP = "actionButtonHelp",
2129
+ ACTION_BUTTON_HOME = "actionButtonHome",
2130
+ ACTION_BUTTON_INFORMATION = "actionButtonInformation",
2131
+ ACTION_BUTTON_MOVIE = "actionButtonMovie",
2132
+ ACTION_BUTTON_RETURN = "actionButtonReturn",
2133
+ ACTION_BUTTON_SOUND = "actionButtonSound",
2134
+ ARC = "arc",
2135
+ BALLOON = "wedgeRoundRectCallout",
2136
+ BENT_ARROW = "bentArrow",
2137
+ BENT_UP_ARROW = "bentUpArrow",
2138
+ BEVEL = "bevel",
2139
+ BLOCK_ARC = "blockArc",
2140
+ CAN = "can",
2141
+ CHART_PLUS = "chartPlus",
2142
+ CHART_STAR = "chartStar",
2143
+ CHART_X = "chartX",
2144
+ CHEVRON = "chevron",
2145
+ CHORD = "chord",
2146
+ CIRCULAR_ARROW = "circularArrow",
2147
+ CLOUD = "cloud",
2148
+ CLOUD_CALLOUT = "cloudCallout",
2149
+ CORNER = "corner",
2150
+ CORNER_TABS = "cornerTabs",
2151
+ CROSS = "plus",
2152
+ CUBE = "cube",
2153
+ CURVED_DOWN_ARROW = "curvedDownArrow",
2154
+ CURVED_DOWN_RIBBON = "ellipseRibbon",
2155
+ CURVED_LEFT_ARROW = "curvedLeftArrow",
2156
+ CURVED_RIGHT_ARROW = "curvedRightArrow",
2157
+ CURVED_UP_ARROW = "curvedUpArrow",
2158
+ CURVED_UP_RIBBON = "ellipseRibbon2",
2159
+ CUSTOM_GEOMETRY = "custGeom",
2160
+ DECAGON = "decagon",
2161
+ DIAGONAL_STRIPE = "diagStripe",
2162
+ DIAMOND = "diamond",
2163
+ DODECAGON = "dodecagon",
2164
+ DONUT = "donut",
2165
+ DOUBLE_BRACE = "bracePair",
2166
+ DOUBLE_BRACKET = "bracketPair",
2167
+ DOUBLE_WAVE = "doubleWave",
2168
+ DOWN_ARROW = "downArrow",
2169
+ DOWN_ARROW_CALLOUT = "downArrowCallout",
2170
+ DOWN_RIBBON = "ribbon",
2171
+ EXPLOSION1 = "irregularSeal1",
2172
+ EXPLOSION2 = "irregularSeal2",
2173
+ FLOWCHART_ALTERNATE_PROCESS = "flowChartAlternateProcess",
2174
+ FLOWCHART_CARD = "flowChartPunchedCard",
2175
+ FLOWCHART_COLLATE = "flowChartCollate",
2176
+ FLOWCHART_CONNECTOR = "flowChartConnector",
2177
+ FLOWCHART_DATA = "flowChartInputOutput",
2178
+ FLOWCHART_DECISION = "flowChartDecision",
2179
+ FLOWCHART_DELAY = "flowChartDelay",
2180
+ FLOWCHART_DIRECT_ACCESS_STORAGE = "flowChartMagneticDrum",
2181
+ FLOWCHART_DISPLAY = "flowChartDisplay",
2182
+ FLOWCHART_DOCUMENT = "flowChartDocument",
2183
+ FLOWCHART_EXTRACT = "flowChartExtract",
2184
+ FLOWCHART_INTERNAL_STORAGE = "flowChartInternalStorage",
2185
+ FLOWCHART_MAGNETIC_DISK = "flowChartMagneticDisk",
2186
+ FLOWCHART_MANUAL_INPUT = "flowChartManualInput",
2187
+ FLOWCHART_MANUAL_OPERATION = "flowChartManualOperation",
2188
+ FLOWCHART_MERGE = "flowChartMerge",
2189
+ FLOWCHART_MULTIDOCUMENT = "flowChartMultidocument",
2190
+ FLOWCHART_OFFLINE_STORAGE = "flowChartOfflineStorage",
2191
+ FLOWCHART_OFFPAGE_CONNECTOR = "flowChartOffpageConnector",
2192
+ FLOWCHART_OR = "flowChartOr",
2193
+ FLOWCHART_PREDEFINED_PROCESS = "flowChartPredefinedProcess",
2194
+ FLOWCHART_PREPARATION = "flowChartPreparation",
2195
+ FLOWCHART_PROCESS = "flowChartProcess",
2196
+ FLOWCHART_PUNCHED_TAPE = "flowChartPunchedTape",
2197
+ FLOWCHART_SEQUENTIAL_ACCESS_STORAGE = "flowChartMagneticTape",
2198
+ FLOWCHART_SORT = "flowChartSort",
2199
+ FLOWCHART_STORED_DATA = "flowChartOnlineStorage",
2200
+ FLOWCHART_SUMMING_JUNCTION = "flowChartSummingJunction",
2201
+ FLOWCHART_TERMINATOR = "flowChartTerminator",
2202
+ FOLDED_CORNER = "folderCorner",
2203
+ FRAME = "frame",
2204
+ FUNNEL = "funnel",
2205
+ GEAR_6 = "gear6",
2206
+ GEAR_9 = "gear9",
2207
+ HALF_FRAME = "halfFrame",
2208
+ HEART = "heart",
2209
+ HEPTAGON = "heptagon",
2210
+ HEXAGON = "hexagon",
2211
+ HORIZONTAL_SCROLL = "horizontalScroll",
2212
+ ISOSCELES_TRIANGLE = "triangle",
2213
+ LEFT_ARROW = "leftArrow",
2214
+ LEFT_ARROW_CALLOUT = "leftArrowCallout",
2215
+ LEFT_BRACE = "leftBrace",
2216
+ LEFT_BRACKET = "leftBracket",
2217
+ LEFT_CIRCULAR_ARROW = "leftCircularArrow",
2218
+ LEFT_RIGHT_ARROW = "leftRightArrow",
2219
+ LEFT_RIGHT_ARROW_CALLOUT = "leftRightArrowCallout",
2220
+ LEFT_RIGHT_CIRCULAR_ARROW = "leftRightCircularArrow",
2221
+ LEFT_RIGHT_RIBBON = "leftRightRibbon",
2222
+ LEFT_RIGHT_UP_ARROW = "leftRightUpArrow",
2223
+ LEFT_UP_ARROW = "leftUpArrow",
2224
+ LIGHTNING_BOLT = "lightningBolt",
2225
+ LINE_CALLOUT_1 = "borderCallout1",
2226
+ LINE_CALLOUT_1_ACCENT_BAR = "accentCallout1",
2227
+ LINE_CALLOUT_1_BORDER_AND_ACCENT_BAR = "accentBorderCallout1",
2228
+ LINE_CALLOUT_1_NO_BORDER = "callout1",
2229
+ LINE_CALLOUT_2 = "borderCallout2",
2230
+ LINE_CALLOUT_2_ACCENT_BAR = "accentCallout2",
2231
+ LINE_CALLOUT_2_BORDER_AND_ACCENT_BAR = "accentBorderCallout2",
2232
+ LINE_CALLOUT_2_NO_BORDER = "callout2",
2233
+ LINE_CALLOUT_3 = "borderCallout3",
2234
+ LINE_CALLOUT_3_ACCENT_BAR = "accentCallout3",
2235
+ LINE_CALLOUT_3_BORDER_AND_ACCENT_BAR = "accentBorderCallout3",
2236
+ LINE_CALLOUT_3_NO_BORDER = "callout3",
2237
+ LINE_CALLOUT_4 = "borderCallout4",
2238
+ LINE_CALLOUT_4_ACCENT_BAR = "accentCallout3=4",
2239
+ LINE_CALLOUT_4_BORDER_AND_ACCENT_BAR = "accentBorderCallout4",
2240
+ LINE_CALLOUT_4_NO_BORDER = "callout4",
2241
+ LINE = "line",
2242
+ LINE_INVERSE = "lineInv",
2243
+ MATH_DIVIDE = "mathDivide",
2244
+ MATH_EQUAL = "mathEqual",
2245
+ MATH_MINUS = "mathMinus",
2246
+ MATH_MULTIPLY = "mathMultiply",
2247
+ MATH_NOT_EQUAL = "mathNotEqual",
2248
+ MATH_PLUS = "mathPlus",
2249
+ MOON = "moon",
2250
+ NON_ISOSCELES_TRAPEZOID = "nonIsoscelesTrapezoid",
2251
+ NOTCHED_RIGHT_ARROW = "notchedRightArrow",
2252
+ NO_SYMBOL = "noSmoking",
2253
+ OCTAGON = "octagon",
2254
+ OVAL = "ellipse",
2255
+ OVAL_CALLOUT = "wedgeEllipseCallout",
2256
+ PARALLELOGRAM = "parallelogram",
2257
+ PENTAGON = "homePlate",
2258
+ PIE = "pie",
2259
+ PIE_WEDGE = "pieWedge",
2260
+ PLAQUE = "plaque",
2261
+ PLAQUE_TABS = "plaqueTabs",
2262
+ QUAD_ARROW = "quadArrow",
2263
+ QUAD_ARROW_CALLOUT = "quadArrowCallout",
2264
+ RECTANGLE = "rect",
2265
+ RECTANGULAR_CALLOUT = "wedgeRectCallout",
2266
+ REGULAR_PENTAGON = "pentagon",
2267
+ RIGHT_ARROW = "rightArrow",
2268
+ RIGHT_ARROW_CALLOUT = "rightArrowCallout",
2269
+ RIGHT_BRACE = "rightBrace",
2270
+ RIGHT_BRACKET = "rightBracket",
2271
+ RIGHT_TRIANGLE = "rtTriangle",
2272
+ ROUNDED_RECTANGLE = "roundRect",
2273
+ ROUNDED_RECTANGULAR_CALLOUT = "wedgeRoundRectCallout",
2274
+ ROUND_1_RECTANGLE = "round1Rect",
2275
+ ROUND_2_DIAG_RECTANGLE = "round2DiagRect",
2276
+ ROUND_2_SAME_RECTANGLE = "round2SameRect",
2277
+ SMILEY_FACE = "smileyFace",
2278
+ SNIP_1_RECTANGLE = "snip1Rect",
2279
+ SNIP_2_DIAG_RECTANGLE = "snip2DiagRect",
2280
+ SNIP_2_SAME_RECTANGLE = "snip2SameRect",
2281
+ SNIP_ROUND_RECTANGLE = "snipRoundRect",
2282
+ SQUARE_TABS = "squareTabs",
2283
+ STAR_10_POINT = "star10",
2284
+ STAR_12_POINT = "star12",
2285
+ STAR_16_POINT = "star16",
2286
+ STAR_24_POINT = "star24",
2287
+ STAR_32_POINT = "star32",
2288
+ STAR_4_POINT = "star4",
2289
+ STAR_5_POINT = "star5",
2290
+ STAR_6_POINT = "star6",
2291
+ STAR_7_POINT = "star7",
2292
+ STAR_8_POINT = "star8",
2293
+ STRIPED_RIGHT_ARROW = "stripedRightArrow",
2294
+ SUN = "sun",
2295
+ SWOOSH_ARROW = "swooshArrow",
2296
+ TEAR = "teardrop",
2297
+ TRAPEZOID = "trapezoid",
2298
+ UP_ARROW = "upArrow",
2299
+ UP_ARROW_CALLOUT = "upArrowCallout",
2300
+ UP_DOWN_ARROW = "upDownArrow",
2301
+ UP_DOWN_ARROW_CALLOUT = "upDownArrowCallout",
2302
+ UP_RIBBON = "ribbon2",
2303
+ U_TURN_ARROW = "uturnArrow",
2304
+ VERTICAL_SCROLL = "verticalScroll",
2305
+ WAVE = "wave"
2306
+ }
2307
+ type SHAPE_NAME = 'accentBorderCallout1' | 'accentBorderCallout2' | 'accentBorderCallout3' | 'accentCallout1' | 'accentCallout2' | 'accentCallout3' | 'actionButtonBackPrevious' | 'actionButtonBeginning' | 'actionButtonBlank' | 'actionButtonDocument' | 'actionButtonEnd' | 'actionButtonForwardNext' | 'actionButtonHelp' | 'actionButtonHome' | 'actionButtonInformation' | 'actionButtonMovie' | 'actionButtonReturn' | 'actionButtonSound' | 'arc' | 'bentArrow' | 'bentUpArrow' | 'bevel' | 'blockArc' | 'borderCallout1' | 'borderCallout2' | 'borderCallout3' | 'bracePair' | 'bracketPair' | 'callout1' | 'callout2' | 'callout3' | 'can' | 'chartPlus' | 'chartStar' | 'chartX' | 'chevron' | 'chord' | 'circularArrow' | 'cloud' | 'cloudCallout' | 'corner' | 'cornerTabs' | 'cube' | 'curvedDownArrow' | 'curvedLeftArrow' | 'curvedRightArrow' | 'curvedUpArrow' | 'custGeom' | 'decagon' | 'diagStripe' | 'diamond' | 'dodecagon' | 'donut' | 'doubleWave' | 'downArrow' | 'downArrowCallout' | 'ellipse' | 'ellipseRibbon' | 'ellipseRibbon2' | 'flowChartAlternateProcess' | 'flowChartCollate' | 'flowChartConnector' | 'flowChartDecision' | 'flowChartDelay' | 'flowChartDisplay' | 'flowChartDocument' | 'flowChartExtract' | 'flowChartInputOutput' | 'flowChartInternalStorage' | 'flowChartMagneticDisk' | 'flowChartMagneticDrum' | 'flowChartMagneticTape' | 'flowChartManualInput' | 'flowChartManualOperation' | 'flowChartMerge' | 'flowChartMultidocument' | 'flowChartOfflineStorage' | 'flowChartOffpageConnector' | 'flowChartOnlineStorage' | 'flowChartOr' | 'flowChartPredefinedProcess' | 'flowChartPreparation' | 'flowChartProcess' | 'flowChartPunchedCard' | 'flowChartPunchedTape' | 'flowChartSort' | 'flowChartSummingJunction' | 'flowChartTerminator' | 'folderCorner' | 'frame' | 'funnel' | 'gear6' | 'gear9' | 'halfFrame' | 'heart' | 'heptagon' | 'hexagon' | 'homePlate' | 'horizontalScroll' | 'irregularSeal1' | 'irregularSeal2' | 'leftArrow' | 'leftArrowCallout' | 'leftBrace' | 'leftBracket' | 'leftCircularArrow' | 'leftRightArrow' | 'leftRightArrowCallout' | 'leftRightCircularArrow' | 'leftRightRibbon' | 'leftRightUpArrow' | 'leftUpArrow' | 'lightningBolt' | 'line' | 'lineInv' | 'mathDivide' | 'mathEqual' | 'mathMinus' | 'mathMultiply' | 'mathNotEqual' | 'mathPlus' | 'moon' | 'noSmoking' | 'nonIsoscelesTrapezoid' | 'notchedRightArrow' | 'octagon' | 'parallelogram' | 'pentagon' | 'pie' | 'pieWedge' | 'plaque' | 'plaqueTabs' | 'plus' | 'quadArrow' | 'quadArrowCallout' | 'rect' | 'ribbon' | 'ribbon2' | 'rightArrow' | 'rightArrowCallout' | 'rightBrace' | 'rightBracket' | 'round1Rect' | 'round2DiagRect' | 'round2SameRect' | 'roundRect' | 'rtTriangle' | 'smileyFace' | 'snip1Rect' | 'snip2DiagRect' | 'snip2SameRect' | 'snipRoundRect' | 'squareTabs' | 'star10' | 'star12' | 'star16' | 'star24' | 'star32' | 'star4' | 'star5' | 'star6' | 'star7' | 'star8' | 'stripedRightArrow' | 'sun' | 'swooshArrow' | 'teardrop' | 'trapezoid' | 'triangle' | 'upArrow' | 'upArrowCallout' | 'upDownArrow' | 'upDownArrowCallout' | 'uturnArrow' | 'verticalScroll' | 'wave' | 'wedgeEllipseCallout' | 'wedgeRectCallout' | 'wedgeRoundRectCallout';
2308
+ declare enum CHART_TYPE {
2309
+ 'AREA' = "area",
2310
+ 'BAR' = "bar",
2311
+ 'BAR3D' = "bar3D",
2312
+ 'BUBBLE' = "bubble",
2313
+ 'BUBBLE3D' = "bubble3D",
2314
+ 'DOUGHNUT' = "doughnut",
2315
+ 'LINE' = "line",
2316
+ 'PIE' = "pie",
2317
+ 'RADAR' = "radar",
2318
+ 'SCATTER' = "scatter"
2319
+ }
2320
+ declare enum SCHEME_COLOR_NAMES {
2321
+ 'TEXT1' = "tx1",
2322
+ 'TEXT2' = "tx2",
2323
+ 'BACKGROUND1' = "bg1",
2324
+ 'BACKGROUND2' = "bg2",
2325
+ 'ACCENT1' = "accent1",
2326
+ 'ACCENT2' = "accent2",
2327
+ 'ACCENT3' = "accent3",
2328
+ 'ACCENT4' = "accent4",
2329
+ 'ACCENT5' = "accent5",
2330
+ 'ACCENT6' = "accent6"
2331
+ }
2332
+ declare enum MASTER_OBJECTS {
2333
+ 'chart' = "chart",
2334
+ 'image' = "image",
2335
+ 'line' = "line",
2336
+ 'rect' = "rect",
2337
+ 'text' = "text",
2338
+ 'placeholder' = "placeholder"
2339
+ }
2340
+ declare enum SLIDE_OBJECT_TYPES {
2341
+ 'chart' = "chart",
2342
+ 'hyperlink' = "hyperlink",
2343
+ 'image' = "image",
2344
+ 'media' = "media",
2345
+ 'online' = "online",
2346
+ 'placeholder' = "placeholder",
2347
+ 'table' = "table",
2348
+ 'tablecell' = "tablecell",
2349
+ 'text' = "text",
2350
+ 'notes' = "notes"
2351
+ }
2352
+ declare enum PLACEHOLDER_TYPES {
2353
+ 'title' = "title",
2354
+ 'body' = "body",
2355
+ 'image' = "pic",
2356
+ 'chart' = "chart",
2357
+ 'table' = "tbl",
2358
+ 'media' = "media"
2359
+ }
2360
+ type PLACEHOLDER_TYPE = 'title' | 'body' | 'pic' | 'chart' | 'tbl' | 'media';
2361
+ /**
2362
+ * NOTE: 20170304: BULLET_TYPES: Only default is used so far. I'd like to combine the two pieces of code that use these before implementing these as options
2363
+ * Since we close <p> within the text object bullets, its slightly more difficult than combining into a func and calling to get the paraProp
2364
+ * and i'm not sure if anyone will even use these... so, skipping for now.
2365
+ */
2366
+ declare enum BULLET_TYPES {
2367
+ 'DEFAULT' = "&#x2022;",
2368
+ 'CHECK' = "&#x2713;",
2369
+ 'STAR' = "&#x2605;",
2370
+ 'TRIANGLE' = "&#x25B6;"
2371
+ }
2372
+ declare const IMG_BROKEN = "data:image/png;base64,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";
2373
+ declare const IMG_PLAYBTN = "data:image/png;base64,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AAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKREkRUAAACwrUpLSwuGDRvWfMCAAS26du3avKysrLiioqKkZcuWzZs1a1bcvHnz0tLS0rJsNtusuLi4ebNmzUoLCgo+8/eijY2N9Zs3b66pra2tqqur21xTU1NdVVVVs2nTptqNGzdWbdiwoeYvf/nL5hUrVlQtWLBgw6xZs6pqamoaJQYAAEDaKYABAACIiIghQ4aUHnTQQW379u3bql27dq3at2/fpkWLFq2bN29eWVpa2qpZs2bNCwsLm2ez2fLCwsLyoqKi8sLCwtKknK+hoaG6vr6+qqGh4S91dXV/aWhoqNq8eXNVTU3NuqqqqvUbNmxYu2rVqjWrV69e99Zbb6177rnnPpgzZ06NTwYAAABJogAGAADIA8OGDWt+xBFHdBwwYECnLl26dGjdunXHFi1adCgtLe1YUlLSvlmzZq0KCgqK07yDwsLCssLCwrKIaPdp/zuNjY21mzdvXrdp06ZVNTU172/YsGHl2rVr31+2bNnKBQsWrHjyySffnzVrVpVPGAAAAE1Fpuexsd9HfaF+ZcSal0ptCAAAIAE6deqUPf744zvtueeeXbp3796lbdu2XSorKzuXlpZ2KS0t7VBYWFhhSztGQ0PDxpqampU1NTXL169fv+yDDz5Y9s477yybPXv2sj/96U8rVqxYUWdLAAAAbE9t9q6Jog4f/TUFMAAAQEJks9nMt7/97Y4jRozo1bdv397t2rXrXl5e3rWsrKxzcXFx+4gosKUmp7G2tnZVTU3Nso0bNy5btWrV0tdff/2tJ598cvG999672noAAADYFgpgAACAhPne977X6a9Fb/v27Xu1bNmyV1lZWa8kvXOXLauvr9/wl7/8ZdG6desWL1u2bNHChQsX/fGPf1w8derUjbYDAADAliiAAQAAmqhsNps59dRTuxx66KH9+/Tp87n27dv3Ly8v719UVOSRzXlq06ZNKzZu3Pj6+++//8abb775xqOPPvrG3XffvcpmAAAA+CsFMAAAQBNx6qmndvniF784qHfv3v3btWv3uYqKis8VFhaW2wxbUl9fv37Dhg1vfPDBB68vXrz4jccee2z+jTfeuNxmAAAA8pMCGAAAYBc45phjWn/rW9/aq3///kPatGnTv6Kiop9HOLO9NDQ0VG/cuPGtNWvWLFy4cOGcO+6445WHHnporc0AAACknwIYAABgJzjjjDO6f+lLX9qrV69eg1u3bj2orKysR0RkbIadJFddXb103bp18xcvXjz30UcffeXqq69+x1oAAADSRwEMAACwnZWWlhb86le/2u3QQw8d1r17931btmw5qLCwsMxmaEoaGhqqP/zww/nvvPPOzGeeeWbW2LFj36ipqWm0GQAAgGRTAAMAAGwHP/7xj7t+9atf3bdXr15D27Ztu1c2m21jKyRJXV3dmg8++OCVRYsWvfznP/95xh/+8IdltgIAAJA8CmAAAIBtcOKJJ7Y75ZRTDujXr9+w1q1bD81ms61shTSpq6tbt3bt2pfffPPNWbfccsvUe++9d7WtAAAANH0KYAAAgE+hoqKi4IILLhg0YsSI/bp27bpfy5YtB2YymUKbIR/kcrmGDz/8cP6777474/nnn59x4YUXvrZx40aPiwYAAGiCFMAAAAAf4/jjj2/7/e9//8D+/fsf2Lp1630KCgpKbAUiGhsbN61fv37eW2+9NeWGG2545u67715lKwAAAE2DAhgAAOB/ZLPZzAUXXPC5I4888sDu3bsfWFFRsVtEFNgMbFl1dfWSd999d8qsWbNmnnvuuS+vW7euwVYAAAB2DQUwAACQ10pLSwsuvfTSQYcccsjBXbt2HVFWVtbDVmDb1dbWrnr//fdfmDp16uRf/vKXL65evbreVgAAAHYeBTAAAJB3Bg0aVHrBBRd8fs899zywQ4cOBxQVFbWwFdj+Ghsba9euXTtrzpw5T59//vmTX3755WpbAQAA2LEUwAAAQF4YNmxY8/POO+/gIUOGHOZ9vrDz/W0ZfNFFFz07a9asKlsBAADY/hTAAABAarVq1arwyiuv3HfEiBEjO3TocFBhYWGZrcCu19DQUP3+++8/O2XKlIk/+clPZm7cuLHRVgAAALYPBTAAAJAqrVq1Kvztb3+7/3777Xd4x44dRxQWFpbbCjRdDQ0NG99///0pM2bMeOqHP/zhC8pgAACAz0YBDAAApMJZZ53V45vf/OaRvXr1GllaWtrVRiB5ampq3l28ePHEO++8c9LVV1/9jo0AAABsPQUwAACQWMOHDy+/6KKLvjB48OCjW7RoMdBGID0+/PDDV+fNmzfhvPPOe3L69Ol/sREAAIBPRwEMAAAkSqtWrQpvuOGGQ/bbb79/atOmzX6ZTCZrK5BeuVyubs2aNTNmzJjx2JgxYyavW7euwVYAAAA+ngIYAABIhB//+Mddv/e9732lZ8+e/1RcXNzWRiD/1NbWfvD2228/dssttzz029/+9l0bAQAA+L8UwAAAQJNVUVFRcO21137+4IMPPrZ169b7ZTKZAlsBIqJxzZo1M59//vnxp5122hR3BQMAAPx/CmAAAKDJOeWUUzqefvrpx/bu3ftL2Wy2jY0AH6e+vn7j0qVLH/vd7373x+uvv36ZjQAAAPlOAQwAADQJ2Ww2c+uttx5wyCGHnNC6deu9I8LdvsDWaFy7du1L06ZN+/OPfvSjZ1evXl1vJQAAQD5SAAMAALtU//79S6655pp/2nPPPY8tLy/vayPAZ1VTU7NswYIF488999wHp06dutFGAACAfKIABgAAdomf//znPU855ZQTu3btemRhYWGZjQDbW2NjY92KFSuevOWWW+689NJLF9kIAACQDxTAAADATuMxz8Cusn79+rlPP/30f5188slT6+rqcjYCAACklQIYAADY4fr27Vv8hz/84a+Pee5nI8CuUlNT8+68efPu/8EPfvDgwoULN9kIAACQNgpgAABghxkyZEjpNddc89XBgwefWFxc3MFGgKaitrZ21dy5c+/5yU9+8uc5c+bU2AgAAJAWWyqAPYoNAADYJqNHj+4wb968n06ZMuXRYcOGnaH8BZqa4uLi9sOGDTtjypQpj86bN++nJ510UntbAQAA0s4dwAAAwFY599xze33/+9//dufOnY/IZDJZGwGSIpfL1S1fvvzJG2644fbLLrvsbRsBAACSyiOgAQCAz+y8887r+53vfOfbHTt2PDyTyRTaCJBUuVyuYcWKFU/cdNNN//XrX/96sY0AAABJowAGAAC22WWXXTboG9/4xg9at249zDaAtFm7du2su++++9pzzjnnNdsAAACSQgEMAABsNcUvkE8UwQAAQJIogAEAgE9N8Qvks7Vr18665557rvv5z38+3zYAAICmaksFcGHlwOj6UV9orIqoWZG1PQAAyBO/+MUvet9xxx3nHHrooT8pLS3tYiNAPiotLe2y7777HvP973+/X1lZ2ZIpU6assxUAAKCpKetcHwXlH/01BTAAAOS5M844o/u99957zpe//OWflZeX94qIjK0AeS5TXl7e8+CDDx71/e9/v3dEvDVjxowPrQUAAGgqFMAAAMD/ceKJJ7a77777fjJq1Kh/KS8v7xOKX4B/lCkvL+99+OGHj/rWt77VfvXq1Qvnz59fbS0AAMCutqUC2DuAAQAgzwwdOrTs+uuvP6l///4nFRYWltkI20NjY2Ns2rQpqquro6amJurr62PTpk2xefPmqK+vj+rq6qivr4/NmzfHpk2boqGhYZv/fxUWFkZJSUk0a9YsioqKoqysLIqKiqJZs2ZRUlISRUVFUVpa+r9/FRQUCIjtoqGhoeq11167a8yYMffMmTOnxkYAAIBdZUvvAFYAAwBAnujUqVP2nnvuGbXXXnudnM1mK22Ej9PQ0BAbN26MDRs2/J+/Nm7cGBs3boyamprYtGlTbNq0KWpqaqK2trbJnqe4uDhKSkqitLT0f/9eUVERFRUV0aJFi//zV0VFRRQWFvog8LHq6urWvvjii7eceOKJf169enW9jQAAADubAhgAAPLcXXfdddAXv/jF00tLS7vZRn7L5XKxYcOGWLt2baxbty7Wrl37d3+tW7cuNmzYkPd7atGiRbRu3TpatWoVrVu3jjZt2vzvf27dunW0aNHCh4morq5e+sgjj1zzne98Z6ptAAAAO5MCGAAA8tTVV189+MQTTzyzoqJioG3kj8bGxli5cmUsX748Pvjgg1i9evX//n3t2rXR2NhoSZ9RYWFhtGrVKtq1axdt27b937937tw5OnTo4LHTeWbDhg3z77333qvOPPPMebYBAADsDApgAADIM1/72tfaXHrppad27979qIjQRKVUQ0NDrFq1KlasWBHvv//+//595cqVTfqRzGlXXFwcHTp0iI4dO0bnzp2jY8eO0alTp2jXrp1HS6dYLpdrfOeddx76+c9/fv2ECRPW2QgAALAjKYABACBP9OrVq9ldd931jT322OM7hYWFZTaSHh9++GG88847sXTp0njvvfdixYoVsXr16mhoaLCchCgsLIz27dtHp06dolu3btG9e/fo3r27x0mnTENDQ9W8efNu++Y3v/nHJUuWbLYRAABgR1AAAwBAHrjrrrtG/NM//dOZJSUlXWwj2davXx9Lly6Nd955539L3w8//NBiUqqysvJ/y+C//tWqVSuLSbiamppljz322G9Gjx49xTYAAIDtTQEMAAAp9qtf/arPD3/4w5+1atVqL9tIno0bN8aSJUvirbfeikWLFsV7770XmzZtspg8V1JSEl27do0+ffpE3759o3fv3lFeXm4xCbRu3bqXr7322ivGjh27yDYAAIDtRQEMAAApNGjQoNI77rjju7vttttJBQUFWRtJhtWrV8ebb74ZixcvjiVLlsTy5cujsbHRYtiigoKC6Ny5c/Tu3Tt69+4d/fr1i7Zt21pMQjQ2Nta98cYbd33rW9+6ff78+TU2AgAAfFYKYAAASJHS0tKCBx988Jj99tvvn7PZbBsbaboaGhri7bffjrfeeisWLFgQS5YscXcv201FRUX06tUr+vbtG3379o2ePXtGYWGhxTRhdXV1a2bMmHHjV77ylYdqamr85gcAALDNFMAAAJASp59+erdf/vKX51ZWVu5jG03T6tWr47XXXouFCxfGm2++GRs3brQUdooWLVpE3759Y8CAATFw4EB3CDdh69evf/E//uM//vPqq69+xzYAAIBtoQAGAICEGzRoUOm99977w969ex+byWTc4teErF+/PubNmxcLFiyIN954Q+FLk9GiRYvo169fDBgwIPbYY4+orKy0lCYkl8s1LF68eNyJJ554rcdCAwAAW0sBDAAACXbNNdcMOemkk35RVlbWyzZ2vVwuF++++27MnTs3XnvttViyZIl3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B7lcrm7y5Mm//vKXv/yIbQAAwK63pXcAK4ABAMg7paWlBTNnzjyzT58+x9vG39uwYUOMGzcuZsyY4VHPQF7KZDKx3377xde//vWoqKiwkH+waNGiP+27775X1dTUeCwEAADsQgpgAAD4H926dctOnjz5V506dRppG/9fLpeLqVOnxp///OfYuHGjhQB5r6KiIkaNGhX777+/x0L/g+XLlz9+6KGHXvLuu+/W2QYAAOwaWyqAvQMYAIC8MXz48PInnnjiynbt2o2wjf/vnXfeiWuvvTaee+652Lx5s4UARMTmzZtjzpw58dprr0XPnj2jRYsWlvI/Kioq+n7rW98aMnXq1Ofee+89f3AAAMAusKV3ACuAAQDIC9/+9rc73n777X9o0aLFANv4b1VVVXHXXXfFvffeG+vXr7cQgI+wbt26eP7552P9+vWx2267RVFRkaVERElJSefjjjvuoA8++GDKK6+88hcbAQCAnUsBDABAXjv//PP7XXzxxX8oKSnpbBv/bfr06XHttdfGokWLLAPgU3jnnXdi2rRp0bp16+jc2R8nERHZbLbyC1/4whElJSUvTp48eY2NAADAzqMABgAgb/3ud7/b60c/+tFVRUVFrWwjYs2aNXHzzTfHpEmTora21kIAtkJtbW289NJL8c4770Tfvn2jtLQ073dSWFhYNnz48C/26dNn4UMPPbTMpwQAAHYOBTAAAHnp1ltv3f+b3/zmfxYWFjbP913kcrl4/vnn4/rrr4/ly5f7cAB8BitXroxp06ZFRUVFdOvWLTKZTF7vo6CgIDto0KBDBw0atOiBBx54xycEAAB2vC0VwJmex8Z+H/WF+pURa17ym6wAACTTww8//KXDDjvsXzKZTN6/rPGDDz6I22+/Pd544w0fDIDtbMCAAfGtb30r2rRpk/e7yOVyjVOmTPn1yJEjH/LJAACAHavN3jVR1OGjv6YABgAgdV555ZXTPve5z30r3/fQ0NAQjz32WDz++ONRV1fngwGwg2Sz2Tj66KPjC1/4QhQUFOT9Pl5//fU79tprr9/7ZAAAwI6jAAYAIC9ks9nMyy+/fFafPn2Oz/ddvPvuu3HbbbfFe++954MBsJN069YtvvOd70S3bt3yfhdLliy5f5999rmypqam0ScDAAC2PwUwAACpV1paWjBr1qyzevfufVw+7yGXy8WTTz4ZDz74oLt+AXaBbDYbxxxzTBxxxBF5fzfw0qVLHxg6dOjlSmAAANj+FMAAAKRar169mk2ePHlsu3btDsrnPaxcuTJuueWWePvtt30oAHaxnj17ximnnBIdOnTI6z2sXr16yiGHHPIvS5Ys2exTAQAA28+WCuDCyoHR9aO+0FgVUbMia3sAADRpQ4cOLXvqqacub9Omzf75uoNcLhfPPPNMXH/99bF27VofCoAmYP369TFlypQoKSmJnj17RiaTycs9NG/evPtJJ500ZPLkyc+sWLHCoykAAGA7KetcHwXlH/01BTAAAIk1ZMiQ0kceeeSKVq1a7Z2vO6iuro7bb789nnjiiWhs9IRNgKaksbEx5s+fH++//34MGDAgstn8/DlLaWlpp6997WuDn3rqqadXrlxZ75MBAACfnQIYAIDUOfTQQ1s8+OCDv2/ZsuUe+bqDOXPmxNVXX+2RzwBN3PLly+OFF16Ijh075u0joUtLSzudcMIJ+7/00ktPv/3227U+FQAA8NkogAEASJVhw4Y1v++++37TsmXLQfl4/vr6+hg/fnz88Y9/jNpaP0MHSILNmzfHiy++GJs3b47ddtstCgoK8m4HxcXFbY866qg9n3vuuaeXL1/ucdAAAPAZKIABAEiNI488snLcuHG/b9GixcB8PP97770XV111VcyZM8eHASCBFi1aFC+//HL069cvWrRokXfnLykp6XDcccftP2fOnGcWLVq0yScCAAC2jQIYAIBUOPLIIyvvvPPO35aXl++Wj+d/+umn48Ybb4wPP/zQhwEgwf7yl7/ECy+8ECUlJdGrV6+8O3+zZs3aHHXUUfspgQEAYNspgAEASLxjjz227W233faH5s2b98m3s1dVVcXNN98cTz31VDQ2NvowAKRAY2NjzJ8/P5YtWxYDBgyIZs2a5dX5mzVr1uaYY4458M0333xm4cKFNT4RAACwdRTAAAAk2qGHHtritttuuzofy9+33347rrnmmli8eLEPAkAKvf/++/HKK69Enz59orKyMq/Ons1mK4888sh9Zs6c+dTSpUs3+zQAAMCnpwAGACCxjjjiiJb33nvvteXl5f3y6dy5XC4mTZoUN998c1RVVfkgAKRYVVVVTJ06NbLZbPTp0ycymUzenL24uLjtV7/61c+/8sorTy1evLjWpwEAAD4dBTAAAIl06KGHtrj33nt/l2/lb3V1ddx0000xefLkyOVyPggAeSCXy8WCBQvi3Xffjd133z2y2fz5mUyzZs1aH3300fvNmDHjSXcCAwDAp6MABgAgcYYOHVo2fvz4qysqKgbk07mXLVsWV111lUc+A+SplStXxiuvvBKf+9znoqKiIm/O3axZszZHH3300GeeeebJFStW1PkkAADAlimAAQBIlCFDhpQ++uij17Rs2XL3fDr31KlT49prr42NGzf6EADksaqqqpg+fXq0bds2unTpkjfnLikpaT9q1KihTz755JMrV66s90kAAICPt6UCuMB6AABoSjp16pSdMGHCv1dWVu6RL2dubGyMcePGxR133BF1dW56AiCitrY2br755hg/fnw0NjbmzbkrKyv3mDBhwr9369bNXQkAALCNFMAAADQZrVq1Kpw+ffolbdq02T9fzlxdXR2/+93vYtKkSd73C8DfyeVy8fjjj8fvf//7qK6uzptzt2nTZv8pU6Zc0qpVq0KfAgAA2HoKYAAAmoSKioqC2bNnX9KuXbuD8uXMS5cujYsuuijmz5/vAwDAx3r11VfjoosuiqVLl+bNmdu1a3fQ7Nmz/72iosLPrgAAYCu5iAYAoEmYOXPmz9q1a3dIvpz35ZdfjiuuuCLWrVsnfAA+0bp16+KKK66Il19+OW/O3K5du4Nnzpz5M+kDAMDWUQADALDLvfjii2N69OgxKh/Omsvl4oEHHogbbrghamtrhQ/Ap1ZbWxs33HBDPPDAA3nz2oAePXqMevHFF8dIHwAAPj0FMAAAu9SkSZO+NnDgwFPy4ax1dXVx8803x8SJE73vF4BtksvlYuLEiXHLLbdEXV1dXpx54MCBJ0+aNOlr0gcAgE9HAQwAwC7z6KOPHnXggQeekw9nXbduXfz617+OWbNmCR6Az2zmzJnx61//Ol9eJZA58MADz3n00UePkjwAAHyywsqB0fWjvtBYFVGzImtDAADsEDfeeOO+Rx999EWZTKYw7Wddvnx5XHXVVbFy5UrBA7DdbNiwIWbPnh0DBw6MioqKtB8307179/179uz56sMPP7xc+gAA5LuyzvVRUP7RX1MAAwCw011xxRV7fPe7372qoKCgWdrPOmfOnPjtb38bGzduFDwA2111dXVMmzYtOnfuHB07dkz1WTOZTOHuu+9+eJs2bV6aNGnSKukDAJDPFMAAADQZZ5xxRvef/exnvy0sLCxP+1knTJgQd999d9TX1wsegB2moaEhXnrppchms9G3b99UnzWTyRTttddeB/3lL395dubMmRukDwBAvlIAAwDQJBx00EEVf/jDH64pLi7ulOZz5nK5eOCBB+Kxxx4TOgA77c+eBQsWRF1dXfTv3z8ymUxqz1pQUFBywAEHDJs+ffqkpUuXbpY+AAD5aEsFcIH1AACwMwwaNKj0vvvuu7qsrKxXms9ZV1cX1113XUyaNEnoAOx0EydOjOuvvz7q6upSfc6ysrJef/rTn67u379/idQBAODvKYABANjhKioqCh577LGLKyoqBqb5nNXV1XHNNdfE7NmzhQ7ALvPKK6/ElVdeGVVVVak+Z4sWLQZOnDhxbEVFhZ9vAQDA33CBDADADjdz5syftW3b9sA0n3HdunVx2WWXxRtvvCFwAHa5xYsXx2WXXRZr165N9TnbtWt34MyZM38mcQAA+P8UwAAA7FBPPvnkqB49eoxK8xlXrVoVV1xxRSxfvlzgADQZK1asiCuuuCJWrlyZ6nP26NFj1KRJk0ZJHAAA/lth5cDo+lFfaKyKqFmRtSEAALbZjTfeuO+XvvSlCzOZTGp/8fDdd9+NK6+8MtatWydwAJqc6urqmDVrVvTv3z8qKytTe85u3boN79mz57yHH37Yb2MBAJAXyjrXR0H5R39NAQwAwA5x3nnn9T311FOvLigoKE7rGV977bW45pprorq6WuAANFmbN2+OGTNmRI8ePaJ9+/apPGMmkykYNGjQIYWFhVOee+45v5UFAEDqKYABANipjjrqqFb/8R//8YdmzZq1SusZX3755bj++uujrq5O4AA0eQ0NDfHSSy9Fp06dolOnTqk8Y0FBQXbYsGGfnz9//qQ33nhjk9QBAEizLRXA3gEMAMB21a1bt+wNN9zwnyUlJR3TesYpU6bEjTfeGPX19QIHIDHq6+vjxhtvjKlTp6b2jCUlJZ1uuOGG/+jWrZu7GgAAyFsKYAAAtqunn376XyorK/dI6/kmTZoUd955ZzQ2NgobgMRpbGyMO+64I5588snUnrGysnLw008//UtpAwCQrxTAAABsN88///w3unTp8k9pPd/EiRNj3LhxkcvlhA1AYuVyubj//vtTXQJ36dLlS88+++yJ0gYAIB95BzAAANvFTTfdNPzII488L5PJZNJ4vsceeyzGjx8vaABS47XXXotmzZpF3759U3m+zp0779urV695Dz/88DJpAwCQNlt6B7ACGACAz+wXv/hF7x/+8IdXFxQUNEvj+R544IF45JFHBA1A6ixYsCDq6upiwIABqTtbJpPJDBo06ODGxsbnpk6dul7aAACkiQIYAIAd5oADDqj43e9+99tmzZq1TeP5xo0bF5MmTRI0AKm1aNGi2Lx5cwwcODB1ZysoKMjut99+w5577rnH33vvvc3SBgAgLbZUAHsHMAAA2yybzWbuvPPOfyktLe2exvNNmDBB+QtAXpg0aVI89NBDqTxbaWlpj3vuuedfstlsRtIAAOQDBTAAANvs+eef/06HDh0OTePZHn744Xj44YeFDEDeeOSRR+LPf/5zKs/WoUOHw5599tlvSxkAgHygAAYAYJvcd999hw8ePPjUNJ7t/vvvjwkTJggZgLzz2GOPxX333ZfKs+25554/+NOf/nSYlAEASDvvAAYAYKudccYZ3ceMGXN5QUFBcdrONnHixHjkkUeEDEDeWrx4cWSz2ejbt2/ajpbp06fPvn/5y18mz5w5c4OkAQBIsi29A1gBDADAVhk2bFjzG2+88Q/NmjVrl7azPfroo6l99CUAbI2FCxdGUVFR9OvXL1XnKigoKD7wwAP3e/LJJx9dsWJFnaQBAEiqLRXAHgENAMBWuffee39ZWlraPW3nevzxx+PBBx8UMAD8jz//+c8xceLE1J2rtLS0x3333fdLCQMAkFYKYAAAPrVJkyaN6tSp0xEpPFeMHz9ewADwD8aPHx+TJ09O3bk6der0hUmTJn1VwgAApJFHQAMA8Kmcd955fU888cR/z2QyRWk618yZM+Puu+8WMAB8jNdeey06duwYnTt3TtW5unbtuk9BQcHzzz333DopAwCQNN4BDADAZ3LEEUe0vOKKK67NZrOVaTrXyy+/HDfffHPkcjkhA8DHyOVyMXv27OjSpUt06tQpNefKZDJF++yzz/CpU6c+9u67726WNAAASeIdwAAAbLNsNpu55ZZb/q2kpKRjms61YMGCuPnmm6OxsVHIAPAJGhsb4+abb44333wzVecqLS3tcvfdd5+fzWYzUgYAIC0UwAAAbNGkSZO+3rZt2wPTdKZly5bFDTfcEPX19QIGgE+prq4urr322li+fHmqztWuXbsDH3/88VESBgAgLTwCGgCAj3XZZZcN+upXvzo2k8mk5hcH33///bjyyiujqqpKwACwlerq6uLll1+OIUOGRHl5eWrO1aVLl31LS0unPvPMM2ukDABAEngENAAAW61///4lJ5988q8ymUxRWs60YcOG+P3vfx8bN24UMABso40bN8bvfve7VP15WlBQkP3hD394ft++fYslDABA4q9vrQAAgI/y4IMPnl1WVtYrLeeprq6O3/zmN7Fq1SrhAsBntGrVqrjyyiujuro6NWcqKyvr8/DDD58lXQAAkk4BDADA/zF+/Pgju3XrdnRazlNfX5/KdxYCwK60fPnyuO6666K+vj41Z+rRo8dXx40bd4R0AQBIMgUwAAB/53vf+16nI4444py0nCeXy8Vtt90Wb7zxhnABYDt7/fXX47bbbotcLpeaMx155JHnfvvb3+4oXQAAkkoBDADA/6qoqCi4+OKLLywsLCxPy5nGjx8fs2bNEi4A7CCzZs2Khx56KDXnKSwsrPj1r399QUVFhZ+bAQCQSC5kAQD4XxMnThxdWVk5OC3nef7552PixImCBYAd7LHHHosXXnghNeeprKzc89FHHz1RsgAAJFFh5cDo+lFfaKyKqFmRtSEAgDxxwQUX7DZq1KgLM5lMYRrO8+qrr8Ytt9ySqkdSAkBT/7O3d+/e0a5du1Scp2PHjkNzudxzU6ZMWSddAACamrLO9VHwMc/wcwcwAADRt2/f4h//+McXZzKZVPwG4HvvvRc33HBDNDY2ChcAdpKGhoa47rrrYtmyZak4T0FBQfbss88e27dv32LpAgCQqGtZKwAAYPz48T8qKyvrkYazbNiwIX7/+99HbW2tYAFgJ9u0aVP8/ve/j40bN6biPGVlZb3GjRs3RrIAACSJAhgAIM/ddNNNw/v06XN8Gs5SX18f1157baxdu1awALCLrFmzJq699tqor69PxXn69ev3jd///vdDJQsAQFIogAEA8thBBx1Uceyxx/5rRGTScJ477rgjFi9eLFgA2MUWLVoUd955Z1qOU/CNb3zj34YNG9ZcsgAAJOIC1goAAPLXzTfffFZxcXG7NJxl4sSJMX36dKECQBMxbdq0mDRpUirOUlJS0unOO+88Q6oAACSBAhgAIE/913/914FdunT5UhrO8tprr8Wf//xnoQJAEzN+/PhYsGBBKs7SrVu3o2+66abhUgUAoKlTAAMA5KEvfelLlV/5yld+lYazrFixIq6//vpobGwULAA0MY2NjXHdddfFihUr0nCczHHHHfergw46qEKyAAA0ZQpgAIA8dPXVV5+ezWYrk36OmpqauPbaa2PTpk1CBYAmatOmTXHttddGTU1N4s+SzWbb3njjjT+RKgAATZkCGAAgz9x6663Du3Tp8uWknyOXy8Utt9wSK1euFCoANHErV66MW2+9NXK5XOLP4lHQAAA0dQpgAIA8MnTo0LKvfvWrv0jDWSZMmBBz584VKgAkxJw5c+Kxxx5LxVlGjRr1i6FDh5ZJFQCApkgBDACQR+64444fFRcXd0z6OV5++eV45JFHBAoACfPQQw+l4he4SkpKOt5xxx0/lCgAAE2RAhgAIE9cfvnlu/fs2XNU0s/xwQcfxB133JGKR0gCQL7J5XJx2223xZo1axJ/lp49ex57+eWX7y5VAACaGgUwAEAe6NatW/a73/3uv2YymURf/9XX18cNN9wQ1dXVQgWAhKqqqoobb7wx6uvrE32OTCZT8N3vfvdX3bp1y0oVAICmRAEMAJAHxo8ff0pZWVmvpJ/jnnvuiaVLlwoUABJuyZIlcd999yX+HGVlZT3Hjx9/ikQBAGhKFMAAACn385//vOeAAQNGJ/0c06dPjylTpggUAFJi8uTJMWPGjMSfY8CAAaN//vOf95QoAABNhQIYACDFstls5qyzzjo3k8kk+tGEK1asiLvvvlugAJAyd911V6xYsSLRZ8hkMtmzzjrr3Gw2m5EoAABNgQIYACDFxo0b98XKysq9knyG2trauOGGG6K2tlagAJAyf/1zfvPmzYk+R2Vl5V7jxo0bKVEAAJoCBTAAQEoNHz68/OCDDz4t6ee4//77Y/ny5QIFgJRavnx5jBs3LvHnGDFixI+HDRvWXKIAAOxqCmAAgJS69dZbT8tms22TfIYZM2bEc889J0wASLnJkyfHzJkzE32G4uLitrfffvtp0gQAYFdTAAMApNBVV121R48ePb6S5DOsXLky7rrrLmECQJ64++6744MPPkj0GXr27PnVK664Yg9pAgCwKymAAQBSprS0tOAb3/jGT5N8rdfY2Bi333679/4CQB6pqamJ2267LRobG5N8jIJvfvObZ5aWlvqZGwAAu+6i1AoAANJlwoQJX6uoqBiQ5DOMHz8+Fi1aJEwAyDNvvvlmPPjgg4k+Q4sWLQY9+OCDx0gTAIBdRQEMAJAiRx55ZOWwYcN+kOQzzJ07N5544glhAkCemjhxYixYsCDRZxg+fPiPjjjiiJbSBABgV1AAAwCkyBVXXHFyUVFRRVLnr6qqijvvvDNyuZwwASBP5XK5uP3226O6ujqxZygqKmrxm9/85mRpAgCwKyiAAQBS4vzzz+/Xu3fv45J8httvvz0+/PBDYQJAnlu3bl3cfvvtiT5D7969jz///PP7SRMAgJ1NAQwAkALZbDZz6qmn/jyTyST2+m769OkxZ84cYQIAERExe/bsmDFjRmLnz2QyBaeeeurPs9lsRpoAAOxMCmAAgBT44x//eERlZeXgpM6/du3auPfeewUJAPyde+65J9atW5fY+SsrKwf/6U9/+oIkAQDYmRTAAAAJ17dv3+JDDjnkR0k+w9133x01NTXCBAD+Tk1NTdx9992JPsPBBx/8o759+xZLEwCAnUUBDACQcHfdddc3S0pKOiV1/smTJ8e8efMECQB8pLlz58azzz6b2PlLSko63nPPPd+SJAAAO4sCGAAgwb70pS9VDhw48KSkzr9mzZoYP368IAGALXrggQdizZo1iZ2/f//+Jx111FGtJAkAwM6gAAYASLArrrji1MLCwvIkzp7L5eK2226LTZs2CRIA2KJNmzbFbbfdFrlcLpHzFxYWll1++eU/kCQAADuDAhgAIKF+8Ytf9O7evftXkjr/s88+G2+88YYgAYBP5Y033ojnn38+sfN369bt6F/96ld9JAkAwI6mAAYASKgf/vCHP8pkMom8nvvggw/igQceECIAsFXGjRsX69atS+TsmUym4NRTT/2xFAEA2NEUwAAACXTdddcNa9eu3YFJnD2Xy8Udd9wRtbW1ggQAtsqmTZvizjvvTOz8bdq02f+mm27aT5IAAOxICmAAgIQpLS0t+NrXvnZ6Uud/4YUXYuHChYIEALbJq6++GjNmzEjs/Mccc8zpFRUVfiYHAMAO42ITACBhbr/99oMrKip2S+LsGzZsiHHjxgkRAPhM7r///qiqqkrk7OXl5X3/67/+6wgpAgCwoyiAAQASpKKiouCwww47Nanz33vvvYn9YS0A0HRs2LAh7r///sTOf9BBB/1zq1atCiUJAMCOoAAGAEiQ+++//+iysrKeSZx9zpw58dJLLwkRANguXnjhhViwYEEiZy8tLe32xz/+8StSBABgR1AAAwAkRN++fYv33Xfff07i7LW1tXHvvfcKEQDYru6+++6oq6tL5Oz77bffKf379y+RIgAA25sCGAAgIW6++eZRxcXFbZM4+yOPPBJr164VIgCwXa1atSoee+yxRM6ezWbb3njjjV+TIgAA25sCGAAgAYYOHVq21157fSeJs7/33nvxxBNPCBEA2CEmTpwYK1asSOTsQ4YM+c7QoUPLpAgAwPakAAYASIBrr732xKKiosqkzZ3L5eKee+6JxsZGIQIAO0R9fX3cddddkcvlEjd7UVFR5bXXXnuCFAEA2J4UwAAATdwBBxxQMWDAgG8kcfYZM2bEW2+9JUQAYId6880348UXX0zk7AMGDPjG8OHDy6UIAMD2ogAGAGjirrrqqhOKiooqkjb3pk2b4oEHHhAgALBT3H///VFbW5u4uYuKilpcffXV7gIGAGC7UQADADRhBx10UEX//v0Teffvww8/HB9++KEQAYCdYv369TFhwoREzj5w4MBvHHDAARVSBABge1AAAwA0Yf/5n/95bGFhYfOkzb1q1aqYPHmyAAGAnerpp5+O1atXJ27uwsLC8ssuu2yUBAEA2B4UwAAATdQBBxxQMWjQoNFJnP3uu++O+vp6IQIAO1V9fX3cddddiZx99913/+bQoUPLpAgAwGelAAYAaKIuv/zyYwsLC8uTNvfcuXNjwYIFAgQAdokFCxbE3LlzEzd3UVFRi9/97ndflyAAAJ+VAhgAoAkaOnRo2aBBgxL37t+6urr405/+JEAAYJf605/+FHV1dYmbe/fdd//mkCFDSiUIAMBnoQAGAGiCfvOb33ylqKioZdLmfu655xL53j0AIF1Wr14dzz33XOLmLioqann11VcfLUEAAD4LBTAAQBPTq1evZoMHD/5m0uaurq6ORx55RIAAQJPwyCOPRHV1deLmHjJkyLe6deuWlSAAANtKAQwA0MTcdNNNxxQXF7dN2twTJkyIqqoqAQIATUJVVVUifzmtuLi43a233uouYAAAtpkCGACgCWnVqlXhXnvtdVLS5l61alU8++yzAgQAmpTJkyfHqlWrEjf30KFDR7dq1apQggAAbAsFMABAE3LLLbccXlJS0jlpcz/44INRX18vQACgSamvr48HH3wwcXOXlJR0vummmw6VIAAA20IBDADQRGSz2cwBBxzw7aTNvWjRonjppZcECAA0SS+99FIsXrw4cXOPGDHiO9lsNiNBAAC2lgIYAKCJuOaaa/YuLy/vm7S5H3roocjlcgIEAJqkXC6XyLuAy8vL+1111VV7SRAAgK2lAAYAaCK+8pWvfDdpM8+bNy8WLlwoPACgSVu4cGG8+uqrrg8BAMgLCmAAgCbgsssuG1RZWblPkmbO5XIxfvx44QEAifDAAw8k7qklrVu33veSSy7pLz0AALaGAhgAoAkYNWrUCUmbefbs2bFs2TLhAQCJsGzZsnjllVcSN/cJJ5xwovQAANgaCmAAgF3sn//5nzt37NjxiCTN3NjYGA888IDwAIBEGT9+fDQ0NCRq5k6dOn1h9OjRHaQHAMCnpQAGANjFfvSjH30tk8kk6rps2rRpsWrVKuEBAImyatWqeOGFFxI1cyaTKfzpT386SnoAAHxaCmAAgF1o0KBBpX369Plqkmaur6+PCRMmCA8ASKQJEyZEXV1dombu27fvV/r27VssPQAAPg0FMADALnTZZZcdXlRUVJGkmadOnRpr164VHgCQSOvXr48pU6YkauaioqLK3/zmN0dIDwCAT0MBDACwi2Sz2cy+++57UpJmrqurc/cvAJB4jz76aOLuAt5///1PymazGekBAPBJFMAAALvI1VdfPbSsrKx3kmaeMmVKbNiwQXgAQKJt2LAhnn/++UTNXFZW1ueqq67aS3oAAHwSBTAAwC7y5S9/+bgkzVtfXx8TJ04UHACQCo8//nji7gL+0pe+dLzkAAD4JApgAIBdYPTo0R3atm07IkkzT5s2LdatWyc8ACAVPvzww5g+fXqiZm7fvv2I0aNHd5AeAABbogAGANgFfvrTn47KZDKFSZm3vr4+HnnkEcEBAKnyyCOPRH19fWLmzWQyhT/96U+/JjkAALZEAQwAsJN16tQp26dPn6OTNLO7fwGANFq3bl1MmzYtUTP36dPnmE6dOmWlBwDAx1EAAwDsZFddddUB2Wy2dVLmbWxsjEmTJgmOVOvYsWN06OCJmgD5aNKkSdHY2JiYebPZbOurrrrqAMkBAPBxFMAAADvZiBEjvp6keV988cVYtWqV4Ei1Ll26xIUXXhinnXZadO3a1UIA8siqVavipZdecj0JAEBqKIABAHaiM844o3tlZeXeSZk3l8vFxIkTBUdeyGQyMXjw4PjVr34VY8aMcUcwQB55/PHHI5fLJWbeysrKvc8444zukgMA4KMogAEAdqJTTjnlqxGRScq8CxYsiPfee09w5JVMJhN77713XHjhhTFmzJho3769pQCk3HvvvRcLFy5M1B9X/3NdCQAA/4cCGABgJ+nVq1ezXr16fTlJM3v3L/nsr0XwBRdcECeffHK0bdvWUgBSLGnXPb169fpyr169mkkOAIB/pAAGANhJrrjiioOLiopaJmXeBN4JAztEYWFhDB8+PC688MIYPXp0VFZWWgpACi1YsCCWLVuWmHmLiopaXnnllYdIDgCAf6QABgDYSYYPH/6VJM2btHfhwY5WVFQUI0aMiEsuuSRGjx4dLVu2tBSAFMnlcvH4448naub99tvvK5IDAOAfKYABAHaC0aNHd6isrByalHnXrl0bL7/8suDgI/y1CL744ovjhBNOiBYtWlgKQEq89NJLsW7dusTMW1lZudfo0aM7SA4AgL+lAAYA2AlOP/30o5J07fXMM89EQ0OD4GALiouL47DDDouxY8fGqFGjoqyszFIAEq6hoSGeeeaZJI1c8D/XmQAA8P8vEq0AAGDHymazmX79+n05KfPW1tbGlClTBAefUnFxcYwcOTIuvfTSGDVqVJSWlloKQII9//zzUVtbm5h5+/Xr9+VsNpuRHAAAf6UABgDYwX7zm9/sWVJS0jkp886YMSOqq6sFB1uppKQkRo4cGZdcckkcffTRUVJSYikACVRdXR0zZ85M0p8/na+44orBkgMA4K8UwAAAO9gXvvCFLyVl1lwuF08//bTQ4DNo3rx5HHXUUXHJJZfEyJEjI5vNWgpAwjz11FORy+USM++RRx75ZakBAPBXCmAAgB1oyJAhpZ07dz4iKfO+/vrrsWLFCsHBdlBeXh6jRo2KSy+9VBEMkDArVqyI119/PTHzdunS5fD+/ft79AQAABGhAAYA2KHGjh17aGFhYWJeCOruX9j+KioqYtSoUXHxxRfH4YcfHkVFRZYC4LpouyosLGz+H//xHwdLDQCACAUwAMAOteeeex6ZlFnXrl0b8+bNExrsIK1atYrjjz8+LrroohgxYkQUFPh2DKApmzdvXqxZsyYx8+61115HSg0AgAgFMADADnPMMce0bt269b5Jmfe5556LxsZGwcEO1qZNmxg9enRcfPHFimCAJqyxsTGee+65JP35MvyYY45pLTkAAPykAQBgBznzzDMPz2Qyibje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FpafffbZvaQFAJA+CmAAgE9p//3375+EOV9//XVhAXmjvLw8Ro0aFf/+7/8eI0eOjGw2aymA67FP6fOf//xAaQEApI8CGADgU+rRo8fuTX3G2traePvtt4UF5J2KiooYNWpUXHzxxXH44Yc3+XdvAum2ePHiRLySo1evXoOkBQCQPgpgAIBPqXXr1k3+DoklS5ZEQ0ODsIC81apVqzj++OPj4osvjhEjRkRBgW97gZ2voaEhlixZ0uTnbNOmjQIYACCFfCcMAPApDBkypLR58+a9m/qcb775prAAIqJ169YxevToGDt2rCIYcF32MZo3b95n0KBBpdICAEgX3wEDAHwKp556av9MJtPkr53eeustYQH8jTZt2sTo0aPjvPPOi+HDhyuCAddlfyOTyRT84Ac/+Jy0AADSxXe+AACfwuDBg5v84/Hq6+tj0aJFwgL4CJ06dYqTTz45/u3f/i323nvvyGQylgLsUIsXL07Eqzn23HPPgdICAEgXBTAAwKfQpUuXAU19xnfeeSfq6uqEBbAFnTt3jjFjxiiCgR2utrY23n333SRc53oPMABAyiiAAQA+hZYtW/Zv6jN6/DPAp9elS5cYM2ZMnHvuuTF48GALAfL2+iwJ17kAAGwdBTAAwCcYPnx4eUlJSeemPqfHPwNsvV69esVpp50W55xzTvTvrwMB8u/6rLS0tPPw4cPLpQUAkB4KYACAT/Ctb31rt4ho8s8IXbx4sbAAtlGfPn3irLPOinPOOSd22203CwG2i4T8gl7m29/+dj9pAQCkhwIYAOAT7L777k2+CVi7dm1s2LBBWACfUZ8+feLss8+OM888M3r27GkhwGfy4Ycfxrp165r8nAMHDlQAAwCkSJEVAABsWadOnZr8D8TefvttQQFsRwMGDIgBAwbEggULYvz48bF06VJLAbb5Oq1Vq1audwEA2GkUwAAAn6CyslIBDJCnBgwYEP3794958+bFQw89FO+++66lAFtlyZIlsddeezX1613PvgcASBEFMADAFnTq1CnbvHnzXk19ziVLlggLYAfJZDIxePDg2GOPPeLll1+OBx98MFauXGkxQGqu05o3b967Xbt2RatXr66XGABA8nkHMADAFowZM6ZnJpPJNuUZGxsbPZoUYCfIZDKx9957x4UXXhhjxoyJ9u3bWwrwiZYuXRqNjY1NesaCgoLsqaee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k8nE7NmzY+LEibFmzRoNAXif/VNSzJo161kTAwBongTAAAC70O233/7KOeecszU/P78022sdMGBAtG/f3tWu0My9+uqrMWnSpFi1apVmALyPjh07xgEHHJCIWhsbG6u/8Y1v/NXUAACaJwEwAMAutHLlyob169fP6tat2+hsrzWVSsXhhx8ekyZNMjhohubMmROTJ0+OJUuWaAbAh3D44YdHKpVKRK3r16+fVVFR0WhqAADNU54WAADsWq+++mpirts77LDDDAyamTfffDP+/d//PX7yk58IfwE+pFQqFSNGjEhMva+88sozpgYA0Hw5AQwAsIvddNNNz5166qnV+fn5rbO91m7dukX//v1j4cKFBgc5btmyZfHYY4/F/PnzNQPgIzrggAOic+fOiai1sbFxy4033jjL1AAAmi8BMADALrZy5cqG8vLyGT179vx0Euo9+uijBcCQw5YvXx7jxo0T/AJ8wv1SUpSXlz9TXl7eYGoAAM2XABgAYDeYMWPGUxdccEEiAuAhQ4ZE69ato7q62uAgh6xcuTImTJgQc+fOjUwmoyEAH1ObNm3i0EMPTUy9zz777FOmBgDQvPkGMADAbvDVr371lYaGhk1JqLWgoCCOOOIIQ4McsW7duvj5z38ed955Z8yZM0f4C/AJjRw5MvLz8xNRa0NDw8abbrrpVVMDAGjenAAGANgNKisrm1atWjW9T58+5ySh3qOPPjqefPJJQREk2Pr16+Oxxx6L2bNn+3cZYBdJpVIxatSoxNS7cuXKadXV1WmTAwBo3pwABgDYTaZNm5aY6/c6duwYAwYMMDRIoA0bNsSvf/3r+Nd//dd49dVXhb8Au9CAAQOiY8eOian36aefftLUAAAQAAMA7CZf+9rX5tTX11ckpd6jjjrK0CBBqqqq4v77749vf/vb8eKLL0ZTU5OmAOxiRx55ZGJqra+vX/eNb3zjdVMDAMAV0AAAu0ltbW16xYoVT++///6fT0K9hx56aLRt2zaqqqoMD7LYli1bYsqUKfHcc8/F9u3bNQRgN2nbtm0MGTIkMfUuX778qdraWtc/AwDgBDAAwO70xz/+cUJSas3Pz4/jjjvO0CBL1dTUxKOPPhq33XZb/OUvfxH+Auxmxx57bOTn5yel3Myvf/3rCaYGAECEABgAYLe66667llZXV89PSr1HH310tGjRwuAgi7wd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qATAAABZ4umnn968fPnyxF3xN3r06GjXrp0BAgBZqUOHDnH88ccnru5ly5ZNmD59+hYTBADgoxIAAwBkkbvvvvtPmUymKUk1FxYWxumnn254AEBWOvPMMxP3yYpMJtN41113/dH0AAD4OATAAABZ5Be/+MWatWvXTkta3UcccUT06tXLAAGArNK7d+847LDDEld3eXn5X+6///51JggAwMchAAYAyDIPP/zwn5JWcyqVijPPPNPwAICsMmbMmEilUomr+8EHH/yT6QEA8HEJgAEAsszXv/71NzZs2DAraXUPHDgwDj74YAMEALLCoEGDYsCAAYmru6KiYuatt966wAQBAPi4BMAAAFlo3Lhxv01i3WPGjIm8PFtMAGDvysvLizFjxiSy9j//+c+/NUEAAD7RflgLAACyz/XXXz+nqqrqr0mru1evXnHUUUcZIACwVx1zzDHRvXv3xNW9adOmV2666aa5JggAwCchAAYAyFJ/+tOf7k1i3WPGjInS0lIDBAD2ijZt2sRZZ52VyNofeOCBe00QAIBPSgAMAJClbrrpprlJPAVcXFwcZ555pgECAHvFWWedFS1btkxc3Zs2bXrl5ptvnmeCAAB8UgJgAIAsNm7cuF8lse5Ro0ZF7969DRAA2KP69OkTI0eOTGTtjz322K9MEACAXUEADACQxcaOHTu7qqrqb0mrO5VKxfnnnx+pVMoQAYA9tv/4/Oc/n8j9R2Vl5d+uueaav5kiAAC7ggAYACDLTZ069bdJrLtv374xZMgQAwQA9ojDDjsssTeQTJ48+TcmCADAriIABgDIcpdeeumLVVVVryax9s9//vNRXFxsiADAblVaWhrnn39+Imuvqqr66+WXX/6SKQIAsKsIgAEAEuChhx76WRLrLisri9NPP90AAYDd6qyzzoqSkpIklp753e9+91MTBABgVxIAAwAkwA033DB3w4YNs5JY+3HHHRd9+vQxRABgt+jbt28cddRRiay9oqJi1te//vU3TBEAgF1JAAwAkBA///nPfxoR6aTVnUql4vOf/3zk5dl6AgC7Vn5+flx00UWRSqWSWH76F7/4xX+bIgAAu5q3cAAACXHHHXe8tW7duulJrL13795xzDHHGCIAsEudcMIJ0b1790TWXl5e/pc77rjjLVMEAGBXEwADACTI3XfffW8mk2lKYu1nnXVWtG3b1hAB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onv37vEv//IvccABBzSrdWcymaYnnnji9s997nPPeAoAAODDEQADAJBYDz/88NJjjjlmY+/evY+KiGZzFKq0tDSGDx8eq1evjvXr13sQAHLcwIED45prrol27do1t6VnZsyY8YOzzjprqqcAAAA+PAEwAACJdv/99795zDHHVO6zzz5HRDMKgVu0aBGHHXZYtGzZMhYuXBjpdNrDAJBjCgoK4pxzzonzzz8/WrRo0dyWn37uuefuOuWUUyZ4EgAA4KMRAAMAkHi///3v5w8bNmxF3759j2lO10GnUqno27dvDB06NBYvXhxbtmzxMADkiJ49e8YNN9wQgwcPblbf+434x7XPU6ZM+fbpp58+2ZMAAAAfnQAYAICc8OCDDy4ZNmzYin79+jWrEDgionXr1nHEEUdEfX19LF261MMAkGCpVCpOOOGEuOKKK6JNmzbNbv07wt9vnXPOOX/xNAAAwMcjAAYAIGc89NBDS4YNG7a8X79+xza3EDg/Pz8OPvjg6NWrV8yfPz8aGho8EAAJU1JSEpdffnmccMIJkZ+f3+zWn8lkGp944olvffazn53maQAAgI9PAAwAQE556KGHlo4cOXJdnz59RqWa252ZEdG1a9cYNmxYLFu2LCorKz0QAAnRt2/fuO6662K//fZrluvPZDLpp59++rvnnHPO054GAAD4ZATAAADknD/96U+LDj300KX7779/s7sOOiKiuLg4jjzyyCgpKYk333wz0um0hwIgSxUUFMRnP/vZuPDCC6OkpKRZ9iCdTjc88sgjt5x//vnTPREAAPDJCYABAMhJDz/88NId3wQelUqlmt09mqlUKvr06RMHH3xwLFy4MLZt2+ahAMgynTt3jrFjx8bQoUOjGV5aERH/CH+feOKJ2y+88MLnPBEAALBrCIABAMhZDz300JIePXq8NmjQoGPz8vJaNMcetG3bNkaNGhVNTU2xZMkSDwVAFkilUjF69Oi48soro0OHDs22D01NTdt++9vf/stll132oqcCAAB2HQEwAAA5bdKkSeXdu3efM3jw4GYbAufn58eAAQOiV69esWDBgti+fbsHA2Avad26dVx66aVx/PHHR35+frPtQ2NjY/WvfvWrf7nuuute81QAAMCuJQAGACDnTZ48eW1jY+OMI4444uiCgoKS5tqHrl27xqhRo2Lbtm2xcuVKDwbAHpRKpWLUqFExduzY6NWrV7PuRX19/fo77rjjK9/61rcWejIAAGDXEwADANAsPP/881UbNmx45rjjjjuqsLCwrLn2obCwMAYNGhT77bdfLF68OGpraz0cALtZ+/bt44orrogTTzwxCgub9/uU2tralTfffPPVP/nJT1Z7MgAAYPcQAAMA0Gz87W9/27p27doZJ5xwwsjCwsK2zbkXnTp1ipEjR0Z1dbXTwAC70ciRI+Pqq6+OHj16NPte1NTULL/hhhuu/e1vf7vOkwEAALuPABgAgGbltdde2zpv3rynTznllKFFRUWdmnMvCgsL49BDD4399tsvFi1a5DQwwC709qnfk08+udmf+o2I2Lx587yLL774unHjxm30dAAAwO71fgFwat9zYsTOftC4LmLjq610DwCAxOrVq1fhs88++69du3Y9QTciGhoaYurUqTF58uRobGzUEICPqaCgIE499dQYPXq04HeH8vLyp4499tjvrly5skE3AABg9+swrDYKuuz8ZwJgAAByWuvWrfNeeumlm/fdd9+zdeMfVq9eHffff38sWbJEMwA+ov322y8uuugi1z2/w8KFC38/fPjwnzY0NGR0AwAA9gwBMAAAzd7zzz9/8aGHHnp1RKR0IyKTycTMmTPjz3/+c9TV1WkIwAcoKSmJ8847L0aMGBGplL9Kdki//PLL9xx77LEPagUAAOxZ7xcA+wYwAADNwn333Tfn+OOP39yrV6/DQwgcqVQqevfuHcOHD49169ZFRUWFhwTgPRxyyCExduzY6N+/v/B3h0wm0/jMM8/828knnzxONwAAYM97v28AC4ABAGg2fve7370xePDgJf369Ts6lUrl60hEcXFxjBgxInr06BFLly6N2tpaTQHYoUOHDvGFL3whzjzzzCguLtaQHZqammoeeOCBWz73uc9N1w0AANg7BMAAALDDww8/vKygoOC54cOHH1FQUFCqI//QrVu3OO6446K0tDQWL14cTU1NmgI0Wy1btoxzzjknLr300ujevbuGvENtbe2K22677arbbrvtDd0AAIC9RwAMAADv8Oyzz25avHjx0yeddNKQoqKiTjryD3l5edGnT58YOXJkbN26NVatWqUpQLNz+OGHx1e+8pUYMGBA5OXlacg7VFVV/e3CCy+8/oEHHvDdAAAA2MsEwAAA8C7z58+vefbZZ58+44wz+hcX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OigOOOCAKCoq0pQs0djYuGXmzJk/PvPMMyc2NDS4XgAAAPjQBMAAAJADjjzyyNY/+9nPrujbt++5EZGnI9mluro6Fi5cGPPnz4958+ZFZWWlprBXtGvXLg455JAYMGBA9O/fP1q39nsjWSj91ltv/fmqq676xaxZs6q1AwAA+KgEwAAAkEN++ctfjhgzZsyNrVq16q0b2SmdTsfKlStj0aJFsXDhwli8eHFs27ZNY9gtSkpKol+/ftG/f//Yf//9o1evXpGX53dEslVNTc3yRx999EdXXnnlK7oBAAB8XAJgAADIMd26dSt8+OGHPzd48ODL8vPzbdyzXCaTiTVr1sTChQtj0aJFsWjRotiyZYvG8LGUlZVF//79/xn6du/ePVKplMZkuaampprXXnvtV2PGjHmgoqKiUUcAAIBPQgAMAAA56rjjjiv7r//6r8tdC508mzdvjuXLl8eKFSti+fLlsXjx4qipqdEY/pfi4uLo169f9O7dO/bZZ5/Yd999o6ysTGMSJJPJpJcsWfLn66677pfTp0/3mx8AAMAuIQAGAIAc99Of/nTIueeee3NpaWlf3UimxsbGWLlyZSxdujSWLVsWy5cvj3Xr1kUmk9GcZiKVSkWXLl1in332iT59+kSfPn2iV69eUVBQoDkJtXXr1sUPPvjgj6699tq/6wYAALArCYABAKAZaNeuXf64cePOGTp06BUFBQWtdST56uvrY+XKlf88KbxixYpYu3ZtpNNpzUm4vLy86Nq1a+yzzz7//KdXr17RsmVLzckBjY2NW/7617/+4pxzznm0srKySUcAAIBdTQAMAADNyIknntjmnnvuuXzfffcdk0qlHB3MMdu3b481a9bEmjVrYu3atbF27dooLy+PDRs2CIazUF5eXnTs2DG6desWXbt2jW7dukW3bt2iR48eUVhYqEE5JpPJNC5ZsuRR1z0DAAC7mwAYAACaoa9+9av7Xnfdddd16NDhCN3IfY2Njf8MhNetWxfr1q2LioqKWLduXWzbtk2DdrPS0tLo3LnzP//p0qVLdO3aNbp27eoK52Ziw4YNM//rv/7rxz/60Y+W6wYAALC7CYABAKAZ++UvfznirLPOuq64uNj3gZupmpqaWL9+/T//qaioiMrKyqisrIxNmzZFY2OjJn2AgoKCaN++fbRr1y7at28fHTt2jC5dukSnTp2ic+fOUVxcrEnN1NatW98aP378PVdcccXLugEAAOwpAmAAAGjm2rVrl//ggw+eOWLEiCsLCwvb6gjvtHnz5n+GwZs2bYrKysqorq6OLVu2xJYtW6K6ujqqq6sjk8nk3NpTqVS0bt06WrduHWVlZdGmTZsoLS39X2Fvu3btok2bNh4U/peGhobKl1566efnnHPO+OrqavevAwAAe5QAGAAAiIiIoUOHFt97770XHHjggRfk5+c7ssiHlk6n/xkEV1dXR01Nzfv+k8lkora2NtLpdNTX10dTU1PU1dXt0u8U5+XlRcuWLSM/Pz+KiooiLy8vWrVqFalUKoqLi3f6T0lJSbRq1eqfgW9paWnk5eUZMB9aU1NTzYIFC/745S9/+Y+zZ8+u0REAAGBvEAADAAD/y2mnndb2rrvuurRPnz5n5+XlFeoIe9LbgfDbtm/f/r7XUBcUFESLFi3++b/fDnxhT8pkMg1LliwZd8stt/xq0qRJVToCAADsTQJgAABgp0477bS2d95554X777//5wTBAP9XJpNpWLhw4QO33nrrHwS/AABAtni/ADi/7UHRc2c/SG+LqC33/gcAAHLZokWL6u69995X0un0swcddFCnkpKS3roC8A8VFRUz/7//7/+77aKLLpq6aNGiOh0BAACyRXH3xsgr3fnPBMAAAEDMnDmz8u67736qqalpWr9+/Ypbt27dN5VKpXQGaG4ymUx6zZo1U+65555/Peeccx6cOXNmpa4AAADZRgAMAAB8KDNnzqz88Y9//Gw6nZ4uCAaak7eD37vvvvtfzz///McEvwAAQDYTAAMAAB+JIBhoLgS/AABAEgmAAQCAj+XtILisrOyFvn37diwuLu4VEYJgIBdkKioqnrv33nu/PWbMmEcEvwAAQJK8XwCc2vecGLGzHzSui9j4aivdAwAA/unqq6/u8ZWvfOX8Pn36nJWXl9dCR4CkSafT9UuXLh3/X//1Xw/84he/WKMjAABAEnUYVhsFXXb+MwEwAADwkZ1xxhntb7/99rMPPPDA8/Pz81vrCJDtmpqaqhcsWPDgd77znUcmTpzotC8AAJBoAmAAAGC3GD58eMkPf/jDzwwePPjioqKijjoCZJv6+voNr7322u9vvPHGx2fPnl2jIwAAQC4QAAMAALvV0KFDi++5556zDjnkkPOKioq66giwt9XV1a19/fXXH7z++uvHC34BAIBcIwAGAAD2iFatWuXdc889w0455ZTzO3bseJSOAHtYZsOGDbOmTJny4PXXX/9qbW1tWksAAIBcJAAGAAD2uH/913/tf/7555/dq1ev0/Ly8lroCLC7pNPp+pUrV05+4IEHHvnOd76zSEcAAIBcJwAGAAD2mjPOOKP97bfffvYBBxzw2YKCgjY6AuwqjY2NVW+++eafv/e97z06YcKETToCAAA0FwJgAABgrxs+fHjJ97///dGDBg0aU1paur+OAB9XdXX1wtdee+3Rr371q1Nfe+21Wh0BAACaGwEwAACQVb761a/ue8EFF3y6b9++ZxUUFLTWEeCDNDY2bnnrrbfG/+EPf5j4ox/9aLmOAAAAzZkAGAAAyEpDhw4t/sEPfnDy4MGDz27dunV/HQHerbq6+s2XX375weuuu+7ppUuXbtcRAAAAATAAAJDlCgsLU3ffffeQ0aNHn9G1a9fj8vLyinQFmq90Ol1XXl4+bcqUKROuvfbav+sIAADA/yYABgAAEqNPnz4t/v3f/33UyJEjz2rfvv2nIiKlK9AsZDZt2vTXF1544bGvfe1rzzntCwAA8N4EwAAAQCJddNFFXa6++uqTDzzwwLNbtmzZTUcg99TV1a1ZsGDBuJ/+9KdP3n///et0BAAA4IMJgAEAgETr1q1b4d13333k4YcffmqHDh2OyMvLK9QVSK50Ot2wcePGWbNmzZp8/fXXz6qoqGjUFQAAgA9PAAwAAOSMo48+uvWtt956/CGHHHJKu3btBkdEnq5AIqQrKytfmzdv3uQ777xz+owZM6q1BAAA4OMRAAMAADnpuOOOK/vGN75x/CGHHHJa27ZtB4bvBUO2yVRVVc2dN2/epO9///vTpk+fvkVLAAAAPjkBMAAAkPNuu+22vmedddZJffr0Oa5Vq1a9dQT2ntra2uXLly+f/uijjz51xx13vKUjAAAAu5YAGAAAaFa+9KUvdbv44ouP7t+//wlOBsMekamqqpq7cOHCv/z+97+fcd9995VrCQAAwO4jAAYAAJqtSy65pOtll112jDAYdrl0VVXVvIULF/7lV7/61bO/+93v1moJAADAniEABgAAiIirr766x/nnnz9q//33P7JNmzZDUqlUga7Ah5fJZBoqKyv/vnjx4uf+9Kc/zbr33ntX6woAAMCeJwAGAAB4l379+hV97WtfGzRy5MhRPXv2PLaoqKizrsD/VV9fv37VqlXPvPDCC8/9+7//+5zFixfX6woAAMDeJQAGAAB4H61bt8678847Bx599NFHde/efURpaen+4apomq/M1q1bF69Zs+bF5557btY3v/nNOdXV1WltAQAAyB4CYAAAgI9g8ODBrcaOHXvI8OHDD+vevfvw1q1bHxACYXJXprq6+s01a9a88sorr7z8k5/8ZN5rr71Wqy0AAADZSwAMAADwCVx//fX7nHHGGYf169dvePv27Yfm5+e31hWSrLGxsXrjxo2vvvXWWy+PHz/+lR//+McrdQUAACA5BMAAAAC70Je//OUe55xzzvA+ffoM7tix45CioqKuukI2q6+vX7t27doXFy9ePGfixImv3Xvvvat1BQAAILkEwAAAALvRl7/85R6f+cxnBvfr129Qly5dDm/ZsqVAmL2qrq5u7bp16wS+AAAAOUoADAAAsIe0atUq75prrtnn2GOPPXi//fY7uH379oeUlpb2TaVS+brDbpKuqalZtnHjxnlvvfXW3GeffXbef/3Xfy2vra1Naw0AAEBuEgADAADsRQceeGDLq6+++oAhQ4Yc3LNnz4Pbtm17sGuj+biampqqq6qqXi8vL583Z86ceb/85S/nvfjii1t1BgAAoPkQAAMAAGSZoUOHFn/xi1/cf9CgQQf26NHjwHbt2h3YqlWr3qlUKk932CFdU1OzvLKycsHq1asXzJkzZ8Gf//znJTNmzKjWGgAAgOZNAAwAAJAAxx13XNkFF1xw4MEHH3xA165dDywtLd23pKRkn1QqVag7uS2TyTRs27ZtRXV19dJ169YtfOONNxZOmDBh4YQJEzbpDgAAAO8mAAYAAEiw8847r+OJJ57Yp3///vt16dKlT5s2bfZr3bp1v/z8/GLdSZampqaa6urqxZs3b16ybt26pQsXLlzy9NNPL33ooYc26A4AAAAflgAYAAAgx7Rr1y7/kksu6TFkyJCe++67b89OnTr1Kisr61VcXNyzZcuW3VKpVL4u7R2ZTKaprq6uvKamZtWWLVtWVlRUrFy6dOnK2bNnr7r//vvXVFZWNukSAAAAn4QAGAAAoBnp1KlTwec+97luQ4cO7bnPPvv0aNeuXafWrVt3Li4u7tqyZcvORUVFnfLy8lro1MeTTqe319fXr6+rq6uoqalZW11dvb6y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AACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoMY3JP//9K8My551lzpAk293a7QAAAAAAAAD8iIw3r+SL7TpPxuSt4/ibJJuz20QDBgAAAAAAAHhzrJPp6NvHYcyyjLl7dJTPbl/Jp6sPLufSsM+5ec7q5YOrF0OeP/SVaAAAAAAAAIA3weH7u6zfm79dWDIMSw6225w785vsx3XyzasOby5ssz69c4sAAAAAAAAAr9n69C6bC9sT93a7rKdnORin5Otxynzi1JQcfiwCAwAAAAAAALxO69O7HH68TaaT98cp85R8vbp3Nfszv8q0LHn7xMF1sjk/ZzUPmZ/MmWefhAYAAAAAAAD4oayPdjn7223Gn7x6ZrXPnetX8mBKkpv3cufDd/Pufn5FL56SzcVtNheT3dNt8tQlAwAAAAAAAHyv1sm0ySv/9XtsNWZ3I/lHkgzHi7/4XY7WYz5yiwAAAAAAAAA/Ivtcv/3nPEyS1fHa42t5+vNLyX7JoRsCAAAAAAAAePPt1/nbV3/KvePn1Xc371/NYxEYAAAAAAAA4M0yTHk2rvNo2WdzvHZqzN9v/SF3vju3evng/at5fPDLPDu1yuGyZHSVAAAAAAAAAK/XOGe4ueSvZ4e8M8xZbVe5ceuPufvy3Oqkw4+v5emDX+fuuTlLhhwsEYIBAAAAAAAAXpclGR8OuXP0TR4cPM/9z/+SRyfNDf/1TZezOp/87KdjzizJZkhO7edMy/w/nAUAAAAAAADg/zaMWcZkP8/ZLsmLacr2/MV8+cnvs/tP5/4FmLjAq1ifcioAAAAASUVORK5CYII=";
2374
+ //#endregion
2375
+ //#region src/runtime/types.d.ts
2376
+ type RuntimeAdapter = {
2377
+ readonly writeFileOutputType: WRITE_OUTPUT_TYPE | null;
2378
+ loadMedia: (rel: ISlideRelMedia & {
2379
+ path: string;
2380
+ }) => Promise<string>;
2381
+ createSvgPngPreview: (rel: ISlideRelMedia) => Promise<string>;
2382
+ writeFile: (fileName: string, data: string | ArrayBuffer | Blob | Uint8Array) => Promise<string>;
2383
+ };
2384
+ //#endregion
2385
+ //#region src/pptxgen.d.ts
2386
+ declare class PptxGenJS$1 {
2387
+ /**
2388
+ * Presentation layout name
2389
+ * Standard layouts:
2390
+ * - 'LAYOUT_4x3' (10" x 7.5")
2391
+ * - 'LAYOUT_16x9' (10" x 5.625")
2392
+ * - 'LAYOUT_16x10' (10" x 6.25")
2393
+ * - 'LAYOUT_WIDE' (13.33" x 7.5")
2394
+ * Custom layouts:
2395
+ * Use `pptx.defineLayout()` to create custom layouts (e.g.: 'A4')
2396
+ * @type {string}
2397
+ * @see https://support.office.com/en-us/article/Change-the-size-of-your-slides-040a811c-be43-40b9-8d04-0de5ed79987e
2398
+ */
2399
+ private _layout;
2400
+ set layout(value: string);
2401
+ get layout(): string;
2402
+ /**
2403
+ * PptxGenJS Library Version
2404
+ */
2405
+ private readonly _version;
2406
+ get version(): string;
2407
+ /**
2408
+ * @type {string}
2409
+ */
2410
+ private _author;
2411
+ set author(value: string);
2412
+ get author(): string;
2413
+ /**
2414
+ * @type {string}
2415
+ */
2416
+ private _company;
2417
+ set company(value: string);
2418
+ get company(): string;
2419
+ /**
2420
+ * @type {string}
2421
+ * @note the `revision` value must be a whole number only (without "." or "," - otherwise, PPT will throw errors upon opening!)
2422
+ */
2423
+ private _revision;
2424
+ set revision(value: string);
2425
+ get revision(): string;
2426
+ /**
2427
+ * @type {string}
2428
+ */
2429
+ private _subject;
2430
+ set subject(value: string);
2431
+ get subject(): string;
2432
+ /**
2433
+ * @type {ThemeProps}
2434
+ */
2435
+ private _theme;
2436
+ set theme(value: ThemeProps);
2437
+ get theme(): ThemeProps;
2438
+ /**
2439
+ * @type {string}
2440
+ */
2441
+ private _title;
2442
+ set title(value: string);
2443
+ get title(): string;
2444
+ /**
2445
+ * Whether Right-to-Left (RTL) mode is enabled
2446
+ * @type {boolean}
2447
+ */
2448
+ private _rtlMode;
2449
+ set rtlMode(value: boolean);
2450
+ get rtlMode(): boolean;
2451
+ /** master slide layout object */
2452
+ private readonly _masterSlide;
2453
+ get masterSlide(): PresSlide;
2454
+ /** this Presentation's Slide objects */
2455
+ private readonly _slides;
2456
+ get slides(): PresSlide[];
2457
+ /** this Presentation's sections */
2458
+ private readonly _sections;
2459
+ get sections(): SectionProps[];
2460
+ /** slide layout definition objects, used for generating slide layout files */
2461
+ private readonly _slideLayouts;
2462
+ get slideLayouts(): SlideLayout[];
2463
+ private get internalPresentation();
2464
+ private LAYOUTS;
2465
+ private readonly _alignH;
2466
+ get AlignH(): typeof AlignH;
2467
+ private readonly _alignV;
2468
+ get AlignV(): typeof AlignV;
2469
+ private readonly _chartType;
2470
+ get ChartType(): typeof ChartType;
2471
+ private readonly _outputType;
2472
+ get OutputType(): typeof OutputType;
2473
+ private _presLayout;
2474
+ get presLayout(): PresLayout;
2475
+ private readonly _schemeColor;
2476
+ get SchemeColor(): typeof SchemeColor;
2477
+ private readonly _shapeType;
2478
+ get ShapeType(): typeof ShapeType;
2479
+ /**
2480
+ * @depricated use `ChartType`
2481
+ */
2482
+ private readonly _charts;
2483
+ get charts(): typeof CHART_TYPE;
2484
+ /**
2485
+ * @depricated use `SchemeColor`
2486
+ */
2487
+ private readonly _colors;
2488
+ get colors(): typeof SCHEME_COLOR_NAMES;
2489
+ /**
2490
+ * @depricated use `ShapeType`
2491
+ */
2492
+ private readonly _shapes;
2493
+ get shapes(): typeof SHAPE_TYPE;
2494
+ private readonly _runtime;
2495
+ constructor(runtime: RuntimeAdapter);
2496
+ /**
2497
+ * Provides an API for `addTableDefinition` to create slides as needed for auto-paging
2498
+ * @param {AddSlideProps} options - slide masterName and/or sectionTitle
2499
+ * @return {PresSlide} new Slide
2500
+ */
2501
+ private readonly addNewSlide;
2502
+ /**
2503
+ * Provides an API for `addTableDefinition` to get slide reference by number
2504
+ * @param {number} slideNum - slide number
2505
+ * @return {PresSlide} Slide
2506
+ * @since 3.0.0
2507
+ */
2508
+ private readonly getSlide;
2509
+ /**
2510
+ * Enables the `Slide` class to set PptxGenJS [Presentation] master/layout slidenumbers
2511
+ * @param {SlideNumberProps} slideNum - slide number config
2512
+ */
2513
+ private readonly setSlideNumber;
2514
+ /**
2515
+ * Create all chart and media rels for this Presentation
2516
+ * @param {PresSlideInternal | SlideLayoutInternal} slide - slide with rels
2517
+ * @param {JSZip} zip - JSZip instance
2518
+ * @param {Promise<string>[]} chartPromises - promise array
2519
+ */
2520
+ private readonly createChartMediaRels;
2521
+ /**
2522
+ * Create and export the .pptx file
2523
+ * @param {WRITE_OUTPUT_TYPE} outputType - output file type
2524
+ * @return {Promise<string | ArrayBuffer | Blob | Uint8Array>} Promise with data or stream (node) or filename (browser)
2525
+ */
2526
+ private readonly exportPresentation;
2527
+ /**
2528
+ * Export the current Presentation to stream
2529
+ * @param {WriteBaseProps} props - output properties
2530
+ * @returns {Promise<string | ArrayBuffer | Blob | Uint8Array>} file stream
2531
+ */
2532
+ stream(props?: WriteBaseProps): Promise<string | ArrayBuffer | Blob | Uint8Array>;
2533
+ /**
2534
+ * Export the current Presentation as JSZip content with the selected type
2535
+ * @param {WriteProps} props output properties
2536
+ * @returns {Promise<string | ArrayBuffer | Blob | Uint8Array>} file content in selected type
2537
+ */
2538
+ write(props?: WriteProps | WRITE_OUTPUT_TYPE): Promise<string | ArrayBuffer | Blob | Uint8Array>;
2539
+ /**
2540
+ * Export the current Presentation.
2541
+ * Write the generated presentation to disk (Node) or trigger a download (browser).
2542
+ * @param {WriteFileProps} props - output file properties
2543
+ * @returns {Promise<string>} the presentation name
2544
+ */
2545
+ writeFile(props?: WriteFileProps | string): Promise<string>;
2546
+ /**
2547
+ * Add a new Section to Presentation
2548
+ * @param {ISectionProps} section - section properties
2549
+ * @example pptx.addSection({ title:'Charts' });
2550
+ */
2551
+ addSection(section: SectionProps): void;
2552
+ /**
2553
+ * Add a new Slide to Presentation
2554
+ * @param {AddSlideProps} options - slide options
2555
+ * @returns {PresSlide} the new Slide
2556
+ */
2557
+ addSlide(options?: AddSlideProps): PresSlide;
2558
+ /**
2559
+ * Create a custom Slide Layout in any size
2560
+ * @param {PresLayout} layout - layout properties
2561
+ * @example pptx.defineLayout({ name:'A3', width:16.5, height:11.7 });
2562
+ */
2563
+ defineLayout(layout: PresLayout): void;
2564
+ /**
2565
+ * Create a new slide master [layout] for the Presentation
2566
+ * @param {SlideMasterProps} props - layout properties
2567
+ */
2568
+ defineSlideMaster(props: SlideMasterProps): void;
2569
+ /**
2570
+ * Reproduces an HTML table as a PowerPoint table - including column widths, style, etc. - creates 1 or more slides as needed
2571
+ * @param {string} eleId - table HTML element ID
2572
+ * @param {TableToSlidesProps} options - generation options
2573
+ */
2574
+ tableToSlides(eleId: string, options?: TableToSlidesProps): void;
2575
+ }
2576
+ //#endregion
2577
+ //#region src/browser.d.ts
2578
+ declare class PptxGenJS extends PptxGenJS$1 {
2579
+ constructor();
2580
+ }
2581
+ //#endregion
2582
+ export { AXIS_ID_CATEGORY_PRIMARY, AXIS_ID_CATEGORY_SECONDARY, AXIS_ID_SERIES_PRIMARY, AXIS_ID_VALUE_PRIMARY, AXIS_ID_VALUE_SECONDARY, type AddSlideProps, AlignH, AlignV, BARCHART_COLORS, BULLET_TYPES, type BackgroundProps, type BorderProps, CHART_NAME, CHART_TYPE, CRLF, type ChartAxisTickMark, type ChartLineCap, ChartType, type Color, type Coord, DEF_BULLET_MARGIN, DEF_CELL_BORDER, DEF_CELL_MARGIN_IN, DEF_CELL_MARGIN_PT, DEF_CHART_BORDER, DEF_CHART_GRIDLINE, DEF_FONT_COLOR, DEF_FONT_SIZE, DEF_FONT_TITLE_SIZE, DEF_PRES_LAYOUT, DEF_PRES_LAYOUT_NAME, DEF_SHAPE_LINE_COLOR, DEF_SHAPE_SHADOW, DEF_SLIDE_BKGD, DEF_SLIDE_MARGIN_IN, DEF_TEXT_GLOW, DEF_TEXT_SHADOW, type DataOrPathProps, type DataOrPathRequiredProps, EMU, type HAlign, type HexColor, type HyperlinkProps, type IChartAreaProps, type IChartMulti, type IChartOpts, type IChartOptsLib, type IChartPropsAxisCat, type IChartPropsAxisSer, type IChartPropsAxisVal, type IChartPropsBase, type IChartPropsChartBar, type IChartPropsChartDoughnut, type IChartPropsChartLine, type IChartPropsChartPie, type IChartPropsChartRadar, type IChartPropsDataLabel, type IChartPropsDataTable, type IChartPropsFillLine, type IChartPropsLegend, type IChartPropsTitle, IMG_BROKEN, IMG_PLAYBTN, type IOptsChartData, type IPresentationProps, type ISlideObject, type ISlideRel, type ISlideRelChart, type ISlideRelMedia, type ImageProps, JSZIP_OUTPUT_TYPE, LAYOUT_IDX_SERIES_BASE, LETTERS, LINEH_MODIFIER, MASTER_OBJECTS, type Margin, type MediaProps, type MediaType, ONEPT, type ObjectNameProps, type ObjectOptions, type OptsChartData, type OptsChartGridLine, OutputType, PIECHART_COLORS, PLACEHOLDER_TYPE, PLACEHOLDER_TYPES, type PlaceholderProps, type PositionProps, PptxGenJS, PptxGenJS as Presentation, PptxGenJS as default, type PresLayout, type PresSlide, type PresSlide as Slide, type PresSlideInternal, type PresentationProps, REGEX_HEX_COLOR, SCHEME_COLORS, SCHEME_COLOR_NAMES, SHAPE_NAME, SHAPE_TYPE, SLDNUMFLDID, SLIDE_OBJECT_TYPES, SchemeColor, type SectionInternalProps, type SectionProps, type ShadowProps, type ShapeFillProps, type ShapeLineProps, type ShapeProps, ShapeType, type SlideBaseProps, type SlideLayout, type SlideLayoutInternal, type SlideMasterChartProps, type SlideMasterObject, type SlideMasterProps, type SlideNumberProps, TEXT_HALIGN, TEXT_VALIGN, type TableCell, type TableCellProps, type TableProps, type TableRow, type TableRowSlide, type TableToSlidesProps, type TextBaseProps, type TextGlowProps, type TextProps, type TextPropsOptions, type ThemeColor, type ThemeProps, type VAlign, WRITE_OUTPUT_TYPE, type WriteBaseProps, type WriteFileProps, type WriteProps };
2583
+ //# sourceMappingURL=standalone.d.ts.map