esvn-react-barcode-print 1.0.3 → 1.0.5
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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +53 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -58,7 +58,7 @@ var generateBarcodeHtml = (value, printType, height = 24) => {
|
|
|
58
58
|
return `<div style="font-size: 10px; text-align: center; word-break: break-word;">${value}</div>`;
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight = 22) => {
|
|
61
|
+
var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight = 22, dynamicFontSize, isTest = false) => {
|
|
62
62
|
const {
|
|
63
63
|
printType = 0,
|
|
64
64
|
hinge = false,
|
|
@@ -95,7 +95,15 @@ var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight =
|
|
|
95
95
|
const isItalic = !!field.italic;
|
|
96
96
|
const isUnderline = !!field.underline;
|
|
97
97
|
const textColor = field.color || "#000000";
|
|
98
|
-
|
|
98
|
+
let customFontSize = void 0;
|
|
99
|
+
if (field.fontSize) {
|
|
100
|
+
if (isTest) {
|
|
101
|
+
customFontSize = `${field.fontSize}px`;
|
|
102
|
+
} else {
|
|
103
|
+
const baseScale = parseFloat(dynamicFontSize || "7.5");
|
|
104
|
+
customFontSize = `${(field.fontSize / 13 * baseScale).toFixed(1)}px`;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
99
107
|
const offsetLeft = field.offsetX && field.offsetX > 0 ? `${field.offsetX}px` : void 0;
|
|
100
108
|
const styleRules = [
|
|
101
109
|
`font-weight: ${isBold ? 700 : 400} !important`,
|
|
@@ -140,7 +148,10 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
140
148
|
labelList = [sampleItem];
|
|
141
149
|
} else {
|
|
142
150
|
items.forEach((item) => {
|
|
143
|
-
|
|
151
|
+
var _a2, _b;
|
|
152
|
+
const rawQty = (_b = (_a2 = item.printQuantity) != null ? _a2 : item.quantity) != null ? _b : 1;
|
|
153
|
+
const parsedQty = typeof rawQty === "number" ? rawQty : parseInt(String(rawQty), 10);
|
|
154
|
+
const qty = Math.max(1, isNaN(parsedQty) ? 1 : parsedQty);
|
|
144
155
|
for (let i = 0; i < qty; i++) {
|
|
145
156
|
labelList.push({ ...item, companyName: orgName });
|
|
146
157
|
}
|
|
@@ -152,6 +163,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
152
163
|
if (labelList.length === 0) {
|
|
153
164
|
return { html: "", totalStamps: 0, paperLabel, uniqueProducts: items.length };
|
|
154
165
|
}
|
|
166
|
+
const enabledFieldsCount = (settings.fields || []).filter((f) => f.enabled).length || 4;
|
|
155
167
|
let cols = 3;
|
|
156
168
|
let pageSizeCss = "105mm auto";
|
|
157
169
|
let pageMargin = "0";
|
|
@@ -159,9 +171,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
159
171
|
let labelHeight = "22mm";
|
|
160
172
|
let labelGap = "1.5mm";
|
|
161
173
|
let bodyPadding = "1mm";
|
|
162
|
-
let stampPadding = "2px
|
|
163
|
-
let dynamicFontSize = "8px";
|
|
164
|
-
let barcodeHeight = 16;
|
|
174
|
+
let stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1.5px 3px";
|
|
175
|
+
let dynamicFontSize = enabledFieldsCount >= 5 ? "6.8px" : enabledFieldsCount >= 4 ? "7.2px" : "7.8px";
|
|
176
|
+
let barcodeHeight = enabledFieldsCount >= 5 ? 12 : enabledFieldsCount >= 4 ? 14 : 16;
|
|
165
177
|
let sheetWidth = "105mm";
|
|
166
178
|
let sheetMinHeight = "60mm";
|
|
167
179
|
let sheetPadding = "2mm 1mm";
|
|
@@ -191,9 +203,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
191
203
|
labelHeight = "22mm";
|
|
192
204
|
labelGap = "2mm";
|
|
193
205
|
bodyPadding = "1mm";
|
|
194
|
-
stampPadding = "2px
|
|
195
|
-
dynamicFontSize = "8px";
|
|
196
|
-
barcodeHeight = 18;
|
|
206
|
+
stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1.5px 3px";
|
|
207
|
+
dynamicFontSize = enabledFieldsCount >= 5 ? "7px" : enabledFieldsCount >= 4 ? "7.5px" : "8px";
|
|
208
|
+
barcodeHeight = enabledFieldsCount >= 5 ? 13 : enabledFieldsCount >= 4 ? 15 : 18;
|
|
197
209
|
sheetWidth = "80mm";
|
|
198
210
|
sheetMinHeight = "60mm";
|
|
199
211
|
sheetPadding = "2mm 1mm";
|
|
@@ -207,9 +219,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
207
219
|
labelHeight = "22mm";
|
|
208
220
|
labelGap = "1.5mm";
|
|
209
221
|
bodyPadding = "1mm";
|
|
210
|
-
stampPadding = "1px 3px";
|
|
211
|
-
dynamicFontSize = "7.
|
|
212
|
-
barcodeHeight = 16;
|
|
222
|
+
stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1px 3px";
|
|
223
|
+
dynamicFontSize = enabledFieldsCount >= 5 ? "6.8px" : enabledFieldsCount >= 4 ? "7.2px" : "7.6px";
|
|
224
|
+
barcodeHeight = enabledFieldsCount >= 5 ? 12 : enabledFieldsCount >= 4 ? 14 : 16;
|
|
213
225
|
sheetWidth = "105mm";
|
|
214
226
|
sheetMinHeight = "60mm";
|
|
215
227
|
sheetPadding = "2mm 1mm";
|
|
@@ -280,7 +292,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
280
292
|
pages.push({ items: labelList, emptyCount: 0 });
|
|
281
293
|
}
|
|
282
294
|
const pagesHtml = pages.map((page, pageIndex) => {
|
|
283
|
-
const pageLabelsHtml = page.items.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight)).join("");
|
|
295
|
+
const pageLabelsHtml = page.items.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight, dynamicFontSize, isTest)).join("");
|
|
284
296
|
let emptySlotsHtml = "";
|
|
285
297
|
if (page.emptyCount > 0) {
|
|
286
298
|
emptySlotsHtml = Array(page.emptyCount).fill(0).map(() => '<div class="empty-slot" title="V\u1ECB tr\xED tem tr\u1ED1ng tr\xEAn decal"></div>').join("");
|
|
@@ -360,6 +372,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
360
372
|
width: 100%;
|
|
361
373
|
min-height: ${isTest ? "48mm" : labelHeight === "auto" ? "22mm" : labelHeight};
|
|
362
374
|
height: ${labelHeight === "auto" ? "auto" : labelHeight};
|
|
375
|
+
max-height: ${isTest ? "none" : labelHeight === "auto" ? "none" : labelHeight};
|
|
363
376
|
padding: ${stampPadding};
|
|
364
377
|
display: flex;
|
|
365
378
|
flex-direction: column;
|
|
@@ -389,17 +402,21 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
389
402
|
}
|
|
390
403
|
.lbl-dynamic, .lbl-company, .lbl-code, .lbl-name, .lbl-price {
|
|
391
404
|
font-size: ${dynamicFontSize};
|
|
392
|
-
line-height: 1.
|
|
405
|
+
line-height: 1.15;
|
|
393
406
|
word-break: break-word;
|
|
394
|
-
|
|
395
|
-
|
|
407
|
+
overflow: hidden;
|
|
408
|
+
text-overflow: ellipsis;
|
|
409
|
+
display: -webkit-box;
|
|
410
|
+
-webkit-box-orient: vertical;
|
|
411
|
+
-webkit-line-clamp: ${enabledFieldsCount >= 5 ? 1 : 2};
|
|
412
|
+
margin-bottom: ${enabledFieldsCount >= 5 ? "1px" : "1.5px"};
|
|
396
413
|
}
|
|
397
414
|
.code-wrapper {
|
|
398
415
|
display: flex;
|
|
399
416
|
flex-direction: column;
|
|
400
417
|
justify-content: center;
|
|
401
418
|
align-items: center;
|
|
402
|
-
margin:
|
|
419
|
+
margin: ${enabledFieldsCount >= 5 ? "1px 0" : "1.5px 0"};
|
|
403
420
|
width: 100%;
|
|
404
421
|
}
|
|
405
422
|
.barcode-svg-box {
|
|
@@ -426,7 +443,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
426
443
|
</html>
|
|
427
444
|
`;
|
|
428
445
|
} else {
|
|
429
|
-
const labelsHtml = labelList.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight)).join("");
|
|
446
|
+
const labelsHtml = labelList.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight, dynamicFontSize, isTest)).join("");
|
|
430
447
|
printDocument = `
|
|
431
448
|
<!DOCTYPE html>
|
|
432
449
|
<html>
|
|
@@ -463,6 +480,8 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
463
480
|
.stamp-item {
|
|
464
481
|
width: 100%;
|
|
465
482
|
min-height: ${isTest ? "48mm" : labelHeight === "auto" ? "22mm" : labelHeight};
|
|
483
|
+
height: ${isTest ? "auto" : labelHeight === "auto" ? "auto" : labelHeight};
|
|
484
|
+
max-height: ${isTest ? "none" : labelHeight === "auto" ? "none" : labelHeight};
|
|
466
485
|
padding: ${stampPadding};
|
|
467
486
|
display: flex;
|
|
468
487
|
flex-direction: column;
|
|
@@ -473,6 +492,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
473
492
|
border: 1px solid #d8d6de;
|
|
474
493
|
border-radius: 4px;
|
|
475
494
|
background: #fff;
|
|
495
|
+
box-sizing: border-box;
|
|
476
496
|
}
|
|
477
497
|
.text-left {
|
|
478
498
|
text-align: left;
|
|
@@ -484,17 +504,21 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
484
504
|
}
|
|
485
505
|
.lbl-dynamic, .lbl-company, .lbl-code, .lbl-name, .lbl-price {
|
|
486
506
|
font-size: ${dynamicFontSize};
|
|
487
|
-
line-height: 1.
|
|
507
|
+
line-height: 1.15;
|
|
488
508
|
word-break: break-word;
|
|
489
|
-
|
|
490
|
-
|
|
509
|
+
overflow: hidden;
|
|
510
|
+
text-overflow: ellipsis;
|
|
511
|
+
display: -webkit-box;
|
|
512
|
+
-webkit-box-orient: vertical;
|
|
513
|
+
-webkit-line-clamp: ${enabledFieldsCount >= 5 ? 1 : 2};
|
|
514
|
+
margin-bottom: ${enabledFieldsCount >= 5 ? "1px" : "1.5px"};
|
|
491
515
|
}
|
|
492
516
|
.code-wrapper {
|
|
493
517
|
display: flex;
|
|
494
518
|
flex-direction: column;
|
|
495
519
|
justify-content: center;
|
|
496
520
|
align-items: center;
|
|
497
|
-
margin:
|
|
521
|
+
margin: ${enabledFieldsCount >= 5 ? "1px 0" : "1.5px 0"};
|
|
498
522
|
width: 100%;
|
|
499
523
|
}
|
|
500
524
|
.barcode-svg-box {
|
|
@@ -816,10 +840,14 @@ var styles = {
|
|
|
816
840
|
dynamicText: {
|
|
817
841
|
fontSize: 13,
|
|
818
842
|
color: "#111",
|
|
819
|
-
lineHeight: 1.
|
|
843
|
+
lineHeight: 1.2,
|
|
820
844
|
marginBottom: 2,
|
|
821
845
|
wordBreak: "break-word",
|
|
822
|
-
|
|
846
|
+
overflow: "hidden",
|
|
847
|
+
textOverflow: "ellipsis",
|
|
848
|
+
display: "-webkit-box",
|
|
849
|
+
WebkitBoxOrient: "vertical",
|
|
850
|
+
WebkitLineClamp: 2
|
|
823
851
|
}
|
|
824
852
|
};
|
|
825
853
|
var preview_print_default = PreviewPrint;
|
|
@@ -921,7 +949,7 @@ var SettingPrint = (props) => {
|
|
|
921
949
|
italic: false,
|
|
922
950
|
underline: false,
|
|
923
951
|
color: "#000000",
|
|
924
|
-
fontSize:
|
|
952
|
+
fontSize: void 0,
|
|
925
953
|
offsetX: 0,
|
|
926
954
|
prefix: fieldTemplate.prefix,
|
|
927
955
|
customValue: fieldTemplate.customValue || "N\u1ED9i dung t\xF9y ch\u1EC9nh"
|