@json-to-office/core-pptx 0.24.0 → 0.26.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.
- package/dist/components/chart.d.ts +21 -0
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/shape.d.ts +22 -7
- package/dist/components/shape.d.ts.map +1 -1
- package/dist/components/text.d.ts +21 -1
- package/dist/components/text.d.ts.map +1 -1
- package/dist/core/generationContext.d.ts +56 -0
- package/dist/core/generationContext.d.ts.map +1 -0
- package/dist/core/generator.d.ts +21 -2
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/packagePresentation.d.ts +7 -0
- package/dist/core/packagePresentation.d.ts.map +1 -1
- package/dist/core/render.d.ts +2 -2
- package/dist/core/render.d.ts.map +1 -1
- package/dist/core/structure.d.ts.map +1 -1
- package/dist/index.js +343 -123
- package/dist/index.js.map +1 -1
- package/dist/plugin/createPresentationGenerator.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/fillXml.d.ts +19 -0
- package/dist/utils/fillXml.d.ts.map +1 -0
- package/dist/utils/warn.d.ts +3 -0
- package/dist/utils/warn.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -23,6 +23,10 @@ interface ChartComponentProps {
|
|
|
23
23
|
titleColor?: string;
|
|
24
24
|
titleFontFace?: string;
|
|
25
25
|
chartColors?: string[];
|
|
26
|
+
dataBorder?: {
|
|
27
|
+
pt: number;
|
|
28
|
+
color: string;
|
|
29
|
+
};
|
|
26
30
|
legendPos?: string;
|
|
27
31
|
legendFontSize?: number;
|
|
28
32
|
legendFontFace?: string;
|
|
@@ -32,6 +36,12 @@ interface ChartComponentProps {
|
|
|
32
36
|
catAxisLabelRotate?: number;
|
|
33
37
|
catAxisLabelFontSize?: number;
|
|
34
38
|
catAxisLabelColor?: string;
|
|
39
|
+
catAxisLabelFontFace?: string;
|
|
40
|
+
catGridLine?: {
|
|
41
|
+
style?: string;
|
|
42
|
+
size?: number;
|
|
43
|
+
color?: string;
|
|
44
|
+
};
|
|
35
45
|
valAxisTitle?: string;
|
|
36
46
|
valAxisHidden?: boolean;
|
|
37
47
|
valAxisMinVal?: number;
|
|
@@ -39,12 +49,23 @@ interface ChartComponentProps {
|
|
|
39
49
|
valAxisLabelFormatCode?: string;
|
|
40
50
|
valAxisMajorUnit?: number;
|
|
41
51
|
valAxisLabelColor?: string;
|
|
52
|
+
valAxisLabelFontFace?: string;
|
|
53
|
+
valAxisLabelFontSize?: number;
|
|
54
|
+
valGridLine?: {
|
|
55
|
+
style?: string;
|
|
56
|
+
size?: number;
|
|
57
|
+
color?: string;
|
|
58
|
+
};
|
|
59
|
+
catAxisLineShow?: boolean;
|
|
60
|
+
valAxisLineShow?: boolean;
|
|
42
61
|
barDir?: string;
|
|
43
62
|
barGrouping?: string;
|
|
44
63
|
barGapWidthPct?: number;
|
|
64
|
+
barOverlapPct?: number;
|
|
45
65
|
lineSmooth?: boolean;
|
|
46
66
|
lineDataSymbol?: string;
|
|
47
67
|
lineSize?: number;
|
|
68
|
+
lineDataSymbolSize?: number;
|
|
48
69
|
firstSliceAng?: number;
|
|
49
70
|
holeSize?: number;
|
|
50
71
|
radarStyle?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/components/chart.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIjE,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,EAAE,CAAC;IAExB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/components/chart.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIjE,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,EAAE,CAAC;IAExB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEhE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB;AA4BD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,eAAe,EAAE,GAC3B,IAAI,CAqMN"}
|
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
* Shape Component Renderer
|
|
3
3
|
*/
|
|
4
4
|
import type PptxGenJS from 'pptxgenjs';
|
|
5
|
-
import type { PptxThemeConfig, StyleName, PipelineWarning } from '../types';
|
|
6
|
-
import type { TextSegment } from '@json-to-office/shared-pptx';
|
|
5
|
+
import type { PptxThemeConfig, StyleName, PipelineWarning, PendingXmlFill, SlideRenderContext } from '../types';
|
|
6
|
+
import type { TextSegment, GradientFill, PatternFill } from '@json-to-office/shared-pptx';
|
|
7
|
+
export interface ShapeFillProps {
|
|
8
|
+
color?: string;
|
|
9
|
+
transparency?: number;
|
|
10
|
+
gradient?: GradientFill;
|
|
11
|
+
pattern?: PatternFill;
|
|
12
|
+
}
|
|
7
13
|
interface ShapeComponentProps {
|
|
8
14
|
type: string;
|
|
9
15
|
x?: number | string;
|
|
10
16
|
y?: number | string;
|
|
11
17
|
w?: number | string;
|
|
12
18
|
h?: number | string;
|
|
13
|
-
fill?:
|
|
14
|
-
color: string;
|
|
15
|
-
transparency?: number;
|
|
16
|
-
};
|
|
19
|
+
fill?: ShapeFillProps;
|
|
17
20
|
line?: {
|
|
18
21
|
color?: string;
|
|
19
22
|
width?: number;
|
|
@@ -30,6 +33,9 @@ interface ShapeComponentProps {
|
|
|
30
33
|
align?: string;
|
|
31
34
|
valign?: string;
|
|
32
35
|
rotate?: number;
|
|
36
|
+
angleRange?: [number, number];
|
|
37
|
+
flipH?: boolean;
|
|
38
|
+
flipV?: boolean;
|
|
33
39
|
shadow?: {
|
|
34
40
|
type?: string;
|
|
35
41
|
color?: string;
|
|
@@ -41,6 +47,15 @@ interface ShapeComponentProps {
|
|
|
41
47
|
rectRadius?: number;
|
|
42
48
|
style?: StyleName;
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Apply a shape fill to pptxgenjs opts. Gradient and pattern fills are not
|
|
52
|
+
* expressible through pptxgenjs, so they render as a sentinel solid fill on a
|
|
53
|
+
* shape tagged with a unique `objectName`; the real fill XML is registered in
|
|
54
|
+
* `pendingFills` and spliced in by packagePresentationBuffer. Without a
|
|
55
|
+
* registry (direct render outside the buffer pipeline) they degrade to the
|
|
56
|
+
* sentinel solid color with a warning.
|
|
57
|
+
*/
|
|
58
|
+
export declare function applyShapeFill(opts: Record<string, unknown>, fill: ShapeFillProps, theme: PptxThemeConfig, warnings?: PipelineWarning[], pendingFills?: PendingXmlFill[]): void;
|
|
59
|
+
export declare function renderShapeComponent(slide: PptxGenJS.Slide, props: ShapeComponentProps, theme: PptxThemeConfig, pptx: PptxGenJS, warnings?: PipelineWarning[], ctx?: SlideRenderContext): void;
|
|
45
60
|
export {};
|
|
46
61
|
//# sourceMappingURL=shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/components/shape.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../../src/components/shape.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAOrC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAoBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,eAAe,EACtB,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,YAAY,CAAC,EAAE,cAAc,EAAE,GAC9B,IAAI,CA+DN;AAqDD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,GAAG,CAAC,EAAE,kBAAkB,GACvB,IAAI,CAyHN"}
|
|
@@ -4,8 +4,27 @@
|
|
|
4
4
|
import type PptxGenJS from 'pptxgenjs';
|
|
5
5
|
import type { PptxThemeConfig, StyleName, PipelineWarning, SlideContext } from '../types';
|
|
6
6
|
import { type HyperlinkProps } from '../utils/hyperlink';
|
|
7
|
-
interface
|
|
7
|
+
interface TextRunProps {
|
|
8
8
|
text: string;
|
|
9
|
+
color?: string;
|
|
10
|
+
bold?: boolean;
|
|
11
|
+
fontWeight?: number;
|
|
12
|
+
italic?: boolean;
|
|
13
|
+
underline?: boolean | {
|
|
14
|
+
style?: string;
|
|
15
|
+
color?: string;
|
|
16
|
+
};
|
|
17
|
+
strike?: boolean;
|
|
18
|
+
fontSize?: number;
|
|
19
|
+
fontFace?: string;
|
|
20
|
+
superscript?: boolean;
|
|
21
|
+
subscript?: boolean;
|
|
22
|
+
charSpacing?: number;
|
|
23
|
+
breakLine?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface TextComponentProps {
|
|
26
|
+
text?: string;
|
|
27
|
+
runs?: TextRunProps[];
|
|
9
28
|
x?: number | string;
|
|
10
29
|
y?: number | string;
|
|
11
30
|
w?: number | string;
|
|
@@ -46,6 +65,7 @@ interface TextComponentProps {
|
|
|
46
65
|
};
|
|
47
66
|
hyperlink?: HyperlinkProps;
|
|
48
67
|
lineSpacing?: number;
|
|
68
|
+
lineSpacingMultiple?: number;
|
|
49
69
|
charSpacing?: number;
|
|
50
70
|
paraSpaceBefore?: number;
|
|
51
71
|
paraSpaceAfter?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/components/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/components/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzE,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAaD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,QAAQ,CAAC,EAAE,YAAY,GACtB,IAAI,CA4MN"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared generation prologue.
|
|
3
|
+
*
|
|
4
|
+
* Both entry points — `generateBufferWithWarnings` (core) and
|
|
5
|
+
* `createPresentationGenerator` (plugin) — must resolve the same theme, run
|
|
6
|
+
* the same export-mode pre-pass, and derive the same cache key before slide
|
|
7
|
+
* processing runs. Keeping two copies of that is how DOCX silently dropped a
|
|
8
|
+
* root-level prop from one path (#133); this module is the single definition
|
|
9
|
+
* so the next root-level prop cannot diverge (#134). Mirrors
|
|
10
|
+
* core-docx/src/core/generationContext.ts.
|
|
11
|
+
*
|
|
12
|
+
* The prologue deliberately stops before font resolution: the core path
|
|
13
|
+
* resolves fonts straight after this, while the plugin path must first expand
|
|
14
|
+
* custom components (which can introduce new families). The export-mode
|
|
15
|
+
* pre-pass runs here, BEFORE expansion, so custom components reading
|
|
16
|
+
* `theme.fonts.*` during render see substituted names, not the original
|
|
17
|
+
* non-safe ones.
|
|
18
|
+
*/
|
|
19
|
+
import type { PresentationComponentDefinition, PptxThemeConfig, PipelineWarning } from '../types';
|
|
20
|
+
import type { FontRuntimeOpts } from '@json-to-office/shared';
|
|
21
|
+
export interface ThemeContextOptions {
|
|
22
|
+
customThemes?: Record<string, PptxThemeConfig>;
|
|
23
|
+
fonts?: FontRuntimeOpts;
|
|
24
|
+
warnings?: PipelineWarning[];
|
|
25
|
+
/**
|
|
26
|
+
* Base theme name when the document doesn't name one. The plugin builder
|
|
27
|
+
* passes its constructor-supplied string theme; defaults to 'default'.
|
|
28
|
+
*/
|
|
29
|
+
defaultThemeName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Theme lookup for the base `props.theme` name. The plugin builder passes
|
|
32
|
+
* its own (customThemes → constructor theme object → built-in); omit it to
|
|
33
|
+
* use customThemes → built-in.
|
|
34
|
+
*/
|
|
35
|
+
resolveNamedTheme?: (name: string) => PptxThemeConfig;
|
|
36
|
+
}
|
|
37
|
+
export interface GenerationThemeContext {
|
|
38
|
+
/**
|
|
39
|
+
* The document after the export-mode pre-pass rewrote font references.
|
|
40
|
+
* `props.theme` stays as authored (name or inline object) — callers hand
|
|
41
|
+
* `theme` to `processPresentation` by value instead of round-tripping it
|
|
42
|
+
* through a name lookup (#135).
|
|
43
|
+
*/
|
|
44
|
+
document: PresentationComponentDefinition;
|
|
45
|
+
theme: PptxThemeConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Cache key: base theme name + export-mode scope. Nothing in PPTX consumes
|
|
48
|
+
* a theme by name after the prologue today; this is the key a future
|
|
49
|
+
* theme-keyed cache must use (a substitute-mode run rewrites the theme in
|
|
50
|
+
* place, so it must never share a slot with a custom-mode run of the same
|
|
51
|
+
* base name — the DOCX layout cache is keyed exactly this way).
|
|
52
|
+
*/
|
|
53
|
+
themeName: string;
|
|
54
|
+
}
|
|
55
|
+
export declare function resolveThemeContext(documentIn: PresentationComponentDefinition, options?: ThemeContextOptions): GenerationThemeContext;
|
|
56
|
+
//# sourceMappingURL=generationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generationContext.d.ts","sourceRoot":"","sources":["../../src/core/generationContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,+BAA+B,EAC/B,eAAe,EACf,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,EAAE,+BAA+B,CAAC;IAC1C,KAAK,EAAE,eAAe,CAAC;IACvB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,+BAA+B,EAC3C,OAAO,GAAE,mBAAwB,GAChC,sBAAsB,CA6DxB"}
|
package/dist/core/generator.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="node" />
|
|
6
6
|
import PptxGenJS from 'pptxgenjs';
|
|
7
|
-
import type { PresentationComponentDefinition, PptxThemeConfig, PipelineWarning } from '../types';
|
|
7
|
+
import type { PresentationComponentDefinition, PptxThemeConfig, PipelineWarning, PendingXmlFill } from '../types';
|
|
8
8
|
import type { ServicesConfig, FontRuntimeOpts } from '@json-to-office/shared';
|
|
9
9
|
import { type ValidationError } from '@json-to-office/shared-pptx';
|
|
10
10
|
import { type PresentationPackagingOptions } from './packagePresentation';
|
|
@@ -19,6 +19,12 @@ export interface GenerationValidationOptions {
|
|
|
19
19
|
*/
|
|
20
20
|
export interface GenerationOptions extends PresentationPackagingOptions {
|
|
21
21
|
customThemes?: Record<string, PptxThemeConfig>;
|
|
22
|
+
/**
|
|
23
|
+
* Fully resolved theme, set by the generation prologue after the
|
|
24
|
+
* export-mode pre-pass. Wins over the `props.theme` name/inline lookup in
|
|
25
|
+
* `processPresentation` — omit it (direct callers) to fall back to that.
|
|
26
|
+
*/
|
|
27
|
+
theme?: PptxThemeConfig;
|
|
22
28
|
services?: ServicesConfig;
|
|
23
29
|
fonts?: FontRuntimeOpts;
|
|
24
30
|
validation?: GenerationValidationOptions;
|
|
@@ -35,6 +41,19 @@ export declare class PresentationValidationError extends Error {
|
|
|
35
41
|
readonly errors: ValidationError[];
|
|
36
42
|
constructor(errors: ValidationError[]);
|
|
37
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Structural rules the per-component schema can't express: image sources
|
|
46
|
+
* (path/base64/svg) are mutually exclusive, and text components carry
|
|
47
|
+
* exactly one of text/runs. Reject conflicting payloads before rendering so
|
|
48
|
+
* they can't be silently resolved by runtime precedence. Matches core-docx,
|
|
49
|
+
* which fails generation on the same image conflict.
|
|
50
|
+
*
|
|
51
|
+
* Runs unconditionally — the validators also collect these conflicts, so this
|
|
52
|
+
* is the net for `validation: { enabled: false }`. Shared with the plugin
|
|
53
|
+
* path, which checks the expanded tree (custom components can emit
|
|
54
|
+
* conflicting payloads too).
|
|
55
|
+
*/
|
|
56
|
+
export declare function assertNoContentConflicts(document: unknown): void;
|
|
38
57
|
/**
|
|
39
58
|
* Type guard for presentation component
|
|
40
59
|
*/
|
|
@@ -42,7 +61,7 @@ export declare function isPresentationComponentDefinition(definition: unknown):
|
|
|
42
61
|
/**
|
|
43
62
|
* Generate a PptxGenJS instance from a presentation component definition
|
|
44
63
|
*/
|
|
45
|
-
export declare function generatePresentation(document: PresentationComponentDefinition, options?: GenerationOptions, warnings?: PipelineWarning[]): Promise<PptxGenJS>;
|
|
64
|
+
export declare function generatePresentation(document: PresentationComponentDefinition, options?: GenerationOptions, warnings?: PipelineWarning[], pendingFills?: PendingXmlFill[]): Promise<PptxGenJS>;
|
|
46
65
|
/**
|
|
47
66
|
* Generate a buffer from JSON definition
|
|
48
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,EACV,+BAA+B,EAC/B,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,EACV,+BAA+B,EAC/B,eAAe,EACf,eAAe,EACf,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9E,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,4BAA4B;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C;AAID;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,6EAA6E;AAC7E,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,SAAgB,MAAM,EAAE,eAAe,EAAE,CAAC;gBAE9B,MAAM,EAAE,eAAe,EAAE;CAStC;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAYhE;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,OAAO,GAClB,UAAU,IAAI,+BAA+B,CAI/C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,+BAA+B,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,YAAY,CAAC,EAAE,cAAc,EAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CAWpB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GAAG,+BAA+B,EACpD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GAAG,+BAA+B,EACpD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAwD3B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,+BAA+B,EACpD,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { PendingXmlFill } from '../types';
|
|
2
3
|
/** Stable default shared by package entries and OOXML core metadata. */
|
|
3
4
|
export declare const DEFAULT_GENERATED_AT = "2000-01-01T00:00:00.000Z";
|
|
4
5
|
export interface PresentationPackagingOptions {
|
|
@@ -6,6 +7,12 @@ export interface PresentationPackagingOptions {
|
|
|
6
7
|
deterministic?: boolean;
|
|
7
8
|
/** Clock used when deterministic packaging is enabled. */
|
|
8
9
|
generatedAt?: Date | string;
|
|
10
|
+
/**
|
|
11
|
+
* Gradient/pattern fills registered during rendering. Each entry names a
|
|
12
|
+
* shape (via its sentinel `cNvPr name`) whose `<a:solidFill>` is swapped for
|
|
13
|
+
* the registered fill XML.
|
|
14
|
+
*/
|
|
15
|
+
pendingFills?: PendingXmlFill[];
|
|
9
16
|
}
|
|
10
17
|
/**
|
|
11
18
|
* Apply post-generation OOXML fixes and deterministic package metadata.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packagePresentation.d.ts","sourceRoot":"","sources":["../../src/core/packagePresentation.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"packagePresentation.d.ts","sourceRoot":"","sources":["../../src/core/packagePresentation.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,6BAA6B,CAAC;AAE/D,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACjC;AAqLD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
|
package/dist/core/render.d.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Internal model -> pptxgenjs calls
|
|
4
4
|
*/
|
|
5
5
|
import PptxGenJS from 'pptxgenjs';
|
|
6
|
-
import type { ProcessedPresentation, PipelineWarning } from '../types';
|
|
7
|
-
export declare function renderPresentation(processed: ProcessedPresentation, warnings?: PipelineWarning[]): Promise<PptxGenJS>;
|
|
6
|
+
import type { ProcessedPresentation, PipelineWarning, PendingXmlFill } from '../types';
|
|
7
|
+
export declare function renderPresentation(processed: ProcessedPresentation, warnings?: PipelineWarning[], pendingFills?: PendingXmlFill[]): Promise<PptxGenJS>;
|
|
8
8
|
//# sourceMappingURL=render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EAGf,MAAM,UAAU,CAAC;AAUlB,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,qBAAqB,EAChC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,YAAY,CAAC,EAAE,cAAc,EAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CAiQpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/core/structure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,+BAA+B,EAC/B,qBAAqB,EAGtB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmCrD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,+BAA+B,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/core/structure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAGV,+BAA+B,EAC/B,qBAAqB,EAGtB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmCrD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,+BAA+B,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,qBAAqB,CAuJvB"}
|