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.d.mts
CHANGED
|
@@ -51,7 +51,7 @@ interface IExtraFieldOption {
|
|
|
51
51
|
|
|
52
52
|
declare const getOrganizationName: () => string;
|
|
53
53
|
declare const generateBarcodeHtml: (value: string, printType: number, height?: number) => string;
|
|
54
|
-
declare const renderSingleLabelHtml: (item: IBarcodePrintItem, settings: ISettingPrint, companyNameDefault?: string, barcodeHeight?: number) => string;
|
|
54
|
+
declare const renderSingleLabelHtml: (item: IBarcodePrintItem, settings: ISettingPrint, companyNameDefault?: string, barcodeHeight?: number, dynamicFontSize?: string, isTest?: boolean) => string;
|
|
55
55
|
declare const getPaperSizeLabel: (paperSize?: number, stampNumber?: number) => string;
|
|
56
56
|
declare const generatePrintDocument: (settings: ISettingPrint, items: IBarcodePrintItem[], isTest?: boolean, isPreview?: boolean) => {
|
|
57
57
|
html: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ interface IExtraFieldOption {
|
|
|
51
51
|
|
|
52
52
|
declare const getOrganizationName: () => string;
|
|
53
53
|
declare const generateBarcodeHtml: (value: string, printType: number, height?: number) => string;
|
|
54
|
-
declare const renderSingleLabelHtml: (item: IBarcodePrintItem, settings: ISettingPrint, companyNameDefault?: string, barcodeHeight?: number) => string;
|
|
54
|
+
declare const renderSingleLabelHtml: (item: IBarcodePrintItem, settings: ISettingPrint, companyNameDefault?: string, barcodeHeight?: number, dynamicFontSize?: string, isTest?: boolean) => string;
|
|
55
55
|
declare const getPaperSizeLabel: (paperSize?: number, stampNumber?: number) => string;
|
|
56
56
|
declare const generatePrintDocument: (settings: ISettingPrint, items: IBarcodePrintItem[], isTest?: boolean, isPreview?: boolean) => {
|
|
57
57
|
html: string;
|
package/dist/index.js
CHANGED
|
@@ -102,7 +102,7 @@ var generateBarcodeHtml = (value, printType, height = 24) => {
|
|
|
102
102
|
return `<div style="font-size: 10px; text-align: center; word-break: break-word;">${value}</div>`;
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
|
-
var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight = 22) => {
|
|
105
|
+
var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight = 22, dynamicFontSize, isTest = false) => {
|
|
106
106
|
const {
|
|
107
107
|
printType = 0,
|
|
108
108
|
hinge = false,
|
|
@@ -139,7 +139,15 @@ var renderSingleLabelHtml = (item, settings, companyNameDefault, barcodeHeight =
|
|
|
139
139
|
const isItalic = !!field.italic;
|
|
140
140
|
const isUnderline = !!field.underline;
|
|
141
141
|
const textColor = field.color || "#000000";
|
|
142
|
-
|
|
142
|
+
let customFontSize = void 0;
|
|
143
|
+
if (field.fontSize) {
|
|
144
|
+
if (isTest) {
|
|
145
|
+
customFontSize = `${field.fontSize}px`;
|
|
146
|
+
} else {
|
|
147
|
+
const baseScale = parseFloat(dynamicFontSize || "7.5");
|
|
148
|
+
customFontSize = `${(field.fontSize / 13 * baseScale).toFixed(1)}px`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
143
151
|
const offsetLeft = field.offsetX && field.offsetX > 0 ? `${field.offsetX}px` : void 0;
|
|
144
152
|
const styleRules = [
|
|
145
153
|
`font-weight: ${isBold ? 700 : 400} !important`,
|
|
@@ -184,7 +192,10 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
184
192
|
labelList = [sampleItem];
|
|
185
193
|
} else {
|
|
186
194
|
items.forEach((item) => {
|
|
187
|
-
|
|
195
|
+
var _a2, _b;
|
|
196
|
+
const rawQty = (_b = (_a2 = item.printQuantity) != null ? _a2 : item.quantity) != null ? _b : 1;
|
|
197
|
+
const parsedQty = typeof rawQty === "number" ? rawQty : parseInt(String(rawQty), 10);
|
|
198
|
+
const qty = Math.max(1, isNaN(parsedQty) ? 1 : parsedQty);
|
|
188
199
|
for (let i = 0; i < qty; i++) {
|
|
189
200
|
labelList.push({ ...item, companyName: orgName });
|
|
190
201
|
}
|
|
@@ -196,6 +207,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
196
207
|
if (labelList.length === 0) {
|
|
197
208
|
return { html: "", totalStamps: 0, paperLabel, uniqueProducts: items.length };
|
|
198
209
|
}
|
|
210
|
+
const enabledFieldsCount = (settings.fields || []).filter((f) => f.enabled).length || 4;
|
|
199
211
|
let cols = 3;
|
|
200
212
|
let pageSizeCss = "105mm auto";
|
|
201
213
|
let pageMargin = "0";
|
|
@@ -203,9 +215,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
203
215
|
let labelHeight = "22mm";
|
|
204
216
|
let labelGap = "1.5mm";
|
|
205
217
|
let bodyPadding = "1mm";
|
|
206
|
-
let stampPadding = "2px
|
|
207
|
-
let dynamicFontSize = "8px";
|
|
208
|
-
let barcodeHeight = 16;
|
|
218
|
+
let stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1.5px 3px";
|
|
219
|
+
let dynamicFontSize = enabledFieldsCount >= 5 ? "6.8px" : enabledFieldsCount >= 4 ? "7.2px" : "7.8px";
|
|
220
|
+
let barcodeHeight = enabledFieldsCount >= 5 ? 12 : enabledFieldsCount >= 4 ? 14 : 16;
|
|
209
221
|
let sheetWidth = "105mm";
|
|
210
222
|
let sheetMinHeight = "60mm";
|
|
211
223
|
let sheetPadding = "2mm 1mm";
|
|
@@ -235,9 +247,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
235
247
|
labelHeight = "22mm";
|
|
236
248
|
labelGap = "2mm";
|
|
237
249
|
bodyPadding = "1mm";
|
|
238
|
-
stampPadding = "2px
|
|
239
|
-
dynamicFontSize = "8px";
|
|
240
|
-
barcodeHeight = 18;
|
|
250
|
+
stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1.5px 3px";
|
|
251
|
+
dynamicFontSize = enabledFieldsCount >= 5 ? "7px" : enabledFieldsCount >= 4 ? "7.5px" : "8px";
|
|
252
|
+
barcodeHeight = enabledFieldsCount >= 5 ? 13 : enabledFieldsCount >= 4 ? 15 : 18;
|
|
241
253
|
sheetWidth = "80mm";
|
|
242
254
|
sheetMinHeight = "60mm";
|
|
243
255
|
sheetPadding = "2mm 1mm";
|
|
@@ -251,9 +263,9 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
251
263
|
labelHeight = "22mm";
|
|
252
264
|
labelGap = "1.5mm";
|
|
253
265
|
bodyPadding = "1mm";
|
|
254
|
-
stampPadding = "1px 3px";
|
|
255
|
-
dynamicFontSize = "7.
|
|
256
|
-
barcodeHeight = 16;
|
|
266
|
+
stampPadding = enabledFieldsCount >= 5 ? "1px 2px" : "1px 3px";
|
|
267
|
+
dynamicFontSize = enabledFieldsCount >= 5 ? "6.8px" : enabledFieldsCount >= 4 ? "7.2px" : "7.6px";
|
|
268
|
+
barcodeHeight = enabledFieldsCount >= 5 ? 12 : enabledFieldsCount >= 4 ? 14 : 16;
|
|
257
269
|
sheetWidth = "105mm";
|
|
258
270
|
sheetMinHeight = "60mm";
|
|
259
271
|
sheetPadding = "2mm 1mm";
|
|
@@ -324,7 +336,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
324
336
|
pages.push({ items: labelList, emptyCount: 0 });
|
|
325
337
|
}
|
|
326
338
|
const pagesHtml = pages.map((page, pageIndex) => {
|
|
327
|
-
const pageLabelsHtml = page.items.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight)).join("");
|
|
339
|
+
const pageLabelsHtml = page.items.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight, dynamicFontSize, isTest)).join("");
|
|
328
340
|
let emptySlotsHtml = "";
|
|
329
341
|
if (page.emptyCount > 0) {
|
|
330
342
|
emptySlotsHtml = Array(page.emptyCount).fill(0).map(() => '<div class="empty-slot" title="V\u1ECB tr\xED tem tr\u1ED1ng tr\xEAn decal"></div>').join("");
|
|
@@ -404,6 +416,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
404
416
|
width: 100%;
|
|
405
417
|
min-height: ${isTest ? "48mm" : labelHeight === "auto" ? "22mm" : labelHeight};
|
|
406
418
|
height: ${labelHeight === "auto" ? "auto" : labelHeight};
|
|
419
|
+
max-height: ${isTest ? "none" : labelHeight === "auto" ? "none" : labelHeight};
|
|
407
420
|
padding: ${stampPadding};
|
|
408
421
|
display: flex;
|
|
409
422
|
flex-direction: column;
|
|
@@ -433,17 +446,21 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
433
446
|
}
|
|
434
447
|
.lbl-dynamic, .lbl-company, .lbl-code, .lbl-name, .lbl-price {
|
|
435
448
|
font-size: ${dynamicFontSize};
|
|
436
|
-
line-height: 1.
|
|
449
|
+
line-height: 1.15;
|
|
437
450
|
word-break: break-word;
|
|
438
|
-
|
|
439
|
-
|
|
451
|
+
overflow: hidden;
|
|
452
|
+
text-overflow: ellipsis;
|
|
453
|
+
display: -webkit-box;
|
|
454
|
+
-webkit-box-orient: vertical;
|
|
455
|
+
-webkit-line-clamp: ${enabledFieldsCount >= 5 ? 1 : 2};
|
|
456
|
+
margin-bottom: ${enabledFieldsCount >= 5 ? "1px" : "1.5px"};
|
|
440
457
|
}
|
|
441
458
|
.code-wrapper {
|
|
442
459
|
display: flex;
|
|
443
460
|
flex-direction: column;
|
|
444
461
|
justify-content: center;
|
|
445
462
|
align-items: center;
|
|
446
|
-
margin:
|
|
463
|
+
margin: ${enabledFieldsCount >= 5 ? "1px 0" : "1.5px 0"};
|
|
447
464
|
width: 100%;
|
|
448
465
|
}
|
|
449
466
|
.barcode-svg-box {
|
|
@@ -470,7 +487,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
470
487
|
</html>
|
|
471
488
|
`;
|
|
472
489
|
} else {
|
|
473
|
-
const labelsHtml = labelList.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight)).join("");
|
|
490
|
+
const labelsHtml = labelList.map((item) => renderSingleLabelHtml(item, settings, orgName, barcodeHeight, dynamicFontSize, isTest)).join("");
|
|
474
491
|
printDocument = `
|
|
475
492
|
<!DOCTYPE html>
|
|
476
493
|
<html>
|
|
@@ -507,6 +524,8 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
507
524
|
.stamp-item {
|
|
508
525
|
width: 100%;
|
|
509
526
|
min-height: ${isTest ? "48mm" : labelHeight === "auto" ? "22mm" : labelHeight};
|
|
527
|
+
height: ${isTest ? "auto" : labelHeight === "auto" ? "auto" : labelHeight};
|
|
528
|
+
max-height: ${isTest ? "none" : labelHeight === "auto" ? "none" : labelHeight};
|
|
510
529
|
padding: ${stampPadding};
|
|
511
530
|
display: flex;
|
|
512
531
|
flex-direction: column;
|
|
@@ -517,6 +536,7 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
517
536
|
border: 1px solid #d8d6de;
|
|
518
537
|
border-radius: 4px;
|
|
519
538
|
background: #fff;
|
|
539
|
+
box-sizing: border-box;
|
|
520
540
|
}
|
|
521
541
|
.text-left {
|
|
522
542
|
text-align: left;
|
|
@@ -528,17 +548,21 @@ var generatePrintDocument = (settings, items, isTest = false, isPreview = false)
|
|
|
528
548
|
}
|
|
529
549
|
.lbl-dynamic, .lbl-company, .lbl-code, .lbl-name, .lbl-price {
|
|
530
550
|
font-size: ${dynamicFontSize};
|
|
531
|
-
line-height: 1.
|
|
551
|
+
line-height: 1.15;
|
|
532
552
|
word-break: break-word;
|
|
533
|
-
|
|
534
|
-
|
|
553
|
+
overflow: hidden;
|
|
554
|
+
text-overflow: ellipsis;
|
|
555
|
+
display: -webkit-box;
|
|
556
|
+
-webkit-box-orient: vertical;
|
|
557
|
+
-webkit-line-clamp: ${enabledFieldsCount >= 5 ? 1 : 2};
|
|
558
|
+
margin-bottom: ${enabledFieldsCount >= 5 ? "1px" : "1.5px"};
|
|
535
559
|
}
|
|
536
560
|
.code-wrapper {
|
|
537
561
|
display: flex;
|
|
538
562
|
flex-direction: column;
|
|
539
563
|
justify-content: center;
|
|
540
564
|
align-items: center;
|
|
541
|
-
margin:
|
|
565
|
+
margin: ${enabledFieldsCount >= 5 ? "1px 0" : "1.5px 0"};
|
|
542
566
|
width: 100%;
|
|
543
567
|
}
|
|
544
568
|
.barcode-svg-box {
|
|
@@ -860,10 +884,14 @@ var styles = {
|
|
|
860
884
|
dynamicText: {
|
|
861
885
|
fontSize: 13,
|
|
862
886
|
color: "#111",
|
|
863
|
-
lineHeight: 1.
|
|
887
|
+
lineHeight: 1.2,
|
|
864
888
|
marginBottom: 2,
|
|
865
889
|
wordBreak: "break-word",
|
|
866
|
-
|
|
890
|
+
overflow: "hidden",
|
|
891
|
+
textOverflow: "ellipsis",
|
|
892
|
+
display: "-webkit-box",
|
|
893
|
+
WebkitBoxOrient: "vertical",
|
|
894
|
+
WebkitLineClamp: 2
|
|
867
895
|
}
|
|
868
896
|
};
|
|
869
897
|
var preview_print_default = PreviewPrint;
|
|
@@ -945,7 +973,7 @@ var SettingPrint = (props) => {
|
|
|
945
973
|
italic: false,
|
|
946
974
|
underline: false,
|
|
947
975
|
color: "#000000",
|
|
948
|
-
fontSize:
|
|
976
|
+
fontSize: void 0,
|
|
949
977
|
offsetX: 0,
|
|
950
978
|
prefix: fieldTemplate.prefix,
|
|
951
979
|
customValue: fieldTemplate.customValue || "N\u1ED9i dung t\xF9y ch\u1EC9nh"
|