@linkiez/boleto-sdk 1.2.0 → 1.2.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndustrialIntegrityTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,2BAA4B,YAAW,cAAc;IACzD,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"IndustrialIntegrityTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,qBAAa,2BAA4B,YAAW,cAAc;IACzD,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM;CAwYhD"}
|
|
@@ -6,134 +6,389 @@ class IndustrialIntegrityTemplate {
|
|
|
6
6
|
render(data) {
|
|
7
7
|
const dueDate = formatDateBr(data.payment.dueDate);
|
|
8
8
|
const amount = formatMoney(data.payment.amount);
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const payerAddress = escapeHtml(data.payer.address || '-');
|
|
9
|
+
const documentDate = escapeHtml(data.additionalInfo?.dataDocumento ?? dueDate);
|
|
10
|
+
const processingDate = escapeHtml(data.additionalInfo?.dataProcessamento ?? dueDate);
|
|
11
|
+
const agencyCode = escapeHtml(data.additionalInfo?.agenciaCodigoCedente ?? '-');
|
|
12
|
+
const wallet = escapeHtml(data.additionalInfo?.Carteira ?? data.additionalInfo?.carteira ?? '-');
|
|
14
13
|
const bankCode = escapeHtml(data.bank.code);
|
|
15
|
-
const
|
|
14
|
+
const bankCheckDigit = escapeHtml(data.additionalInfo?.bankCheckDigit ?? '7');
|
|
15
|
+
const bankDisplayCode = `${bankCode}-${bankCheckDigit}`;
|
|
16
|
+
const beneficiaryName = escapeHtml(data.beneficiary.name);
|
|
17
|
+
const beneficiaryDoc = escapeHtml(data.beneficiary.document);
|
|
18
|
+
const payerName = escapeHtml(data.payer.name);
|
|
19
|
+
const payerDoc = escapeHtml(data.payer.document);
|
|
20
|
+
const payerAddress = escapeHtml(data.payer.address || '-');
|
|
21
|
+
const digitavel = escapeHtml(data.payment.digitableLine);
|
|
16
22
|
const barcodeSvg = (0, BarcodeRenderer_1.renderI2of5Svg)(data.payment.barcode, {
|
|
17
|
-
height:
|
|
23
|
+
height: 72,
|
|
18
24
|
narrowWidth: 2,
|
|
19
25
|
wideWidth: 4,
|
|
20
|
-
quietZone:
|
|
26
|
+
quietZone: 1,
|
|
21
27
|
});
|
|
22
28
|
const pixPayload = data.payment.pix?.payload ? escapeHtml(data.payment.pix.payload) : null;
|
|
23
29
|
const pixQrCodeSvg = data.payment.pix?.qrCodeSvg ?? null;
|
|
30
|
+
const instructionItems = (data.instructions ?? [])
|
|
31
|
+
.slice(0, 3)
|
|
32
|
+
.map((item) => `<p class="font-body-md text-sm">${escapeHtml(item)}</p>`)
|
|
33
|
+
.join('');
|
|
24
34
|
return `<!DOCTYPE html>
|
|
25
|
-
<html lang="pt-BR">
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
35
|
+
<html lang="pt-BR"><head>
|
|
36
|
+
<meta charset="utf-8"/>
|
|
37
|
+
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
|
38
|
+
<title>INDUSTRIAL INTEGRITY - Ficha de Compensação</title>
|
|
39
|
+
<link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;600;700;800&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet"/>
|
|
40
|
+
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
|
|
41
|
+
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
|
42
|
+
<script id="tailwind-config">
|
|
43
|
+
tailwind.config = {
|
|
44
|
+
darkMode: "class",
|
|
45
|
+
theme: {
|
|
46
|
+
extend: {
|
|
47
|
+
"colors": {
|
|
48
|
+
"on-primary": "#ffffff",
|
|
49
|
+
"inverse-on-surface": "#f0f1f2",
|
|
50
|
+
"tertiary-container": "#27272d",
|
|
51
|
+
"on-tertiary": "#ffffff",
|
|
52
|
+
"surface-container-lowest": "#ffffff",
|
|
53
|
+
"surface-dim": "#d9dadb",
|
|
54
|
+
"error": "#ba1a1a",
|
|
55
|
+
"on-tertiary-fixed-variant": "#46464d",
|
|
56
|
+
"on-secondary": "#ffffff",
|
|
57
|
+
"on-secondary-container": "#fffbff",
|
|
58
|
+
"primary-fixed-dim": "#c8c6c9",
|
|
59
|
+
"on-primary-fixed-variant": "#47464a",
|
|
60
|
+
"primary-fixed": "#e4e1e5",
|
|
61
|
+
"tertiary-fixed": "#e3e1ea",
|
|
62
|
+
"on-error": "#ffffff",
|
|
63
|
+
"surface": "#f8f9fa",
|
|
64
|
+
"tertiary-fixed-dim": "#c7c5ce",
|
|
65
|
+
"secondary": "#bb0112",
|
|
66
|
+
"tertiary": "#121218",
|
|
67
|
+
"on-secondary-fixed-variant": "#93000b",
|
|
68
|
+
"on-tertiary-container": "#8f8d96",
|
|
69
|
+
"primary-container": "#27272a",
|
|
70
|
+
"on-primary-fixed": "#1b1b1e",
|
|
71
|
+
"on-primary-container": "#8f8e91",
|
|
72
|
+
"surface-container-high": "#e7e8e9",
|
|
73
|
+
"outline": "#77767b",
|
|
74
|
+
"surface-alt": "#F4F4F5",
|
|
75
|
+
"on-background": "#191c1d",
|
|
76
|
+
"on-error-container": "#93000a",
|
|
77
|
+
"outline-variant": "#c7c6cb",
|
|
78
|
+
"surface-variant": "#e1e3e4",
|
|
79
|
+
"on-surface": "#191c1d",
|
|
80
|
+
"error-container": "#ffdad6",
|
|
81
|
+
"secondary-fixed": "#ffdad6",
|
|
82
|
+
"surface-container": "#edeeef",
|
|
83
|
+
"surface-container-low": "#f3f4f5",
|
|
84
|
+
"background": "#f8f9fa",
|
|
85
|
+
"surface-container-highest": "#e1e3e4",
|
|
86
|
+
"on-surface-variant": "#46464b",
|
|
87
|
+
"on-tertiary-fixed": "#1b1b21",
|
|
88
|
+
"secondary-fixed-dim": "#ffb4ab",
|
|
89
|
+
"iron-gray": "#3F3F46",
|
|
90
|
+
"primary": "#121315",
|
|
91
|
+
"surface-bright": "#f8f9fa",
|
|
92
|
+
"on-secondary-fixed": "#410002",
|
|
93
|
+
"industrial-red": "#DC2626",
|
|
94
|
+
"surface-tint": "#5f5e61",
|
|
95
|
+
"slate-steel": "#27272A",
|
|
96
|
+
"inverse-surface": "#2e3132",
|
|
97
|
+
"inverse-primary": "#c8c6c9",
|
|
98
|
+
"secondary-container": "#e02928"
|
|
99
|
+
},
|
|
100
|
+
"borderRadius": {
|
|
101
|
+
"DEFAULT": "0.125rem",
|
|
102
|
+
"lg": "0.25rem",
|
|
103
|
+
"xl": "0.5rem",
|
|
104
|
+
"full": "0.75rem"
|
|
105
|
+
},
|
|
106
|
+
"fontFamily": {
|
|
107
|
+
"headline-md": ["Hanken Grotesk"],
|
|
108
|
+
"headline-lg-mobile": ["Hanken Grotesk"],
|
|
109
|
+
"body-md": ["Inter"],
|
|
110
|
+
"code-sm": ["JetBrains Mono"],
|
|
111
|
+
"headline-lg": ["Hanken Grotesk"],
|
|
112
|
+
"body-lg": ["Inter"],
|
|
113
|
+
"label-caps": ["JetBrains Mono"]
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
</script>
|
|
119
|
+
<style>
|
|
120
|
+
.material-symbols-outlined {
|
|
121
|
+
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
|
|
122
|
+
vertical-align: middle;
|
|
123
|
+
}
|
|
124
|
+
@media print {
|
|
125
|
+
.no-print { display: none !important; }
|
|
126
|
+
body { background: white !important; margin: 0; padding: 0; }
|
|
127
|
+
.a4-page {
|
|
128
|
+
box-shadow: none !important;
|
|
129
|
+
margin: 0 !important;
|
|
130
|
+
border: none !important;
|
|
131
|
+
width: 210mm !important;
|
|
132
|
+
height: 297mm !important;
|
|
133
|
+
}
|
|
134
|
+
.print-border-black { border-color: #000 !important; }
|
|
135
|
+
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
136
|
+
}
|
|
137
|
+
.a4-page {
|
|
138
|
+
width: 210mm;
|
|
139
|
+
min-height: 297mm;
|
|
140
|
+
padding: 20mm;
|
|
141
|
+
margin: 2rem auto;
|
|
142
|
+
background: white;
|
|
143
|
+
box-shadow: 0 0 10px rgba(0,0,0,0.1);
|
|
144
|
+
}
|
|
145
|
+
.a4-page {
|
|
146
|
+
--boleto-border-color: #8f8f95;
|
|
147
|
+
}
|
|
148
|
+
.a4-page .border,
|
|
149
|
+
.a4-page .border-t,
|
|
150
|
+
.a4-page .border-r,
|
|
151
|
+
.a4-page .border-b,
|
|
152
|
+
.a4-page .border-l,
|
|
153
|
+
.a4-page .border-x,
|
|
154
|
+
.a4-page .border-y {
|
|
155
|
+
border-color: var(--boleto-border-color) !important;
|
|
156
|
+
}
|
|
157
|
+
.boleto-table {
|
|
158
|
+
border-collapse: collapse;
|
|
159
|
+
width: 100%;
|
|
160
|
+
border-color: var(--boleto-border-color);
|
|
161
|
+
}
|
|
162
|
+
.boleto-table td, .boleto-table th {
|
|
163
|
+
border: 1px solid var(--boleto-border-color);
|
|
164
|
+
padding: 4px 8px;
|
|
165
|
+
vertical-align: top;
|
|
166
|
+
}
|
|
167
|
+
.a4-page .border-black {
|
|
168
|
+
border-color: #000 !important;
|
|
169
|
+
}
|
|
170
|
+
.label-text {
|
|
171
|
+
font-family: 'JetBrains Mono', monospace;
|
|
172
|
+
font-size: 8px;
|
|
173
|
+
text-transform: uppercase;
|
|
174
|
+
color: #46464b;
|
|
175
|
+
display: block;
|
|
176
|
+
margin-bottom: 2px;
|
|
177
|
+
}
|
|
178
|
+
.data-text {
|
|
179
|
+
font-family: 'Inter', sans-serif;
|
|
180
|
+
font-size: 13px;
|
|
181
|
+
font-weight: 600;
|
|
182
|
+
color: #121315;
|
|
183
|
+
}
|
|
184
|
+
.barcode-svg {
|
|
185
|
+
width: 100%;
|
|
186
|
+
height: 50px;
|
|
187
|
+
}
|
|
188
|
+
.barcode-area svg {
|
|
189
|
+
width: 100%;
|
|
190
|
+
height: 100%;
|
|
191
|
+
display: block;
|
|
192
|
+
}
|
|
193
|
+
body, body * {
|
|
194
|
+
color: #000 !important;
|
|
195
|
+
}
|
|
196
|
+
</style>
|
|
60
197
|
</head>
|
|
61
|
-
<body>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
198
|
+
<body class="bg-surface-container-low font-body-md">
|
|
199
|
+
<div class="no-print bg-slate-steel text-white py-3 px-4 sticky top-0 z-50 flex justify-between items-center shadow-lg">
|
|
200
|
+
<div class="flex items-center gap-2">
|
|
201
|
+
<span class="material-symbols-outlined">print</span>
|
|
202
|
+
<span class="font-semibold">Visualização de Impressão</span>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="flex gap-4">
|
|
205
|
+
<button class="bg-industrial-red hover:bg-secondary-container px-6 py-2 rounded-lg font-bold flex items-center gap-2 transition-all" onclick="window.print()">
|
|
206
|
+
<span class="material-symbols-outlined">print</span> IMPRIMIR BOLETO
|
|
207
|
+
</button>
|
|
208
|
+
<button class="bg-white/10 hover:bg-white/20 px-4 py-2 rounded-lg text-sm border border-white/20 transition-all" onclick="copyCode()">
|
|
209
|
+
Copiar Linha Digitável
|
|
210
|
+
</button>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
<div class="a4-page relative flex flex-col">
|
|
214
|
+
<header class="flex justify-between items-end mb-4 border-b-2 border-dashed border-outline-variant pb-6">
|
|
215
|
+
<div class="flex flex-col">
|
|
216
|
+
<h2 class="font-headline-md text-primary text-2xl tracking-tighter">INDUSTRIAL INTEGRITY</h2>
|
|
217
|
+
<span class="font-label-caps text-[10px] text-on-surface-variant">SOLUÇÕES INDUSTRIAIS</span>
|
|
218
|
+
</div>
|
|
219
|
+
<div class="text-right">
|
|
220
|
+
<p class="font-label-caps text-on-surface-variant text-xs">RECIBO DO PAGADOR</p>
|
|
221
|
+
<div class="flex items-center gap-2 mt-1">
|
|
222
|
+
<div class="bg-slate-steel px-2 py-1 font-bold rounded" style="color: #fff !important;">${bankDisplayCode}</div>
|
|
223
|
+
<span class="font-body-md font-bold">${escapeHtml(data.bank.name)}</span>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</header>
|
|
227
|
+
<div class="grid grid-cols-4 border border-outline mb-12">
|
|
228
|
+
<div class="col-span-3 border-r border-outline p-2">
|
|
229
|
+
<span class="label-text">Beneficiario</span>
|
|
230
|
+
<span class="data-text">${beneficiaryName} - ${formatDocumentLabel(beneficiaryDoc)}: ${beneficiaryDoc}</span>
|
|
231
|
+
</div>
|
|
232
|
+
<div class="p-2">
|
|
233
|
+
<span class="label-text">Vencimento</span>
|
|
234
|
+
<span class="data-text">${escapeHtml(dueDate)}</span>
|
|
235
|
+
</div>
|
|
236
|
+
<div class="col-span-2 border-t border-r border-outline p-2">
|
|
237
|
+
<span class="label-text">Pagador</span>
|
|
238
|
+
<span class="data-text">${payerName}</span>
|
|
239
|
+
</div>
|
|
240
|
+
<div class="border-t border-r border-outline p-2">
|
|
241
|
+
<span class="label-text">Agência/Código Beneficiário</span>
|
|
242
|
+
<span class="data-text">${agencyCode}</span>
|
|
243
|
+
</div>
|
|
244
|
+
<div class="border-t border-outline p-2">
|
|
245
|
+
<span class="label-text">Valor do Documento</span>
|
|
246
|
+
<span class="data-text">${escapeHtml(amount)}</span>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
<div class="border-b-2 border-dashed border-outline-variant mb-12 relative">
|
|
250
|
+
<span class="absolute -top-3 left-1/2 -translate-x-1/2 bg-white px-4 font-label-caps text-[10px] text-outline">Corte na linha pontilhada</span>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="flex items-center mb-0">
|
|
253
|
+
<div class="w-24 h-12 flex items-center justify-center border-r-2 border-black mr-4">
|
|
254
|
+
<span class="font-bold text-2xl">${bankDisplayCode}</span>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="flex-1 flex items-center justify-between px-4 border-b-2 border-black h-12">
|
|
257
|
+
<span class="font-bold text-xl tracking-tight" id="digitavel">${digitavel}</span>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
<table class="boleto-table mb-0 border-t-0">
|
|
261
|
+
<tbody>
|
|
262
|
+
<tr>
|
|
263
|
+
<td class="w-3/4" colspan="4">
|
|
264
|
+
<span class="label-text">Local de Pagamento</span>
|
|
265
|
+
<span class="data-text">Pagável em qualquer banco até o vencimento.</span>
|
|
266
|
+
</td>
|
|
267
|
+
<td>
|
|
268
|
+
<span class="label-text">Vencimento</span>
|
|
269
|
+
<span class="data-text">${escapeHtml(dueDate)}</span>
|
|
270
|
+
</td>
|
|
271
|
+
</tr>
|
|
272
|
+
<tr>
|
|
273
|
+
<td colspan="4">
|
|
274
|
+
<span class="label-text">Beneficiario</span>
|
|
275
|
+
<span class="data-text">${beneficiaryName} - ${formatDocumentLabel(beneficiaryDoc)}: ${beneficiaryDoc}</span>
|
|
276
|
+
</td>
|
|
277
|
+
<td>
|
|
278
|
+
<span class="label-text">Agência / Código Beneficiário</span>
|
|
279
|
+
<span class="data-text">${agencyCode}</span>
|
|
280
|
+
</td>
|
|
281
|
+
</tr>
|
|
282
|
+
<tr>
|
|
283
|
+
<td class="w-1/6">
|
|
284
|
+
<span class="label-text">Data do Doc.</span>
|
|
285
|
+
<span class="data-text">${documentDate}</span>
|
|
286
|
+
</td>
|
|
287
|
+
<td class="w-1/6">
|
|
288
|
+
<span class="label-text">Nº do Documento</span>
|
|
289
|
+
<span class="data-text">${escapeHtml(data.payment.documentNumber)}</span>
|
|
290
|
+
</td>
|
|
291
|
+
<td class="w-1/6">
|
|
292
|
+
<span class="label-text">Espécie Doc.</span>
|
|
293
|
+
<span class="data-text">DM</span>
|
|
294
|
+
</td>
|
|
295
|
+
<td class="w-1/6">
|
|
296
|
+
<span class="label-text">Aceite</span>
|
|
297
|
+
<span class="data-text">N</span>
|
|
298
|
+
</td>
|
|
299
|
+
<td>
|
|
300
|
+
<span class="label-text">Data Processamento</span>
|
|
301
|
+
<span class="data-text">${processingDate}</span>
|
|
302
|
+
</td>
|
|
303
|
+
</tr>
|
|
304
|
+
<tr>
|
|
305
|
+
<td class="w-1/6">
|
|
306
|
+
<span class="label-text">Uso do Banco</span>
|
|
307
|
+
<span class="data-text"></span>
|
|
308
|
+
</td>
|
|
309
|
+
<td class="w-1/6">
|
|
310
|
+
<span class="label-text">Carteira</span>
|
|
311
|
+
<span class="data-text">${wallet}</span>
|
|
312
|
+
</td>
|
|
313
|
+
<td class="w-1/6">
|
|
314
|
+
<span class="label-text">Espécie</span>
|
|
315
|
+
<span class="data-text">R$</span>
|
|
316
|
+
</td>
|
|
317
|
+
<td class="w-1/6">
|
|
318
|
+
<span class="label-text">Quantidade</span>
|
|
319
|
+
<span class="data-text"></span>
|
|
320
|
+
</td>
|
|
321
|
+
<td>
|
|
322
|
+
<span class="label-text">(=) Valor do Documento</span>
|
|
323
|
+
<span class="data-text">${escapeHtml(amount)}</span>
|
|
324
|
+
</td>
|
|
325
|
+
</tr>
|
|
326
|
+
<tr>
|
|
327
|
+
<td colspan="4" rowspan="5">
|
|
328
|
+
<span class="label-text">Instruções (Texto de responsabilidade do beneficiário)</span>
|
|
329
|
+
<div class="mt-2 flex flex-col gap-2">
|
|
330
|
+
${instructionItems || '<p class="font-body-md text-sm">Sem instruções.</p>'}
|
|
331
|
+
</div>
|
|
332
|
+
</td>
|
|
333
|
+
<td><span class="label-text">(-) Descontos / Abatimento</span><span class="data-text"></span></td>
|
|
334
|
+
</tr>
|
|
335
|
+
<tr><td><span class="label-text">(-) Outras Deduções</span><span class="data-text"></span></td></tr>
|
|
336
|
+
<tr><td><span class="label-text">(+) Mora / Multa</span><span class="data-text"></span></td></tr>
|
|
337
|
+
<tr><td><span class="label-text">(+) Outros Acréscimos</span><span class="data-text"></span></td></tr>
|
|
338
|
+
<tr><td><span class="label-text">(=) Valor Cobrado</span><span class="data-text"></span></td></tr>
|
|
339
|
+
<tr>
|
|
340
|
+
<td colspan="5">
|
|
341
|
+
<div class="flex flex-col">
|
|
342
|
+
<span class="label-text">Pagador</span>
|
|
343
|
+
<span class="data-text">${payerName} - ${formatDocumentLabel(payerDoc)}: ${payerDoc}</span>
|
|
344
|
+
<span class="data-text font-normal text-xs">${payerAddress}</span>
|
|
345
|
+
</div>
|
|
346
|
+
</td>
|
|
347
|
+
</tr>
|
|
348
|
+
</tbody>
|
|
349
|
+
</table>
|
|
350
|
+
<div class="mt-0 pt-0">
|
|
351
|
+
<div class="border-x border-b border-outline border-t-0 bg-white w-full -mt-px">
|
|
352
|
+
<div class="p-0">
|
|
353
|
+
<div class="barcode-area h-20 overflow-hidden bg-white w-full px-2 py-1">
|
|
354
|
+
${barcodeSvg}
|
|
355
|
+
</div>
|
|
356
|
+
<div class="flex justify-center py-1 text-center">
|
|
357
|
+
<span class="font-label-caps text-[8px] text-outline-variant">AUTENTICAÇÃO MECÂNICA - FICHA DE COMPENSAÇÃO</span>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
${pixPayload
|
|
361
|
+
? `<div class="border-t border-outline p-3 mt-0">
|
|
362
|
+
<span class="label-text">PIX Copia e Cola</span>
|
|
363
|
+
<div class="mt-2 flex items-start gap-4">
|
|
364
|
+
<div class="w-28 h-28 border border-outline flex items-center justify-center bg-white">${pixQrCodeSvg ?? ''}</div>
|
|
365
|
+
<div class="flex-1">
|
|
366
|
+
<p class="data-text text-xs break-all">${pixPayload}</p>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>`
|
|
133
370
|
: ''}
|
|
134
|
-
|
|
135
|
-
</
|
|
136
|
-
|
|
371
|
+
</div>
|
|
372
|
+
</div>
|
|
373
|
+
<div class="fixed bottom-8 left-1/2 -translate-x-1/2 bg-slate-steel text-white px-6 py-3 rounded-full font-body-md shadow-lg transform translate-y-32 opacity-0 transition-all duration-300" id="toast">
|
|
374
|
+
Código copiado para a área de transferência!
|
|
375
|
+
</div>
|
|
376
|
+
<script>
|
|
377
|
+
function copyCode() {
|
|
378
|
+
const codeText = document.getElementById('digitavel').innerText;
|
|
379
|
+
navigator.clipboard.writeText(codeText).then(() => {
|
|
380
|
+
const toast = document.getElementById('toast');
|
|
381
|
+
toast.classList.remove('translate-y-32', 'opacity-0');
|
|
382
|
+
toast.classList.add('translate-y-0', 'opacity-100');
|
|
383
|
+
|
|
384
|
+
setTimeout(() => {
|
|
385
|
+
toast.classList.add('translate-y-32', 'opacity-0');
|
|
386
|
+
toast.classList.remove('translate-y-0', 'opacity-100');
|
|
387
|
+
}, 3000);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
</script>
|
|
391
|
+
</body></html>`;
|
|
137
392
|
}
|
|
138
393
|
}
|
|
139
394
|
exports.IndustrialIntegrityTemplate = IndustrialIntegrityTemplate;
|
|
@@ -158,4 +413,8 @@ function formatMoney(amount) {
|
|
|
158
413
|
currency: 'BRL',
|
|
159
414
|
}).format(amount);
|
|
160
415
|
}
|
|
416
|
+
function formatDocumentLabel(document) {
|
|
417
|
+
const digits = document.replace(/\D+/g, '');
|
|
418
|
+
return digits.length > 11 ? 'CNPJ' : 'CPF';
|
|
419
|
+
}
|
|
161
420
|
//# sourceMappingURL=IndustrialIntegrityTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndustrialIntegrityTemplate.js","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":";;;AACA,yEAAqE;AAErE,MAAa,2BAA2B;IAC/B,MAAM,CAAC,IAAwB;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"IndustrialIntegrityTemplate.js","sourceRoot":"","sources":["../../src/templates/IndustrialIntegrityTemplate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linkiez/boleto-sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "SDK for Brazilian banking boletos and CNAB files processing",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
21
21
|
"build": "npm run clean && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
22
22
|
"benchmark:pdf-batch": "ts-node scripts/benchmark-pdf-batch.ts",
|
|
23
|
+
"preview:boleto": "ts-node scripts/preview-boleto.ts",
|
|
23
24
|
"test": "jest",
|
|
24
25
|
"test:watch": "jest --watch",
|
|
25
26
|
"test:coverage": "jest --coverage",
|