@nice2dev/ui-tools 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +36 -0
  2. package/dist/access-control.d.ts +726 -0
  3. package/dist/access-control.d.ts.map +1 -0
  4. package/dist/accessibility-i18n.d.ts +1017 -0
  5. package/dist/accessibility-i18n.d.ts.map +1 -0
  6. package/dist/ai-assistant.d.ts +263 -0
  7. package/dist/ai-assistant.d.ts.map +1 -0
  8. package/dist/ai-playgrounds.d.ts +842 -0
  9. package/dist/ai-playgrounds.d.ts.map +1 -0
  10. package/dist/alerting-incidents.d.ts +558 -0
  11. package/dist/alerting-incidents.d.ts.map +1 -0
  12. package/dist/api-designer.d.ts +1568 -0
  13. package/dist/api-designer.d.ts.map +1 -0
  14. package/dist/api-testing.d.ts +1146 -0
  15. package/dist/api-testing.d.ts.map +1 -0
  16. package/dist/apm-profiling.d.ts +656 -0
  17. package/dist/apm-profiling.d.ts.map +1 -0
  18. package/dist/artifacts.d.ts +421 -0
  19. package/dist/artifacts.d.ts.map +1 -0
  20. package/dist/audit-compliance.d.ts +752 -0
  21. package/dist/audit-compliance.d.ts.map +1 -0
  22. package/dist/certificates.d.ts +256 -0
  23. package/dist/certificates.d.ts.map +1 -0
  24. package/dist/chart-builder.d.ts +1404 -0
  25. package/dist/chart-builder.d.ts.map +1 -0
  26. package/dist/cloud-instances.d.ts +169 -0
  27. package/dist/cloud-instances.d.ts.map +1 -0
  28. package/dist/config-management.d.ts +350 -0
  29. package/dist/config-management.d.ts.map +1 -0
  30. package/dist/containers.d.ts +256 -0
  31. package/dist/containers.d.ts.map +1 -0
  32. package/dist/dashboard-designer.d.ts +1238 -0
  33. package/dist/dashboard-designer.d.ts.map +1 -0
  34. package/dist/data-management.d.ts +496 -0
  35. package/dist/data-management.d.ts.map +1 -0
  36. package/dist/data-pipeline.d.ts +1105 -0
  37. package/dist/data-pipeline.d.ts.map +1 -0
  38. package/dist/data-warehouse.d.ts +1097 -0
  39. package/dist/data-warehouse.d.ts.map +1 -0
  40. package/dist/dataset-management.d.ts +782 -0
  41. package/dist/dataset-management.d.ts.map +1 -0
  42. package/dist/db-adapters.d.ts +704 -0
  43. package/dist/db-adapters.d.ts.map +1 -0
  44. package/dist/db-admin.d.ts +699 -0
  45. package/dist/db-admin.d.ts.map +1 -0
  46. package/dist/db-designer.d.ts +366 -0
  47. package/dist/db-designer.d.ts.map +1 -0
  48. package/dist/debugger.d.ts +356 -0
  49. package/dist/debugger.d.ts.map +1 -0
  50. package/dist/device-management.d.ts +871 -0
  51. package/dist/device-management.d.ts.map +1 -0
  52. package/dist/distributed-tracing.d.ts +427 -0
  53. package/dist/distributed-tracing.d.ts.map +1 -0
  54. package/dist/dns-management.d.ts +215 -0
  55. package/dist/dns-management.d.ts.map +1 -0
  56. package/dist/download-manager.d.ts +271 -0
  57. package/dist/download-manager.d.ts.map +1 -0
  58. package/dist/download-torrent.d.ts +1062 -0
  59. package/dist/download-torrent.d.ts.map +1 -0
  60. package/dist/edge-computing.d.ts +720 -0
  61. package/dist/edge-computing.d.ts.map +1 -0
  62. package/dist/education.d.ts +1135 -0
  63. package/dist/education.d.ts.map +1 -0
  64. package/dist/email-template.d.ts +1141 -0
  65. package/dist/email-template.d.ts.map +1 -0
  66. package/dist/erp-enterprise.d.ts +1270 -0
  67. package/dist/erp-enterprise.d.ts.map +1 -0
  68. package/dist/form-builder.d.ts +1117 -0
  69. package/dist/form-builder.d.ts.map +1 -0
  70. package/dist/game-engine-advanced.d.ts +1049 -0
  71. package/dist/game-engine-advanced.d.ts.map +1 -0
  72. package/dist/git.d.ts +415 -0
  73. package/dist/git.d.ts.map +1 -0
  74. package/dist/hardware-integration.d.ts +966 -0
  75. package/dist/hardware-integration.d.ts.map +1 -0
  76. package/dist/iac.d.ts +318 -0
  77. package/dist/iac.d.ts.map +1 -0
  78. package/dist/icon-tools.d.ts +1023 -0
  79. package/dist/icon-tools.d.ts.map +1 -0
  80. package/dist/ide.d.ts +322 -0
  81. package/dist/ide.d.ts.map +1 -0
  82. package/dist/index.cjs +2 -0
  83. package/dist/index.cjs.map +1 -0
  84. package/dist/index.d.ts +176 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.mjs +1887 -0
  87. package/dist/index.mjs.map +1 -0
  88. package/dist/integration-platform.d.ts +857 -0
  89. package/dist/integration-platform.d.ts.map +1 -0
  90. package/dist/kubernetes.d.ts +278 -0
  91. package/dist/kubernetes.d.ts.map +1 -0
  92. package/dist/life-management.d.ts +1132 -0
  93. package/dist/life-management.d.ts.map +1 -0
  94. package/dist/log-management.d.ts +473 -0
  95. package/dist/log-management.d.ts.map +1 -0
  96. package/dist/mathematics.d.ts +870 -0
  97. package/dist/mathematics.d.ts.map +1 -0
  98. package/dist/message-queue.d.ts +1006 -0
  99. package/dist/message-queue.d.ts.map +1 -0
  100. package/dist/metrics-dashboard.d.ts +596 -0
  101. package/dist/metrics-dashboard.d.ts.map +1 -0
  102. package/dist/mobile-components.d.ts +766 -0
  103. package/dist/mobile-components.d.ts.map +1 -0
  104. package/dist/model-deployment.d.ts +787 -0
  105. package/dist/model-deployment.d.ts.map +1 -0
  106. package/dist/model-registry.d.ts +740 -0
  107. package/dist/model-registry.d.ts.map +1 -0
  108. package/dist/model-training.d.ts +706 -0
  109. package/dist/model-training.d.ts.map +1 -0
  110. package/dist/network-config.d.ts +334 -0
  111. package/dist/network-config.d.ts.map +1 -0
  112. package/dist/network-monitoring.d.ts +291 -0
  113. package/dist/network-monitoring.d.ts.map +1 -0
  114. package/dist/pdf-tools.d.ts +1003 -0
  115. package/dist/pdf-tools.d.ts.map +1 -0
  116. package/dist/pipelines.d.ts +250 -0
  117. package/dist/pipelines.d.ts.map +1 -0
  118. package/dist/remote-desktop.d.ts +207 -0
  119. package/dist/remote-desktop.d.ts.map +1 -0
  120. package/dist/report-designer.d.ts +1153 -0
  121. package/dist/report-designer.d.ts.map +1 -0
  122. package/dist/scada-industrial.d.ts +848 -0
  123. package/dist/scada-industrial.d.ts.map +1 -0
  124. package/dist/scientific-research.d.ts +1149 -0
  125. package/dist/scientific-research.d.ts.map +1 -0
  126. package/dist/secret-management.d.ts +617 -0
  127. package/dist/secret-management.d.ts.map +1 -0
  128. package/dist/security-scanning.d.ts +714 -0
  129. package/dist/security-scanning.d.ts.map +1 -0
  130. package/dist/self-service-analytics.d.ts +1208 -0
  131. package/dist/self-service-analytics.d.ts.map +1 -0
  132. package/dist/sensor-dashboard.d.ts +845 -0
  133. package/dist/sensor-dashboard.d.ts.map +1 -0
  134. package/dist/server-management.d.ts +331 -0
  135. package/dist/server-management.d.ts.map +1 -0
  136. package/dist/smart-home.d.ts +861 -0
  137. package/dist/smart-home.d.ts.map +1 -0
  138. package/dist/spreadsheet.d.ts +1043 -0
  139. package/dist/spreadsheet.d.ts.map +1 -0
  140. package/dist/sql-editor.d.ts +402 -0
  141. package/dist/sql-editor.d.ts.map +1 -0
  142. package/dist/terminal.d.ts +245 -0
  143. package/dist/terminal.d.ts.map +1 -0
  144. package/dist/testing-qa.d.ts +1013 -0
  145. package/dist/testing-qa.d.ts.map +1 -0
  146. package/dist/torrent-client.d.ts +298 -0
  147. package/dist/torrent-client.d.ts.map +1 -0
  148. package/dist/traceless.d.ts +759 -0
  149. package/dist/traceless.d.ts.map +1 -0
  150. package/dist/virtual-machines.d.ts +199 -0
  151. package/dist/virtual-machines.d.ts.map +1 -0
  152. package/dist/visual-scripting.d.ts +381 -0
  153. package/dist/visual-scripting.d.ts.map +1 -0
  154. package/dist/word-processor.d.ts +1124 -0
  155. package/dist/word-processor.d.ts.map +1 -0
  156. package/dist/workspace.d.ts +333 -0
  157. package/dist/workspace.d.ts.map +1 -0
  158. package/package.json +62 -0
@@ -0,0 +1,1153 @@
1
+ /**
2
+ * @file report-designer.ts
3
+ * @module @nice2dev/ui-tools
4
+ * @description PRO-14.5 — Report Designer
5
+ *
6
+ * Types for WYSIWYG report designer: data sources, query builder, report bands,
7
+ * parameters, charts, subreports, cross-tab, grouping/sorting, export, scheduling.
8
+ */
9
+ /** Report output format */
10
+ export type ReportOutputFormat = 'pdf' | 'html' | 'excel' | 'word' | 'csv' | 'xml' | 'json' | 'rtf' | 'text' | 'image';
11
+ /** Data type */
12
+ export type ReportDataType = 'string' | 'number' | 'integer' | 'decimal' | 'boolean' | 'date' | 'datetime' | 'time' | 'binary' | 'object' | 'array';
13
+ /** Alignment */
14
+ export type ReportAlignment = 'left' | 'center' | 'right' | 'justify';
15
+ /** Vertical alignment */
16
+ export type ReportVerticalAlignment = 'top' | 'middle' | 'bottom';
17
+ /** Report designer configuration */
18
+ export interface ReportDesignerConfig {
19
+ /** Initial report definition */
20
+ report?: ReportDefinition;
21
+ /** Available data sources */
22
+ dataSources?: DataSourceDefinition[];
23
+ /** Available parameters */
24
+ parameters?: ReportParameter[];
25
+ /** Theme */
26
+ theme?: ReportDesignerTheme;
27
+ /** Locale */
28
+ locale?: string;
29
+ /** Enable preview */
30
+ preview?: boolean;
31
+ /** Enable undo/redo */
32
+ undoRedo?: boolean;
33
+ /** Show rulers */
34
+ showRulers?: boolean;
35
+ /** Show grid */
36
+ showGrid?: boolean;
37
+ /** Grid size */
38
+ gridSize?: number;
39
+ /** Snap to grid */
40
+ snapToGrid?: boolean;
41
+ /** Unit */
42
+ unit?: 'inch' | 'cm' | 'px' | 'pt';
43
+ /** Toolbar configuration */
44
+ toolbar?: ReportToolbarConfig;
45
+ /** Toolbox configuration */
46
+ toolbox?: ReportToolboxConfig;
47
+ /** Properties panel */
48
+ propertiesPanel?: boolean;
49
+ /** Field list panel */
50
+ fieldListPanel?: boolean;
51
+ /** Report explorer panel */
52
+ reportExplorerPanel?: boolean;
53
+ /** Custom components */
54
+ customComponents?: CustomReportComponent[];
55
+ }
56
+ /** Report designer theme */
57
+ export interface ReportDesignerTheme {
58
+ name?: string;
59
+ primary?: string;
60
+ secondary?: string;
61
+ background?: string;
62
+ surface?: string;
63
+ text?: string;
64
+ border?: string;
65
+ canvas?: string;
66
+ selection?: string;
67
+ ruler?: string;
68
+ grid?: string;
69
+ }
70
+ /** Report toolbar configuration */
71
+ export interface ReportToolbarConfig {
72
+ visible?: boolean;
73
+ items?: ReportToolbarItem[];
74
+ customItems?: CustomToolbarItem[];
75
+ }
76
+ /** Toolbar item */
77
+ export type ReportToolbarItem = 'new' | 'open' | 'save' | 'saveAs' | 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'delete' | 'selectAll' | 'preview' | 'print' | 'export' | 'zoom' | 'zoomIn' | 'zoomOut' | 'fitPage' | 'fitWidth' | 'showGrid' | 'snapToGrid' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignTop' | 'alignMiddle' | 'alignBottom' | 'sameWidth' | 'sameHeight' | 'sameSize' | 'bringToFront' | 'sendToBack' | 'bringForward' | 'sendBackward' | 'group' | 'ungroup' | 'separator';
78
+ /** Custom toolbar item */
79
+ export interface CustomToolbarItem {
80
+ id: string;
81
+ label?: string;
82
+ icon?: string;
83
+ tooltip?: string;
84
+ handler: () => void;
85
+ disabled?: boolean;
86
+ position?: number;
87
+ }
88
+ /** Report toolbox configuration */
89
+ export interface ReportToolboxConfig {
90
+ visible?: boolean;
91
+ position?: 'left' | 'right';
92
+ width?: number;
93
+ categories?: ReportToolboxCategory[];
94
+ }
95
+ /** Toolbox category */
96
+ export interface ReportToolboxCategory {
97
+ id: string;
98
+ name: string;
99
+ expanded?: boolean;
100
+ items: ReportToolboxItem[];
101
+ }
102
+ /** Toolbox item */
103
+ export interface ReportToolboxItem {
104
+ type: ReportItemType;
105
+ label: string;
106
+ icon?: string;
107
+ defaultConfig?: Partial<ReportItem>;
108
+ }
109
+ /** Custom report component */
110
+ export interface CustomReportComponent {
111
+ type: string;
112
+ label: string;
113
+ icon?: string;
114
+ category?: string;
115
+ defaultConfig: Partial<ReportItem>;
116
+ renderer: (item: ReportItem, data: unknown) => string;
117
+ editor?: string;
118
+ }
119
+ /** Report definition */
120
+ export interface ReportDefinition {
121
+ id: string;
122
+ name: string;
123
+ description?: string;
124
+ version?: string;
125
+ author?: string;
126
+ created?: Date;
127
+ modified?: Date;
128
+ page?: ReportPage;
129
+ dataSources: ReportDataSource[];
130
+ parameters?: ReportParameter[];
131
+ variables?: ReportVariable[];
132
+ bands: ReportBand[];
133
+ styles?: ReportStyle[];
134
+ scripts?: ReportScript[];
135
+ subreports?: SubreportDefinition[];
136
+ settings?: ReportSettings;
137
+ metadata?: Record<string, unknown>;
138
+ }
139
+ /** Report page settings */
140
+ export interface ReportPage {
141
+ size?: PageSize;
142
+ customSize?: {
143
+ width: number;
144
+ height: number;
145
+ };
146
+ orientation?: 'portrait' | 'landscape';
147
+ margins?: ReportMargins;
148
+ columns?: number;
149
+ columnSpacing?: number;
150
+ watermark?: Watermark;
151
+ background?: PageBackground;
152
+ }
153
+ /** Page size */
154
+ export type PageSize = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'b4' | 'b5' | 'custom';
155
+ /** Report margins */
156
+ export interface ReportMargins {
157
+ top: number;
158
+ right: number;
159
+ bottom: number;
160
+ left: number;
161
+ }
162
+ /** Watermark */
163
+ export interface Watermark {
164
+ type: 'text' | 'image';
165
+ text?: string;
166
+ image?: string;
167
+ font?: ReportFont;
168
+ color?: string;
169
+ opacity?: number;
170
+ rotation?: number;
171
+ position?: 'center' | 'tile';
172
+ showInPreview?: boolean;
173
+ showInExport?: boolean;
174
+ }
175
+ /** Page background */
176
+ export interface PageBackground {
177
+ type: 'color' | 'image' | 'gradient';
178
+ color?: string;
179
+ image?: string;
180
+ gradient?: GradientDef;
181
+ imageMode?: 'stretch' | 'tile' | 'center' | 'fit';
182
+ }
183
+ /** Gradient definition */
184
+ export interface GradientDef {
185
+ type: 'linear' | 'radial';
186
+ angle?: number;
187
+ stops: {
188
+ position: number;
189
+ color: string;
190
+ }[];
191
+ }
192
+ /** Report settings */
193
+ export interface ReportSettings {
194
+ showReportHeader?: boolean;
195
+ showReportFooter?: boolean;
196
+ showPageHeader?: boolean;
197
+ showPageFooter?: boolean;
198
+ repeatColumnHeaders?: boolean;
199
+ keepTogether?: boolean;
200
+ allowPrintOnFirstPage?: boolean;
201
+ allowPrintOnLastPage?: boolean;
202
+ culture?: string;
203
+ numberFormat?: string;
204
+ dateFormat?: string;
205
+ timeFormat?: string;
206
+ currencySymbol?: string;
207
+ decimalSeparator?: string;
208
+ thousandSeparator?: string;
209
+ cacheTTL?: number;
210
+ timeout?: number;
211
+ maxRows?: number;
212
+ encoding?: string;
213
+ }
214
+ /** Data source definition */
215
+ export interface DataSourceDefinition {
216
+ id: string;
217
+ name: string;
218
+ type: DataSourceType;
219
+ connection?: ConnectionConfig;
220
+ query?: QueryConfig;
221
+ fields?: DataField[];
222
+ parameters?: DataSourceParameter[];
223
+ calculated?: CalculatedField[];
224
+ relations?: DataRelation[];
225
+ caching?: CachingConfig;
226
+ }
227
+ /** Data source type */
228
+ export type DataSourceType = 'sql' | 'oracle' | 'mysql' | 'postgresql' | 'mongodb' | 'rest' | 'graphql' | 'xml' | 'json' | 'csv' | 'excel' | 'olap' | 'custom';
229
+ /** Connection configuration */
230
+ export interface ConnectionConfig {
231
+ connectionString?: string;
232
+ server?: string;
233
+ port?: number;
234
+ database?: string;
235
+ username?: string;
236
+ password?: string;
237
+ integrated?: boolean;
238
+ timeout?: number;
239
+ pooling?: boolean;
240
+ maxPoolSize?: number;
241
+ ssl?: boolean;
242
+ options?: Record<string, unknown>;
243
+ }
244
+ /** Query configuration */
245
+ export interface QueryConfig {
246
+ type: 'text' | 'storedProcedure' | 'table' | 'view';
247
+ query?: string;
248
+ procedure?: string;
249
+ table?: string;
250
+ view?: string;
251
+ filter?: string;
252
+ orderBy?: string;
253
+ parameters?: QueryParameter[];
254
+ }
255
+ /** Query parameter */
256
+ export interface QueryParameter {
257
+ name: string;
258
+ type: ReportDataType;
259
+ direction?: 'input' | 'output' | 'inputOutput' | 'returnValue';
260
+ defaultValue?: unknown;
261
+ expression?: string;
262
+ }
263
+ /** Data field */
264
+ export interface DataField {
265
+ name: string;
266
+ displayName?: string;
267
+ type: ReportDataType;
268
+ format?: string;
269
+ nullable?: boolean;
270
+ length?: number;
271
+ precision?: number;
272
+ scale?: number;
273
+ description?: string;
274
+ visible?: boolean;
275
+ }
276
+ /** Data source parameter */
277
+ export interface DataSourceParameter {
278
+ name: string;
279
+ type: ReportDataType;
280
+ defaultValue?: unknown;
281
+ expression?: string;
282
+ promptUser?: boolean;
283
+ }
284
+ /** Calculated field */
285
+ export interface CalculatedField {
286
+ name: string;
287
+ expression: string;
288
+ type: ReportDataType;
289
+ format?: string;
290
+ description?: string;
291
+ }
292
+ /** Data relation */
293
+ export interface DataRelation {
294
+ name: string;
295
+ parentDataSource: string;
296
+ childDataSource: string;
297
+ parentFields: string[];
298
+ childFields: string[];
299
+ type: 'inner' | 'left' | 'right' | 'full';
300
+ }
301
+ /** Caching configuration */
302
+ export interface CachingConfig {
303
+ enabled: boolean;
304
+ ttl?: number;
305
+ key?: string;
306
+ invalidateOn?: string[];
307
+ }
308
+ /** Report data source */
309
+ export interface ReportDataSource {
310
+ id: string;
311
+ name: string;
312
+ definition: string;
313
+ filters?: DataFilter[];
314
+ sorting?: DataSorting[];
315
+ grouping?: DataGrouping[];
316
+ }
317
+ /** Data filter */
318
+ export interface DataFilter {
319
+ field: string;
320
+ operator: FilterOperator;
321
+ value?: unknown;
322
+ expression?: string;
323
+ parameter?: string;
324
+ }
325
+ /** Filter operator */
326
+ export type FilterOperator = 'equals' | 'notEquals' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'isNull' | 'isNotNull' | 'in' | 'notIn' | 'between' | 'like' | 'regex';
327
+ /** Data sorting */
328
+ export interface DataSorting {
329
+ field: string;
330
+ direction: 'ascending' | 'descending';
331
+ nullsFirst?: boolean;
332
+ }
333
+ /** Data grouping */
334
+ export interface DataGrouping {
335
+ field: string;
336
+ expression?: string;
337
+ sortDirection?: 'ascending' | 'descending';
338
+ groupInterval?: GroupInterval;
339
+ }
340
+ /** Group interval */
341
+ export type GroupInterval = 'none' | 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'alphabetical' | 'numeric';
342
+ /** Report parameter */
343
+ export interface ReportParameter {
344
+ id: string;
345
+ name: string;
346
+ displayName?: string;
347
+ type: ReportDataType;
348
+ defaultValue?: unknown;
349
+ allowNull?: boolean;
350
+ allowBlank?: boolean;
351
+ multiValue?: boolean;
352
+ hidden?: boolean;
353
+ promptUser?: boolean;
354
+ prompt?: string;
355
+ validValues?: ParameterValidValues;
356
+ validation?: ParameterValidation;
357
+ dependencies?: string[];
358
+ cascading?: boolean;
359
+ }
360
+ /** Parameter valid values */
361
+ export interface ParameterValidValues {
362
+ type: 'none' | 'list' | 'query';
363
+ values?: ParameterValue[];
364
+ dataSource?: string;
365
+ valueField?: string;
366
+ labelField?: string;
367
+ filter?: string;
368
+ }
369
+ /** Parameter value */
370
+ export interface ParameterValue {
371
+ value: unknown;
372
+ label?: string;
373
+ }
374
+ /** Parameter validation */
375
+ export interface ParameterValidation {
376
+ required?: boolean;
377
+ min?: unknown;
378
+ max?: unknown;
379
+ pattern?: string;
380
+ customScript?: string;
381
+ errorMessage?: string;
382
+ }
383
+ /** Report variable */
384
+ export interface ReportVariable {
385
+ id: string;
386
+ name: string;
387
+ expression: string;
388
+ type: ReportDataType;
389
+ resetType?: ResetType;
390
+ resetGroup?: string;
391
+ calculation?: VariableCalculation;
392
+ initialValue?: unknown;
393
+ }
394
+ /** Reset type */
395
+ export type ResetType = 'none' | 'report' | 'page' | 'column' | 'group';
396
+ /** Variable calculation */
397
+ export type VariableCalculation = 'nothing' | 'count' | 'distinctCount' | 'sum' | 'average' | 'min' | 'max' | 'first' | 'last' | 'standardDeviation' | 'variance' | 'system';
398
+ /** Report band */
399
+ export interface ReportBand {
400
+ id: string;
401
+ type: BandType;
402
+ height: number;
403
+ items: ReportItem[];
404
+ visible?: boolean;
405
+ visibilityExpression?: string;
406
+ backgroundColor?: string;
407
+ printOnFirstPage?: boolean;
408
+ printOnLastPage?: boolean;
409
+ printOnEveryPage?: boolean;
410
+ printWhenGroupChanges?: string;
411
+ keepTogether?: boolean;
412
+ repeatOnNewPage?: boolean;
413
+ splitType?: SplitType;
414
+ groupExpression?: string;
415
+ groupHeader?: ReportGroupBand;
416
+ groupFooter?: ReportGroupBand;
417
+ }
418
+ /** Band type */
419
+ export type BandType = 'reportHeader' | 'pageHeader' | 'columnHeader' | 'groupHeader' | 'detail' | 'groupFooter' | 'columnFooter' | 'pageFooter' | 'reportFooter' | 'noData' | 'background';
420
+ /** Split type */
421
+ export type SplitType = 'stretch' | 'prevent' | 'immediate';
422
+ /** Group band */
423
+ export interface ReportGroupBand {
424
+ id: string;
425
+ height: number;
426
+ items: ReportItem[];
427
+ visible?: boolean;
428
+ visibilityExpression?: string;
429
+ backgroundColor?: string;
430
+ keepTogether?: boolean;
431
+ repeatOnNewPage?: boolean;
432
+ startNewPage?: boolean;
433
+ startNewColumn?: boolean;
434
+ resetPageNumber?: boolean;
435
+ }
436
+ /** Report item type */
437
+ export type ReportItemType = 'label' | 'textbox' | 'field' | 'expression' | 'image' | 'line' | 'rectangle' | 'ellipse' | 'chart' | 'barcode' | 'qrcode' | 'table' | 'matrix' | 'list' | 'subreport' | 'pageBreak' | 'columnBreak' | 'richText' | 'html' | 'gauge' | 'sparkline' | 'map' | 'crosstab' | 'custom';
438
+ /** Report item */
439
+ export interface ReportItem {
440
+ id: string;
441
+ type: ReportItemType;
442
+ name?: string;
443
+ position: ItemPosition;
444
+ size: ItemSize;
445
+ style?: ItemStyle;
446
+ visible?: boolean;
447
+ visibilityExpression?: string;
448
+ tooltip?: string;
449
+ bookmark?: string;
450
+ hyperlinkExpression?: string;
451
+ properties?: ItemProperties;
452
+ }
453
+ /** Item position */
454
+ export interface ItemPosition {
455
+ x: number;
456
+ y: number;
457
+ anchorTop?: boolean;
458
+ anchorBottom?: boolean;
459
+ anchorLeft?: boolean;
460
+ anchorRight?: boolean;
461
+ }
462
+ /** Item size */
463
+ export interface ItemSize {
464
+ width: number;
465
+ height: number;
466
+ minWidth?: number;
467
+ minHeight?: number;
468
+ maxWidth?: number;
469
+ maxHeight?: number;
470
+ canGrow?: boolean;
471
+ canShrink?: boolean;
472
+ }
473
+ /** Item style */
474
+ export interface ItemStyle {
475
+ backgroundColor?: string;
476
+ backgroundImage?: string;
477
+ foregroundColor?: string;
478
+ font?: ReportFont;
479
+ padding?: ReportPadding;
480
+ border?: ReportBorder;
481
+ alignment?: ReportAlignment;
482
+ verticalAlignment?: ReportVerticalAlignment;
483
+ textRotation?: number;
484
+ lineSpacing?: number;
485
+ direction?: 'leftToRight' | 'rightToLeft';
486
+ }
487
+ /** Report font */
488
+ export interface ReportFont {
489
+ family?: string;
490
+ size?: number;
491
+ bold?: boolean;
492
+ italic?: boolean;
493
+ underline?: boolean;
494
+ strikethrough?: boolean;
495
+ color?: string;
496
+ }
497
+ /** Report padding */
498
+ export interface ReportPadding {
499
+ top?: number;
500
+ right?: number;
501
+ bottom?: number;
502
+ left?: number;
503
+ }
504
+ /** Report border */
505
+ export interface ReportBorder {
506
+ style?: BorderLineStyle;
507
+ width?: number;
508
+ color?: string;
509
+ top?: BorderSide;
510
+ right?: BorderSide;
511
+ bottom?: BorderSide;
512
+ left?: BorderSide;
513
+ }
514
+ /** Border line style */
515
+ export type BorderLineStyle = 'none' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset';
516
+ /** Border side */
517
+ export interface BorderSide {
518
+ style?: BorderLineStyle;
519
+ width?: number;
520
+ color?: string;
521
+ }
522
+ /** Item properties */
523
+ export type ItemProperties = LabelProperties | TextboxProperties | FieldProperties | ExpressionProperties | ImageProperties | LineProperties | ShapeProperties | ChartProperties | BarcodeProperties | TableProperties | MatrixProperties | ListProperties | SubreportProperties | GaugeProperties | SparklineProperties | MapProperties | CrosstabProperties;
524
+ /** Label properties */
525
+ export interface LabelProperties {
526
+ text: string;
527
+ markup?: 'none' | 'html' | 'rtf' | 'styled';
528
+ }
529
+ /** Textbox properties */
530
+ export interface TextboxProperties {
531
+ text?: string;
532
+ expression?: string;
533
+ format?: string;
534
+ markup?: 'none' | 'html' | 'rtf' | 'styled';
535
+ textWrap?: boolean;
536
+ trimming?: 'none' | 'character' | 'word' | 'ellipsisCharacter' | 'ellipsisWord' | 'ellipsisPath';
537
+ }
538
+ /** Field properties */
539
+ export interface FieldProperties {
540
+ dataSource: string;
541
+ field: string;
542
+ format?: string;
543
+ nullValue?: string;
544
+ aggregation?: AggregationType;
545
+ }
546
+ /** Aggregation type */
547
+ export type AggregationType = 'none' | 'sum' | 'average' | 'count' | 'countDistinct' | 'min' | 'max' | 'first' | 'last' | 'standardDeviation' | 'variance' | 'running';
548
+ /** Expression properties */
549
+ export interface ExpressionProperties {
550
+ expression: string;
551
+ format?: string;
552
+ evaluationTime?: EvaluationTime;
553
+ evaluationGroup?: string;
554
+ }
555
+ /** Evaluation time */
556
+ export type EvaluationTime = 'now' | 'report' | 'page' | 'column' | 'group' | 'band' | 'auto';
557
+ /** Image properties */
558
+ export interface ImageProperties {
559
+ source: ImageSource;
560
+ url?: string;
561
+ expression?: string;
562
+ base64?: string;
563
+ scaleMode?: 'none' | 'fill' | 'uniform' | 'uniformToFill';
564
+ alignment?: ReportAlignment;
565
+ verticalAlignment?: ReportVerticalAlignment;
566
+ }
567
+ /** Image source */
568
+ export type ImageSource = 'url' | 'expression' | 'embedded' | 'database';
569
+ /** Line properties */
570
+ export interface LineProperties {
571
+ direction: 'horizontal' | 'vertical' | 'topLeftToBottomRight' | 'topRightToBottomLeft';
572
+ lineWidth?: number;
573
+ lineColor?: string;
574
+ lineStyle?: BorderLineStyle;
575
+ }
576
+ /** Shape properties */
577
+ export interface ShapeProperties {
578
+ shapeType: 'rectangle' | 'roundedRectangle' | 'ellipse' | 'triangle';
579
+ radius?: number;
580
+ fill?: string;
581
+ stroke?: string;
582
+ strokeWidth?: number;
583
+ strokeStyle?: BorderLineStyle;
584
+ }
585
+ /** Chart properties */
586
+ export interface ChartProperties {
587
+ chartType: ChartType;
588
+ dataSource: string;
589
+ series: ChartSeries[];
590
+ categories?: ChartCategories;
591
+ title?: ChartTitle;
592
+ legend?: ChartLegend;
593
+ axes?: ChartAxes;
594
+ plotArea?: ChartPlotArea;
595
+ colors?: string[];
596
+ animation?: boolean;
597
+ threeDimensional?: boolean;
598
+ palette?: string;
599
+ }
600
+ /** Chart type */
601
+ export type ChartType = 'column' | 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'bubble' | 'radar' | 'polar' | 'stock' | 'candlestick' | 'funnel' | 'pyramid' | 'gantt' | 'waterfall' | 'boxPlot' | 'heatmap' | 'treemap' | 'sunburst';
602
+ /** Chart series */
603
+ export interface ChartSeries {
604
+ name?: string;
605
+ valueField: string;
606
+ categoryField?: string;
607
+ colorField?: string;
608
+ labelField?: string;
609
+ type?: ChartType;
610
+ color?: string;
611
+ showLabels?: boolean;
612
+ labelFormat?: string;
613
+ marker?: ChartMarker;
614
+ line?: ChartLine;
615
+ }
616
+ /** Chart marker */
617
+ export interface ChartMarker {
618
+ type: 'none' | 'circle' | 'square' | 'diamond' | 'triangle' | 'cross' | 'star';
619
+ size?: number;
620
+ color?: string;
621
+ borderColor?: string;
622
+ borderWidth?: number;
623
+ }
624
+ /** Chart line */
625
+ export interface ChartLine {
626
+ width?: number;
627
+ style?: 'solid' | 'dashed' | 'dotted';
628
+ color?: string;
629
+ }
630
+ /** Chart categories */
631
+ export interface ChartCategories {
632
+ field?: string;
633
+ labels?: string[];
634
+ dateGrouping?: GroupInterval;
635
+ }
636
+ /** Chart title */
637
+ export interface ChartTitle {
638
+ text?: string;
639
+ visible?: boolean;
640
+ position?: 'top' | 'bottom' | 'left' | 'right';
641
+ font?: ReportFont;
642
+ }
643
+ /** Chart legend */
644
+ export interface ChartLegend {
645
+ visible?: boolean;
646
+ position?: 'top' | 'bottom' | 'left' | 'right';
647
+ font?: ReportFont;
648
+ }
649
+ /** Chart axes */
650
+ export interface ChartAxes {
651
+ category?: ChartAxis;
652
+ value?: ChartAxis;
653
+ secondaryValue?: ChartAxis;
654
+ }
655
+ /** Chart axis */
656
+ export interface ChartAxis {
657
+ visible?: boolean;
658
+ title?: ChartTitle;
659
+ min?: number;
660
+ max?: number;
661
+ majorUnit?: number;
662
+ minorUnit?: number;
663
+ logarithmic?: boolean;
664
+ reversed?: boolean;
665
+ format?: string;
666
+ labels?: AxisLabels;
667
+ gridLines?: AxisGridLines;
668
+ }
669
+ /** Axis labels */
670
+ export interface AxisLabels {
671
+ visible?: boolean;
672
+ font?: ReportFont;
673
+ rotation?: number;
674
+ format?: string;
675
+ }
676
+ /** Axis grid lines */
677
+ export interface AxisGridLines {
678
+ visible?: boolean;
679
+ color?: string;
680
+ style?: BorderLineStyle;
681
+ width?: number;
682
+ }
683
+ /** Chart plot area */
684
+ export interface ChartPlotArea {
685
+ backgroundColor?: string;
686
+ border?: ReportBorder;
687
+ }
688
+ /** Barcode properties */
689
+ export interface BarcodeProperties {
690
+ barcodeType: BarcodeType;
691
+ value: string;
692
+ expression?: string;
693
+ showText?: boolean;
694
+ textPosition?: 'top' | 'bottom';
695
+ quietZone?: number;
696
+ barWidth?: number;
697
+ barHeight?: number;
698
+ rotation?: number;
699
+ checksum?: boolean;
700
+ }
701
+ /** Barcode type */
702
+ export type BarcodeType = 'code39' | 'code128' | 'code128A' | 'code128B' | 'code128C' | 'ean8' | 'ean13' | 'upcA' | 'upcE' | 'itf14' | 'code93' | 'codabar' | 'dataMatrix' | 'qrCode' | 'pdf417' | 'aztec' | 'maxiCode';
703
+ /** Table properties */
704
+ export interface TableProperties {
705
+ dataSource: string;
706
+ columns: TableColumn[];
707
+ rows?: TableRow[];
708
+ header?: TableHeader;
709
+ footer?: TableFooter;
710
+ grouping?: TableGrouping[];
711
+ alternateRowColor?: string;
712
+ repeatHeader?: boolean;
713
+ repeatFooter?: boolean;
714
+ }
715
+ /** Table column */
716
+ export interface TableColumn {
717
+ field?: string;
718
+ expression?: string;
719
+ header?: string;
720
+ footer?: string;
721
+ width?: number;
722
+ format?: string;
723
+ alignment?: ReportAlignment;
724
+ style?: ItemStyle;
725
+ visible?: boolean;
726
+ sortable?: boolean;
727
+ }
728
+ /** Table row */
729
+ export interface TableRow {
730
+ height?: number;
731
+ cells: TableCell[];
732
+ style?: ItemStyle;
733
+ }
734
+ /** Table cell */
735
+ export interface TableCell {
736
+ content?: string;
737
+ expression?: string;
738
+ colspan?: number;
739
+ rowspan?: number;
740
+ style?: ItemStyle;
741
+ }
742
+ /** Table header */
743
+ export interface TableHeader {
744
+ rows: TableRow[];
745
+ style?: ItemStyle;
746
+ }
747
+ /** Table footer */
748
+ export interface TableFooter {
749
+ rows: TableRow[];
750
+ style?: ItemStyle;
751
+ aggregations?: TableAggregation[];
752
+ }
753
+ /** Table aggregation */
754
+ export interface TableAggregation {
755
+ field: string;
756
+ type: AggregationType;
757
+ format?: string;
758
+ }
759
+ /** Table grouping */
760
+ export interface TableGrouping {
761
+ field: string;
762
+ header?: TableRow[];
763
+ footer?: TableRow[];
764
+ pageBreak?: boolean;
765
+ keepTogether?: boolean;
766
+ }
767
+ /** Matrix properties */
768
+ export interface MatrixProperties {
769
+ dataSource: string;
770
+ rowGroups: MatrixGroup[];
771
+ columnGroups: MatrixGroup[];
772
+ values: MatrixValue[];
773
+ rowTotals?: MatrixTotals;
774
+ columnTotals?: MatrixTotals;
775
+ grandTotals?: boolean;
776
+ style?: ItemStyle;
777
+ }
778
+ /** Matrix group */
779
+ export interface MatrixGroup {
780
+ field: string;
781
+ expression?: string;
782
+ header?: string;
783
+ sortDirection?: 'ascending' | 'descending';
784
+ subtotal?: boolean;
785
+ }
786
+ /** Matrix value */
787
+ export interface MatrixValue {
788
+ field: string;
789
+ aggregation: AggregationType;
790
+ format?: string;
791
+ style?: ItemStyle;
792
+ }
793
+ /** Matrix totals */
794
+ export interface MatrixTotals {
795
+ visible?: boolean;
796
+ position?: 'before' | 'after';
797
+ label?: string;
798
+ style?: ItemStyle;
799
+ }
800
+ /** List properties */
801
+ export interface ListProperties {
802
+ dataSource: string;
803
+ template: ReportItem[];
804
+ direction?: 'vertical' | 'horizontal';
805
+ columns?: number;
806
+ spacing?: number;
807
+ noDataTemplate?: ReportItem[];
808
+ }
809
+ /** Subreport properties */
810
+ export interface SubreportProperties {
811
+ reportPath?: string;
812
+ reportDefinition?: ReportDefinition;
813
+ parameters?: SubreportParameterMapping[];
814
+ dataSource?: string;
815
+ keepTogether?: boolean;
816
+ }
817
+ /** Subreport parameter mapping */
818
+ export interface SubreportParameterMapping {
819
+ parameterName: string;
820
+ value?: unknown;
821
+ expression?: string;
822
+ parentParameter?: string;
823
+ }
824
+ /** Gauge properties */
825
+ export interface GaugeProperties {
826
+ gaugeType: 'linear' | 'radial';
827
+ value: number | string;
828
+ min?: number;
829
+ max?: number;
830
+ ranges?: GaugeRange[];
831
+ pointer?: GaugePointer;
832
+ scale?: GaugeScale;
833
+ labels?: GaugeLabels;
834
+ }
835
+ /** Gauge range */
836
+ export interface GaugeRange {
837
+ from: number;
838
+ to: number;
839
+ color: string;
840
+ label?: string;
841
+ }
842
+ /** Gauge pointer */
843
+ export interface GaugePointer {
844
+ type?: 'needle' | 'marker' | 'bar';
845
+ color?: string;
846
+ width?: number;
847
+ }
848
+ /** Gauge scale */
849
+ export interface GaugeScale {
850
+ startAngle?: number;
851
+ sweepAngle?: number;
852
+ majorTicks?: number;
853
+ minorTicks?: number;
854
+ tickColor?: string;
855
+ }
856
+ /** Gauge labels */
857
+ export interface GaugeLabels {
858
+ visible?: boolean;
859
+ font?: ReportFont;
860
+ format?: string;
861
+ }
862
+ /** Sparkline properties */
863
+ export interface SparklineProperties {
864
+ sparklineType: 'line' | 'column' | 'winLoss';
865
+ dataSource: string;
866
+ valueField: string;
867
+ color?: string;
868
+ negativeColor?: string;
869
+ firstColor?: string;
870
+ lastColor?: string;
871
+ highColor?: string;
872
+ lowColor?: string;
873
+ showMarkers?: boolean;
874
+ showAxis?: boolean;
875
+ lineWidth?: number;
876
+ }
877
+ /** Map properties */
878
+ export interface MapProperties {
879
+ mapType: 'geographic' | 'shape';
880
+ mapPath?: string;
881
+ dataSource?: string;
882
+ locationField?: string;
883
+ valueField?: string;
884
+ colorField?: string;
885
+ layers?: MapLayer[];
886
+ legend?: ChartLegend;
887
+ projection?: string;
888
+ center?: {
889
+ lat: number;
890
+ lng: number;
891
+ };
892
+ zoom?: number;
893
+ }
894
+ /** Map layer */
895
+ export interface MapLayer {
896
+ type: 'polygon' | 'point' | 'line' | 'bubble' | 'heatmap';
897
+ dataSource?: string;
898
+ latitudeField?: string;
899
+ longitudeField?: string;
900
+ sizeField?: string;
901
+ colorField?: string;
902
+ labelField?: string;
903
+ style?: MapLayerStyle;
904
+ }
905
+ /** Map layer style */
906
+ export interface MapLayerStyle {
907
+ fill?: string;
908
+ stroke?: string;
909
+ strokeWidth?: number;
910
+ opacity?: number;
911
+ }
912
+ /** Crosstab properties */
913
+ export interface CrosstabProperties {
914
+ dataSource: string;
915
+ rowGroups: CrosstabGroup[];
916
+ columnGroups: CrosstabGroup[];
917
+ measures: CrosstabMeasure[];
918
+ rowTotals?: CrosstabTotals;
919
+ columnTotals?: CrosstabTotals;
920
+ headerCell?: ItemStyle;
921
+ dataCell?: ItemStyle;
922
+ totalCell?: ItemStyle;
923
+ alternateRowColors?: boolean;
924
+ }
925
+ /** Crosstab group */
926
+ export interface CrosstabGroup {
927
+ field: string;
928
+ header?: string;
929
+ sortDirection?: 'ascending' | 'descending';
930
+ sortByMeasure?: string;
931
+ subtotal?: boolean;
932
+ subtotalPosition?: 'before' | 'after';
933
+ }
934
+ /** Crosstab measure */
935
+ export interface CrosstabMeasure {
936
+ field: string;
937
+ aggregation: AggregationType;
938
+ format?: string;
939
+ header?: string;
940
+ }
941
+ /** Crosstab totals */
942
+ export interface CrosstabTotals {
943
+ visible?: boolean;
944
+ position?: 'before' | 'after';
945
+ label?: string;
946
+ }
947
+ /** Report style */
948
+ export interface ReportStyle {
949
+ id: string;
950
+ name: string;
951
+ parentStyle?: string;
952
+ style: ItemStyle;
953
+ conditionalStyles?: ConditionalStyle[];
954
+ }
955
+ /** Conditional style */
956
+ export interface ConditionalStyle {
957
+ condition: string;
958
+ style: ItemStyle;
959
+ }
960
+ /** Report script */
961
+ export interface ReportScript {
962
+ id: string;
963
+ name: string;
964
+ language: 'javascript' | 'vbscript';
965
+ code: string;
966
+ event?: ScriptEvent;
967
+ }
968
+ /** Script event */
969
+ export type ScriptEvent = 'beforePrint' | 'afterPrint' | 'beforeBand' | 'afterBand' | 'beforeField' | 'afterField' | 'beforePage' | 'afterPage' | 'beforeGroup' | 'afterGroup' | 'onError';
970
+ /** Subreport definition */
971
+ export interface SubreportDefinition {
972
+ id: string;
973
+ name: string;
974
+ report: ReportDefinition;
975
+ }
976
+ /** Report execution request */
977
+ export interface ReportExecutionRequest {
978
+ reportId: string;
979
+ parameters?: Record<string, unknown>;
980
+ outputFormat: ReportOutputFormat;
981
+ options?: ReportOutputOptions;
982
+ }
983
+ /** Report output options */
984
+ export interface ReportOutputOptions {
985
+ pdfVersion?: '1.4' | '1.5' | '1.6' | '1.7' | '2.0';
986
+ pdfA?: boolean;
987
+ embedFonts?: boolean;
988
+ imageQuality?: number;
989
+ excelFormat?: 'xls' | 'xlsx';
990
+ onePagePerSheet?: boolean;
991
+ autoFitColumns?: boolean;
992
+ htmlEncoding?: string;
993
+ embedImages?: boolean;
994
+ inlineStyles?: boolean;
995
+ imageFormat?: 'png' | 'jpeg' | 'gif' | 'bmp' | 'tiff';
996
+ imageDpi?: number;
997
+ pageRange?: string;
998
+ watermark?: Watermark;
999
+ password?: string;
1000
+ }
1001
+ /** Report execution result */
1002
+ export interface ReportExecutionResult {
1003
+ success: boolean;
1004
+ data?: ArrayBuffer;
1005
+ url?: string;
1006
+ mimeType?: string;
1007
+ filename?: string;
1008
+ pages?: number;
1009
+ executionTime?: number;
1010
+ errors?: ReportError[];
1011
+ warnings?: ReportWarning[];
1012
+ }
1013
+ /** Report error */
1014
+ export interface ReportError {
1015
+ code: string;
1016
+ message: string;
1017
+ source?: string;
1018
+ line?: number;
1019
+ }
1020
+ /** Report warning */
1021
+ export interface ReportWarning {
1022
+ code: string;
1023
+ message: string;
1024
+ source?: string;
1025
+ }
1026
+ /** Report schedule */
1027
+ export interface ReportSchedule {
1028
+ id: string;
1029
+ reportId: string;
1030
+ name: string;
1031
+ description?: string;
1032
+ enabled: boolean;
1033
+ schedule: ScheduleConfig;
1034
+ parameters?: Record<string, unknown>;
1035
+ output: ScheduleOutput;
1036
+ delivery: ScheduleDelivery[];
1037
+ notifications?: ScheduleNotification[];
1038
+ lastRun?: Date;
1039
+ nextRun?: Date;
1040
+ status?: ScheduleStatus;
1041
+ }
1042
+ /** Schedule configuration */
1043
+ export interface ScheduleConfig {
1044
+ type: 'once' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'cron';
1045
+ startDate?: Date;
1046
+ endDate?: Date;
1047
+ time?: string;
1048
+ timezone?: string;
1049
+ daysOfWeek?: number[];
1050
+ daysOfMonth?: number[];
1051
+ months?: number[];
1052
+ cronExpression?: string;
1053
+ retryOnFailure?: boolean;
1054
+ maxRetries?: number;
1055
+ }
1056
+ /** Schedule output */
1057
+ export interface ScheduleOutput {
1058
+ format: ReportOutputFormat;
1059
+ options?: ReportOutputOptions;
1060
+ filename?: string;
1061
+ filenamePattern?: string;
1062
+ compress?: boolean;
1063
+ }
1064
+ /** Schedule delivery */
1065
+ export interface ScheduleDelivery {
1066
+ type: 'email' | 'ftp' | 'sftp' | 'sharepoint' | 'filesystem' | 'webhook';
1067
+ config: DeliveryConfig;
1068
+ }
1069
+ /** Delivery configuration */
1070
+ export interface DeliveryConfig {
1071
+ to?: string[];
1072
+ cc?: string[];
1073
+ bcc?: string[];
1074
+ subject?: string;
1075
+ body?: string;
1076
+ attachReport?: boolean;
1077
+ host?: string;
1078
+ port?: number;
1079
+ username?: string;
1080
+ password?: string;
1081
+ path?: string;
1082
+ siteUrl?: string;
1083
+ libraryName?: string;
1084
+ folderPath?: string;
1085
+ directory?: string;
1086
+ overwrite?: boolean;
1087
+ url?: string;
1088
+ method?: string;
1089
+ headers?: Record<string, string>;
1090
+ includeReportData?: boolean;
1091
+ }
1092
+ /** Schedule notification */
1093
+ export interface ScheduleNotification {
1094
+ type: 'email' | 'sms' | 'webhook';
1095
+ event: 'success' | 'failure' | 'both';
1096
+ recipients: string[];
1097
+ template?: string;
1098
+ }
1099
+ /** Schedule status */
1100
+ export interface ScheduleStatus {
1101
+ lastRunStatus: 'success' | 'failure' | 'running' | 'cancelled';
1102
+ lastRunTime?: Date;
1103
+ lastRunDuration?: number;
1104
+ lastError?: string;
1105
+ consecutiveFailures?: number;
1106
+ }
1107
+ /** Report gallery item */
1108
+ export interface ReportGalleryItem {
1109
+ id: string;
1110
+ name: string;
1111
+ description?: string;
1112
+ category?: string;
1113
+ tags?: string[];
1114
+ thumbnail?: string;
1115
+ author?: string;
1116
+ created?: Date;
1117
+ modified?: Date;
1118
+ downloads?: number;
1119
+ rating?: number;
1120
+ reportDefinition: ReportDefinition;
1121
+ }
1122
+ /** Report gallery category */
1123
+ export interface ReportGalleryCategory {
1124
+ id: string;
1125
+ name: string;
1126
+ description?: string;
1127
+ icon?: string;
1128
+ parent?: string;
1129
+ count?: number;
1130
+ }
1131
+ /** Drill-down action */
1132
+ export interface DrillDownAction {
1133
+ type: 'report' | 'url' | 'javascript';
1134
+ target?: string;
1135
+ parameters?: DrillDownParameter[];
1136
+ newWindow?: boolean;
1137
+ }
1138
+ /** Drill-down parameter */
1139
+ export interface DrillDownParameter {
1140
+ name: string;
1141
+ value?: unknown;
1142
+ expression?: string;
1143
+ field?: string;
1144
+ }
1145
+ /** Drill-through configuration */
1146
+ export interface DrillThroughConfig {
1147
+ enabled: boolean;
1148
+ targetReport?: string;
1149
+ parameters?: DrillDownParameter[];
1150
+ preserveParameters?: boolean;
1151
+ openInNewWindow?: boolean;
1152
+ }
1153
+ //# sourceMappingURL=report-designer.d.ts.map