print-design-myprint 1.0.13 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.full.js +28 -25
- package/dist/index.full.mjs +27 -24
- package/es/components/preview/autoPage.mjs +3 -4
- package/es/components/preview/autoPage.mjs.map +1 -1
- package/es/components/preview/preview-panel.vue.mjs +2 -2
- package/es/components/preview/preview-panel.vue2.mjs +22 -18
- package/es/components/preview/preview-panel.vue2.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/preview/autoPage.js +3 -4
- package/lib/components/preview/autoPage.js.map +1 -1
- package/lib/components/preview/preview-panel.vue.js +2 -2
- package/lib/components/preview/preview-panel.vue2.js +21 -17
- package/lib/components/preview/preview-panel.vue2.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
package/dist/index.full.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('pinia'), require('vue-cropper/dist/index.css'), require('/Users/miro/Desktop/project/myprint/packages/design/src/components/design/image/image.vue?vue&type=style&index=0&scoped=923ed041&lang.css'), require('/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'vue', 'pinia', 'vue-cropper/dist/index.css', '/Users/miro/Desktop/project/myprint/packages/design/src/components/design/image/image.vue?vue&type=style&index=0&scoped=923ed041&lang.css', '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('pinia'), require('vue-cropper/dist/index.css'), require('/Users/miro/Desktop/project/myprint/packages/design/src/components/design/image/image.vue?vue&type=style&index=0&scoped=923ed041&lang.css'), require('/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=486e4aba&lang.css'), require('vue3-colorpicker/style.css')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'vue', 'pinia', 'vue-cropper/dist/index.css', '/Users/miro/Desktop/project/myprint/packages/design/src/components/design/image/image.vue?vue&type=style&index=0&scoped=923ed041&lang.css', '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=486e4aba&lang.css', 'vue3-colorpicker/style.css'], factory) :
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MyPrinterDesign = {}, global.Vue, global.pinia));
|
|
5
5
|
})(this, (function (exports, vue, pinia) { 'use strict';
|
|
6
6
|
|
|
@@ -81797,10 +81797,8 @@
|
|
|
81797
81797
|
for (let i = 0; i < pagesBuffer.length; i++) {
|
|
81798
81798
|
previewContext.currentPage = pagesBuffer[i];
|
|
81799
81799
|
variable.pageIndex = i + 1;
|
|
81800
|
-
|
|
81801
|
-
|
|
81802
|
-
await vue.nextTick();
|
|
81803
|
-
}
|
|
81800
|
+
measureList.splice(0, measureList.length, pagesBuffer[i]);
|
|
81801
|
+
await vue.nextTick();
|
|
81804
81802
|
await installPreviewElement(fixedPreviewElementList);
|
|
81805
81803
|
}
|
|
81806
81804
|
if (panel.pageSize == "AutoHeight") {
|
|
@@ -81950,6 +81948,7 @@
|
|
|
81950
81948
|
previewWrapper.heightIs = false;
|
|
81951
81949
|
previewContext.currentPage.previewWrapperList.push(previewWrapper);
|
|
81952
81950
|
await vue.nextTick();
|
|
81951
|
+
await vue.nextTick();
|
|
81953
81952
|
if (!previewWrapper.target) {
|
|
81954
81953
|
previewWrapper.heightIs = true;
|
|
81955
81954
|
return false;
|
|
@@ -82654,6 +82653,7 @@
|
|
|
82654
82653
|
}
|
|
82655
82654
|
|
|
82656
82655
|
const _hoisted_1$a = {
|
|
82656
|
+
key: 0,
|
|
82657
82657
|
class: "my-print-print_hidden",
|
|
82658
82658
|
"aria-hidden": "true"
|
|
82659
82659
|
};
|
|
@@ -82681,9 +82681,9 @@
|
|
|
82681
82681
|
const configStore = useConfigStore();
|
|
82682
82682
|
const data = vue.reactive({
|
|
82683
82683
|
dialogVisible: false,
|
|
82684
|
+
measuring: false,
|
|
82684
82685
|
printer: configStore.defaultPrinter,
|
|
82685
82686
|
pageList: [],
|
|
82686
|
-
measurePages: [],
|
|
82687
82687
|
resolveMap: {},
|
|
82688
82688
|
previewTimeOutMap: {},
|
|
82689
82689
|
taskId: null
|
|
@@ -82801,7 +82801,7 @@
|
|
|
82801
82801
|
function handleChromePreview(printProps) {
|
|
82802
82802
|
var _a;
|
|
82803
82803
|
data.pageList = [];
|
|
82804
|
-
data.
|
|
82804
|
+
data.measuring = false;
|
|
82805
82805
|
clearMeasureRefs();
|
|
82806
82806
|
clearPreviewPageRefs();
|
|
82807
82807
|
data.dialogVisible = true;
|
|
@@ -82810,23 +82810,26 @@
|
|
|
82810
82810
|
handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);
|
|
82811
82811
|
return new Promise((resolve, reject) => {
|
|
82812
82812
|
data.resolveMap[printProps.taskId] = resolve;
|
|
82813
|
-
vue.nextTick().then(() => vue.nextTick()).then(() =>
|
|
82814
|
-
|
|
82815
|
-
|
|
82816
|
-
|
|
82817
|
-
|
|
82818
|
-
|
|
82819
|
-
|
|
82813
|
+
vue.nextTick().then(() => vue.nextTick()).then(async () => {
|
|
82814
|
+
data.measuring = true;
|
|
82815
|
+
await vue.nextTick();
|
|
82816
|
+
await autoPage(
|
|
82817
|
+
measureContentRef,
|
|
82818
|
+
data.pageList,
|
|
82819
|
+
panel.value,
|
|
82820
|
+
printProps.previewDataList
|
|
82821
|
+
);
|
|
82822
|
+
}).then(() => {
|
|
82820
82823
|
if (data.pageList.length === 0) {
|
|
82821
82824
|
throw new Error("[MyPrint] \u9884\u89C8\u5206\u9875\u7ED3\u679C\u4E3A\u7A7A");
|
|
82822
82825
|
}
|
|
82823
|
-
data.
|
|
82826
|
+
data.measuring = false;
|
|
82824
82827
|
clearMeasureRefs();
|
|
82825
82828
|
return vue.nextTick();
|
|
82826
82829
|
}).then(() => vue.nextTick()).catch((e) => {
|
|
82827
82830
|
var _a2;
|
|
82828
82831
|
data.pageList = [];
|
|
82829
|
-
data.
|
|
82832
|
+
data.measuring = false;
|
|
82830
82833
|
clearMeasureRefs();
|
|
82831
82834
|
printResult(printProps.taskId, {
|
|
82832
82835
|
status: "ERROR",
|
|
@@ -82839,7 +82842,7 @@
|
|
|
82839
82842
|
}
|
|
82840
82843
|
function closePreviewPanel() {
|
|
82841
82844
|
data.pageList = [];
|
|
82842
|
-
data.
|
|
82845
|
+
data.measuring = false;
|
|
82843
82846
|
clearMeasureRefs();
|
|
82844
82847
|
clearPreviewPageRefs();
|
|
82845
82848
|
printResult(data.taskId, {
|
|
@@ -82852,15 +82855,15 @@
|
|
|
82852
82855
|
vue.Fragment,
|
|
82853
82856
|
null,
|
|
82854
82857
|
[
|
|
82855
|
-
vue.createCommentVNode(" \
|
|
82856
|
-
vue.
|
|
82858
|
+
vue.createCommentVNode(" \u5206\u9875\u6D4B\u91CF\uFF1A\u4E0E print.vue \u76F8\u540C\uFF0C\u4EC5\u6D4B\u91CF\u9636\u6BB5\u6E32\u67D3 pageList\uFF0C\u907F\u514D\u5F39\u7A97\u5185\u53CD\u590D\u91CD\u7ED8 "),
|
|
82859
|
+
vue.unref(data).measuring ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
|
|
82857
82860
|
vue.createElementVNode("div", _hoisted_2$9, [
|
|
82858
82861
|
vue.createElementVNode("div", _hoisted_3$8, [
|
|
82859
82862
|
vue.createElementVNode("div", _hoisted_4$3, [
|
|
82860
82863
|
(vue.openBlock(true), vue.createElementBlock(
|
|
82861
82864
|
vue.Fragment,
|
|
82862
82865
|
null,
|
|
82863
|
-
vue.renderList(vue.unref(data).
|
|
82866
|
+
vue.renderList(vue.unref(data).pageList, (page, index) => {
|
|
82864
82867
|
var _a;
|
|
82865
82868
|
return vue.openBlock(), vue.createElementBlock(
|
|
82866
82869
|
"div",
|
|
@@ -82896,7 +82899,7 @@
|
|
|
82896
82899
|
])
|
|
82897
82900
|
])
|
|
82898
82901
|
])
|
|
82899
|
-
]),
|
|
82902
|
+
])) : vue.createCommentVNode("v-if", true),
|
|
82900
82903
|
vue.createVNode(MyDialog, {
|
|
82901
82904
|
modelValue: vue.unref(data).dialogVisible,
|
|
82902
82905
|
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(data).dialogVisible = $event),
|
|
@@ -82906,7 +82909,7 @@
|
|
|
82906
82909
|
onClose: closePreviewPanel
|
|
82907
82910
|
}, {
|
|
82908
82911
|
default: vue.withCtx(() => [
|
|
82909
|
-
vue.unref(data).pageList.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$2, [
|
|
82912
|
+
!vue.unref(data).measuring && vue.unref(data).pageList.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$2, [
|
|
82910
82913
|
vue.createVNode(MyScrollbar, {
|
|
82911
82914
|
height: "100%",
|
|
82912
82915
|
class: "preview-panel__scrollbar",
|
|
@@ -83062,7 +83065,7 @@
|
|
|
83062
83065
|
}
|
|
83063
83066
|
});
|
|
83064
83067
|
|
|
83065
|
-
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
83068
|
+
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-486e4aba"], ["__file", "preview-panel.vue"]]);
|
|
83066
83069
|
|
|
83067
83070
|
let previewNode = null;
|
|
83068
83071
|
let handleChromePreview = null;
|
|
@@ -94050,7 +94053,7 @@ ${$$g(r2)}`), n2;
|
|
|
94050
94053
|
}
|
|
94051
94054
|
}
|
|
94052
94055
|
|
|
94053
|
-
const version$1 = "1.0.
|
|
94056
|
+
const version$1 = "1.0.14";
|
|
94054
94057
|
|
|
94055
94058
|
function isDataTableWidget(d) {
|
|
94056
94059
|
return d.type === "DataTable";
|
package/dist/index.full.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { defineComponent, h as h$5, getCurrentInstance as getCurrentInstance$1,
|
|
|
2
2
|
import { defineStore, createPinia } from 'pinia';
|
|
3
3
|
import 'vue-cropper/dist/index.css';
|
|
4
4
|
import '/Users/miro/Desktop/project/myprint/packages/design/src/components/design/image/image.vue?vue&type=style&index=0&scoped=923ed041&lang.css';
|
|
5
|
-
import '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=
|
|
5
|
+
import '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=486e4aba&lang.css';
|
|
6
6
|
import 'vue3-colorpicker/style.css';
|
|
7
7
|
|
|
8
8
|
const MathCalc = {
|
|
@@ -81798,10 +81798,8 @@ async function autoPage(previewEl, pageList, panel, previewDataList, measurePage
|
|
|
81798
81798
|
for (let i = 0; i < pagesBuffer.length; i++) {
|
|
81799
81799
|
previewContext.currentPage = pagesBuffer[i];
|
|
81800
81800
|
variable.pageIndex = i + 1;
|
|
81801
|
-
|
|
81802
|
-
|
|
81803
|
-
await nextTick$1();
|
|
81804
|
-
}
|
|
81801
|
+
measureList.splice(0, measureList.length, pagesBuffer[i]);
|
|
81802
|
+
await nextTick$1();
|
|
81805
81803
|
await installPreviewElement(fixedPreviewElementList);
|
|
81806
81804
|
}
|
|
81807
81805
|
if (panel.pageSize == "AutoHeight") {
|
|
@@ -81951,6 +81949,7 @@ async function autoPage(previewEl, pageList, panel, previewDataList, measurePage
|
|
|
81951
81949
|
previewWrapper.heightIs = false;
|
|
81952
81950
|
previewContext.currentPage.previewWrapperList.push(previewWrapper);
|
|
81953
81951
|
await nextTick$1();
|
|
81952
|
+
await nextTick$1();
|
|
81954
81953
|
if (!previewWrapper.target) {
|
|
81955
81954
|
previewWrapper.heightIs = true;
|
|
81956
81955
|
return false;
|
|
@@ -82655,6 +82654,7 @@ function handleTimeOut(printProps, previewTimeOutMap, resolveMap) {
|
|
|
82655
82654
|
}
|
|
82656
82655
|
|
|
82657
82656
|
const _hoisted_1$a = {
|
|
82657
|
+
key: 0,
|
|
82658
82658
|
class: "my-print-print_hidden",
|
|
82659
82659
|
"aria-hidden": "true"
|
|
82660
82660
|
};
|
|
@@ -82682,9 +82682,9 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82682
82682
|
const configStore = useConfigStore();
|
|
82683
82683
|
const data = reactive({
|
|
82684
82684
|
dialogVisible: false,
|
|
82685
|
+
measuring: false,
|
|
82685
82686
|
printer: configStore.defaultPrinter,
|
|
82686
82687
|
pageList: [],
|
|
82687
|
-
measurePages: [],
|
|
82688
82688
|
resolveMap: {},
|
|
82689
82689
|
previewTimeOutMap: {},
|
|
82690
82690
|
taskId: null
|
|
@@ -82802,7 +82802,7 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82802
82802
|
function handleChromePreview(printProps) {
|
|
82803
82803
|
var _a;
|
|
82804
82804
|
data.pageList = [];
|
|
82805
|
-
data.
|
|
82805
|
+
data.measuring = false;
|
|
82806
82806
|
clearMeasureRefs();
|
|
82807
82807
|
clearPreviewPageRefs();
|
|
82808
82808
|
data.dialogVisible = true;
|
|
@@ -82811,23 +82811,26 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82811
82811
|
handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);
|
|
82812
82812
|
return new Promise((resolve, reject) => {
|
|
82813
82813
|
data.resolveMap[printProps.taskId] = resolve;
|
|
82814
|
-
nextTick$1().then(() => nextTick$1()).then(() =>
|
|
82815
|
-
|
|
82816
|
-
|
|
82817
|
-
|
|
82818
|
-
|
|
82819
|
-
|
|
82820
|
-
|
|
82814
|
+
nextTick$1().then(() => nextTick$1()).then(async () => {
|
|
82815
|
+
data.measuring = true;
|
|
82816
|
+
await nextTick$1();
|
|
82817
|
+
await autoPage(
|
|
82818
|
+
measureContentRef,
|
|
82819
|
+
data.pageList,
|
|
82820
|
+
panel.value,
|
|
82821
|
+
printProps.previewDataList
|
|
82822
|
+
);
|
|
82823
|
+
}).then(() => {
|
|
82821
82824
|
if (data.pageList.length === 0) {
|
|
82822
82825
|
throw new Error("[MyPrint] \u9884\u89C8\u5206\u9875\u7ED3\u679C\u4E3A\u7A7A");
|
|
82823
82826
|
}
|
|
82824
|
-
data.
|
|
82827
|
+
data.measuring = false;
|
|
82825
82828
|
clearMeasureRefs();
|
|
82826
82829
|
return nextTick$1();
|
|
82827
82830
|
}).then(() => nextTick$1()).catch((e) => {
|
|
82828
82831
|
var _a2;
|
|
82829
82832
|
data.pageList = [];
|
|
82830
|
-
data.
|
|
82833
|
+
data.measuring = false;
|
|
82831
82834
|
clearMeasureRefs();
|
|
82832
82835
|
printResult(printProps.taskId, {
|
|
82833
82836
|
status: "ERROR",
|
|
@@ -82840,7 +82843,7 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82840
82843
|
}
|
|
82841
82844
|
function closePreviewPanel() {
|
|
82842
82845
|
data.pageList = [];
|
|
82843
|
-
data.
|
|
82846
|
+
data.measuring = false;
|
|
82844
82847
|
clearMeasureRefs();
|
|
82845
82848
|
clearPreviewPageRefs();
|
|
82846
82849
|
printResult(data.taskId, {
|
|
@@ -82853,15 +82856,15 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82853
82856
|
Fragment,
|
|
82854
82857
|
null,
|
|
82855
82858
|
[
|
|
82856
|
-
createCommentVNode(" \
|
|
82857
|
-
|
|
82859
|
+
createCommentVNode(" \u5206\u9875\u6D4B\u91CF\uFF1A\u4E0E print.vue \u76F8\u540C\uFF0C\u4EC5\u6D4B\u91CF\u9636\u6BB5\u6E32\u67D3 pageList\uFF0C\u907F\u514D\u5F39\u7A97\u5185\u53CD\u590D\u91CD\u7ED8 "),
|
|
82860
|
+
unref(data).measuring ? (openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
82858
82861
|
createElementVNode("div", _hoisted_2$9, [
|
|
82859
82862
|
createElementVNode("div", _hoisted_3$8, [
|
|
82860
82863
|
createElementVNode("div", _hoisted_4$3, [
|
|
82861
82864
|
(openBlock(true), createElementBlock(
|
|
82862
82865
|
Fragment,
|
|
82863
82866
|
null,
|
|
82864
|
-
renderList(unref(data).
|
|
82867
|
+
renderList(unref(data).pageList, (page, index) => {
|
|
82865
82868
|
var _a;
|
|
82866
82869
|
return openBlock(), createElementBlock(
|
|
82867
82870
|
"div",
|
|
@@ -82897,7 +82900,7 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82897
82900
|
])
|
|
82898
82901
|
])
|
|
82899
82902
|
])
|
|
82900
|
-
]),
|
|
82903
|
+
])) : createCommentVNode("v-if", true),
|
|
82901
82904
|
createVNode(MyDialog, {
|
|
82902
82905
|
modelValue: unref(data).dialogVisible,
|
|
82903
82906
|
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(data).dialogVisible = $event),
|
|
@@ -82907,7 +82910,7 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
82907
82910
|
onClose: closePreviewPanel
|
|
82908
82911
|
}, {
|
|
82909
82912
|
default: withCtx(() => [
|
|
82910
|
-
unref(data).pageList.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
|
82913
|
+
!unref(data).measuring && unref(data).pageList.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
|
82911
82914
|
createVNode(MyScrollbar, {
|
|
82912
82915
|
height: "100%",
|
|
82913
82916
|
class: "preview-panel__scrollbar",
|
|
@@ -83063,7 +83066,7 @@ var _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
83063
83066
|
}
|
|
83064
83067
|
});
|
|
83065
83068
|
|
|
83066
|
-
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
83069
|
+
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-486e4aba"], ["__file", "preview-panel.vue"]]);
|
|
83067
83070
|
|
|
83068
83071
|
let previewNode = null;
|
|
83069
83072
|
let handleChromePreview = null;
|
|
@@ -94051,7 +94054,7 @@ function mountDesign(app, props, element) {
|
|
|
94051
94054
|
}
|
|
94052
94055
|
}
|
|
94053
94056
|
|
|
94054
|
-
const version$1 = "1.0.
|
|
94057
|
+
const version$1 = "1.0.14";
|
|
94055
94058
|
|
|
94056
94059
|
function isDataTableWidget(d) {
|
|
94057
94060
|
return d.type === "DataTable";
|
|
@@ -154,10 +154,8 @@ async function autoPage(previewEl, pageList, panel, previewDataList, measurePage
|
|
|
154
154
|
for (let i = 0; i < pagesBuffer.length; i++) {
|
|
155
155
|
previewContext.currentPage = pagesBuffer[i];
|
|
156
156
|
variable.pageIndex = i + 1;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
await nextTick();
|
|
160
|
-
}
|
|
157
|
+
measureList.splice(0, measureList.length, pagesBuffer[i]);
|
|
158
|
+
await nextTick();
|
|
161
159
|
await installPreviewElement(fixedPreviewElementList);
|
|
162
160
|
}
|
|
163
161
|
if (panel.pageSize == "AutoHeight") {
|
|
@@ -305,6 +303,7 @@ async function autoPage(previewEl, pageList, panel, previewDataList, measurePage
|
|
|
305
303
|
previewWrapper.heightIs = false;
|
|
306
304
|
previewContext.currentPage.previewWrapperList.push(previewWrapper);
|
|
307
305
|
await nextTick();
|
|
306
|
+
await nextTick();
|
|
308
307
|
if (!previewWrapper.target) {
|
|
309
308
|
previewWrapper.heightIs = true;
|
|
310
309
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoPage.mjs","sources":["../../../../../src/components/preview/autoPage.ts"],"sourcesContent":["import {\n downloadImg2Base64,\n generateUUID,\n parse,\n replaceSpacesOutsideHTMLTags,\n stringify\n} from '@myprint/design/utils/utils';\nimport { px2unit, unit2px } from '@myprint/design/utils/devicePixelRatio';\nimport { nextTick, reactive, Ref } from 'vue-demi';\nimport {\n FormatterVariable,\n MyElement,\n Panel,\n PreviewContainerWrapper,\n PreviewContext,\n PreviewWrapper,\n RuntimeElementOption,\n TableCellElement\n} from '@myprint/design/types/entity';\nimport { element2PreviewWrapper, formatter } from '@myprint/design/utils/elementUtil';\nimport numberUtil from '@myprint/design/utils/numberUtil';\nimport {\n lastHeadList,\n previewRowStatisticsList,\n previewTableStatisticsList,\n statisticsData\n} from '@myprint/design/utils/table/dataTable';\nimport { isEmpty } from 'lodash';\n\nfunction panelHasDataTable(container?: { elementList?: MyElement[]; pageHeader?: MyElement; pageFooter?: MyElement }): boolean {\n if (container == null) {\n return false;\n }\n const walk = (list?: MyElement[]): boolean => {\n if (list == null) {\n return false;\n }\n for (const el of list) {\n if (el.type === 'DataTable' || el.type === 'FreeTable') {\n return true;\n }\n if (el.elementList?.length && walk(el.elementList)) {\n return true;\n }\n }\n return false;\n };\n return walk(container.elementList)\n || (container.pageHeader != null && walk([container.pageHeader]))\n || (container.pageFooter != null && walk([container.pageFooter]));\n}\n\n/**\n * 含 DataTable 时:previewData 数组每一项是表格行,不是多份整页;避免外层 for 按行数重复渲染整模板导致卡死。\n */\nfunction normalizePreviewRecords(panel: Panel, previewDataList: any[]) {\n if (!panelHasDataTable(panel) || previewDataList.length === 0) {\n return { records: previewDataList, tableBodyRows: null as any[] | null };\n }\n // 多项:每项为表格一行;单项:表体走 field 绑定的数组,避免误把整对象当一行\n if (previewDataList.length > 1) {\n return {\n records: [previewDataList[0] ?? {}],\n tableBodyRows: previewDataList\n };\n }\n return { records: previewDataList, tableBodyRows: null };\n}\n\nfunction resolveTableBodyRows(\n previewContext: PreviewContext,\n previewWrapper: PreviewWrapper,\n previewDataTmp: any\n): any[] {\n if (previewContext.tableBodyRows != null && previewContext.tableBodyRows.length > 0) {\n return previewContext.tableBodyRows;\n }\n if (previewWrapper.field) {\n const byField = previewContext.previewData?.[previewWrapper.field];\n if (Array.isArray(byField)) {\n return byField;\n }\n if (byField != null && typeof byField === 'object') {\n return [byField];\n }\n }\n if (Array.isArray(previewDataTmp)) {\n return previewDataTmp;\n }\n if (previewDataTmp != null && typeof previewDataTmp === 'object') {\n return [previewDataTmp];\n }\n return [{}];\n}\n\nexport async function autoPage(\n previewEl: Ref<HTMLDivElement[] | undefined>,\n pageList: Array<PreviewContainerWrapper>,\n panel: Panel,\n previewDataList?: any[],\n /** 离屏测量 DOM 专用;与 pageList 分离时最终结果只写入 pageList */\n measurePageList?: Array<PreviewContainerWrapper>\n) {\n const measureList = measurePageList ?? pageList;\n if (previewDataList == null) {\n previewDataList = [{}];\n } else if (!Array.isArray(previewDataList)) {\n previewDataList = [previewDataList];\n }\n if (previewDataList.length === 0) {\n previewDataList = [{}];\n }\n const { records: previewRecords, tableBodyRows } = normalizePreviewRecords(panel, previewDataList);\n /** 分页过程中先写入缓冲区,避免每页 push 触发 Vue 全量重绘导致卡死 */\n const pagesBuffer: PreviewContainerWrapper[] = [];\n const variable = {\n pageIndex: 0,\n pageSize: 0,\n nowDate: new Date()\n } as FormatterVariable;\n\n // 初始化element offsetTop\n let offsetLastElementTop = 0;\n const fixedPreviewElementList: PreviewWrapper[] = [];\n const previewElementList: PreviewWrapper[] = [];\n\n let previewContext = {\n currentPreview: undefined!,\n autoPageIs: false,\n previewData: {},\n panel: panel,\n pageList: [],\n currentPage: undefined! as any,\n top: 0,\n bottom: panel.height, // 单位 mm\n pagingRepetition: true,\n tableBodyRows\n } as PreviewContext;\n // 处理elementWrapper\n for (let myElement of previewContext.panel.elementList) {\n handleElement(myElement);\n }\n\n if (previewContext.panel.pageHeader) {\n handleElement(previewContext.panel.pageHeader);\n }\n if (previewContext.panel.pageFooter) {\n handleElement(previewContext.panel.pageFooter);\n }\n\n function handleElement(myElement: MyElement) {\n const previewElement = element2PreviewWrapper(myElement);\n if (previewElement.previewWrapperList != null && previewElement.previewWrapperList.length > 0) {\n for (let i = previewElement.previewWrapperList.length - 1; i >= 0; i--) {\n const pageNumPreviewElement = previewElement.previewWrapperList[i];\n // 处理嵌套 pageNum\n if (pageNumPreviewElement.option?.fixed) {\n pageNumPreviewElement.x = pageNumPreviewElement.x + previewElement.x;\n pageNumPreviewElement.y = pageNumPreviewElement.y + previewElement.y;\n\n fixedPreviewElementList.push(pageNumPreviewElement);\n previewElement.previewWrapperList.splice(i, 1);\n }\n }\n }\n // if (elementTypeContainerList.includes(previewElement.type)) {\n // previewElement.previewWrapperList = [];\n // }\n\n if (previewElement.option?.fixed) {\n fixedPreviewElementList.push(previewElement);\n } else {\n previewElementList.push(previewElement);\n }\n }\n\n // 排序\n previewElementList.sort((o1, o2) => {\n return o1.y - o2.y;\n });\n\n // 计算每个元素距离上个元素的距离\n for (let previewWrapper of previewElementList) {\n previewWrapper.offsetLastElementTop = numberUtil.subScale(previewWrapper.y, offsetLastElementTop);\n offsetLastElementTop = numberUtil.sumScale(previewWrapper.y, previewWrapper.height);\n }\n\n const MAX_PAGE_ITERATIONS = 500;\n\n for (let previewData of previewRecords) {\n previewContext.previewData = previewData;\n // 固定高度 表格分页打印\n let pageGuard = 0;\n while (previewContext.pagingRepetition) {\n if (++pageGuard > MAX_PAGE_ITERATIONS) {\n console.error('[MyPrint] 表格分页超过最大页数,已中止以避免页面卡死');\n previewContext.pagingRepetition = false;\n break;\n }\n previewContext.pagingRepetition = false;\n previewContext.currentPreview = undefined!;\n\n await newPage();\n await installPreviewElement(previewElementList);\n }\n\n previewContext.pagingRepetition = true;\n for (const el of previewElementList) {\n if (el.type === 'DataTable') {\n el.previewTableRowIndex = 0;\n }\n }\n }\n\n previewContext.autoPageIs = false;\n variable.pageSize = pagesBuffer.length;\n // 每页设置页码\n // 组装固定元素\n for (let i = 0; i < pagesBuffer.length; i++) {\n previewContext.currentPage = pagesBuffer[i];\n variable.pageIndex = i + 1;\n if (measureList !== pageList) {\n measureList.splice(0, measureList.length, pagesBuffer[i]);\n await nextTick();\n }\n await installPreviewElement(fixedPreviewElementList);\n }\n\n // 所有的都处理完,如果是自动高度,要重新计算一下高度\n if (panel.pageSize == 'AutoHeight') {\n await nextTick();\n const lastElementChild = previewEl.value?.[0]?.lastElementChild;\n if (lastElementChild) {\n const rect = lastElementChild.getBoundingClientRect();\n pagesBuffer[0].height = px2unit(rect.bottom, panel);\n panel.runtimeOption.printRealHeight = pagesBuffer[0].height;\n }\n }\n\n pageList.splice(0, pageList.length, ...pagesBuffer);\n if (measureList !== pageList) {\n measureList.length = 0;\n }\n\n async function installPreviewElement(previewElementList: PreviewWrapper[]) {\n for (let i = 0; i < previewElementList.length; i++) {\n const oldPreviewWrapper = previewElementList[i];\n let previewWrapper = element2PreviewWrapper(previewElementList[i]);\n\n // 计算顶部需不需要偏移\n if (!previewWrapper.option?.fixed) {\n // 页面顶部有偏移\n // debugger\n if (previewContext.currentPage.offsetTop > 0 && previewContext.currentPreview) {\n if (previewContext.currentPreview.heightIs) {\n previewWrapper.y = previewContext.currentPreview.y + previewContext.currentPreview.height + previewWrapper.offsetLastElementTop;\n } else {\n // debugger\n previewWrapper.y = numberUtil.sumScale(previewContext.currentPage.offsetTop, previewWrapper.offsetLastElementTop);\n }\n\n }\n\n // 判断需不需要分页\n // console.log(await isNeedNewPage(previewWrapper.y, previewContext.bottom));\n // console.log(await isNeedNewPage(previewWrapper.y + previewWrapper.height, previewContext.bottom));\n if (previewWrapper.type != 'PageFooter'\n && previewContext.currentPage.previewWrapperList.length > 0\n && (await isNeedNewPage(previewWrapper.y, previewContext.bottom) || await isNeedNewPage(previewWrapper.y + previewWrapper.height, previewContext.bottom))) {\n previewWrapper.y = 1;\n previewContext.currentPage!.offsetTop = 1;\n }\n }\n\n if (previewWrapper.option?.fixed && previewWrapper.option.displayStrategy != undefined) {\n switch (previewWrapper.option.displayStrategy) {\n case 'firstPage':\n if (variable.pageIndex != 1) {\n continue;\n }\n break;\n case 'lastPage':\n if (variable.pageIndex != variable.pageSize) {\n continue;\n }\n break;\n case 'none':\n continue;\n case 'oddPage':\n if (variable.pageIndex % 2 != 1) {\n continue;\n }\n break;\n case 'evenPage':\n if (variable.pageIndex % 2 != 0) {\n continue;\n }\n break;\n }\n }\n\n previewContext.currentPreview = previewWrapper;\n\n // 需要data\n let previewDataTmp: any;\n\n if (previewWrapper.field) {\n // 打印数据\n previewDataTmp = previewContext.previewData[previewWrapper.field];\n }\n\n if (!previewDataTmp) {\n // 格式化数据\n previewDataTmp = formatter(previewWrapper, variable);\n }\n\n if (!previewDataTmp) {\n // 设计数据\n previewDataTmp = previewWrapper.data;\n }\n\n if (previewWrapper.type == 'Image') {\n previewWrapper.data = previewDataTmp;\n // 如果是图片地址,则下载下来\n if (!isEmpty(previewWrapper.data) && (previewWrapper.data as string).startsWith('http')) {\n // 网络图片,下载下来\n try {\n previewWrapper.data = await downloadImg2Base64(previewWrapper.data);\n } catch (e: any) {\n previewWrapper.data = '图片加载错误';\n }\n }\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n } else if (previewWrapper.type == 'Text' || previewWrapper.type == 'PageNum' || previewWrapper.type == 'TextTime') {\n\n if (previewWrapper.type == 'PageNum') {\n previewWrapper = element2PreviewWrapper(previewWrapper);\n previewContext.currentPreview = previewWrapper;\n previewElementList[i] = previewWrapper;\n }\n\n if (!previewWrapper.contentType) {\n previewWrapper.contentType = 'Text';\n }\n\n previewWrapper.data = previewDataTmp;\n\n if (previewWrapper.contentType === 'Text') {\n if (previewDataTmp) {\n previewDataTmp = replaceSpacesOutsideHTMLTags(previewDataTmp);\n previewWrapper.data = previewDataTmp;\n }\n await autoTextElement(previewDataTmp, true);\n } else if (previewWrapper.contentType === 'QrCode' || previewWrapper.contentType === 'Barcode') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n } else {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n }\n } else if (previewWrapper.type == 'DataTable') {\n const source = previewElementList[i];\n const tableRowIndex = source.previewTableRowIndex ?? 0;\n const tableRows = resolveTableBodyRows(previewContext, previewWrapper, previewDataTmp);\n await autoTableRow(previewContext, tableRows, tableRowIndex, source);\n if (!previewContext.pagingRepetition) {\n source.previewTableRowIndex = 0;\n }\n } else if (previewWrapper.type == 'Container') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else if (previewWrapper.type == 'PageHeader') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else if (previewWrapper.type == 'PageFooter') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n }\n\n if (!previewContext.currentPreview.heightIs) {\n // 重新计算顶部偏移\n previewContext.currentPage.offsetTop = (await computeBottom(previewContext.currentPreview))!;\n }\n\n previewContext.currentPreview = previewWrapper;\n }\n }\n\n async function autoTextElement(previewData: string, first: boolean) {\n let previewWrapper = previewContext.currentPreview;\n previewWrapper.data = previewData;\n previewWrapper.heightIs = false;\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n if (!previewWrapper.target) {\n previewWrapper.heightIs = true;\n return false;\n }\n const height = previewWrapper.target.clientHeight;\n\n /**\n * 非自动高度\n */\n if (previewWrapper.option?.autoTextHeight == null || !previewWrapper.option?.autoTextHeight) {\n previewWrapper.heightIs = true;\n return false;\n }\n\n if (first && height < previewWrapper.runtimeOption.height) {\n previewWrapper.heightIs = true;\n // console.log('小')\n return false;\n } else {\n // console.log('大')\n }\n\n // console.log(height)\n if (previewWrapper.y + px2unit(height, panel) < previewContext.bottom) {\n return false;\n } else {\n // console.log(previewWrapper)\n }\n\n let mid = await binary_search(previewWrapper, previewData, 1, previewData.length);\n // console.log(mid)\n\n if (mid > 0 && mid < previewData.length) {\n // console.log('文本分页');\n if (previewContext.autoPageIs) {\n await newPage();\n previewContext.currentPreview = element2PreviewWrapper(previewWrapper);\n // previewWrapper.element = previewWrapper\n previewContext.currentPreview.y = previewContext.top;\n // console.log(previewWrapper)\n await autoTextElement(previewData.substring(mid + 1, previewData.length), false);\n return true;\n }\n // data.currentPage.offsetTop = computeBottom({previewWrapper: previewWrapper} as PreviewWrapper)\n }\n\n return false;\n }\n\n async function autoTableRow(\n previewContext: PreviewContext,\n previewDataList: Array<any>,\n index: number,\n tableSource: PreviewWrapper,\n recursionDepth = 0\n ) {\n const MAX_TABLE_RECURSION = 100;\n if (recursionDepth > MAX_TABLE_RECURSION) {\n console.error('[MyPrint] 表格分页递归过深,已中止');\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n if (previewDataList == null) {\n previewDataList = [];\n }\n let previewWrapper = previewContext.currentPreview;\n const tableStatisticsSizeEarly = previewWrapper.statisticsList?.length ?? 0;\n if (index >= previewDataList.length + tableStatisticsSizeEarly) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n if (previewWrapper.option.tableHeightType == 'AUTO') {\n previewWrapper.heightIs = false;\n }\n\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n const table = previewWrapper.target;\n if (!table) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n const tableHeadList = [...previewWrapper.tableHeadList];\n const headList = lastHeadList(tableHeadList);\n const bodyList = previewWrapper.tableBodyList[0];\n if (previewWrapper.statisticsList == null) {\n previewWrapper.statisticsList = [];\n }\n const tableStatisticsList = [...previewWrapper.statisticsList];\n const tableStatisticsSize = tableStatisticsList.length;\n let statisticsListWrapper: Record<number, any[]> = {};\n let tableStaticsListWrapper: Record<number, any[]> = {};\n if (previewWrapper.tableHeadHiddenIs) {\n previewWrapper.tableHeadList.length = 0;\n for (let j = 0; j < bodyList.length; j++) {\n bodyList[j].runtimeOption.width = headList[j].runtimeOption.width;\n }\n\n // 设置第一行的宽度<不然表格宽度有问题\n }\n previewWrapper.tableBodyList.length = 0;\n previewWrapper.statisticsList.length = 0;\n if (index < previewDataList.length) {\n previewTableStatisticsList(tableStatisticsList, previewWrapper.statisticsList, statisticsListWrapper, headList);\n }\n const previewDataTmpList: any[] = [];\n let i = index;\n for (; i < previewDataList.length + tableStatisticsSize; i++) {\n const rowList: TableCellElement[] = [];\n if (i < previewDataList.length) {\n const previewData = previewDataList[i];\n previewDataTmpList.push(previewData);\n // 序号\n if (!previewData['autoIncrement']) {\n previewData['autoIncrement'] = i + 1;\n }\n for (let j = 0; j < headList.length; j++) {\n const head = headList[j];\n bodyList[j].data = previewData[head.field!];\n rowList.push(element2PreviewWrapper(bodyList[j]));\n }\n\n previewWrapper.tableBodyList.push(rowList);\n } else {\n // debugger\n // 计算\n const tableStatisticsIndex = i - previewDataList.length;\n const rowList = [...tableStatisticsList[tableStatisticsIndex]];\n let hasCell = previewRowStatisticsList(rowList, tableStaticsListWrapper, headList, 'tableStatisticsIs');\n if (hasCell) {\n previewWrapper.statisticsList.push(rowList);\n }\n }\n\n await nextTick();\n // console.log(table.height())\n\n const tableBodyEl = table.childNodes[1] as HTMLElement | undefined;\n if (previewWrapper.option.tableHeightType == 'FIXED' && tableBodyEl) {\n // 固定高度\n if (tableBodyEl.clientHeight > unit2px(previewWrapper.height, panel)) {\n const isLastDataRow = i >= previewDataList.length - 1;\n if (i === index && isLastDataRow) {\n // 仅一行或已是最后一行仍超高:本页展示,禁止触发 while 死循环\n } else if (i == index) {\n tableSource.previewTableRowIndex = i + 1;\n previewContext.pagingRepetition = true;\n statisticsData(previewDataTmpList, statisticsListWrapper);\n if (i >= previewDataList.length) {\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n previewDataTmpList.pop();\n break;\n } else {\n previewWrapper.tableBodyList.pop();\n previewDataTmpList.pop();\n tableSource.previewTableRowIndex = i;\n previewContext.pagingRepetition = true;\n statisticsData(previewDataTmpList, statisticsListWrapper);\n if (i >= previewDataList.length) {\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n previewDataTmpList.pop();\n break;\n }\n }\n }\n\n if (await isNeedNewPage(unit2px(previewWrapper.y, panel) + table.clientHeight, unit2px(previewContext.bottom, panel))) {\n if (recursionDepth >= 8) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n break;\n }\n // 删除刚才创建的\n previewWrapper.tableBodyList.pop();\n previewDataTmpList.pop();\n // 统计\n statisticsData(previewDataTmpList, statisticsListWrapper);\n previewContext.currentPreview = element2PreviewWrapper(previewWrapper);\n previewWrapper = previewContext.currentPreview;\n if (!previewWrapper.option?.tablePageHeadIs) {\n previewWrapper.tableHeadHiddenIs = true;\n }\n previewWrapper.tableHeadList = [...tableHeadList];\n previewWrapper.statisticsList = [...tableStatisticsList];\n previewWrapper.runtimeOption = parse(stringify(previewWrapper.runtimeOption, 'parent'), {} as RuntimeElementOption);\n previewWrapper.tableBodyList = [bodyList];\n previewWrapper.y = previewContext.top + 1;\n tableSource.previewTableRowIndex = i;\n await autoTableRow(previewContext, previewDataList, i, tableSource, recursionDepth + 1);\n break;\n }\n }\n\n if (i >= previewDataList.length + tableStatisticsSize) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n }\n\n if (i >= previewDataList.length) {\n statisticsData(previewDataTmpList, statisticsListWrapper);\n }\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n\n /**\n * 单位 px\n */\n async function isNeedNewPage(y: number | undefined, bottom: number | undefined, callback?: () => void) {\n\n if (!previewContext.autoPageIs) {\n return false;\n }\n if (previewContext.panel.pageSize == 'AutoHeight') {\n return false;\n }\n\n // 为啥+1\n if (y! > bottom! + 1) {\n if (callback) {\n callback();\n }\n await newPage();\n return true;\n }\n return false;\n }\n\n async function newPage() {\n previewContext.currentPage = reactive({\n id: generateUUID(),\n width: previewContext.panel.width,\n height: previewContext.panel.height,\n offsetTop: 0,\n previewWrapperList: []\n } as any);\n previewContext.pageList.push(previewContext.currentPage);\n previewContext.autoPageIs = true;\n pagesBuffer.push(previewContext.currentPage!);\n // 测量阶段只挂载当前页,避免随页数增长反复全量重绘 measure DOM 导致卡死\n measureList.splice(0, measureList.length, previewContext.currentPage!);\n\n await nextTick();\n // getPanelDiv();\n\n if (previewContext.panel.pageHeader) {\n const preview = element2PreviewWrapper(previewContext.panel.pageHeader);\n previewContext.currentPage!.previewWrapperList!.push(preview);\n previewContext.top = (await computeBottom(preview))!;\n }\n if (previewContext.panel.pageFooter) {\n const preview = element2PreviewWrapper(previewContext.panel.pageFooter);\n previewContext.currentPage!.previewWrapperList!.push(preview);\n previewContext.bottom = (await computeTop(preview))!;\n }\n }\n\n async function computeBottom(previewWrapper: PreviewWrapper) {\n await nextTick();\n if (!previewWrapper.target) {\n return;\n }\n const div = previewWrapper.target;\n // debugger\n return numberUtil.toFixed(px2unit(numberUtil.sumScale(div.offsetTop, div.offsetHeight), panel));\n }\n\n async function computeTop(previewWrapper: PreviewWrapper) {\n await nextTick();\n if (!previewWrapper.target) {\n return;\n }\n const div = previewWrapper.target;\n // console.log(div.offsetTop);\n return numberUtil.toFixed(px2unit(div.offsetTop, panel));\n }\n\n async function computeTextHeight(previewWrapper: PreviewWrapper, previewDataTmp: any) {\n previewWrapper.data = previewDataTmp;\n await nextTick();\n const itemRef = previewWrapper.target;\n // console.log(div)\n if (!itemRef) {\n // debugger\n return;\n }\n const height = previewWrapper.target.clientHeight;\n return previewWrapper.y + px2unit(height, panel) < previewContext.bottom;\n }\n\n async function binary_search(previewWrapper: PreviewWrapper, previewData: string, low: number, height: number): Promise<any> {\n if (low > height) {\n // console.log(\"low > height\")\n return -1;\n }\n const mid = Math.floor((height + low) / 2);\n let isH = await computeTextHeight(previewWrapper, previewData.substring(0, mid + 2));\n let isL = await computeTextHeight(previewWrapper, previewData.substring(0, mid + 1));\n // console.log(data.substring(0, mid + 1))\n // console.log(mid)\n // if (!isH && !isL) {\n // return -1\n // }\n if (isL && !isH) {\n // console.log('返回');\n return mid;\n } else if (!isH) {\n height = mid - 1;\n // console.log('减少', height);\n return binary_search(previewWrapper, previewData, low, height);\n } else if (isL) {\n low = mid + 1;\n // console.log('增加', low);\n return binary_search(previewWrapper, previewData, low, height);\n } else {\n return -1;\n }\n }\n}\n\n\n\n"],"names":["numberUtil","previewElementList","previewContext","previewDataList","rowList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autoPage.mjs","sources":["../../../../../src/components/preview/autoPage.ts"],"sourcesContent":["import {\n downloadImg2Base64,\n generateUUID,\n parse,\n replaceSpacesOutsideHTMLTags,\n stringify\n} from '@myprint/design/utils/utils';\nimport { px2unit, unit2px } from '@myprint/design/utils/devicePixelRatio';\nimport { nextTick, reactive, Ref } from 'vue-demi';\nimport {\n FormatterVariable,\n MyElement,\n Panel,\n PreviewContainerWrapper,\n PreviewContext,\n PreviewWrapper,\n RuntimeElementOption,\n TableCellElement\n} from '@myprint/design/types/entity';\nimport { element2PreviewWrapper, formatter } from '@myprint/design/utils/elementUtil';\nimport numberUtil from '@myprint/design/utils/numberUtil';\nimport {\n lastHeadList,\n previewRowStatisticsList,\n previewTableStatisticsList,\n statisticsData\n} from '@myprint/design/utils/table/dataTable';\nimport { isEmpty } from 'lodash';\n\nfunction panelHasDataTable(container?: { elementList?: MyElement[]; pageHeader?: MyElement; pageFooter?: MyElement }): boolean {\n if (container == null) {\n return false;\n }\n const walk = (list?: MyElement[]): boolean => {\n if (list == null) {\n return false;\n }\n for (const el of list) {\n if (el.type === 'DataTable' || el.type === 'FreeTable') {\n return true;\n }\n if (el.elementList?.length && walk(el.elementList)) {\n return true;\n }\n }\n return false;\n };\n return walk(container.elementList)\n || (container.pageHeader != null && walk([container.pageHeader]))\n || (container.pageFooter != null && walk([container.pageFooter]));\n}\n\n/**\n * 含 DataTable 时:previewData 数组每一项是表格行,不是多份整页;避免外层 for 按行数重复渲染整模板导致卡死。\n */\nfunction normalizePreviewRecords(panel: Panel, previewDataList: any[]) {\n if (!panelHasDataTable(panel) || previewDataList.length === 0) {\n return { records: previewDataList, tableBodyRows: null as any[] | null };\n }\n // 多项:每项为表格一行;单项:表体走 field 绑定的数组,避免误把整对象当一行\n if (previewDataList.length > 1) {\n return {\n records: [previewDataList[0] ?? {}],\n tableBodyRows: previewDataList\n };\n }\n return { records: previewDataList, tableBodyRows: null };\n}\n\nfunction resolveTableBodyRows(\n previewContext: PreviewContext,\n previewWrapper: PreviewWrapper,\n previewDataTmp: any\n): any[] {\n if (previewContext.tableBodyRows != null && previewContext.tableBodyRows.length > 0) {\n return previewContext.tableBodyRows;\n }\n if (previewWrapper.field) {\n const byField = previewContext.previewData?.[previewWrapper.field];\n if (Array.isArray(byField)) {\n return byField;\n }\n if (byField != null && typeof byField === 'object') {\n return [byField];\n }\n }\n if (Array.isArray(previewDataTmp)) {\n return previewDataTmp;\n }\n if (previewDataTmp != null && typeof previewDataTmp === 'object') {\n return [previewDataTmp];\n }\n return [{}];\n}\n\nexport async function autoPage(\n previewEl: Ref<HTMLDivElement[] | undefined>,\n pageList: Array<PreviewContainerWrapper>,\n panel: Panel,\n previewDataList?: any[],\n /** 离屏测量 DOM 专用;与 pageList 分离时最终结果只写入 pageList */\n measurePageList?: Array<PreviewContainerWrapper>\n) {\n const measureList = measurePageList ?? pageList;\n if (previewDataList == null) {\n previewDataList = [{}];\n } else if (!Array.isArray(previewDataList)) {\n previewDataList = [previewDataList];\n }\n if (previewDataList.length === 0) {\n previewDataList = [{}];\n }\n const { records: previewRecords, tableBodyRows } = normalizePreviewRecords(panel, previewDataList);\n /** 分页过程中先写入缓冲区,避免每页 push 触发 Vue 全量重绘导致卡死 */\n const pagesBuffer: PreviewContainerWrapper[] = [];\n const variable = {\n pageIndex: 0,\n pageSize: 0,\n nowDate: new Date()\n } as FormatterVariable;\n\n // 初始化element offsetTop\n let offsetLastElementTop = 0;\n const fixedPreviewElementList: PreviewWrapper[] = [];\n const previewElementList: PreviewWrapper[] = [];\n\n let previewContext = {\n currentPreview: undefined!,\n autoPageIs: false,\n previewData: {},\n panel: panel,\n pageList: [],\n currentPage: undefined! as any,\n top: 0,\n bottom: panel.height, // 单位 mm\n pagingRepetition: true,\n tableBodyRows\n } as PreviewContext;\n // 处理elementWrapper\n for (let myElement of previewContext.panel.elementList) {\n handleElement(myElement);\n }\n\n if (previewContext.panel.pageHeader) {\n handleElement(previewContext.panel.pageHeader);\n }\n if (previewContext.panel.pageFooter) {\n handleElement(previewContext.panel.pageFooter);\n }\n\n function handleElement(myElement: MyElement) {\n const previewElement = element2PreviewWrapper(myElement);\n if (previewElement.previewWrapperList != null && previewElement.previewWrapperList.length > 0) {\n for (let i = previewElement.previewWrapperList.length - 1; i >= 0; i--) {\n const pageNumPreviewElement = previewElement.previewWrapperList[i];\n // 处理嵌套 pageNum\n if (pageNumPreviewElement.option?.fixed) {\n pageNumPreviewElement.x = pageNumPreviewElement.x + previewElement.x;\n pageNumPreviewElement.y = pageNumPreviewElement.y + previewElement.y;\n\n fixedPreviewElementList.push(pageNumPreviewElement);\n previewElement.previewWrapperList.splice(i, 1);\n }\n }\n }\n // if (elementTypeContainerList.includes(previewElement.type)) {\n // previewElement.previewWrapperList = [];\n // }\n\n if (previewElement.option?.fixed) {\n fixedPreviewElementList.push(previewElement);\n } else {\n previewElementList.push(previewElement);\n }\n }\n\n // 排序\n previewElementList.sort((o1, o2) => {\n return o1.y - o2.y;\n });\n\n // 计算每个元素距离上个元素的距离\n for (let previewWrapper of previewElementList) {\n previewWrapper.offsetLastElementTop = numberUtil.subScale(previewWrapper.y, offsetLastElementTop);\n offsetLastElementTop = numberUtil.sumScale(previewWrapper.y, previewWrapper.height);\n }\n\n const MAX_PAGE_ITERATIONS = 500;\n\n for (let previewData of previewRecords) {\n previewContext.previewData = previewData;\n // 固定高度 表格分页打印\n let pageGuard = 0;\n while (previewContext.pagingRepetition) {\n if (++pageGuard > MAX_PAGE_ITERATIONS) {\n console.error('[MyPrint] 表格分页超过最大页数,已中止以避免页面卡死');\n previewContext.pagingRepetition = false;\n break;\n }\n previewContext.pagingRepetition = false;\n previewContext.currentPreview = undefined!;\n\n await newPage();\n await installPreviewElement(previewElementList);\n }\n\n previewContext.pagingRepetition = true;\n for (const el of previewElementList) {\n if (el.type === 'DataTable') {\n el.previewTableRowIndex = 0;\n }\n }\n }\n\n previewContext.autoPageIs = false;\n variable.pageSize = pagesBuffer.length;\n // 每页设置页码\n // 组装固定元素\n for (let i = 0; i < pagesBuffer.length; i++) {\n previewContext.currentPage = pagesBuffer[i];\n variable.pageIndex = i + 1;\n // 每页单独挂载测量 DOM(含 pageList 与 measureList 为同一引用时)\n measureList.splice(0, measureList.length, pagesBuffer[i]);\n await nextTick();\n await installPreviewElement(fixedPreviewElementList);\n }\n\n // 所有的都处理完,如果是自动高度,要重新计算一下高度\n if (panel.pageSize == 'AutoHeight') {\n await nextTick();\n const lastElementChild = previewEl.value?.[0]?.lastElementChild;\n if (lastElementChild) {\n const rect = lastElementChild.getBoundingClientRect();\n pagesBuffer[0].height = px2unit(rect.bottom, panel);\n panel.runtimeOption.printRealHeight = pagesBuffer[0].height;\n }\n }\n\n pageList.splice(0, pageList.length, ...pagesBuffer);\n if (measureList !== pageList) {\n measureList.length = 0;\n }\n\n async function installPreviewElement(previewElementList: PreviewWrapper[]) {\n for (let i = 0; i < previewElementList.length; i++) {\n const oldPreviewWrapper = previewElementList[i];\n let previewWrapper = element2PreviewWrapper(previewElementList[i]);\n\n // 计算顶部需不需要偏移\n if (!previewWrapper.option?.fixed) {\n // 页面顶部有偏移\n // debugger\n if (previewContext.currentPage.offsetTop > 0 && previewContext.currentPreview) {\n if (previewContext.currentPreview.heightIs) {\n previewWrapper.y = previewContext.currentPreview.y + previewContext.currentPreview.height + previewWrapper.offsetLastElementTop;\n } else {\n // debugger\n previewWrapper.y = numberUtil.sumScale(previewContext.currentPage.offsetTop, previewWrapper.offsetLastElementTop);\n }\n\n }\n\n // 判断需不需要分页\n // console.log(await isNeedNewPage(previewWrapper.y, previewContext.bottom));\n // console.log(await isNeedNewPage(previewWrapper.y + previewWrapper.height, previewContext.bottom));\n if (previewWrapper.type != 'PageFooter'\n && previewContext.currentPage.previewWrapperList.length > 0\n && (await isNeedNewPage(previewWrapper.y, previewContext.bottom) || await isNeedNewPage(previewWrapper.y + previewWrapper.height, previewContext.bottom))) {\n previewWrapper.y = 1;\n previewContext.currentPage!.offsetTop = 1;\n }\n }\n\n if (previewWrapper.option?.fixed && previewWrapper.option.displayStrategy != undefined) {\n switch (previewWrapper.option.displayStrategy) {\n case 'firstPage':\n if (variable.pageIndex != 1) {\n continue;\n }\n break;\n case 'lastPage':\n if (variable.pageIndex != variable.pageSize) {\n continue;\n }\n break;\n case 'none':\n continue;\n case 'oddPage':\n if (variable.pageIndex % 2 != 1) {\n continue;\n }\n break;\n case 'evenPage':\n if (variable.pageIndex % 2 != 0) {\n continue;\n }\n break;\n }\n }\n\n previewContext.currentPreview = previewWrapper;\n\n // 需要data\n let previewDataTmp: any;\n\n if (previewWrapper.field) {\n // 打印数据\n previewDataTmp = previewContext.previewData[previewWrapper.field];\n }\n\n if (!previewDataTmp) {\n // 格式化数据\n previewDataTmp = formatter(previewWrapper, variable);\n }\n\n if (!previewDataTmp) {\n // 设计数据\n previewDataTmp = previewWrapper.data;\n }\n\n if (previewWrapper.type == 'Image') {\n previewWrapper.data = previewDataTmp;\n // 如果是图片地址,则下载下来\n if (!isEmpty(previewWrapper.data) && (previewWrapper.data as string).startsWith('http')) {\n // 网络图片,下载下来\n try {\n previewWrapper.data = await downloadImg2Base64(previewWrapper.data);\n } catch (e: any) {\n previewWrapper.data = '图片加载错误';\n }\n }\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n } else if (previewWrapper.type == 'Text' || previewWrapper.type == 'PageNum' || previewWrapper.type == 'TextTime') {\n\n if (previewWrapper.type == 'PageNum') {\n previewWrapper = element2PreviewWrapper(previewWrapper);\n previewContext.currentPreview = previewWrapper;\n previewElementList[i] = previewWrapper;\n }\n\n if (!previewWrapper.contentType) {\n previewWrapper.contentType = 'Text';\n }\n\n previewWrapper.data = previewDataTmp;\n\n if (previewWrapper.contentType === 'Text') {\n if (previewDataTmp) {\n previewDataTmp = replaceSpacesOutsideHTMLTags(previewDataTmp);\n previewWrapper.data = previewDataTmp;\n }\n await autoTextElement(previewDataTmp, true);\n } else if (previewWrapper.contentType === 'QrCode' || previewWrapper.contentType === 'Barcode') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n } else {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n }\n } else if (previewWrapper.type == 'DataTable') {\n const source = previewElementList[i];\n const tableRowIndex = source.previewTableRowIndex ?? 0;\n const tableRows = resolveTableBodyRows(previewContext, previewWrapper, previewDataTmp);\n await autoTableRow(previewContext, tableRows, tableRowIndex, source);\n if (!previewContext.pagingRepetition) {\n source.previewTableRowIndex = 0;\n }\n } else if (previewWrapper.type == 'Container') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else if (previewWrapper.type == 'PageHeader') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else if (previewWrapper.type == 'PageFooter') {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n const tmpPage = previewContext.currentPage;\n previewContext.currentPage = previewWrapper;\n previewWrapper.previewWrapperList = [];\n await installPreviewElement(oldPreviewWrapper.previewWrapperList);\n previewContext.currentPage = tmpPage;\n } else {\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n }\n\n if (!previewContext.currentPreview.heightIs) {\n // 重新计算顶部偏移\n previewContext.currentPage.offsetTop = (await computeBottom(previewContext.currentPreview))!;\n }\n\n previewContext.currentPreview = previewWrapper;\n }\n }\n\n async function autoTextElement(previewData: string, first: boolean) {\n let previewWrapper = previewContext.currentPreview;\n previewWrapper.data = previewData;\n previewWrapper.heightIs = false;\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n await nextTick();\n if (!previewWrapper.target) {\n previewWrapper.heightIs = true;\n return false;\n }\n const height = previewWrapper.target.clientHeight;\n\n /**\n * 非自动高度\n */\n if (previewWrapper.option?.autoTextHeight == null || !previewWrapper.option?.autoTextHeight) {\n previewWrapper.heightIs = true;\n return false;\n }\n\n if (first && height < previewWrapper.runtimeOption.height) {\n previewWrapper.heightIs = true;\n // console.log('小')\n return false;\n } else {\n // console.log('大')\n }\n\n // console.log(height)\n if (previewWrapper.y + px2unit(height, panel) < previewContext.bottom) {\n return false;\n } else {\n // console.log(previewWrapper)\n }\n\n let mid = await binary_search(previewWrapper, previewData, 1, previewData.length);\n // console.log(mid)\n\n if (mid > 0 && mid < previewData.length) {\n // console.log('文本分页');\n if (previewContext.autoPageIs) {\n await newPage();\n previewContext.currentPreview = element2PreviewWrapper(previewWrapper);\n // previewWrapper.element = previewWrapper\n previewContext.currentPreview.y = previewContext.top;\n // console.log(previewWrapper)\n await autoTextElement(previewData.substring(mid + 1, previewData.length), false);\n return true;\n }\n // data.currentPage.offsetTop = computeBottom({previewWrapper: previewWrapper} as PreviewWrapper)\n }\n\n return false;\n }\n\n async function autoTableRow(\n previewContext: PreviewContext,\n previewDataList: Array<any>,\n index: number,\n tableSource: PreviewWrapper,\n recursionDepth = 0\n ) {\n const MAX_TABLE_RECURSION = 100;\n if (recursionDepth > MAX_TABLE_RECURSION) {\n console.error('[MyPrint] 表格分页递归过深,已中止');\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n if (previewDataList == null) {\n previewDataList = [];\n }\n let previewWrapper = previewContext.currentPreview;\n const tableStatisticsSizeEarly = previewWrapper.statisticsList?.length ?? 0;\n if (index >= previewDataList.length + tableStatisticsSizeEarly) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n if (previewWrapper.option.tableHeightType == 'AUTO') {\n previewWrapper.heightIs = false;\n }\n\n previewContext.currentPage.previewWrapperList.push(previewWrapper);\n await nextTick();\n const table = previewWrapper.target;\n if (!table) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n return false;\n }\n const tableHeadList = [...previewWrapper.tableHeadList];\n const headList = lastHeadList(tableHeadList);\n const bodyList = previewWrapper.tableBodyList[0];\n if (previewWrapper.statisticsList == null) {\n previewWrapper.statisticsList = [];\n }\n const tableStatisticsList = [...previewWrapper.statisticsList];\n const tableStatisticsSize = tableStatisticsList.length;\n let statisticsListWrapper: Record<number, any[]> = {};\n let tableStaticsListWrapper: Record<number, any[]> = {};\n if (previewWrapper.tableHeadHiddenIs) {\n previewWrapper.tableHeadList.length = 0;\n for (let j = 0; j < bodyList.length; j++) {\n bodyList[j].runtimeOption.width = headList[j].runtimeOption.width;\n }\n\n // 设置第一行的宽度<不然表格宽度有问题\n }\n previewWrapper.tableBodyList.length = 0;\n previewWrapper.statisticsList.length = 0;\n if (index < previewDataList.length) {\n previewTableStatisticsList(tableStatisticsList, previewWrapper.statisticsList, statisticsListWrapper, headList);\n }\n const previewDataTmpList: any[] = [];\n let i = index;\n for (; i < previewDataList.length + tableStatisticsSize; i++) {\n const rowList: TableCellElement[] = [];\n if (i < previewDataList.length) {\n const previewData = previewDataList[i];\n previewDataTmpList.push(previewData);\n // 序号\n if (!previewData['autoIncrement']) {\n previewData['autoIncrement'] = i + 1;\n }\n for (let j = 0; j < headList.length; j++) {\n const head = headList[j];\n bodyList[j].data = previewData[head.field!];\n rowList.push(element2PreviewWrapper(bodyList[j]));\n }\n\n previewWrapper.tableBodyList.push(rowList);\n } else {\n // debugger\n // 计算\n const tableStatisticsIndex = i - previewDataList.length;\n const rowList = [...tableStatisticsList[tableStatisticsIndex]];\n let hasCell = previewRowStatisticsList(rowList, tableStaticsListWrapper, headList, 'tableStatisticsIs');\n if (hasCell) {\n previewWrapper.statisticsList.push(rowList);\n }\n }\n\n await nextTick();\n // console.log(table.height())\n\n const tableBodyEl = table.childNodes[1] as HTMLElement | undefined;\n if (previewWrapper.option.tableHeightType == 'FIXED' && tableBodyEl) {\n // 固定高度\n if (tableBodyEl.clientHeight > unit2px(previewWrapper.height, panel)) {\n const isLastDataRow = i >= previewDataList.length - 1;\n if (i === index && isLastDataRow) {\n // 仅一行或已是最后一行仍超高:本页展示,禁止触发 while 死循环\n } else if (i == index) {\n tableSource.previewTableRowIndex = i + 1;\n previewContext.pagingRepetition = true;\n statisticsData(previewDataTmpList, statisticsListWrapper);\n if (i >= previewDataList.length) {\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n previewDataTmpList.pop();\n break;\n } else {\n previewWrapper.tableBodyList.pop();\n previewDataTmpList.pop();\n tableSource.previewTableRowIndex = i;\n previewContext.pagingRepetition = true;\n statisticsData(previewDataTmpList, statisticsListWrapper);\n if (i >= previewDataList.length) {\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n previewDataTmpList.pop();\n break;\n }\n }\n }\n\n if (await isNeedNewPage(unit2px(previewWrapper.y, panel) + table.clientHeight, unit2px(previewContext.bottom, panel))) {\n if (recursionDepth >= 8) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n break;\n }\n // 删除刚才创建的\n previewWrapper.tableBodyList.pop();\n previewDataTmpList.pop();\n // 统计\n statisticsData(previewDataTmpList, statisticsListWrapper);\n previewContext.currentPreview = element2PreviewWrapper(previewWrapper);\n previewWrapper = previewContext.currentPreview;\n if (!previewWrapper.option?.tablePageHeadIs) {\n previewWrapper.tableHeadHiddenIs = true;\n }\n previewWrapper.tableHeadList = [...tableHeadList];\n previewWrapper.statisticsList = [...tableStatisticsList];\n previewWrapper.runtimeOption = parse(stringify(previewWrapper.runtimeOption, 'parent'), {} as RuntimeElementOption);\n previewWrapper.tableBodyList = [bodyList];\n previewWrapper.y = previewContext.top + 1;\n tableSource.previewTableRowIndex = i;\n await autoTableRow(previewContext, previewDataList, i, tableSource, recursionDepth + 1);\n break;\n }\n }\n\n if (i >= previewDataList.length + tableStatisticsSize) {\n previewContext.pagingRepetition = false;\n tableSource.previewTableRowIndex = 0;\n }\n\n if (i >= previewDataList.length) {\n statisticsData(previewDataTmpList, statisticsListWrapper);\n }\n statisticsData(previewDataList, tableStaticsListWrapper);\n }\n\n /**\n * 单位 px\n */\n async function isNeedNewPage(y: number | undefined, bottom: number | undefined, callback?: () => void) {\n\n if (!previewContext.autoPageIs) {\n return false;\n }\n if (previewContext.panel.pageSize == 'AutoHeight') {\n return false;\n }\n\n // 为啥+1\n if (y! > bottom! + 1) {\n if (callback) {\n callback();\n }\n await newPage();\n return true;\n }\n return false;\n }\n\n async function newPage() {\n previewContext.currentPage = reactive({\n id: generateUUID(),\n width: previewContext.panel.width,\n height: previewContext.panel.height,\n offsetTop: 0,\n previewWrapperList: []\n } as any);\n previewContext.pageList.push(previewContext.currentPage);\n previewContext.autoPageIs = true;\n pagesBuffer.push(previewContext.currentPage!);\n // 测量阶段只挂载当前页,避免随页数增长反复全量重绘 measure DOM 导致卡死\n measureList.splice(0, measureList.length, previewContext.currentPage!);\n\n await nextTick();\n // getPanelDiv();\n\n if (previewContext.panel.pageHeader) {\n const preview = element2PreviewWrapper(previewContext.panel.pageHeader);\n previewContext.currentPage!.previewWrapperList!.push(preview);\n previewContext.top = (await computeBottom(preview))!;\n }\n if (previewContext.panel.pageFooter) {\n const preview = element2PreviewWrapper(previewContext.panel.pageFooter);\n previewContext.currentPage!.previewWrapperList!.push(preview);\n previewContext.bottom = (await computeTop(preview))!;\n }\n }\n\n async function computeBottom(previewWrapper: PreviewWrapper) {\n await nextTick();\n if (!previewWrapper.target) {\n return;\n }\n const div = previewWrapper.target;\n // debugger\n return numberUtil.toFixed(px2unit(numberUtil.sumScale(div.offsetTop, div.offsetHeight), panel));\n }\n\n async function computeTop(previewWrapper: PreviewWrapper) {\n await nextTick();\n if (!previewWrapper.target) {\n return;\n }\n const div = previewWrapper.target;\n // console.log(div.offsetTop);\n return numberUtil.toFixed(px2unit(div.offsetTop, panel));\n }\n\n async function computeTextHeight(previewWrapper: PreviewWrapper, previewDataTmp: any) {\n previewWrapper.data = previewDataTmp;\n await nextTick();\n const itemRef = previewWrapper.target;\n // console.log(div)\n if (!itemRef) {\n // debugger\n return;\n }\n const height = previewWrapper.target.clientHeight;\n return previewWrapper.y + px2unit(height, panel) < previewContext.bottom;\n }\n\n async function binary_search(previewWrapper: PreviewWrapper, previewData: string, low: number, height: number): Promise<any> {\n if (low > height) {\n // console.log(\"low > height\")\n return -1;\n }\n const mid = Math.floor((height + low) / 2);\n let isH = await computeTextHeight(previewWrapper, previewData.substring(0, mid + 2));\n let isL = await computeTextHeight(previewWrapper, previewData.substring(0, mid + 1));\n // console.log(data.substring(0, mid + 1))\n // console.log(mid)\n // if (!isH && !isL) {\n // return -1\n // }\n if (isL && !isH) {\n // console.log('返回');\n return mid;\n } else if (!isH) {\n height = mid - 1;\n // console.log('减少', height);\n return binary_search(previewWrapper, previewData, low, height);\n } else if (isL) {\n low = mid + 1;\n // console.log('增加', low);\n return binary_search(previewWrapper, previewData, low, height);\n } else {\n return -1;\n }\n }\n}\n\n\n\n"],"names":["numberUtil","previewElementList","previewContext","previewDataList","rowList"],"mappings":";;;;;;;;AA6BA,SAAS,kBAAkB,SAAoG,EAAA;AAC3H,EAAA,IAAI,aAAa,IAAM,EAAA;AACnB,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AACA,EAAM,MAAA,IAAA,GAAO,CAAC,IAAgC,KAAA;AAC1C,IAAA,IAAI,QAAQ,IAAM,EAAA;AACd,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAA,KAAA,MAAW,MAAM,IAAM,EAAA;AACnB,MAAA,IAAI,EAAG,CAAA,IAAA,KAAS,WAAe,IAAA,EAAA,CAAG,SAAS,WAAa,EAAA;AACpD,QAAO,OAAA,IAAA,CAAA;AAAA,OACX;AACA,MAAA,IAAI,GAAG,WAAa,EAAA,MAAA,IAAU,IAAK,CAAA,EAAA,CAAG,WAAW,CAAG,EAAA;AAChD,QAAO,OAAA,IAAA,CAAA;AAAA,OACX;AAAA,KACJ;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACX,CAAA;AACA,EAAO,OAAA,IAAA,CAAK,UAAU,WAAW,CAAA,IACzB,UAAU,UAAc,IAAA,IAAA,IAAQ,KAAK,CAAC,SAAA,CAAU,UAAU,CAAC,CAAA,IAC3D,UAAU,UAAc,IAAA,IAAA,IAAQ,KAAK,CAAC,SAAA,CAAU,UAAU,CAAC,CAAA,CAAA;AACvE,CAAA;AAKA,SAAS,uBAAA,CAAwB,OAAc,eAAwB,EAAA;AACnE,EAAA,IAAI,CAAC,iBAAkB,CAAA,KAAK,CAAK,IAAA,eAAA,CAAgB,WAAW,CAAG,EAAA;AAC3D,IAAA,OAAO,EAAE,OAAA,EAAS,eAAiB,EAAA,aAAA,EAAe,IAAqB,EAAA,CAAA;AAAA,GAC3E;AAEA,EAAI,IAAA,eAAA,CAAgB,SAAS,CAAG,EAAA;AAC5B,IAAO,OAAA;AAAA,MACH,SAAS,CAAC,eAAA,CAAgB,CAAC,CAAA,IAAK,EAAE,CAAA;AAAA,MAClC,aAAe,EAAA,eAAA;AAAA,KACnB,CAAA;AAAA,GACJ;AACA,EAAA,OAAO,EAAE,OAAA,EAAS,eAAiB,EAAA,aAAA,EAAe,IAAK,EAAA,CAAA;AAC3D,CAAA;AAEA,SAAS,oBAAA,CACL,cACA,EAAA,cAAA,EACA,cACK,EAAA;AACL,EAAA,IAAI,eAAe,aAAiB,IAAA,IAAA,IAAQ,cAAe,CAAA,aAAA,CAAc,SAAS,CAAG,EAAA;AACjF,IAAA,OAAO,cAAe,CAAA,aAAA,CAAA;AAAA,GAC1B;AACA,EAAA,IAAI,eAAe,KAAO,EAAA;AACtB,IAAA,MAAM,OAAU,GAAA,cAAA,CAAe,WAAc,GAAA,cAAA,CAAe,KAAK,CAAA,CAAA;AACjE,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CAAG,EAAA;AACxB,MAAO,OAAA,OAAA,CAAA;AAAA,KACX;AACA,IAAA,IAAI,OAAW,IAAA,IAAA,IAAQ,OAAO,OAAA,KAAY,QAAU,EAAA;AAChD,MAAA,OAAO,CAAC,OAAO,CAAA,CAAA;AAAA,KACnB;AAAA,GACJ;AACA,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,cAAc,CAAG,EAAA;AAC/B,IAAO,OAAA,cAAA,CAAA;AAAA,GACX;AACA,EAAA,IAAI,cAAkB,IAAA,IAAA,IAAQ,OAAO,cAAA,KAAmB,QAAU,EAAA;AAC9D,IAAA,OAAO,CAAC,cAAc,CAAA,CAAA;AAAA,GAC1B;AACA,EAAO,OAAA,CAAC,EAAE,CAAA,CAAA;AACd,CAAA;AAEA,eAAsB,QAClB,CAAA,SAAA,EACA,QACA,EAAA,KAAA,EACA,iBAEA,eACF,EAAA;AACE,EAAA,MAAM,cAAc,eAAmB,IAAA,QAAA,CAAA;AACvC,EAAA,IAAI,mBAAmB,IAAM,EAAA;AACzB,IAAkB,eAAA,GAAA,CAAC,EAAE,CAAA,CAAA;AAAA,GACd,MAAA,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,eAAe,CAAG,EAAA;AACxC,IAAA,eAAA,GAAkB,CAAC,eAAe,CAAA,CAAA;AAAA,GACtC;AACA,EAAI,IAAA,eAAA,CAAgB,WAAW,CAAG,EAAA;AAC9B,IAAkB,eAAA,GAAA,CAAC,EAAE,CAAA,CAAA;AAAA,GACzB;AACA,EAAA,MAAM,EAAE,OAAS,EAAA,cAAA,EAAgB,eAAkB,GAAA,uBAAA,CAAwB,OAAO,eAAe,CAAA,CAAA;AAEjG,EAAA,MAAM,cAAyC,EAAC,CAAA;AAChD,EAAA,MAAM,QAAW,GAAA;AAAA,IACb,SAAW,EAAA,CAAA;AAAA,IACX,QAAU,EAAA,CAAA;AAAA,IACV,OAAA,sBAAa,IAAK,EAAA;AAAA,GACtB,CAAA;AAGA,EAAA,IAAI,oBAAuB,GAAA,CAAA,CAAA;AAC3B,EAAA,MAAM,0BAA4C,EAAC,CAAA;AACnD,EAAA,MAAM,qBAAuC,EAAC,CAAA;AAE9C,EAAA,IAAI,cAAiB,GAAA;AAAA,IACjB,cAAgB,EAAA,KAAA,CAAA;AAAA,IAChB,UAAY,EAAA,KAAA;AAAA,IACZ,aAAa,EAAC;AAAA,IACd,KAAA;AAAA,IACA,UAAU,EAAC;AAAA,IACX,WAAa,EAAA,KAAA,CAAA;AAAA,IACb,GAAK,EAAA,CAAA;AAAA,IACL,QAAQ,KAAM,CAAA,MAAA;AAAA;AAAA,IACd,gBAAkB,EAAA,IAAA;AAAA,IAClB,aAAA;AAAA,GACJ,CAAA;AAEA,EAAS,KAAA,IAAA,SAAA,IAAa,cAAe,CAAA,KAAA,CAAM,WAAa,EAAA;AACpD,IAAA,aAAA,CAAc,SAAS,CAAA,CAAA;AAAA,GAC3B;AAEA,EAAI,IAAA,cAAA,CAAe,MAAM,UAAY,EAAA;AACjC,IAAc,aAAA,CAAA,cAAA,CAAe,MAAM,UAAU,CAAA,CAAA;AAAA,GACjD;AACA,EAAI,IAAA,cAAA,CAAe,MAAM,UAAY,EAAA;AACjC,IAAc,aAAA,CAAA,cAAA,CAAe,MAAM,UAAU,CAAA,CAAA;AAAA,GACjD;AAEA,EAAA,SAAS,cAAc,SAAsB,EAAA;AACzC,IAAM,MAAA,cAAA,GAAiB,uBAAuB,SAAS,CAAA,CAAA;AACvD,IAAA,IAAI,eAAe,kBAAsB,IAAA,IAAA,IAAQ,cAAe,CAAA,kBAAA,CAAmB,SAAS,CAAG,EAAA;AAC3F,MAAA,KAAA,IAAS,IAAI,cAAe,CAAA,kBAAA,CAAmB,SAAS,CAAG,EAAA,CAAA,IAAK,GAAG,CAAK,EAAA,EAAA;AACpE,QAAM,MAAA,qBAAA,GAAwB,cAAe,CAAA,kBAAA,CAAmB,CAAC,CAAA,CAAA;AAEjE,QAAI,IAAA,qBAAA,CAAsB,QAAQ,KAAO,EAAA;AACrC,UAAsB,qBAAA,CAAA,CAAA,GAAI,qBAAsB,CAAA,CAAA,GAAI,cAAe,CAAA,CAAA,CAAA;AACnE,UAAsB,qBAAA,CAAA,CAAA,GAAI,qBAAsB,CAAA,CAAA,GAAI,cAAe,CAAA,CAAA,CAAA;AAEnE,UAAA,uBAAA,CAAwB,KAAK,qBAAqB,CAAA,CAAA;AAClD,UAAe,cAAA,CAAA,kBAAA,CAAmB,MAAO,CAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,SACjD;AAAA,OACJ;AAAA,KACJ;AAKA,IAAI,IAAA,cAAA,CAAe,QAAQ,KAAO,EAAA;AAC9B,MAAA,uBAAA,CAAwB,KAAK,cAAc,CAAA,CAAA;AAAA,KACxC,MAAA;AACH,MAAA,kBAAA,CAAmB,KAAK,cAAc,CAAA,CAAA;AAAA,KAC1C;AAAA,GACJ;AAGA,EAAmB,kBAAA,CAAA,IAAA,CAAK,CAAC,EAAA,EAAI,EAAO,KAAA;AAChC,IAAO,OAAA,EAAA,CAAG,IAAI,EAAG,CAAA,CAAA,CAAA;AAAA,GACpB,CAAA,CAAA;AAGD,EAAA,KAAA,IAAS,kBAAkB,kBAAoB,EAAA;AAC3C,IAAA,cAAA,CAAe,oBAAuB,GAAAA,QAAA,CAAW,QAAS,CAAA,cAAA,CAAe,GAAG,oBAAoB,CAAA,CAAA;AAChG,IAAA,oBAAA,GAAuBA,QAAW,CAAA,QAAA,CAAS,cAAe,CAAA,CAAA,EAAG,eAAe,MAAM,CAAA,CAAA;AAAA,GACtF;AAEA,EAAA,MAAM,mBAAsB,GAAA,GAAA,CAAA;AAE5B,EAAA,KAAA,IAAS,eAAe,cAAgB,EAAA;AACpC,IAAA,cAAA,CAAe,WAAc,GAAA,WAAA,CAAA;AAE7B,IAAA,IAAI,SAAY,GAAA,CAAA,CAAA;AAChB,IAAA,OAAO,eAAe,gBAAkB,EAAA;AACpC,MAAI,IAAA,EAAE,YAAY,mBAAqB,EAAA;AACnC,QAAA,OAAA,CAAQ,MAAM,0IAAiC,CAAA,CAAA;AAC/C,QAAA,cAAA,CAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,QAAA,MAAA;AAAA,OACJ;AACA,MAAA,cAAA,CAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,MAAA,cAAA,CAAe,cAAiB,GAAA,KAAA,CAAA,CAAA;AAEhC,MAAA,MAAM,OAAQ,EAAA,CAAA;AACd,MAAA,MAAM,sBAAsB,kBAAkB,CAAA,CAAA;AAAA,KAClD;AAEA,IAAA,cAAA,CAAe,gBAAmB,GAAA,IAAA,CAAA;AAClC,IAAA,KAAA,MAAW,MAAM,kBAAoB,EAAA;AACjC,MAAI,IAAA,EAAA,CAAG,SAAS,WAAa,EAAA;AACzB,QAAA,EAAA,CAAG,oBAAuB,GAAA,CAAA,CAAA;AAAA,OAC9B;AAAA,KACJ;AAAA,GACJ;AAEA,EAAA,cAAA,CAAe,UAAa,GAAA,KAAA,CAAA;AAC5B,EAAA,QAAA,CAAS,WAAW,WAAY,CAAA,MAAA,CAAA;AAGhC,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,CAAY,QAAQ,CAAK,EAAA,EAAA;AACzC,IAAe,cAAA,CAAA,WAAA,GAAc,YAAY,CAAC,CAAA,CAAA;AAC1C,IAAA,QAAA,CAAS,YAAY,CAAI,GAAA,CAAA,CAAA;AAEzB,IAAA,WAAA,CAAY,OAAO,CAAG,EAAA,WAAA,CAAY,MAAQ,EAAA,WAAA,CAAY,CAAC,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAA,MAAM,sBAAsB,uBAAuB,CAAA,CAAA;AAAA,GACvD;AAGA,EAAI,IAAA,KAAA,CAAM,YAAY,YAAc,EAAA;AAChC,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAA,MAAM,gBAAmB,GAAA,SAAA,CAAU,KAAQ,GAAA,CAAC,CAAG,EAAA,gBAAA,CAAA;AAC/C,IAAA,IAAI,gBAAkB,EAAA;AAClB,MAAM,MAAA,IAAA,GAAO,iBAAiB,qBAAsB,EAAA,CAAA;AACpD,MAAA,WAAA,CAAY,CAAC,CAAE,CAAA,MAAA,GAAS,OAAQ,CAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAClD,MAAA,KAAA,CAAM,aAAc,CAAA,eAAA,GAAkB,WAAY,CAAA,CAAC,CAAE,CAAA,MAAA,CAAA;AAAA,KACzD;AAAA,GACJ;AAEA,EAAA,QAAA,CAAS,MAAO,CAAA,CAAA,EAAG,QAAS,CAAA,MAAA,EAAQ,GAAG,WAAW,CAAA,CAAA;AAClD,EAAA,IAAI,gBAAgB,QAAU,EAAA;AAC1B,IAAA,WAAA,CAAY,MAAS,GAAA,CAAA,CAAA;AAAA,GACzB;AAEA,EAAA,eAAe,sBAAsBC,mBAAsC,EAAA;AACvE,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAIA,GAAAA,mBAAAA,CAAmB,QAAQ,CAAK,EAAA,EAAA;AAChD,MAAM,MAAA,iBAAA,GAAoBA,oBAAmB,CAAC,CAAA,CAAA;AAC9C,MAAA,IAAI,cAAiB,GAAA,sBAAA,CAAuBA,mBAAmB,CAAA,CAAC,CAAC,CAAA,CAAA;AAGjE,MAAI,IAAA,CAAC,cAAe,CAAA,MAAA,EAAQ,KAAO,EAAA;AAG/B,QAAA,IAAI,cAAe,CAAA,WAAA,CAAY,SAAY,GAAA,CAAA,IAAK,eAAe,cAAgB,EAAA;AAC3E,UAAI,IAAA,cAAA,CAAe,eAAe,QAAU,EAAA;AACxC,YAAA,cAAA,CAAe,IAAI,cAAe,CAAA,cAAA,CAAe,IAAI,cAAe,CAAA,cAAA,CAAe,SAAS,cAAe,CAAA,oBAAA,CAAA;AAAA,WACxG,MAAA;AAEH,YAAA,cAAA,CAAe,IAAID,QAAW,CAAA,QAAA,CAAS,eAAe,WAAY,CAAA,SAAA,EAAW,eAAe,oBAAoB,CAAA,CAAA;AAAA,WACpH;AAAA,SAEJ;AAKA,QAAI,IAAA,cAAA,CAAe,QAAQ,YACpB,IAAA,cAAA,CAAe,YAAY,kBAAmB,CAAA,MAAA,GAAS,CACtD,KAAA,MAAM,aAAc,CAAA,cAAA,CAAe,GAAG,cAAe,CAAA,MAAM,CAAK,IAAA,MAAM,aAAc,CAAA,cAAA,CAAe,IAAI,cAAe,CAAA,MAAA,EAAQ,cAAe,CAAA,MAAM,CAAI,CAAA,EAAA;AAC3J,UAAA,cAAA,CAAe,CAAI,GAAA,CAAA,CAAA;AACnB,UAAA,cAAA,CAAe,YAAa,SAAY,GAAA,CAAA,CAAA;AAAA,SAC5C;AAAA,OACJ;AAEA,MAAA,IAAI,eAAe,MAAQ,EAAA,KAAA,IAAS,cAAe,CAAA,MAAA,CAAO,mBAAmB,KAAW,CAAA,EAAA;AACpF,QAAQ,QAAA,cAAA,CAAe,OAAO,eAAiB;AAAA,UAC3C,KAAK,WAAA;AACD,YAAI,IAAA,QAAA,CAAS,aAAa,CAAG,EAAA;AACzB,cAAA,SAAA;AAAA,aACJ;AACA,YAAA,MAAA;AAAA,UACJ,KAAK,UAAA;AACD,YAAI,IAAA,QAAA,CAAS,SAAa,IAAA,QAAA,CAAS,QAAU,EAAA;AACzC,cAAA,SAAA;AAAA,aACJ;AACA,YAAA,MAAA;AAAA,UACJ,KAAK,MAAA;AACD,YAAA,SAAA;AAAA,UACJ,KAAK,SAAA;AACD,YAAI,IAAA,QAAA,CAAS,SAAY,GAAA,CAAA,IAAK,CAAG,EAAA;AAC7B,cAAA,SAAA;AAAA,aACJ;AACA,YAAA,MAAA;AAAA,UACJ,KAAK,UAAA;AACD,YAAI,IAAA,QAAA,CAAS,SAAY,GAAA,CAAA,IAAK,CAAG,EAAA;AAC7B,cAAA,SAAA;AAAA,aACJ;AACA,YAAA,MAAA;AAAA,SACR;AAAA,OACJ;AAEA,MAAA,cAAA,CAAe,cAAiB,GAAA,cAAA,CAAA;AAGhC,MAAI,IAAA,cAAA,CAAA;AAEJ,MAAA,IAAI,eAAe,KAAO,EAAA;AAEtB,QAAiB,cAAA,GAAA,cAAA,CAAe,WAAY,CAAA,cAAA,CAAe,KAAK,CAAA,CAAA;AAAA,OACpE;AAEA,MAAA,IAAI,CAAC,cAAgB,EAAA;AAEjB,QAAiB,cAAA,GAAA,SAAA,CAAU,gBAAgB,QAAQ,CAAA,CAAA;AAAA,OACvD;AAEA,MAAA,IAAI,CAAC,cAAgB,EAAA;AAEjB,QAAA,cAAA,GAAiB,cAAe,CAAA,IAAA,CAAA;AAAA,OACpC;AAEA,MAAI,IAAA,cAAA,CAAe,QAAQ,OAAS,EAAA;AAChC,QAAA,cAAA,CAAe,IAAO,GAAA,cAAA,CAAA;AAEtB,QAAI,IAAA,CAAC,QAAQ,cAAe,CAAA,IAAI,KAAM,cAAe,CAAA,IAAA,CAAgB,UAAW,CAAA,MAAM,CAAG,EAAA;AAErF,UAAI,IAAA;AACA,YAAA,cAAA,CAAe,IAAO,GAAA,MAAM,kBAAmB,CAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AAAA,mBAC7D,CAAQ,EAAA;AACb,YAAA,cAAA,CAAe,IAAO,GAAA,sCAAA,CAAA;AAAA,WAC1B;AAAA,SACJ;AACA,QAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,QAAA,MAAM,QAAS,EAAA,CAAA;AAAA,OACnB,MAAA,IAAW,eAAe,IAAQ,IAAA,MAAA,IAAU,eAAe,IAAQ,IAAA,SAAA,IAAa,cAAe,CAAA,IAAA,IAAQ,UAAY,EAAA;AAE/G,QAAI,IAAA,cAAA,CAAe,QAAQ,SAAW,EAAA;AAClC,UAAA,cAAA,GAAiB,uBAAuB,cAAc,CAAA,CAAA;AACtD,UAAA,cAAA,CAAe,cAAiB,GAAA,cAAA,CAAA;AAChC,UAAAC,mBAAAA,CAAmB,CAAC,CAAI,GAAA,cAAA,CAAA;AAAA,SAC5B;AAEA,QAAI,IAAA,CAAC,eAAe,WAAa,EAAA;AAC7B,UAAA,cAAA,CAAe,WAAc,GAAA,MAAA,CAAA;AAAA,SACjC;AAEA,QAAA,cAAA,CAAe,IAAO,GAAA,cAAA,CAAA;AAEtB,QAAI,IAAA,cAAA,CAAe,gBAAgB,MAAQ,EAAA;AACvC,UAAA,IAAI,cAAgB,EAAA;AAChB,YAAA,cAAA,GAAiB,6BAA6B,cAAc,CAAA,CAAA;AAC5D,YAAA,cAAA,CAAe,IAAO,GAAA,cAAA,CAAA;AAAA,WAC1B;AACA,UAAM,MAAA,eAAA,CAAgB,gBAAgB,IAAI,CAAA,CAAA;AAAA,mBACnC,cAAe,CAAA,WAAA,KAAgB,QAAY,IAAA,cAAA,CAAe,gBAAgB,SAAW,EAAA;AAC5F,UAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,UAAA,MAAM,QAAS,EAAA,CAAA;AAAA,SACZ,MAAA;AACH,UAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,UAAA,MAAM,QAAS,EAAA,CAAA;AAAA,SACnB;AAAA,OACJ,MAAA,IAAW,cAAe,CAAA,IAAA,IAAQ,WAAa,EAAA;AAC3C,QAAM,MAAA,MAAA,GAASA,oBAAmB,CAAC,CAAA,CAAA;AACnC,QAAM,MAAA,aAAA,GAAgB,OAAO,oBAAwB,IAAA,CAAA,CAAA;AACrD,QAAA,MAAM,SAAY,GAAA,oBAAA,CAAqB,cAAgB,EAAA,cAAA,EAAgB,cAAc,CAAA,CAAA;AACrF,QAAA,MAAM,YAAa,CAAA,cAAA,EAAgB,SAAW,EAAA,aAAA,EAAe,MAAM,CAAA,CAAA;AACnE,QAAI,IAAA,CAAC,eAAe,gBAAkB,EAAA;AAClC,UAAA,MAAA,CAAO,oBAAuB,GAAA,CAAA,CAAA;AAAA,SAClC;AAAA,OACJ,MAAA,IAAW,cAAe,CAAA,IAAA,IAAQ,WAAa,EAAA;AAC3C,QAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,QAAA,MAAM,UAAU,cAAe,CAAA,WAAA,CAAA;AAC/B,QAAA,cAAA,CAAe,WAAc,GAAA,cAAA,CAAA;AAC7B,QAAA,cAAA,CAAe,qBAAqB,EAAC,CAAA;AACrC,QAAM,MAAA,qBAAA,CAAsB,kBAAkB,kBAAkB,CAAA,CAAA;AAChE,QAAA,cAAA,CAAe,WAAc,GAAA,OAAA,CAAA;AAAA,OACjC,MAAA,IAAW,cAAe,CAAA,IAAA,IAAQ,YAAc,EAAA;AAC5C,QAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,QAAA,MAAM,UAAU,cAAe,CAAA,WAAA,CAAA;AAC/B,QAAA,cAAA,CAAe,WAAc,GAAA,cAAA,CAAA;AAC7B,QAAA,cAAA,CAAe,qBAAqB,EAAC,CAAA;AACrC,QAAM,MAAA,qBAAA,CAAsB,kBAAkB,kBAAkB,CAAA,CAAA;AAChE,QAAA,cAAA,CAAe,WAAc,GAAA,OAAA,CAAA;AAAA,OACjC,MAAA,IAAW,cAAe,CAAA,IAAA,IAAQ,YAAc,EAAA;AAC5C,QAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,QAAA,MAAM,UAAU,cAAe,CAAA,WAAA,CAAA;AAC/B,QAAA,cAAA,CAAe,WAAc,GAAA,cAAA,CAAA;AAC7B,QAAA,cAAA,CAAe,qBAAqB,EAAC,CAAA;AACrC,QAAM,MAAA,qBAAA,CAAsB,kBAAkB,kBAAkB,CAAA,CAAA;AAChE,QAAA,cAAA,CAAe,WAAc,GAAA,OAAA,CAAA;AAAA,OAC1B,MAAA;AACH,QAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AAAA,OACrE;AAEA,MAAI,IAAA,CAAC,cAAe,CAAA,cAAA,CAAe,QAAU,EAAA;AAEzC,QAAA,cAAA,CAAe,WAAY,CAAA,SAAA,GAAa,MAAM,aAAA,CAAc,eAAe,cAAc,CAAA,CAAA;AAAA,OAC7F;AAEA,MAAA,cAAA,CAAe,cAAiB,GAAA,cAAA,CAAA;AAAA,KACpC;AAAA,GACJ;AAEA,EAAe,eAAA,eAAA,CAAgB,aAAqB,KAAgB,EAAA;AAChE,IAAA,IAAI,iBAAiB,cAAe,CAAA,cAAA,CAAA;AACpC,IAAA,cAAA,CAAe,IAAO,GAAA,WAAA,CAAA;AACtB,IAAA,cAAA,CAAe,QAAW,GAAA,KAAA,CAAA;AAC1B,IAAe,cAAA,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAI,IAAA,CAAC,eAAe,MAAQ,EAAA;AACxB,MAAA,cAAA,CAAe,QAAW,GAAA,IAAA,CAAA;AAC1B,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAM,MAAA,MAAA,GAAS,eAAe,MAAO,CAAA,YAAA,CAAA;AAKrC,IAAA,IAAI,eAAe,MAAQ,EAAA,cAAA,IAAkB,QAAQ,CAAC,cAAA,CAAe,QAAQ,cAAgB,EAAA;AACzF,MAAA,cAAA,CAAe,QAAW,GAAA,IAAA,CAAA;AAC1B,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AAEA,IAAA,IAAI,KAAS,IAAA,MAAA,GAAS,cAAe,CAAA,aAAA,CAAc,MAAQ,EAAA;AACvD,MAAA,cAAA,CAAe,QAAW,GAAA,IAAA,CAAA;AAE1B,MAAO,OAAA,KAAA,CAAA;AAAA,KACJ,MAAA;AAAA,KAEP;AAGA,IAAA,IAAI,eAAe,CAAI,GAAA,OAAA,CAAQ,QAAQ,KAAK,CAAA,GAAI,eAAe,MAAQ,EAAA;AACnE,MAAO,OAAA,KAAA,CAAA;AAAA,KACJ,MAAA;AAAA,KAEP;AAEA,IAAA,IAAI,MAAM,MAAM,aAAA,CAAc,gBAAgB,WAAa,EAAA,CAAA,EAAG,YAAY,MAAM,CAAA,CAAA;AAGhF,IAAA,IAAI,GAAM,GAAA,CAAA,IAAK,GAAM,GAAA,WAAA,CAAY,MAAQ,EAAA;AAErC,MAAA,IAAI,eAAe,UAAY,EAAA;AAC3B,QAAA,MAAM,OAAQ,EAAA,CAAA;AACd,QAAe,cAAA,CAAA,cAAA,GAAiB,uBAAuB,cAAc,CAAA,CAAA;AAErE,QAAe,cAAA,CAAA,cAAA,CAAe,IAAI,cAAe,CAAA,GAAA,CAAA;AAEjD,QAAM,MAAA,eAAA,CAAgB,YAAY,SAAU,CAAA,GAAA,GAAM,GAAG,WAAY,CAAA,MAAM,GAAG,KAAK,CAAA,CAAA;AAC/E,QAAO,OAAA,IAAA,CAAA;AAAA,OACX;AAAA,KAEJ;AAEA,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAEA,EAAA,eAAe,aACXC,eACAC,EAAAA,gBAAAA,EACA,KACA,EAAA,WAAA,EACA,iBAAiB,CACnB,EAAA;AACE,IAAA,MAAM,mBAAsB,GAAA,GAAA,CAAA;AAC5B,IAAA,IAAI,iBAAiB,mBAAqB,EAAA;AACtC,MAAA,OAAA,CAAQ,MAAM,oFAAwB,CAAA,CAAA;AACtC,MAAAD,gBAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,MAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAA,IAAIC,oBAAmB,IAAM,EAAA;AACzB,MAAAA,mBAAkB,EAAC,CAAA;AAAA,KACvB;AACA,IAAA,IAAI,iBAAiBD,eAAe,CAAA,cAAA,CAAA;AACpC,IAAM,MAAA,wBAAA,GAA2B,cAAe,CAAA,cAAA,EAAgB,MAAU,IAAA,CAAA,CAAA;AAC1E,IAAI,IAAA,KAAA,IAASC,gBAAgB,CAAA,MAAA,GAAS,wBAA0B,EAAA;AAC5D,MAAAD,gBAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,MAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAI,IAAA,cAAA,CAAe,MAAO,CAAA,eAAA,IAAmB,MAAQ,EAAA;AACjD,MAAA,cAAA,CAAe,QAAW,GAAA,KAAA,CAAA;AAAA,KAC9B;AAEA,IAAAA,eAAe,CAAA,WAAA,CAAY,kBAAmB,CAAA,IAAA,CAAK,cAAc,CAAA,CAAA;AACjE,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAA,MAAM,QAAQ,cAAe,CAAA,MAAA,CAAA;AAC7B,IAAA,IAAI,CAAC,KAAO,EAAA;AACR,MAAAA,gBAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,MAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAA,MAAM,aAAgB,GAAA,CAAC,GAAG,cAAA,CAAe,aAAa,CAAA,CAAA;AACtD,IAAM,MAAA,QAAA,GAAW,aAAa,aAAa,CAAA,CAAA;AAC3C,IAAM,MAAA,QAAA,GAAW,cAAe,CAAA,aAAA,CAAc,CAAC,CAAA,CAAA;AAC/C,IAAI,IAAA,cAAA,CAAe,kBAAkB,IAAM,EAAA;AACvC,MAAA,cAAA,CAAe,iBAAiB,EAAC,CAAA;AAAA,KACrC;AACA,IAAA,MAAM,mBAAsB,GAAA,CAAC,GAAG,cAAA,CAAe,cAAc,CAAA,CAAA;AAC7D,IAAA,MAAM,sBAAsB,mBAAoB,CAAA,MAAA,CAAA;AAChD,IAAA,IAAI,wBAA+C,EAAC,CAAA;AACpD,IAAA,IAAI,0BAAiD,EAAC,CAAA;AACtD,IAAA,IAAI,eAAe,iBAAmB,EAAA;AAClC,MAAA,cAAA,CAAe,cAAc,MAAS,GAAA,CAAA,CAAA;AACtC,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACtC,QAAA,QAAA,CAAS,CAAC,CAAE,CAAA,aAAA,CAAc,QAAQ,QAAS,CAAA,CAAC,EAAE,aAAc,CAAA,KAAA,CAAA;AAAA,OAChE;AAAA,KAGJ;AACA,IAAA,cAAA,CAAe,cAAc,MAAS,GAAA,CAAA,CAAA;AACtC,IAAA,cAAA,CAAe,eAAe,MAAS,GAAA,CAAA,CAAA;AACvC,IAAI,IAAA,KAAA,GAAQC,iBAAgB,MAAQ,EAAA;AAChC,MAAA,0BAAA,CAA2B,mBAAqB,EAAA,cAAA,CAAe,cAAgB,EAAA,qBAAA,EAAuB,QAAQ,CAAA,CAAA;AAAA,KAClH;AACA,IAAA,MAAM,qBAA4B,EAAC,CAAA;AACnC,IAAA,IAAI,CAAI,GAAA,KAAA,CAAA;AACR,IAAA,OAAO,CAAIA,GAAAA,gBAAAA,CAAgB,MAAS,GAAA,mBAAA,EAAqB,CAAK,EAAA,EAAA;AAC1D,MAAA,MAAM,UAA8B,EAAC,CAAA;AACrC,MAAI,IAAA,CAAA,GAAIA,iBAAgB,MAAQ,EAAA;AAC5B,QAAM,MAAA,WAAA,GAAcA,iBAAgB,CAAC,CAAA,CAAA;AACrC,QAAA,kBAAA,CAAmB,KAAK,WAAW,CAAA,CAAA;AAEnC,QAAI,IAAA,CAAC,WAAY,CAAA,eAAe,CAAG,EAAA;AAC/B,UAAY,WAAA,CAAA,eAAe,IAAI,CAAI,GAAA,CAAA,CAAA;AAAA,SACvC;AACA,QAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACtC,UAAM,MAAA,IAAA,GAAO,SAAS,CAAC,CAAA,CAAA;AACvB,UAAA,QAAA,CAAS,CAAC,CAAA,CAAE,IAAO,GAAA,WAAA,CAAY,KAAK,KAAM,CAAA,CAAA;AAC1C,UAAA,OAAA,CAAQ,IAAK,CAAA,sBAAA,CAAuB,QAAS,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,SACpD;AAEA,QAAe,cAAA,CAAA,aAAA,CAAc,KAAK,OAAO,CAAA,CAAA;AAAA,OACtC,MAAA;AAGH,QAAM,MAAA,oBAAA,GAAuB,IAAIA,gBAAgB,CAAA,MAAA,CAAA;AACjD,QAAA,MAAMC,QAAU,GAAA,CAAC,GAAG,mBAAA,CAAoB,oBAAoB,CAAC,CAAA,CAAA;AAC7D,QAAA,IAAI,OAAU,GAAA,wBAAA,CAAyBA,QAAS,EAAA,uBAAA,EAAyB,UAAU,mBAAmB,CAAA,CAAA;AACtG,QAAA,IAAI,OAAS,EAAA;AACT,UAAe,cAAA,CAAA,cAAA,CAAe,KAAKA,QAAO,CAAA,CAAA;AAAA,SAC9C;AAAA,OACJ;AAEA,MAAA,MAAM,QAAS,EAAA,CAAA;AAGf,MAAM,MAAA,WAAA,GAAc,KAAM,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AACtC,MAAA,IAAI,cAAe,CAAA,MAAA,CAAO,eAAmB,IAAA,OAAA,IAAW,WAAa,EAAA;AAEjE,QAAA,IAAI,YAAY,YAAe,GAAA,OAAA,CAAQ,cAAe,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;AAClE,UAAM,MAAA,aAAA,GAAgB,CAAKD,IAAAA,gBAAAA,CAAgB,MAAS,GAAA,CAAA,CAAA;AACpD,UAAI,IAAA,CAAA,KAAM,SAAS,aAAe,EAAA;AAAA,WAElC,MAAA,IAAW,KAAK,KAAO,EAAA;AACnB,YAAA,WAAA,CAAY,uBAAuB,CAAI,GAAA,CAAA,CAAA;AACvC,YAAAD,gBAAe,gBAAmB,GAAA,IAAA,CAAA;AAClC,YAAA,cAAA,CAAe,oBAAoB,qBAAqB,CAAA,CAAA;AACxD,YAAI,IAAA,CAAA,IAAKC,iBAAgB,MAAQ,EAAA;AAC7B,cAAA,cAAA,CAAeA,kBAAiB,uBAAuB,CAAA,CAAA;AAAA,aAC3D;AACA,YAAA,kBAAA,CAAmB,GAAI,EAAA,CAAA;AACvB,YAAA,MAAA;AAAA,WACG,MAAA;AACH,YAAA,cAAA,CAAe,cAAc,GAAI,EAAA,CAAA;AACjC,YAAA,kBAAA,CAAmB,GAAI,EAAA,CAAA;AACvB,YAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,YAAAD,gBAAe,gBAAmB,GAAA,IAAA,CAAA;AAClC,YAAA,cAAA,CAAe,oBAAoB,qBAAqB,CAAA,CAAA;AACxD,YAAI,IAAA,CAAA,IAAKC,iBAAgB,MAAQ,EAAA;AAC7B,cAAA,cAAA,CAAeA,kBAAiB,uBAAuB,CAAA,CAAA;AAAA,aAC3D;AACA,YAAA,kBAAA,CAAmB,GAAI,EAAA,CAAA;AACvB,YAAA,MAAA;AAAA,WACJ;AAAA,SACJ;AAAA,OACJ;AAEA,MAAA,IAAI,MAAM,aAAA,CAAc,OAAQ,CAAA,cAAA,CAAe,GAAG,KAAK,CAAA,GAAI,KAAM,CAAA,YAAA,EAAc,OAAQD,CAAAA,eAAAA,CAAe,MAAQ,EAAA,KAAK,CAAC,CAAG,EAAA;AACnH,QAAA,IAAI,kBAAkB,CAAG,EAAA;AACrB,UAAAA,gBAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,UAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,UAAA,MAAA;AAAA,SACJ;AAEA,QAAA,cAAA,CAAe,cAAc,GAAI,EAAA,CAAA;AACjC,QAAA,kBAAA,CAAmB,GAAI,EAAA,CAAA;AAEvB,QAAA,cAAA,CAAe,oBAAoB,qBAAqB,CAAA,CAAA;AACxD,QAAAA,eAAAA,CAAe,cAAiB,GAAA,sBAAA,CAAuB,cAAc,CAAA,CAAA;AACrE,QAAA,cAAA,GAAiBA,eAAe,CAAA,cAAA,CAAA;AAChC,QAAI,IAAA,CAAC,cAAe,CAAA,MAAA,EAAQ,eAAiB,EAAA;AACzC,UAAA,cAAA,CAAe,iBAAoB,GAAA,IAAA,CAAA;AAAA,SACvC;AACA,QAAe,cAAA,CAAA,aAAA,GAAgB,CAAC,GAAG,aAAa,CAAA,CAAA;AAChD,QAAe,cAAA,CAAA,cAAA,GAAiB,CAAC,GAAG,mBAAmB,CAAA,CAAA;AACvD,QAAe,cAAA,CAAA,aAAA,GAAgB,MAAM,SAAU,CAAA,cAAA,CAAe,eAAe,QAAQ,CAAA,EAAG,EAA0B,CAAA,CAAA;AAClH,QAAe,cAAA,CAAA,aAAA,GAAgB,CAAC,QAAQ,CAAA,CAAA;AACxC,QAAe,cAAA,CAAA,CAAA,GAAIA,gBAAe,GAAM,GAAA,CAAA,CAAA;AACxC,QAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AACnC,QAAA,MAAM,aAAaA,eAAgBC,EAAAA,gBAAAA,EAAiB,CAAG,EAAA,WAAA,EAAa,iBAAiB,CAAC,CAAA,CAAA;AACtF,QAAA,MAAA;AAAA,OACJ;AAAA,KACJ;AAEA,IAAI,IAAA,CAAA,IAAKA,gBAAgB,CAAA,MAAA,GAAS,mBAAqB,EAAA;AACnD,MAAAD,gBAAe,gBAAmB,GAAA,KAAA,CAAA;AAClC,MAAA,WAAA,CAAY,oBAAuB,GAAA,CAAA,CAAA;AAAA,KACvC;AAEA,IAAI,IAAA,CAAA,IAAKC,iBAAgB,MAAQ,EAAA;AAC7B,MAAA,cAAA,CAAe,oBAAoB,qBAAqB,CAAA,CAAA;AAAA,KAC5D;AACA,IAAA,cAAA,CAAeA,kBAAiB,uBAAuB,CAAA,CAAA;AAAA,GAC3D;AAKA,EAAe,eAAA,aAAA,CAAc,CAAuB,EAAA,MAAA,EAA4B,QAAuB,EAAA;AAEnG,IAAI,IAAA,CAAC,eAAe,UAAY,EAAA;AAC5B,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AACA,IAAI,IAAA,cAAA,CAAe,KAAM,CAAA,QAAA,IAAY,YAAc,EAAA;AAC/C,MAAO,OAAA,KAAA,CAAA;AAAA,KACX;AAGA,IAAI,IAAA,CAAA,GAAK,SAAU,CAAG,EAAA;AAClB,MAAA,IAAI,QAAU,EAAA;AACV,QAAS,QAAA,EAAA,CAAA;AAAA,OACb;AACA,MAAA,MAAM,OAAQ,EAAA,CAAA;AACd,MAAO,OAAA,IAAA,CAAA;AAAA,KACX;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAEA,EAAA,eAAe,OAAU,GAAA;AACrB,IAAA,cAAA,CAAe,cAAc,QAAS,CAAA;AAAA,MAClC,IAAI,YAAa,EAAA;AAAA,MACjB,KAAA,EAAO,eAAe,KAAM,CAAA,KAAA;AAAA,MAC5B,MAAA,EAAQ,eAAe,KAAM,CAAA,MAAA;AAAA,MAC7B,SAAW,EAAA,CAAA;AAAA,MACX,oBAAoB,EAAC;AAAA,KACjB,CAAA,CAAA;AACR,IAAe,cAAA,CAAA,QAAA,CAAS,IAAK,CAAA,cAAA,CAAe,WAAW,CAAA,CAAA;AACvD,IAAA,cAAA,CAAe,UAAa,GAAA,IAAA,CAAA;AAC5B,IAAY,WAAA,CAAA,IAAA,CAAK,eAAe,WAAY,CAAA,CAAA;AAE5C,IAAA,WAAA,CAAY,MAAO,CAAA,CAAA,EAAG,WAAY,CAAA,MAAA,EAAQ,eAAe,WAAY,CAAA,CAAA;AAErE,IAAA,MAAM,QAAS,EAAA,CAAA;AAGf,IAAI,IAAA,cAAA,CAAe,MAAM,UAAY,EAAA;AACjC,MAAA,MAAM,OAAU,GAAA,sBAAA,CAAuB,cAAe,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AACtE,MAAe,cAAA,CAAA,WAAA,CAAa,kBAAoB,CAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAC5D,MAAe,cAAA,CAAA,GAAA,GAAO,MAAM,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,KACrD;AACA,IAAI,IAAA,cAAA,CAAe,MAAM,UAAY,EAAA;AACjC,MAAA,MAAM,OAAU,GAAA,sBAAA,CAAuB,cAAe,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AACtE,MAAe,cAAA,CAAA,WAAA,CAAa,kBAAoB,CAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAC5D,MAAe,cAAA,CAAA,MAAA,GAAU,MAAM,UAAA,CAAW,OAAO,CAAA,CAAA;AAAA,KACrD;AAAA,GACJ;AAEA,EAAA,eAAe,cAAc,cAAgC,EAAA;AACzD,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAI,IAAA,CAAC,eAAe,MAAQ,EAAA;AACxB,MAAA,OAAA;AAAA,KACJ;AACA,IAAA,MAAM,MAAM,cAAe,CAAA,MAAA,CAAA;AAE3B,IAAO,OAAAH,QAAA,CAAW,OAAQ,CAAA,OAAA,CAAQA,QAAW,CAAA,QAAA,CAAS,GAAI,CAAA,SAAA,EAAW,GAAI,CAAA,YAAY,CAAG,EAAA,KAAK,CAAC,CAAA,CAAA;AAAA,GAClG;AAEA,EAAA,eAAe,WAAW,cAAgC,EAAA;AACtD,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAI,IAAA,CAAC,eAAe,MAAQ,EAAA;AACxB,MAAA,OAAA;AAAA,KACJ;AACA,IAAA,MAAM,MAAM,cAAe,CAAA,MAAA,CAAA;AAE3B,IAAA,OAAOA,SAAW,OAAQ,CAAA,OAAA,CAAQ,GAAI,CAAA,SAAA,EAAW,KAAK,CAAC,CAAA,CAAA;AAAA,GAC3D;AAEA,EAAe,eAAA,iBAAA,CAAkB,gBAAgC,cAAqB,EAAA;AAClF,IAAA,cAAA,CAAe,IAAO,GAAA,cAAA,CAAA;AACtB,IAAA,MAAM,QAAS,EAAA,CAAA;AACf,IAAA,MAAM,UAAU,cAAe,CAAA,MAAA,CAAA;AAE/B,IAAA,IAAI,CAAC,OAAS,EAAA;AAEV,MAAA,OAAA;AAAA,KACJ;AACA,IAAM,MAAA,MAAA,GAAS,eAAe,MAAO,CAAA,YAAA,CAAA;AACrC,IAAA,OAAO,eAAe,CAAI,GAAA,OAAA,CAAQ,MAAQ,EAAA,KAAK,IAAI,cAAe,CAAA,MAAA,CAAA;AAAA,GACtE;AAEA,EAAA,eAAe,aAAc,CAAA,cAAA,EAAgC,WAAqB,EAAA,GAAA,EAAa,MAA8B,EAAA;AACzH,IAAA,IAAI,MAAM,MAAQ,EAAA;AAEd,MAAO,OAAA,CAAA,CAAA,CAAA;AAAA,KACX;AACA,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,KAAO,CAAA,CAAA,MAAA,GAAS,OAAO,CAAC,CAAA,CAAA;AACzC,IAAI,IAAA,GAAA,GAAM,MAAM,iBAAkB,CAAA,cAAA,EAAgB,YAAY,SAAU,CAAA,CAAA,EAAG,GAAM,GAAA,CAAC,CAAC,CAAA,CAAA;AACnF,IAAI,IAAA,GAAA,GAAM,MAAM,iBAAkB,CAAA,cAAA,EAAgB,YAAY,SAAU,CAAA,CAAA,EAAG,GAAM,GAAA,CAAC,CAAC,CAAA,CAAA;AAMnF,IAAI,IAAA,GAAA,IAAO,CAAC,GAAK,EAAA;AAEb,MAAO,OAAA,GAAA,CAAA;AAAA,KACX,MAAA,IAAW,CAAC,GAAK,EAAA;AACb,MAAA,MAAA,GAAS,GAAM,GAAA,CAAA,CAAA;AAEf,MAAA,OAAO,aAAc,CAAA,cAAA,EAAgB,WAAa,EAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AAAA,eACtD,GAAK,EAAA;AACZ,MAAA,GAAA,GAAM,GAAM,GAAA,CAAA,CAAA;AAEZ,MAAA,OAAO,aAAc,CAAA,cAAA,EAAgB,WAAa,EAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AAAA,KAC1D,MAAA;AACH,MAAO,OAAA,CAAA,CAAA,CAAA;AAAA,KACX;AAAA,GACJ;AACJ;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import _sfc_main from './preview-panel.vue2.mjs';
|
|
2
|
-
import '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=
|
|
2
|
+
import '/Users/miro/Desktop/project/myprint/packages/design/src/components/preview/preview-panel.vue?vue&type=style&index=0&scoped=edd49e88&lang.css';
|
|
3
3
|
import _export_sfc from '../../_virtual/_plugin-vue_export-helper.mjs';
|
|
4
4
|
|
|
5
|
-
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
var previewPanelView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-edd49e88"], ["__file", "preview-panel.vue"]]);
|
|
6
6
|
|
|
7
7
|
export { previewPanelView as default };
|
|
8
8
|
//# sourceMappingURL=preview-panel.vue.mjs.map
|