@zentto/report-core 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/engine/conditional-format.d.ts +48 -0
  2. package/dist/engine/conditional-format.d.ts.map +1 -0
  3. package/dist/engine/conditional-format.js +167 -0
  4. package/dist/engine/conditional-format.js.map +1 -0
  5. package/dist/engine/cross-tab.d.ts +68 -0
  6. package/dist/engine/cross-tab.d.ts.map +1 -0
  7. package/dist/engine/cross-tab.js +549 -0
  8. package/dist/engine/cross-tab.js.map +1 -0
  9. package/dist/engine/expression.d.ts +46 -2
  10. package/dist/engine/expression.d.ts.map +1 -1
  11. package/dist/engine/expression.js +1415 -90
  12. package/dist/engine/expression.js.map +1 -1
  13. package/dist/engine/multi-pass-engine.d.ts +74 -0
  14. package/dist/engine/multi-pass-engine.d.ts.map +1 -0
  15. package/dist/engine/multi-pass-engine.js +1082 -0
  16. package/dist/engine/multi-pass-engine.js.map +1 -0
  17. package/dist/engine/running-totals.d.ts +74 -0
  18. package/dist/engine/running-totals.d.ts.map +1 -0
  19. package/dist/engine/running-totals.js +247 -0
  20. package/dist/engine/running-totals.js.map +1 -0
  21. package/dist/engine/subreport.d.ts +59 -0
  22. package/dist/engine/subreport.d.ts.map +1 -0
  23. package/dist/engine/subreport.js +295 -0
  24. package/dist/engine/subreport.js.map +1 -0
  25. package/dist/index.d.ts +11 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +10 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/schema/report-schema.d.ts +346 -346
  30. package/dist/serialization/json.d.ts +88 -88
  31. package/dist/templates/page-sizes.d.ts.map +1 -1
  32. package/dist/templates/page-sizes.js +95 -3
  33. package/dist/templates/page-sizes.js.map +1 -1
  34. package/dist/types.d.ts +38 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,295 @@
1
+ // @zentto/report-core — Subreport engine
2
+ // Supports linked, unlinked, and on-demand subreports (Crystal Reports style)
3
+ import { renderToHtml } from '../render/html-renderer.js';
4
+ // ─── Shared Variables ──────────────────────────────────────────────
5
+ /** Global shared variable store (parent <-> subreport communication) */
6
+ let _sharedVars = new Map();
7
+ /** Set a shared variable (accessible from parent and all subreports) */
8
+ export function setSharedVariable(name, value) {
9
+ _sharedVars.set(name, value);
10
+ }
11
+ /** Get a shared variable */
12
+ export function getSharedVariable(name) {
13
+ return _sharedVars.get(name);
14
+ }
15
+ /** Clear all shared variables (call before a new top-level render) */
16
+ export function clearSharedVariables() {
17
+ _sharedVars = new Map();
18
+ }
19
+ /** Get a snapshot of all shared variables */
20
+ export function getSharedVariables() {
21
+ return new Map(_sharedVars);
22
+ }
23
+ // ─── Depth Guard ───────────────────────────────────────────────────
24
+ const MAX_SUBREPORT_DEPTH = 10;
25
+ // ─── Filter Engine ─────────────────────────────────────────────────
26
+ /**
27
+ * Evaluate a simple filter expression against a data row.
28
+ * Supports: field == value, field != value, field > value, field < value,
29
+ * field >= value, field <= value, field LIKE 'pattern'
30
+ * Multiple conditions with AND / OR.
31
+ */
32
+ function evaluateFilter(expression, row) {
33
+ if (!expression || expression.trim() === '')
34
+ return true;
35
+ // Split by OR first, then AND
36
+ const orParts = expression.split(/\bOR\b/i);
37
+ for (const orPart of orParts) {
38
+ const andParts = orPart.split(/\bAND\b/i);
39
+ let allTrue = true;
40
+ for (const condition of andParts) {
41
+ if (!evaluateSingleCondition(condition.trim(), row)) {
42
+ allTrue = false;
43
+ break;
44
+ }
45
+ }
46
+ if (allTrue)
47
+ return true;
48
+ }
49
+ return false;
50
+ }
51
+ function evaluateSingleCondition(condition, row) {
52
+ if (!condition)
53
+ return true;
54
+ // Match: field operator value
55
+ const match = condition.match(/^(\w+)\s*(==|!=|>=|<=|>|<|LIKE)\s*['"]?([^'"]*?)['"]?\s*$/i);
56
+ if (!match)
57
+ return true;
58
+ const [, field, operator, rawValue] = match;
59
+ const rowValue = row[field];
60
+ const compareValue = parseFilterValue(rawValue);
61
+ switch (operator.toUpperCase()) {
62
+ case '==':
63
+ return rowValue == compareValue;
64
+ case '!=':
65
+ return rowValue != compareValue;
66
+ case '>':
67
+ return Number(rowValue) > Number(compareValue);
68
+ case '<':
69
+ return Number(rowValue) < Number(compareValue);
70
+ case '>=':
71
+ return Number(rowValue) >= Number(compareValue);
72
+ case '<=':
73
+ return Number(rowValue) <= Number(compareValue);
74
+ case 'LIKE': {
75
+ const pattern = String(compareValue)
76
+ .replace(/%/g, '.*')
77
+ .replace(/_/g, '.');
78
+ return new RegExp(`^${pattern}$`, 'i').test(String(rowValue ?? ''));
79
+ }
80
+ default:
81
+ return true;
82
+ }
83
+ }
84
+ function parseFilterValue(raw) {
85
+ if (raw === 'true')
86
+ return true;
87
+ if (raw === 'false')
88
+ return false;
89
+ if (raw === 'null')
90
+ return null;
91
+ const num = Number(raw);
92
+ if (!isNaN(num) && raw !== '')
93
+ return num;
94
+ return raw;
95
+ }
96
+ // ─── Data Resolution ───────────────────────────────────────────────
97
+ /**
98
+ * Resolve the data for a subreport based on its type and configuration.
99
+ * For linked subreports, filters data based on parameter links from parent row.
100
+ */
101
+ function resolveSubreportData(subreportDef, parentContext, parentDataSets) {
102
+ const childDataSets = { ...parentDataSets };
103
+ // If the subreport defines its own data source, use it
104
+ if (subreportDef.dataSource && parentDataSets[subreportDef.dataSource]) {
105
+ let sourceData = parentDataSets[subreportDef.dataSource];
106
+ // For linked subreports, filter based on parameter links
107
+ if (subreportDef.type === 'linked' &&
108
+ subreportDef.parameterLinks &&
109
+ subreportDef.parameterLinks.length > 0 &&
110
+ Array.isArray(sourceData)) {
111
+ sourceData = filterLinkedData(sourceData, subreportDef.parameterLinks, parentContext);
112
+ }
113
+ // Apply filter expression
114
+ if (subreportDef.filterExpression && Array.isArray(sourceData)) {
115
+ sourceData = sourceData.filter((row) => evaluateFilter(subreportDef.filterExpression, row));
116
+ }
117
+ childDataSets[subreportDef.dataSource] = sourceData;
118
+ }
119
+ else if (subreportDef.type === 'linked' &&
120
+ subreportDef.parameterLinks &&
121
+ subreportDef.parameterLinks.length > 0) {
122
+ // For linked subreports without explicit dataSource, filter all array data sources
123
+ for (const [dsId, dsData] of Object.entries(childDataSets)) {
124
+ if (Array.isArray(dsData)) {
125
+ let filtered = filterLinkedData(dsData, subreportDef.parameterLinks, parentContext);
126
+ if (subreportDef.filterExpression) {
127
+ filtered = filtered.filter((row) => evaluateFilter(subreportDef.filterExpression, row));
128
+ }
129
+ childDataSets[dsId] = filtered;
130
+ }
131
+ }
132
+ }
133
+ return childDataSets;
134
+ }
135
+ /**
136
+ * Filter data rows based on parameter links from parent context.
137
+ * Each link maps a parentField to a childParameter (field in child data).
138
+ */
139
+ function filterLinkedData(data, parameterLinks, parentContext) {
140
+ return data.filter((row) => {
141
+ for (const link of parameterLinks) {
142
+ const parentValue = resolveParentFieldValue(link.parentField, parentContext);
143
+ const childValue = row[link.childParameter];
144
+ if (parentValue !== childValue)
145
+ return false;
146
+ }
147
+ return true;
148
+ });
149
+ }
150
+ /**
151
+ * Resolve a field value from the parent context.
152
+ * Tries: currentRow -> parameters -> dataSets (first matching field).
153
+ */
154
+ function resolveParentFieldValue(fieldName, ctx) {
155
+ // Check if field is qualified (dsId.fieldName)
156
+ const dotIdx = fieldName.indexOf('.');
157
+ if (dotIdx > 0) {
158
+ const dsId = fieldName.substring(0, dotIdx);
159
+ const fName = fieldName.substring(dotIdx + 1);
160
+ const ds = ctx.dataSets[dsId];
161
+ if (ds && !Array.isArray(ds)) {
162
+ return ds[fName];
163
+ }
164
+ if (ds && Array.isArray(ds) && ctx.currentIndex !== undefined) {
165
+ return ds[ctx.currentIndex]?.[fName];
166
+ }
167
+ }
168
+ // Try current row
169
+ if (ctx.currentRow && fieldName in ctx.currentRow) {
170
+ return ctx.currentRow[fieldName];
171
+ }
172
+ // Try parameters
173
+ if (ctx.parameters && fieldName in ctx.parameters) {
174
+ return ctx.parameters[fieldName];
175
+ }
176
+ // Try all data sources (first match)
177
+ for (const ds of Object.values(ctx.dataSets)) {
178
+ if (!Array.isArray(ds) && fieldName in ds) {
179
+ return ds[fieldName];
180
+ }
181
+ }
182
+ return undefined;
183
+ }
184
+ // ─── Parameter Resolution ──────────────────────────────────────────
185
+ /**
186
+ * Build the parameters object for a subreport from parameter links.
187
+ */
188
+ function buildSubreportParameters(subreportDef, parentContext) {
189
+ const params = {
190
+ ...(parentContext.parameters || {}),
191
+ };
192
+ if (subreportDef.parameterLinks) {
193
+ for (const link of subreportDef.parameterLinks) {
194
+ const value = resolveParentFieldValue(link.parentField, parentContext);
195
+ params[link.childParameter] = value;
196
+ }
197
+ }
198
+ return params;
199
+ }
200
+ // ─── Render Subreport ──────────────────────────────────────────────
201
+ /**
202
+ * Render a subreport within the context of a parent report.
203
+ * Handles all three types: linked, unlinked, on-demand.
204
+ *
205
+ * @param subreportDef The subreport definition
206
+ * @param parentContext The binding context of the parent report at the point of insertion
207
+ * @param parentDataSets The full data sets from the parent report
208
+ * @param depth Current recursion depth (internal, for guard)
209
+ * @returns Rendered HTML string
210
+ */
211
+ export function renderSubreport(subreportDef, parentContext, parentDataSets, depth = 0) {
212
+ // Recursion guard
213
+ if (depth >= MAX_SUBREPORT_DEPTH) {
214
+ return `<div class="zr-subreport-error" style="color:red;font-size:12px;padding:4px;">Error: subreport depth limit (${MAX_SUBREPORT_DEPTH}) exceeded for "${subreportDef.id}"</div>`;
215
+ }
216
+ // ─── On-demand: render placeholder with deferred link ────────
217
+ if (subreportDef.type === 'on-demand') {
218
+ return renderOnDemandPlaceholder(subreportDef, parentContext);
219
+ }
220
+ // ─── Linked & Unlinked: full render ──────────────────────────
221
+ const childDataSets = subreportDef.type === 'unlinked'
222
+ ? { ...parentDataSets }
223
+ : resolveSubreportData(subreportDef, parentContext, parentDataSets);
224
+ const childParams = buildSubreportParameters(subreportDef, parentContext);
225
+ // Render the subreport layout using the standard engine
226
+ const result = renderToHtml(subreportDef.layout, childDataSets, {
227
+ parameters: childParams,
228
+ cssPrefix: `zr-sub-${subreportDef.id}`,
229
+ });
230
+ // Combine all pages into one inline block (subreports are embedded)
231
+ const pagesHtml = result.pages.map((p) => p.html).join('');
232
+ // Handle page breaks: subreport pages are separated with a visual break
233
+ const wrappedHtml = `<div class="zr-subreport" data-subreport-id="${escapeAttr(subreportDef.id)}" data-subreport-type="${subreportDef.type}" data-depth="${depth}">${pagesHtml}</div>`;
234
+ return wrappedHtml;
235
+ }
236
+ /**
237
+ * Render an on-demand subreport placeholder.
238
+ * The actual content is deferred — the placeholder contains the data needed to render on click.
239
+ */
240
+ function renderOnDemandPlaceholder(subreportDef, parentContext) {
241
+ // Serialize parameter link values for the placeholder
242
+ const linkData = {};
243
+ if (subreportDef.parameterLinks) {
244
+ for (const link of subreportDef.parameterLinks) {
245
+ linkData[link.childParameter] = resolveParentFieldValue(link.parentField, parentContext);
246
+ }
247
+ }
248
+ const encodedData = escapeAttr(JSON.stringify(linkData));
249
+ const label = subreportDef.layout.name || subreportDef.id;
250
+ return `<div class="zr-subreport zr-subreport-on-demand" data-subreport-id="${escapeAttr(subreportDef.id)}" data-subreport-type="on-demand" data-link-params="${encodedData}"><a href="#" class="zr-subreport-link" onclick="event.preventDefault();this.parentElement.dispatchEvent(new CustomEvent('subreport-demand',{bubbles:true,detail:{id:'${escapeAttr(subreportDef.id)}',params:${escapeAttr(JSON.stringify(linkData))}}}));" style="color:#0066cc;text-decoration:underline;cursor:pointer;font-size:12px;">[${escapeHtml(label)}]</a></div>`;
251
+ }
252
+ // ─── Batch Rendering (registry) ────────────────────────────────────
253
+ /**
254
+ * Create a subreport registry to manage multiple subreports.
255
+ */
256
+ export function createSubreportRegistry(subreports) {
257
+ return {
258
+ subreports,
259
+ sharedVariables: _sharedVars,
260
+ };
261
+ }
262
+ /**
263
+ * Find a subreport definition by ID in a registry or array.
264
+ */
265
+ export function findSubreport(subreports, id) {
266
+ return subreports.find((s) => s.id === id);
267
+ }
268
+ /**
269
+ * Render a subreport element found inside a band.
270
+ * This is the entry point called by the HTML renderer when it encounters a subreport element.
271
+ */
272
+ export function renderSubreportElement(element, subreports, parentContext, parentDataSets, depth = 0) {
273
+ const def = findSubreport(subreports, element.subreportId);
274
+ if (!def) {
275
+ return `<div class="zr-subreport-error" style="color:red;font-size:12px;padding:4px;">Subreport "${escapeHtml(element.subreportId)}" not found</div>`;
276
+ }
277
+ return renderSubreport(def, parentContext, parentDataSets, depth);
278
+ }
279
+ // ─── Utilities ─────────────────────────────────────────────────────
280
+ function escapeHtml(str) {
281
+ return str
282
+ .replace(/&/g, '&amp;')
283
+ .replace(/</g, '&lt;')
284
+ .replace(/>/g, '&gt;')
285
+ .replace(/"/g, '&quot;');
286
+ }
287
+ function escapeAttr(str) {
288
+ return str
289
+ .replace(/&/g, '&amp;')
290
+ .replace(/"/g, '&quot;')
291
+ .replace(/'/g, '&#39;')
292
+ .replace(/</g, '&lt;')
293
+ .replace(/>/g, '&gt;');
294
+ }
295
+ //# sourceMappingURL=subreport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subreport.js","sourceRoot":"","sources":["../../src/engine/subreport.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { Unit, PageSize, Margins, Position, ElementStyle, LineStyle, DataSourceDef, FieldDef, ElementType, BaseElement, TextElement, FieldElement, ImageElement, LineElement, RectElement, BarcodeElement, PageNumberElement, TotalPagesElement, CurrentDateElement, ReportElement, BandType, Band, SortDef, GroupDef, AggregateFunction, ReportLayout, ParameterDef, DataSet, RenderPage, RenderResult, RenderOptions, } from './types.js';
1
+ export type { Unit, PageSize, Margins, Position, ElementStyle, LineStyle, DataSourceDef, FieldDef, ElementType, BaseElement, TextElement, FieldElement, ImageElement, LineElement, RectElement, BarcodeElement, SubreportElement, CrossTabElement, PageNumberElement, TotalPagesElement, CurrentDateElement, ReportElement, BandType, Band, SortDef, GroupDef, AggregateFunction, RunningTotalDef as RunningTotalDefType, ConditionalFormatRule as ConditionalFormatRuleType, ReportLayout, ParameterDef, DataSet, RenderPage, RenderResult, RenderOptions, } from './types.js';
2
2
  export { reportLayoutSchema, validateLayout, safeValidateLayout, } from './schema/report-schema.js';
3
3
  export { processLayout, mmToPx, inToPx, ptToPx, toPx, } from './engine/band-engine.js';
4
4
  export type { RenderedBand, PageContent, } from './engine/band-engine.js';
@@ -8,7 +8,17 @@ export { evaluateExpression, } from './engine/expression.js';
8
8
  export { renderToHtml, renderToFullHtml, } from './render/html-renderer.js';
9
9
  export { layoutToJson, jsonToLayout, safeJsonToLayout, downloadLayoutJson, createBlankLayout, } from './serialization/json.js';
10
10
  export { generateQrSvg, generateBarcodeSvg, } from './visualization/barcode.js';
11
+ export { RunningTotalEngine } from './engine/running-totals.js';
12
+ export type { RunningTotalDef } from './engine/running-totals.js';
13
+ export { evaluateConditionalFormats, resolveRulesForBand, applyConditionalStyle, } from './engine/conditional-format.js';
14
+ export type { ConditionalFormatRule, ConditionalFormatResult, } from './engine/conditional-format.js';
11
15
  export { PAGE_SIZES, getPageSizePreset, getPageSizesByCategory, } from './templates/page-sizes.js';
12
16
  export type { PageSizePreset, } from './templates/page-sizes.js';
13
17
  export { PRODUCT_BARCODE_LABEL, SHIPPING_LABEL, AVERY_5160_ADDRESS, AVERY_5371_BUSINESS_CARD, INVENTORY_QR_TAG, LABEL_TEMPLATES, } from './templates/label-templates.js';
18
+ export { renderSubreport, renderSubreportElement, createSubreportRegistry, findSubreport, setSharedVariable, getSharedVariable, clearSharedVariables, getSharedVariables, } from './engine/subreport.js';
19
+ export type { SubreportDef, SubreportRegistry, } from './engine/subreport.js';
20
+ export { buildCrossTab, renderCrossTabHtml, } from './engine/cross-tab.js';
21
+ export type { CrossTabDef, CrossTabField, CrossTabSummary, CrossTabResult, } from './engine/cross-tab.js';
22
+ export { executePass1, executePass2, executePass3, renderReport, getAggregate, getRunningTotal, } from './engine/multi-pass-engine.js';
23
+ export type { ReportContext, PrintState, } from './engine/multi-pass-engine.js';
14
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,GACL,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,cAAc,GACf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,eAAe,IAAI,mBAAmB,EACtC,qBAAqB,IAAI,yBAAyB,EAClD,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,GACL,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,cAAc,GACf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,aAAa,EACb,UAAU,GACX,MAAM,+BAA+B,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,17 @@ export { renderToHtml, renderToFullHtml, } from './render/html-renderer.js';
13
13
  export { layoutToJson, jsonToLayout, safeJsonToLayout, downloadLayoutJson, createBlankLayout, } from './serialization/json.js';
14
14
  // ─── Barcode / QR ───────────────────────────────────────────────
15
15
  export { generateQrSvg, generateBarcodeSvg, } from './visualization/barcode.js';
16
+ // ─── Running Totals ────────────────────────────────────────────────
17
+ export { RunningTotalEngine } from './engine/running-totals.js';
18
+ // ─── Conditional Formatting ────────────────────────────────────────
19
+ export { evaluateConditionalFormats, resolveRulesForBand, applyConditionalStyle, } from './engine/conditional-format.js';
16
20
  // ─── Templates & Presets ────────────────────────────────────────
17
21
  export { PAGE_SIZES, getPageSizePreset, getPageSizesByCategory, } from './templates/page-sizes.js';
18
22
  export { PRODUCT_BARCODE_LABEL, SHIPPING_LABEL, AVERY_5160_ADDRESS, AVERY_5371_BUSINESS_CARD, INVENTORY_QR_TAG, LABEL_TEMPLATES, } from './templates/label-templates.js';
23
+ // ─── Subreport Engine ────────────────────────────────────────────────
24
+ export { renderSubreport, renderSubreportElement, createSubreportRegistry, findSubreport, setSharedVariable, getSharedVariable, clearSharedVariables, getSharedVariables, } from './engine/subreport.js';
25
+ // ─── Cross-Tab (Pivot Table) Engine ─────────────────────────────────
26
+ export { buildCrossTab, renderCrossTabHtml, } from './engine/cross-tab.js';
27
+ // ─── Multi-Pass Engine (Crystal Reports 3-pass model) ───────────────
28
+ export { executePass1, executePass2, executePass3, renderReport, getAggregate, getRunningTotal, } from './engine/multi-pass-engine.js';
19
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAsCjE,sEAAsE;AAEtE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,uEAAuE;AAEvE,OAAO,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,GACL,MAAM,yBAAyB,CAAC;AAOjC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAMlC,uEAAuE;AAEvE,OAAO,EACL,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,mEAAmE;AAEnE,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,mEAAmE;AAEnE,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AA0CjE,sEAAsE;AAEtE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,uEAAuE;AAEvE,OAAO,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,GACL,MAAM,yBAAyB,CAAC;AAOjC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAMlC,uEAAuE;AAEvE,OAAO,EACL,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,mEAAmE;AAEnE,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,sEAAsE;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE,sEAAsE;AAEtE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AAOxC,mEAAmE;AAEnE,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAExC,wEAAwE;AAExE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAO/B,uEAAuE;AAEvE,OAAO,EACL,aAAa,EACb,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAS/B,uEAAuE;AAEvE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,+BAA+B,CAAC"}