@worm-vue3-print/core 1.2.2 → 1.3.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/README.md +24 -7
- package/dist/browser/index.cjs +2025 -259
- package/dist/browser/index.d.cts +79 -6
- package/dist/browser/index.d.ts +79 -6
- package/dist/browser/index.js +283 -128
- package/dist/{chunk-HLCZHPUF.js → chunk-V4A5623C.js} +1 -1
- package/dist/chunk-VFEURLAZ.js +3579 -0
- package/dist/designer/index.cjs +233 -11
- package/dist/designer/index.d.cts +83 -287
- package/dist/designer/index.d.ts +83 -287
- package/dist/designer/index.js +114 -24
- package/dist/dom-executor.iife.global.js +8 -0
- package/dist/driver-CsWkGK4a.d.cts +932 -0
- package/dist/driver-CsWkGK4a.d.ts +932 -0
- package/dist/index.cjs +1935 -120
- package/dist/index.d.cts +355 -6
- package/dist/index.d.ts +355 -6
- package/dist/index.js +164 -4
- package/dist/node/index.cjs +41 -0
- package/dist/node/index.d.cts +6 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.js +10 -0
- package/dist/ports-B63x7kCX.d.ts +102 -0
- package/dist/ports-q934kIC7.d.cts +102 -0
- package/package.json +8 -2
- package/dist/chunk-JZIVNXZ7.js +0 -1777
- package/dist/types-BGBAbQD5.d.cts +0 -184
- package/dist/types-BGBAbQD5.d.ts +0 -184
package/dist/designer/index.cjs
CHANGED
|
@@ -20,13 +20,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/designer/index.ts
|
|
21
21
|
var designer_exports = {};
|
|
22
22
|
__export(designer_exports, {
|
|
23
|
+
BARCODE_BAR_HEIGHT_MODULES: () => BARCODE_BAR_HEIGHT_MODULES,
|
|
24
|
+
BARCODE_MARGIN_BOTTOM_MODULES: () => BARCODE_MARGIN_BOTTOM_MODULES,
|
|
25
|
+
BARCODE_MODULE_WIDTH_MM: () => BARCODE_MODULE_WIDTH_MM,
|
|
26
|
+
BARCODE_QUIET_ZONE_MODULES: () => BARCODE_QUIET_ZONE_MODULES,
|
|
27
|
+
BARCODE_TEXT_FONT_SIZE_MODULES: () => BARCODE_TEXT_FONT_SIZE_MODULES,
|
|
23
28
|
DEFAULT_DEMO_DATA: () => DEFAULT_DEMO_DATA,
|
|
29
|
+
DEFAULT_SHRINK_MIN_FONT_SIZE_PT: () => DEFAULT_SHRINK_MIN_FONT_SIZE_PT,
|
|
24
30
|
ELEMENT_BINDING_REGISTRY: () => ELEMENT_BINDING_REGISTRY,
|
|
25
31
|
EXTENDED_FUNCTIONS: () => EXTENDED_FUNCTIONS,
|
|
26
32
|
FIT_SCALE_MIN_PERCENT: () => FIT_SCALE_MIN_PERCENT,
|
|
27
33
|
GHOST_BORDER_CSS: () => GHOST_BORDER_CSS,
|
|
34
|
+
LABEL_PAPER_GROUP: () => LABEL_PAPER_GROUP,
|
|
28
35
|
MIN_COL_WIDTH_MM: () => MIN_COL_WIDTH_MM,
|
|
29
36
|
MIN_SCALE_PERCENT: () => MIN_SCALE_PERCENT,
|
|
37
|
+
MIN_SHRINK_FONT_SIZE_PT: () => MIN_SHRINK_FONT_SIZE_PT,
|
|
38
|
+
MM_PER_INCH: () => MM_PER_INCH,
|
|
30
39
|
PAPER_PRESETS: () => PAPER_PRESETS,
|
|
31
40
|
PRESET_COLORS: () => PRESET_COLORS,
|
|
32
41
|
PROPERTY_REGISTRY: () => PROPERTY_REGISTRY,
|
|
@@ -34,9 +43,15 @@ __export(designer_exports, {
|
|
|
34
43
|
RULER_THICKNESS: () => RULER_THICKNESS,
|
|
35
44
|
ZONE_ALLOWED_TYPES: () => ZONE_ALLOWED_TYPES,
|
|
36
45
|
applyBorderPreset: () => applyBorderPreset,
|
|
46
|
+
barcodeAvailableBoxMm: () => barcodeAvailableBoxMm,
|
|
47
|
+
barcodePreferredModuleWidthMm: () => barcodePreferredModuleWidthMm,
|
|
48
|
+
barcodeUnitsPerModule: () => barcodeUnitsPerModule,
|
|
37
49
|
buildRulerTicks: () => buildRulerTicks,
|
|
38
50
|
calcResizeRect: () => calcResizeRect,
|
|
39
51
|
canMergeReason: () => canMergeReason,
|
|
52
|
+
cellFitCapMm: () => cellFitCapMm,
|
|
53
|
+
cellFitKey: () => cellFitKey,
|
|
54
|
+
cellFitWidthMm: () => cellFitWidthMm,
|
|
40
55
|
chooseMajorStepMM: () => chooseMajorStepMM,
|
|
41
56
|
clampResizedColumnWidth: () => clampResizedColumnWidth,
|
|
42
57
|
clampScalePercent: () => clampScalePercent,
|
|
@@ -55,6 +70,7 @@ __export(designer_exports, {
|
|
|
55
70
|
filterGroups: () => filterGroups,
|
|
56
71
|
finalizeElementZone: () => finalizeElementZone,
|
|
57
72
|
findMainCell: () => findMainCell,
|
|
73
|
+
floorFontSize: () => floorFontSize,
|
|
58
74
|
generateGroupId: () => generateGroupId,
|
|
59
75
|
generateId: () => generateId,
|
|
60
76
|
getDemoData: () => getDemoData,
|
|
@@ -67,6 +83,9 @@ __export(designer_exports, {
|
|
|
67
83
|
groupFields: () => groupFields,
|
|
68
84
|
insertCol: () => insertCol,
|
|
69
85
|
insertRow: () => insertRow,
|
|
86
|
+
isContinuousPaperSize: () => isContinuousPaperSize,
|
|
87
|
+
isLabelPaperSize: () => isLabelPaperSize,
|
|
88
|
+
labelPaperDefaults: () => labelPaperDefaults,
|
|
70
89
|
matchKeywords: () => matchKeywords,
|
|
71
90
|
mergeCells: () => mergeCells,
|
|
72
91
|
minorStepMM: () => minorStepMM,
|
|
@@ -74,11 +93,17 @@ __export(designer_exports, {
|
|
|
74
93
|
nextWheelScale: () => nextWheelScale,
|
|
75
94
|
normalizeSelection: () => normalizeSelection,
|
|
76
95
|
normalizeTemplateUnits: () => normalizeTemplateUnits,
|
|
96
|
+
parseCellFitKey: () => parseCellFitKey,
|
|
77
97
|
ptToMm: () => ptToMm,
|
|
78
98
|
pxToMm: () => pxToMm,
|
|
79
99
|
resolveBarcodeDesignValue: () => resolveBarcodeDesignValue,
|
|
100
|
+
resolveBarcodeSize: () => resolveBarcodeSize,
|
|
80
101
|
resolveCellBorderCss: () => resolveCellBorderCss,
|
|
102
|
+
resolveCellTextFit: () => resolveCellTextFit,
|
|
103
|
+
resolveElementTextFit: () => resolveElementTextFit,
|
|
104
|
+
resolveShrinkMinFontSize: () => resolveShrinkMinFontSize,
|
|
81
105
|
resolveTextBinding: () => resolveTextBinding,
|
|
106
|
+
roundFontSize: () => roundFontSize,
|
|
82
107
|
safeEval: () => safeEval2,
|
|
83
108
|
searchProperties: () => searchProperties,
|
|
84
109
|
setRowType: () => setRowType,
|
|
@@ -104,6 +129,122 @@ function mmToPx(mm2) {
|
|
|
104
129
|
return mm2 * (96 / 25.4);
|
|
105
130
|
}
|
|
106
131
|
|
|
132
|
+
// src/render/text-fit.ts
|
|
133
|
+
var DEFAULT_SHRINK_MIN_FONT_SIZE_PT = 6;
|
|
134
|
+
var MIN_SHRINK_FONT_SIZE_PT = 1;
|
|
135
|
+
var VALID_FITS = ["clip", "shrink", "autoHeight"];
|
|
136
|
+
function normalizeFit(value) {
|
|
137
|
+
return typeof value === "string" && VALID_FITS.includes(value) ? value : void 0;
|
|
138
|
+
}
|
|
139
|
+
var ELEMENT_DEFAULT_FIT = {
|
|
140
|
+
text: "clip",
|
|
141
|
+
longText: "autoHeight"
|
|
142
|
+
};
|
|
143
|
+
function resolveElementTextFit(type, opts) {
|
|
144
|
+
return normalizeFit(opts?.textFit) ?? ELEMENT_DEFAULT_FIT[type] ?? "clip";
|
|
145
|
+
}
|
|
146
|
+
function resolveCellTextFit(cell) {
|
|
147
|
+
return normalizeFit(cell?.textFit) ?? (cell?.wordWrap === false ? "clip" : "autoHeight");
|
|
148
|
+
}
|
|
149
|
+
function resolveShrinkMinFontSize(pt) {
|
|
150
|
+
if (typeof pt !== "number" || !Number.isFinite(pt) || pt <= 0) return DEFAULT_SHRINK_MIN_FONT_SIZE_PT;
|
|
151
|
+
return Math.max(pt, MIN_SHRINK_FONT_SIZE_PT);
|
|
152
|
+
}
|
|
153
|
+
function roundFontSize(pt) {
|
|
154
|
+
return Math.round(pt * 100) / 100;
|
|
155
|
+
}
|
|
156
|
+
function floorFontSize(pt) {
|
|
157
|
+
return Math.floor(pt * 100) / 100;
|
|
158
|
+
}
|
|
159
|
+
function cellFitKey(elementId, kind, rowIndex, colIndex) {
|
|
160
|
+
return `${elementId}#${kind}#${rowIndex}:${colIndex}`;
|
|
161
|
+
}
|
|
162
|
+
function parseCellFitKey(key) {
|
|
163
|
+
const first = key.indexOf("#");
|
|
164
|
+
if (first < 0) return void 0;
|
|
165
|
+
const last = key.lastIndexOf("#");
|
|
166
|
+
const kind = key.slice(first + 1, last);
|
|
167
|
+
if (kind !== "b" && kind !== "st" && kind !== "sm") return void 0;
|
|
168
|
+
const [rowIndex, colIndex] = key.slice(last + 1).split(":").map(Number);
|
|
169
|
+
if (!Number.isFinite(rowIndex) || !Number.isFinite(colIndex)) return void 0;
|
|
170
|
+
return { elementId: key.slice(0, first), kind, rowIndex, colIndex };
|
|
171
|
+
}
|
|
172
|
+
function cellFitWidthMm(colWidths, colIndex, cell, defaultPadding = 1) {
|
|
173
|
+
const span = Math.max(cell?.colspan ?? 1, 1);
|
|
174
|
+
let width = 0;
|
|
175
|
+
for (let i = 0; i < span; i++) {
|
|
176
|
+
width += colWidths[colIndex + i] ?? 0;
|
|
177
|
+
}
|
|
178
|
+
if (width <= 0) return 0;
|
|
179
|
+
const padding = cell?.padding ?? defaultPadding;
|
|
180
|
+
const borderMm = (ptToMm(cell?.borders?.left?.width ?? 0) + ptToMm(cell?.borders?.right?.width ?? 0)) / 2;
|
|
181
|
+
return Math.max(width - padding * 2 - borderMm, 0.5);
|
|
182
|
+
}
|
|
183
|
+
function cellFitCapMm(rows, rowIndex, cell, defaultPadding = 1) {
|
|
184
|
+
const span = Math.max(cell?.rowspan ?? 1, 1);
|
|
185
|
+
let height = 0;
|
|
186
|
+
for (let i = 0; i < span; i++) {
|
|
187
|
+
height += rows[rowIndex + i]?.height ?? 8;
|
|
188
|
+
}
|
|
189
|
+
const padding = cell?.padding ?? defaultPadding;
|
|
190
|
+
const borderMm = (ptToMm(cell?.borders?.top?.width ?? 0) + ptToMm(cell?.borders?.bottom?.width ?? 0)) / 2;
|
|
191
|
+
return Math.max(height - padding * 2 - borderMm, 0.5);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// src/render/barcode-dot.ts
|
|
195
|
+
var MM_PER_INCH = 25.4;
|
|
196
|
+
var BARCODE_QUIET_ZONE_MODULES = 10;
|
|
197
|
+
var BARCODE_BAR_HEIGHT_MODULES = 30;
|
|
198
|
+
var BARCODE_TEXT_FONT_SIZE_MODULES = 10;
|
|
199
|
+
var BARCODE_MARGIN_BOTTOM_MODULES = 2;
|
|
200
|
+
var BARCODE_MODULE_WIDTH_MM = 0.25;
|
|
201
|
+
function barcodeUnitsPerModule(barWidth) {
|
|
202
|
+
const raw = typeof barWidth === "number" && Number.isFinite(barWidth) ? barWidth : 2;
|
|
203
|
+
return Math.max(1, raw / 2);
|
|
204
|
+
}
|
|
205
|
+
function barcodePreferredModuleWidthMm(barWidth) {
|
|
206
|
+
return barcodeUnitsPerModule(barWidth) * BARCODE_MODULE_WIDTH_MM;
|
|
207
|
+
}
|
|
208
|
+
function barcodeAvailableBoxMm(boxMm, maxMm) {
|
|
209
|
+
const box = typeof boxMm === "number" && boxMm > 0 ? boxMm : Number.POSITIVE_INFINITY;
|
|
210
|
+
const limit = typeof maxMm === "number" && maxMm > 0 ? Math.min(box, maxMm) : box;
|
|
211
|
+
return Number.isFinite(limit) ? limit : 0;
|
|
212
|
+
}
|
|
213
|
+
function resolveBarcodeSize(input) {
|
|
214
|
+
const unitWidth = Math.max(1, Math.ceil(input.unitWidth));
|
|
215
|
+
const unitHeight = Math.max(1, Math.ceil(input.unitHeight));
|
|
216
|
+
const preferredModuleMm = barcodePreferredModuleWidthMm(input.barWidth);
|
|
217
|
+
const maxModuleMm = Math.min(
|
|
218
|
+
input.boxWidthMm > 0 ? input.boxWidthMm / unitWidth : Number.POSITIVE_INFINITY,
|
|
219
|
+
input.boxHeightMm > 0 ? input.boxHeightMm / unitHeight : Number.POSITIVE_INFINITY
|
|
220
|
+
);
|
|
221
|
+
const dpi = input.dpi;
|
|
222
|
+
if (typeof dpi === "number" && Number.isFinite(dpi) && dpi > 0) {
|
|
223
|
+
const dotsPerMm = dpi / MM_PER_INCH;
|
|
224
|
+
const preferredDots = Math.max(1, Math.round(preferredModuleMm * dotsPerMm));
|
|
225
|
+
const maxDots = Math.floor(maxModuleMm * dotsPerMm);
|
|
226
|
+
if (maxDots >= 1) {
|
|
227
|
+
const dotsPerModule = Math.min(preferredDots, maxDots);
|
|
228
|
+
const moduleWidthMm2 = dotsPerModule / dotsPerMm;
|
|
229
|
+
return {
|
|
230
|
+
moduleWidthMm: moduleWidthMm2,
|
|
231
|
+
widthMm: unitWidth * moduleWidthMm2,
|
|
232
|
+
heightMm: unitHeight * moduleWidthMm2,
|
|
233
|
+
dotsPerModule,
|
|
234
|
+
scaledDown: dotsPerModule < preferredDots
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
const moduleWidthMm = Math.min(preferredModuleMm, maxModuleMm);
|
|
239
|
+
return {
|
|
240
|
+
moduleWidthMm,
|
|
241
|
+
widthMm: unitWidth * moduleWidthMm,
|
|
242
|
+
heightMm: unitHeight * moduleWidthMm,
|
|
243
|
+
dotsPerModule: null,
|
|
244
|
+
scaledDown: moduleWidthMm < preferredModuleMm
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
|
|
107
248
|
// src/designer/utils/scale.ts
|
|
108
249
|
var MIN_SCALE_PERCENT = 25;
|
|
109
250
|
var FIT_SCALE_MIN_PERCENT = 5;
|
|
@@ -151,24 +292,55 @@ function normalizeTemplateUnits(data) {
|
|
|
151
292
|
}
|
|
152
293
|
|
|
153
294
|
// src/designer/utils/default-config.ts
|
|
295
|
+
var LABEL_PAPER_GROUP = "\u6807\u7B7E\u7EB8";
|
|
154
296
|
var PAPER_PRESETS = {
|
|
155
|
-
A4: { width: 210, height: 297 },
|
|
156
|
-
A3: { width: 297, height: 420 },
|
|
157
|
-
A5: { width: 148, height: 210 },
|
|
158
|
-
Letter: { width: 216, height: 279 },
|
|
159
|
-
Legal: { width: 216, height: 356 }
|
|
297
|
+
A4: { width: 210, height: 297, label: "A4 210\xD7297mm", group: "\u5E38\u7528\u7EB8\u5F20" },
|
|
298
|
+
A3: { width: 297, height: 420, label: "A3 297\xD7420mm", group: "\u5E38\u7528\u7EB8\u5F20" },
|
|
299
|
+
A5: { width: 148, height: 210, label: "A5 148\xD7210mm", group: "\u5E38\u7528\u7EB8\u5F20" },
|
|
300
|
+
Letter: { width: 216, height: 279, label: "Letter 216\xD7279mm", group: "\u5E38\u7528\u7EB8\u5F20" },
|
|
301
|
+
Legal: { width: 216, height: 356, label: "Legal 216\xD7356mm", group: "\u5E38\u7528\u7EB8\u5F20" },
|
|
302
|
+
// 针式打印纸(241 系列等分):11 英寸整张 279.4mm 按等分取整
|
|
303
|
+
DOT_FULL: { width: 241, height: 279.4, label: "\u5168\u7B49\u5206 241\xD7279.4mm", group: "\u9488\u5F0F\u6253\u5370\u7EB8" },
|
|
304
|
+
DOT_HALF: { width: 241, height: 139.7, label: "\u4E8C\u7B49\u5206 241\xD7139.7mm", group: "\u9488\u5F0F\u6253\u5370\u7EB8" },
|
|
305
|
+
DOT_THIRD: { width: 241, height: 93.1, label: "\u4E09\u7B49\u5206 241\xD793.1mm", group: "\u9488\u5F0F\u6253\u5370\u7EB8" },
|
|
306
|
+
// 标签纸
|
|
307
|
+
LABEL_80X60: { width: 80, height: 60, label: "80\xD760mm", group: LABEL_PAPER_GROUP },
|
|
308
|
+
LABEL_60X40: { width: 60, height: 40, label: "60\xD740mm", group: LABEL_PAPER_GROUP },
|
|
309
|
+
LABEL_40X30: { width: 40, height: 30, label: "40\xD730mm", group: LABEL_PAPER_GROUP },
|
|
310
|
+
// 小票纸(热敏卷纸):高度仅为设计画布高度,出纸按内容推导
|
|
311
|
+
THERMAL_57: { width: 57, height: 297, continuous: true, label: "57mm", group: "\u5C0F\u7968\u7EB8" },
|
|
312
|
+
THERMAL_80: { width: 80, height: 297, continuous: true, label: "80mm", group: "\u5C0F\u7968\u7EB8" },
|
|
313
|
+
THERMAL_110: { width: 110, height: 297, continuous: true, label: "110mm", group: "\u5C0F\u7968\u7EB8" },
|
|
314
|
+
// 连续纸:默认 80mm 热敏;高度仅为设计画布高度,出纸按内容推导
|
|
315
|
+
CONTINUOUS: { width: 80, height: 297, continuous: true, label: "\u8FDE\u7EED\u7EB8\uFF08\u81EA\u5B9A\u4E49\u5BBD\u5EA6\uFF09", group: "\u8FDE\u7EED\u7EB8" }
|
|
160
316
|
};
|
|
317
|
+
function isContinuousPaperSize(paperSize) {
|
|
318
|
+
return !!paperSize && PAPER_PRESETS[paperSize]?.continuous === true;
|
|
319
|
+
}
|
|
320
|
+
function isLabelPaperSize(paperSize) {
|
|
321
|
+
return !!paperSize && PAPER_PRESETS[paperSize]?.group === LABEL_PAPER_GROUP;
|
|
322
|
+
}
|
|
323
|
+
function labelPaperDefaults(t) {
|
|
324
|
+
return {
|
|
325
|
+
margins: { top: 0, right: 0, bottom: 0, left: 0 },
|
|
326
|
+
header: { ...t.header, height: 0 },
|
|
327
|
+
footer: { ...t.footer, height: 0 }
|
|
328
|
+
};
|
|
329
|
+
}
|
|
161
330
|
function getPaperDimensions(t) {
|
|
331
|
+
const continuous = isContinuousPaperSize(t.paperSize);
|
|
162
332
|
let base;
|
|
163
|
-
if (t.paperSize === "CUSTOM") {
|
|
333
|
+
if (t.paperSize === "CUSTOM" || continuous) {
|
|
334
|
+
const preset = PAPER_PRESETS[t.paperSize];
|
|
164
335
|
base = {
|
|
165
|
-
width: t.customWidth ?? 210,
|
|
166
|
-
height: t.customHeight ?? 297
|
|
336
|
+
width: t.customWidth ?? preset?.width ?? 210,
|
|
337
|
+
height: t.customHeight ?? preset?.height ?? 297
|
|
167
338
|
};
|
|
168
339
|
} else {
|
|
169
|
-
|
|
340
|
+
const preset = PAPER_PRESETS[t.paperSize] || PAPER_PRESETS["A4"];
|
|
341
|
+
base = { width: preset.width, height: preset.height };
|
|
170
342
|
}
|
|
171
|
-
return t.orientation === "landscape" ? { width: base.height, height: base.width } : base;
|
|
343
|
+
return t.orientation === "landscape" && !continuous ? { width: base.height, height: base.width } : base;
|
|
172
344
|
}
|
|
173
345
|
|
|
174
346
|
// src/designer/utils/table-matrix.ts
|
|
@@ -348,6 +520,7 @@ function copyCellStyle(src, dst) {
|
|
|
348
520
|
dst.align = src.align;
|
|
349
521
|
dst.valign = src.valign;
|
|
350
522
|
dst.fontSize = src.fontSize;
|
|
523
|
+
dst.fontFamily = src.fontFamily;
|
|
351
524
|
dst.fontWeight = src.fontWeight;
|
|
352
525
|
dst.color = src.color;
|
|
353
526
|
dst.backgroundColor = src.backgroundColor;
|
|
@@ -771,6 +944,7 @@ var PROPERTY_REGISTRY = [
|
|
|
771
944
|
group: "appearance",
|
|
772
945
|
groupLabel: "\u5916\u89C2",
|
|
773
946
|
items: [
|
|
947
|
+
{ key: "ap-font-family", keywords: ["\u5B57\u4F53", "\u5B57\u4F53\u540D", "\u5B57\u4F53\u65CF", "fontfamily"] },
|
|
774
948
|
{ key: "ap-font-size", keywords: ["\u5B57\u4F53\u5927\u5C0F", "fontsize", "\u5B57\u53F7"] },
|
|
775
949
|
{ key: "ap-font-weight", keywords: ["\u5B57\u4F53\u7C97\u7EC6", "\u7C97\u4F53", "bold"] },
|
|
776
950
|
{ key: "ap-align", keywords: ["\u5BF9\u9F50", "align"] },
|
|
@@ -778,7 +952,25 @@ var PROPERTY_REGISTRY = [
|
|
|
778
952
|
{ key: "ap-color", keywords: ["\u989C\u8272", "color"] },
|
|
779
953
|
{ key: "ap-bg-color", keywords: ["\u80CC\u666F\u8272", "background"] },
|
|
780
954
|
{ key: "ap-line-height", keywords: ["\u884C\u9AD8", "lineheight"] },
|
|
781
|
-
{ key: "ap-letter-spacing", keywords: ["\u5B57\u95F4\u8DDD", "letterspacing"] }
|
|
955
|
+
{ key: "ap-letter-spacing", keywords: ["\u5B57\u95F4\u8DDD", "letterspacing"] },
|
|
956
|
+
{ key: "ap-text-fit", keywords: ["\u6EA2\u51FA", "\u6EA2\u51FA\u663E\u793A", "\u622A\u65AD", "\u81EA\u52A8\u7F29\u5C0F", "\u81EA\u9002\u5E94\u884C\u9AD8", "textfit", "overflow"] },
|
|
957
|
+
{ key: "ap-shrink-min", keywords: ["\u6700\u5C0F\u5B57\u53F7", "\u7F29\u653E\u4E0B\u9650", "shrinkminfontsize"] },
|
|
958
|
+
{ key: "ap-word-wrap", keywords: ["\u81EA\u52A8\u6362\u884C", "\u4E0D\u6362\u884C", "wordwrap"] }
|
|
959
|
+
]
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
group: "code",
|
|
963
|
+
groupLabel: "\u6761\u7801\u8BBE\u7F6E",
|
|
964
|
+
items: [
|
|
965
|
+
{ key: "cd-type", keywords: ["\u7801\u5236", "\u6761\u7801\u7C7B\u578B", "\u6761\u5F62\u7801\u7C7B\u578B", "barcodetype", "code128", "ean13", "code39", "itf14"] },
|
|
966
|
+
{ key: "cd-dpi", keywords: ["\u6253\u5370\u673A\u5206\u8FA8\u7387", "dpi", "\u6253\u5370\u70B9", "\u70B9\u9635\u5BF9\u9F50", "203", "300"] },
|
|
967
|
+
{ key: "cd-bar-width", keywords: ["\u6761\u5BBD", "\u6761\u7C97\u7EC6", "barwidth", "\u6A21\u5757\u5BBD"] },
|
|
968
|
+
{ key: "cd-show-text", keywords: ["\u663E\u793A\u6587\u672C", "\u6761\u7801\u6587\u672C", "\u663E\u793A\u6570\u5B57"] },
|
|
969
|
+
{ key: "cd-font-size", keywords: ["\u6761\u7801\u5B57\u53F7", "\u6587\u672C\u5B57\u53F7"] },
|
|
970
|
+
{ key: "cd-ec-level", keywords: ["\u7EA0\u9519\u7EA7\u522B", "\u5BB9\u9519", "qrcodelevel"] },
|
|
971
|
+
{ key: "cd-fit", keywords: ["\u7F29\u653E\u6A21\u5F0F", "\u62C9\u4F38", "\u7B49\u6BD4", "fit", "contain", "cover"] },
|
|
972
|
+
{ key: "cd-max-width", keywords: ["\u6700\u5927\u5BBD\u5EA6", "\u6700\u5927\u5BBD", "maxwidth"] },
|
|
973
|
+
{ key: "cd-max-height", keywords: ["\u6700\u5927\u9AD8\u5EA6", "\u6700\u5927\u9AD8", "maxheight"] }
|
|
782
974
|
]
|
|
783
975
|
},
|
|
784
976
|
{
|
|
@@ -1737,6 +1929,10 @@ for (const [name, fn] of Object.entries(FORMAT_FUNCTIONS)) {
|
|
|
1737
1929
|
engine.registerFunction(name, fn);
|
|
1738
1930
|
}
|
|
1739
1931
|
|
|
1932
|
+
// src/render/watermark.ts
|
|
1933
|
+
var PX_PER_MM = 96 / 25.4;
|
|
1934
|
+
var MM_PER_PX = 25.4 / 96;
|
|
1935
|
+
|
|
1740
1936
|
// src/index.ts
|
|
1741
1937
|
var TemplateEngine = class {
|
|
1742
1938
|
constructor(options) {
|
|
@@ -2274,6 +2470,7 @@ function useResize(options) {
|
|
|
2274
2470
|
let startRect = { left: 0, top: 0, width: 0, height: 0 };
|
|
2275
2471
|
let activePoint = null;
|
|
2276
2472
|
function startResize(point, e) {
|
|
2473
|
+
if (e.button !== 0) return;
|
|
2277
2474
|
activePoint = point;
|
|
2278
2475
|
startX = e.clientX;
|
|
2279
2476
|
startY = e.clientY;
|
|
@@ -2346,13 +2543,22 @@ function useBindingDisplay() {
|
|
|
2346
2543
|
}
|
|
2347
2544
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2348
2545
|
0 && (module.exports = {
|
|
2546
|
+
BARCODE_BAR_HEIGHT_MODULES,
|
|
2547
|
+
BARCODE_MARGIN_BOTTOM_MODULES,
|
|
2548
|
+
BARCODE_MODULE_WIDTH_MM,
|
|
2549
|
+
BARCODE_QUIET_ZONE_MODULES,
|
|
2550
|
+
BARCODE_TEXT_FONT_SIZE_MODULES,
|
|
2349
2551
|
DEFAULT_DEMO_DATA,
|
|
2552
|
+
DEFAULT_SHRINK_MIN_FONT_SIZE_PT,
|
|
2350
2553
|
ELEMENT_BINDING_REGISTRY,
|
|
2351
2554
|
EXTENDED_FUNCTIONS,
|
|
2352
2555
|
FIT_SCALE_MIN_PERCENT,
|
|
2353
2556
|
GHOST_BORDER_CSS,
|
|
2557
|
+
LABEL_PAPER_GROUP,
|
|
2354
2558
|
MIN_COL_WIDTH_MM,
|
|
2355
2559
|
MIN_SCALE_PERCENT,
|
|
2560
|
+
MIN_SHRINK_FONT_SIZE_PT,
|
|
2561
|
+
MM_PER_INCH,
|
|
2356
2562
|
PAPER_PRESETS,
|
|
2357
2563
|
PRESET_COLORS,
|
|
2358
2564
|
PROPERTY_REGISTRY,
|
|
@@ -2360,9 +2566,15 @@ function useBindingDisplay() {
|
|
|
2360
2566
|
RULER_THICKNESS,
|
|
2361
2567
|
ZONE_ALLOWED_TYPES,
|
|
2362
2568
|
applyBorderPreset,
|
|
2569
|
+
barcodeAvailableBoxMm,
|
|
2570
|
+
barcodePreferredModuleWidthMm,
|
|
2571
|
+
barcodeUnitsPerModule,
|
|
2363
2572
|
buildRulerTicks,
|
|
2364
2573
|
calcResizeRect,
|
|
2365
2574
|
canMergeReason,
|
|
2575
|
+
cellFitCapMm,
|
|
2576
|
+
cellFitKey,
|
|
2577
|
+
cellFitWidthMm,
|
|
2366
2578
|
chooseMajorStepMM,
|
|
2367
2579
|
clampResizedColumnWidth,
|
|
2368
2580
|
clampScalePercent,
|
|
@@ -2381,6 +2593,7 @@ function useBindingDisplay() {
|
|
|
2381
2593
|
filterGroups,
|
|
2382
2594
|
finalizeElementZone,
|
|
2383
2595
|
findMainCell,
|
|
2596
|
+
floorFontSize,
|
|
2384
2597
|
generateGroupId,
|
|
2385
2598
|
generateId,
|
|
2386
2599
|
getDemoData,
|
|
@@ -2393,6 +2606,9 @@ function useBindingDisplay() {
|
|
|
2393
2606
|
groupFields,
|
|
2394
2607
|
insertCol,
|
|
2395
2608
|
insertRow,
|
|
2609
|
+
isContinuousPaperSize,
|
|
2610
|
+
isLabelPaperSize,
|
|
2611
|
+
labelPaperDefaults,
|
|
2396
2612
|
matchKeywords,
|
|
2397
2613
|
mergeCells,
|
|
2398
2614
|
minorStepMM,
|
|
@@ -2400,11 +2616,17 @@ function useBindingDisplay() {
|
|
|
2400
2616
|
nextWheelScale,
|
|
2401
2617
|
normalizeSelection,
|
|
2402
2618
|
normalizeTemplateUnits,
|
|
2619
|
+
parseCellFitKey,
|
|
2403
2620
|
ptToMm,
|
|
2404
2621
|
pxToMm,
|
|
2405
2622
|
resolveBarcodeDesignValue,
|
|
2623
|
+
resolveBarcodeSize,
|
|
2406
2624
|
resolveCellBorderCss,
|
|
2625
|
+
resolveCellTextFit,
|
|
2626
|
+
resolveElementTextFit,
|
|
2627
|
+
resolveShrinkMinFontSize,
|
|
2407
2628
|
resolveTextBinding,
|
|
2629
|
+
roundFontSize,
|
|
2408
2630
|
safeEval,
|
|
2409
2631
|
searchProperties,
|
|
2410
2632
|
setRowType,
|