vg-print-vue2 1.0.308 → 1.0.310

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.
@@ -223,6 +223,10 @@ const cn$1 = {
223
223
  "行/列合并函数": "行/列合并函数",
224
224
  "跨页合并是否清除": "跨页合并是否清除",
225
225
  "表格脚函数": "表格脚函数",
226
+ "表格头部体外函数": "表格头部体外函数",
227
+ "表格尾部体外函数": "表格尾部体外函数",
228
+ "表格头部体外显示": "表格头部体外显示",
229
+ "表格尾部体外显示": "表格尾部体外显示",
226
230
  "分组字段函数": "分组字段函数",
227
231
  "分组头格式化函数": "分组头格式化函数",
228
232
  "分组头信息": "分组头信息",
@@ -682,7 +686,11 @@ const cn_tw = {
682
686
  "每页页尾显示": "每頁頁尾顯示",
683
687
  "不跟随": "不跟隨",
684
688
  "内容区左上": "內容區左上",
685
- "内容区左下(贴底)": "內容區左下(貼底)"
689
+ "内容区左下(贴底)": "內容區左下(貼底)",
690
+ "表格头部体外函数": "表格頭部體外函數",
691
+ "表格尾部体外函数": "表格尾部體外函數",
692
+ "表格头部体外显示": "表格頭部體外顯示",
693
+ "表格尾部体外显示": "表格尾部體外顯示"
686
694
  };
687
695
  const __vite_glob_0_1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
688
696
  __proto__: null,
@@ -918,6 +926,10 @@ const en$1 = {
918
926
  "行/列合并函数": "Row/Column Merge Function",
919
927
  "跨页合并是否清除": "Clear Page Break Merge",
920
928
  "表格脚函数": "Table Footer Function",
929
+ "表格头部体外函数": "Table Outside Header Function",
930
+ "表格尾部体外函数": "Table Outside Footer Function",
931
+ "表格头部体外显示": "Outside Header Display",
932
+ "表格尾部体外显示": "Outside Footer Display",
921
933
  "分组字段函数": "Group Field Function",
922
934
  "分组头格式化函数": "Group Header Format Function",
923
935
  "分组头信息": "Group Header Info",
@@ -1378,7 +1390,11 @@ const ja = {
1378
1390
  "每页页尾显示": "各ページのフッター",
1379
1391
  "不跟随": "追従しない",
1380
1392
  "内容区左上": "内容領域 左上",
1381
- "内容区左下(贴底)": "内容領域 左下(下端)"
1393
+ "内容区左下(贴底)": "内容領域 左下(下端)",
1394
+ "表格头部体外函数": "表外ヘッダー関数",
1395
+ "表格尾部体外函数": "表外フッター関数",
1396
+ "表格头部体外显示": "表外ヘッダー表示",
1397
+ "表格尾部体外显示": "表外フッター表示"
1382
1398
  };
1383
1399
  const __vite_glob_0_3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1384
1400
  __proto__: null,
@@ -52253,14 +52269,25 @@ var hiprint$3 = function(t4) {
52253
52269
  this.updateSizeAndPositionOptions(o2, i3, n3, e2);
52254
52270
  }, BasePrintElement.prototype.getOrderIndex = function() {
52255
52271
  return this.options.getTop();
52272
+ }, BasePrintElement.prototype.parseNumberOption = function(v2) {
52273
+ if (null == v2 || "" === v2)
52274
+ return 0;
52275
+ var n3 = "number" == typeof v2 ? v2 : parseFloat(v2.toString());
52276
+ return Number.isFinite(n3) && n3 > 0 ? n3 : 0;
52277
+ }, BasePrintElement.prototype.getDiffPaperFooter = function(t4) {
52278
+ var e2 = t4 && Object.prototype.hasOwnProperty.call(t4, "diffPaperFooter") ? t4.diffPaperFooter : void 0;
52279
+ return void 0 === e2 && _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__ && _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a && _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance && Object.prototype.hasOwnProperty.call(_HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance, "diffPaperFooter") && (e2 = _HiPrintConfig__WEBPACK_IMPORTED_MODULE_1__.a.instance.diffPaperFooter), this.parseNumberOption(e2);
52280
+ }, BasePrintElement.prototype.getBaseElementPaperFooter = function(t4, e2) {
52281
+ var n3 = t4.getPaperFooter(e2), i3 = this.getDiffPaperFooter(t4);
52282
+ return i3 > 0 && t4 && Number.isFinite(t4.height) ? Math.min(t4.height, n3 + i3) : n3;
52256
52283
  }, BasePrintElement.prototype.getHtml = function(t4, e2, n3) {
52257
52284
  var i3 = 0;
52258
52285
  this.setCurrenttemplateData(e2);
52259
- var o2 = [], r2 = this.getBeginPrintTopInPaperByReferenceElement(t4), a2 = t4.getPaperFooter(i3);
52286
+ var o2 = [], r2 = this.getBeginPrintTopInPaperByReferenceElement(t4), a2 = this.getBaseElementPaperFooter(t4, i3);
52260
52287
  this.isHeaderOrFooter() || this.isFixed() || r2 > a2 && "none" != t4.panelPageRule && (o2.push(new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
52261
52288
  target: void 0,
52262
52289
  printLine: void 0
52263
- })), r2 = r2 - a2 + t4.paperHeader, i3++, a2 = t4.getPaperFooter(i3));
52290
+ })), r2 = r2 - a2 + t4.paperHeader, i3++, a2 = this.getBaseElementPaperFooter(t4, i3));
52264
52291
  var p2 = this.getData(e2, t4.index), s3 = this.createTarget(this.getTitle(), p2, n3), l2 = this.getEmptyDataDisplayMode(p2);
52265
52292
  if ("collapse" == l2)
52266
52293
  return o2.push(this.buildEmptyCollapseResult(t4, r2, t4.index + i3)), o2;
@@ -52319,15 +52346,15 @@ var hiprint$3 = function(t4) {
52319
52346
  }, BasePrintElement.prototype.getHtml2 = function(t4, e2, n3) {
52320
52347
  var i3 = 0;
52321
52348
  this.setCurrenttemplateData(e2);
52322
- var o2 = [], r2 = this.getBeginPrintTopInPaperByReferenceElement(t4), a2 = t4.getPaperFooter(i3);
52349
+ var o2 = [], r2 = this.getBeginPrintTopInPaperByReferenceElement(t4), a2 = this.getBaseElementPaperFooter(t4, i3);
52323
52350
  this.isHeaderOrFooter() || this.isFixed() || ("none" != t4.panelPageRule && r2 > a2 && (o2.push(new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
52324
52351
  target: void 0,
52325
52352
  printLine: void 0
52326
52353
  // (e && r + this.options.getHeight() > a) --> 设计时拖拽元素高度超过页脚线时,导致报错问题
52327
- })), r2 = r2 - a2 + t4.paperHeader, i3++, a2 = t4.getPaperFooter(i3)), r2 <= a2 && (e2 && r2 + this.options.getHeight() > a2) && "none" != t4.panelPageRule && (o2.push(new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
52354
+ })), r2 = r2 - a2 + t4.paperHeader, i3++, a2 = this.getBaseElementPaperFooter(t4, i3)), r2 <= a2 && (e2 && r2 + this.options.getHeight() > a2) && "none" != t4.panelPageRule && (o2.push(new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_3__.a({
52328
52355
  target: void 0,
52329
52356
  printLine: void 0
52330
- })), r2 = t4.paperHeader, i3++, a2 = t4.getPaperFooter(i3)));
52357
+ })), r2 = t4.paperHeader, i3++, a2 = this.getBaseElementPaperFooter(t4, i3)));
52331
52358
  var p2 = this.getData(e2, t4.index);
52332
52359
  var s3 = this.createTarget(this.getTitle(), p2, t4.index);
52333
52360
  var l2 = this.getEmptyDataDisplayMode(p2);
@@ -53250,7 +53277,7 @@ var hiprint$3 = function(t4) {
53250
53277
  return;
53251
53278
  }
53252
53279
  target.css("text-align", align);
53253
- }, TableExcelHelper.createTableHead = function(t4, e2, options2, tableData2, printData3) {
53280
+ }, TableExcelHelper.createTableHead = function(t4, e2, options2, tableData2, printData4) {
53254
53281
  for (var n3 = TableExcelHelper.reconsitutionTableColumnTree(t4), i3 = $$i("<thead></thead>"), o2 = TableExcelHelper.getColumnsWidth(n3, e2), r2 = function r3(t5) {
53255
53282
  var e3 = $$i("<tr></tr>");
53256
53283
  n3[t5].filter(function(t6) {
@@ -53262,7 +53289,7 @@ var hiprint$3 = function(t4) {
53262
53289
  n4.text(ht2), o2[t6.id] ? (t6.hasWidth = true, t6.targetWidth = o2[t6.id], n4.attr("haswidth", "haswidth"), n4.css("width", o2[t6.id] + "pt")) : t6.hasWidth = false;
53263
53290
  var s3 = TableExcelHelper.getHeaderStyler(t6);
53264
53291
  if (s3) {
53265
- var l2 = s3(t6, options2, tableData2, printData3);
53292
+ var l2 = s3(t6, options2, tableData2, printData4);
53266
53293
  if (l2)
53267
53294
  Object.keys(l2).forEach(function(t7) {
53268
53295
  n4.css(t7, l2[t7]);
@@ -53384,7 +53411,7 @@ var hiprint$3 = function(t4) {
53384
53411
  }, TableExcelHelper.tableSummaryTitle = function(column2, title, data3) {
53385
53412
  var s3 = column2.tableSummaryTitle == void 0 || column2.tableSummaryTitle == true;
53386
53413
  return s3 ? `${title}` : data3 ? `` : `<span style="color:firebrick">${title}</span>`;
53387
- }, TableExcelHelper.createTableRow = function(t4, e2, printData3, n3, i3) {
53414
+ }, TableExcelHelper.createTableRow = function(t4, e2, printData4, n3, i3) {
53388
53415
  var h2 = this;
53389
53416
  var o2 = TableExcelHelper.reconsitutionTableColumnTree(t4), r2 = $$i("<tbody></tbody>");
53390
53417
  var isEnabled = function(v2) {
@@ -53419,20 +53446,20 @@ var hiprint$3 = function(t4) {
53419
53446
  var groupFormatter2 = h2.getGroupFormatter(n3, i3);
53420
53447
  if (groupFormatter2) {
53421
53448
  var ee2 = $$i("<tr></tr>");
53422
- ee2.append(groupFormatter2(o2.colspan, e2, printData3, t5, n3)), r2.append(ee2);
53449
+ ee2.append(groupFormatter2(o2.colspan, e2, printData4, t5, n3)), r2.append(ee2);
53423
53450
  }
53424
53451
  var groupFooterFormatter2 = h2.getGroupFooterFormatter(n3, i3);
53425
53452
  var groupData = t5;
53426
53453
  if (groupData.rows.forEach(function(t6, rowIndex2) {
53427
53454
  var si2 = groupSequenceContinueEnabled ? seqIndex2++ : rowIndex2;
53428
- var e3 = TableExcelHelper.createRowTarget(o2, t6, n3, i3, rowIndex2, groupData.rows, printData3, si2);
53455
+ var e3 = TableExcelHelper.createRowTarget(o2, t6, n3, i3, rowIndex2, groupData.rows, printData4, si2);
53429
53456
  r2.append(e3);
53430
53457
  }), groupFooterFormatter2) {
53431
53458
  var a2 = $$i("<tr></tr>");
53432
- a2.append(groupFooterFormatter2(o2.colspan, e2, printData3, t5, n3)), r2.append(a2);
53459
+ a2.append(groupFooterFormatter2(o2.colspan, e2, printData4, t5, n3)), r2.append(a2);
53433
53460
  }
53434
53461
  }) : e2.forEach(function(t5, rowIndex2) {
53435
- var row2 = TableExcelHelper.createRowTarget(o2, t5, n3, i3, rowIndex2, e2, printData3, rowIndex2);
53462
+ var row2 = TableExcelHelper.createRowTarget(o2, t5, n3, i3, rowIndex2, e2, printData4, rowIndex2);
53436
53463
  r2.append(row2);
53437
53464
  });
53438
53465
  blankRowsCount > 0 && "end" === blankRowsPosition && TableExcelHelper.appendBlankRows(r2, t4, n3);
@@ -53502,6 +53529,42 @@ var hiprint$3 = function(t4) {
53502
53529
  if ("image" == t.tableTextType) {
53503
53530
  r.html("");
53504
53531
  if (p) {
53532
+ var normalizeImageSrc = function(src2) {
53533
+ if (src2 == null)
53534
+ return "";
53535
+ src2 = String(src2).trim();
53536
+ if (!src2)
53537
+ return "";
53538
+ if (/^data:/i.test(src2))
53539
+ return src2;
53540
+ if (/^(https?:)?\/\//i.test(src2))
53541
+ return src2;
53542
+ if (/^blob:/i.test(src2) || /^file:/i.test(src2))
53543
+ return src2;
53544
+ if (src2[0] === "/" || src2.indexOf("./") === 0 || src2.indexOf("../") === 0)
53545
+ return src2;
53546
+ if (/^[A-Za-z0-9+/=_-]+$/.test(src2) && src2.length > 80) {
53547
+ var head = src2.slice(0, 10);
53548
+ var m2;
53549
+ if (head.indexOf("iVBORw0") === 0)
53550
+ m2 = "image/png";
53551
+ else if (head.indexOf("/9j/") === 0)
53552
+ m2 = "image/jpeg";
53553
+ else if (head.indexOf("R0lGOD") === 0)
53554
+ m2 = "image/gif";
53555
+ else if (head.indexOf("UklGR") === 0)
53556
+ m2 = "image/webp";
53557
+ else if (head.indexOf("Qk") === 0)
53558
+ m2 = "image/bmp";
53559
+ else if (head.indexOf("PHN2Zy") === 0)
53560
+ m2 = "image/svg+xml";
53561
+ else
53562
+ m2 = "image/png";
53563
+ return "data:" + m2 + ";base64," + src2;
53564
+ }
53565
+ return src2;
53566
+ };
53567
+ p = normalizeImageSrc(p);
53505
53568
  var imagebox = $$i('<div><img style = "max-width:100%;max-height:100%"/></div>');
53506
53569
  imagebox.find("img").attr("src", p);
53507
53570
  console.log(imagebox.find("img").css("width"));
@@ -56965,6 +57028,31 @@ var hiprint$3 = function(t4) {
56965
57028
  }, t5.prototype.destroy = function() {
56966
57029
  this.target.remove();
56967
57030
  }, t5;
57031
+ }(), diffPaperFooterOption = function() {
57032
+ function t5() {
57033
+ this.name = "diffPaperFooter";
57034
+ }
57035
+ return t5.prototype.createTarget = function() {
57036
+ return this.target = $$i(`<div class="hiprint-option-item">
57037
+ <div class="hiprint-option-item-label">
57038
+ ${i18n.__("超出页脚")}
57039
+ </div>
57040
+ <div class="hiprint-option-item-field">
57041
+ <input type="text" placeholder="${i18n.__("允许基础元素超出页脚高度pt")}" class="auto-submit">
57042
+ </div>
57043
+ </div>`), this.target;
57044
+ }, t5.prototype.getValue = function() {
57045
+ var t6 = this.target.find("input").val(), e3 = (null == t6 ? "" : t6.toString()).trim();
57046
+ if ("" === e3)
57047
+ return;
57048
+ var n4 = parseFloat(e3);
57049
+ if (!Number.isNaN(n4) && n4 >= 0)
57050
+ return n4;
57051
+ }, t5.prototype.setValue = function(t6) {
57052
+ this.target.find("input").val(t6);
57053
+ }, t5.prototype.destroy = function() {
57054
+ this.target.remove();
57055
+ }, t5;
56968
57056
  }(), S2 = function() {
56969
57057
  function t5() {
56970
57058
  this.name = "leftSpaceRemoved";
@@ -59405,6 +59493,90 @@ ${i18n.__("转大小写")}
59405
59493
  }, t5.prototype.destroy = function() {
59406
59494
  this.target.remove();
59407
59495
  }, t5;
59496
+ }(), tableBeforeFormatterOption = function() {
59497
+ function t5() {
59498
+ this.name = "tableBeforeFormatter";
59499
+ }
59500
+ return t5.prototype.createTarget = function() {
59501
+ return this.target = $$i(`<div class="hiprint-option-item">
59502
+ <div class="hiprint-option-item-label">
59503
+ ${i18n.__("表格头部体外函数")}
59504
+ </div>
59505
+ <div class="hiprint-option-item-field">
59506
+ <textarea style="height:80px;" placeholder="function(options,rows,data,pageData,meta){ return '<div></div>' }" class="auto-submit"></textarea>
59507
+ </div>
59508
+ </div>`), this.target;
59509
+ }, t5.prototype.getValue = function() {
59510
+ var t6 = this.target.find("textarea").val();
59511
+ if (t6)
59512
+ return t6;
59513
+ }, t5.prototype.setValue = function(t6) {
59514
+ this.target.find("textarea").val(t6 ? t6.toString() : null);
59515
+ }, t5.prototype.destroy = function() {
59516
+ this.target.remove();
59517
+ }, t5;
59518
+ }(), tableAfterFormatterOption = function() {
59519
+ function t5() {
59520
+ this.name = "tableAfterFormatter";
59521
+ }
59522
+ return t5.prototype.createTarget = function() {
59523
+ return this.target = $$i(`<div class="hiprint-option-item">
59524
+ <div class="hiprint-option-item-label">
59525
+ ${i18n.__("表格尾部体外函数")}
59526
+ </div>
59527
+ <div class="hiprint-option-item-field">
59528
+ <textarea style="height:80px;" placeholder="function(options,rows,data,pageData,meta){ return '<div></div>' }" class="auto-submit"></textarea>
59529
+ </div>
59530
+ </div>`), this.target;
59531
+ }, t5.prototype.getValue = function() {
59532
+ var t6 = this.target.find("textarea").val();
59533
+ if (t6)
59534
+ return t6;
59535
+ }, t5.prototype.setValue = function(t6) {
59536
+ this.target.find("textarea").val(t6 ? t6.toString() : null);
59537
+ }, t5.prototype.destroy = function() {
59538
+ this.target.remove();
59539
+ }, t5;
59540
+ }(), tableOutsideRepeatOption = function() {
59541
+ function t5(name2, label) {
59542
+ this.name = name2, this.label = label;
59543
+ }
59544
+ return t5.prototype.createTarget = function() {
59545
+ return this.target = $$i(`<div class="hiprint-option-item">
59546
+ <div class="hiprint-option-item-label">
59547
+ ${i18n.__(this.label)}
59548
+ </div>
59549
+ <div class="hiprint-option-item-field">
59550
+ <select class="auto-submit">
59551
+ <option value="" >${i18n.__("默认")}</option>
59552
+ <option value="none" >${i18n.__("不显示")}</option>
59553
+ <option value="page" >${i18n.__("每页显示")}</option>
59554
+ <option value="first" >${i18n.__("首页显示")}</option>
59555
+ <option value="last" >${i18n.__("最后显示")}</option>
59556
+ <option value="odd" >${i18n.__("奇数页")}</option>
59557
+ <option value="even" >${i18n.__("偶数页")}</option>
59558
+ </select>
59559
+ </div>
59560
+ </div>`), this.target;
59561
+ }, t5.prototype.getValue = function() {
59562
+ var t6 = this.target.find("select").val();
59563
+ if (t6)
59564
+ return t6.toString();
59565
+ }, t5.prototype.setValue = function(t6) {
59566
+ this.target.find("select").val(t6);
59567
+ }, t5.prototype.destroy = function() {
59568
+ this.target.remove();
59569
+ }, t5;
59570
+ }(), tableBeforeRepeatOption = function() {
59571
+ function t5() {
59572
+ this.name = "tableBeforeRepeat", this.label = "表格头部体外显示";
59573
+ }
59574
+ return t5.prototype.createTarget = tableOutsideRepeatOption.prototype.createTarget, t5.prototype.getValue = tableOutsideRepeatOption.prototype.getValue, t5.prototype.setValue = tableOutsideRepeatOption.prototype.setValue, t5.prototype.destroy = tableOutsideRepeatOption.prototype.destroy, t5;
59575
+ }(), tableAfterRepeatOption = function() {
59576
+ function t5() {
59577
+ this.name = "tableAfterRepeat", this.label = "表格尾部体外显示";
59578
+ }
59579
+ return t5.prototype.createTarget = tableOutsideRepeatOption.prototype.createTarget, t5.prototype.getValue = tableOutsideRepeatOption.prototype.getValue, t5.prototype.setValue = tableOutsideRepeatOption.prototype.setValue, t5.prototype.destroy = tableOutsideRepeatOption.prototype.destroy, t5;
59408
59580
  }(), groupFieldsFormatter2 = function() {
59409
59581
  function t5() {
59410
59582
  this.name = "groupFieldsFormatter";
@@ -60756,7 +60928,7 @@ ${i18n.__("转大小写")}
60756
60928
  t5.init(), t5.printElementOptionItems[e3.name] = e3;
60757
60929
  }, t5.getItem = function(e3) {
60758
60930
  return t5.init(), t5.printElementOptionItems[e3];
60759
- }, t5._printElementOptionItems = [new fontFamily2(), new r2(), new scaleOption(), new autoSizeMinOption(), new a2(), new p2(), new i3(), new s3(), new l2(), new pt2(), new u2(), new d3(), new c2(), new h2(), new f2(), new g2(), new m2(), new d22(), new c22(), new v2(), new v22(), new y2(), new b3(), new E2(), new qrCodeLevel(), new T2(), new P2(), new _2(), new w2(), new x2(), new autoField(), new autoFieldFormatter2(), new coordinate(), new widthHeight(), new C2(), new imageFit(), new O2(), new H4(), new D2(), new paperNumberContinue(), new watermarkOptions(), new I2(), new R2(), new unShowInPage(), new pageBreak(), new groupSequenceContinueOption(), new axis(), new followTableModeOption(), new followTableAnchorOption(), new followOffsetXOption(), new followOffsetYOption(), new followOffsetYFromBottomOption(), new followTableMinOverlapPtOption(), new M2(), new M22(), new paperTypeOption(), new paperWidthOption(), new paperHeightOption(), new paperHeaderOption(), new paperFooterOption(), new S2(), new B3(), new F2(), new L2(), new A2(), new z2(), new k2(), new st2(), new N2(), new V2(), new W2(), new j2(), new U2(), new borderRadius(), new zIndex2(), new K2(), new G2(), new q2(), new X2(), new Y2(), new Q2(), new J2(), new Z2(), new tt2(), new et2(), new nt2(), new it2(), new ot2(), new textWrap(), new at2(), new lt2(), new panelLayoutOptions(), new ut2(), new ith(), new dt2(), new ct2(), new ht2(), new ft2(), new gt2(), new wordStyleOption(), new pageBreakHandlerOption(), new mt2(), new rowcolumns(), new rowsColumnsMergeClean(), new groupFieldsFormatter2(), new groupFormatter2(), new groupFooterFormatter2(), new vt2(), new yt2(), new bt2(), new Tt2(), new Et2(), new Pt2(), new stylerHeader2(), new renderFormatter2(), new _t3(), new wt2(), new maxRows2(), new tablePaginationTolerancePxOption(), new blankRowsCountOption(), new blankRowsPositionOption(), new xt2(), new tableColumnH(), new tableE(), new tableQRCodeLevel(), new tablept(), new tableSummaryTitle(), new tableSummaryText(), new tableSummaryColspan(), new tableSummary(), new tableSummaryAlign(), new tableSummaryNumFormat(), new tableSummaryFormatter2(), new showCodeTitle(), new upperCase(), new barcodeType(), new qrcodeType(), new barColor(), new barWidthOption(), new autoBarWidthOption(), new barcodeTextModeOption(), new codeFitOption2(), new barcodeBoxWidthOption2(), new barcodeBoxHeightOption2(), new qrCodeSizeOption2(), new expandCssOption(), new descPosition(), new descAlign(), new showDesc(), new autoWOption(), new autoHOption(), new galleryItemWidth(), new galleryItemHeight(), new galleryAutoWidth(), new hideIfEmpty(), new borderModeOption(), new autoFitTextOption(), new defaultRowHeightOption(), new activeRowHeightOption(), new defaultColWidthOption(), new cellContentTypeOption(), new cellTextOption(), new cellFieldOption(), new cellTextWrapOption(), new cellImageOption(), new cellImageFitOption(), new cellFontSizeOption(), new cellFontWeightOption(), new cellColorOption(), new cellAlignOption(), new cellValignOption(), new cellAutoFitTextOption(), new cellBorderModeOption()], t5;
60931
+ }, t5._printElementOptionItems = [new fontFamily2(), new r2(), new scaleOption(), new autoSizeMinOption(), new a2(), new p2(), new i3(), new s3(), new l2(), new pt2(), new u2(), new d3(), new c2(), new h2(), new f2(), new g2(), new m2(), new d22(), new c22(), new v2(), new v22(), new y2(), new b3(), new E2(), new qrCodeLevel(), new T2(), new P2(), new _2(), new w2(), new x2(), new autoField(), new autoFieldFormatter2(), new coordinate(), new widthHeight(), new C2(), new imageFit(), new O2(), new H4(), new D2(), new paperNumberContinue(), new watermarkOptions(), new I2(), new R2(), new unShowInPage(), new pageBreak(), new groupSequenceContinueOption(), new axis(), new followTableModeOption(), new followTableAnchorOption(), new followOffsetXOption(), new followOffsetYOption(), new followOffsetYFromBottomOption(), new followTableMinOverlapPtOption(), new M2(), new M22(), new paperTypeOption(), new paperWidthOption(), new paperHeightOption(), new paperHeaderOption(), new paperFooterOption(), new diffPaperFooterOption(), new S2(), new B3(), new F2(), new L2(), new A2(), new z2(), new k2(), new st2(), new N2(), new V2(), new W2(), new j2(), new U2(), new borderRadius(), new zIndex2(), new K2(), new G2(), new q2(), new X2(), new Y2(), new Q2(), new J2(), new Z2(), new tt2(), new et2(), new nt2(), new it2(), new ot2(), new textWrap(), new at2(), new lt2(), new panelLayoutOptions(), new ut2(), new ith(), new dt2(), new ct2(), new ht2(), new ft2(), new gt2(), new wordStyleOption(), new pageBreakHandlerOption(), new mt2(), new tableBeforeFormatterOption(), new tableAfterFormatterOption(), new rowcolumns(), new rowsColumnsMergeClean(), new groupFieldsFormatter2(), new groupFormatter2(), new groupFooterFormatter2(), new vt2(), new yt2(), new bt2(), new Tt2(), new Et2(), new Pt2(), new stylerHeader2(), new renderFormatter2(), new _t3(), new wt2(), new maxRows2(), new tablePaginationTolerancePxOption(), new blankRowsCountOption(), new blankRowsPositionOption(), new xt2(), new tableBeforeRepeatOption(), new tableAfterRepeatOption(), new tableColumnH(), new tableE(), new tableQRCodeLevel(), new tablept(), new tableSummaryTitle(), new tableSummaryText(), new tableSummaryColspan(), new tableSummary(), new tableSummaryAlign(), new tableSummaryNumFormat(), new tableSummaryFormatter2(), new showCodeTitle(), new upperCase(), new barcodeType(), new qrcodeType(), new barColor(), new barWidthOption(), new autoBarWidthOption(), new barcodeTextModeOption(), new codeFitOption2(), new barcodeBoxWidthOption2(), new barcodeBoxHeightOption2(), new qrCodeSizeOption2(), new expandCssOption(), new descPosition(), new descAlign(), new showDesc(), new autoWOption(), new autoHOption(), new galleryItemWidth(), new galleryItemHeight(), new galleryAutoWidth(), new hideIfEmpty(), new borderModeOption(), new autoFitTextOption(), new defaultRowHeightOption(), new activeRowHeightOption(), new defaultColWidthOption(), new cellContentTypeOption(), new cellTextOption(), new cellFieldOption(), new cellTextWrapOption(), new cellImageOption(), new cellImageFitOption(), new cellFontSizeOption(), new cellFontWeightOption(), new cellColorOption(), new cellAlignOption(), new cellValignOption(), new cellAutoFitTextOption(), new cellBorderModeOption()], t5;
60760
60932
  }();
60761
60933
  }, function(t4, e2, n3) {
60762
60934
  "use strict";
@@ -61371,8 +61543,11 @@ ${i18n.__("转大小写")}
61371
61543
  }
61372
61544
  return !!v2;
61373
61545
  }(this.options && this.options.pageBreak);
61546
+ var getBasePaperFooter2 = this.getBaseElementPaperFooter.bind(this), getBaseContentHeight = function(pageOffset) {
61547
+ return getBasePaperFooter2(t4, pageOffset) - t4.paperHeader;
61548
+ };
61374
61549
  if (e2 && "collapse" == em2 && (!o2 || 0 === o2.length)) {
61375
- var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t4), __pi2 = 0, __pf2 = t4.getPaperFooter(__pi2);
61550
+ var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t4), __pi2 = 0, __pf2 = getBasePaperFooter2(t4, __pi2);
61376
61551
  if (__top2 > __pf2 && "none" != t4.panelPageRule) {
61377
61552
  __top2 = __top2 - __pf2 + t4.paperHeader;
61378
61553
  __pi2++;
@@ -61405,7 +61580,7 @@ ${i18n.__("转大小写")}
61405
61580
  var tfh = a2.find("tfoot").outerHeight() || 0;
61406
61581
  a2.find("tfoot").remove();
61407
61582
  for (var p2, s3 = this.getBeginPrintTopInPaperByReferenceElement(t4), l2 = 0, c2 = false; !c2; ) {
61408
- var u2 = 0, d3 = t4.getPaperFooter(l2);
61583
+ var u2 = 0, d3 = getBasePaperFooter2(t4, l2);
61409
61584
  if (e2 && forceBreakEnabled2 && 0 === l2 && "none" != t4.panelPageRule) {
61410
61585
  var remainingHeightPt = d3 - s3;
61411
61586
  var hasContentBeforeTable = s3 > t4.paperHeader + 0.5;
@@ -61416,14 +61591,14 @@ ${i18n.__("转大小写")}
61416
61591
  printLine: void 0
61417
61592
  }));
61418
61593
  l2++;
61419
- d3 = t4.getPaperFooter(l2);
61594
+ d3 = getBasePaperFooter2(t4, l2);
61420
61595
  }
61421
61596
  }
61422
61597
  0 == l2 && s3 > d3 && "none" != t4.panelPageRule && (s3 = s3 - d3 + t4.paperHeader, i3.push(new _dto_PaperHtmlResult__WEBPACK_IMPORTED_MODULE_2__.a({
61423
61598
  target: void 0,
61424
61599
  printLine: void 0
61425
- })), u2 = t4.getContentHeight(l2) - (s3 - t4.paperHeader), l2++, d3 = t4.getPaperFooter(l2));
61426
- var h2 = i3.length > 0 ? i3[i3.length - 1].target : void 0, f2 = this.getRowsInSpecificHeight(e2, u2 > 0 ? u2 : 0 == l2 ? d3 - s3 : t4.getContentHeight(l2), a2, r2, l2, h2, tfh);
61600
+ })), u2 = getBaseContentHeight(l2) - (s3 - t4.paperHeader), l2++, d3 = getBasePaperFooter2(t4, l2));
61601
+ var h2 = i3.length > 0 ? i3[i3.length - 1].target : void 0, f2 = this.getRowsInSpecificHeight(e2, u2 > 0 ? u2 : 0 == l2 ? d3 - s3 : getBaseContentHeight(l2), a2, r2, l2, h2, tfh);
61427
61602
  c2 = f2.isEnd;
61428
61603
  if (u2 < 0) {
61429
61604
  i3[0].target = $$i(`<div style="position:absolute;background: red;color: white;padding: 0px 4px;">${i18n.__("没有足够空间进行表格分页,请调整页眉/页脚线")}</div>`);
@@ -61495,6 +61670,7 @@ ${i18n.__("转大小写")}
61495
61670
  }
61496
61671
  n3.find(".hiprint-printElement-tableTarget thead").remove();
61497
61672
  }
61673
+ var outsideHeightPx = this.syncTableOutsideBlocks(n3, t4, [], o2, 0 == a2.find("tr").length);
61498
61674
  var s3 = n3.outerHeight();
61499
61675
  var forceBreakEnabled2 = function(v3) {
61500
61676
  if (v3 === true)
@@ -61528,7 +61704,7 @@ ${i18n.__("转大小写")}
61528
61704
  c2 = {
61529
61705
  height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s3),
61530
61706
  isEnd: true
61531
- }, t4 && this.options.autoCompletion && (this.autoCompletion(p2, d3, tfhForCalc), s3 = n3.outerHeight());
61707
+ }, t4 && this.options.autoCompletion && (this.autoCompletion(p2, d3, tfhForCalc), outsideHeightPx = that.syncTableOutsideBlocks(n3, t4, h2, o2, true), s3 = n3.outerHeight());
61532
61708
  else {
61533
61709
  var f2 = a2.find("tr:lt(1)");
61534
61710
  if (h2.length == 0 && headTr) {
@@ -61536,7 +61712,7 @@ ${i18n.__("转大小写")}
61536
61712
  }
61537
61713
  d3.find("tbody").append(f2);
61538
61714
  var g2 = f2.data("rowData");
61539
- l2.push(g2), h2.push(g2), s3 = n3.outerHeight();
61715
+ l2.push(g2), h2.push(g2), outsideHeightPx = that.syncTableOutsideBlocks(n3, t4, h2, o2, 0 == a2.find("tr").length), s3 = n3.outerHeight();
61540
61716
  0 == trLen && (a2.prepend(f2), l2.pop(), h2.pop(), c2 = {
61541
61717
  height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s3),
61542
61718
  isEnd: false
@@ -61557,13 +61733,14 @@ ${i18n.__("转大小写")}
61557
61733
  d3.find("tbody").append(f2);
61558
61734
  var isBlankRow = !!f2.data("hiprintBlankRow") || "true" === f2.attr("data-hiprint-blank-row");
61559
61735
  var g2 = f2.data("rowData");
61560
- isBlankRow || (l2.push(g2), h2.push(g2)), ((s3 = d3.outerHeight(), "last" == this.options.tableFooterRepeat ? s3 : s3 += tfhForCalc) > p2 + tolerancePx || this.options.maxRows && d3.find("tbody").children().length > +this.options.maxRows) && (a2.prepend(f2), isBlankRow || (l2.pop(), h2.pop()), s3 = d3.outerHeight(), c2 = {
61736
+ isBlankRow || (l2.push(g2), h2.push(g2)), outsideHeightPx = that.syncTableOutsideBlocks(n3, t4, h2, o2, 0 == a2.find("tr").length), ((s3 = d3.outerHeight() + outsideHeightPx, "last" == this.options.tableFooterRepeat ? s3 : s3 += tfhForCalc) > p2 + tolerancePx || this.options.maxRows && d3.find("tbody").children().length > +this.options.maxRows) && (a2.prepend(f2), isBlankRow || (l2.pop(), h2.pop()), outsideHeightPx = that.syncTableOutsideBlocks(n3, t4, h2, o2, false), s3 = d3.outerHeight() + outsideHeightPx, c2 = {
61561
61737
  height: _assets_plugins_hinnn__WEBPACK_IMPORTED_MODULE_3__.a.px.toPt(s3),
61562
61738
  isEnd: false
61563
61739
  });
61564
61740
  }
61565
61741
  }
61566
61742
  if (c2) {
61743
+ outsideHeightPx = that.syncTableOutsideBlocks(n3, t4, h2, o2, !!c2.isEnd);
61567
61744
  if ("last" == this.options.tableFooterRepeat && !c2.isEnd)
61568
61745
  break;
61569
61746
  if ("no" !== this.options.tableFooterRepeat) {
@@ -61845,6 +62022,85 @@ ${i18n.__("转大小写")}
61845
62022
  console.log(t4);
61846
62023
  }
61847
62024
  return gridColumnsFooterFormatter;
62025
+ }, TablePrintElement.prototype.getTableOutsideFormatter = function(optionKey, typeKey) {
62026
+ var formatter = void 0;
62027
+ if (typeKey && this.printElementType[typeKey] && (formatter = this.printElementType[typeKey]), optionKey && this.options[optionKey])
62028
+ try {
62029
+ var s = "formatter=" + this.options[optionKey];
62030
+ eval(s);
62031
+ } catch (t4) {
62032
+ console.log(t4);
62033
+ }
62034
+ return formatter;
62035
+ }, TablePrintElement.prototype.getTableBeforeFormatter = function() {
62036
+ return this.getTableOutsideFormatter("tableBeforeFormatter", "tableBeforeFormatter");
62037
+ }, TablePrintElement.prototype.getTableAfterFormatter = function() {
62038
+ return this.getTableOutsideFormatter("tableAfterFormatter", "tableAfterFormatter");
62039
+ }, TablePrintElement.prototype.normalizeTableOutsideRepeat = function(repeatMode) {
62040
+ if (null == repeatMode || "" === repeatMode)
62041
+ return "none";
62042
+ var mode = String(repeatMode).trim().toLowerCase();
62043
+ return "no" === mode ? "none" : mode;
62044
+ }, TablePrintElement.prototype.shouldRenderTableOutsideBlock = function(repeatMode, pageIndex, isEnd) {
62045
+ switch (this.normalizeTableOutsideRepeat(repeatMode)) {
62046
+ case "page":
62047
+ case "all":
62048
+ return true;
62049
+ case "first":
62050
+ return 0 === pageIndex;
62051
+ case "last":
62052
+ return !!isEnd;
62053
+ case "odd":
62054
+ return (pageIndex + 1) % 2 == 1;
62055
+ case "even":
62056
+ return (pageIndex + 1) % 2 == 0;
62057
+ default:
62058
+ return false;
62059
+ }
62060
+ }, TablePrintElement.prototype.createTableOutsideBlock = function(position2, printData4, pageData, pageIndex, isEnd) {
62061
+ var isBefore = "before" === position2;
62062
+ var formatter2 = isBefore ? this.getTableBeforeFormatter() : this.getTableAfterFormatter();
62063
+ if (!formatter2)
62064
+ return null;
62065
+ var repeatMode = isBefore ? this.options.tableBeforeRepeat : this.options.tableAfterRepeat;
62066
+ if (!this.shouldRenderTableOutsideBlock(repeatMode, pageIndex, isEnd))
62067
+ return null;
62068
+ var meta = {
62069
+ position: position2,
62070
+ pageIndex,
62071
+ pageNumber: pageIndex + 1,
62072
+ isLast: !!isEnd,
62073
+ repeatMode: this.normalizeTableOutsideRepeat(repeatMode)
62074
+ };
62075
+ try {
62076
+ var html2 = formatter2(this.options, this.getData(printData4), printData4, pageData || [], meta);
62077
+ if (null == html2 || "" === html2 || false === html2)
62078
+ return null;
62079
+ var block = $$i('<div class="hiprint-printElement-tableOutside hiprint-printElement-tableOutside-' + position2 + '" style="width:100%;box-sizing:border-box;"></div>');
62080
+ return block.append(html2), block;
62081
+ } catch (err2) {
62082
+ try {
62083
+ console && console.warn && console.warn(position2 + "TableFormatter error:", err2);
62084
+ } catch (_2) {
62085
+ }
62086
+ return null;
62087
+ }
62088
+ }, TablePrintElement.prototype.syncTableOutsideBlocks = function(target, printData4, pageData, pageIndex, isEnd) {
62089
+ if (!target || !target.length)
62090
+ return 0;
62091
+ target.find(".hiprint-printElement-tableOutside").remove();
62092
+ var firstTable = target.find(".hiprint-printElement-tableTarget:first");
62093
+ var lastTable = target.find(".hiprint-printElement-tableTarget:last");
62094
+ if (!firstTable.length || !lastTable.length)
62095
+ return 0;
62096
+ var beforeBlock = this.createTableOutsideBlock("before", printData4, pageData, pageIndex, isEnd);
62097
+ var afterBlock = this.createTableOutsideBlock("after", printData4, pageData, pageIndex, isEnd);
62098
+ beforeBlock && beforeBlock.insertBefore(firstTable);
62099
+ afterBlock && afterBlock.insertAfter(lastTable);
62100
+ var total = 0;
62101
+ return target.find(".hiprint-printElement-tableOutside").each(function() {
62102
+ total += $$i(this).outerHeight() || 0;
62103
+ }), total;
61848
62104
  }, TablePrintElement;
61849
62105
  }(_BasePrintElement__WEBPACK_IMPORTED_MODULE_0__.a);
61850
62106
  }, function(t4, e2, n3) {
@@ -64003,6 +64259,44 @@ ${i18n.__("转大小写")}
64003
64259
  }, e2.prototype.updateDesignViewFromOptions = function() {
64004
64260
  this.designTarget && (this.css(this.designTarget, this.getData()), this.updateTargetImage(this.designTarget, this.getTitle(), this.getData()));
64005
64261
  }, e2.prototype.updateTargetImage = function(t5, e3, n3) {
64262
+ var normalizeImageSrc2 = function(src2, mime) {
64263
+ if (src2 == null)
64264
+ return "";
64265
+ src2 = String(src2).trim();
64266
+ if (!src2)
64267
+ return "";
64268
+ if (/^data:/i.test(src2))
64269
+ return src2;
64270
+ if (/^(https?:)?\/\//i.test(src2))
64271
+ return src2;
64272
+ if (/^blob:/i.test(src2) || /^file:/i.test(src2))
64273
+ return src2;
64274
+ if (src2[0] === "/" || src2.indexOf("./") === 0 || src2.indexOf("../") === 0)
64275
+ return src2;
64276
+ if (/^[A-Za-z0-9+/=_-]+$/.test(src2) && src2.length > 80) {
64277
+ var head = src2.slice(0, 10);
64278
+ var m2 = mime;
64279
+ if (!m2) {
64280
+ if (head.indexOf("iVBORw0") === 0)
64281
+ m2 = "image/png";
64282
+ else if (head.indexOf("/9j/") === 0)
64283
+ m2 = "image/jpeg";
64284
+ else if (head.indexOf("R0lGOD") === 0)
64285
+ m2 = "image/gif";
64286
+ else if (head.indexOf("UklGR") === 0)
64287
+ m2 = "image/webp";
64288
+ else if (head.indexOf("Qk") === 0)
64289
+ m2 = "image/bmp";
64290
+ else if (head.indexOf("PHN2Zy") === 0)
64291
+ m2 = "image/svg+xml";
64292
+ else
64293
+ m2 = "image/png";
64294
+ }
64295
+ return "data:" + m2 + ";base64," + src2;
64296
+ }
64297
+ return src2;
64298
+ };
64299
+ n3 = normalizeImageSrc2(n3, this.options && (this.options.imageMime || this.options.mime));
64006
64300
  var title = t5.find(".hiprint-printElement-image-title");
64007
64301
  var hideTitle = this.options.hideTitle;
64008
64302
  if (hideTitle === "true")
@@ -64429,7 +64723,7 @@ ${i18n.__("转大小写")}
64429
64723
  var i3 = this, o2 = [], r2 = 0, a2 = n3 || this.getData(e3), p2 = this.getText(this.getTitle(), a2), s3 = this.createTarget(this.getTitle(), this.options.testData || ""), em2 = this.getEmptyDataDisplayMode(a2);
64430
64724
  this.css(s3, a2), e3 ? this.updateTargetWidth(s3) : this.updateTargetSize(s3), this.getTempContainer().html(""), this.getTempContainer().append(s3);
64431
64725
  if (e3 && "collapse" == em2) {
64432
- var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t5), __pi2 = 0, __pf2 = t5.getPaperFooter(__pi2);
64726
+ var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t5), __pi2 = 0, __pf2 = this.getBaseElementPaperFooter(t5, __pi2);
64433
64727
  if (__top2 > __pf2 && "none" != t5.panelPageRule) {
64434
64728
  __top2 = __top2 - __pf2 + t5.paperHeader;
64435
64729
  __pi2++;
@@ -64455,11 +64749,11 @@ ${i18n.__("转大小写")}
64455
64749
  })
64456
64750
  })), o2;
64457
64751
  for (var d3 = this.getBeginPrintTopInPaperByReferenceElement(t5); l2.length > 0; ) {
64458
- var c2 = 0, h2 = t5.getPaperFooter(r2);
64752
+ var c2 = 0, h2 = this.getBaseElementPaperFooter(t5, r2);
64459
64753
  0 == r2 && d3 > h2 && "none" != t5.panelPageRule && (d3 = d3 - h2 + t5.paperHeader, o2.push(new P.a({
64460
64754
  target: void 0,
64461
64755
  printLine: void 0
64462
- })), r2++, c2 = t5.getContentHeight(r2) - (d3 - t5.paperHeader), h2 = t5.getPaperFooter(r2));
64756
+ })), r2++, c2 = t5.getContentHeight(r2) - (d3 - t5.paperHeader), h2 = this.getBaseElementPaperFooter(t5, r2));
64463
64757
  var f2 = this.getStringBySpecificHeight(l2, c2 > 0 ? c2 : 0 == r2 ? h2 - d3 : t5.getContentHeight(r2), s3);
64464
64758
  l2.splice(0, f2.length);
64465
64759
  var g2 = void 0, m2 = void 0;
@@ -67063,7 +67357,7 @@ ${i18n.__("转大小写")}
67063
67357
  }
67064
67358
  }
67065
67359
  if (e && "collapse" == em) {
67066
- var __top = this.getBeginPrintTopInPaperByReferenceElement(t), __pi = 0, __pf = t.getPaperFooter(__pi);
67360
+ var __top = this.getBeginPrintTopInPaperByReferenceElement(t), __pi = 0, __pf = this.getBaseElementPaperFooter(t, __pi);
67067
67361
  if (__top > __pf && "none" != t.panelPageRule) {
67068
67362
  __top = __top - __pf + t.paperHeader;
67069
67363
  __pi++;
@@ -67207,20 +67501,21 @@ ${i18n.__("转大小写")}
67207
67501
  var htmlTolPx = typeof window !== "undefined" && window.HIPRINT_CONFIG && window.HIPRINT_CONFIG.htmlPaginationTolerancePx != null ? Number(window.HIPRINT_CONFIG.htmlPaginationTolerancePx) : 0;
67208
67502
  var htmlKeepOneRow = !!(typeof window !== "undefined" && window.HIPRINT_CONFIG && window.HIPRINT_CONFIG.htmlTableKeepOneRow);
67209
67503
  var htmlOmitHeaderToKeepOneRow = typeof window !== "undefined" && window.HIPRINT_CONFIG && window.HIPRINT_CONFIG.htmlTableOmitHeaderToKeepOneRow != null ? !!window.HIPRINT_CONFIG.htmlTableOmitHeaderToKeepOneRow : true;
67210
- var availablePx = window.hinnn.pt.toPx(t.getPaperFooter(r) - d);
67504
+ var getBasePaperFooter = this.getBaseElementPaperFooter.bind(this);
67505
+ var availablePx = window.hinnn.pt.toPx(getBasePaperFooter(t, r) - d);
67211
67506
  if (fullHeight <= availablePx - safetyPx + htmlTolPx) {
67212
67507
  "placeholder" == em && s.css("visibility", "hidden");
67213
67508
  s.css("left", this.options.displayLeft()), s.css("top", d + "pt");
67214
67509
  o.push(new P.a({
67215
67510
  target: s,
67216
- printLine: Math.min(d + window.hinnn.px.toPt(fullHeight), t.getPaperFooter(t.index)),
67511
+ printLine: Math.min(d + window.hinnn.px.toPt(fullHeight), getBasePaperFooter(t, r)),
67217
67512
  referenceElement: new E.a({
67218
67513
  top: this.options.getTop(),
67219
67514
  left: this.options.getLeft(),
67220
67515
  height: this.options.getHeight(),
67221
67516
  width: this.options.getWidth(),
67222
67517
  beginPrintPaperIndex: t.index,
67223
- bottomInLastPaper: Math.min(d + window.hinnn.px.toPt(fullHeight), t.getPaperFooter(t.index)),
67518
+ bottomInLastPaper: Math.min(d + window.hinnn.px.toPt(fullHeight), getBasePaperFooter(t, r)),
67224
67519
  printTopInPaper: d
67225
67520
  })
67226
67521
  }));
@@ -67398,7 +67693,7 @@ ${i18n.__("转大小写")}
67398
67693
  contentDiv.append(pageTable);
67399
67694
  pageElement[0].offsetHeight;
67400
67695
  var safeCounter = 0;
67401
- var pageLimit = window.hinnn.pt.toPx(t.getPaperFooter(t.index + pageNumber) - currentPageTop) - safetyPx;
67696
+ var pageLimit = window.hinnn.pt.toPx(getBasePaperFooter(t, t.index + pageNumber) - currentPageTop) - safetyPx;
67402
67697
  var dataRowCount = 0;
67403
67698
  while (leftRows.length) {
67404
67699
  var row = $$i(leftRows[0]).clone();
@@ -67533,7 +67828,7 @@ ${i18n.__("转大小写")}
67533
67828
  pageElement[0].offsetHeight;
67534
67829
  }, 0);
67535
67830
  var newHeight = Math.max(pageElement[0].scrollHeight, pageElement.outerHeight(true));
67536
- var limit = window.hinnn.pt.toPx(t.getPaperFooter(t.index + pageNumber) - currentPageTop) - safetyPx + htmlTolPx;
67831
+ var limit = window.hinnn.pt.toPx(getBasePaperFooter(t, pageNumber) - currentPageTop) - safetyPx + htmlTolPx;
67537
67832
  if (newHeight <= limit) {
67538
67833
  pageHeight = newHeight;
67539
67834
  elementsToRemove.push(j);
@@ -67907,14 +68202,14 @@ ${i18n.__("转大小写")}
67907
68202
  }
67908
68203
  o.push(new P.a({
67909
68204
  target: finalPageElement,
67910
- printLine: Math.min(currentPageTop + window.hinnn.px.toPt(pageHeight), t.getPaperFooter(t.index + pageNumber)),
68205
+ printLine: Math.min(currentPageTop + window.hinnn.px.toPt(pageHeight), getBasePaperFooter(t, pageNumber)),
67911
68206
  referenceElement: new E.a({
67912
68207
  top: this.options.getTop(),
67913
68208
  left: this.options.getLeft(),
67914
68209
  height: this.options.getHeight(),
67915
68210
  width: this.options.getWidth(),
67916
68211
  beginPrintPaperIndex: t.index + pageNumber,
67917
- bottomInLastPaper: Math.min(currentPageTop + window.hinnn.px.toPt(pageHeight), t.getPaperFooter(t.index + pageNumber)),
68212
+ bottomInLastPaper: Math.min(currentPageTop + window.hinnn.px.toPt(pageHeight), getBasePaperFooter(t, pageNumber)),
67918
68213
  printTopInPaper: currentPageTop
67919
68214
  })
67920
68215
  }));
@@ -68329,7 +68624,7 @@ ${i18n.__("转大小写")}
68329
68624
  var i3 = [], o2 = n3 || this.getData(e3), r2 = this.createTarget(this.getTitle(), o2), a2 = this.getEmptyDataDisplayMode(o2);
68330
68625
  this.css(r2, o2), e3 ? this.updateTargetWidth(r2) : this.updateTargetSize(r2), this.getTempContainer().html(""), this.getTempContainer().append(r2);
68331
68626
  if (e3 && "collapse" == a2) {
68332
- var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t5), __pi2 = 0, __pf2 = t5.getPaperFooter(__pi2);
68627
+ var __top2 = this.getBeginPrintTopInPaperByReferenceElement(t5), __pi2 = 0, __pf2 = this.getBaseElementPaperFooter(t5, __pi2);
68333
68628
  if (__top2 > __pf2 && "none" != t5.panelPageRule) {
68334
68629
  __top2 = __top2 - __pf2 + t5.paperHeader;
68335
68630
  __pi2++;
@@ -68376,6 +68671,7 @@ ${i18n.__("转大小写")}
68376
68671
  }
68377
68672
  }
68378
68673
  var m2 = this.getBeginPrintTopInPaperByReferenceElement(t5), v2 = 0, y2 = 24, b3 = this;
68674
+ var getBasePaperFooter2 = this.getBaseElementPaperFooter.bind(this);
68379
68675
  var clearHeightConstraints = function(root2) {
68380
68676
  if (!root2 || !root2.length)
68381
68677
  return;
@@ -68436,19 +68732,19 @@ ${i18n.__("转大小写")}
68436
68732
  target.css("visibility", "hidden");
68437
68733
  return target;
68438
68734
  };
68439
- while (m2 > t5.getPaperFooter(v2) && "none" != t5.panelPageRule) {
68735
+ while (m2 > getBasePaperFooter2(t5, v2) && "none" != t5.panelPageRule) {
68440
68736
  i3.push(new P.a({
68441
68737
  target: void 0,
68442
68738
  printLine: void 0
68443
68739
  }));
68444
- m2 = m2 - t5.getPaperFooter(v2) + t5.paperHeader;
68740
+ m2 = m2 - getBasePaperFooter2(t5, v2) + t5.paperHeader;
68445
68741
  v2++;
68446
68742
  }
68447
68743
  while (f2.length > 0) {
68448
68744
  var pageRows = [], pageTarget = buildPageTarget([], v2, f2.length > 0);
68449
68745
  this.getTempContainer().html("").append(pageTarget);
68450
68746
  pageTarget[0].offsetHeight;
68451
- var pageFooterPt = t5.getPaperFooter(t5.index + v2);
68747
+ var pageFooterPt = getBasePaperFooter2(t5, v2);
68452
68748
  var usableBottomPt = Math.max(m2, pageFooterPt - y2);
68453
68749
  var limitPx = window.hinnn.pt.toPx(usableBottomPt - m2);
68454
68750
  if (limitPx <= 0) {
@@ -68484,7 +68780,7 @@ ${i18n.__("转大小写")}
68484
68780
  if (!pageRows.length)
68485
68781
  break;
68486
68782
  var pageHeightPt = window.hinnn.px.toPt(Math.max(pageTarget[0].scrollHeight, pageTarget.outerHeight(true)));
68487
- var pageFooterPt2 = t5.getPaperFooter(t5.index + v2);
68783
+ var pageFooterPt2 = getBasePaperFooter2(t5, v2);
68488
68784
  var safeBottomPt = Math.max(m2, pageFooterPt2 - y2);
68489
68785
  var printLine = Math.min(m2 + pageHeightPt, safeBottomPt);
68490
68786
  i3.push(new P.a({
@@ -69805,7 +70101,7 @@ ${i18n.__("转大小写")}
69805
70101
  t4.height ? (this.height = t4.height, this.width = t4.width) : (this.height = e2.height, this.width = e2.width);
69806
70102
  } else
69807
70103
  this.height = t4.height, this.width = t4.width;
69808
- this.paperHeader = t4.paperHeader || 0, this.paperFooter = t4.paperFooter || o.a.mm.toPt(this.height), this.printElements = t4.printElements || [], this.paperNumberLeft = t4.paperNumberLeft, this.paperNumberTop = t4.paperNumberTop, this.paperNumberDisabled = t4.paperNumberDisabled, this.paperNumberContinue = t4.paperNumberContinue, this.paperNumberFormat = t4.paperNumberFormat, this.panelPaperRule = t4.panelPaperRule, this.panelPageRule = t4.panelPageRule, this.rotate = t4.rotate || void 0, this.firstPaperFooter = t4.firstPaperFooter, this.evenPaperFooter = t4.evenPaperFooter, this.oddPaperFooter = t4.oddPaperFooter, this.lastPaperFooter = t4.lastPaperFooter, this.topOffset = t4.topOffset, this.fontFamily = t4.fontFamily, this.leftOffset = t4.leftOffset, this.orient = t4.orient, this.scale = t4.scale, this.watermarkOptions = t4.watermarkOptions, this.panelLayoutOptions = t4.panelLayoutOptions, this.backgroundColor = t4.backgroundColor, this.expandCss = t4.expandCss || t4.extCss || "";
70104
+ this.paperHeader = t4.paperHeader || 0, this.paperFooter = t4.paperFooter || o.a.mm.toPt(this.height), this.printElements = t4.printElements || [], this.paperNumberLeft = t4.paperNumberLeft, this.paperNumberTop = t4.paperNumberTop, this.paperNumberDisabled = t4.paperNumberDisabled, this.paperNumberContinue = t4.paperNumberContinue, this.paperNumberFormat = t4.paperNumberFormat, this.panelPaperRule = t4.panelPaperRule, this.panelPageRule = t4.panelPageRule, this.rotate = t4.rotate || void 0, this.firstPaperFooter = t4.firstPaperFooter, this.evenPaperFooter = t4.evenPaperFooter, this.oddPaperFooter = t4.oddPaperFooter, this.lastPaperFooter = t4.lastPaperFooter, this.diffPaperFooter = t4.diffPaperFooter, this.topOffset = t4.topOffset, this.fontFamily = t4.fontFamily, this.leftOffset = t4.leftOffset, this.orient = t4.orient, this.scale = t4.scale, this.watermarkOptions = t4.watermarkOptions, this.panelLayoutOptions = t4.panelLayoutOptions, this.backgroundColor = t4.backgroundColor, this.expandCss = t4.expandCss || t4.extCss || "";
69809
70105
  };
69810
70106
  }(), at = function() {
69811
70107
  function t4(t5, e2, n3, i3) {
@@ -69821,7 +70117,7 @@ ${i18n.__("转大小写")}
69821
70117
  }, t4;
69822
70118
  }(), pt = function() {
69823
70119
  function t(t4, e2) {
69824
- this.templateId = e2, this.index = t4.index, this.name = t4.name, this.nameField = t4.nameField, this.width = t4.width, this.height = t4.height, this.paperType = t4.paperType, this.paperHeader = t4.paperHeader, this.paperFooter = t4.paperFooter, this.initPrintElements(t4.printElements), this.paperNumberLeft = t4.paperNumberLeft, this.paperNumberTop = t4.paperNumberTop, this.paperNumberDisabled = t4.paperNumberDisabled, this.paperNumberContinue = t4.paperNumberContinue == void 0 ? true : t4.paperNumberContinue, this.paperNumberFormat = t4.paperNumberFormat, this.panelPaperRule = t4.panelPaperRule, this.panelPageRule = t4.panelPageRule, this.firstPaperFooter = t4.firstPaperFooter, this.evenPaperFooter = t4.evenPaperFooter, this.oddPaperFooter = t4.oddPaperFooter, this.lastPaperFooter = t4.lastPaperFooter, this.topOffset = t4.topOffset, this.leftOffset = t4.leftOffset, this.fontFamily = t4.fontFamily, this.orient = t4.orient, this.target = this.createTarget(), this.rotate = t4.rotate, this.scale = t4.scale, this.watermarkOptions = t4.watermarkOptions || {}, this.panelLayoutOptions = t4.panelLayoutOptions || {};
70120
+ this.templateId = e2, this.index = t4.index, this.name = t4.name, this.nameField = t4.nameField, this.width = t4.width, this.height = t4.height, this.paperType = t4.paperType, this.paperHeader = t4.paperHeader, this.paperFooter = t4.paperFooter, this.initPrintElements(t4.printElements), this.paperNumberLeft = t4.paperNumberLeft, this.paperNumberTop = t4.paperNumberTop, this.paperNumberDisabled = t4.paperNumberDisabled, this.paperNumberContinue = t4.paperNumberContinue == void 0 ? true : t4.paperNumberContinue, this.paperNumberFormat = t4.paperNumberFormat, this.panelPaperRule = t4.panelPaperRule, this.panelPageRule = t4.panelPageRule, this.firstPaperFooter = t4.firstPaperFooter, this.evenPaperFooter = t4.evenPaperFooter, this.oddPaperFooter = t4.oddPaperFooter, this.lastPaperFooter = t4.lastPaperFooter, this.diffPaperFooter = t4.diffPaperFooter, this.topOffset = t4.topOffset, this.leftOffset = t4.leftOffset, this.fontFamily = t4.fontFamily, this.orient = t4.orient, this.target = this.createTarget(), this.rotate = t4.rotate, this.scale = t4.scale, this.watermarkOptions = t4.watermarkOptions || {}, this.panelLayoutOptions = t4.panelLayoutOptions || {};
69825
70121
  this.backgroundColor = t4.backgroundColor || void 0;
69826
70122
  this.expandCss = t4.expandCss || t4.extCss || "";
69827
70123
  }
@@ -69846,6 +70142,7 @@ ${i18n.__("转大小写")}
69846
70142
  evenPaperFooter: e2.evenPaperFooter,
69847
70143
  oddPaperFooter: e2.oddPaperFooter,
69848
70144
  lastPaperFooter: e2.lastPaperFooter,
70145
+ diffPaperFooter: e2.diffPaperFooter,
69849
70146
  leftOffset: e2.leftOffset,
69850
70147
  topOffset: e2.topOffset,
69851
70148
  panelLayoutOptions: e2.panelLayoutOptions || {},
@@ -69886,7 +70183,7 @@ ${i18n.__("转大小写")}
69886
70183
  e2.nameField = t6 && void 0 !== t6.nameField ? t6.nameField : e2.nameField;
69887
70184
  var _needPaginationUpdate = _prevPanelName !== e2.name || _prevPanelNameField !== e2.nameField;
69888
70185
  e2.panelLayoutOptions = t6.panelLayoutOptions || {}, e2.watermarkOptions = t6.watermarkOptions || void 0, t6.watermarkOptions && e2.designPaper.createWaterMark(true, 1, t6.watermarkOptions);
69889
- e2.panelPaperRule = t6.panelPaperRule, e2.panelPageRule = t6.panelPageRule, e2.firstPaperFooter = t6.firstPaperFooter, e2.evenPaperFooter = t6.evenPaperFooter, e2.oddPaperFooter = t6.oddPaperFooter, e2.lastPaperFooter = t6.lastPaperFooter, e2.leftOffset = t6.leftOffset, e2.topOffset = t6.topOffset, e2.fontFamily = t6.fontFamily, e2.orient = t6.orient, e2.paperNumberDisabled = e2.designPaper.paperNumberDisabled = !!t6.paperNumberDisabled || void 0, e2.paperNumberContinue = e2.designPaper.paperNumberContinue = t6.paperNumberContinue, e2.paperNumberFormat = t6.paperNumberFormat, e2.designPaper.paperNumberFormat = t6.paperNumberFormat, t6.paperNumberFormat && (e2.designPaper.paperNumberTarget = e2.designPaper.createPaperNumber(e2.designPaper.formatPaperNumber(1, 1), true)), e2.designPaper.setOffset(e2.leftOffset, e2.topOffset), e2.css(e2.target), e2.designPaper.resetPaperNumber(e2.designPaper.paperNumberTarget), e2.designPaper.triggerOnPaperBaseInfoChanged();
70186
+ e2.panelPaperRule = t6.panelPaperRule, e2.panelPageRule = t6.panelPageRule, e2.firstPaperFooter = t6.firstPaperFooter, e2.evenPaperFooter = t6.evenPaperFooter, e2.oddPaperFooter = t6.oddPaperFooter, e2.lastPaperFooter = t6.lastPaperFooter, e2.diffPaperFooter = t6.diffPaperFooter, e2.designPaper.diffPaperFooter = t6.diffPaperFooter, e2.leftOffset = t6.leftOffset, e2.topOffset = t6.topOffset, e2.fontFamily = t6.fontFamily, e2.orient = t6.orient, e2.paperNumberDisabled = e2.designPaper.paperNumberDisabled = !!t6.paperNumberDisabled || void 0, e2.paperNumberContinue = e2.designPaper.paperNumberContinue = t6.paperNumberContinue, e2.paperNumberFormat = t6.paperNumberFormat, e2.designPaper.paperNumberFormat = t6.paperNumberFormat, t6.paperNumberFormat && (e2.designPaper.paperNumberTarget = e2.designPaper.createPaperNumber(e2.designPaper.formatPaperNumber(1, 1), true)), e2.designPaper.setOffset(e2.leftOffset, e2.topOffset), e2.css(e2.target), e2.designPaper.resetPaperNumber(e2.designPaper.paperNumberTarget), e2.designPaper.triggerOnPaperBaseInfoChanged();
69890
70187
  if (t6.paperType) {
69891
70188
  try {
69892
70189
  var pm2 = s.a.instance[t6.paperType];
@@ -70209,7 +70506,7 @@ ${i18n.__("转大小写")}
70209
70506
  p.push(l);
70210
70507
  a.append(l.getTarget());
70211
70508
  }
70212
- var renderFollowImagesForTablePage = function(tableElement, paper, tableResult, printData3, isLastSegment) {
70509
+ var renderFollowImagesForTablePage = function(tableElement, paper, tableResult, printData4, isLastSegment) {
70213
70510
  try {
70214
70511
  if (!tableElement || !paper || !tableResult)
70215
70512
  return;
@@ -70269,7 +70566,7 @@ ${i18n.__("转大小写")}
70269
70566
  if (!Number.isFinite(dx))
70270
70567
  dx = 0;
70271
70568
  var imgLeft = contentLeftPt + dx;
70272
- var imgData = img.getData(printData3) || "";
70569
+ var imgData = img.getData(printData4) || "";
70273
70570
  var target = img.createTarget(img.getTitle(), imgData, paper.index);
70274
70571
  img.updateTargetSize(target);
70275
70572
  img.css(target, imgData);
@@ -70366,8 +70663,10 @@ ${i18n.__("转大小写")}
70366
70663
  }
70367
70664
  }
70368
70665
  if (!i) {
70369
- if (this.lastPaperFooter)
70370
- p[p.length - 1].printLine > this.lastPaperFooter && (l = s.createNewPage(p.length, l.referenceElement), p.push(l), a.append(l.getTarget()));
70666
+ if (this.lastPaperFooter) {
70667
+ var __lastPaper = p[p.length - 1], __lastPaperFooterLimit = this.lastPaperFooter, __lastPaperDiff = "number" == typeof __lastPaper.diffPaperFooter ? __lastPaper.diffPaperFooter : parseFloat(__lastPaper.diffPaperFooter);
70668
+ Number.isFinite(__lastPaperDiff) && __lastPaperDiff > 0 && Number.isFinite(__lastPaper.height) && (__lastPaperFooterLimit = Math.min(__lastPaper.height, __lastPaperFooterLimit + __lastPaperDiff)), __lastPaper.printLine > __lastPaperFooterLimit && (l = s.createNewPage(p.length, l.referenceElement), p.push(l), a.append(l.getTarget()));
70669
+ }
70371
70670
  this.panelPaperRule && ("odd" == this.panelPaperRule && p.length % 2 == 0 && (l = s.createNewPage(p.length, l.referenceElement), p.push(l), a.append(l.getTarget())), "even" == this.panelPaperRule && p.length % 2 == 1 && (l = s.createNewPage(p.length, l.referenceElement), p.push(l), a.append(l.getTarget())));
70372
70671
  p.forEach(function(n) {
70373
70672
  n.updatePaperNumber(n.index + 1, p.length, e.paperNumberToggleInEven), r.fillPaperHeaderAndFooter(n, t, p.length), e && (null != e.leftOffset && n.setLeftOffset(e.leftOffset), null != e.topOffset && n.setTopOffset(e.topOffset));
@@ -70431,6 +70730,7 @@ ${i18n.__("转大小写")}
70431
70730
  evenPaperFooter: this.evenPaperFooter,
70432
70731
  oddPaperFooter: this.oddPaperFooter,
70433
70732
  lastPaperFooter: this.lastPaperFooter,
70733
+ diffPaperFooter: this.diffPaperFooter,
70434
70734
  topOffset: this.topOffset,
70435
70735
  fontFamily: this.fontFamily,
70436
70736
  orient: this.orient,
@@ -70483,7 +70783,7 @@ ${i18n.__("转大小写")}
70483
70783
  }
70484
70784
  }, t.prototype.createNewPage = function(t4, e2) {
70485
70785
  var n3 = new T(this.templateId, this.index, this.watermarkOptions, this.backgroundColor, this.panelPageRule, this.scale, this.width, this.height, this.paperHeader, this.paperFooter, this.paperNumberLeft, this.paperNumberTop, this.paperNumberDisabled, this.paperNumberContinue, this.paperNumberFormat, t4, e2);
70486
- return n3.setFooter(this.firstPaperFooter, this.evenPaperFooter, this.oddPaperFooter, this.lastPaperFooter), n3.setOffset(this.leftOffset, this.topOffset), n3;
70786
+ return n3.setFooter(this.firstPaperFooter, this.evenPaperFooter, this.oddPaperFooter, this.lastPaperFooter), n3.diffPaperFooter = this.diffPaperFooter, n3.setOffset(this.leftOffset, this.topOffset), n3;
70487
70787
  }, t.prototype.orderPrintElements = function() {
70488
70788
  this.printElements = o.a.orderBy(this.printElements, function(t4) {
70489
70789
  return t4.options.getLeft();
@@ -71320,8 +71620,53 @@ ${i18n.__("转大小写")}
71320
71620
  const mode = this && this._imgMode ? String(this._imgMode) : "base64";
71321
71621
  const imgs = root2 && root2.querySelectorAll ? root2.querySelectorAll("img") : [];
71322
71622
  const tasks = [];
71623
+ const normalizeImageSrc2 = function(src2, mime) {
71624
+ if (src2 == null)
71625
+ return "";
71626
+ src2 = String(src2).trim();
71627
+ if (!src2)
71628
+ return "";
71629
+ if (/^data:/i.test(src2))
71630
+ return src2;
71631
+ if (/^(https?:)?\/\//i.test(src2))
71632
+ return src2;
71633
+ if (/^blob:/i.test(src2) || /^file:/i.test(src2))
71634
+ return src2;
71635
+ if (src2[0] === "/" || src2.indexOf("./") === 0 || src2.indexOf("../") === 0)
71636
+ return src2;
71637
+ if (/^[A-Za-z0-9+/=_-]+$/.test(src2) && src2.length > 80) {
71638
+ var head = src2.slice(0, 10);
71639
+ var m2 = mime;
71640
+ if (!m2) {
71641
+ if (head.indexOf("iVBORw0") === 0)
71642
+ m2 = "image/png";
71643
+ else if (head.indexOf("/9j/") === 0)
71644
+ m2 = "image/jpeg";
71645
+ else if (head.indexOf("R0lGOD") === 0)
71646
+ m2 = "image/gif";
71647
+ else if (head.indexOf("UklGR") === 0)
71648
+ m2 = "image/webp";
71649
+ else if (head.indexOf("Qk") === 0)
71650
+ m2 = "image/bmp";
71651
+ else if (head.indexOf("PHN2Zy") === 0)
71652
+ m2 = "image/svg+xml";
71653
+ else
71654
+ m2 = "image/png";
71655
+ }
71656
+ return "data:" + m2 + ";base64," + src2;
71657
+ }
71658
+ return src2;
71659
+ };
71323
71660
  imgs.forEach((img) => {
71324
71661
  let src2 = img.getAttribute("src") || "";
71662
+ var normalized = normalizeImageSrc2(src2, img.getAttribute("data-hiprint-mime") || img.getAttribute("data-mime"));
71663
+ if (normalized && normalized !== src2) {
71664
+ try {
71665
+ img.setAttribute("src", normalized);
71666
+ } catch (_2) {
71667
+ }
71668
+ src2 = normalized;
71669
+ }
71325
71670
  if (!src2 || src2.indexOf("base64") !== -1 || src2 === window.location.href)
71326
71671
  return;
71327
71672
  tasks.push(async function() {
@@ -72408,12 +72753,12 @@ ${i18n.__("转大小写")}
72408
72753
  this.onImageChooseClick = t5;
72409
72754
  }, t4.prototype.getOnImageChooseClick = function() {
72410
72755
  return this.onImageChooseClick;
72411
- }, t4.prototype.getHtmlStable = function(printData3, options2) {
72756
+ }, t4.prototype.getHtmlStable = function(printData4, options2) {
72412
72757
  var i3 = this;
72413
72758
  return new Promise(function(resolve2) {
72414
72759
  var staging = $$i('<div style="position:fixed;left:-10000px;top:-10000px;visibility:hidden;z-index:-1;"></div>');
72415
72760
  $$i("body").append(staging);
72416
- var firstHtml = i3.getHtml(printData3, options2);
72761
+ var firstHtml = i3.getHtml(printData4, options2);
72417
72762
  staging.empty().append(firstHtml);
72418
72763
  var waitImages = function(rootElem, cb) {
72419
72764
  var tries = 0;
@@ -72504,7 +72849,7 @@ ${i18n.__("转大小写")}
72504
72849
  waitFonts(function() {
72505
72850
  waitStable(staging, function() {
72506
72851
  waitCodes(staging, function() {
72507
- var finalHtml = i3.getHtml(printData3, options2);
72852
+ var finalHtml = i3.getHtml(printData4, options2);
72508
72853
  staging.empty().append(finalHtml);
72509
72854
  waitImages(staging, function() {
72510
72855
  waitStable(staging, function() {
@@ -73180,7 +73525,7 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
73180
73525
  if (time2 === void 0) {
73181
73526
  time2 = 0;
73182
73527
  }
73183
- var normalizeImageSrc = function(src2, mime) {
73528
+ var normalizeImageSrc2 = function(src2, mime) {
73184
73529
  if (src2 == null)
73185
73530
  return "";
73186
73531
  src2 = String(src2).trim();
@@ -73222,7 +73567,7 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
73222
73567
  for (var i3 = 0; i3 < images.length; i3++) {
73223
73568
  var image2 = images[i3];
73224
73569
  try {
73225
- var normalized = normalizeImageSrc(image2 && image2.getAttribute ? image2.getAttribute("src") : image2.src);
73570
+ var normalized = normalizeImageSrc2(image2 && image2.getAttribute ? image2.getAttribute("src") : image2.src);
73226
73571
  if (normalized && image2 && image2.getAttribute && image2.getAttribute("src") !== normalized)
73227
73572
  image2.setAttribute("src", normalized);
73228
73573
  } catch (_2) {
@@ -73372,6 +73717,8 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
73372
73717
  //html表格是否省略表头
73373
73718
  tablePaginationTolerancePx: 8,
73374
73719
  //表格分页容忍距离px
73720
+ diffPaperFooter: 0,
73721
+ //基础元素允许超出页脚的高度pt
73375
73722
  showPosition: true,
73376
73723
  //显示坐标位置
73377
73724
  positionLineMode: false,
@@ -73410,6 +73757,10 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
73410
73757
  name: "paperFooter",
73411
73758
  hidden: false
73412
73759
  },
73760
+ {
73761
+ name: "diffPaperFooter",
73762
+ hidden: false
73763
+ },
73413
73764
  {
73414
73765
  name: "panelPaperRule",
73415
73766
  hidden: false
@@ -74658,6 +75009,22 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
74658
75009
  name: "footerFormatter",
74659
75010
  hidden: false
74660
75011
  },
75012
+ {
75013
+ name: "tableBeforeRepeat",
75014
+ hidden: false
75015
+ },
75016
+ {
75017
+ name: "tableBeforeFormatter",
75018
+ hidden: false
75019
+ },
75020
+ {
75021
+ name: "tableAfterRepeat",
75022
+ hidden: false
75023
+ },
75024
+ {
75025
+ name: "tableAfterFormatter",
75026
+ hidden: false
75027
+ },
74661
75028
  {
74662
75029
  name: "rowsColumnsMerge",
74663
75030
  hidden: false
@@ -74838,10 +75205,26 @@ var defaultElementTypeProvider$1 = defaultTypeProvider(hiprint$3);
74838
75205
  name: "tableFooterRepeat",
74839
75206
  hidden: false
74840
75207
  },
75208
+ {
75209
+ name: "tableBeforeRepeat",
75210
+ hidden: false
75211
+ },
75212
+ {
75213
+ name: "tableAfterRepeat",
75214
+ hidden: false
75215
+ },
74841
75216
  {
74842
75217
  name: "footerFormatter",
74843
75218
  hidden: false
74844
75219
  },
75220
+ {
75221
+ name: "tableBeforeFormatter",
75222
+ hidden: false
75223
+ },
75224
+ {
75225
+ name: "tableAfterFormatter",
75226
+ hidden: false
75227
+ },
74845
75228
  {
74846
75229
  name: "rowsColumnsMerge",
74847
75230
  hidden: false
@@ -76427,7 +76810,7 @@ async function ensureHttpClient() {
76427
76810
  }
76428
76811
  const name = "vg-print-vue2";
76429
76812
  const description = "vg-print supports visual drag and drop design templates, with functions such as previewing and exporting PDFs/images. Silent printing can be achieved in conjunction with a dedicated client";
76430
- const version = "1.0.308";
76813
+ const version = "1.0.310";
76431
76814
  const author = "gmcSimple";
76432
76815
  const license = "MIT";
76433
76816
  const main = "dist/vg-print-vue2.cjs.js";
@@ -81209,6 +81592,19 @@ const printData2 = {
81209
81592
  }
81210
81593
  ]
81211
81594
  };
81595
+ const printData3 = {
81596
+ groupList: [
81597
+ { "brand": "Apple", "name": "iPhone 14 Pro Max", "barcode": "190199829853", "amount": 8999 },
81598
+ { "brand": "Apple", "name": "MacBook Air M2", "barcode": "190199820001", "amount": 7999 },
81599
+ { "brand": "Apple", "name": "iPad Pro 12.9", "barcode": "190199820003", "amount": 6999 },
81600
+ { "brand": "Samsung", "name": "Galaxy S23 Ultra", "barcode": "880609820006", "amount": 6999 },
81601
+ { "brand": "Samsung", "name": "Galaxy Tab S9", "barcode": "880609820007", "amount": 4999 },
81602
+ { "brand": "Samsung", "name": "Galaxy Watch6", "barcode": "880609820008", "amount": 1999 },
81603
+ { "brand": "Huawei", "name": "Mate 60 Pro", "barcode": "694148820009", "amount": 6999 },
81604
+ { "brand": "Huawei", "name": "P60", "barcode": "694148820010", "amount": 4999 },
81605
+ { "brand": "Huawei", "name": "WiFi AX3", "barcode": "694148820045", "amount": 399 }
81606
+ ]
81607
+ };
81212
81608
  const template1 = {
81213
81609
  "panels": [
81214
81610
  {
@@ -82845,7 +83241,151 @@ const template2 = {
82845
83241
  }
82846
83242
  ]
82847
83243
  };
82848
- const structureList_vue_vue_type_style_index_0_scoped_ae663800_lang = "";
83244
+ const template3 = {
83245
+ "panels": [
83246
+ {
83247
+ "index": 0,
83248
+ "name": "分组序号续编",
83249
+ "height": 297,
83250
+ "width": 210,
83251
+ "paperHeader": 0,
83252
+ "paperFooter": 835.5,
83253
+ "printElements": [
83254
+ {
83255
+ "options": {
83256
+ "left": 18,
83257
+ "top": 27,
83258
+ "height": 24,
83259
+ "width": 555,
83260
+ "title": "分组序号续编示例",
83261
+ "fontSize": 16,
83262
+ "fontWeight": "700",
83263
+ "textAlign": "center",
83264
+ "right": 571.998046875,
83265
+ "bottom": 51.498046875,
83266
+ "vCenter": 294.498046875,
83267
+ "hCenter": 39.498046875,
83268
+ "eid": "6a5a6836-a14a-42d2-bead-c3bc5162ba8c"
83269
+ },
83270
+ "printElementType": {
83271
+ "title": "文本",
83272
+ "type": "text"
83273
+ }
83274
+ },
83275
+ {
83276
+ "options": {
83277
+ "left": 18,
83278
+ "top": 57,
83279
+ "height": 18,
83280
+ "width": 555,
83281
+ "title": "按品牌分组,序号列开启“分组序号续编”后会跨分组连续编号",
83282
+ "fontSize": 10.5,
83283
+ "color": "#d93838",
83284
+ "eid": "74b13c4d-1934-4f07-8850-68ac742b4c00"
83285
+ },
83286
+ "printElementType": {
83287
+ "title": "文本",
83288
+ "type": "text"
83289
+ }
83290
+ },
83291
+ {
83292
+ "options": {
83293
+ "left": 18,
83294
+ "top": 85.5,
83295
+ "height": 745.5,
83296
+ "width": 555,
83297
+ "field": "groupList",
83298
+ "tableHeaderRepeat": "first",
83299
+ "tableFooterRepeat": "no",
83300
+ "groupSequenceContinue": true,
83301
+ "tableHeaderBackground": "#f5f5f5",
83302
+ "tableHeaderFontWeight": "700",
83303
+ "tableHeaderRowHeight": 18,
83304
+ "tableBodyRowHeight": 18,
83305
+ "groupFieldsFormatter": "function(type,options,data){ return ['brand'] }",
83306
+ "groupFormatter": "function(colTotal,tableData,printData,groupData,options){ var key=(groupData&&groupData.key)||{}; var brand=key.brand||''; return `<td colspan='${colTotal}' style='text-align:left;font-weight:700;background:#f5f5f5;padding:2pt 4pt;'>分组:${brand}</td>` }",
83307
+ "right": 571.998046875,
83308
+ "bottom": 504.99609375,
83309
+ "vCenter": 294.498046875,
83310
+ "hCenter": 294.99609375,
83311
+ "eid": "92157472-9920-42fa-8e71-80cce418caa5",
83312
+ "columns": [
83313
+ [
83314
+ {
83315
+ "width": 45,
83316
+ "title": "序号",
83317
+ "field": "seq",
83318
+ "checked": true,
83319
+ "columnId": "seq",
83320
+ "fixed": false,
83321
+ "rowspan": 1,
83322
+ "colspan": 1,
83323
+ "align": "center",
83324
+ "tableTextType": "sequence"
83325
+ },
83326
+ {
83327
+ "width": 120,
83328
+ "title": "品牌",
83329
+ "field": "brand",
83330
+ "checked": true,
83331
+ "columnId": "brand",
83332
+ "fixed": false,
83333
+ "rowspan": 1,
83334
+ "colspan": 1
83335
+ },
83336
+ {
83337
+ "width": 230,
83338
+ "title": "名称",
83339
+ "field": "name",
83340
+ "checked": true,
83341
+ "columnId": "name",
83342
+ "fixed": false,
83343
+ "rowspan": 1,
83344
+ "colspan": 1
83345
+ },
83346
+ {
83347
+ "width": 160,
83348
+ "title": "条码",
83349
+ "field": "barcode",
83350
+ "checked": true,
83351
+ "columnId": "barcode",
83352
+ "fixed": false,
83353
+ "rowspan": 1,
83354
+ "colspan": 1
83355
+ }
83356
+ ]
83357
+ ]
83358
+ },
83359
+ "printElementType": {
83360
+ "title": "表格",
83361
+ "type": "table",
83362
+ "editable": true,
83363
+ "columnDisplayEditable": true,
83364
+ "columnDisplayIndexEditable": true,
83365
+ "columnTitleEditable": true,
83366
+ "columnResizable": true,
83367
+ "columnAlignEditable": true,
83368
+ "isEnableEditField": true,
83369
+ "isEnableContextMenu": true,
83370
+ "isEnableInsertRow": true,
83371
+ "isEnableDeleteRow": true,
83372
+ "isEnableInsertColumn": true,
83373
+ "isEnableDeleteColumn": true,
83374
+ "isEnableMergeCell": true
83375
+ }
83376
+ }
83377
+ ],
83378
+ "paperNumberLeft": 565.5,
83379
+ "paperNumberTop": 819,
83380
+ "paperNumberContinue": true,
83381
+ "watermarkOptions": {},
83382
+ "panelLayoutOptions": {},
83383
+ "backgroundColor": "#fff",
83384
+ "expandCss": ".products {\n display: flex;\n flex-wrap: wrap;\n position: relative;\n box-sizing: border-box;\n border: 1px solid #c8c9cc;\n padding: 5pt;\n margin-bottom: 5pt;\n}\n.products .mg-row {display: flex;margin-bottom: 5pt;}\n\n.col-25{max-width:25%;flex:0 0 25%}\n.col-75{max-width:75%;flex:0 0 75%}\n.col-100{width:100%;flex:0 0 100%}\n.w-9{width:9%}\n.w-10{width:10%}\n.w-20{width:20%}\n.w-40{width:40%}\n.center{text-align:center}\n\n.custom-table {\n width: 100%;\n}\n.custom-table .custom-th div, .custom-table .custom-tr div {\n font-size: 6pt;\n display: inline-block;\n padding: 2pt 0;\n border-left: 1pt solid #000000;\n border-bottom: 1pt solid #000000;\n vertical-align: top;\n }\n.custom-table .custom-th div:last-child, .custom-table .custom-tr div:last-child {\n border-right: 1px solid #000000;\n }\n.custom-table .custom-th, .custom-table .custom-tr {\n display: block;\n font-size: 0;\n }\n.custom-table .custom-th div span, .custom-table .custom-tr div span {\n margin: 0 5pt;\n }\n.custom-table .custom-th div {\n border-top: 1pt solid #000000;\n }"
83385
+ }
83386
+ ]
83387
+ };
83388
+ const structureList_vue_vue_type_style_index_0_scoped_abf7d896_lang = "";
82849
83389
  const _sfc_main$6 = {
82850
83390
  name: "HipStructureList",
82851
83391
  props: {
@@ -82854,6 +83394,9 @@ const _sfc_main$6 = {
82854
83394
  docked: { type: Boolean, default: false },
82855
83395
  propDocked: { type: Boolean, default: false }
82856
83396
  },
83397
+ inject: {
83398
+ vgPrintGetViewportRect: { default: null }
83399
+ },
82857
83400
  watch: {
82858
83401
  docked() {
82859
83402
  if (this.isMobile)
@@ -82894,7 +83437,9 @@ const _sfc_main$6 = {
82894
83437
  _userPlaced: false,
82895
83438
  resizing: false,
82896
83439
  resizeDir: "",
82897
- resizeStart: { x: 0, y: 0, w: 0, h: 0, l: 0, t: 0 }
83440
+ resizeStart: { x: 0, y: 0, w: 0, h: 0, l: 0, t: 0 },
83441
+ _hostResizeObserver: null,
83442
+ _hostResizeRaf: 0
82898
83443
  };
82899
83444
  },
82900
83445
  computed: {
@@ -82922,6 +83467,7 @@ const _sfc_main$6 = {
82922
83467
  else {
82923
83468
  this.placeDefault();
82924
83469
  }
83470
+ this.setupHostResizeObserver();
82925
83471
  } catch (e2) {
82926
83472
  }
82927
83473
  });
@@ -82932,8 +83478,65 @@ const _sfc_main$6 = {
82932
83478
  this.unsubscribes.forEach((u2) => ev.off(u2));
82933
83479
  }
82934
83480
  window.removeEventListener("resize", this.onWindowResize);
83481
+ try {
83482
+ this.teardownHostResizeObserver();
83483
+ } catch (_2) {
83484
+ }
82935
83485
  },
82936
83486
  methods: {
83487
+ getViewportRect() {
83488
+ try {
83489
+ const injected = this.vgPrintGetViewportRect;
83490
+ const rect = typeof injected === "function" ? injected() : null;
83491
+ if (rect && rect.width && rect.height)
83492
+ return rect;
83493
+ } catch (_2) {
83494
+ }
83495
+ const w2 = window.innerWidth || document.documentElement.clientWidth || 0;
83496
+ const h2 = window.innerHeight || document.documentElement.clientHeight || 0;
83497
+ return { left: 0, top: 0, width: w2, height: h2, right: w2, bottom: h2 };
83498
+ },
83499
+ setupHostResizeObserver() {
83500
+ const host = this.$el && this.$el.closest ? this.$el.closest(".vg-designer-root") : null;
83501
+ if (!host)
83502
+ return;
83503
+ if (this._hostResizeObserver && this._hostResizeObserver.__targetEl === host)
83504
+ return;
83505
+ try {
83506
+ this.teardownHostResizeObserver();
83507
+ } catch (_2) {
83508
+ }
83509
+ const RO = typeof ResizeObserver !== "undefined" ? ResizeObserver : null;
83510
+ if (!RO)
83511
+ return;
83512
+ const onResize = () => {
83513
+ if (this._hostResizeRaf)
83514
+ cancelAnimationFrame(this._hostResizeRaf);
83515
+ this._hostResizeRaf = requestAnimationFrame(() => {
83516
+ this._hostResizeRaf = 0;
83517
+ try {
83518
+ this.onWindowResize();
83519
+ } catch (_2) {
83520
+ }
83521
+ });
83522
+ };
83523
+ const ro2 = new RO(onResize);
83524
+ ro2.__targetEl = host;
83525
+ ro2.observe(host);
83526
+ this._hostResizeObserver = ro2;
83527
+ },
83528
+ teardownHostResizeObserver() {
83529
+ const ro2 = this._hostResizeObserver;
83530
+ this._hostResizeObserver = null;
83531
+ if (this._hostResizeRaf) {
83532
+ cancelAnimationFrame(this._hostResizeRaf);
83533
+ this._hostResizeRaf = 0;
83534
+ }
83535
+ try {
83536
+ ro2 && ro2.disconnect && ro2.disconnect();
83537
+ } catch (_2) {
83538
+ }
83539
+ },
82937
83540
  getPanel() {
82938
83541
  return this.template && this.template.editingPanel;
82939
83542
  },
@@ -83040,8 +83643,9 @@ const _sfc_main$6 = {
83040
83643
  onDragMove(e2) {
83041
83644
  if (!this.dragging)
83042
83645
  return;
83043
- const ww = window.innerWidth;
83044
- const wh = window.innerHeight;
83646
+ const vp = this.getViewportRect();
83647
+ const ww = vp.width;
83648
+ const wh = vp.height;
83045
83649
  let boxW = this.panelSize && this.panelSize.width ? this.panelSize.width : null;
83046
83650
  let boxH = this.panelSize && this.panelSize.height ? this.panelSize.height : null;
83047
83651
  if (!boxW || !boxH) {
@@ -83055,10 +83659,12 @@ const _sfc_main$6 = {
83055
83659
  boxW = 220;
83056
83660
  if (!boxH)
83057
83661
  boxH = 200;
83058
- const maxLeft = Math.max(0, ww - boxW);
83059
- const maxTop = Math.max(0, wh - boxH);
83060
- this.pos.left = Math.max(0, Math.min(maxLeft, e2.clientX - this.dragOffset.x));
83061
- this.pos.top = Math.max(0, Math.min(maxTop, e2.clientY - this.dragOffset.y));
83662
+ const minLeft = vp.left;
83663
+ const minTop = vp.top;
83664
+ const maxLeft = vp.right - boxW;
83665
+ const maxTop = vp.bottom - boxH;
83666
+ this.pos.left = Math.max(minLeft, Math.min(maxLeft, e2.clientX - this.dragOffset.x));
83667
+ this.pos.top = Math.max(minTop, Math.min(maxTop, e2.clientY - this.dragOffset.y));
83062
83668
  },
83063
83669
  onDragEnd() {
83064
83670
  this.dragging = false;
@@ -83093,32 +83699,35 @@ const _sfc_main$6 = {
83093
83699
  placeDefault(skipMark) {
83094
83700
  if (this.isMobile)
83095
83701
  return;
83096
- const ww = window.innerWidth || document.documentElement.clientWidth || 0;
83097
- const wh = window.innerHeight || document.documentElement.clientHeight || 0;
83702
+ const vp = this.getViewportRect();
83703
+ const ww = vp.width || 0;
83704
+ const wh = vp.height || 0;
83098
83705
  if (!ww || !wh)
83099
83706
  return;
83100
83707
  const padding = 12;
83101
83708
  const gap = 12;
83102
83709
  const structW = this.panelSize && this.panelSize.width ? this.panelSize.width : 220;
83103
83710
  const propRect = this.getVisiblePropRect();
83104
- const propLeft = propRect ? propRect.left : ww - 320 - 10;
83105
- const left = Math.max(padding, Math.min(propLeft - gap - structW, ww - structW - padding));
83711
+ const propLeft = propRect ? propRect.left : vp.right - 320 - 10;
83712
+ const left = Math.max(vp.left + padding, Math.min(propLeft - gap - structW, vp.right - structW - padding));
83713
+ const top = vp.top + Math.max(padding, Math.min(76, wh - 120));
83106
83714
  this.pos.left = left;
83107
- this.pos.top = Math.max(padding, Math.min(76, wh - 120));
83715
+ this.pos.top = top;
83108
83716
  if (!skipMark)
83109
83717
  this._userPlaced = false;
83110
83718
  this.clampToViewport();
83111
83719
  },
83112
83720
  capturePin() {
83113
- const ww = window.innerWidth || 0;
83114
- const wh = window.innerHeight || 0;
83721
+ const vp = this.getViewportRect();
83722
+ const ww = vp.width || 0;
83723
+ const wh = vp.height || 0;
83115
83724
  if (!ww || !wh)
83116
83725
  return;
83117
83726
  const rect = this.$el ? this.$el.getBoundingClientRect() : { left: this.pos.left || 0, top: this.pos.top || 0, right: (this.pos.left || 0) + 220, bottom: (this.pos.top || 0) + 360, width: 220, height: 360 };
83118
- const leftDist = Math.max(0, rect.left);
83119
- const rightDist = Math.max(0, ww - rect.right);
83120
- const topDist = Math.max(0, rect.top);
83121
- const bottomDist = Math.max(0, wh - rect.bottom);
83727
+ const leftDist = Math.max(0, rect.left - vp.left);
83728
+ const rightDist = Math.max(0, vp.right - rect.right);
83729
+ const topDist = Math.max(0, rect.top - vp.top);
83730
+ const bottomDist = Math.max(0, vp.bottom - rect.bottom);
83122
83731
  const xMode = leftDist <= rightDist ? "left" : "right";
83123
83732
  const yMode = topDist <= bottomDist ? "top" : "bottom";
83124
83733
  const x2 = xMode === "right" ? rightDist : leftDist;
@@ -83128,8 +83737,9 @@ const _sfc_main$6 = {
83128
83737
  applyDockLayout() {
83129
83738
  if (this.isMobile)
83130
83739
  return;
83131
- const ww = window.innerWidth || 0;
83132
- const wh = window.innerHeight || 0;
83740
+ const vp = this.getViewportRect();
83741
+ const ww = vp.width || 0;
83742
+ const wh = vp.height || 0;
83133
83743
  if (!ww || !wh)
83134
83744
  return;
83135
83745
  const padding = 8;
@@ -83138,26 +83748,29 @@ const _sfc_main$6 = {
83138
83748
  const yMode = this._dock && this._dock.yMode ? this._dock.yMode : "top";
83139
83749
  const x2 = this._dock && typeof this._dock.x === "number" ? this._dock.x : 12;
83140
83750
  const y2 = this._dock && typeof this._dock.y === "number" ? this._dock.y : 76;
83141
- const desiredLeft = xMode === "right" ? ww - rect.width - x2 : x2;
83142
- const desiredTop = yMode === "bottom" ? wh - rect.height - y2 : y2;
83143
- this.pos.left = Math.max(padding, Math.min(ww - rect.width - padding, desiredLeft));
83144
- this.pos.top = Math.max(padding, Math.min(wh - rect.height - padding, desiredTop));
83751
+ const desiredLeft = xMode === "right" ? vp.right - rect.width - x2 : vp.left + x2;
83752
+ const desiredTop = yMode === "bottom" ? vp.bottom - rect.height - y2 : vp.top + y2;
83753
+ this.pos.left = Math.max(vp.left + padding, Math.min(vp.right - rect.width - padding, desiredLeft));
83754
+ this.pos.top = Math.max(vp.top + padding, Math.min(vp.bottom - rect.height - padding, desiredTop));
83145
83755
  this.clampToViewport();
83146
83756
  },
83147
83757
  clampToViewport() {
83148
83758
  const rect = this.$el.getBoundingClientRect();
83149
- const ww = window.innerWidth;
83150
- const wh = window.innerHeight;
83759
+ const vp = this.getViewportRect();
83760
+ const ww = vp.width;
83761
+ const wh = vp.height;
83151
83762
  let width2 = rect.width;
83152
83763
  let height = rect.height;
83153
83764
  if (width2 > ww)
83154
83765
  width2 = ww;
83155
83766
  if (height > wh)
83156
83767
  height = wh;
83157
- const maxLeft = Math.max(0, ww - width2);
83158
- const maxTop = Math.max(0, wh - height);
83159
- const nextLeft = Math.max(0, Math.min(maxLeft, this.pos.left));
83160
- const nextTop = Math.max(0, Math.min(maxTop, this.pos.top));
83768
+ const minLeft = vp.left;
83769
+ const minTop = vp.top;
83770
+ const maxLeft = vp.right - width2;
83771
+ const maxTop = vp.bottom - height;
83772
+ const nextLeft = Math.max(minLeft, Math.min(maxLeft, this.pos.left));
83773
+ const nextTop = Math.max(minTop, Math.min(maxTop, this.pos.top));
83161
83774
  if (width2 !== rect.width || height !== rect.height) {
83162
83775
  this.panelSize = { width: width2, height };
83163
83776
  }
@@ -83186,26 +83799,27 @@ const _sfc_main$6 = {
83186
83799
  const dx = e2.clientX - this.resizeStart.x;
83187
83800
  const dy = e2.clientY - this.resizeStart.y;
83188
83801
  const start = this.resizeStart;
83189
- const ww = window.innerWidth;
83190
- const wh = window.innerHeight;
83802
+ const vp = this.getViewportRect();
83803
+ const ww = vp.width;
83804
+ const wh = vp.height;
83191
83805
  const minW = 200;
83192
83806
  const minH = 150;
83193
- const rightEdge = Math.min(start.l + start.w, ww);
83807
+ const rightEdge = Math.min(start.l + start.w, vp.right);
83194
83808
  let newW = start.w;
83195
83809
  let newH = start.h;
83196
83810
  let newL = start.l;
83197
83811
  if (this.resizeDir.includes("left")) {
83198
83812
  const targetL = start.l + dx;
83199
- const clampedL = Math.max(0, Math.min(targetL, rightEdge - minW));
83813
+ const clampedL = Math.max(vp.left, Math.min(targetL, rightEdge - minW));
83200
83814
  newL = clampedL;
83201
83815
  newW = rightEdge - clampedL;
83202
83816
  }
83203
83817
  if (this.resizeDir.includes("right")) {
83204
- const maxW = Math.max(minW, ww - start.l);
83818
+ const maxW = Math.max(minW, vp.right - start.l);
83205
83819
  newW = Math.min(Math.max(minW, start.w + dx), maxW);
83206
83820
  }
83207
83821
  if (this.resizeDir.includes("bottom")) {
83208
- const maxH = Math.max(minH, wh - start.t);
83822
+ const maxH = Math.max(minH, vp.bottom - start.t);
83209
83823
  newH = Math.min(Math.max(minH, start.h + dy), maxH);
83210
83824
  }
83211
83825
  this.panelSize = { width: newW, height: newH };
@@ -83256,7 +83870,7 @@ var __component__$6 = /* @__PURE__ */ normalizeComponent(
83256
83870
  _sfc_staticRenderFns$6,
83257
83871
  false,
83258
83872
  null,
83259
- "ae663800",
83873
+ "abf7d896",
83260
83874
  null,
83261
83875
  null
83262
83876
  );
@@ -84154,7 +84768,7 @@ var __component__$5 = /* @__PURE__ */ normalizeComponent(
84154
84768
  null
84155
84769
  );
84156
84770
  const SecondaryToolbar = __component__$5.exports;
84157
- const HistoryPanel_vue_vue_type_style_index_0_scoped_115610f2_lang = "";
84771
+ const HistoryPanel_vue_vue_type_style_index_0_scoped_fe7421b7_lang = "";
84158
84772
  const _sfc_main$4 = {
84159
84773
  name: "HistoryPanel",
84160
84774
  props: {
@@ -84163,6 +84777,9 @@ const _sfc_main$4 = {
84163
84777
  docked: { type: Boolean, default: false },
84164
84778
  structDocked: { type: Boolean, default: false }
84165
84779
  },
84780
+ inject: {
84781
+ vgPrintGetViewportRect: { default: null }
84782
+ },
84166
84783
  watch: {
84167
84784
  docked() {
84168
84785
  if (this.isMobile)
@@ -84203,7 +84820,9 @@ const _sfc_main$4 = {
84203
84820
  _userPlaced: false,
84204
84821
  resizing: false,
84205
84822
  resizeDir: "",
84206
- resizeStart: { x: 0, y: 0, w: 0, h: 0, l: 0, t: 0 }
84823
+ resizeStart: { x: 0, y: 0, w: 0, h: 0, l: 0, t: 0 },
84824
+ _hostResizeObserver: null,
84825
+ _hostResizeRaf: 0
84207
84826
  };
84208
84827
  },
84209
84828
  computed: {
@@ -84229,6 +84848,7 @@ const _sfc_main$4 = {
84229
84848
  else {
84230
84849
  this.placeDefault();
84231
84850
  }
84851
+ this.setupHostResizeObserver();
84232
84852
  } catch (e2) {
84233
84853
  }
84234
84854
  });
@@ -84238,8 +84858,65 @@ const _sfc_main$4 = {
84238
84858
  beforeDestroy() {
84239
84859
  historyStore.unsubscribe(this.refreshFromStore);
84240
84860
  window.removeEventListener("resize", this.onWindowResize);
84861
+ try {
84862
+ this.teardownHostResizeObserver();
84863
+ } catch (_2) {
84864
+ }
84241
84865
  },
84242
84866
  methods: {
84867
+ getViewportRect() {
84868
+ try {
84869
+ const injected = this.vgPrintGetViewportRect;
84870
+ const rect = typeof injected === "function" ? injected() : null;
84871
+ if (rect && rect.width && rect.height)
84872
+ return rect;
84873
+ } catch (_2) {
84874
+ }
84875
+ const w2 = window.innerWidth || document.documentElement.clientWidth || 0;
84876
+ const h2 = window.innerHeight || document.documentElement.clientHeight || 0;
84877
+ return { left: 0, top: 0, width: w2, height: h2, right: w2, bottom: h2 };
84878
+ },
84879
+ setupHostResizeObserver() {
84880
+ const host = this.$el && this.$el.closest ? this.$el.closest(".vg-designer-root") : null;
84881
+ if (!host)
84882
+ return;
84883
+ if (this._hostResizeObserver && this._hostResizeObserver.__targetEl === host)
84884
+ return;
84885
+ try {
84886
+ this.teardownHostResizeObserver();
84887
+ } catch (_2) {
84888
+ }
84889
+ const RO = typeof ResizeObserver !== "undefined" ? ResizeObserver : null;
84890
+ if (!RO)
84891
+ return;
84892
+ const onResize = () => {
84893
+ if (this._hostResizeRaf)
84894
+ cancelAnimationFrame(this._hostResizeRaf);
84895
+ this._hostResizeRaf = requestAnimationFrame(() => {
84896
+ this._hostResizeRaf = 0;
84897
+ try {
84898
+ this.onWindowResize();
84899
+ } catch (_2) {
84900
+ }
84901
+ });
84902
+ };
84903
+ const ro2 = new RO(onResize);
84904
+ ro2.__targetEl = host;
84905
+ ro2.observe(host);
84906
+ this._hostResizeObserver = ro2;
84907
+ },
84908
+ teardownHostResizeObserver() {
84909
+ const ro2 = this._hostResizeObserver;
84910
+ this._hostResizeObserver = null;
84911
+ if (this._hostResizeRaf) {
84912
+ cancelAnimationFrame(this._hostResizeRaf);
84913
+ this._hostResizeRaf = 0;
84914
+ }
84915
+ try {
84916
+ ro2 && ro2.disconnect && ro2.disconnect();
84917
+ } catch (_2) {
84918
+ }
84919
+ },
84243
84920
  refreshFromStore() {
84244
84921
  this.entries = historyStore.getEntries();
84245
84922
  this.cursor = historyStore.getCursor();
@@ -84263,8 +84940,9 @@ const _sfc_main$4 = {
84263
84940
  onDragMove(e2) {
84264
84941
  if (!this.dragging)
84265
84942
  return;
84266
- const ww = window.innerWidth;
84267
- const wh = window.innerHeight;
84943
+ const vp = this.getViewportRect();
84944
+ const ww = vp.width;
84945
+ const wh = vp.height;
84268
84946
  let boxW = this.panelSize && this.panelSize.width ? this.panelSize.width : null;
84269
84947
  let boxH = this.panelSize && this.panelSize.height ? this.panelSize.height : null;
84270
84948
  if (!boxW || !boxH) {
@@ -84278,10 +84956,12 @@ const _sfc_main$4 = {
84278
84956
  boxW = 220;
84279
84957
  if (!boxH)
84280
84958
  boxH = 200;
84281
- const maxLeft = Math.max(0, ww - boxW);
84282
- const maxTop = Math.max(0, wh - boxH);
84283
- this.pos.left = Math.max(0, Math.min(maxLeft, e2.clientX - this.dragOffset.x));
84284
- this.pos.top = Math.max(0, Math.min(maxTop, e2.clientY - this.dragOffset.y));
84959
+ const minLeft = vp.left;
84960
+ const minTop = vp.top;
84961
+ const maxLeft = vp.right - boxW;
84962
+ const maxTop = vp.bottom - boxH;
84963
+ this.pos.left = Math.max(minLeft, Math.min(maxLeft, e2.clientX - this.dragOffset.x));
84964
+ this.pos.top = Math.max(minTop, Math.min(maxTop, e2.clientY - this.dragOffset.y));
84285
84965
  },
84286
84966
  onDragEnd() {
84287
84967
  this.dragging = false;
@@ -84316,8 +84996,9 @@ const _sfc_main$4 = {
84316
84996
  placeDefault(skipMark) {
84317
84997
  if (this.isMobile)
84318
84998
  return;
84319
- const ww = window.innerWidth || document.documentElement.clientWidth || 0;
84320
- const wh = window.innerHeight || document.documentElement.clientHeight || 0;
84999
+ const vp = this.getViewportRect();
85000
+ const ww = vp.width || 0;
85001
+ const wh = vp.height || 0;
84321
85002
  if (!ww || !wh)
84322
85003
  return;
84323
85004
  const padding = 12;
@@ -84326,30 +85007,31 @@ const _sfc_main$4 = {
84326
85007
  if (struct) {
84327
85008
  const rect = struct.getBoundingClientRect();
84328
85009
  const panelW = this.panelSize && this.panelSize.width ? this.panelSize.width : rect.width;
84329
- this.pos.left = Math.max(padding, Math.min(ww - panelW - padding, rect.left));
84330
- this.pos.top = Math.max(padding, Math.min(wh - 150 - padding, rect.bottom + gap));
85010
+ this.pos.left = Math.max(vp.left + padding, Math.min(vp.right - panelW - padding, rect.left));
85011
+ this.pos.top = Math.max(vp.top + padding, Math.min(vp.bottom - 150 - padding, rect.bottom + gap));
84331
85012
  } else {
84332
85013
  const propRect = this.getVisiblePropRect();
84333
- const propLeft = propRect ? propRect.left : ww - 320 - 10;
85014
+ const propLeft = propRect ? propRect.left : vp.right - 320 - 10;
84334
85015
  const panelW = this.panelSize && this.panelSize.width ? this.panelSize.width : 220;
84335
- const left = Math.max(padding, Math.min(propLeft - 12 - panelW, ww - panelW - padding));
85016
+ const left = Math.max(vp.left + padding, Math.min(propLeft - 12 - panelW, vp.right - panelW - padding));
84336
85017
  this.pos.left = left;
84337
- this.pos.top = Math.max(padding, Math.min(wh - 150 - padding, 50));
85018
+ this.pos.top = Math.max(vp.top + padding, Math.min(vp.bottom - 150 - padding, vp.top + 50));
84338
85019
  }
84339
85020
  if (!skipMark)
84340
85021
  this._userPlaced = false;
84341
85022
  this.clampToViewport();
84342
85023
  },
84343
85024
  capturePin() {
84344
- const ww = window.innerWidth || 0;
84345
- const wh = window.innerHeight || 0;
85025
+ const vp = this.getViewportRect();
85026
+ const ww = vp.width || 0;
85027
+ const wh = vp.height || 0;
84346
85028
  if (!ww || !wh)
84347
85029
  return;
84348
85030
  const rect = this.$el ? this.$el.getBoundingClientRect() : { left: this.pos.left || 0, top: this.pos.top || 0, right: (this.pos.left || 0) + 220, bottom: (this.pos.top || 0) + 240, width: 220, height: 240 };
84349
- const leftDist = Math.max(0, rect.left);
84350
- const rightDist = Math.max(0, ww - rect.right);
84351
- const topDist = Math.max(0, rect.top);
84352
- const bottomDist = Math.max(0, wh - rect.bottom);
85031
+ const leftDist = Math.max(0, rect.left - vp.left);
85032
+ const rightDist = Math.max(0, vp.right - rect.right);
85033
+ const topDist = Math.max(0, rect.top - vp.top);
85034
+ const bottomDist = Math.max(0, vp.bottom - rect.bottom);
84353
85035
  const xMode = leftDist <= rightDist ? "left" : "right";
84354
85036
  const yMode = topDist <= bottomDist ? "top" : "bottom";
84355
85037
  const x2 = xMode === "right" ? rightDist : leftDist;
@@ -84359,8 +85041,9 @@ const _sfc_main$4 = {
84359
85041
  applyDockLayout() {
84360
85042
  if (this.isMobile)
84361
85043
  return;
84362
- const ww = window.innerWidth || 0;
84363
- const wh = window.innerHeight || 0;
85044
+ const vp = this.getViewportRect();
85045
+ const ww = vp.width || 0;
85046
+ const wh = vp.height || 0;
84364
85047
  if (!ww || !wh)
84365
85048
  return;
84366
85049
  const padding = 8;
@@ -84369,26 +85052,29 @@ const _sfc_main$4 = {
84369
85052
  const yMode = this._dock && this._dock.yMode ? this._dock.yMode : "top";
84370
85053
  const x2 = this._dock && typeof this._dock.x === "number" ? this._dock.x : 12;
84371
85054
  const y2 = this._dock && typeof this._dock.y === "number" ? this._dock.y : 76;
84372
- const desiredLeft = xMode === "right" ? ww - r2.width - x2 : x2;
84373
- const desiredTop = yMode === "bottom" ? wh - r2.height - y2 : y2;
84374
- this.pos.left = Math.max(padding, Math.min(ww - r2.width - padding, desiredLeft));
84375
- this.pos.top = Math.max(padding, Math.min(wh - r2.height - padding, desiredTop));
85055
+ const desiredLeft = xMode === "right" ? vp.right - r2.width - x2 : vp.left + x2;
85056
+ const desiredTop = yMode === "bottom" ? vp.bottom - r2.height - y2 : vp.top + y2;
85057
+ this.pos.left = Math.max(vp.left + padding, Math.min(vp.right - r2.width - padding, desiredLeft));
85058
+ this.pos.top = Math.max(vp.top + padding, Math.min(vp.bottom - r2.height - padding, desiredTop));
84376
85059
  this.clampToViewport();
84377
85060
  },
84378
85061
  clampToViewport() {
84379
85062
  const rect = this.$el.getBoundingClientRect();
84380
- const ww = window.innerWidth;
84381
- const wh = window.innerHeight;
85063
+ const vp = this.getViewportRect();
85064
+ const ww = vp.width;
85065
+ const wh = vp.height;
84382
85066
  let width2 = rect.width;
84383
85067
  let height = rect.height;
84384
85068
  if (width2 > ww)
84385
85069
  width2 = ww;
84386
85070
  if (height > wh)
84387
85071
  height = wh;
84388
- const maxLeft = Math.max(0, ww - width2);
84389
- const maxTop = Math.max(0, wh - height);
84390
- const nextLeft = Math.max(0, Math.min(maxLeft, this.pos.left));
84391
- const nextTop = Math.max(0, Math.min(maxTop, this.pos.top));
85072
+ const minLeft = vp.left;
85073
+ const minTop = vp.top;
85074
+ const maxLeft = vp.right - width2;
85075
+ const maxTop = vp.bottom - height;
85076
+ const nextLeft = Math.max(minLeft, Math.min(maxLeft, this.pos.left));
85077
+ const nextTop = Math.max(minTop, Math.min(maxTop, this.pos.top));
84392
85078
  if (width2 !== rect.width || height !== rect.height) {
84393
85079
  this.panelSize = { width: width2, height };
84394
85080
  }
@@ -84417,26 +85103,27 @@ const _sfc_main$4 = {
84417
85103
  const dx = e2.clientX - this.resizeStart.x;
84418
85104
  const dy = e2.clientY - this.resizeStart.y;
84419
85105
  const start = this.resizeStart;
84420
- const ww = window.innerWidth;
84421
- const wh = window.innerHeight;
85106
+ const vp = this.getViewportRect();
85107
+ const ww = vp.width;
85108
+ const wh = vp.height;
84422
85109
  const minW = 200;
84423
85110
  const minH = 150;
84424
- const rightEdge = Math.min(start.l + start.w, ww);
85111
+ const rightEdge = Math.min(start.l + start.w, vp.right);
84425
85112
  let newW = start.w;
84426
85113
  let newH = start.h;
84427
85114
  let newL = start.l;
84428
85115
  if (this.resizeDir.includes("left")) {
84429
85116
  const targetL = start.l + dx;
84430
- const clampedL = Math.max(0, Math.min(targetL, rightEdge - minW));
85117
+ const clampedL = Math.max(vp.left, Math.min(targetL, rightEdge - minW));
84431
85118
  newL = clampedL;
84432
85119
  newW = rightEdge - clampedL;
84433
85120
  }
84434
85121
  if (this.resizeDir.includes("right")) {
84435
- const maxW = Math.max(minW, ww - start.l);
85122
+ const maxW = Math.max(minW, vp.right - start.l);
84436
85123
  newW = Math.min(Math.max(minW, start.w + dx), maxW);
84437
85124
  }
84438
85125
  if (this.resizeDir.includes("bottom")) {
84439
- const maxH = Math.max(minH, wh - start.t);
85126
+ const maxH = Math.max(minH, vp.bottom - start.t);
84440
85127
  newH = Math.min(Math.max(minH, start.h + dy), maxH);
84441
85128
  }
84442
85129
  this.panelSize = { width: newW, height: newH };
@@ -84487,12 +85174,12 @@ var __component__$4 = /* @__PURE__ */ normalizeComponent(
84487
85174
  _sfc_staticRenderFns$4,
84488
85175
  false,
84489
85176
  null,
84490
- "115610f2",
85177
+ "fe7421b7",
84491
85178
  null,
84492
85179
  null
84493
85180
  );
84494
85181
  const HistoryPanel = __component__$4.exports;
84495
- const DesignerOverview_vue_vue_type_style_index_0_scoped_8f326d44_lang = "";
85182
+ const DesignerOverview_vue_vue_type_style_index_0_scoped_25bd53f7_lang = "";
84496
85183
  const _sfc_main$3 = {
84497
85184
  name: "DesignerOverview",
84498
85185
  props: {
@@ -84507,6 +85194,9 @@ const _sfc_main$3 = {
84507
85194
  emptyCanvasText: { type: String, default: "暂无画布内容" },
84508
85195
  unavailableText: { type: String, default: "概览图暂时不可用" }
84509
85196
  },
85197
+ inject: {
85198
+ vgPrintGetViewportRect: { default: null }
85199
+ },
84510
85200
  data() {
84511
85201
  return {
84512
85202
  collapsed: false,
@@ -84519,6 +85209,8 @@ const _sfc_main$3 = {
84519
85209
  contentEl: null,
84520
85210
  mutationObserver: null,
84521
85211
  resizeObserver: null,
85212
+ hostResizeObserver: null,
85213
+ hostResizeRaf: 0,
84522
85214
  renderTimer: null,
84523
85215
  rafId: 0,
84524
85216
  retryTimer: null,
@@ -84527,8 +85219,16 @@ const _sfc_main$3 = {
84527
85219
  },
84528
85220
  computed: {
84529
85221
  panelStyle() {
84530
- if (!this.pos)
84531
- return {};
85222
+ const vp = this.getViewportRect ? this.getViewportRect() : null;
85223
+ if (!this.pos) {
85224
+ const viewportH = window.innerHeight || document.documentElement.clientHeight || 0;
85225
+ const left = vp && typeof vp.left === "number" ? vp.left + 1 : 1;
85226
+ const bottom = vp && typeof vp.bottom === "number" ? Math.max(0, viewportH - vp.bottom) + 10 : 10;
85227
+ return {
85228
+ left: `${left}px`,
85229
+ bottom: `${bottom}px`
85230
+ };
85231
+ }
84532
85232
  return {
84533
85233
  left: `${this.pos.left}px`,
84534
85234
  top: `${this.pos.top}px`,
@@ -84570,16 +85270,81 @@ const _sfc_main$3 = {
84570
85270
  window.addEventListener("resize", this.onWindowResize);
84571
85271
  if (this.visible)
84572
85272
  this.bindObservers();
85273
+ this.$nextTick(() => {
85274
+ try {
85275
+ this.setupHostResizeObserver();
85276
+ } catch (_2) {
85277
+ }
85278
+ });
84573
85279
  },
84574
85280
  beforeDestroy() {
84575
85281
  this.onDragEnd();
84576
85282
  this.clearTimers();
84577
85283
  this.unbindObservers();
84578
85284
  window.removeEventListener("resize", this.onWindowResize);
85285
+ try {
85286
+ this.teardownHostResizeObserver();
85287
+ } catch (_2) {
85288
+ }
84579
85289
  },
84580
85290
  methods: {
85291
+ getViewportRect() {
85292
+ try {
85293
+ const injected = this.vgPrintGetViewportRect;
85294
+ const rect = typeof injected === "function" ? injected() : null;
85295
+ if (rect && rect.width && rect.height)
85296
+ return rect;
85297
+ } catch (_2) {
85298
+ }
85299
+ const w2 = window.innerWidth || document.documentElement.clientWidth || 0;
85300
+ const h2 = window.innerHeight || document.documentElement.clientHeight || 0;
85301
+ return { left: 0, top: 0, width: w2, height: h2, right: w2, bottom: h2 };
85302
+ },
85303
+ setupHostResizeObserver() {
85304
+ const root2 = this.$refs.rootRef;
85305
+ const host = root2 && root2.closest ? root2.closest(".vg-designer-root") : null;
85306
+ if (!host)
85307
+ return;
85308
+ if (this.hostResizeObserver && this.hostResizeObserver.__targetEl === host)
85309
+ return;
85310
+ try {
85311
+ this.teardownHostResizeObserver();
85312
+ } catch (_2) {
85313
+ }
85314
+ const RO = typeof ResizeObserver !== "undefined" ? ResizeObserver : null;
85315
+ if (!RO)
85316
+ return;
85317
+ const onResize = () => {
85318
+ if (this.hostResizeRaf)
85319
+ cancelAnimationFrame(this.hostResizeRaf);
85320
+ this.hostResizeRaf = requestAnimationFrame(() => {
85321
+ this.hostResizeRaf = 0;
85322
+ try {
85323
+ this.onWindowResize();
85324
+ } catch (_2) {
85325
+ }
85326
+ });
85327
+ };
85328
+ const ro2 = new RO(onResize);
85329
+ ro2.__targetEl = host;
85330
+ ro2.observe(host);
85331
+ this.hostResizeObserver = ro2;
85332
+ },
85333
+ teardownHostResizeObserver() {
85334
+ const ro2 = this.hostResizeObserver;
85335
+ this.hostResizeObserver = null;
85336
+ if (this.hostResizeRaf) {
85337
+ cancelAnimationFrame(this.hostResizeRaf);
85338
+ this.hostResizeRaf = 0;
85339
+ }
85340
+ try {
85341
+ ro2 && ro2.disconnect && ro2.disconnect();
85342
+ } catch (_2) {
85343
+ }
85344
+ },
84581
85345
  isMobileViewport() {
84582
- return (window.innerWidth || document.documentElement.clientWidth || 0) <= 768;
85346
+ const vp = this.getViewportRect();
85347
+ return (vp && vp.width ? vp.width : 0) <= 768;
84583
85348
  },
84584
85349
  getRootRect() {
84585
85350
  const root2 = this.$refs.rootRef;
@@ -84597,15 +85362,18 @@ const _sfc_main$3 = {
84597
85362
  if (this.isMobileViewport() || !this.pos)
84598
85363
  return;
84599
85364
  const rect = this.getRootRect();
84600
- const ww = window.innerWidth || document.documentElement.clientWidth || 0;
84601
- const wh = window.innerHeight || document.documentElement.clientHeight || 0;
85365
+ const vp = this.getViewportRect();
85366
+ const ww = vp.width || 0;
85367
+ const wh = vp.height || 0;
84602
85368
  if (!ww || !wh)
84603
85369
  return;
84604
- const maxLeft = Math.max(0, ww - rect.width);
84605
- const maxTop = Math.max(0, wh - rect.height);
85370
+ const minLeft = vp.left;
85371
+ const minTop = vp.top;
85372
+ const maxLeft = vp.right - rect.width;
85373
+ const maxTop = vp.bottom - rect.height;
84606
85374
  this.pos = {
84607
- left: Math.max(0, Math.min(maxLeft, this.pos.left)),
84608
- top: Math.max(0, Math.min(maxTop, this.pos.top))
85375
+ left: Math.max(minLeft, Math.min(maxLeft, this.pos.left)),
85376
+ top: Math.max(minTop, Math.min(maxTop, this.pos.top))
84609
85377
  };
84610
85378
  },
84611
85379
  syncPositionFromRect() {
@@ -84639,13 +85407,16 @@ const _sfc_main$3 = {
84639
85407
  if (!this.dragging || this.isMobileViewport())
84640
85408
  return;
84641
85409
  const rect = this.getRootRect();
84642
- const ww = window.innerWidth || document.documentElement.clientWidth || 0;
84643
- const wh = window.innerHeight || document.documentElement.clientHeight || 0;
84644
- const maxLeft = Math.max(0, ww - rect.width);
84645
- const maxTop = Math.max(0, wh - rect.height);
85410
+ const vp = this.getViewportRect();
85411
+ const ww = vp.width || 0;
85412
+ const wh = vp.height || 0;
85413
+ const minLeft = vp.left;
85414
+ const minTop = vp.top;
85415
+ const maxLeft = vp.right - rect.width;
85416
+ const maxTop = vp.bottom - rect.height;
84646
85417
  this.pos = {
84647
- left: Math.max(0, Math.min(maxLeft, e2.clientX - this.dragOffset.x)),
84648
- top: Math.max(0, Math.min(maxTop, e2.clientY - this.dragOffset.y))
85418
+ left: Math.max(minLeft, Math.min(maxLeft, e2.clientX - this.dragOffset.x)),
85419
+ top: Math.max(minTop, Math.min(maxTop, e2.clientY - this.dragOffset.y))
84649
85420
  };
84650
85421
  },
84651
85422
  onDragEnd() {
@@ -84975,7 +85746,7 @@ var __component__$3 = /* @__PURE__ */ normalizeComponent(
84975
85746
  _sfc_staticRenderFns$3,
84976
85747
  false,
84977
85748
  null,
84978
- "8f326d44",
85749
+ "25bd53f7",
84979
85750
  null,
84980
85751
  null
84981
85752
  );
@@ -86287,7 +87058,8 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
86287
87058
  const DataSourceManager = __component__$1.exports;
86288
87059
  const builtinTemplateDefs = [
86289
87060
  { tempId: "local-1", name: "报表表格数据单", desc: "内置模板", template: template1, testData: printData1 },
86290
- { tempId: "local-2", name: "默认模版", desc: "内置模板", template: template2, testData: printData2 }
87061
+ { tempId: "local-2", name: "默认模版", desc: "内置模板", template: template2, testData: printData2 },
87062
+ { tempId: "local-3", name: "分组序号续编", desc: "内置模板", template: template3, testData: printData3 }
86291
87063
  ];
86292
87064
  const THEME_PRESETS = {
86293
87065
  light: { label: "light", colors: { accent: "#580df8", headerBg: "#580df8", headerText: "#ffffff", toolbarBg: "#fbf9ff", panelBg: "#f7f8fc", surfaceBg: "#ffffff", text: "#303133", mutedText: "#606266", border: "rgba(0,0,0,0.08)" } },
@@ -86360,6 +87132,17 @@ const _sfc_main = {
86360
87132
  logoHtml: { type: String, default: "" },
86361
87133
  title: { type: String, default: "" }
86362
87134
  },
87135
+ provide() {
87136
+ return {
87137
+ vgPrintGetViewportRect: () => {
87138
+ try {
87139
+ return this.getVgPrintViewportRect();
87140
+ } catch (_2) {
87141
+ return null;
87142
+ }
87143
+ }
87144
+ };
87145
+ },
86363
87146
  data() {
86364
87147
  const savedLang = normalizeUiLang(ls.get("language"), "");
86365
87148
  const initialLang = savedLang || normalizeUiLang(this.defaultLang || "cn");
@@ -86453,6 +87236,8 @@ const _sfc_main = {
86453
87236
  _ctxSuppressDrag: false,
86454
87237
  footerHeight: 28,
86455
87238
  mainLayoutHeight: 0,
87239
+ _mainLayoutResizeObserver: null,
87240
+ _mainLayoutResizeRaf: 0,
86456
87241
  activeThemeKey: "light",
86457
87242
  // 右侧属性设置悬浮面板状态
86458
87243
  propVisible: true,
@@ -86468,6 +87253,8 @@ const _sfc_main = {
86468
87253
  _propDragOffset: { x: 0, y: 0 },
86469
87254
  // Property Panel Resizing
86470
87255
  propSize: { width: 320, height: null },
87256
+ _propDesiredHeight: 0,
87257
+ _propHeightLocked: false,
86471
87258
  propResizing: false,
86472
87259
  propResizeDir: "",
86473
87260
  propResizeStart: { x: 0, y: 0, w: 0, h: 0, l: 0, t: 0 },
@@ -86528,12 +87315,26 @@ const _sfc_main = {
86528
87315
  },
86529
87316
  // 悬浮属性面板内联样式:初始使用 right 定位,拖拽后使用 left
86530
87317
  propStyle() {
86531
- const top = this.propPos && typeof this.propPos.top === "number" ? `${this.propPos.top}px` : "76px";
87318
+ const vp = this.getVgPrintViewportRect ? this.getVgPrintViewportRect() : { left: 0, top: 0, width: 0, height: 0, right: 0, bottom: 0 };
87319
+ const vpLeft = vp && typeof vp.left === "number" ? vp.left : 0;
87320
+ const vpTop = vp && typeof vp.top === "number" ? vp.top : 0;
87321
+ const vpBottom = vp && typeof vp.bottom === "number" ? vp.bottom : vpTop + (vp && vp.height ? vp.height : 0);
87322
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
87323
+ const defaultTop = vpTop + overlayTop;
87324
+ const topNum = this.propPos && typeof this.propPos.top === "number" ? this.propPos.top : defaultTop;
87325
+ const defaultLeft = vpLeft + 10;
86532
87326
  const isLeftNum = this.propPos && typeof this.propPos.left === "number";
86533
- const left = isLeftNum ? `${this.propPos.left}px` : "10px";
87327
+ const leftNum = isLeftNum ? this.propPos.left : defaultLeft;
86534
87328
  const width2 = this.propSize && this.propSize.width ? `${this.propSize.width}px` : "320px";
86535
- const height = this.propSize && this.propSize.height ? `${this.propSize.height}px` : "auto";
86536
- return { top, left, width: width2, height };
87329
+ const bottomGap = 24;
87330
+ const maxHNum = Math.max(120, vpBottom - bottomGap - defaultTop);
87331
+ const maxHeight = `${maxHNum}px`;
87332
+ const desiredHeight = this.getPropDesiredHeight(vp, overlayTop, bottomGap);
87333
+ let heightNum = desiredHeight;
87334
+ if (this.propSize && typeof this.propSize.height === "number" && this.propSize.height > 0)
87335
+ heightNum = Math.min(this.propSize.height, maxHNum);
87336
+ const height = `${heightNum}px`;
87337
+ return { top: `${topNum}px`, left: `${leftNum}px`, width: width2, height, maxHeight };
86537
87338
  },
86538
87339
  leftSiderCardStyle() {
86539
87340
  const height = this.leftSiderCardHeight > 0 ? `${this.leftSiderCardHeight}px` : "90vh";
@@ -86706,12 +87507,14 @@ const _sfc_main = {
86706
87507
  this.$nextTick(() => {
86707
87508
  try {
86708
87509
  this.syncMainLayoutHeight();
87510
+ this.setupMainLayoutResizeObserver();
86709
87511
  if (!this.isMobile)
86710
87512
  this.placeDefaultProp();
86711
87513
  } catch (_2) {
86712
87514
  }
86713
87515
  });
86714
87516
  window.addEventListener("resize", this.checkMobile);
87517
+ window.addEventListener("resize", this.syncMainLayoutHeight);
86715
87518
  document.addEventListener("mousedown", this.onGlobalMouseDown, true);
86716
87519
  document.addEventListener("scroll", this.closeCtxMenu, true);
86717
87520
  this.templateList = builtinTemplateDefs.slice();
@@ -86851,9 +87654,29 @@ const _sfc_main = {
86851
87654
  });
86852
87655
  }
86853
87656
  },
87657
+ activated() {
87658
+ this.$nextTick(() => {
87659
+ try {
87660
+ this.syncMainLayoutHeight();
87661
+ this.setupMainLayoutResizeObserver();
87662
+ } catch (_2) {
87663
+ }
87664
+ });
87665
+ },
87666
+ deactivated() {
87667
+ try {
87668
+ this.teardownMainLayoutResizeObserver();
87669
+ } catch (_2) {
87670
+ }
87671
+ },
86854
87672
  beforeDestroy() {
87673
+ try {
87674
+ this.teardownMainLayoutResizeObserver();
87675
+ } catch (_2) {
87676
+ }
86855
87677
  window.removeEventListener("keydown", this.onKeydown);
86856
87678
  window.removeEventListener("resize", this.checkMobile);
87679
+ window.removeEventListener("resize", this.syncMainLayoutHeight);
86857
87680
  document.removeEventListener("mousemove", this._onPaginationMoveSimple);
86858
87681
  document.removeEventListener("mousedown", this.onGlobalMouseDown, true);
86859
87682
  document.removeEventListener("pointerdown", this.onDocPointerDownCapture, true);
@@ -86874,6 +87697,17 @@ const _sfc_main = {
86874
87697
  } catch (_2) {
86875
87698
  }
86876
87699
  },
87700
+ beforeRouteLeave(to2, from, next) {
87701
+ try {
87702
+ this.teardownMainLayoutResizeObserver();
87703
+ } catch (_2) {
87704
+ }
87705
+ try {
87706
+ this.$ls && this.$ls.remove && this.$ls.remove("KEY_TEMPLATE_TASKS");
87707
+ } catch (_2) {
87708
+ }
87709
+ next();
87710
+ },
86877
87711
  methods: {
86878
87712
  tm(key, fallback, params) {
86879
87713
  try {
@@ -87111,19 +87945,136 @@ const _sfc_main = {
87111
87945
  } catch (_2) {
87112
87946
  }
87113
87947
  },
87948
+ getOverlayBaseTop() {
87949
+ try {
87950
+ let h2 = 0;
87951
+ if (this.showOpt && this.showOpt.showHeader && this.$refs && this.$refs.headerWrapRef) {
87952
+ h2 += this.$refs.headerWrapRef.offsetHeight || 0;
87953
+ }
87954
+ if (this.showOpt && this.showOpt.showToolbar && this.$refs && this.$refs.toolbarWrapRef) {
87955
+ h2 += this.$refs.toolbarWrapRef.offsetHeight || 0;
87956
+ }
87957
+ if (!h2)
87958
+ return 76;
87959
+ return h2 + 8;
87960
+ } catch (_2) {
87961
+ return 76;
87962
+ }
87963
+ },
87964
+ getPropDesiredHeight(vp, overlayTop, bottomGap) {
87965
+ const minH = 120;
87966
+ const vpTop = vp && typeof vp.top === "number" ? vp.top : 0;
87967
+ const vpBottom = vp && typeof vp.bottom === "number" ? vp.bottom : vpTop + (vp && vp.height ? vp.height : 0);
87968
+ const baseMaxH = Math.max(minH, vpBottom - bottomGap - (vpTop + overlayTop));
87969
+ const defaultHeight = Math.min(600, baseMaxH);
87970
+ if (this._propHeightLocked) {
87971
+ const locked = this._propDesiredHeight && this._propDesiredHeight > 0 ? this._propDesiredHeight : this.propSize && this.propSize.height ? this.propSize.height : defaultHeight;
87972
+ return Math.max(minH, Math.min(locked, baseMaxH));
87973
+ }
87974
+ if (this._propDesiredHeight && this._propDesiredHeight > 0)
87975
+ return Math.max(minH, Math.min(this._propDesiredHeight, baseMaxH));
87976
+ this._propDesiredHeight = defaultHeight;
87977
+ return defaultHeight;
87978
+ },
87979
+ getVgPrintViewportRect() {
87980
+ try {
87981
+ const el2 = this.$refs && this.$refs.pageWrapRef ? this.$refs.pageWrapRef : null;
87982
+ if (el2 && el2.getBoundingClientRect) {
87983
+ const r2 = el2.getBoundingClientRect();
87984
+ if (r2 && r2.width && r2.height) {
87985
+ const left = Number(r2.left) || 0;
87986
+ const top = Number(r2.top) || 0;
87987
+ const width2 = Number(r2.width) || 0;
87988
+ const height = Number(r2.height) || 0;
87989
+ const right = Number(r2.right) || left + width2;
87990
+ const bottom = Number(r2.bottom) || top + height;
87991
+ return { left, top, width: width2, height, right, bottom };
87992
+ }
87993
+ }
87994
+ } catch (_2) {
87995
+ }
87996
+ const w2 = document && document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : window.innerWidth || 0;
87997
+ const h2 = document && document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : window.innerHeight || 0;
87998
+ return { left: 0, top: 0, width: w2, height: h2, right: w2, bottom: h2 };
87999
+ },
88000
+ resolveMainLayoutHostEl() {
88001
+ try {
88002
+ const wrap = this.$refs && this.$refs.pageWrapRef ? this.$refs.pageWrapRef : null;
88003
+ let el2 = wrap && wrap.parentElement ? wrap.parentElement : null;
88004
+ while (el2 && el2 !== document.body && el2 !== document.documentElement) {
88005
+ const style2 = window && window.getComputedStyle ? window.getComputedStyle(el2) : null;
88006
+ const overflowY = style2 ? String(style2.overflowY || "") : "";
88007
+ const overflow2 = style2 ? String(style2.overflow || "") : "";
88008
+ const isOverflowCtl = ["auto", "scroll", "hidden"].includes(overflowY) || ["auto", "scroll", "hidden"].includes(overflow2);
88009
+ const hasInlineHeight = !!(el2 && el2.style && (el2.style.height || el2.style.maxHeight));
88010
+ if (isOverflowCtl || hasInlineHeight)
88011
+ return el2;
88012
+ el2 = el2.parentElement;
88013
+ }
88014
+ return null;
88015
+ } catch (_2) {
88016
+ return null;
88017
+ }
88018
+ },
87114
88019
  syncMainLayoutHeight() {
87115
88020
  try {
87116
- const winH = window.innerHeight || 0;
87117
- if (!winH)
88021
+ const host = this.resolveMainLayoutHostEl();
88022
+ const rectH = host && host.getBoundingClientRect ? host.getBoundingClientRect().height || 0 : 0;
88023
+ const viewportH = document && document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : window.innerHeight || 0;
88024
+ const containerH = rectH > 0 ? rectH : viewportH || 0;
88025
+ if (containerH <= 0)
87118
88026
  return;
87119
88027
  const headerH = this.showOpt.showHeader && this.$refs.headerWrapRef ? this.$refs.headerWrapRef.offsetHeight || 0 : 0;
87120
88028
  const toolbarH = this.showOpt.showToolbar && this.$refs.toolbarWrapRef ? this.$refs.toolbarWrapRef.offsetHeight || 0 : 0;
87121
- const nextHeight = Math.max(240, winH - headerH - toolbarH);
88029
+ const nextHeight = Math.max(240, Math.floor(containerH - headerH - toolbarH));
87122
88030
  if (nextHeight !== this.mainLayoutHeight)
87123
88031
  this.mainLayoutHeight = nextHeight;
87124
88032
  } catch (_2) {
87125
88033
  }
87126
88034
  },
88035
+ setupMainLayoutResizeObserver() {
88036
+ const wrap = this.$refs && this.$refs.pageWrapRef ? this.$refs.pageWrapRef : null;
88037
+ const host = this.resolveMainLayoutHostEl();
88038
+ const target = host || wrap;
88039
+ if (!target)
88040
+ return;
88041
+ if (this._mainLayoutResizeObserver && this._mainLayoutResizeObserver.__targetEl === target)
88042
+ return;
88043
+ try {
88044
+ this.teardownMainLayoutResizeObserver();
88045
+ } catch (_2) {
88046
+ }
88047
+ const RO = typeof ResizeObserver !== "undefined" ? ResizeObserver : null;
88048
+ if (!RO)
88049
+ return;
88050
+ const onResize = () => {
88051
+ if (this._mainLayoutResizeRaf)
88052
+ cancelAnimationFrame(this._mainLayoutResizeRaf);
88053
+ this._mainLayoutResizeRaf = requestAnimationFrame(() => {
88054
+ this._mainLayoutResizeRaf = 0;
88055
+ try {
88056
+ this.syncMainLayoutHeight();
88057
+ } catch (_2) {
88058
+ }
88059
+ });
88060
+ };
88061
+ const ro2 = new RO(onResize);
88062
+ ro2.__targetEl = target;
88063
+ ro2.observe(target);
88064
+ this._mainLayoutResizeObserver = ro2;
88065
+ },
88066
+ teardownMainLayoutResizeObserver() {
88067
+ const ro2 = this._mainLayoutResizeObserver;
88068
+ this._mainLayoutResizeObserver = null;
88069
+ if (this._mainLayoutResizeRaf) {
88070
+ cancelAnimationFrame(this._mainLayoutResizeRaf);
88071
+ this._mainLayoutResizeRaf = 0;
88072
+ }
88073
+ try {
88074
+ ro2 && ro2.disconnect && ro2.disconnect();
88075
+ } catch (_2) {
88076
+ }
88077
+ },
87127
88078
  getDataSourceStorageKey() {
87128
88079
  return "KEY_VG_DATASOURCES";
87129
88080
  },
@@ -87624,13 +88575,14 @@ const _sfc_main = {
87624
88575
  if (!el2)
87625
88576
  return;
87626
88577
  const rect = el2.getBoundingClientRect();
87627
- const ww = window.innerWidth || 0;
87628
- const wh = window.innerHeight || 0;
88578
+ const vp = this.getVgPrintViewportRect();
88579
+ const ww = vp && vp.width ? vp.width : 0;
88580
+ const wh = vp && vp.height ? vp.height : 0;
87629
88581
  if (!ww || !wh)
87630
88582
  return;
87631
88583
  const padding = 8;
87632
- const nx = Math.max(padding, Math.min(ww - rect.width - padding, this.ctxMenuPos.x));
87633
- const ny = Math.max(padding, Math.min(wh - rect.height - padding, this.ctxMenuPos.y));
88584
+ const nx = Math.max(vp.left + padding, Math.min(vp.right - rect.width - padding, this.ctxMenuPos.x));
88585
+ const ny = Math.max(vp.top + padding, Math.min(vp.bottom - rect.height - padding, this.ctxMenuPos.y));
87634
88586
  this.ctxMenuPos = { x: nx, y: ny };
87635
88587
  } catch (_2) {
87636
88588
  }
@@ -88225,14 +89177,16 @@ const _sfc_main = {
88225
89177
  placeDefaultProp(skipMark) {
88226
89178
  if (this.isMobile || !this.propVisible)
88227
89179
  return;
88228
- const ww = window.innerWidth || 0;
88229
- const wh = window.innerHeight || 0;
89180
+ const vp = this.getVgPrintViewportRect();
89181
+ const ww = vp && vp.width ? vp.width : 0;
89182
+ const wh = vp && vp.height ? vp.height : 0;
88230
89183
  if (!ww || !wh)
88231
89184
  return;
88232
89185
  const padding = 8;
89186
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
88233
89187
  const w2 = this.propSize && this.propSize.width ? this.propSize.width : 320;
88234
- const left = Math.max(padding, Math.min(ww - w2 - padding, ww - w2 - 10));
88235
- const top = Math.max(padding, Math.min(wh - 120 - padding, 76));
89188
+ const left = vp.left + Math.max(padding, Math.min(ww - w2 - padding, ww - w2 - 10));
89189
+ const top = vp.top + overlayTop;
88236
89190
  this.propPos = { top, left };
88237
89191
  if (!skipMark)
88238
89192
  this.propUserPlaced = false;
@@ -88245,15 +89199,18 @@ const _sfc_main = {
88245
89199
  if (!el2)
88246
89200
  return;
88247
89201
  const rect = el2.getBoundingClientRect();
88248
- const ww = window.innerWidth || 0;
88249
- const wh = window.innerHeight || 0;
89202
+ const vp = this.getVgPrintViewportRect();
89203
+ const ww = vp && vp.width ? vp.width : 0;
89204
+ const wh = vp && vp.height ? vp.height : 0;
88250
89205
  if (!ww || !wh)
88251
89206
  return;
88252
89207
  const padding = 8;
89208
+ const bottomGap = 24;
89209
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
88253
89210
  let width2 = rect.width;
88254
89211
  let height = rect.height;
88255
89212
  const maxW = Math.max(200, ww - padding * 2);
88256
- const maxH = Math.max(120, wh - padding * 2);
89213
+ const maxH = Math.max(120, vp.bottom - bottomGap - (vp.top + overlayTop) - padding * 2);
88257
89214
  if (width2 > maxW)
88258
89215
  width2 = maxW;
88259
89216
  if (height > maxH)
@@ -88262,10 +89219,12 @@ const _sfc_main = {
88262
89219
  this.propSize.width = width2;
88263
89220
  if (this.propSize.height != null && height !== rect.height)
88264
89221
  this.propSize.height = height;
88265
- const maxLeft = Math.max(padding, ww - width2 - padding);
88266
- const maxTop = Math.max(padding, wh - height - padding);
88267
- const nextLeft = Math.max(padding, Math.min(maxLeft, this.propPos.left || 0));
88268
- const nextTop = Math.max(padding, Math.min(maxTop, this.propPos.top || 0));
89222
+ const minLeft = vp.left + padding;
89223
+ const minTop = vp.top + overlayTop;
89224
+ const maxLeft = vp.right - width2 - padding;
89225
+ const maxTop = vp.bottom - bottomGap - height - padding;
89226
+ const nextLeft = Math.max(minLeft, Math.min(maxLeft, this.propPos.left || 0));
89227
+ const nextTop = Math.max(minTop, Math.min(maxTop, this.propPos.top || 0));
88269
89228
  this.propPos = { top: nextTop, left: nextLeft };
88270
89229
  },
88271
89230
  capturePropDock() {
@@ -88275,14 +89234,17 @@ const _sfc_main = {
88275
89234
  if (!el2)
88276
89235
  return;
88277
89236
  const rect = el2.getBoundingClientRect();
88278
- const ww = window.innerWidth || 0;
88279
- const wh = window.innerHeight || 0;
89237
+ const vp = this.getVgPrintViewportRect();
89238
+ const ww = vp && vp.width ? vp.width : 0;
89239
+ const wh = vp && vp.height ? vp.height : 0;
88280
89240
  if (!ww || !wh)
88281
89241
  return;
88282
- const leftDist = Math.max(0, rect.left);
88283
- const rightDist = Math.max(0, ww - rect.right);
88284
- const topDist = Math.max(0, rect.top);
88285
- const bottomDist = Math.max(0, wh - rect.bottom);
89242
+ const bottomGap = 24;
89243
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
89244
+ const leftDist = Math.max(0, rect.left - vp.left);
89245
+ const rightDist = Math.max(0, vp.right - rect.right);
89246
+ const topDist = Math.max(0, rect.top - (vp.top + overlayTop));
89247
+ const bottomDist = Math.max(0, vp.bottom - bottomGap - rect.bottom);
88286
89248
  const xMode = leftDist <= rightDist ? "left" : "right";
88287
89249
  const yMode = topDist <= bottomDist ? "top" : "bottom";
88288
89250
  const x2 = xMode === "right" ? rightDist : leftDist;
@@ -88297,19 +89259,22 @@ const _sfc_main = {
88297
89259
  if (!el2)
88298
89260
  return;
88299
89261
  const rect = el2.getBoundingClientRect();
88300
- const ww = window.innerWidth || 0;
88301
- const wh = window.innerHeight || 0;
89262
+ const vp = this.getVgPrintViewportRect();
89263
+ const ww = vp && vp.width ? vp.width : 0;
89264
+ const wh = vp && vp.height ? vp.height : 0;
88302
89265
  if (!ww || !wh)
88303
89266
  return;
88304
89267
  const padding = 8;
89268
+ const bottomGap = 24;
89269
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
88305
89270
  const xMode = this._propDock && this._propDock.xMode ? this._propDock.xMode : "right";
88306
89271
  const yMode = this._propDock && this._propDock.yMode ? this._propDock.yMode : "top";
88307
89272
  const x2 = this._propDock && typeof this._propDock.x === "number" ? this._propDock.x : 10;
88308
89273
  const y2 = this._propDock && typeof this._propDock.y === "number" ? this._propDock.y : 76;
88309
- const desiredLeft = xMode === "right" ? ww - rect.width - x2 : x2;
88310
- const desiredTop = yMode === "bottom" ? wh - rect.height - y2 : y2;
88311
- const left = Math.max(padding, Math.min(ww - rect.width - padding, desiredLeft));
88312
- const top = Math.max(padding, Math.min(wh - rect.height - padding, desiredTop));
89274
+ const desiredLeft = xMode === "right" ? vp.right - rect.width - x2 : vp.left + x2;
89275
+ const desiredTop = yMode === "bottom" ? vp.bottom - bottomGap - rect.height - y2 : vp.top + overlayTop + y2;
89276
+ const left = Math.max(vp.left + padding, Math.min(vp.right - rect.width - padding, desiredLeft));
89277
+ const top = Math.max(vp.top + overlayTop, Math.min(vp.bottom - bottomGap - rect.height - padding, desiredTop));
88313
89278
  this.propPos = { top, left };
88314
89279
  this.clampPropToViewport();
88315
89280
  },
@@ -88378,15 +89343,35 @@ const _sfc_main = {
88378
89343
  _onPropMoveSimple(e2) {
88379
89344
  if (!this._propDragging)
88380
89345
  return;
89346
+ const vp = this.getVgPrintViewportRect();
88381
89347
  const nextLeft = e2.clientX - this._propDragOffset.x;
88382
89348
  const nextTop = e2.clientY - this._propDragOffset.y;
88383
- const ww = window.innerWidth;
88384
- const wh = window.innerHeight;
89349
+ const ww = vp && vp.width ? vp.width : 0;
89350
+ const wh = vp && vp.height ? vp.height : 0;
88385
89351
  const boxW = this._propBoxSize && this._propBoxSize.width ? this._propBoxSize.width : 320;
88386
- const boxH = this._propBoxSize && this._propBoxSize.height ? this._propBoxSize.height : 300;
89352
+ const minLeft = vp.left;
89353
+ const bottomGap = 24;
89354
+ const overlayTop = typeof this.getOverlayBaseTop === "function" ? this.getOverlayBaseTop() : 76;
89355
+ const minTop = vp.top + overlayTop;
89356
+ const maxLeft = vp.right - boxW;
89357
+ const minH = 120;
89358
+ const maxTop = vp.bottom - bottomGap - minH;
89359
+ const clampedTop = Math.max(minTop, Math.min(maxTop, nextTop));
89360
+ const desiredHeight = this.getPropDesiredHeight(vp, overlayTop, bottomGap);
89361
+ const availHeight = Math.max(minH, vp.bottom - bottomGap - clampedTop);
89362
+ const height = Math.max(minH, Math.min(desiredHeight, availHeight));
89363
+ if (!this.propSize)
89364
+ this.propSize = {};
89365
+ this.propSize.height = height;
89366
+ this._propBoxSize = { width: boxW, height };
89367
+ const clampedLeft = Math.max(minLeft, Math.min(maxLeft, nextLeft));
89368
+ if (clampedTop !== nextTop)
89369
+ this._propDragOffset.y = e2.clientY - clampedTop;
89370
+ if (clampedLeft !== nextLeft)
89371
+ this._propDragOffset.x = e2.clientX - clampedLeft;
88387
89372
  this.propPos = {
88388
- top: Math.max(0, Math.min(wh - boxH, nextTop)),
88389
- left: Math.max(0, Math.min(ww - boxW, nextLeft))
89373
+ top: clampedTop,
89374
+ left: clampedLeft
88390
89375
  };
88391
89376
  },
88392
89377
  // 悬浮属性面板拖拽结束
@@ -88426,46 +89411,45 @@ const _sfc_main = {
88426
89411
  return;
88427
89412
  const dx = e2.clientX - this.propResizeStart.x;
88428
89413
  const dy = e2.clientY - this.propResizeStart.y;
88429
- let newW = this.propResizeStart.w;
88430
- let newH = this.propResizeStart.h;
88431
- let newL = this.propResizeStart.l;
88432
- if (this.propResizeDir === "left") {
88433
- newW = Math.max(200, this.propResizeStart.w - dx);
88434
- newL = this.propResizeStart.l + dx;
88435
- if (newW === 200) {
88436
- newL = this.propResizeStart.l + (this.propResizeStart.w - 200);
88437
- }
88438
- } else if (this.propResizeDir === "right") {
88439
- newW = Math.max(200, this.propResizeStart.w + dx);
88440
- } else if (this.propResizeDir === "bottom") {
88441
- newH = Math.max(100, this.propResizeStart.h + dy);
88442
- }
88443
- const ww = window.innerWidth || 0;
88444
- const wh = window.innerHeight || 0;
89414
+ const vp = this.getVgPrintViewportRect();
88445
89415
  const minW = 200;
88446
89416
  const minH = 120;
88447
- const maxW = ww ? Math.max(minW, ww - 8) : newW;
88448
- const maxH = wh ? Math.max(minH, wh - 8) : newH;
89417
+ const bottomGap = 24;
89418
+ const start = this.propResizeStart;
89419
+ const rightEdge = Math.min(start.l + start.w, vp.right);
89420
+ let newW = start.w;
89421
+ let newH = start.h;
89422
+ let newL = start.l;
88449
89423
  if (this.propResizeDir === "left") {
88450
- newL = Math.max(0, Math.min(newL, ww ? ww - minW : newL));
88451
- newW = Math.max(minW, Math.min(newW, ww ? ww - newL : newW));
89424
+ const targetL = start.l + dx;
89425
+ const clampedL = Math.max(vp.left, Math.min(targetL, rightEdge - minW));
89426
+ newL = clampedL;
89427
+ newW = rightEdge - clampedL;
88452
89428
  this.propPos.left = newL;
88453
- this.propSize.width = Math.min(newW, maxW);
89429
+ this.propSize.width = newW;
88454
89430
  } else if (this.propResizeDir === "right") {
88455
- const l2 = this.propResizeStart.l || 0;
88456
- newW = Math.max(minW, Math.min(newW, ww ? ww - l2 : newW));
88457
- this.propSize.width = Math.min(newW, maxW);
89431
+ const maxW = Math.max(minW, vp.right - start.l);
89432
+ newW = Math.min(Math.max(minW, start.w + dx), maxW);
89433
+ this.propSize.width = newW;
88458
89434
  } else if (this.propResizeDir === "bottom") {
88459
- const t4 = this.propResizeStart.t || 0;
88460
- newH = Math.max(minH, Math.min(newH, wh ? wh - t4 : newH));
88461
- this.propSize.height = Math.min(newH, maxH);
89435
+ const maxH = Math.max(minH, vp.bottom - bottomGap - start.t);
89436
+ newH = Math.min(Math.max(minH, start.h + dy), maxH);
89437
+ this.propSize.height = newH;
88462
89438
  }
89439
+ this.clampPropToViewport();
88463
89440
  },
88464
89441
  // 悬浮属性面板拖拽缩放结束
88465
89442
  _onPropResizeUp() {
88466
89443
  this.propResizing = false;
88467
89444
  document.removeEventListener("mousemove", this._onPropResizeMove);
88468
89445
  this.propUserPlaced = true;
89446
+ if (this.propResizeDir === "bottom") {
89447
+ const h2 = this.propSize && typeof this.propSize.height === "number" ? this.propSize.height : 0;
89448
+ if (h2 > 0) {
89449
+ this._propDesiredHeight = h2;
89450
+ this._propHeightLocked = true;
89451
+ }
89452
+ }
88469
89453
  },
88470
89454
  // 重置分页悬浮位置
88471
89455
  resetPaginationFloatingPos() {
@@ -89193,7 +90177,7 @@ const _sfc_main = {
89193
90177
  const self2 = this || window;
89194
90178
  console.log("tasksPrint self:", self2);
89195
90179
  console.log("tasksPrint self._taskCancelRegistry:", self2._taskCancelRegistry);
89196
- const printData3 = self2.printDataVar;
90180
+ const printData4 = self2.printDataVar;
89197
90181
  const runner2 = new TaskRunner();
89198
90182
  runner2.setConcurrency(1);
89199
90183
  const task2 = [];
@@ -89210,7 +90194,7 @@ const _sfc_main = {
89210
90194
  for (let i3 = 1; i3 <= self2.printCount; i3++) {
89211
90195
  const key = `${tasksKey}-task${i3}`;
89212
90196
  task2.push((done) => {
89213
- self2.realPrint(runner2, done, key, i3, printData3, tasksKey, self2.printCount, cancelToken);
90197
+ self2.realPrint(runner2, done, key, i3, printData4, tasksKey, self2.printCount, cancelToken);
89214
90198
  });
89215
90199
  }
89216
90200
  runner2.addMultiple(task2);
@@ -90051,11 +91035,11 @@ const _sfc_main = {
90051
91035
  }
90052
91036
  };
90053
91037
  const __$_require_efe955b8__ = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgFBgcGBQgHBgcJCAgJDBMMDAsLDBgREg4THBgdHRsYGxofIywlHyEqIRobJjQnKi4vMTIxHiU2OjYwOiwwMTD/2wBDAQgJCQwKDBcMDBcwIBsgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDD/wAARCAMoAvwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA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RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFGKKKQBRRRQAYoxRRQAUUUUAFFFFABRRRQAUUUUAFGKKKACiiigAooooAKKKKACiiigAooooAKKKKYBiiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACimCVPMMe5d4GduecU+gAooooAKKKKACioxKrOyKw3rjIzyM1IKACiiigAoqOORZFDxsGU8gg5BqSgAopu5f7w/Ojcv94fnQA6ikGD0NMWVGcpuBZQCVzyM0ASUVHvTzdm4b8btuecdOnpUlABRRRQAUUUxJEkZlVgShwQD0oAfRUPnxcfvU5bYPmH3vT6+1TCgAxRQTTC1AD6Kbmk3r6j86AHYopN6+tGQaAHUUxpFRSzsFVRkk8AUqsGAIIIPQigB1FFFABRRRQAUVGkiSbhG4JQ4bBzg1JQAUUUx5ETG9guTgZOM0APoqJZo2JAkQkHBG4cH0qUmgAoqOWWOOPfI6qn95jgVJQAUUZpnmJ/eH50APopu9f7w/OlyD3oAWio2lRGVGYBn4UE8mpB0oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK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EXAAGcdz61dooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//Z9ysanAAAAAC3naLzhUr4sTBR4eIjr9IW";
90054
- const index_vue_vue_type_style_index_0_scoped_c982dcc1_lang = "";
90055
- const index_vue_vue_type_style_index_1_scoped_c982dcc1_lang = "";
91038
+ const index_vue_vue_type_style_index_0_scoped_dc7d0df1_lang = "";
91039
+ const index_vue_vue_type_style_index_1_scoped_dc7d0df1_lang = "";
90056
91040
  var _sfc_render = function render15() {
90057
91041
  var _vm = this, _c = _vm._self._c;
90058
- return _c("div", { staticClass: "vg-designer-root" }, [_vm.showOpt.showHeader ? _c("div", { ref: "headerWrapRef" }, [_vm._t("header", function() {
91042
+ return _c("div", { ref: "pageWrapRef", staticClass: "vg-designer-root" }, [_vm.showOpt.showHeader ? _c("div", { ref: "headerWrapRef" }, [_vm._t("header", function() {
90059
91043
  return [_c("Header", { attrs: { "print-count": _vm.printCount, "printer-name": _vm.printerName, "printerList": _vm.printerList, "languages": _vm.languages, "lang-value": _vm.lang, "logoHtml": _vm.logoHtml, "title": _vm.title }, on: { "update:printCount": function($event) {
90060
91044
  _vm.printCount = $event;
90061
91045
  }, "update:printerName": function($event) {
@@ -90226,7 +91210,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
90226
91210
  _sfc_staticRenderFns,
90227
91211
  false,
90228
91212
  null,
90229
- "c982dcc1",
91213
+ "dc7d0df1",
90230
91214
  null,
90231
91215
  null
90232
91216
  );