@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.
@@ -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
- base = PAPER_PRESETS[t.paperSize] || PAPER_PRESETS["A4"];
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,