@json-to-office/core-docx 0.1.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/LICENSE +18 -0
- package/README.md +9 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/key-generator.d.ts +34 -0
- package/dist/cache/key-generator.d.ts.map +1 -0
- package/dist/components/columns.d.ts +12 -0
- package/dist/components/columns.d.ts.map +1 -0
- package/dist/components/footer.d.ts +12 -0
- package/dist/components/footer.d.ts.map +1 -0
- package/dist/components/header.d.ts +12 -0
- package/dist/components/header.d.ts.map +1 -0
- package/dist/components/heading.d.ts +12 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/highcharts.d.ts +21 -0
- package/dist/components/highcharts.d.ts.map +1 -0
- package/dist/components/image.d.ts +12 -0
- package/dist/components/image.d.ts.map +1 -0
- package/dist/components/index.d.ts +19 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/list.d.ts +12 -0
- package/dist/components/list.d.ts.map +1 -0
- package/dist/components/paragraph.d.ts +12 -0
- package/dist/components/paragraph.d.ts.map +1 -0
- package/dist/components/section.d.ts +12 -0
- package/dist/components/section.d.ts.map +1 -0
- package/dist/components/statistic.d.ts +12 -0
- package/dist/components/statistic.d.ts.map +1 -0
- package/dist/components/table.d.ts +13 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/text-box.d.ts +9 -0
- package/dist/components/text-box.d.ts.map +1 -0
- package/dist/components/text-space-after.d.ts +35 -0
- package/dist/components/text-space-after.d.ts.map +1 -0
- package/dist/components/toc/index.d.ts +30 -0
- package/dist/components/toc/index.d.ts.map +1 -0
- package/dist/core/cached-render.d.ts +46 -0
- package/dist/core/cached-render.d.ts.map +1 -0
- package/dist/core/content.d.ts +263 -0
- package/dist/core/content.d.ts.map +1 -0
- package/dist/core/generator.d.ts +93 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/layout.d.ts +107 -0
- package/dist/core/layout.d.ts.map +1 -0
- package/dist/core/render.d.ts +26 -0
- package/dist/core/render.d.ts.map +1 -0
- package/dist/core/structure.d.ts +67 -0
- package/dist/core/structure.d.ts.map +1 -0
- package/dist/examples/test-spacing-debug.d.ts +2 -0
- package/dist/examples/test-spacing-debug.d.ts.map +1 -0
- package/dist/examples/test-spacing.d.ts +6 -0
- package/dist/examples/test-spacing.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7726 -0
- package/dist/index.js.map +1 -0
- package/dist/json/filesystem.d.ts +81 -0
- package/dist/json/filesystem.d.ts.map +1 -0
- package/dist/json/index.d.ts +6 -0
- package/dist/json/index.d.ts.map +1 -0
- package/dist/json/normalizer.d.ts +30 -0
- package/dist/json/normalizer.d.ts.map +1 -0
- package/dist/json/parser.d.ts +9 -0
- package/dist/json/parser.d.ts.map +1 -0
- package/dist/plugin/createComponent.d.ts +113 -0
- package/dist/plugin/createComponent.d.ts.map +1 -0
- package/dist/plugin/createDocumentGenerator.d.ts +18 -0
- package/dist/plugin/createDocumentGenerator.d.ts.map +1 -0
- package/dist/plugin/example/columns-layout.component.d.ts +29 -0
- package/dist/plugin/example/columns-layout.component.d.ts.map +1 -0
- package/dist/plugin/example/index.d.ts +6 -0
- package/dist/plugin/example/index.d.ts.map +1 -0
- package/dist/plugin/example/index.js +7449 -0
- package/dist/plugin/example/index.js.map +1 -0
- package/dist/plugin/example/nested-section.component.d.ts +16 -0
- package/dist/plugin/example/nested-section.component.d.ts.map +1 -0
- package/dist/plugin/example/plugin-demo.json +103 -0
- package/dist/plugin/example/text-space-after.component.d.ts +22 -0
- package/dist/plugin/example/text-space-after.component.d.ts.map +1 -0
- package/dist/plugin/example/weather.component.d.ts +29 -0
- package/dist/plugin/example/weather.component.d.ts.map +1 -0
- package/dist/plugin/index.d.ts +35 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/schema.d.ts +30 -0
- package/dist/plugin/schema.d.ts.map +1 -0
- package/dist/plugin/types.d.ts +144 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/validation.d.ts +45 -0
- package/dist/plugin/validation.d.ts.map +1 -0
- package/dist/plugin/version-resolver.d.ts +10 -0
- package/dist/plugin/version-resolver.d.ts.map +1 -0
- package/dist/styles/index.d.ts +13 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/theme-resolver.d.ts +6 -0
- package/dist/styles/theme-resolver.d.ts.map +1 -0
- package/dist/styles/theme-validator.d.ts +7 -0
- package/dist/styles/theme-validator.d.ts.map +1 -0
- package/dist/styles/themeToDocxAdapter.d.ts +22 -0
- package/dist/styles/themeToDocxAdapter.d.ts.map +1 -0
- package/dist/styles/utils/borderUtils.d.ts +88 -0
- package/dist/styles/utils/borderUtils.d.ts.map +1 -0
- package/dist/styles/utils/cellUtils.d.ts +55 -0
- package/dist/styles/utils/cellUtils.d.ts.map +1 -0
- package/dist/styles/utils/colorUtils.d.ts +27 -0
- package/dist/styles/utils/colorUtils.d.ts.map +1 -0
- package/dist/styles/utils/componentDefaults.d.ts +97 -0
- package/dist/styles/utils/componentDefaults.d.ts.map +1 -0
- package/dist/styles/utils/layoutUtils.d.ts +87 -0
- package/dist/styles/utils/layoutUtils.d.ts.map +1 -0
- package/dist/styles/utils/styleHelpers.d.ts +90 -0
- package/dist/styles/utils/styleHelpers.d.ts.map +1 -0
- package/dist/templates/documents/index.d.ts +34 -0
- package/dist/templates/documents/index.d.ts.map +1 -0
- package/dist/templates/documents/proposal.docx.json +171 -0
- package/dist/templates/documents/quarterly-report.docx.json +117 -0
- package/dist/templates/documents/technical-guide.docx.json +178 -0
- package/dist/templates/themes/corporate.docx.theme.json +118 -0
- package/dist/templates/themes/index.d.ts +5765 -0
- package/dist/templates/themes/index.d.ts.map +1 -0
- package/dist/templates/themes/minimal.docx.theme.json +194 -0
- package/dist/templates/themes/modern.docx.theme.json +115 -0
- package/dist/themes/defaults.d.ts +1300 -0
- package/dist/themes/defaults.d.ts.map +1 -0
- package/dist/themes/json/index.d.ts +44 -0
- package/dist/themes/json/index.d.ts.map +1 -0
- package/dist/themes/json/loader.d.ts +26 -0
- package/dist/themes/json/loader.d.ts.map +1 -0
- package/dist/themes/json/parser.d.ts +25 -0
- package/dist/themes/json/parser.d.ts.map +1 -0
- package/dist/themes/json/validator.d.ts +35 -0
- package/dist/themes/json/validator.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +158 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +67 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/utils/alignmentUtils.d.ts +10 -0
- package/dist/utils/alignmentUtils.d.ts.map +1 -0
- package/dist/utils/bookmarkRegistry.d.ts +49 -0
- package/dist/utils/bookmarkRegistry.d.ts.map +1 -0
- package/dist/utils/docxImagePositioning.d.ts +18 -0
- package/dist/utils/docxImagePositioning.d.ts.map +1 -0
- package/dist/utils/environment.d.ts +14 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/exampleRunner.d.ts +17 -0
- package/dist/utils/exampleRunner.d.ts.map +1 -0
- package/dist/utils/fixFloatingImageIds.d.ts +18 -0
- package/dist/utils/fixFloatingImageIds.d.ts.map +1 -0
- package/dist/utils/formatters.d.ts +2 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/imageUtils.d.ts +84 -0
- package/dist/utils/imageUtils.d.ts.map +1 -0
- package/dist/utils/numberingConfig.d.ts +84 -0
- package/dist/utils/numberingConfig.d.ts.map +1 -0
- package/dist/utils/placeholderImage.d.ts +31 -0
- package/dist/utils/placeholderImage.d.ts.map +1 -0
- package/dist/utils/placeholderProcessor.d.ts +58 -0
- package/dist/utils/placeholderProcessor.d.ts.map +1 -0
- package/dist/utils/textParser.d.ts +35 -0
- package/dist/utils/textParser.d.ts.map +1 -0
- package/dist/utils/unicode.d.ts +6 -0
- package/dist/utils/unicode.d.ts.map +1 -0
- package/dist/utils/warningsDocument.d.ts +17 -0
- package/dist/utils/warningsDocument.d.ts.map +1 -0
- package/dist/utils/widthUtils.d.ts +27 -0
- package/dist/utils/widthUtils.d.ts.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content Creation Functions
|
|
3
|
+
* Pure functions for creating Word document elements without layout concerns
|
|
4
|
+
*/
|
|
5
|
+
import { Paragraph, Table, Header, Footer } from 'docx';
|
|
6
|
+
import { ThemeConfig } from '../styles';
|
|
7
|
+
import { ComponentDefinition } from '../types';
|
|
8
|
+
export interface TextOptions {
|
|
9
|
+
style?: string;
|
|
10
|
+
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
11
|
+
spacing?: {
|
|
12
|
+
before?: number;
|
|
13
|
+
after?: number;
|
|
14
|
+
};
|
|
15
|
+
lineSpacing?: number | {
|
|
16
|
+
type: 'single' | 'atLeast' | 'exactly' | 'double' | 'multiple';
|
|
17
|
+
value?: number;
|
|
18
|
+
};
|
|
19
|
+
boldColor?: string;
|
|
20
|
+
columnBreak?: boolean;
|
|
21
|
+
fontFamily?: string;
|
|
22
|
+
fontSize?: number;
|
|
23
|
+
fontColor?: string;
|
|
24
|
+
bold?: boolean;
|
|
25
|
+
italic?: boolean;
|
|
26
|
+
underline?: boolean;
|
|
27
|
+
prependChildren?: any[];
|
|
28
|
+
outlineLevel?: number;
|
|
29
|
+
bookmarkId?: string;
|
|
30
|
+
floating?: {
|
|
31
|
+
horizontalPosition?: {
|
|
32
|
+
relative?: 'margin' | 'page' | 'text';
|
|
33
|
+
align?: 'left' | 'center' | 'right' | 'inside' | 'outside';
|
|
34
|
+
offset?: number;
|
|
35
|
+
};
|
|
36
|
+
verticalPosition?: {
|
|
37
|
+
relative?: 'margin' | 'page' | 'text';
|
|
38
|
+
align?: 'top' | 'center' | 'bottom' | 'inside' | 'outside' | 'inline';
|
|
39
|
+
offset?: number;
|
|
40
|
+
};
|
|
41
|
+
wrap?: {
|
|
42
|
+
type: 'around' | 'none' | 'notBeside' | 'through' | 'tight' | 'auto';
|
|
43
|
+
};
|
|
44
|
+
lockAnchor?: boolean;
|
|
45
|
+
width?: number;
|
|
46
|
+
height?: number;
|
|
47
|
+
};
|
|
48
|
+
keepNext?: boolean;
|
|
49
|
+
keepLines?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface ImageOptions {
|
|
52
|
+
caption?: string;
|
|
53
|
+
width?: number | string;
|
|
54
|
+
height?: number | string;
|
|
55
|
+
widthRelativeTo?: 'content' | 'page';
|
|
56
|
+
heightRelativeTo?: 'content' | 'page';
|
|
57
|
+
alignment?: 'left' | 'center' | 'right';
|
|
58
|
+
spacing?: {
|
|
59
|
+
before?: number;
|
|
60
|
+
after?: number;
|
|
61
|
+
};
|
|
62
|
+
floating?: {
|
|
63
|
+
horizontalPosition?: {
|
|
64
|
+
relative?: 'character' | 'column' | 'margin' | 'page' | 'text';
|
|
65
|
+
align?: 'left' | 'center' | 'right' | 'inside' | 'outside';
|
|
66
|
+
offset?: number;
|
|
67
|
+
};
|
|
68
|
+
verticalPosition?: {
|
|
69
|
+
relative?: 'margin' | 'page' | 'paragraph' | 'line' | 'text';
|
|
70
|
+
align?: 'top' | 'center' | 'bottom' | 'inside' | 'outside';
|
|
71
|
+
offset?: number;
|
|
72
|
+
};
|
|
73
|
+
wrap?: {
|
|
74
|
+
type: 'none' | 'square' | 'topAndBottom' | 'around' | 'tight' | 'through';
|
|
75
|
+
side?: 'bothSides' | 'left' | 'right' | 'largest';
|
|
76
|
+
margins?: {
|
|
77
|
+
top?: number;
|
|
78
|
+
bottom?: number;
|
|
79
|
+
left?: number;
|
|
80
|
+
right?: number;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
allowOverlap?: boolean;
|
|
84
|
+
behindDocument?: boolean;
|
|
85
|
+
lockAnchor?: boolean;
|
|
86
|
+
layoutInCell?: boolean;
|
|
87
|
+
zIndex?: number;
|
|
88
|
+
rotation?: number;
|
|
89
|
+
visibility?: 'hidden' | 'inherit';
|
|
90
|
+
};
|
|
91
|
+
keepNext?: boolean;
|
|
92
|
+
keepLines?: boolean;
|
|
93
|
+
}
|
|
94
|
+
export interface TableOptions {
|
|
95
|
+
style?: 'minimal' | 'classic' | 'minimal';
|
|
96
|
+
}
|
|
97
|
+
export interface StatisticData {
|
|
98
|
+
number: string;
|
|
99
|
+
description: string;
|
|
100
|
+
alignment?: 'left' | 'center' | 'right';
|
|
101
|
+
}
|
|
102
|
+
export interface StatisticOptions {
|
|
103
|
+
spacing?: {
|
|
104
|
+
before?: number;
|
|
105
|
+
after?: number;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface ListOptions {
|
|
109
|
+
numberingReference?: string;
|
|
110
|
+
spacing?: {
|
|
111
|
+
before?: number;
|
|
112
|
+
after?: number;
|
|
113
|
+
item?: number;
|
|
114
|
+
};
|
|
115
|
+
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create a text paragraph
|
|
119
|
+
*/
|
|
120
|
+
export declare function createText(content: string, theme: ThemeConfig, _themeName: string, options?: TextOptions): Paragraph;
|
|
121
|
+
/**
|
|
122
|
+
* Create a header paragraph
|
|
123
|
+
*/
|
|
124
|
+
export declare function createHeading(text: string, level: number, theme: ThemeConfig, _themeName: string, options?: TextOptions): Paragraph;
|
|
125
|
+
/**
|
|
126
|
+
* Create title page content
|
|
127
|
+
*/
|
|
128
|
+
export declare function createTitleContent(title?: string, subtitle?: string): Paragraph[];
|
|
129
|
+
/**
|
|
130
|
+
* Create an image with optional caption
|
|
131
|
+
*/
|
|
132
|
+
export declare function createImage(path: string, theme: ThemeConfig, options?: ImageOptions): Promise<Paragraph[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Create a statistic display
|
|
135
|
+
*/
|
|
136
|
+
export declare function createStatistic(data: StatisticData, options?: StatisticOptions): Paragraph[];
|
|
137
|
+
/**
|
|
138
|
+
* Create a list of items using proper docx numbering
|
|
139
|
+
*/
|
|
140
|
+
export declare function createList(items: (string | {
|
|
141
|
+
text: string;
|
|
142
|
+
level?: number;
|
|
143
|
+
})[], _theme: ThemeConfig, _themeName: string, options?: ListOptions): Paragraph[];
|
|
144
|
+
/**
|
|
145
|
+
* Create a table
|
|
146
|
+
*/
|
|
147
|
+
type TableFontConfig = {
|
|
148
|
+
family?: string;
|
|
149
|
+
size?: number;
|
|
150
|
+
bold?: boolean;
|
|
151
|
+
italic?: boolean;
|
|
152
|
+
underline?: boolean;
|
|
153
|
+
};
|
|
154
|
+
type BorderColor = string | {
|
|
155
|
+
bottom?: string;
|
|
156
|
+
top?: string;
|
|
157
|
+
right?: string;
|
|
158
|
+
left?: string;
|
|
159
|
+
};
|
|
160
|
+
type BorderSize = number | {
|
|
161
|
+
bottom?: number;
|
|
162
|
+
top?: number;
|
|
163
|
+
right?: number;
|
|
164
|
+
left?: number;
|
|
165
|
+
};
|
|
166
|
+
type Padding = number | {
|
|
167
|
+
bottom?: number;
|
|
168
|
+
top?: number;
|
|
169
|
+
right?: number;
|
|
170
|
+
left?: number;
|
|
171
|
+
};
|
|
172
|
+
type CellDefaults = {
|
|
173
|
+
color?: string;
|
|
174
|
+
backgroundColor?: string;
|
|
175
|
+
horizontalAlignment?: 'left' | 'center' | 'right' | 'justify';
|
|
176
|
+
verticalAlignment?: 'top' | 'middle' | 'bottom';
|
|
177
|
+
font?: TableFontConfig;
|
|
178
|
+
borderColor?: BorderColor;
|
|
179
|
+
borderSize?: BorderSize;
|
|
180
|
+
padding?: Padding;
|
|
181
|
+
height?: number;
|
|
182
|
+
};
|
|
183
|
+
type HideBorders = boolean | {
|
|
184
|
+
top?: boolean;
|
|
185
|
+
right?: boolean;
|
|
186
|
+
bottom?: boolean;
|
|
187
|
+
left?: boolean;
|
|
188
|
+
insideHorizontal?: boolean;
|
|
189
|
+
insideVertical?: boolean;
|
|
190
|
+
};
|
|
191
|
+
type TableConfig = {
|
|
192
|
+
borderColor?: BorderColor;
|
|
193
|
+
borderSize?: BorderSize;
|
|
194
|
+
hideBorders?: HideBorders;
|
|
195
|
+
cellDefaults?: CellDefaults;
|
|
196
|
+
headerCellDefaults?: CellDefaults;
|
|
197
|
+
width?: number;
|
|
198
|
+
columns: {
|
|
199
|
+
width?: number;
|
|
200
|
+
cellDefaults?: CellDefaults;
|
|
201
|
+
header?: CellDefaults & {
|
|
202
|
+
content?: string | ComponentDefinition;
|
|
203
|
+
};
|
|
204
|
+
cells?: (CellDefaults & {
|
|
205
|
+
content?: string | ComponentDefinition;
|
|
206
|
+
})[];
|
|
207
|
+
}[];
|
|
208
|
+
keepInOnePage?: boolean;
|
|
209
|
+
keepNext?: boolean;
|
|
210
|
+
repeatHeaderOnPageBreak?: boolean;
|
|
211
|
+
};
|
|
212
|
+
export declare function createTable(columns: TableConfig['columns'], tableConfig: TableConfig, theme: ThemeConfig, themeName: string, _options?: TableOptions): Promise<Table>;
|
|
213
|
+
/**
|
|
214
|
+
* Create header element from content
|
|
215
|
+
*/
|
|
216
|
+
export declare function createHeaderElement(children: (Paragraph | Table)[], _options?: {
|
|
217
|
+
position?: 'left' | 'center' | 'right';
|
|
218
|
+
}): Header;
|
|
219
|
+
/**
|
|
220
|
+
* Create footer element from content
|
|
221
|
+
*/
|
|
222
|
+
export declare function createFooterElement(children: (Paragraph | Table)[], _options?: {
|
|
223
|
+
position?: 'left' | 'center' | 'right';
|
|
224
|
+
}): Footer;
|
|
225
|
+
/**
|
|
226
|
+
* Create page number element
|
|
227
|
+
*/
|
|
228
|
+
export declare function createPageNumberElement(format?: string, alignment?: 'left' | 'center' | 'right'): Paragraph;
|
|
229
|
+
/**
|
|
230
|
+
* Create mixed content paragraph with text and image elements
|
|
231
|
+
*/
|
|
232
|
+
export declare function createMixedContentParagraph(textContent: string, textOptions: {
|
|
233
|
+
fontSize?: number;
|
|
234
|
+
color?: string;
|
|
235
|
+
bold?: boolean;
|
|
236
|
+
italic?: boolean;
|
|
237
|
+
}, imagePath?: string, imageOptions?: {
|
|
238
|
+
width?: number;
|
|
239
|
+
height?: number;
|
|
240
|
+
}, alignment?: 'left' | 'center' | 'right', theme?: import('../styles').ThemeConfig): Promise<Paragraph>;
|
|
241
|
+
/**
|
|
242
|
+
* Create a table specifically for headers/footers with custom styling
|
|
243
|
+
*/
|
|
244
|
+
export declare function createHeaderFooterTable(rows: (string | ComponentDefinition)[][], options?: {
|
|
245
|
+
cellAlignments?: ('left' | 'center' | 'right')[];
|
|
246
|
+
fontSize?: number;
|
|
247
|
+
bold?: boolean;
|
|
248
|
+
color?: string;
|
|
249
|
+
noBorders?: boolean;
|
|
250
|
+
cellStyling?: {
|
|
251
|
+
[rowIndex: number]: {
|
|
252
|
+
[cellIndex: number]: {
|
|
253
|
+
bold?: boolean;
|
|
254
|
+
color?: string;
|
|
255
|
+
fontSize?: number;
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
theme?: ThemeConfig;
|
|
260
|
+
themeName?: string;
|
|
261
|
+
}): Promise<Table>;
|
|
262
|
+
export {};
|
|
263
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/core/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Generator
|
|
3
|
+
* Main orchestration functions that compose the document generation pipeline
|
|
4
|
+
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import { Document } from 'docx';
|
|
7
|
+
import { ComponentDefinition, ReportProps, ReportComponentDefinition } from '../types';
|
|
8
|
+
import { ThemeConfig } from '../styles';
|
|
9
|
+
import { DocumentValidationResult } from '@json-to-office/shared-docx';
|
|
10
|
+
export interface JsonGenerationOptions {
|
|
11
|
+
outputPath?: string;
|
|
12
|
+
validation?: {
|
|
13
|
+
strict?: boolean;
|
|
14
|
+
allowUnknownFields?: boolean;
|
|
15
|
+
};
|
|
16
|
+
customThemes?: {
|
|
17
|
+
[key: string]: ThemeConfig;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Type guard to check if input is a report component definition
|
|
22
|
+
*/
|
|
23
|
+
export declare function isReportComponentDefinition(definition: unknown): definition is ReportComponentDefinition;
|
|
24
|
+
/**
|
|
25
|
+
* Generate a Word document from a report component definition
|
|
26
|
+
* This is the main entry point for document generation
|
|
27
|
+
*/
|
|
28
|
+
export declare function generateDocument(document: ReportComponentDefinition): Promise<Document>;
|
|
29
|
+
/**
|
|
30
|
+
* Generate document from report props and components
|
|
31
|
+
* Convenience function that constructs the report component
|
|
32
|
+
*/
|
|
33
|
+
export declare function generateFromConfig(props: ReportProps, components: ComponentDefinition[]): Promise<Document>;
|
|
34
|
+
/**
|
|
35
|
+
* Generate a Word document from JSON report definition
|
|
36
|
+
* Handles parsing, validation, and conversion to internal components
|
|
37
|
+
*/
|
|
38
|
+
export declare function generateDocumentFromJson(jsonConfig: string | ComponentDefinition | ReportComponentDefinition, options?: JsonGenerationOptions): Promise<Document>;
|
|
39
|
+
/**
|
|
40
|
+
* Validate JSON schema without generating document
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateJsonSchema(jsonConfig: string | object): DocumentValidationResult;
|
|
43
|
+
/**
|
|
44
|
+
* Generate document buffer from JSON (commonly used for API responses)
|
|
45
|
+
*/
|
|
46
|
+
export declare function generateBufferFromJson(jsonConfig: string | ReportComponentDefinition, options?: JsonGenerationOptions): Promise<Buffer>;
|
|
47
|
+
/**
|
|
48
|
+
* Generate and save document from JSON in one operation
|
|
49
|
+
*/
|
|
50
|
+
export declare function generateAndSaveFromJson(jsonConfig: string | ReportComponentDefinition, filename: string, options?: JsonGenerationOptions): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Generate document from JSON file
|
|
53
|
+
*/
|
|
54
|
+
export declare function generateDocumentFromFile(filePath: string, options?: JsonGenerationOptions): Promise<Document>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate document buffer from JSON file
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateBufferFromFile(filePath: string, options?: JsonGenerationOptions): Promise<Buffer>;
|
|
59
|
+
/**
|
|
60
|
+
* Generate and save document from JSON file in one operation
|
|
61
|
+
*/
|
|
62
|
+
export declare function generateAndSaveFromFile(inputFilePath: string, outputFilePath: string, options?: JsonGenerationOptions): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Save a document to file
|
|
65
|
+
*/
|
|
66
|
+
export declare function saveDocument(document: Document, filename: string): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Generate and save document in one operation
|
|
69
|
+
*/
|
|
70
|
+
export declare function generateAndSave(document: ReportComponentDefinition, filename: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Compose multiple transform functions
|
|
73
|
+
* Utility for creating custom pipelines
|
|
74
|
+
*/
|
|
75
|
+
export declare function pipe<T>(...fns: Array<(_arg: T) => T>): (_arg: T) => T;
|
|
76
|
+
/**
|
|
77
|
+
* Export the main API
|
|
78
|
+
*/
|
|
79
|
+
export declare const DocumentGenerator: {
|
|
80
|
+
generate: typeof generateDocument;
|
|
81
|
+
generateFromConfig: typeof generateFromConfig;
|
|
82
|
+
generateFromJson: typeof generateDocumentFromJson;
|
|
83
|
+
generateFromFile: typeof generateDocumentFromFile;
|
|
84
|
+
generateBufferFromJson: typeof generateBufferFromJson;
|
|
85
|
+
generateBufferFromFile: typeof generateBufferFromFile;
|
|
86
|
+
generateAndSaveFromJson: typeof generateAndSaveFromJson;
|
|
87
|
+
generateAndSaveFromFile: typeof generateAndSaveFromFile;
|
|
88
|
+
validateJsonSchema: typeof validateJsonSchema;
|
|
89
|
+
save: typeof saveDocument;
|
|
90
|
+
generateAndSave: typeof generateAndSave;
|
|
91
|
+
isReportComponentDefinition: typeof isReportComponentDefinition;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAU,MAAM,MAAM,CAAC;AAExC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAwB,WAAW,EAAE,MAAM,WAAW,CAAC;AAM9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAMvE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,OAAO,GAClB,UAAU,IAAI,yBAAyB,CASzC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,QAAQ,CAAC,CAuBnB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,mBAAmB,EAAE,GAChC,OAAO,CAAC,QAAQ,CAAC,CAQnB;AA6CD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,yBAAyB,EACpE,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAuBnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GAAG,yBAAyB,EAC9C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,yBAAyB,EAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAErE;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core module exports
|
|
3
|
+
* Functional document generation API
|
|
4
|
+
*/
|
|
5
|
+
export { generateDocument, generateFromConfig, saveDocument, generateAndSave, DocumentGenerator, } from './generator';
|
|
6
|
+
export { processDocument, createDocumentMetadata, extractSections, flattenComponents, createRenderContext, } from './structure';
|
|
7
|
+
export { applyLayout, analyzeLayoutGroups, determineComponentLayout, processLayoutComponents, getColumnSettings, createSectionProperties, calculateColumnDistribution, } from './layout';
|
|
8
|
+
export { createText, createHeading, createTitleContent, createImage, createStatistic, createTable, createHeaderElement, createFooterElement, createHeaderFooterTable, } from './content';
|
|
9
|
+
export { renderDocument, renderSection, renderComponent } from './render';
|
|
10
|
+
export { renderComponentWithCache, initializeComponentCache, getComponentCache, clearComponentCache, getComponentCacheStats, warmComponentCache, } from './cached-render';
|
|
11
|
+
export type { ProcessedDocument, DocumentMetadata, ProcessedSection, } from './structure';
|
|
12
|
+
export type { LayoutPlan, SectionLayout, LayoutGroup } from './layout';
|
|
13
|
+
export type { TextOptions, ImageOptions, TableOptions, StatisticData, } from './content';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout Functions
|
|
3
|
+
* Handle all layout concerns including columns, breaks, and section properties
|
|
4
|
+
*/
|
|
5
|
+
import { SectionType, Column as DocxColumn } from 'docx';
|
|
6
|
+
import { ComponentDefinition, ColumnSettings } from '../types';
|
|
7
|
+
import { ThemeConfig } from '../styles';
|
|
8
|
+
import { ProcessedSection } from './structure';
|
|
9
|
+
export interface LayoutPlan {
|
|
10
|
+
sections: SectionLayout[];
|
|
11
|
+
}
|
|
12
|
+
export interface WordSectionProperties {
|
|
13
|
+
page: {
|
|
14
|
+
size: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
margin: {
|
|
19
|
+
top: number;
|
|
20
|
+
right: number;
|
|
21
|
+
bottom: number;
|
|
22
|
+
left: number;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
column: ColumnSettings & {
|
|
26
|
+
children?: DocxColumn[];
|
|
27
|
+
};
|
|
28
|
+
type?: (typeof SectionType)[keyof typeof SectionType];
|
|
29
|
+
}
|
|
30
|
+
export interface SectionLayout {
|
|
31
|
+
properties: WordSectionProperties;
|
|
32
|
+
components: ComponentDefinition[];
|
|
33
|
+
layoutType: 'single' | 'multi-column';
|
|
34
|
+
breakBefore: boolean;
|
|
35
|
+
header?: ComponentDefinition[] | 'linkToPrevious';
|
|
36
|
+
footer?: ComponentDefinition[] | 'linkToPrevious';
|
|
37
|
+
/** True if this layout section comes from a user-defined Section component */
|
|
38
|
+
isUserSection: boolean;
|
|
39
|
+
/** True if this layout chunk belongs to a user-defined Section (all chunks of that section) */
|
|
40
|
+
belongsToUserSection: boolean;
|
|
41
|
+
/** The heading level of the section title (e.g., 1 for Heading1) - used by TOCs to exclude section title from section-scoped TOCs */
|
|
42
|
+
sectionTitleLevel?: number;
|
|
43
|
+
/** Page configuration override for this section */
|
|
44
|
+
pageOverride?: {
|
|
45
|
+
size?: 'A4' | 'A3' | 'LETTER' | 'LEGAL' | {
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
};
|
|
49
|
+
margins?: {
|
|
50
|
+
top?: number;
|
|
51
|
+
bottom?: number;
|
|
52
|
+
left?: number;
|
|
53
|
+
right?: number;
|
|
54
|
+
header?: number;
|
|
55
|
+
footer?: number;
|
|
56
|
+
gutter?: number;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export interface LayoutGroup {
|
|
61
|
+
layout: 'single' | 'multi-column';
|
|
62
|
+
components: ComponentDefinition[];
|
|
63
|
+
breakBefore: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Apply layout to processed sections
|
|
67
|
+
*/
|
|
68
|
+
export declare function applyLayout(sections: ProcessedSection[], theme: ThemeConfig, themeName: string): LayoutPlan;
|
|
69
|
+
/**
|
|
70
|
+
* Analyze components to determine layout groups
|
|
71
|
+
*/
|
|
72
|
+
export declare function analyzeLayoutGroups(components: ComponentDefinition[]): LayoutGroup[];
|
|
73
|
+
/**
|
|
74
|
+
* Determine layout type for a component
|
|
75
|
+
*/
|
|
76
|
+
export declare function determineComponentLayout(component: ComponentDefinition): 'single' | 'multi-column';
|
|
77
|
+
/**
|
|
78
|
+
* Process components for layout (insert breaks where needed)
|
|
79
|
+
*/
|
|
80
|
+
export declare function processLayoutComponents(components: ComponentDefinition[]): ComponentDefinition[];
|
|
81
|
+
/**
|
|
82
|
+
* Get column settings for layout type
|
|
83
|
+
*/
|
|
84
|
+
export declare function getColumnSettings(layout: 'single' | 'multi-column'): ColumnSettings;
|
|
85
|
+
/**
|
|
86
|
+
* Create Word section properties
|
|
87
|
+
*/
|
|
88
|
+
export declare function createSectionProperties(columnSettings: ColumnSettings, theme: ThemeConfig, themeName: string, sectionType?: 'continuous' | 'nextPage', pageOverride?: {
|
|
89
|
+
size?: 'A4' | 'A3' | 'LETTER' | 'LEGAL' | {
|
|
90
|
+
width: number;
|
|
91
|
+
height: number;
|
|
92
|
+
};
|
|
93
|
+
margins?: {
|
|
94
|
+
top?: number;
|
|
95
|
+
bottom?: number;
|
|
96
|
+
left?: number;
|
|
97
|
+
right?: number;
|
|
98
|
+
header?: number;
|
|
99
|
+
footer?: number;
|
|
100
|
+
gutter?: number;
|
|
101
|
+
};
|
|
102
|
+
}): WordSectionProperties;
|
|
103
|
+
/**
|
|
104
|
+
* Calculate optimal column distribution for content
|
|
105
|
+
*/
|
|
106
|
+
export declare function calculateColumnDistribution(components: ComponentDefinition[], columnCount: number): ComponentDefinition[][];
|
|
107
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/core/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render Functions
|
|
3
|
+
* Transform components and layout into Word document elements
|
|
4
|
+
*/
|
|
5
|
+
import { Document, Paragraph, Table, TableOfContents, ISectionOptions, Textbox } from 'docx';
|
|
6
|
+
import { ComponentDefinition, RenderContext } from '../types';
|
|
7
|
+
import { ThemeConfig } from '../styles';
|
|
8
|
+
import { ProcessedDocument } from './structure';
|
|
9
|
+
import { LayoutPlan, SectionLayout } from './layout';
|
|
10
|
+
import { MemoryCache } from '../cache';
|
|
11
|
+
/**
|
|
12
|
+
* Render a complete document from structure and layout
|
|
13
|
+
*/
|
|
14
|
+
export declare function renderDocument(structure: ProcessedDocument, layout: LayoutPlan, options?: {
|
|
15
|
+
cache?: MemoryCache;
|
|
16
|
+
bypassCache?: boolean;
|
|
17
|
+
}): Promise<Document>;
|
|
18
|
+
/**
|
|
19
|
+
* Render a section with layout
|
|
20
|
+
*/
|
|
21
|
+
export declare function renderSection(section: SectionLayout, theme: ThemeConfig, themeName: string, context: RenderContext, sectionOrdinal?: number, closeBookmark?: boolean): Promise<ISectionOptions>;
|
|
22
|
+
/**
|
|
23
|
+
* Render a single component to Word elements
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderComponent(component: ComponentDefinition, theme: ThemeConfig, themeName: string, context: RenderContext): Promise<(Paragraph | Table | TableOfContents | Textbox)[]>;
|
|
26
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,eAAe,EACf,eAAe,EAMf,OAAO,EACR,MAAM,MAAM,CAAC;AAWd,OAAO,EACL,mBAAmB,EACnB,aAAa,EAgBd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAqCvC;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,OAAO,CAAC,QAAQ,CAAC,CAiJnB;AA+MD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,eAAe,CAAC,CAiH1B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC,CAgC5D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Structure Functions
|
|
3
|
+
* Handle document hierarchy and organization without layout concerns
|
|
4
|
+
*/
|
|
5
|
+
import { ComponentDefinition, ReportProps, ReportComponentDefinition, RenderContext } from '../types';
|
|
6
|
+
import { ThemeConfig } from '../styles';
|
|
7
|
+
export interface ProcessedDocument {
|
|
8
|
+
metadata: DocumentMetadata;
|
|
9
|
+
sections: ProcessedSection[];
|
|
10
|
+
theme: ThemeConfig;
|
|
11
|
+
themeName: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DocumentMetadata {
|
|
14
|
+
title?: string;
|
|
15
|
+
subtitle?: string;
|
|
16
|
+
author?: string;
|
|
17
|
+
company?: string;
|
|
18
|
+
date: Date;
|
|
19
|
+
}
|
|
20
|
+
export interface ProcessedSection {
|
|
21
|
+
title?: string;
|
|
22
|
+
level?: number;
|
|
23
|
+
components: ComponentDefinition[];
|
|
24
|
+
header?: ComponentDefinition[] | 'linkToPrevious';
|
|
25
|
+
footer?: ComponentDefinition[] | 'linkToPrevious';
|
|
26
|
+
/** True if this section originates from an explicit Section component */
|
|
27
|
+
isExplicitSection?: boolean;
|
|
28
|
+
/** Whether this section should start on a new page */
|
|
29
|
+
pageBreak?: boolean;
|
|
30
|
+
/** Page configuration override for this section */
|
|
31
|
+
page?: {
|
|
32
|
+
size?: 'A4' | 'A3' | 'LETTER' | 'LEGAL' | {
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
};
|
|
36
|
+
margins?: {
|
|
37
|
+
top?: number;
|
|
38
|
+
bottom?: number;
|
|
39
|
+
left?: number;
|
|
40
|
+
right?: number;
|
|
41
|
+
header?: number;
|
|
42
|
+
footer?: number;
|
|
43
|
+
gutter?: number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Process document definition into structured format
|
|
49
|
+
*/
|
|
50
|
+
export declare function processDocument(document: ReportComponentDefinition, theme: ThemeConfig, themeName: string): Promise<ProcessedDocument>;
|
|
51
|
+
/**
|
|
52
|
+
* Extract document metadata from report props
|
|
53
|
+
*/
|
|
54
|
+
export declare function createDocumentMetadata(props: ReportProps): DocumentMetadata;
|
|
55
|
+
/**
|
|
56
|
+
* Extract and flatten sections from component hierarchy
|
|
57
|
+
*/
|
|
58
|
+
export declare function extractSections(components: ComponentDefinition[], context: RenderContext): Promise<ProcessedSection[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Flatten nested container components while preserving content components
|
|
61
|
+
*/
|
|
62
|
+
export declare function flattenComponents(components: ComponentDefinition[], context: RenderContext): Promise<ComponentDefinition[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Create render context from processed document
|
|
65
|
+
*/
|
|
66
|
+
export declare function createRenderContext(document: ProcessedDocument, theme: ThemeConfig, themeName: string): RenderContext;
|
|
67
|
+
//# sourceMappingURL=structure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/core/structure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,yBAAyB,EACzB,aAAa,EAGd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,CAAC;IAClD,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,CAAC;IAClD,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5E,OAAO,CAAC,EAAE;YACR,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,yBAAyB,EACnC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAwB5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAQ3E;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,mBAAmB,EAAE,EACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA+D7B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,mBAAmB,EAAE,EACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA8ChC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,aAAa,CA0Bf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-spacing-debug.d.ts","sourceRoot":"","sources":["../../src/examples/test-spacing-debug.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-spacing.d.ts","sourceRoot":"","sources":["../../src/examples/test-spacing.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare function getCoreVersion(): string;
|
|
2
|
+
export { generateDocument, generateFromConfig, generateDocumentFromJson, generateDocumentFromFile, generateBufferFromJson, generateBufferFromFile, generateAndSaveFromJson, generateAndSaveFromFile, validateJsonSchema, isReportComponentDefinition, saveDocument, generateAndSave, DocumentGenerator as CoreDocumentGenerator, } from './core/generator';
|
|
3
|
+
export { MemoryCache, CacheKeyGenerator, DEFAULT_CACHE_CONFIG, getCacheConfigFromEnv, mergeConfigs, ComponentCacheAnalytics, type CacheConfiguration, type CachedComponent, type CacheStatistics, type CacheKeyOptions, type CacheEvents, type CacheAnalyticsReport, type ComponentPerformanceMetrics, type ComponentCacheTrends, type CacheOptimizationRecommendation, type TimeSeriesPoint, } from './cache/index';
|
|
4
|
+
export { initializeComponentCache, getComponentCache, clearComponentCache, getComponentCacheStats, warmComponentCache, } from './core/cached-render';
|
|
5
|
+
export { isReportComponent, isSectionComponent, isHeadingComponent, isParagraphComponent, isColumnsComponent, isImageComponent, isStatisticComponent, isTableComponent, isListComponent, isHeaderComponent, isFooterComponent, isHighchartsComponent, } from './types/index';
|
|
6
|
+
export type { ImageContent, StatisticContent, TableData, SectionProperties, ColumnSettings, PageSizeOptions, PageMarginOptions, PageNumberOptions, PageBorderOptions, RenderContext, } from './types/index';
|
|
7
|
+
export * from './utils/formatters';
|
|
8
|
+
export { parseTextWithDecorators } from './utils/textParser';
|
|
9
|
+
export { isNodeEnvironment, hasNodeBuiltins } from './utils/environment';
|
|
10
|
+
export { generateWarningsDocument, formatWarningsText, } from './utils/warningsDocument';
|
|
11
|
+
export { themes, minimalTheme, corporateTheme, modernTheme, } from './styles/index';
|
|
12
|
+
export type { ThemeName } from './styles/index';
|
|
13
|
+
export { loadThemeFromJson, loadThemeFromFile, exportThemeToJson, validateThemeJsonString, ThemeValidationError, ThemeParseError, ThemeFileError, createMinimalTheme, } from './themes/json/index';
|
|
14
|
+
export { examples, getExample, getExampleNames, loadJsonExample, } from './templates/documents/index';
|
|
15
|
+
export { runExample } from './utils/exampleRunner';
|
|
16
|
+
import './components/index';
|
|
17
|
+
export type { ChartGenerationResult, } from './components/highcharts';
|
|
18
|
+
export { createComponent, createVersion, createDocumentGenerator, validateComponentProps, validateDocument, cleanComponentProps, ComponentValidationError, generatePluginDocumentSchema, exportPluginSchema, generateComponentSchemas, mergeSchemas, type CustomComponent, type ComponentVersion, type ComponentVersionMap, type RenderFunction, type RenderContext as ComponentRenderContext, type DocumentGenerator, type DocumentGeneratorOptions, type GenerationResult, type BufferGenerationResult, type FileGenerationResult, type ValidationResult, type ValidationError, type ExtractCustomComponentType, type CustomComponentUnion, type ExtendedComponentDefinition, type ExtendedReportComponent, type InferCustomComponents, } from './plugin/index';
|
|
19
|
+
export type { PluginComponent, PluginRenderFunction, PluginValidationError, PluginValidationResult, } from './types/plugin';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|