shareneus 1.5.56 → 1.5.57
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/dist/accounting/invoice/invoice-pdf/invoice-pdf.service.d.ts +96 -0
- package/dist/accounting/invoice/invoice-pdf/invoice-pdf.service.js +155 -0
- package/dist/accounting/payment-receive/payment-receipt-pdf/receipt-pdf.service.d.ts +1000 -0
- package/dist/accounting/payment-receive/payment-receipt-pdf/receipt-pdf.service.js +419 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +20 -1
- package/dist/shared/header-footer-section/pdf-header-footer.section.d.ts +118 -0
- package/dist/shared/header-footer-section/pdf-header-footer.section.js +345 -0
- package/dist/shared/header-footer-section/pdf-shared.utils.d.ts +5 -0
- package/dist/shared/header-footer-section/pdf-shared.utils.js +48 -0
- package/dist/shared/party-details-section/pdf-party-details.section.d.ts +11 -0
- package/dist/shared/party-details-section/pdf-party-details.section.js +240 -0
- package/dist/shared/table-section/pdf-table.config.d.ts +6 -0
- package/dist/shared/table-section/pdf-table.config.js +9 -0
- package/dist/shared/table-section/pdf-table.header.d.ts +3 -0
- package/dist/shared/table-section/pdf-table.header.js +155 -0
- package/dist/shared/table-section/pdf-table.row.d.ts +14 -0
- package/dist/shared/table-section/pdf-table.row.js +125 -0
- package/dist/shared/table-section/pdf-table.section.d.ts +9 -0
- package/dist/shared/table-section/pdf-table.section.js +290 -0
- package/dist/shared/totals-section/pdf-totals.section.d.ts +49 -0
- package/dist/shared/totals-section/pdf-totals.section.js +411 -0
- package/dist/tax/index.d.ts +9 -0
- package/dist/tax/index.js +21 -0
- package/dist/tax/tax-calculator.d.ts +275 -0
- package/dist/tax/tax-calculator.js +555 -0
- package/dist/tax/tax.types.d.ts +290 -0
- package/dist/tax/tax.types.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export declare function CreateInvoicePDFService(PDFInvoiceData?: any, PrintConfigData?: any, printCopies?: string[]): {
|
|
2
|
+
footer?: ((_currentPage: number, pageCount: number) => {
|
|
3
|
+
margin: number[];
|
|
4
|
+
columns: {
|
|
5
|
+
text: string;
|
|
6
|
+
alignment: string;
|
|
7
|
+
fontSize: number;
|
|
8
|
+
color: string;
|
|
9
|
+
}[];
|
|
10
|
+
}) | undefined;
|
|
11
|
+
watermark?: {
|
|
12
|
+
text: string;
|
|
13
|
+
color: string;
|
|
14
|
+
opacity: number;
|
|
15
|
+
bold: boolean;
|
|
16
|
+
} | undefined;
|
|
17
|
+
background?: (() => {
|
|
18
|
+
image: string;
|
|
19
|
+
width: number;
|
|
20
|
+
opacity: number;
|
|
21
|
+
alignment: string;
|
|
22
|
+
margin: number[];
|
|
23
|
+
}) | undefined;
|
|
24
|
+
pageSize: string;
|
|
25
|
+
pageOrientation: "portrait" | "landscape";
|
|
26
|
+
pageMargins: [number, number, number, number];
|
|
27
|
+
content: any[];
|
|
28
|
+
info: {
|
|
29
|
+
title: string;
|
|
30
|
+
subject: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export declare function DownloadPDFService(filename?: string, PDFInvoiceData?: any, PrintConfigData?: any, printCopies?: string[]): {
|
|
34
|
+
footer?: ((_currentPage: number, pageCount: number) => {
|
|
35
|
+
margin: number[];
|
|
36
|
+
columns: {
|
|
37
|
+
text: string;
|
|
38
|
+
alignment: string;
|
|
39
|
+
fontSize: number;
|
|
40
|
+
color: string;
|
|
41
|
+
}[];
|
|
42
|
+
}) | undefined;
|
|
43
|
+
watermark?: {
|
|
44
|
+
text: string;
|
|
45
|
+
color: string;
|
|
46
|
+
opacity: number;
|
|
47
|
+
bold: boolean;
|
|
48
|
+
} | undefined;
|
|
49
|
+
background?: (() => {
|
|
50
|
+
image: string;
|
|
51
|
+
width: number;
|
|
52
|
+
opacity: number;
|
|
53
|
+
alignment: string;
|
|
54
|
+
margin: number[];
|
|
55
|
+
}) | undefined;
|
|
56
|
+
pageSize: string;
|
|
57
|
+
pageOrientation: "portrait" | "landscape";
|
|
58
|
+
pageMargins: [number, number, number, number];
|
|
59
|
+
content: any[];
|
|
60
|
+
info: {
|
|
61
|
+
title: string;
|
|
62
|
+
subject: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export declare function GetPdfDataUrl(PDFInvoiceData?: any, PrintConfigData?: any, printCopies?: string[]): {
|
|
66
|
+
footer?: ((_currentPage: number, pageCount: number) => {
|
|
67
|
+
margin: number[];
|
|
68
|
+
columns: {
|
|
69
|
+
text: string;
|
|
70
|
+
alignment: string;
|
|
71
|
+
fontSize: number;
|
|
72
|
+
color: string;
|
|
73
|
+
}[];
|
|
74
|
+
}) | undefined;
|
|
75
|
+
watermark?: {
|
|
76
|
+
text: string;
|
|
77
|
+
color: string;
|
|
78
|
+
opacity: number;
|
|
79
|
+
bold: boolean;
|
|
80
|
+
} | undefined;
|
|
81
|
+
background?: (() => {
|
|
82
|
+
image: string;
|
|
83
|
+
width: number;
|
|
84
|
+
opacity: number;
|
|
85
|
+
alignment: string;
|
|
86
|
+
margin: number[];
|
|
87
|
+
}) | undefined;
|
|
88
|
+
pageSize: string;
|
|
89
|
+
pageOrientation: "portrait" | "landscape";
|
|
90
|
+
pageMargins: [number, number, number, number];
|
|
91
|
+
content: any[];
|
|
92
|
+
info: {
|
|
93
|
+
title: string;
|
|
94
|
+
subject: string;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateInvoicePDFService = CreateInvoicePDFService;
|
|
4
|
+
exports.DownloadPDFService = DownloadPDFService;
|
|
5
|
+
exports.GetPdfDataUrl = GetPdfDataUrl;
|
|
6
|
+
const pdf_party_details_section_1 = require("../../../shared/party-details-section/pdf-party-details.section");
|
|
7
|
+
const pdf_table_section_1 = require("../../../shared/table-section/pdf-table.section");
|
|
8
|
+
const pdf_totals_section_1 = require("../../../shared/totals-section/pdf-totals.section");
|
|
9
|
+
const pdf_shared_utils_1 = require("../../../shared/header-footer-section/pdf-shared.utils");
|
|
10
|
+
const pdf_header_footer_section_1 = require("../../../shared/header-footer-section/pdf-header-footer.section");
|
|
11
|
+
const PAGE_SIZE = 'A4';
|
|
12
|
+
const PAGE_MARGINS = [20, 20, 20, 20];
|
|
13
|
+
const CELL_PADDING_LEFT = 4;
|
|
14
|
+
const CELL_PADDING_RIGHT = 4;
|
|
15
|
+
const BORDER_WIDTH = 0.5;
|
|
16
|
+
const TABLE_BORDER_COLOR = '#d3d3d3';
|
|
17
|
+
function CreateInvoicePDFService(PDFInvoiceData = {}, PrintConfigData = {}, printCopies = []) {
|
|
18
|
+
const dd = buildPdfDocDefinition(PDFInvoiceData, PrintConfigData, printCopies);
|
|
19
|
+
// pdfMake.createPdf(dd).open();
|
|
20
|
+
return dd;
|
|
21
|
+
}
|
|
22
|
+
function DownloadPDFService(filename = 'invoice.pdf', PDFInvoiceData = {}, PrintConfigData = {}, printCopies = []) {
|
|
23
|
+
const dd = buildPdfDocDefinition(PDFInvoiceData, PrintConfigData, printCopies);
|
|
24
|
+
// pdfMake.createPdf(dd).download(filename);
|
|
25
|
+
return dd;
|
|
26
|
+
}
|
|
27
|
+
function GetPdfDataUrl(PDFInvoiceData = {}, PrintConfigData = {}, printCopies = []) {
|
|
28
|
+
const dd = buildPdfDocDefinition(PDFInvoiceData, PrintConfigData, printCopies);
|
|
29
|
+
// const pdfDoc: any = pdfMake.createPdf(dd);
|
|
30
|
+
return dd;
|
|
31
|
+
// return new Promise((resolve, reject) => {
|
|
32
|
+
// let settled = false;
|
|
33
|
+
// const done = (value: string) => {
|
|
34
|
+
// if (!settled) {
|
|
35
|
+
// settled = true;
|
|
36
|
+
// resolve(value);
|
|
37
|
+
// }
|
|
38
|
+
// };
|
|
39
|
+
// const fail = (error: any) => {
|
|
40
|
+
// if (!settled) {
|
|
41
|
+
// settled = true;
|
|
42
|
+
// reject(error);
|
|
43
|
+
// }
|
|
44
|
+
// };
|
|
45
|
+
// try {
|
|
46
|
+
// if (typeof pdfDoc.getDataUrl === 'function') {
|
|
47
|
+
// const result = pdfDoc.getDataUrl((dataUrl: string) => done(dataUrl));
|
|
48
|
+
// if (result && typeof result.then === 'function') {
|
|
49
|
+
// result.then((dataUrl: string) => done(dataUrl)).catch(fail);
|
|
50
|
+
// }
|
|
51
|
+
// return;
|
|
52
|
+
// }
|
|
53
|
+
// if (typeof pdfDoc.getBlob === 'function') {
|
|
54
|
+
// const result = pdfDoc.getBlob((blob: Blob) => done(URL.createObjectURL(blob)));
|
|
55
|
+
// if (result && typeof result.then === 'function') {
|
|
56
|
+
// result.then((blob: Blob) => done(URL.createObjectURL(blob))).catch(fail);
|
|
57
|
+
// }
|
|
58
|
+
// return;
|
|
59
|
+
// }
|
|
60
|
+
// fail(new Error('No supported preview API found on pdf document instance.'));
|
|
61
|
+
// } catch (error) {
|
|
62
|
+
// fail(error);
|
|
63
|
+
// }
|
|
64
|
+
// });
|
|
65
|
+
}
|
|
66
|
+
function buildPdfDocDefinition(PDFInvoiceData = {}, PrintConfigData = {}, printCopies = []) {
|
|
67
|
+
console.log('Building PDF with data:', PDFInvoiceData);
|
|
68
|
+
const PrintConfig = normalizePrintConfig(PDFInvoiceData, PrintConfigData);
|
|
69
|
+
const pageOrientation = (0, pdf_header_footer_section_1.resolvePageOrientation)(PrintConfig === null || PrintConfig === void 0 ? void 0 : PrintConfig.pageOrientation);
|
|
70
|
+
const pageMargins = (0, pdf_header_footer_section_1.resolvePageMargins)(PrintConfig === null || PrintConfig === void 0 ? void 0 : PrintConfig.pageMargins);
|
|
71
|
+
const availableWidth = (0, pdf_table_section_1.getAvailablePageWidth)(PAGE_SIZE, pageOrientation, pageMargins);
|
|
72
|
+
const copyLabels = normalizeCopyLabels(printCopies);
|
|
73
|
+
const watermark = (0, pdf_header_footer_section_1.buildWatermark)(PrintConfig);
|
|
74
|
+
const background = (0, pdf_header_footer_section_1.buildLogoWatermarkBackground)(PrintConfig);
|
|
75
|
+
const footer = (0, pdf_header_footer_section_1.buildFooter)(PrintConfig);
|
|
76
|
+
const content = [];
|
|
77
|
+
copyLabels.forEach((copyLabel, index) => {
|
|
78
|
+
const invoiceHeaderContent = (0, pdf_header_footer_section_1.buildDocumentHeaderSection)(PrintConfig, PDFInvoiceData);
|
|
79
|
+
const invoiceHeadingContent = (0, pdf_header_footer_section_1.buildDocumentHeadingSection)(PDFInvoiceData, PrintConfig, availableWidth);
|
|
80
|
+
const invoicePartyDetailsContent = (0, pdf_party_details_section_1.buildInvoicePartyDetailsSection)(PDFInvoiceData);
|
|
81
|
+
const invoiceTotalsAndNotesContent = (0, pdf_totals_section_1.buildInvoiceTotalsAndNotesSection)(PDFInvoiceData, availableWidth);
|
|
82
|
+
const signatureContent = (0, pdf_totals_section_1.buildSignatureSection)(PrintConfig, PDFInvoiceData);
|
|
83
|
+
const tableData = (0, pdf_table_section_1.buildInvoiceTableData)(PDFInvoiceData, PrintConfig, availableWidth);
|
|
84
|
+
if (index > 0) {
|
|
85
|
+
content.push({ text: '', pageBreak: 'before' });
|
|
86
|
+
}
|
|
87
|
+
if (copyLabel) {
|
|
88
|
+
content.push({
|
|
89
|
+
text: copyLabel,
|
|
90
|
+
alignment: 'right',
|
|
91
|
+
bold: true,
|
|
92
|
+
fontSize: 8,
|
|
93
|
+
margin: [0, 0, 0, 2]
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
content.push(...invoiceHeaderContent, ...invoiceHeadingContent, ...invoicePartyDetailsContent, {
|
|
97
|
+
table: {
|
|
98
|
+
lineHeight: 2,
|
|
99
|
+
headerRows: tableData.headerRows.length,
|
|
100
|
+
widths: tableData.widths,
|
|
101
|
+
body: tableData.body
|
|
102
|
+
},
|
|
103
|
+
layout: {
|
|
104
|
+
paddingLeft: () => CELL_PADDING_LEFT,
|
|
105
|
+
paddingRight: () => CELL_PADDING_RIGHT,
|
|
106
|
+
vLineWidth: () => BORDER_WIDTH,
|
|
107
|
+
hLineWidth: () => BORDER_WIDTH,
|
|
108
|
+
vLineColor: () => TABLE_BORDER_COLOR,
|
|
109
|
+
hLineColor: () => TABLE_BORDER_COLOR
|
|
110
|
+
}
|
|
111
|
+
}, ...invoiceTotalsAndNotesContent, ...signatureContent);
|
|
112
|
+
});
|
|
113
|
+
const dd = Object.assign(Object.assign(Object.assign({ pageSize: PAGE_SIZE, pageOrientation: pageOrientation, pageMargins: pageMargins, content: content, info: {
|
|
114
|
+
title: 'invoice',
|
|
115
|
+
subject: Array.isArray(printCopies) ? printCopies.join(', ') : ''
|
|
116
|
+
} }, (background ? { background } : {})), (watermark ? { watermark } : {})), (footer ? { footer } : {}));
|
|
117
|
+
return dd;
|
|
118
|
+
}
|
|
119
|
+
function normalizeCopyLabels(printCopies = []) {
|
|
120
|
+
const labels = Array.isArray(printCopies)
|
|
121
|
+
? printCopies
|
|
122
|
+
.map((entry) => (0, pdf_shared_utils_1.toStr)(entry).trim())
|
|
123
|
+
.filter((entry) => !!entry)
|
|
124
|
+
: [];
|
|
125
|
+
return labels.length > 0 ? labels : [''];
|
|
126
|
+
}
|
|
127
|
+
function normalizePrintConfig(PDFInvoiceData, PrintConfigData) {
|
|
128
|
+
var _a, _b;
|
|
129
|
+
const config = PrintConfigData || {};
|
|
130
|
+
const itemsHeader = Array.isArray(config === null || config === void 0 ? void 0 : config.itemsHeader) ? config.itemsHeader : [];
|
|
131
|
+
const headerData = (config === null || config === void 0 ? void 0 : config.headerData) ? config.headerData : (0, pdf_header_footer_section_1.deriveHeaderDataFromInvoice)(PDFInvoiceData);
|
|
132
|
+
const pageMargins = (0, pdf_header_footer_section_1.resolvePageMargins)((_a = config === null || config === void 0 ? void 0 : config.pageMargins) !== null && _a !== void 0 ? _a : PAGE_MARGINS);
|
|
133
|
+
const watermarkText = (0, pdf_shared_utils_1.toStr)(config === null || config === void 0 ? void 0 : config.watermarkText);
|
|
134
|
+
const watermark = !!(config === null || config === void 0 ? void 0 : config.watermark);
|
|
135
|
+
const watermarkEnabled = !!(config === null || config === void 0 ? void 0 : config.watermarkEnabled);
|
|
136
|
+
const footerText = (0, pdf_shared_utils_1.toStr)(config === null || config === void 0 ? void 0 : config.footerText);
|
|
137
|
+
const headerStyles = (0, pdf_header_footer_section_1.normalizeHeaderStyle)((_b = config === null || config === void 0 ? void 0 : config.headerStyles) !== null && _b !== void 0 ? _b : {});
|
|
138
|
+
const fixedTo = normalizeFixedTo(config === null || config === void 0 ? void 0 : config.fixedTo);
|
|
139
|
+
return Object.assign(Object.assign({}, config), { itemsHeader,
|
|
140
|
+
headerData,
|
|
141
|
+
pageMargins,
|
|
142
|
+
watermarkText,
|
|
143
|
+
watermark,
|
|
144
|
+
watermarkEnabled,
|
|
145
|
+
footerText,
|
|
146
|
+
headerStyles,
|
|
147
|
+
fixedTo });
|
|
148
|
+
}
|
|
149
|
+
function normalizeFixedTo(value) {
|
|
150
|
+
const parsed = Number(value);
|
|
151
|
+
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
152
|
+
return 2;
|
|
153
|
+
}
|
|
154
|
+
return Math.floor(parsed);
|
|
155
|
+
}
|