@arslankhan/doc-forge 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +97 -4
|
@@ -0,0 +1,199 @@
|
|
|
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 invoice template. Company, customer, and money values come from JSON.
|
|
7
|
+
* `invoice.currency` supplies the currency code when a format does not set one.
|
|
8
|
+
*/
|
|
9
|
+
export const exampleFullInvoiceTemplate = {
|
|
10
|
+
schemaVersion: SCHEMA_VERSION,
|
|
11
|
+
id: "invoice-full",
|
|
12
|
+
name: "Invoice",
|
|
13
|
+
documentType: "invoice",
|
|
14
|
+
page: {
|
|
15
|
+
paperSize: "A4",
|
|
16
|
+
orientation: "portrait",
|
|
17
|
+
dimensions: standardPageDimensions("A4", "portrait"),
|
|
18
|
+
margins: { top: 12, right: 12, bottom: 12, left: 12 },
|
|
19
|
+
layoutMode: "fixed",
|
|
20
|
+
},
|
|
21
|
+
elements: [
|
|
22
|
+
{
|
|
23
|
+
id: "company-logo",
|
|
24
|
+
type: "image",
|
|
25
|
+
position: { x: 15, y: 14 },
|
|
26
|
+
dimensions: { width: 28, height: 14 },
|
|
27
|
+
alt: "Company logo",
|
|
28
|
+
binding: { path: "company.logo" },
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "company-name",
|
|
32
|
+
type: "text",
|
|
33
|
+
position: { x: 48, y: 14 },
|
|
34
|
+
dimensions: { width: 80, height: 8 },
|
|
35
|
+
text: "Company",
|
|
36
|
+
binding: { path: "company.name", fallback: "Company" },
|
|
37
|
+
style: { fontFamily: "Helvetica", fontSize: 16, fontWeight: "bold", color: "#111111" },
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "company-address",
|
|
41
|
+
type: "text",
|
|
42
|
+
position: { x: 48, y: 23 },
|
|
43
|
+
dimensions: { width: 80, height: 5 },
|
|
44
|
+
text: "Address",
|
|
45
|
+
binding: { path: "company.address" },
|
|
46
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "company-phone",
|
|
50
|
+
type: "text",
|
|
51
|
+
position: { x: 48, y: 29 },
|
|
52
|
+
dimensions: { width: 80, height: 5 },
|
|
53
|
+
text: "Phone",
|
|
54
|
+
binding: { path: "company.phone" },
|
|
55
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "company-email",
|
|
59
|
+
type: "text",
|
|
60
|
+
position: { x: 48, y: 35 },
|
|
61
|
+
dimensions: { width: 80, height: 5 },
|
|
62
|
+
text: "Email",
|
|
63
|
+
binding: { path: "company.email" },
|
|
64
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "company-tax",
|
|
68
|
+
type: "text",
|
|
69
|
+
position: { x: 48, y: 41 },
|
|
70
|
+
dimensions: { width: 80, height: 5 },
|
|
71
|
+
text: "Tax number",
|
|
72
|
+
binding: { path: "company.taxNumber", prefix: "Tax " },
|
|
73
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "invoice-number",
|
|
77
|
+
type: "text",
|
|
78
|
+
position: { x: 130, y: 16 },
|
|
79
|
+
dimensions: { width: 65, height: 6 },
|
|
80
|
+
text: "INV-0001",
|
|
81
|
+
binding: { path: "invoice.number", prefix: "Invoice ", fallback: "Invoice" },
|
|
82
|
+
style: { fontFamily: "Helvetica", fontSize: 12, fontWeight: "bold", textAlign: "right", color: "#111111" },
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "invoice-date",
|
|
86
|
+
type: "text",
|
|
87
|
+
position: { x: 130, y: 24 },
|
|
88
|
+
dimensions: { width: 65, height: 5 },
|
|
89
|
+
text: "Date",
|
|
90
|
+
binding: { path: "invoice.date", prefix: "Date ", format: date },
|
|
91
|
+
style: { fontFamily: "Helvetica", fontSize: 9, textAlign: "right", color: "#333333" },
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: "invoice-due",
|
|
95
|
+
type: "text",
|
|
96
|
+
position: { x: 130, y: 30 },
|
|
97
|
+
dimensions: { width: 65, height: 5 },
|
|
98
|
+
text: "Due",
|
|
99
|
+
binding: { path: "invoice.dueDate", prefix: "Due ", format: date },
|
|
100
|
+
style: { fontFamily: "Helvetica", fontSize: 9, textAlign: "right", color: "#333333" },
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "bill-to",
|
|
104
|
+
type: "text",
|
|
105
|
+
position: { x: 15, y: 52 },
|
|
106
|
+
dimensions: { width: 80, height: 5 },
|
|
107
|
+
text: "Bill to",
|
|
108
|
+
style: { fontFamily: "Helvetica", fontSize: 8, fontWeight: "bold", color: "#5c6778" },
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: "customer-name",
|
|
112
|
+
type: "text",
|
|
113
|
+
position: { x: 15, y: 58 },
|
|
114
|
+
dimensions: { width: 100, height: 6 },
|
|
115
|
+
text: "Customer",
|
|
116
|
+
binding: { path: "customer.name", fallback: "Customer" },
|
|
117
|
+
style: { fontFamily: "Helvetica", fontSize: 12, fontWeight: "bold", color: "#111111" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "customer-address",
|
|
121
|
+
type: "text",
|
|
122
|
+
position: { x: 15, y: 65 },
|
|
123
|
+
dimensions: { width: 100, height: 5 },
|
|
124
|
+
text: "Address",
|
|
125
|
+
binding: { path: "customer.address" },
|
|
126
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: "customer-email",
|
|
130
|
+
type: "text",
|
|
131
|
+
position: { x: 15, y: 71 },
|
|
132
|
+
dimensions: { width: 100, height: 5 },
|
|
133
|
+
text: "Email",
|
|
134
|
+
binding: { path: "customer.email" },
|
|
135
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: "line-items",
|
|
139
|
+
type: "items",
|
|
140
|
+
position: { x: 15, y: 82 },
|
|
141
|
+
dimensions: { width: 180, height: 70 },
|
|
142
|
+
itemsPath: "invoice.items",
|
|
143
|
+
showHeader: true,
|
|
144
|
+
emptyText: "No items",
|
|
145
|
+
padding: 1.2,
|
|
146
|
+
columns: [
|
|
147
|
+
{ id: "description", header: "Description", binding: { path: "description" }, width: 3.2 },
|
|
148
|
+
{
|
|
149
|
+
id: "quantity",
|
|
150
|
+
header: "Qty",
|
|
151
|
+
binding: { path: "quantity", format: { style: "decimal", maximumFractionDigits: 2 } },
|
|
152
|
+
width: 1,
|
|
153
|
+
align: "right",
|
|
154
|
+
},
|
|
155
|
+
{ id: "unit", header: "Unit", binding: { path: "unit" }, width: 1.2 },
|
|
156
|
+
{ id: "rate", header: "Rate", binding: { path: "rate", format: currency }, width: 1.5, align: "right" },
|
|
157
|
+
{ id: "amount", header: "Amount", binding: { path: "lineTotal", format: currency }, width: 1.6, align: "right" },
|
|
158
|
+
],
|
|
159
|
+
style: {
|
|
160
|
+
fontFamily: "Helvetica",
|
|
161
|
+
fontSize: 9,
|
|
162
|
+
color: "#1c2430",
|
|
163
|
+
borderColor: "#d5dbe3",
|
|
164
|
+
borderWidth: 0.2,
|
|
165
|
+
borderStyle: "solid",
|
|
166
|
+
padding: { top: 1, right: 1.2, bottom: 1, left: 1.2 },
|
|
167
|
+
},
|
|
168
|
+
headerStyle: { backgroundColor: "#1f4e79", color: "#ffffff", fontWeight: "bold" },
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "notes",
|
|
172
|
+
type: "text",
|
|
173
|
+
position: { x: 15, y: 160 },
|
|
174
|
+
dimensions: { width: 90, height: 24 },
|
|
175
|
+
text: "Notes",
|
|
176
|
+
binding: { path: "invoice.notes" },
|
|
177
|
+
style: { fontFamily: "Helvetica", fontSize: 9, color: "#333333" },
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: "totals",
|
|
181
|
+
type: "totals",
|
|
182
|
+
position: { x: 110, y: 158 },
|
|
183
|
+
dimensions: { width: 85, height: 32 },
|
|
184
|
+
rows: [
|
|
185
|
+
{ id: "subtotal", label: "Subtotal", binding: { path: "invoice.subtotal", format: currency } },
|
|
186
|
+
{
|
|
187
|
+
id: "discount",
|
|
188
|
+
label: "Discount",
|
|
189
|
+
binding: { path: "invoice.discountAmount", format: currency },
|
|
190
|
+
hideWhenZero: true,
|
|
191
|
+
},
|
|
192
|
+
{ id: "tax", label: "Tax", binding: { path: "invoice.taxTotal", format: currency }, hideWhenZero: true },
|
|
193
|
+
{ id: "grand", label: "Total", binding: { path: "invoice.grandTotal", format: currency } },
|
|
194
|
+
],
|
|
195
|
+
style: { fontFamily: "Helvetica", fontSize: 10, color: "#111111" },
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=full-invoice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"full-invoice.js","sourceRoot":"","sources":["../../src/examples/full-invoice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Sample invoice data for preview and for resolving a saved template. */
|
|
2
|
+
export declare const exampleInvoiceData: {
|
|
3
|
+
readonly company: {
|
|
4
|
+
readonly name: "Smartbooks";
|
|
5
|
+
readonly address: "Dubai, UAE";
|
|
6
|
+
readonly phone: "+971500000000";
|
|
7
|
+
readonly logo: "https://example.com/smartbooks-logo.png";
|
|
8
|
+
};
|
|
9
|
+
readonly customer: {
|
|
10
|
+
readonly name: "ABC Trading LLC";
|
|
11
|
+
readonly photo: "https://example.com/customer.png";
|
|
12
|
+
readonly address: {
|
|
13
|
+
readonly city: "Dubai";
|
|
14
|
+
readonly country: "UAE";
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
readonly product: {
|
|
18
|
+
readonly image: "https://example.com/product.png";
|
|
19
|
+
};
|
|
20
|
+
readonly invoice: {
|
|
21
|
+
readonly number: "INV-0001";
|
|
22
|
+
readonly date: "2026-10-13";
|
|
23
|
+
readonly total: 1250.5;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/** A second dataset for the same template. `invoice.total` is `0` so it must not be treated as missing. */
|
|
27
|
+
export declare const exampleInvoiceDataAlternate: {
|
|
28
|
+
readonly company: {
|
|
29
|
+
readonly name: "Northwind Traders";
|
|
30
|
+
readonly address: "Austin, USA";
|
|
31
|
+
readonly phone: "+15125550100";
|
|
32
|
+
readonly logo: "https://example.com/northwind-logo.png";
|
|
33
|
+
};
|
|
34
|
+
readonly customer: {
|
|
35
|
+
readonly name: "Contoso Ltd";
|
|
36
|
+
readonly photo: "https://example.com/contoso.png";
|
|
37
|
+
readonly address: {
|
|
38
|
+
readonly city: "Austin";
|
|
39
|
+
readonly country: "USA";
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly product: {
|
|
43
|
+
readonly image: "https://example.com/alternate-product.png";
|
|
44
|
+
};
|
|
45
|
+
readonly invoice: {
|
|
46
|
+
readonly number: "INV-2042";
|
|
47
|
+
readonly date: "2026-11-02";
|
|
48
|
+
readonly total: 0;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=invoice-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice-data.d.ts","sourceRoot":"","sources":["../../src/examples/invoice-data.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEX,2GAA2G;AAC3G,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;CAuB9B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** Sample invoice data for preview and for resolving a saved template. */
|
|
2
|
+
export const exampleInvoiceData = {
|
|
3
|
+
company: {
|
|
4
|
+
name: "Smartbooks",
|
|
5
|
+
address: "Dubai, UAE",
|
|
6
|
+
phone: "+971500000000",
|
|
7
|
+
logo: "https://example.com/smartbooks-logo.png",
|
|
8
|
+
},
|
|
9
|
+
customer: {
|
|
10
|
+
name: "ABC Trading LLC",
|
|
11
|
+
photo: "https://example.com/customer.png",
|
|
12
|
+
address: {
|
|
13
|
+
city: "Dubai",
|
|
14
|
+
country: "UAE",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
product: {
|
|
18
|
+
image: "https://example.com/product.png",
|
|
19
|
+
},
|
|
20
|
+
invoice: {
|
|
21
|
+
number: "INV-0001",
|
|
22
|
+
date: "2026-10-13",
|
|
23
|
+
total: 1250.5,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
/** A second dataset for the same template. `invoice.total` is `0` so it must not be treated as missing. */
|
|
27
|
+
export const exampleInvoiceDataAlternate = {
|
|
28
|
+
company: {
|
|
29
|
+
name: "Northwind Traders",
|
|
30
|
+
address: "Austin, USA",
|
|
31
|
+
phone: "+15125550100",
|
|
32
|
+
logo: "https://example.com/northwind-logo.png",
|
|
33
|
+
},
|
|
34
|
+
customer: {
|
|
35
|
+
name: "Contoso Ltd",
|
|
36
|
+
photo: "https://example.com/contoso.png",
|
|
37
|
+
address: {
|
|
38
|
+
city: "Austin",
|
|
39
|
+
country: "USA",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
product: {
|
|
43
|
+
image: "https://example.com/alternate-product.png",
|
|
44
|
+
},
|
|
45
|
+
invoice: {
|
|
46
|
+
number: "INV-2042",
|
|
47
|
+
date: "2026-11-02",
|
|
48
|
+
total: 0,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=invoice-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice-data.js","sourceRoot":"","sources":["../../src/examples/invoice-data.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,yCAAyC;KAChD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,iCAAiC;KACzC;IACD,OAAO,EAAE;QACP,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,MAAM;KACd;CACO,CAAC;AAEX,2GAA2G;AAC3G,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO,EAAE;QACP,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,aAAa;QACtB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,wCAAwC;KAC/C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,iCAAiC;QACxC,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,2CAA2C;KACnD;IACD,OAAO,EAAE;QACP,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,CAAC;KACT;CACO,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/** Sample invoice template. Data only: no designer or renderer. */
|
|
2
|
+
export declare const exampleInvoiceTemplate: {
|
|
3
|
+
schemaVersion: 1;
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
documentType: "invoice";
|
|
7
|
+
page: {
|
|
8
|
+
paperSize: "A4";
|
|
9
|
+
orientation: "portrait";
|
|
10
|
+
dimensions: import("../types.js").PageDimensions;
|
|
11
|
+
margins: {
|
|
12
|
+
top: number;
|
|
13
|
+
right: number;
|
|
14
|
+
bottom: number;
|
|
15
|
+
left: number;
|
|
16
|
+
};
|
|
17
|
+
layoutMode: "fixed";
|
|
18
|
+
};
|
|
19
|
+
elements: ({
|
|
20
|
+
id: string;
|
|
21
|
+
type: "text";
|
|
22
|
+
position: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
dimensions: {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
};
|
|
30
|
+
text: string;
|
|
31
|
+
binding: {
|
|
32
|
+
path: string;
|
|
33
|
+
fallback?: undefined;
|
|
34
|
+
};
|
|
35
|
+
style: {
|
|
36
|
+
fontFamily: string;
|
|
37
|
+
fontSize: number;
|
|
38
|
+
fontWeight: "bold";
|
|
39
|
+
color: string;
|
|
40
|
+
textAlign?: undefined;
|
|
41
|
+
};
|
|
42
|
+
src?: undefined;
|
|
43
|
+
alt?: undefined;
|
|
44
|
+
} | {
|
|
45
|
+
id: string;
|
|
46
|
+
type: "text";
|
|
47
|
+
position: {
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
};
|
|
51
|
+
dimensions: {
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
};
|
|
55
|
+
text: string;
|
|
56
|
+
binding: {
|
|
57
|
+
path: string;
|
|
58
|
+
fallback?: undefined;
|
|
59
|
+
};
|
|
60
|
+
style: {
|
|
61
|
+
fontFamily: string;
|
|
62
|
+
fontSize: number;
|
|
63
|
+
fontWeight: "normal";
|
|
64
|
+
textAlign: "right";
|
|
65
|
+
color: string;
|
|
66
|
+
};
|
|
67
|
+
src?: undefined;
|
|
68
|
+
alt?: undefined;
|
|
69
|
+
} | {
|
|
70
|
+
id: string;
|
|
71
|
+
type: "image";
|
|
72
|
+
position: {
|
|
73
|
+
x: number;
|
|
74
|
+
y: number;
|
|
75
|
+
};
|
|
76
|
+
dimensions: {
|
|
77
|
+
width: number;
|
|
78
|
+
height: number;
|
|
79
|
+
};
|
|
80
|
+
src: string;
|
|
81
|
+
alt: string;
|
|
82
|
+
binding: {
|
|
83
|
+
path: string;
|
|
84
|
+
fallback: string;
|
|
85
|
+
};
|
|
86
|
+
text?: undefined;
|
|
87
|
+
style?: undefined;
|
|
88
|
+
})[];
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=invoice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../src/examples/invoice.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDP,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { SCHEMA_VERSION } from "../schema.js";
|
|
2
|
+
import { standardPageDimensions } from "../types.js";
|
|
3
|
+
/** Sample invoice template. Data only: no designer or renderer. */
|
|
4
|
+
export const exampleInvoiceTemplate = {
|
|
5
|
+
schemaVersion: SCHEMA_VERSION,
|
|
6
|
+
id: "invoice-basic",
|
|
7
|
+
name: "Basic Invoice",
|
|
8
|
+
documentType: "invoice",
|
|
9
|
+
page: {
|
|
10
|
+
paperSize: "A4",
|
|
11
|
+
orientation: "portrait",
|
|
12
|
+
dimensions: standardPageDimensions("A4", "portrait"),
|
|
13
|
+
margins: {
|
|
14
|
+
top: 15,
|
|
15
|
+
right: 15,
|
|
16
|
+
bottom: 15,
|
|
17
|
+
left: 15,
|
|
18
|
+
},
|
|
19
|
+
layoutMode: "fixed",
|
|
20
|
+
},
|
|
21
|
+
elements: [
|
|
22
|
+
{
|
|
23
|
+
id: "company-name",
|
|
24
|
+
type: "text",
|
|
25
|
+
position: { x: 20, y: 18 },
|
|
26
|
+
dimensions: { width: 110, height: 10 },
|
|
27
|
+
text: "Company Name",
|
|
28
|
+
binding: { path: "company.name" },
|
|
29
|
+
style: {
|
|
30
|
+
fontFamily: "Helvetica",
|
|
31
|
+
fontSize: 18,
|
|
32
|
+
fontWeight: "bold",
|
|
33
|
+
color: "#111111",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "invoice-number",
|
|
38
|
+
type: "text",
|
|
39
|
+
position: { x: 130, y: 18 },
|
|
40
|
+
dimensions: { width: 60, height: 8 },
|
|
41
|
+
text: "INV-0001",
|
|
42
|
+
binding: { path: "invoice.code" },
|
|
43
|
+
style: {
|
|
44
|
+
fontFamily: "Helvetica",
|
|
45
|
+
fontSize: 12,
|
|
46
|
+
fontWeight: "normal",
|
|
47
|
+
textAlign: "right",
|
|
48
|
+
color: "#333333",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: "company-logo",
|
|
53
|
+
type: "image",
|
|
54
|
+
position: { x: 20, y: 32 },
|
|
55
|
+
dimensions: { width: 32, height: 16 },
|
|
56
|
+
src: "assets/logo.png",
|
|
57
|
+
alt: "Company logo",
|
|
58
|
+
binding: { path: "company.logo", fallback: "assets/logo.png" },
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=invoice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/examples/invoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAyB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,EAAE,cAAc;IAC7B,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC;QACpD,OAAO,EAAE;YACP,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;SACT;QACD,UAAU,EAAE,OAAO;KACpB;IACD,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAC1B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;YACtC,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YACjC,KAAK,EAAE;gBACL,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,SAAS;aACjB;SACF;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3B,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;YACpC,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YACjC,KAAK,EAAE;gBACL,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,SAAS;aACjB;SACF;QACD;YACE,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAC1B,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACrC,GAAG,EAAE,iBAAiB;YACtB,GAAG,EAAE,cAAc;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE;SAC/D;KACF;CACyB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Illustrative jobs report data. Logo URLs are not hosted files.
|
|
3
|
+
* `report.currency` is display metadata. The report engine does not assume a currency.
|
|
4
|
+
*/
|
|
5
|
+
export declare const exampleJobsReportData: {
|
|
6
|
+
report: {
|
|
7
|
+
title: string;
|
|
8
|
+
generatedAt: string;
|
|
9
|
+
branchName: string;
|
|
10
|
+
currency: string;
|
|
11
|
+
};
|
|
12
|
+
company: {
|
|
13
|
+
name: string;
|
|
14
|
+
logo: string;
|
|
15
|
+
};
|
|
16
|
+
data: {
|
|
17
|
+
jobs: {
|
|
18
|
+
jobNumber: string;
|
|
19
|
+
customer: string;
|
|
20
|
+
technician: string;
|
|
21
|
+
status: string;
|
|
22
|
+
amount: number;
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const exampleJobsReportDataAlternate: {
|
|
27
|
+
report: {
|
|
28
|
+
title: string;
|
|
29
|
+
generatedAt: string;
|
|
30
|
+
branchName: string;
|
|
31
|
+
currency: string;
|
|
32
|
+
};
|
|
33
|
+
company: {
|
|
34
|
+
name: string;
|
|
35
|
+
logo: string;
|
|
36
|
+
};
|
|
37
|
+
data: {
|
|
38
|
+
jobs: {
|
|
39
|
+
jobNumber: string;
|
|
40
|
+
customer: string;
|
|
41
|
+
technician: string;
|
|
42
|
+
status: string;
|
|
43
|
+
amount: number;
|
|
44
|
+
}[];
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export declare const exampleJobsReportDataEmpty: {
|
|
48
|
+
report: {
|
|
49
|
+
title: string;
|
|
50
|
+
generatedAt: string;
|
|
51
|
+
branchName: string;
|
|
52
|
+
currency: string;
|
|
53
|
+
};
|
|
54
|
+
company: {
|
|
55
|
+
name: string;
|
|
56
|
+
logo: string;
|
|
57
|
+
};
|
|
58
|
+
data: {
|
|
59
|
+
jobs: never[];
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/** Enough rows for a printed report to continue onto another page. */
|
|
63
|
+
export declare const exampleJobsReportDataLarge: {
|
|
64
|
+
report: {
|
|
65
|
+
title: string;
|
|
66
|
+
generatedAt: string;
|
|
67
|
+
branchName: string;
|
|
68
|
+
currency: string;
|
|
69
|
+
};
|
|
70
|
+
company: {
|
|
71
|
+
name: string;
|
|
72
|
+
logo: string;
|
|
73
|
+
};
|
|
74
|
+
data: {
|
|
75
|
+
jobs: {
|
|
76
|
+
jobNumber: string;
|
|
77
|
+
customer: string;
|
|
78
|
+
technician: "Ahmed" | "Bilal" | "Sara" | "Nora";
|
|
79
|
+
status: string;
|
|
80
|
+
amount: number;
|
|
81
|
+
}[];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=jobs-report-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-report-data.d.ts","sourceRoot":"","sources":["../../src/examples/jobs-report-data.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;CAiBjC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;CAiB1C,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;CActC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;CAoBtC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const technicians = ["Ahmed", "Bilal", "Sara", "Nora"];
|
|
2
|
+
/**
|
|
3
|
+
* Illustrative jobs report data. Logo URLs are not hosted files.
|
|
4
|
+
* `report.currency` is display metadata. The report engine does not assume a currency.
|
|
5
|
+
*/
|
|
6
|
+
export const exampleJobsReportData = {
|
|
7
|
+
report: {
|
|
8
|
+
title: "Jobs Report",
|
|
9
|
+
generatedAt: "2026-10-14",
|
|
10
|
+
branchName: "Dubai Branch",
|
|
11
|
+
currency: "AED",
|
|
12
|
+
},
|
|
13
|
+
company: {
|
|
14
|
+
name: "Northwind",
|
|
15
|
+
logo: "https://example.com/company-logo.png",
|
|
16
|
+
},
|
|
17
|
+
data: {
|
|
18
|
+
jobs: [
|
|
19
|
+
{ jobNumber: "JOB-001", customer: "ABC Trading", technician: "Ahmed", status: "Completed", amount: 500 },
|
|
20
|
+
{ jobNumber: "JOB-002", customer: "XYZ Services", technician: "Bilal", status: "Pending", amount: 300 },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export const exampleJobsReportDataAlternate = {
|
|
25
|
+
report: {
|
|
26
|
+
title: "Open Jobs",
|
|
27
|
+
generatedAt: "2026-11-02",
|
|
28
|
+
branchName: "Abu Dhabi Branch",
|
|
29
|
+
currency: "USD",
|
|
30
|
+
},
|
|
31
|
+
company: {
|
|
32
|
+
name: "Contoso",
|
|
33
|
+
logo: "https://example.com/contoso-logo.png",
|
|
34
|
+
},
|
|
35
|
+
data: {
|
|
36
|
+
jobs: [
|
|
37
|
+
{ jobNumber: "JOB-110", customer: "Fabrikam", technician: "Sara", status: "Pending", amount: 125 },
|
|
38
|
+
{ jobNumber: "JOB-111", customer: "Litware", technician: "Sara", status: "Completed", amount: 75 },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const exampleJobsReportDataEmpty = {
|
|
43
|
+
report: {
|
|
44
|
+
title: "Jobs Report",
|
|
45
|
+
generatedAt: "2026-10-14",
|
|
46
|
+
branchName: "Dubai Branch",
|
|
47
|
+
currency: "AED",
|
|
48
|
+
},
|
|
49
|
+
company: {
|
|
50
|
+
name: "Northwind",
|
|
51
|
+
logo: "https://example.com/company-logo.png",
|
|
52
|
+
},
|
|
53
|
+
data: {
|
|
54
|
+
jobs: [],
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
/** Enough rows for a printed report to continue onto another page. */
|
|
58
|
+
export const exampleJobsReportDataLarge = {
|
|
59
|
+
report: {
|
|
60
|
+
title: "Jobs Report",
|
|
61
|
+
generatedAt: "2026-10-14",
|
|
62
|
+
branchName: "Dubai Branch",
|
|
63
|
+
currency: "AED",
|
|
64
|
+
},
|
|
65
|
+
company: {
|
|
66
|
+
name: "Northwind",
|
|
67
|
+
logo: "https://example.com/company-logo.png",
|
|
68
|
+
},
|
|
69
|
+
data: {
|
|
70
|
+
jobs: Array.from({ length: 60 }, (_, index) => ({
|
|
71
|
+
jobNumber: `JOB-${String(index + 1).padStart(3, "0")}`,
|
|
72
|
+
customer: `Customer ${index + 1}`,
|
|
73
|
+
technician: technicians[index % technicians.length],
|
|
74
|
+
status: index % 5 === 0 ? "Pending" : "Completed",
|
|
75
|
+
amount: (index + 1) * 25,
|
|
76
|
+
})),
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=jobs-report-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-report-data.js","sourceRoot":"","sources":["../../src/examples/jobs-report-data.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,sCAAsC;KAC7C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE;YACxG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;SACxG;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,MAAM,EAAE;QACN,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,sCAAsC;KAC7C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;YAClG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;SACnG;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,sCAAsC;KAC7C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE;KACT;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,KAAK;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,sCAAsC;KAC7C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,SAAS,EAAE,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACtD,QAAQ,EAAE,YAAY,KAAK,GAAG,CAAC,EAAE;YACjC,UAAU,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;YACnD,MAAM,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACjD,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE;SACzB,CAAC,CAAC;KACJ;CACF,CAAC"}
|