@arslankhan/doc-forge 0.0.0-stage → 0.1.1
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/CHANGELOG.md +11 -0
- package/LICENSE +13 -0
- package/LICENSING.md +80 -0
- package/README.md +547 -2
- package/RELEASE.md +50 -0
- package/dist/binding-path.d.ts +15 -0
- package/dist/binding-path.d.ts.map +1 -0
- package/dist/binding-path.js +37 -0
- package/dist/binding-path.js.map +1 -0
- package/dist/binding.d.ts +91 -0
- package/dist/binding.d.ts.map +1 -0
- package/dist/binding.js +229 -0
- package/dist/binding.js.map +1 -0
- package/dist/designer/Canvas.d.ts +51 -0
- package/dist/designer/Canvas.d.ts.map +1 -0
- package/dist/designer/Canvas.js +188 -0
- package/dist/designer/Canvas.js.map +1 -0
- package/dist/designer/DocumentDesigner.d.ts +14 -0
- package/dist/designer/DocumentDesigner.d.ts.map +1 -0
- package/dist/designer/DocumentDesigner.js +351 -0
- package/dist/designer/DocumentDesigner.js.map +1 -0
- package/dist/designer/HtmlPreview.d.ts +9 -0
- package/dist/designer/HtmlPreview.d.ts.map +1 -0
- package/dist/designer/HtmlPreview.js +20 -0
- package/dist/designer/HtmlPreview.js.map +1 -0
- package/dist/designer/ImageBindingFields.d.ts +11 -0
- package/dist/designer/ImageBindingFields.d.ts.map +1 -0
- package/dist/designer/ImageBindingFields.js +106 -0
- package/dist/designer/ImageBindingFields.js.map +1 -0
- package/dist/designer/InvoiceFields.d.ts +13 -0
- package/dist/designer/InvoiceFields.d.ts.map +1 -0
- package/dist/designer/InvoiceFields.js +85 -0
- package/dist/designer/InvoiceFields.js.map +1 -0
- package/dist/designer/PreviewDataDialog.d.ts +13 -0
- package/dist/designer/PreviewDataDialog.d.ts.map +1 -0
- package/dist/designer/PreviewDataDialog.js +16 -0
- package/dist/designer/PreviewDataDialog.js.map +1 -0
- package/dist/designer/PropertiesPanel.d.ts +15 -0
- package/dist/designer/PropertiesPanel.d.ts.map +1 -0
- package/dist/designer/PropertiesPanel.js +63 -0
- package/dist/designer/PropertiesPanel.js.map +1 -0
- package/dist/designer/ReportFields.d.ts +14 -0
- package/dist/designer/ReportFields.d.ts.map +1 -0
- package/dist/designer/ReportFields.js +257 -0
- package/dist/designer/ReportFields.js.map +1 -0
- package/dist/designer/StyleFields.d.ts +16 -0
- package/dist/designer/StyleFields.d.ts.map +1 -0
- package/dist/designer/StyleFields.js +138 -0
- package/dist/designer/StyleFields.js.map +1 -0
- package/dist/designer/TextBindingFields.d.ts +11 -0
- package/dist/designer/TextBindingFields.d.ts.map +1 -0
- package/dist/designer/TextBindingFields.js +105 -0
- package/dist/designer/TextBindingFields.js.map +1 -0
- package/dist/designer/Toolbar.d.ts +52 -0
- package/dist/designer/Toolbar.d.ts.map +1 -0
- package/dist/designer/Toolbar.js +62 -0
- package/dist/designer/Toolbar.js.map +1 -0
- package/dist/designer/Toolbox.d.ts +8 -0
- package/dist/designer/Toolbox.d.ts.map +1 -0
- package/dist/designer/Toolbox.js +43 -0
- package/dist/designer/Toolbox.js.map +1 -0
- package/dist/designer/border-preview.d.ts +15 -0
- package/dist/designer/border-preview.d.ts.map +1 -0
- package/dist/designer/border-preview.js +34 -0
- package/dist/designer/border-preview.js.map +1 -0
- package/dist/designer/history.d.ts +13 -0
- package/dist/designer/history.d.ts.map +1 -0
- package/dist/designer/history.js +51 -0
- package/dist/designer/history.js.map +1 -0
- package/dist/designer/index.d.ts +5 -0
- package/dist/designer/index.d.ts.map +1 -0
- package/dist/designer/index.js +3 -0
- package/dist/designer/index.js.map +1 -0
- package/dist/designer/page-geometry.d.ts +35 -0
- package/dist/designer/page-geometry.d.ts.map +1 -0
- package/dist/designer/page-geometry.js +123 -0
- package/dist/designer/page-geometry.js.map +1 -0
- package/dist/designer/styles.d.ts +3 -0
- package/dist/designer/styles.d.ts.map +1 -0
- package/dist/designer/styles.js +594 -0
- package/dist/designer/styles.js.map +1 -0
- package/dist/designer/template-edits.d.ts +26 -0
- package/dist/designer/template-edits.d.ts.map +1 -0
- package/dist/designer/template-edits.js +323 -0
- package/dist/designer/template-edits.js.map +1 -0
- package/dist/designer/theme.d.ts +31 -0
- package/dist/designer/theme.d.ts.map +1 -0
- package/dist/designer/theme.js +92 -0
- package/dist/designer/theme.js.map +1 -0
- package/dist/examples/bound-invoice.d.ts +143 -0
- package/dist/examples/bound-invoice.d.ts.map +1 -0
- package/dist/examples/bound-invoice.js +99 -0
- package/dist/examples/bound-invoice.js.map +1 -0
- package/dist/examples/full-invoice-data.d.ts +81 -0
- package/dist/examples/full-invoice-data.d.ts.map +1 -0
- package/dist/examples/full-invoice-data.js +86 -0
- package/dist/examples/full-invoice-data.js.map +1 -0
- package/dist/examples/full-invoice.d.ts +402 -0
- package/dist/examples/full-invoice.d.ts.map +1 -0
- package/dist/examples/full-invoice.js +199 -0
- package/dist/examples/full-invoice.js.map +1 -0
- package/dist/examples/invoice-data.d.ts +51 -0
- package/dist/examples/invoice-data.d.ts.map +1 -0
- package/dist/examples/invoice-data.js +51 -0
- package/dist/examples/invoice-data.js.map +1 -0
- package/dist/examples/invoice.d.ts +90 -0
- package/dist/examples/invoice.d.ts.map +1 -0
- package/dist/examples/invoice.js +62 -0
- package/dist/examples/invoice.js.map +1 -0
- package/dist/examples/jobs-report-data.d.ts +84 -0
- package/dist/examples/jobs-report-data.d.ts.map +1 -0
- package/dist/examples/jobs-report-data.js +79 -0
- package/dist/examples/jobs-report-data.js.map +1 -0
- package/dist/examples/jobs-report.d.ts +182 -0
- package/dist/examples/jobs-report.d.ts.map +1 -0
- package/dist/examples/jobs-report.js +96 -0
- package/dist/examples/jobs-report.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/invoice/calculate.d.ts +59 -0
- package/dist/invoice/calculate.d.ts.map +1 -0
- package/dist/invoice/calculate.js +270 -0
- package/dist/invoice/calculate.js.map +1 -0
- package/dist/invoice/context.d.ts +15 -0
- package/dist/invoice/context.d.ts.map +1 -0
- package/dist/invoice/context.js +79 -0
- package/dist/invoice/context.js.map +1 -0
- package/dist/invoice/format.d.ts +10 -0
- package/dist/invoice/format.d.ts.map +1 -0
- package/dist/invoice/format.js +95 -0
- package/dist/invoice/format.js.map +1 -0
- package/dist/license/capabilities.d.ts +17 -0
- package/dist/license/capabilities.d.ts.map +1 -0
- package/dist/license/capabilities.js +46 -0
- package/dist/license/capabilities.js.map +1 -0
- package/dist/license/client.d.ts +109 -0
- package/dist/license/client.d.ts.map +1 -0
- package/dist/license/client.js +346 -0
- package/dist/license/client.js.map +1 -0
- package/dist/license/codec.d.ts +5 -0
- package/dist/license/codec.d.ts.map +1 -0
- package/dist/license/codec.js +26 -0
- package/dist/license/codec.js.map +1 -0
- package/dist/license/errors.d.ts +11 -0
- package/dist/license/errors.d.ts.map +1 -0
- package/dist/license/errors.js +19 -0
- package/dist/license/errors.js.map +1 -0
- package/dist/license/features.d.ts +20 -0
- package/dist/license/features.d.ts.map +1 -0
- package/dist/license/features.js +28 -0
- package/dist/license/features.js.map +1 -0
- package/dist/license/index.d.ts +16 -0
- package/dist/license/index.d.ts.map +1 -0
- package/dist/license/index.js +9 -0
- package/dist/license/index.js.map +1 -0
- package/dist/license/provider.d.ts +59 -0
- package/dist/license/provider.d.ts.map +1 -0
- package/dist/license/provider.js +150 -0
- package/dist/license/provider.js.map +1 -0
- package/dist/license/redact.d.ts +4 -0
- package/dist/license/redact.d.ts.map +1 -0
- package/dist/license/redact.js +15 -0
- package/dist/license/redact.js.map +1 -0
- package/dist/license/store.d.ts +26 -0
- package/dist/license/store.d.ts.map +1 -0
- package/dist/license/store.js +90 -0
- package/dist/license/store.js.map +1 -0
- package/dist/license/token.d.ts +45 -0
- package/dist/license/token.d.ts.map +1 -0
- package/dist/license/token.js +195 -0
- package/dist/license/token.js.map +1 -0
- package/dist/pdf/browser-blocked.d.ts +12 -0
- package/dist/pdf/browser-blocked.d.ts.map +1 -0
- package/dist/pdf/browser-blocked.js +25 -0
- package/dist/pdf/browser-blocked.js.map +1 -0
- package/dist/pdf/browser.d.ts +12 -0
- package/dist/pdf/browser.d.ts.map +1 -0
- package/dist/pdf/browser.js +69 -0
- package/dist/pdf/browser.js.map +1 -0
- package/dist/pdf/errors.d.ts +6 -0
- package/dist/pdf/errors.d.ts.map +1 -0
- package/dist/pdf/errors.js +11 -0
- package/dist/pdf/errors.js.map +1 -0
- package/dist/pdf/index.d.ts +10 -0
- package/dist/pdf/index.d.ts.map +1 -0
- package/dist/pdf/index.js +9 -0
- package/dist/pdf/index.js.map +1 -0
- package/dist/pdf/options.d.ts +143 -0
- package/dist/pdf/options.d.ts.map +1 -0
- package/dist/pdf/options.js +322 -0
- package/dist/pdf/options.js.map +1 -0
- package/dist/pdf/render-pdf.d.ts +13 -0
- package/dist/pdf/render-pdf.d.ts.map +1 -0
- package/dist/pdf/render-pdf.js +195 -0
- package/dist/pdf/render-pdf.js.map +1 -0
- package/dist/render/appearance.d.ts +25 -0
- package/dist/render/appearance.d.ts.map +1 -0
- package/dist/render/appearance.js +149 -0
- package/dist/render/appearance.js.map +1 -0
- package/dist/render/css.d.ts +17 -0
- package/dist/render/css.d.ts.map +1 -0
- package/dist/render/css.js +170 -0
- package/dist/render/css.js.map +1 -0
- package/dist/render/errors.d.ts +6 -0
- package/dist/render/errors.d.ts.map +1 -0
- package/dist/render/errors.js +11 -0
- package/dist/render/errors.js.map +1 -0
- package/dist/render/escape.d.ts +7 -0
- package/dist/render/escape.d.ts.map +1 -0
- package/dist/render/escape.js +27 -0
- package/dist/render/escape.js.map +1 -0
- package/dist/render/image-policy.d.ts +21 -0
- package/dist/render/image-policy.d.ts.map +1 -0
- package/dist/render/image-policy.js +62 -0
- package/dist/render/image-policy.js.map +1 -0
- package/dist/render/render-html.d.ts +28 -0
- package/dist/render/render-html.d.ts.map +1 -0
- package/dist/render/render-html.js +364 -0
- package/dist/render/render-html.js.map +1 -0
- package/dist/render/render-report.d.ts +23 -0
- package/dist/render/render-report.d.ts.map +1 -0
- package/dist/render/render-report.js +313 -0
- package/dist/render/render-report.js.map +1 -0
- package/dist/report/process.d.ts +48 -0
- package/dist/report/process.d.ts.map +1 -0
- package/dist/report/process.js +347 -0
- package/dist/report/process.js.map +1 -0
- package/dist/schema.d.ts +30 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +8 -0
- package/dist/schema.js.map +1 -0
- package/dist/serialize.d.ts +13 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +42 -0
- package/dist/serialize.js.map +1 -0
- package/dist/types.d.ts +335 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +40 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +15 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +977 -0
- package/dist/validate.js.map +1 -0
- package/package.json +105 -4
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A saved jobs report. Record fields, branch, and dates come from JSON.
|
|
3
|
+
* The same template is rendered with `exampleJobsReportData`, `exampleJobsReportDataAlternate`,
|
|
4
|
+
* and `exampleJobsReportDataLarge`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const exampleJobsReportTemplate: {
|
|
7
|
+
schemaVersion: 1;
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
documentType: "report";
|
|
11
|
+
page: {
|
|
12
|
+
paperSize: "A4";
|
|
13
|
+
orientation: "portrait";
|
|
14
|
+
dimensions: import("../types.js").PageDimensions;
|
|
15
|
+
margins: {
|
|
16
|
+
top: number;
|
|
17
|
+
right: number;
|
|
18
|
+
bottom: number;
|
|
19
|
+
left: number;
|
|
20
|
+
};
|
|
21
|
+
layoutMode: "flow";
|
|
22
|
+
};
|
|
23
|
+
report: {
|
|
24
|
+
title: string;
|
|
25
|
+
description: string;
|
|
26
|
+
emptyText: string;
|
|
27
|
+
showPageNumber: true;
|
|
28
|
+
pageHeader: {
|
|
29
|
+
id: string;
|
|
30
|
+
type: "text";
|
|
31
|
+
binding: {
|
|
32
|
+
path: string;
|
|
33
|
+
prefix: string;
|
|
34
|
+
};
|
|
35
|
+
}[];
|
|
36
|
+
pageFooter: {
|
|
37
|
+
id: string;
|
|
38
|
+
type: "text";
|
|
39
|
+
binding: {
|
|
40
|
+
path: string;
|
|
41
|
+
prefix: string;
|
|
42
|
+
format: {
|
|
43
|
+
style: "date";
|
|
44
|
+
dateStyle: "medium";
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}[];
|
|
48
|
+
reportHeader: ({
|
|
49
|
+
id: string;
|
|
50
|
+
type: "image";
|
|
51
|
+
alt: string;
|
|
52
|
+
binding: {
|
|
53
|
+
path: string;
|
|
54
|
+
fallback?: undefined;
|
|
55
|
+
};
|
|
56
|
+
} | {
|
|
57
|
+
id: string;
|
|
58
|
+
type: "text";
|
|
59
|
+
binding: {
|
|
60
|
+
path: string;
|
|
61
|
+
fallback: string;
|
|
62
|
+
};
|
|
63
|
+
alt?: undefined;
|
|
64
|
+
})[];
|
|
65
|
+
reportFooter: {
|
|
66
|
+
id: string;
|
|
67
|
+
type: "text";
|
|
68
|
+
text: string;
|
|
69
|
+
}[];
|
|
70
|
+
};
|
|
71
|
+
elements: {
|
|
72
|
+
id: string;
|
|
73
|
+
type: "reportTable";
|
|
74
|
+
position: {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
};
|
|
78
|
+
dimensions: {
|
|
79
|
+
width: number;
|
|
80
|
+
height: number;
|
|
81
|
+
};
|
|
82
|
+
collectionPath: string;
|
|
83
|
+
emptyText: string;
|
|
84
|
+
showHeader: true;
|
|
85
|
+
showGrandTotal: true;
|
|
86
|
+
grandTotalLabel: string;
|
|
87
|
+
alternateRowColor: string;
|
|
88
|
+
padding: number;
|
|
89
|
+
groupBy: {
|
|
90
|
+
path: string;
|
|
91
|
+
label: string;
|
|
92
|
+
}[];
|
|
93
|
+
sort: {
|
|
94
|
+
path: string;
|
|
95
|
+
direction: "asc";
|
|
96
|
+
}[];
|
|
97
|
+
style: {
|
|
98
|
+
fontFamily: string;
|
|
99
|
+
fontSize: number;
|
|
100
|
+
color: string;
|
|
101
|
+
borderColor: string;
|
|
102
|
+
borderWidth: number;
|
|
103
|
+
borderStyle: "solid";
|
|
104
|
+
verticalAlign: "middle";
|
|
105
|
+
};
|
|
106
|
+
headerStyle: {
|
|
107
|
+
backgroundColor: string;
|
|
108
|
+
color: string;
|
|
109
|
+
fontWeight: "bold";
|
|
110
|
+
fontSize: number;
|
|
111
|
+
};
|
|
112
|
+
bodyStyle: {
|
|
113
|
+
fontSize: number;
|
|
114
|
+
};
|
|
115
|
+
groupStyle: {
|
|
116
|
+
backgroundColor: string;
|
|
117
|
+
color: string;
|
|
118
|
+
fontWeight: "bold";
|
|
119
|
+
};
|
|
120
|
+
subtotalStyle: {
|
|
121
|
+
backgroundColor: string;
|
|
122
|
+
fontWeight: "bold";
|
|
123
|
+
};
|
|
124
|
+
grandTotalStyle: {
|
|
125
|
+
backgroundColor: string;
|
|
126
|
+
color: string;
|
|
127
|
+
fontWeight: "bold";
|
|
128
|
+
};
|
|
129
|
+
oddRowColor: string;
|
|
130
|
+
evenRowColor: string;
|
|
131
|
+
headerHeight: number;
|
|
132
|
+
rowRules: {
|
|
133
|
+
path: string;
|
|
134
|
+
operator: "eq";
|
|
135
|
+
value: string;
|
|
136
|
+
style: {
|
|
137
|
+
backgroundColor: string;
|
|
138
|
+
};
|
|
139
|
+
}[];
|
|
140
|
+
columns: ({
|
|
141
|
+
id: string;
|
|
142
|
+
header: string;
|
|
143
|
+
binding: {
|
|
144
|
+
path: string;
|
|
145
|
+
format?: undefined;
|
|
146
|
+
};
|
|
147
|
+
width: number;
|
|
148
|
+
style?: undefined;
|
|
149
|
+
align?: undefined;
|
|
150
|
+
aggregate?: undefined;
|
|
151
|
+
} | {
|
|
152
|
+
id: string;
|
|
153
|
+
header: string;
|
|
154
|
+
binding: {
|
|
155
|
+
path: string;
|
|
156
|
+
format?: undefined;
|
|
157
|
+
};
|
|
158
|
+
width: number;
|
|
159
|
+
style: {
|
|
160
|
+
fontWeight: "medium";
|
|
161
|
+
};
|
|
162
|
+
align?: undefined;
|
|
163
|
+
aggregate?: undefined;
|
|
164
|
+
} | {
|
|
165
|
+
id: string;
|
|
166
|
+
header: string;
|
|
167
|
+
binding: {
|
|
168
|
+
path: string;
|
|
169
|
+
format: {
|
|
170
|
+
style: "currency";
|
|
171
|
+
minimumFractionDigits: number;
|
|
172
|
+
maximumFractionDigits: number;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
width: number;
|
|
176
|
+
align: "right";
|
|
177
|
+
aggregate: "sum";
|
|
178
|
+
style?: undefined;
|
|
179
|
+
})[];
|
|
180
|
+
}[];
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=jobs-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-report.d.ts","sourceRoot":"","sources":["../../src/examples/jobs-report.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFV,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { SCHEMA_VERSION } from "../schema.js";
|
|
2
|
+
import { standardPageDimensions } from "../types.js";
|
|
3
|
+
const currency = { style: "currency", minimumFractionDigits: 2, maximumFractionDigits: 2 };
|
|
4
|
+
const date = { style: "date", dateStyle: "medium" };
|
|
5
|
+
/**
|
|
6
|
+
* A saved jobs report. Record fields, branch, and dates come from JSON.
|
|
7
|
+
* The same template is rendered with `exampleJobsReportData`, `exampleJobsReportDataAlternate`,
|
|
8
|
+
* and `exampleJobsReportDataLarge`.
|
|
9
|
+
*/
|
|
10
|
+
export const exampleJobsReportTemplate = {
|
|
11
|
+
schemaVersion: SCHEMA_VERSION,
|
|
12
|
+
id: "jobs-report",
|
|
13
|
+
name: "Jobs Report",
|
|
14
|
+
documentType: "report",
|
|
15
|
+
page: {
|
|
16
|
+
paperSize: "A4",
|
|
17
|
+
orientation: "portrait",
|
|
18
|
+
dimensions: standardPageDimensions("A4", "portrait"),
|
|
19
|
+
margins: { top: 14, right: 12, bottom: 16, left: 12 },
|
|
20
|
+
layoutMode: "flow",
|
|
21
|
+
},
|
|
22
|
+
report: {
|
|
23
|
+
title: "Jobs Report",
|
|
24
|
+
description: "Jobs grouped by technician.",
|
|
25
|
+
emptyText: "No jobs to report.",
|
|
26
|
+
showPageNumber: true,
|
|
27
|
+
pageHeader: [
|
|
28
|
+
{ id: "branch", type: "text", binding: { path: "report.branchName", prefix: "Branch " } },
|
|
29
|
+
],
|
|
30
|
+
pageFooter: [
|
|
31
|
+
{
|
|
32
|
+
id: "generated",
|
|
33
|
+
type: "text",
|
|
34
|
+
binding: { path: "report.generatedAt", prefix: "Generated ", format: date },
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
reportHeader: [
|
|
38
|
+
{ id: "logo", type: "image", alt: "Company logo", binding: { path: "company.logo" } },
|
|
39
|
+
{ id: "company", type: "text", binding: { path: "company.name", fallback: "Company" } },
|
|
40
|
+
],
|
|
41
|
+
reportFooter: [{ id: "end", type: "text", text: "End of report" }],
|
|
42
|
+
},
|
|
43
|
+
elements: [
|
|
44
|
+
{
|
|
45
|
+
id: "jobs",
|
|
46
|
+
type: "reportTable",
|
|
47
|
+
position: { x: 12, y: 28 },
|
|
48
|
+
dimensions: { width: 186, height: 220 },
|
|
49
|
+
collectionPath: "data.jobs",
|
|
50
|
+
emptyText: "No jobs to report.",
|
|
51
|
+
showHeader: true,
|
|
52
|
+
showGrandTotal: true,
|
|
53
|
+
grandTotalLabel: "Grand total",
|
|
54
|
+
alternateRowColor: "#f4f7fb",
|
|
55
|
+
padding: 1.5,
|
|
56
|
+
groupBy: [{ path: "technician", label: "Technician" }],
|
|
57
|
+
sort: [
|
|
58
|
+
{ path: "technician", direction: "asc" },
|
|
59
|
+
{ path: "jobNumber", direction: "asc" },
|
|
60
|
+
],
|
|
61
|
+
style: {
|
|
62
|
+
fontFamily: "Helvetica",
|
|
63
|
+
fontSize: 9,
|
|
64
|
+
color: "#1c2430",
|
|
65
|
+
borderColor: "#c5ced8",
|
|
66
|
+
borderWidth: 0.2,
|
|
67
|
+
borderStyle: "solid",
|
|
68
|
+
verticalAlign: "middle",
|
|
69
|
+
},
|
|
70
|
+
headerStyle: { backgroundColor: "#1f4e79", color: "#ffffff", fontWeight: "bold", fontSize: 9 },
|
|
71
|
+
bodyStyle: { fontSize: 9 },
|
|
72
|
+
groupStyle: { backgroundColor: "#e7eef6", color: "#1f4e79", fontWeight: "bold" },
|
|
73
|
+
subtotalStyle: { backgroundColor: "#eef3f8", fontWeight: "bold" },
|
|
74
|
+
grandTotalStyle: { backgroundColor: "#1f4e79", color: "#ffffff", fontWeight: "bold" },
|
|
75
|
+
oddRowColor: "#ffffff",
|
|
76
|
+
evenRowColor: "#f4f7fb",
|
|
77
|
+
headerHeight: 8,
|
|
78
|
+
rowRules: [{ path: "status", operator: "eq", value: "Pending", style: { backgroundColor: "#fff6e8" } }],
|
|
79
|
+
columns: [
|
|
80
|
+
{ id: "job-number", header: "Job No.", binding: { path: "jobNumber" }, width: 1.2 },
|
|
81
|
+
{ id: "customer", header: "Customer", binding: { path: "customer" }, width: 2.2 },
|
|
82
|
+
{ id: "technician", header: "Technician", binding: { path: "technician" }, width: 1.4 },
|
|
83
|
+
{ id: "status", header: "Status", binding: { path: "status" }, width: 1.2, style: { fontWeight: "medium" } },
|
|
84
|
+
{
|
|
85
|
+
id: "amount",
|
|
86
|
+
header: "Amount",
|
|
87
|
+
binding: { path: "amount", format: currency },
|
|
88
|
+
width: 1.3,
|
|
89
|
+
align: "right",
|
|
90
|
+
aggregate: "sum",
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=jobs-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-report.js","sourceRoot":"","sources":["../../src/examples/jobs-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAyB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,UAAmB,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;AACpG,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,MAAe,EAAE,SAAS,EAAE,QAAiB,EAAE,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,aAAa,EAAE,cAAc;IAC7B,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC;QACpD,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACrD,UAAU,EAAE,MAAM;KACnB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,6BAA6B;QAC1C,SAAS,EAAE,oBAAoB;QAC/B,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;SAC1F;QACD,UAAU,EAAE;YACV;gBACE,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE;aAC5E;SACF;QACD,YAAY,EAAE;YACZ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;YACrF,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;SACxF;QACD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KACnE;IACD,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAC1B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACvC,cAAc,EAAE,WAAW;YAC3B,SAAS,EAAE,oBAAoB;YAC/B,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,aAAa;YAC9B,iBAAiB,EAAE,SAAS;YAC5B,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACtD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE;gBACxC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE;aACxC;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,GAAG;gBAChB,WAAW,EAAE,OAAO;gBACpB,aAAa,EAAE,QAAQ;aACxB;YACD,WAAW,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC9F,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC1B,UAAU,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YAChF,aAAa,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YACjE,eAAe,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE;YACrF,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACvG,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACnF,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACjF,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACvF,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;gBAC5G;oBACE,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;oBAC7C,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,OAAO;oBACd,SAAS,EAAE,KAAK;iBACjB;aACF;SACF;KACF;CACyB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export { DOCUMENT_TYPES, isSupportedSchemaVersion, SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, } from "./schema.js";
|
|
2
|
+
export type { DocumentTemplate, DocumentType, InvoiceOptions, SupportedSchemaVersion } from "./schema.js";
|
|
3
|
+
export { AGGREGATES, DATE_FORMAT_STYLES, ELEMENT_TYPES, BORDER_STYLES, FONT_STYLES, FONT_WEIGHT_NAMES, ROW_RULE_OPERATORS, TEXT_DECORATIONS, VERTICAL_ALIGNS, LAYOUT_MODES, LENGTH_UNITS, PAGE_ORIENTATIONS, PAPER_SIZES, REPORT_BAND_TYPES, SORT_DIRECTIONS, PAPER_SIZES_MM, standardPageDimensions, TEXT_ALIGNS, VALUE_FORMAT_STYLES, } from "./types.js";
|
|
4
|
+
export type { Aggregate, DataBinding, DateFormatStyle, DocumentElement, ElementDimensions, ElementPosition, BorderEdge, BorderStyleName, BoxEdges, ElementStyle, ElementType, FontStyle, FontWeight, FontWeightName, ImageElement, ItemsColumn, ItemsElement, LayoutMode, LengthUnit, LineElement, PageConfiguration, PageDimensions, PageMargins, PageOrientation, PaperSize, PaperSizeName, RectangleElement, ReportBandEntry, ReportColumn, ReportGroupLevel, ReportImageBand, ReportOptions, RowRuleOperator, RowStyleRule, ReportSort, ReportTableElement, ReportTextBand, SortDirection, TextAlign, TextDecoration, VerticalAlign, TextElement, TotalsElement, TotalsRow, ValueFormat, ValueFormatStyle, } from "./types.js";
|
|
5
|
+
export { TemplateValidationError, validateTemplate } from "./validate.js";
|
|
6
|
+
export type { TemplateValidationIssue, TemplateValidationResult } from "./validate.js";
|
|
7
|
+
export { cloneTemplate, createTemplate, deserializeTemplate, serializeTemplate } from "./serialize.js";
|
|
8
|
+
export { isBindingPath, parseBindingPath } from "./binding-path.js";
|
|
9
|
+
export type { BindingPathResult } from "./binding-path.js";
|
|
10
|
+
export { formatBindingValue, parsePreviewData, resolveBinding, resolveElementData, resolveTemplateData, } from "./binding.js";
|
|
11
|
+
export type { BindingLookup, BindingMissReason, JsonPrimitive, JsonValue, PreviewDataResult, ImageResolutionSource, ResolvedDocument, ResolvedElement, ResolvedImageElement, ResolvedItemsElement, ResolvedTextElement, ResolvedTotalsElement, TextResolutionSource, } from "./binding.js";
|
|
12
|
+
export { InvoiceCalculationError, calculateInvoice } from "./invoice/calculate.js";
|
|
13
|
+
export type { InvoiceCalculation, InvoiceCalculationPolicy, InvoiceLineResult, InvoiceTotals, } from "./invoice/calculate.js";
|
|
14
|
+
export { prepareInvoiceContext } from "./invoice/context.js";
|
|
15
|
+
export { formatScalar } from "./invoice/format.js";
|
|
16
|
+
export { BLANK_GROUP_LABEL, prepareReportTable, ReportProcessingError } from "./report/process.js";
|
|
17
|
+
export type { PreparedReportTable, ReportViewColumn, ReportViewRow } from "./report/process.js";
|
|
18
|
+
export { RenderError } from "./render/errors.js";
|
|
19
|
+
export { renderToHTML } from "./render/render-html.js";
|
|
20
|
+
export type { RenderOptions } from "./render/render-html.js";
|
|
21
|
+
export type { ImageSourcePolicy } from "./render/image-policy.js";
|
|
22
|
+
export { exampleJobsReportTemplate } from "./examples/jobs-report.js";
|
|
23
|
+
export { exampleJobsReportData, exampleJobsReportDataAlternate, exampleJobsReportDataEmpty, exampleJobsReportDataLarge, } from "./examples/jobs-report-data.js";
|
|
24
|
+
export { exampleFullInvoiceTemplate } from "./examples/full-invoice.js";
|
|
25
|
+
export { exampleFullInvoiceData, exampleFullInvoiceDataAlternate } from "./examples/full-invoice-data.js";
|
|
26
|
+
export { exampleBoundInvoiceTemplate } from "./examples/bound-invoice.js";
|
|
27
|
+
export { exampleInvoiceData, exampleInvoiceDataAlternate } from "./examples/invoice-data.js";
|
|
28
|
+
export { exampleInvoiceTemplate } from "./examples/invoice.js";
|
|
29
|
+
export { activateLicense, configureLicense, createBrowserLicenseStore, createHttpLicenseProvider, createLicenseClient, createMemoryLicenseStore, createMockLicenseProvider, deactivateLicense, entitlementsForPlan, getEntitlements, getLicenseStatus, hasFeature, inspectDocumentCapabilities, isLicenseFeature, LICENSE_FEATURES, LICENSE_STATUSES, LICENSE_STORAGE_KEY, LicenseClient, LicenseError, LicenseNetworkError, redactSecret, resetLicenseConfiguration, verifyLicenseToken, } from "./license/index.js";
|
|
30
|
+
export type { DocumentCapabilities, EntitlementReport, HttpLicenseProviderOptions, LicenseCallOptions, LicenseClaims, LicenseClientConfig, LicenseEnforcement, LicenseErrorCode, LicenseFeature, LicensePlanMap, LicenseProvider, LicenseProviderContext, LicensePublicKey, LicenseServiceResult, LicenseServiceStatus, LicenseSnapshot, LicenseStatus, LicenseStore, MockLicenseHandlers, StoredLicense, TokenVerification, } from "./license/index.js";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { DOCUMENT_TYPES, isSupportedSchemaVersion, SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, } from "./schema.js";
|
|
2
|
+
export { AGGREGATES, DATE_FORMAT_STYLES, ELEMENT_TYPES, BORDER_STYLES, FONT_STYLES, FONT_WEIGHT_NAMES, ROW_RULE_OPERATORS, TEXT_DECORATIONS, VERTICAL_ALIGNS, LAYOUT_MODES, LENGTH_UNITS, PAGE_ORIENTATIONS, PAPER_SIZES, REPORT_BAND_TYPES, SORT_DIRECTIONS, PAPER_SIZES_MM, standardPageDimensions, TEXT_ALIGNS, VALUE_FORMAT_STYLES, } from "./types.js";
|
|
3
|
+
export { TemplateValidationError, validateTemplate } from "./validate.js";
|
|
4
|
+
export { cloneTemplate, createTemplate, deserializeTemplate, serializeTemplate } from "./serialize.js";
|
|
5
|
+
export { isBindingPath, parseBindingPath } from "./binding-path.js";
|
|
6
|
+
export { formatBindingValue, parsePreviewData, resolveBinding, resolveElementData, resolveTemplateData, } from "./binding.js";
|
|
7
|
+
export { InvoiceCalculationError, calculateInvoice } from "./invoice/calculate.js";
|
|
8
|
+
export { prepareInvoiceContext } from "./invoice/context.js";
|
|
9
|
+
export { formatScalar } from "./invoice/format.js";
|
|
10
|
+
export { BLANK_GROUP_LABEL, prepareReportTable, ReportProcessingError } from "./report/process.js";
|
|
11
|
+
export { RenderError } from "./render/errors.js";
|
|
12
|
+
export { renderToHTML } from "./render/render-html.js";
|
|
13
|
+
export { exampleJobsReportTemplate } from "./examples/jobs-report.js";
|
|
14
|
+
export { exampleJobsReportData, exampleJobsReportDataAlternate, exampleJobsReportDataEmpty, exampleJobsReportDataLarge, } from "./examples/jobs-report-data.js";
|
|
15
|
+
export { exampleFullInvoiceTemplate } from "./examples/full-invoice.js";
|
|
16
|
+
export { exampleFullInvoiceData, exampleFullInvoiceDataAlternate } from "./examples/full-invoice-data.js";
|
|
17
|
+
export { exampleBoundInvoiceTemplate } from "./examples/bound-invoice.js";
|
|
18
|
+
export { exampleInvoiceData, exampleInvoiceDataAlternate } from "./examples/invoice-data.js";
|
|
19
|
+
export { exampleInvoiceTemplate } from "./examples/invoice.js";
|
|
20
|
+
export { activateLicense, configureLicense, createBrowserLicenseStore, createHttpLicenseProvider, createLicenseClient, createMemoryLicenseStore, createMockLicenseProvider, deactivateLicense, entitlementsForPlan, getEntitlements, getLicenseStatus, hasFeature, inspectDocumentCapabilities, isLicenseFeature, LICENSE_FEATURES, LICENSE_STATUSES, LICENSE_STORAGE_KEY, LicenseClient, LicenseError, LicenseNetworkError, redactSecret, resetLicenseConfiguration, verifyLicenseToken, } from "./license/index.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAkDpB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAiBtB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAOnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invoice arithmetic in minor units.
|
|
3
|
+
* This is a configurable policy, not a claim of tax compliance for any country.
|
|
4
|
+
*
|
|
5
|
+
* Order of operations:
|
|
6
|
+
* 1. Line gross = quantity × rate, rounded to `fractionDigits`.
|
|
7
|
+
* 2. Line discount, when the item has one, is applied to that gross amount.
|
|
8
|
+
* 3. Subtotal is the sum of line amounts after line discounts.
|
|
9
|
+
* 4. The invoice discount is applied once to that subtotal.
|
|
10
|
+
* 5. The invoice discount is shared across lines in proportion to their net amounts.
|
|
11
|
+
* 6. Tax is calculated on each line's discounted taxable amount.
|
|
12
|
+
* An item tax rate wins. Otherwise `invoice.taxRate` is used. Otherwise tax is 0.
|
|
13
|
+
* 7. Grand total = subtotal − invoice discount + tax.
|
|
14
|
+
*
|
|
15
|
+
* Rounding is half away from zero at each monetary step.
|
|
16
|
+
* Quantity totals use 6 decimal places. Values at or above 1e12 are rejected.
|
|
17
|
+
* Negative quantities, rates, discounts, and tax rates are rejected.
|
|
18
|
+
* Missing or non-numeric quantities and rates throw; they are not treated as zero.
|
|
19
|
+
*/
|
|
20
|
+
export declare class InvoiceCalculationError extends Error {
|
|
21
|
+
readonly code: string;
|
|
22
|
+
constructor(code: string, message: string);
|
|
23
|
+
}
|
|
24
|
+
export interface InvoiceCalculationPolicy {
|
|
25
|
+
/** Decimal places for money. Default 2. Allowed range is 0 through 6. */
|
|
26
|
+
fractionDigits?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface InvoiceLineResult {
|
|
29
|
+
description: string;
|
|
30
|
+
quantity: number;
|
|
31
|
+
unit: string;
|
|
32
|
+
rate: number;
|
|
33
|
+
grossAmount: number;
|
|
34
|
+
discountAmount: number;
|
|
35
|
+
/** Amount after the line discount and before the invoice discount and tax. */
|
|
36
|
+
netAmount: number;
|
|
37
|
+
/** Same as `netAmount`. This is the value bound as `lineTotal`. */
|
|
38
|
+
lineTotal: number;
|
|
39
|
+
invoiceDiscountShare: number;
|
|
40
|
+
taxableAmount: number;
|
|
41
|
+
taxRate: number;
|
|
42
|
+
taxAmount: number;
|
|
43
|
+
}
|
|
44
|
+
export interface InvoiceTotals {
|
|
45
|
+
subtotal: number;
|
|
46
|
+
/** Invoice-level discount only. Line discounts are already in the subtotal. */
|
|
47
|
+
discountAmount: number;
|
|
48
|
+
taxableAmount: number;
|
|
49
|
+
taxTotal: number;
|
|
50
|
+
grandTotal: number;
|
|
51
|
+
totalQuantity: number;
|
|
52
|
+
}
|
|
53
|
+
export interface InvoiceCalculation {
|
|
54
|
+
fractionDigits: number;
|
|
55
|
+
lines: InvoiceLineResult[];
|
|
56
|
+
totals: InvoiceTotals;
|
|
57
|
+
}
|
|
58
|
+
export declare function calculateInvoice(data: unknown, policy?: InvoiceCalculationPolicy): InvoiceCalculation;
|
|
59
|
+
//# sourceMappingURL=calculate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculate.d.ts","sourceRoot":"","sources":["../../src/invoice/calculate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM1C;AAED,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;CACvB;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAE,wBAA6B,GAAG,kBAAkB,CA4CzG"}
|