@hufe921/canvas-editor 0.9.106 → 0.9.108
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/CHANGELOG.md +41 -0
- package/README.md +1 -1
- package/dist/canvas-editor.es.js +82 -40
- package/dist/canvas-editor.es.js.map +1 -1
- package/dist/canvas-editor.umd.js +30 -30
- package/dist/canvas-editor.umd.js.map +1 -1
- package/dist/src/editor/core/draw/Draw.d.ts +3 -2
- package/dist/src/editor/core/draw/frame/Placeholder.d.ts +7 -2
- package/dist/src/editor/dataset/enum/Common.d.ts +3 -1
- package/dist/src/editor/interface/Area.d.ts +3 -0
- package/dist/src/editor/interface/Control.d.ts +2 -0
- package/dist/src/editor/interface/Draw.d.ts +1 -0
- package/dist/src/editor/interface/Element.d.ts +4 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
## [0.9.108](https://github.com/Hufe921/canvas-editor/compare/v0.9.107...v0.9.108) (2025-04-30)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* delete pickElementAttr method data reference #1107 ([a7a7e47](https://github.com/Hufe921/canvas-editor/commit/a7a7e474b6170d26c2b253c8189720e25e17438b)), closes [#1107](https://github.com/Hufe921/canvas-editor/issues/1107)
|
|
7
|
+
* set non deletable control boundary error #1111 ([34fe3e8](https://github.com/Hufe921/canvas-editor/commit/34fe3e87d03b0abf22511d5054ea966847ef853a)), closes [#1111](https://github.com/Hufe921/canvas-editor/issues/1111)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Chores
|
|
11
|
+
|
|
12
|
+
* update README.md ([f6828fb](https://github.com/Hufe921/canvas-editor/commit/f6828fb43a176d3098fe3bac1cd0dde9744d630d))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* add control disabledBackgroundColor option #1105 ([bb6b5ce](https://github.com/Hufe921/canvas-editor/commit/bb6b5ce711ab784ff4e1f3e2b98629bca2018dbd)), closes [#1105](https://github.com/Hufe921/canvas-editor/issues/1105)
|
|
18
|
+
* locate outside the control #1100 ([949421b](https://github.com/Hufe921/canvas-editor/commit/949421baad9ba5854913af0bc17f1b4df7b88f69)), closes [#1100](https://github.com/Hufe921/canvas-editor/issues/1100)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [0.9.107](https://github.com/Hufe921/canvas-editor/compare/v0.9.106...v0.9.107) (2025-04-18)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* area background position error #1082 ([d708629](https://github.com/Hufe921/canvas-editor/commit/d708629c4883b73c78d722352a6ff5a08642fa9e)), closes [#1082](https://github.com/Hufe921/canvas-editor/issues/1082)
|
|
28
|
+
* delete control element boundary error #1079 ([b8132cd](https://github.com/Hufe921/canvas-editor/commit/b8132cdd82822b2840dee95a88fcc8492737f352)), closes [#1079](https://github.com/Hufe921/canvas-editor/issues/1079)
|
|
29
|
+
* input boundary error when control is disabled #1092 ([353ada2](https://github.com/Hufe921/canvas-editor/commit/353ada21cd70adb61094fef301462063ddc00a01)), closes [#1092](https://github.com/Hufe921/canvas-editor/issues/1092)
|
|
30
|
+
* update area element context #1084 ([a7598d2](https://github.com/Hufe921/canvas-editor/commit/a7598d2a08e87e86ea34e80903f168010362d188)), closes [#1084](https://github.com/Hufe921/canvas-editor/issues/1084)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* add area deletable option #1014 ([6bb1982](https://github.com/Hufe921/canvas-editor/commit/6bb19824c1f6f31adb99ecac5c8b20d3dfa7b17c)), closes [#1014](https://github.com/Hufe921/canvas-editor/issues/1014)
|
|
36
|
+
* add area placeholder option #1076 ([fd9f780](https://github.com/Hufe921/canvas-editor/commit/fd9f780b537c99d9aaa93054e6bbaee8b363ec45)), closes [#1076](https://github.com/Hufe921/canvas-editor/issues/1076)
|
|
37
|
+
* add conceptId to executeImage api #1080 ([b05eb06](https://github.com/Hufe921/canvas-editor/commit/b05eb065e25162ebf21a32c160db6f3e74365588)), closes [#1080](https://github.com/Hufe921/canvas-editor/issues/1080)
|
|
38
|
+
* remove null values when merging cells #1096 ([f673352](https://github.com/Hufe921/canvas-editor/commit/f673352b095653e85921c02cee7a23a0bd8105b1)), closes [#1096](https://github.com/Hufe921/canvas-editor/issues/1096)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
1
42
|
## [0.9.106](https://github.com/Hufe921/canvas-editor/compare/v0.9.105...v0.9.106) (2025-04-04)
|
|
2
43
|
|
|
3
44
|
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<a href="https://github.com/Hufe921/canvas-editor/discussions" target="_blank">FAQ</a>
|
|
27
27
|
</p>
|
|
28
28
|
|
|
29
|
-
<p align="center">Love the project? Please consider <a href="https://hufe.club/donate.jpg" target="_blank">donating</a> to help it improve!</p>
|
|
29
|
+
<p align="center">Love the project? Please consider <a href="https://hufe.club/donate.jpg" target="_blank">donating(赞助)</a> to help it improve!</p>
|
|
30
30
|
|
|
31
31
|
## Tips
|
|
32
32
|
|
package/dist/canvas-editor.es.js
CHANGED
|
@@ -23,7 +23,7 @@ var __publicField = (obj, key, value) => {
|
|
|
23
23
|
return value;
|
|
24
24
|
};
|
|
25
25
|
var index = "";
|
|
26
|
-
const version = "0.9.
|
|
26
|
+
const version = "0.9.108";
|
|
27
27
|
var MaxHeightRatio;
|
|
28
28
|
(function(MaxHeightRatio2) {
|
|
29
29
|
MaxHeightRatio2["HALF"] = "half";
|
|
@@ -47,6 +47,8 @@ var LocationPosition;
|
|
|
47
47
|
(function(LocationPosition2) {
|
|
48
48
|
LocationPosition2["BEFORE"] = "before";
|
|
49
49
|
LocationPosition2["AFTER"] = "after";
|
|
50
|
+
LocationPosition2["OUTER_BEFORE"] = "outer-before";
|
|
51
|
+
LocationPosition2["OUTER_AFTER"] = "outer-after";
|
|
50
52
|
})(LocationPosition || (LocationPosition = {}));
|
|
51
53
|
var FlexDirection;
|
|
52
54
|
(function(FlexDirection2) {
|
|
@@ -3968,7 +3970,8 @@ const defaultControlOption = {
|
|
|
3968
3970
|
postfix: "}",
|
|
3969
3971
|
borderWidth: 1,
|
|
3970
3972
|
borderColor: "#000000",
|
|
3971
|
-
activeBackgroundColor: ""
|
|
3973
|
+
activeBackgroundColor: "",
|
|
3974
|
+
disabledBackgroundColor: ""
|
|
3972
3975
|
};
|
|
3973
3976
|
const defaultFooterOption = {
|
|
3974
3977
|
bottom: 30,
|
|
@@ -4248,6 +4251,7 @@ function formatElementList(elementList, options) {
|
|
|
4248
4251
|
const value = valueList[v];
|
|
4249
4252
|
value.areaId = el.areaId || areaId;
|
|
4250
4253
|
value.area = el.area;
|
|
4254
|
+
value.areaIndex = v;
|
|
4251
4255
|
if (value.type === ElementType.TABLE) {
|
|
4252
4256
|
const trList = value.trList;
|
|
4253
4257
|
for (let r = 0; r < trList.length; r++) {
|
|
@@ -4562,7 +4566,7 @@ function isSameElementExceptValue(source, target) {
|
|
|
4562
4566
|
}
|
|
4563
4567
|
function pickElementAttr(payload, option = {}) {
|
|
4564
4568
|
const { extraPickAttrs } = option;
|
|
4565
|
-
const zipAttrs = EDITOR_ELEMENT_ZIP_ATTR;
|
|
4569
|
+
const zipAttrs = [...EDITOR_ELEMENT_ZIP_ATTR];
|
|
4566
4570
|
if (extraPickAttrs) {
|
|
4567
4571
|
zipAttrs.push(...extraPickAttrs);
|
|
4568
4572
|
}
|
|
@@ -11951,7 +11955,9 @@ class SelectControl {
|
|
|
11951
11955
|
if (!~leftIndex || !~rightIndex)
|
|
11952
11956
|
return -1;
|
|
11953
11957
|
const draw = this.control.getDraw();
|
|
11954
|
-
draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex
|
|
11958
|
+
draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex, [], {
|
|
11959
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
11960
|
+
});
|
|
11955
11961
|
if (isAddPlaceholder) {
|
|
11956
11962
|
this.control.addPlaceholder(preIndex, context);
|
|
11957
11963
|
}
|
|
@@ -11990,7 +11996,9 @@ class SelectControl {
|
|
|
11990
11996
|
const text = this.getText(newCodes);
|
|
11991
11997
|
if (!text) {
|
|
11992
11998
|
if (oldCode) {
|
|
11993
|
-
const prefixIndex2 = this.clearSelect(context
|
|
11999
|
+
const prefixIndex2 = this.clearSelect(context, {
|
|
12000
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12001
|
+
});
|
|
11994
12002
|
if (~prefixIndex2) {
|
|
11995
12003
|
this.control.repaintControl({
|
|
11996
12004
|
curIndex: prefixIndex2
|
|
@@ -12005,7 +12013,8 @@ class SelectControl {
|
|
|
12005
12013
|
const valueElement = this.getValue(context)[0];
|
|
12006
12014
|
const styleElement = valueElement ? pickObject(valueElement, EDITOR_ELEMENT_STYLE_ATTR) : pickObject(elementList[range.startIndex], CONTROL_STYLE_ATTR);
|
|
12007
12015
|
const prefixIndex = this.clearSelect(context, {
|
|
12008
|
-
isAddPlaceholder: false
|
|
12016
|
+
isAddPlaceholder: false,
|
|
12017
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12009
12018
|
});
|
|
12010
12019
|
if (!~prefixIndex)
|
|
12011
12020
|
return;
|
|
@@ -12169,7 +12178,9 @@ class TextControl {
|
|
|
12169
12178
|
const { startIndex, endIndex } = range;
|
|
12170
12179
|
const draw = this.control.getDraw();
|
|
12171
12180
|
if (startIndex !== endIndex) {
|
|
12172
|
-
draw.spliceElementList(elementList, startIndex + 1, endIndex - startIndex
|
|
12181
|
+
draw.spliceElementList(elementList, startIndex + 1, endIndex - startIndex, [], {
|
|
12182
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12183
|
+
});
|
|
12173
12184
|
} else {
|
|
12174
12185
|
this.control.removePlaceholder(startIndex, context);
|
|
12175
12186
|
}
|
|
@@ -12198,7 +12209,9 @@ class TextControl {
|
|
|
12198
12209
|
const elementList = context.elementList || this.control.getElementList();
|
|
12199
12210
|
const range = context.range || this.control.getRange();
|
|
12200
12211
|
const { startIndex, endIndex } = range;
|
|
12201
|
-
this.control.getDraw().spliceElementList(elementList, startIndex + 1, endIndex - startIndex
|
|
12212
|
+
this.control.getDraw().spliceElementList(elementList, startIndex + 1, endIndex - startIndex, [], {
|
|
12213
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12214
|
+
});
|
|
12202
12215
|
const value = this.getValue(context);
|
|
12203
12216
|
if (!value.length) {
|
|
12204
12217
|
this.control.addPlaceholder(startIndex, context);
|
|
@@ -12846,7 +12859,9 @@ class DateControl {
|
|
|
12846
12859
|
return -1;
|
|
12847
12860
|
const elementList = context.elementList || this.control.getElementList();
|
|
12848
12861
|
const draw = this.control.getDraw();
|
|
12849
|
-
draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex
|
|
12862
|
+
draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex, [], {
|
|
12863
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12864
|
+
});
|
|
12850
12865
|
if (isAddPlaceholder) {
|
|
12851
12866
|
this.control.addPlaceholder(leftIndex, context);
|
|
12852
12867
|
}
|
|
@@ -12861,7 +12876,8 @@ class DateControl {
|
|
|
12861
12876
|
const valueElement = this.getValue(context)[0];
|
|
12862
12877
|
const styleElement = valueElement ? pickObject(valueElement, EDITOR_ELEMENT_STYLE_ATTR) : pickObject(elementList[range.startIndex], CONTROL_STYLE_ATTR);
|
|
12863
12878
|
const prefixIndex = this.clearSelect(context, {
|
|
12864
|
-
isAddPlaceholder: false
|
|
12879
|
+
isAddPlaceholder: false,
|
|
12880
|
+
isIgnoreDeletedRule: options.isIgnoreDeletedRule
|
|
12865
12881
|
});
|
|
12866
12882
|
if (!~prefixIndex)
|
|
12867
12883
|
return;
|
|
@@ -13719,7 +13735,8 @@ class Control {
|
|
|
13719
13735
|
elementList
|
|
13720
13736
|
};
|
|
13721
13737
|
const controlRule = {
|
|
13722
|
-
isIgnoreDisabledRule: true
|
|
13738
|
+
isIgnoreDisabledRule: true,
|
|
13739
|
+
isIgnoreDeletedRule: true
|
|
13723
13740
|
};
|
|
13724
13741
|
if (type === ControlType.TEXT) {
|
|
13725
13742
|
const formatValue = Array.isArray(value) ? value : value ? [{ value }] : [];
|
|
@@ -14445,7 +14462,7 @@ function WorkerWrapper$1() {
|
|
|
14445
14462
|
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
14446
14463
|
}
|
|
14447
14464
|
}
|
|
14448
|
-
const encodedJs = "KCgpPT57dmFyIEV0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmdD1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgVHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIGl0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIEl0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQXQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbnQ9KFQsSSxkKT0+SSBpbiBUP0V0KFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxOPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlJdC5jYWxsKEksZCkmJm50KFQsZCxJW2RdKTtpZihpdClmb3IodmFyIGQgb2YgaXQoSSkpQXQuY2FsbChJLGQpJiZudChULGQsSVtkXSk7cmV0dXJuIFR9LHg9KFQsSSk9PmZ0KFQsVHQoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24odCl7dC5IQUxGPSJoYWxmIix0Lk9ORV9USElSRD0ib25lLXRoaXJkIix0LlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24odCl7dC5BUkFCSUM9ImFyYWJpYyIsdC5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKHQpe3QuSU5MSU5FPSJpbmxpbmUiLHQuQkxPQ0s9ImJsb2NrIix0LlNVUlJPVU5EPSJzdXJyb3VuZCIsdC5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsdC5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciBfOyhmdW5jdGlvbih0KXt0LkJFRk9SRT0iYmVmb3JlIix0LkFGVEVSPSJhZnRlciJ9KShffHwoXz17fSkpO3ZhciBYOyhmdW5jdGlvbih0KXt0LlJPVz0icm93Iix0LkNPTFVNTj0iY29sdW1uIn0pKFh8fChYPXt9KSk7Y29uc3QgRj0iXHUyMDBCIjtULkhBTEYrIiIsMS8yLFQuT05FX1RISVJEKyIiLDEvMyxULlFVQVJURVIrIiIsMS80O2Z1bmN0aW9uIEgodCl7aWYodHlwZW9mIHN0cnVjdHVyZWRDbG9uZT09ImZ1bmN0aW9uIilyZXR1cm4gc3RydWN0dXJlZENsb25lKHQpO2lmKCF0fHx0eXBlb2YgdCE9Im9iamVjdCIpcmV0dXJuIHQ7bGV0IHM9e307cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/cz10Lm1hcChFPT5IKEUpKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKEU9PnNbRV09SCh0W0VdKSksc31mdW5jdGlvbiBNKHQscyl7Y29uc3QgRT17fTtmb3IoY29uc3QgQSBpbiB0KXMuaW5jbHVkZXMoQSkmJihFW0FdPXRbQV0pO3JldHVybiBFfWZ1bmN0aW9uIGF0KHQscyl7cmV0dXJuIHQubGVuZ3RoIT09cy5sZW5ndGg/ITE6IXQuc29tZShFPT4hcy5pbmNsdWRlcyhFKSl9dmFyIGw7KGZ1bmN0aW9uKHQpe3QuVEVYVD0idGV4dCIsdC5JTUFHRT0iaW1hZ2UiLHQuVEFCTEU9InRhYmxlIix0LkhZUEVSTElOSz0iaHlwZXJsaW5rIix0LlNVUEVSU0NSSVBUPSJzdXBlcnNjcmlwdCIsdC5TVUJTQ1JJUFQ9InN1YnNjcmlwdCIsdC5TRVBBUkFUT1I9InNlcGFyYXRvciIsdC5QQUdFX0JSRUFLPSJwYWdlQnJlYWsiLHQuQ09OVFJPTD0iY29udHJvbCIsdC5BUkVBPSJhcmVhIix0LkNIRUNLQk9YPSJjaGVja2JveCIsdC5SQURJTz0icmFkaW8iLHQuTEFURVg9ImxhdGV4Iix0LlRBQj0idGFiIix0LkRBVEU9ImRhdGUiLHQuQkxPQ0s9ImJsb2NrIix0LlRJVExFPSJ0aXRsZSIsdC5MSVNUPSJsaXN0In0pKGx8fChsPXt9KSk7Y29uc3QgbHQ9WyJyb3dGbGV4Iiwicm93TWFyZ2luIl0sb3Q9WyJ0eXBlIiwiZm9udCIsInNpemUiLCJib2xkIiwiY29sb3IiLCJpdGFsaWMiLCJoaWdobGlnaHQiLCJ1bmRlcmxpbmUiLCJzdHJpa2VvdXQiLCJyb3dGbGV4Iiwicm93TWFyZ2luIiwiZGFzaEFycmF5IiwidHJMaXN0IiwidGFibGVUb29sRGlzYWJsZWQiLCJib3JkZXJUeXBlIiwiYm9yZGVyQ29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInVybCIsImNvbGdyb3VwIiwidmFsdWVMaXN0IiwiY29udHJvbCIsImNoZWNrYm94IiwicmFkaW8iLCJkYXRlRm9ybWF0IiwiYmxvY2siLCJsZXZlbCIsInRpdGxlIiwibGlzdFR5cGUiLCJsaXN0U3R5bGUiLCJsaXN0V3JhcCIsImdyb3VwSWRzIiwiY29uY2VwdElkIiwiaW1nRGlzcGxheSIsImltZ0Zsb2F0UG9zaXRpb24iLCJpbWdUb29sRGlzYWJsZWQiLCJ0ZXh0RGVjb3JhdGlvbiIsImV4dGVuc2lvbiIsImV4dGVybmFsSWQiLCJhcmVhSWQiLCJhcmVhIl0scnQ9WyJjb25jZXB0SWQiLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwidmVydGljYWxBbGlnbiIsImJhY2tncm91bmRDb2xvciIsImJvcmRlclR5cGVzIiwic2xhc2hUeXBlcyIsImRpc2FibGVkIiwiZGVsZXRhYmxlIl0sc3Q9WyJmb250Iiwic2l6ZSIsImJvbGQiLCJoaWdobGlnaHQiLCJpdGFsaWMiLCJzdHJpa2VvdXQiXTtsLlRFWFQsbC5IWVBFUkxJTkssbC5TVUJTQ1JJUFQsbC5TVVBFUlNDUklQVCxsLkNPTlRST0wsbC5EQVRFLGwuSU1BR0UsbC5MQVRFWCxsLkJMT0NLLGwuUEFHRV9CUkVBSyxsLlNFUEFSQVRPUixsLlRBQkxFLGwuVElUTEUsbC5MSVNUO3ZhciBnOyhmdW5jdGlvbih0KXt0LlVMPSJ1bCIsdC5PTD0ib2wifSkoZ3x8KGc9e30pKTt2YXIgTzsoZnVuY3Rpb24odCl7dC5ESVNDPSJkaXNjIix0LkNJUkNMRT0iY2lyY2xlIix0LlNRVUFSRT0ic3F1YXJlIix0LkNIRUNLQk9YPSJjaGVja2JveCJ9KShPfHwoTz17fSkpO3ZhciBiOyhmdW5jdGlvbih0KXt0LkRFQ0lNQUw9ImRlY2ltYWwifSkoYnx8KGI9e30pKTt2YXIgdjsoZnVuY3Rpb24odCl7dFt0LkRJU0M9Ty5ESVNDXT0iRElTQyIsdFt0LkNJUkNMRT1PLkNJUkNMRV09IkNJUkNMRSIsdFt0LlNRVUFSRT1PLlNRVUFSRV09IlNRVUFSRSIsdFt0LkRFQ0lNQUw9Yi5ERUNJTUFMXT0iREVDSU1BTCIsdFt0LkNIRUNLQk9YPU8uQ0hFQ0tCT1hdPSJDSEVDS0JPWCJ9KSh2fHwodj17fSkpLE8uRElTQysiIixPLkNJUkNMRSsiIixPLlNRVUFSRSsiIixPLkNIRUNLQk9YKyIiLGcuT0wrIiIsZy5VTCsiIix2LkRJU0MrIiIsdi5DSVJDTEUrIiIsdi5TUVVBUkUrIiIsdi5ERUNJTUFMKyIiLHYuQ0hFQ0tCT1grIiI7dmFyIGY7KGZ1bmN0aW9uKHQpe3QuRklSU1Q9ImZpcnN0Iix0LlNFQ09ORD0ic2Vjb25kIix0LlRISVJEPSJ0aGlyZCIsdC5GT1VSVEg9ImZvdXJ0aCIsdC5GSUZUSD0iZmlmdGgiLHQuU0lYVEg9InNpeHRoIn0pKGZ8fChmPXt9KSksZi5GSVJTVCsiIixmLlNFQ09ORCsiIixmLlRISVJEKyIiLGYuRk9VUlRIKyIiLGYuRklGVEgrIiIsZi5TSVhUSCsiIixmLkZJUlNUKyIiLGYuU0VDT05EKyIiLGYuVEhJUkQrIiIsZi5GT1VSVEgrIiIsZi5GSUZUSCsiIixmLlNJWFRIKyIiLGYuRklSU1QsZi5TRUNPTkQsZi5USElSRCxmLkZPVVJUSCxmLkZJRlRILGYuU0lYVEg7dmFyIEs7KGZ1bmN0aW9uKHQpe3QuSUZSQU1FPSJpZnJhbWUiLHQuVklERU89InZpZGVvIn0pKEt8fChLPXt9KSk7dmFyIHc7KGZ1bmN0aW9uKHQpe3QuVEVYVD0idGV4dCIsdC5TRUxFQ1Q9InNlbGVjdCIsdC5DSEVDS0JPWD0iY2hlY2tib3giLHQuUkFESU89InJhZGlvIix0LkRBVEU9ImRhdGUiLHQuTlVNQkVSPSJudW1iZXIifSkod3x8KHc9e30pKTt2YXIgQzsoZnVuY3Rpb24odCl7dC5QUkVGSVg9InByZWZpeCIsdC5QT1NURklYPSJwb3N0Zml4Iix0LlBSRV9URVhUPSJwcmVUZXh0Iix0LlBPU1RfVEVYVD0icG9zdFRleHQiLHQuUExBQ0VIT0xERVI9InBsYWNlaG9sZGVyIix0LlZBTFVFPSJ2YWx1ZSIsdC5DSEVDS0JPWD0iY2hlY2tib3giLHQuUkFESU89InJhZGlvIn0pKEN8fChDPXt9KSk7dmFyIHo7KGZ1bmN0aW9uKHQpe3QuUk9XX1NUQVJUPSJyb3dTdGFydCIsdC5WQUxVRV9TVEFSVD0idmFsdWVTdGFydCJ9KSh6fHwoej17fSkpO3ZhciBHOyhmdW5jdGlvbih0KXt0LkFDVElWRT0iYWN0aXZlIix0LklOQUNUSVZFPSJpbmFjdGl2ZSJ9KShHfHwoRz17fSkpO3ZhciBZOyhmdW5jdGlvbih0KXt0LkNPTVBPTkVOVD0iY29tcG9uZW50Iix0Lk1FTlU9Im1lbnUiLHQuTUFJTj0ibWFpbiIsdC5GT09URVI9ImZvb3RlciIsdC5DT05URVhUTUVOVT0iY29udGV4dG1lbnUiLHQuUE9QVVA9InBvcHVwIix0LkNBVEFMT0c9ImNhdGFsb2ciLHQuQ09NTUVOVD0iY29tbWVudCJ9KShZfHwoWT17fSkpO3ZhciBWOyhmdW5jdGlvbih0KXt0LlBBR0U9InBhZ2UiLHQuVEFCTEU9InRhYmxlIn0pKFZ8fChWPXt9KSk7dmFyIFE7KGZ1bmN0aW9uKHQpe3QuRURJVD0iZWRpdCIsdC5DTEVBTj0iY2xlYW4iLHQuUkVBRE9OTFk9InJlYWRvbmx5Iix0LkZPUk09ImZvcm0iLHQuUFJJTlQ9InByaW50Iix0LkRFU0lHTj0iZGVzaWduIn0pKFF8fChRPXt9KSk7dmFyIFc7KGZ1bmN0aW9uKHQpe3QuSEVBREVSPSJoZWFkZXIiLHQuTUFJTj0ibWFpbiIsdC5GT09URVI9ImZvb3RlciJ9KShXfHwoVz17fSkpO3ZhciBxOyhmdW5jdGlvbih0KXt0LlBBR0lORz0icGFnaW5nIix0LkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkocXx8KHE9e30pKTt2YXIgWjsoZnVuY3Rpb24odCl7dC5WRVJUSUNBTD0idmVydGljYWwiLHQuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCJ9KShafHwoWj17fSkpO3ZhciBKOyhmdW5jdGlvbih0KXt0LkJSRUFLX0FMTD0iYnJlYWstYWxsIix0LkJSRUFLX1dPUkQ9ImJyZWFrLXdvcmQifSkoSnx8KEo9e30pKTt2YXIgajsoZnVuY3Rpb24odCl7dC5TUEVFRD0ic3BlZWQiLHQuQ09NUEFUSUJJTElUWT0iY29tcGF0aWJpbGl0eSJ9KShqfHwoaj17fSkpO3ZhciBEOyhmdW5jdGlvbih0KXt0LkxFRlQ9ImxlZnQiLHQuQ0VOVEVSPSJjZW50ZXIiLHQuUklHSFQ9InJpZ2h0Iix0LkFMSUdOTUVOVD0iYWxpZ25tZW50Iix0LkpVU1RJRlk9Imp1c3RpZnkifSkoRHx8KEQ9e30pKTt2YXIgJDsoZnVuY3Rpb24odCl7dC5BTEw9ImFsbCIsdC5FTVBUWT0iZW1wdHkiLHQuRVhURVJOQUw9ImV4dGVybmFsIix0LklOVEVSTkFMPSJpbnRlcm5hbCIsdC5EQVNIPSJkYXNoIn0pKCR8fCgkPXt9KSk7dmFyIHR0OyhmdW5jdGlvbih0KXt0LlRPUD0idG9wIix0LlJJR0hUPSJyaWdodCIsdC5CT1RUT009ImJvdHRvbSIsdC5MRUZUPSJsZWZ0In0pKHR0fHwodHQ9e30pKTt2YXIgZXQ7KGZ1bmN0aW9uKHQpe3QuRk9SV0FSRD0iZm9yd2FyZCIsdC5CQUNLPSJiYWNrIn0pKGV0fHwoZXQ9e30pKTt2YXIgazsoZnVuY3Rpb24odCl7dC5DT05UQUlOPSJjb250YWluIix0LkNPVkVSPSJjb3ZlciJ9KShrfHwoaz17fSkpO3ZhciBtOyhmdW5jdGlvbih0KXt0LlJFUEVBVD0icmVwZWF0Iix0Lk5PX1JFUEVBVD0ibm8tcmVwZWF0Iix0LlJFUEVBVF9YPSJyZXBlYXQteCIsdC5SRVBFQVRfWT0icmVwZWF0LXkifSkobXx8KG09e30pKSxrLkNPVkVSLG0uTk9fUkVQRUFUO3ZhciBQOyhmdW5jdGlvbih0KXt0LlRPUD0idG9wIix0Lk1JRERMRT0ibWlkZGxlIix0LkJPVFRPTT0iYm90dG9tIn0pKFB8fChQPXt9KSksUC5CT1RUT00sVC5IQUxGLFQuSEFMRjtjb25zdCBjdD17UEFHRV9OTzoie3BhZ2VOb30iLFBBR0VfQ09VTlQ6IntwYWdlQ291bnR9In07RC5DRU5URVIsY3QuUEFHRV9OTyxJLkFSQUJJQyxQLkJPVFRPTSxJLkFSQUJJQzt2YXIgeTsoZnVuY3Rpb24odCl7dC5QQUdFPSJwYWdlIix0LkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoeXx8KHk9e30pKSx5LkNPTlRJTlVJVFk7ZnVuY3Rpb24gdXQodCxzKXtjb25zdCBFPU9iamVjdC5rZXlzKHQpLEE9T2JqZWN0LmtleXMocyk7aWYoRS5sZW5ndGghPT1BLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IFI9MDtSPEUubGVuZ3RoO1IrKyl7Y29uc3Qgbj1FW1JdO2lmKG4hPT0idmFsdWUiJiYhKG49PT0iZ3JvdXBJZHMiJiZBcnJheS5pc0FycmF5KHRbbl0pJiZBcnJheS5pc0FycmF5KHNbbl0pJiZhdCh0W25dLHNbbl0pKSYmdFtuXSE9PXNbbl0pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQih0LHM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOkV9PXMsQT1vdDtFJiZBLnB1c2goLi4uRSk7Y29uc3QgUj17dmFsdWU6dC52YWx1ZT09PUY/YApgOnQudmFsdWV9O3JldHVybiBBLmZvckVhY2gobj0+e2NvbnN0IHA9dFtuXTtwIT09dm9pZCAwJiYoUltuXT1wKX0pLFJ9ZnVuY3Rpb24gaCh0LHM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOkUsaXNDbGFzc2lmeUFyZWE6QT0hMSxpc0Nsb25lOlI9ITB9PXMsbj1SP0godCk6dCxwPVtdO2xldCBpPTA7Zm9yKDtpPG4ubGVuZ3RoOyl7bGV0IGU9bltpXTtpZihpPT09MCYmZS52YWx1ZT09PUYmJiFlLmxpc3RJZCYmKCFlLnR5cGV8fGUudHlwZT09PWwuVEVYVCkpe2krKztjb250aW51ZX1pZihlLmFyZWFJZCYmZS5hcmVhKXtjb25zdCBhPWUuYXJlYUlkLHU9ZS5hcmVhLGM9W107Zm9yKDtpPG4ubGVuZ3RoOyl7Y29uc3Qgcj1uW2ldO2lmKGEhPT1yLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLmFyZWEsZGVsZXRlIHIuYXJlYUlkLGMucHVzaChyKSxpKyt9Y29uc3Qgbz1oKGMscyk7aWYoQSl7Y29uc3Qgcj17dHlwZTpsLkFSRUEsdmFsdWU6IiIsYXJlYUlkOmEsYXJlYTp1fTtyLnZhbHVlTGlzdD1vLGU9cn1lbHNle3Auc3BsaWNlKGksMCwuLi5vKTtjb250aW51ZX19ZWxzZSBpZihlLnRpdGxlSWQmJmUubGV2ZWwpe2NvbnN0IGE9ZS50aXRsZUlkO2lmKGEpe2NvbnN0IHU9ZS5sZXZlbCxjPXt0eXBlOmwuVElUTEUsdGl0bGU6ZS50aXRsZSx0aXRsZUlkOmEsdmFsdWU6IiIsbGV2ZWw6dX0sbz1bXTtmb3IoO2k8bi5sZW5ndGg7KXtjb25zdCByPW5baV07aWYoYSE9PXIudGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLmxldmVsLGRlbGV0ZSByLnRpdGxlLG8ucHVzaChyKSxpKyt9Yy52YWx1ZUxpc3Q9aChvLHMpLGU9Y319ZWxzZSBpZihlLmxpc3RJZCYmZS5saXN0VHlwZSl7Y29uc3QgYT1lLmxpc3RJZDtpZihhKXtjb25zdCB1PWUubGlzdFR5cGUsYz1lLmxpc3RTdHlsZSxvPXt0eXBlOmwuTElTVCx2YWx1ZToiIixsaXN0SWQ6YSxsaXN0VHlwZTp1LGxpc3RTdHlsZTpjfSxyPVtdO2Zvcig7aTxuLmxlbmd0aDspe2NvbnN0IEw9bltpXTtpZihhIT09TC5saXN0SWQpe2ktLTticmVha31kZWxldGUgTC5saXN0VHlwZSxkZWxldGUgTC5saXN0U3R5bGUsci5wdXNoKEwpLGkrK31vLnZhbHVlTGlzdD1oKHIscyksZT1vfX1lbHNlIGlmKGUudHlwZT09PWwuVEFCTEUpe2lmKGUucGFnaW5nSWQpe2xldCBhPWkrMSx1PTA7Zm9yKDthPG4ubGVuZ3RoOyl7Y29uc3QgYz1uW2FdO2lmKGMucGFnaW5nSWQ9PT1lLnBhZ2luZ0lkKWUuaGVpZ2h0Kz1jLmhlaWdodCxlLnRyTGlzdC5wdXNoKC4uLmMudHJMaXN0KSxhKyssdSsrO2Vsc2UgYnJlYWt9aSs9dX1pZihlLnRyTGlzdClmb3IobGV0IGE9MDthPGUudHJMaXN0Lmxlbmd0aDthKyspe2NvbnN0IHU9ZS50ckxpc3RbYV07ZGVsZXRlIHUuaWQ7Zm9yKGxldCBjPTA7Yzx1LnRkTGlzdC5sZW5ndGg7YysrKXtjb25zdCBvPXUudGRMaXN0W2NdLHI9e2NvbHNwYW46by5jb2xzcGFuLHJvd3NwYW46by5yb3dzcGFuLHZhbHVlOmgoby52YWx1ZSx4KE4oe30scykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtydC5mb3JFYWNoKEw9Pntjb25zdCBTPW9bTF07UyE9PXZvaWQgMCYmKHJbTF09Uyl9KSx1LnRkTGlzdFtjXT1yfX19ZWxzZSBpZihlLnR5cGU9PT1sLkhZUEVSTElOSyl7Y29uc3QgYT1lLmh5cGVybGlua0lkO2lmKGEpe2NvbnN0IHU9e3R5cGU6bC5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOmUudXJsfSxjPVtdO2Zvcig7aTxuLmxlbmd0aDspe2NvbnN0IG89bltpXTtpZihhIT09by5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLnR5cGUsZGVsZXRlIG8udXJsLGMucHVzaChvKSxpKyt9dS52YWx1ZUxpc3Q9aChjLHMpLGU9dX19ZWxzZSBpZihlLnR5cGU9PT1sLkRBVEUpe2NvbnN0IGE9ZS5kYXRlSWQ7aWYoYSl7Y29uc3QgdT17dHlwZTpsLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDplLmRhdGVGb3JtYXR9LGM9W107Zm9yKDtpPG4ubGVuZ3RoOyl7Y29uc3Qgbz1uW2ldO2lmKGEhPT1vLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLnR5cGUsZGVsZXRlIG8uZGF0ZUZvcm1hdCxjLnB1c2gobyksaSsrfXUudmFsdWVMaXN0PWgoYyxzKSxlPXV9fWVsc2UgaWYoZS5jb250cm9sSWQpe2NvbnN0IGE9ZS5jb250cm9sSWQ7aWYoZS5jb250cm9sQ29tcG9uZW50PT09Qy5QUkVGSVgpe2NvbnN0IHU9W107bGV0IGM9ITEsbz1pO2Zvcig7bzxuLmxlbmd0aDspe2NvbnN0IHI9bltvXTtpZihhIT09ci5jb250cm9sSWQpYnJlYWs7ci5jb250cm9sQ29tcG9uZW50PT09Qy5WQUxVRSYmKGRlbGV0ZSByLmNvbnRyb2wsZGVsZXRlIHIuY29udHJvbElkLHUucHVzaChyKSksci5jb250cm9sQ29tcG9uZW50PT09Qy5QT1NURklYJiYoYz0hMCksbysrfWlmKGMpe2NvbnN0IHI9TShlLHN0KSxMPU4oTih7fSxlLmNvbnRyb2wpLHIpLFM9eChOKHt9LE0oZSxsdCkpLHt0eXBlOmwuQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkwsY29udHJvbElkOmF9KTtTLmNvbnRyb2wudmFsdWU9aCh1LHMpLGU9QihTLHtleHRyYVBpY2tBdHRyczpFfSksaSs9by1pLTF9fWlmKGUuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSBlLmNvbnRyb2wsZGVsZXRlIGUuY29udHJvbElkLGUuY29udHJvbENvbXBvbmVudCE9PUMuVkFMVUUmJmUuY29udHJvbENvbXBvbmVudCE9PUMuUFJFX1RFWFQmJmUuY29udHJvbENvbXBvbmVudCE9PUMuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCBVPUIoZSx7ZXh0cmFQaWNrQXR0cnM6RX0pO2lmKCFlLnR5cGV8fGUudHlwZT09PWwuVEVYVHx8ZS50eXBlPT09bC5TVUJTQ1JJUFR8fGUudHlwZT09PWwuU1VQRVJTQ1JJUFQpZm9yKDtpPG4ubGVuZ3RoOyl7Y29uc3QgYT1uW2krMV07aWYoaSsrLGEmJnV0KFUsQihhLHtleHRyYVBpY2tBdHRyczpFfSkpKXtjb25zdCB1PWEudmFsdWU9PT1GP2AKYDphLnZhbHVlO1UudmFsdWUrPXV9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goVSl9cmV0dXJuIHB9b25tZXNzYWdlPXQ9Pntjb25zdCBzPXQuZGF0YSx7b3B0aW9uczpFLGRhdGE6QX09cyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09RXx8e30sbj17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2Uobil9fSkoKTt9KSgpOwo=";
|
|
14465
|
+
const encodedJs = "KCgpPT57dmFyIEVlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmZT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgVGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIGllPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIEllPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksQWU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgYWU9KFQsSSxkKT0+SSBpbiBUP0VlKFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxOPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlJZS5jYWxsKEksZCkmJmFlKFQsZCxJW2RdKTtpZihpZSlmb3IodmFyIGQgb2YgaWUoSSkpQWUuY2FsbChJLGQpJiZhZShULGQsSVtkXSk7cmV0dXJuIFR9LF89KFQsSSk9PmZlKFQsVGUoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5IQUxGPSJoYWxmIixlLk9ORV9USElSRD0ib25lLXRoaXJkIixlLlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24oZSl7ZS5BUkFCSUM9ImFyYWJpYyIsZS5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKGUpe2UuSU5MSU5FPSJpbmxpbmUiLGUuQkxPQ0s9ImJsb2NrIixlLlNVUlJPVU5EPSJzdXJyb3VuZCIsZS5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsZS5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciB4OyhmdW5jdGlvbihlKXtlLkJFRk9SRT0iYmVmb3JlIixlLkFGVEVSPSJhZnRlciIsZS5PVVRFUl9CRUZPUkU9Im91dGVyLWJlZm9yZSIsZS5PVVRFUl9BRlRFUj0ib3V0ZXItYWZ0ZXIifSkoeHx8KHg9e30pKTt2YXIgWDsoZnVuY3Rpb24oZSl7ZS5ST1c9InJvdyIsZS5DT0xVTU49ImNvbHVtbiJ9KShYfHwoWD17fSkpO2NvbnN0IFA9Ilx1MjAwQiI7VC5IQUxGKyIiLDEvMixULk9ORV9USElSRCsiIiwxLzMsVC5RVUFSVEVSKyIiLDEvNDtmdW5jdGlvbiBIKGUpe2lmKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiIpcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBlO2xldCBzPXt9O3JldHVybiBBcnJheS5pc0FycmF5KGUpP3M9ZS5tYXAoRT0+SChFKSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaChFPT5zW0VdPUgoZVtFXSkpLHN9ZnVuY3Rpb24gTShlLHMpe2NvbnN0IEU9e307Zm9yKGNvbnN0IEEgaW4gZSlzLmluY2x1ZGVzKEEpJiYoRVtBXT1lW0FdKTtyZXR1cm4gRX1mdW5jdGlvbiBuZShlLHMpe3JldHVybiBlLmxlbmd0aCE9PXMubGVuZ3RoPyExOiFlLnNvbWUoRT0+IXMuaW5jbHVkZXMoRSkpfXZhciBsOyhmdW5jdGlvbihlKXtlLlRFWFQ9InRleHQiLGUuSU1BR0U9ImltYWdlIixlLlRBQkxFPSJ0YWJsZSIsZS5IWVBFUkxJTks9Imh5cGVybGluayIsZS5TVVBFUlNDUklQVD0ic3VwZXJzY3JpcHQiLGUuU1VCU0NSSVBUPSJzdWJzY3JpcHQiLGUuU0VQQVJBVE9SPSJzZXBhcmF0b3IiLGUuUEFHRV9CUkVBSz0icGFnZUJyZWFrIixlLkNPTlRST0w9ImNvbnRyb2wiLGUuQVJFQT0iYXJlYSIsZS5DSEVDS0JPWD0iY2hlY2tib3giLGUuUkFESU89InJhZGlvIixlLkxBVEVYPSJsYXRleCIsZS5UQUI9InRhYiIsZS5EQVRFPSJkYXRlIixlLkJMT0NLPSJibG9jayIsZS5USVRMRT0idGl0bGUiLGUuTElTVD0ibGlzdCJ9KShsfHwobD17fSkpO2NvbnN0IGxlPVsicm93RmxleCIsInJvd01hcmdpbiJdLHJlPVsidHlwZSIsImZvbnQiLCJzaXplIiwiYm9sZCIsImNvbG9yIiwiaXRhbGljIiwiaGlnaGxpZ2h0IiwidW5kZXJsaW5lIiwic3RyaWtlb3V0Iiwicm93RmxleCIsInJvd01hcmdpbiIsImRhc2hBcnJheSIsInRyTGlzdCIsInRhYmxlVG9vbERpc2FibGVkIiwiYm9yZGVyVHlwZSIsImJvcmRlckNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1cmwiLCJjb2xncm91cCIsInZhbHVlTGlzdCIsImNvbnRyb2wiLCJjaGVja2JveCIsInJhZGlvIiwiZGF0ZUZvcm1hdCIsImJsb2NrIiwibGV2ZWwiLCJ0aXRsZSIsImxpc3RUeXBlIiwibGlzdFN0eWxlIiwibGlzdFdyYXAiLCJncm91cElkcyIsImNvbmNlcHRJZCIsImltZ0Rpc3BsYXkiLCJpbWdGbG9hdFBvc2l0aW9uIiwiaW1nVG9vbERpc2FibGVkIiwidGV4dERlY29yYXRpb24iLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwiYXJlYUlkIiwiYXJlYSJdLG9lPVsiY29uY2VwdElkIiwiZXh0ZW5zaW9uIiwiZXh0ZXJuYWxJZCIsInZlcnRpY2FsQWxpZ24iLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJUeXBlcyIsInNsYXNoVHlwZXMiLCJkaXNhYmxlZCIsImRlbGV0YWJsZSJdLHNlPVsiZm9udCIsInNpemUiLCJib2xkIiwiaGlnaGxpZ2h0IiwiaXRhbGljIiwic3RyaWtlb3V0Il07bC5URVhULGwuSFlQRVJMSU5LLGwuU1VCU0NSSVBULGwuU1VQRVJTQ1JJUFQsbC5DT05UUk9MLGwuREFURSxsLklNQUdFLGwuTEFURVgsbC5CTE9DSyxsLlBBR0VfQlJFQUssbC5TRVBBUkFUT1IsbC5UQUJMRSxsLlRJVExFLGwuTElTVDt2YXIgZzsoZnVuY3Rpb24oZSl7ZS5VTD0idWwiLGUuT0w9Im9sIn0pKGd8fChnPXt9KSk7dmFyIE87KGZ1bmN0aW9uKGUpe2UuRElTQz0iZGlzYyIsZS5DSVJDTEU9ImNpcmNsZSIsZS5TUVVBUkU9InNxdWFyZSIsZS5DSEVDS0JPWD0iY2hlY2tib3gifSkoT3x8KE89e30pKTt2YXIgYjsoZnVuY3Rpb24oZSl7ZS5ERUNJTUFMPSJkZWNpbWFsIn0pKGJ8fChiPXt9KSk7dmFyIHY7KGZ1bmN0aW9uKGUpe2VbZS5ESVNDPU8uRElTQ109IkRJU0MiLGVbZS5DSVJDTEU9Ty5DSVJDTEVdPSJDSVJDTEUiLGVbZS5TUVVBUkU9Ty5TUVVBUkVdPSJTUVVBUkUiLGVbZS5ERUNJTUFMPWIuREVDSU1BTF09IkRFQ0lNQUwiLGVbZS5DSEVDS0JPWD1PLkNIRUNLQk9YXT0iQ0hFQ0tCT1gifSkodnx8KHY9e30pKSxPLkRJU0MrIiIsTy5DSVJDTEUrIiIsTy5TUVVBUkUrIiIsTy5DSEVDS0JPWCsiIixnLk9MKyIiLGcuVUwrIiIsdi5ESVNDKyIiLHYuQ0lSQ0xFKyIiLHYuU1FVQVJFKyIiLHYuREVDSU1BTCsiIix2LkNIRUNLQk9YKyIiO3ZhciBmOyhmdW5jdGlvbihlKXtlLkZJUlNUPSJmaXJzdCIsZS5TRUNPTkQ9InNlY29uZCIsZS5USElSRD0idGhpcmQiLGUuRk9VUlRIPSJmb3VydGgiLGUuRklGVEg9ImZpZnRoIixlLlNJWFRIPSJzaXh0aCJ9KShmfHwoZj17fSkpLGYuRklSU1QrIiIsZi5TRUNPTkQrIiIsZi5USElSRCsiIixmLkZPVVJUSCsiIixmLkZJRlRIKyIiLGYuU0lYVEgrIiIsZi5GSVJTVCsiIixmLlNFQ09ORCsiIixmLlRISVJEKyIiLGYuRk9VUlRIKyIiLGYuRklGVEgrIiIsZi5TSVhUSCsiIixmLkZJUlNULGYuU0VDT05ELGYuVEhJUkQsZi5GT1VSVEgsZi5GSUZUSCxmLlNJWFRIO3ZhciBLOyhmdW5jdGlvbihlKXtlLklGUkFNRT0iaWZyYW1lIixlLlZJREVPPSJ2aWRlbyJ9KShLfHwoSz17fSkpO3ZhciB3OyhmdW5jdGlvbihlKXtlLlRFWFQ9InRleHQiLGUuU0VMRUNUPSJzZWxlY3QiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94IixlLlJBRElPPSJyYWRpbyIsZS5EQVRFPSJkYXRlIixlLk5VTUJFUj0ibnVtYmVyIn0pKHd8fCh3PXt9KSk7dmFyIEw7KGZ1bmN0aW9uKGUpe2UuUFJFRklYPSJwcmVmaXgiLGUuUE9TVEZJWD0icG9zdGZpeCIsZS5QUkVfVEVYVD0icHJlVGV4dCIsZS5QT1NUX1RFWFQ9InBvc3RUZXh0IixlLlBMQUNFSE9MREVSPSJwbGFjZWhvbGRlciIsZS5WQUxVRT0idmFsdWUiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94IixlLlJBRElPPSJyYWRpbyJ9KShMfHwoTD17fSkpO3ZhciB6OyhmdW5jdGlvbihlKXtlLlJPV19TVEFSVD0icm93U3RhcnQiLGUuVkFMVUVfU1RBUlQ9InZhbHVlU3RhcnQifSkoenx8KHo9e30pKTt2YXIgRzsoZnVuY3Rpb24oZSl7ZS5BQ1RJVkU9ImFjdGl2ZSIsZS5JTkFDVElWRT0iaW5hY3RpdmUifSkoR3x8KEc9e30pKTt2YXIgWTsoZnVuY3Rpb24oZSl7ZS5DT01QT05FTlQ9ImNvbXBvbmVudCIsZS5NRU5VPSJtZW51IixlLk1BSU49Im1haW4iLGUuRk9PVEVSPSJmb290ZXIiLGUuQ09OVEVYVE1FTlU9ImNvbnRleHRtZW51IixlLlBPUFVQPSJwb3B1cCIsZS5DQVRBTE9HPSJjYXRhbG9nIixlLkNPTU1FTlQ9ImNvbW1lbnQifSkoWXx8KFk9e30pKTt2YXIgVjsoZnVuY3Rpb24oZSl7ZS5QQUdFPSJwYWdlIixlLlRBQkxFPSJ0YWJsZSJ9KShWfHwoVj17fSkpO3ZhciBROyhmdW5jdGlvbihlKXtlLkVESVQ9ImVkaXQiLGUuQ0xFQU49ImNsZWFuIixlLlJFQURPTkxZPSJyZWFkb25seSIsZS5GT1JNPSJmb3JtIixlLlBSSU5UPSJwcmludCIsZS5ERVNJR049ImRlc2lnbiJ9KShRfHwoUT17fSkpO3ZhciBXOyhmdW5jdGlvbihlKXtlLkhFQURFUj0iaGVhZGVyIixlLk1BSU49Im1haW4iLGUuRk9PVEVSPSJmb290ZXIifSkoV3x8KFc9e30pKTt2YXIgcTsoZnVuY3Rpb24oZSl7ZS5QQUdJTkc9InBhZ2luZyIsZS5DT05USU5VSVRZPSJjb250aW51aXR5In0pKHF8fChxPXt9KSk7dmFyIFo7KGZ1bmN0aW9uKGUpe2UuVkVSVElDQUw9InZlcnRpY2FsIixlLkhPUklaT05UQUw9Imhvcml6b250YWwifSkoWnx8KFo9e30pKTt2YXIgSjsoZnVuY3Rpb24oZSl7ZS5CUkVBS19BTEw9ImJyZWFrLWFsbCIsZS5CUkVBS19XT1JEPSJicmVhay13b3JkIn0pKEp8fChKPXt9KSk7dmFyIGo7KGZ1bmN0aW9uKGUpe2UuU1BFRUQ9InNwZWVkIixlLkNPTVBBVElCSUxJVFk9ImNvbXBhdGliaWxpdHkifSkoanx8KGo9e30pKTt2YXIgRDsoZnVuY3Rpb24oZSl7ZS5MRUZUPSJsZWZ0IixlLkNFTlRFUj0iY2VudGVyIixlLlJJR0hUPSJyaWdodCIsZS5BTElHTk1FTlQ9ImFsaWdubWVudCIsZS5KVVNUSUZZPSJqdXN0aWZ5In0pKER8fChEPXt9KSk7dmFyICQ7KGZ1bmN0aW9uKGUpe2UuQUxMPSJhbGwiLGUuRU1QVFk9ImVtcHR5IixlLkVYVEVSTkFMPSJleHRlcm5hbCIsZS5JTlRFUk5BTD0iaW50ZXJuYWwiLGUuREFTSD0iZGFzaCJ9KSgkfHwoJD17fSkpO3ZhciBlZTsoZnVuY3Rpb24oZSl7ZS5UT1A9InRvcCIsZS5SSUdIVD0icmlnaHQiLGUuQk9UVE9NPSJib3R0b20iLGUuTEVGVD0ibGVmdCJ9KShlZXx8KGVlPXt9KSk7dmFyIHRlOyhmdW5jdGlvbihlKXtlLkZPUldBUkQ9ImZvcndhcmQiLGUuQkFDSz0iYmFjayJ9KSh0ZXx8KHRlPXt9KSk7dmFyIGs7KGZ1bmN0aW9uKGUpe2UuQ09OVEFJTj0iY29udGFpbiIsZS5DT1ZFUj0iY292ZXIifSkoa3x8KGs9e30pKTt2YXIgbTsoZnVuY3Rpb24oZSl7ZS5SRVBFQVQ9InJlcGVhdCIsZS5OT19SRVBFQVQ9Im5vLXJlcGVhdCIsZS5SRVBFQVRfWD0icmVwZWF0LXgiLGUuUkVQRUFUX1k9InJlcGVhdC15In0pKG18fChtPXt9KSksay5DT1ZFUixtLk5PX1JFUEVBVDt2YXIgRjsoZnVuY3Rpb24oZSl7ZS5UT1A9InRvcCIsZS5NSURETEU9Im1pZGRsZSIsZS5CT1RUT009ImJvdHRvbSJ9KShGfHwoRj17fSkpLEYuQk9UVE9NLFQuSEFMRixULkhBTEY7Y29uc3QgY2U9e1BBR0VfTk86IntwYWdlTm99IixQQUdFX0NPVU5UOiJ7cGFnZUNvdW50fSJ9O0QuQ0VOVEVSLGNlLlBBR0VfTk8sSS5BUkFCSUMsRi5CT1RUT00sSS5BUkFCSUM7dmFyIHk7KGZ1bmN0aW9uKGUpe2UuUEFHRT0icGFnZSIsZS5DT05USU5VSVRZPSJjb250aW51aXR5In0pKHl8fCh5PXt9KSkseS5DT05USU5VSVRZO2Z1bmN0aW9uIHVlKGUscyl7Y29uc3QgRT1PYmplY3Qua2V5cyhlKSxBPU9iamVjdC5rZXlzKHMpO2lmKEUubGVuZ3RoIT09QS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBSPTA7UjxFLmxlbmd0aDtSKyspe2NvbnN0IGE9RVtSXTtpZihhIT09InZhbHVlIiYmIShhPT09Imdyb3VwSWRzIiYmQXJyYXkuaXNBcnJheShlW2FdKSYmQXJyYXkuaXNBcnJheShzW2FdKSYmbmUoZVthXSxzW2FdKSkmJmVbYV0hPT1zW2FdKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFUoZSxzPXt9KXtjb25zdHtleHRyYVBpY2tBdHRyczpFfT1zLEE9Wy4uLnJlXTtFJiZBLnB1c2goLi4uRSk7Y29uc3QgUj17dmFsdWU6ZS52YWx1ZT09PVA/YApgOmUudmFsdWV9O3JldHVybiBBLmZvckVhY2goYT0+e2NvbnN0IHA9ZVthXTtwIT09dm9pZCAwJiYoUlthXT1wKX0pLFJ9ZnVuY3Rpb24gaChlLHM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOkUsaXNDbGFzc2lmeUFyZWE6QT0hMSxpc0Nsb25lOlI9ITB9PXMsYT1SP0goZSk6ZSxwPVtdO2xldCBpPTA7Zm9yKDtpPGEubGVuZ3RoOyl7bGV0IHQ9YVtpXTtpZihpPT09MCYmdC52YWx1ZT09PVAmJiF0Lmxpc3RJZCYmKCF0LnR5cGV8fHQudHlwZT09PWwuVEVYVCkpe2krKztjb250aW51ZX1pZih0LmFyZWFJZCYmdC5hcmVhKXtjb25zdCBuPXQuYXJlYUlkLHU9dC5hcmVhLGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbz1hW2ldO2lmKG4hPT1vLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmFyZWEsZGVsZXRlIG8uYXJlYUlkLGMucHVzaChvKSxpKyt9Y29uc3Qgcj1oKGMscyk7aWYoQSl7Y29uc3Qgbz17dHlwZTpsLkFSRUEsdmFsdWU6IiIsYXJlYUlkOm4sYXJlYTp1fTtvLnZhbHVlTGlzdD1yLHQ9b31lbHNle3Auc3BsaWNlKGksMCwuLi5yKTtjb250aW51ZX19ZWxzZSBpZih0LnRpdGxlSWQmJnQubGV2ZWwpe2NvbnN0IG49dC50aXRsZUlkO2lmKG4pe2NvbnN0IHU9dC5sZXZlbCxjPXt0eXBlOmwuVElUTEUsdGl0bGU6dC50aXRsZSx0aXRsZUlkOm4sdmFsdWU6IiIsbGV2ZWw6dX0scj1bXTtmb3IoO2k8YS5sZW5ndGg7KXtjb25zdCBvPWFbaV07aWYobiE9PW8udGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmxldmVsLGRlbGV0ZSBvLnRpdGxlLHIucHVzaChvKSxpKyt9Yy52YWx1ZUxpc3Q9aChyLHMpLHQ9Y319ZWxzZSBpZih0Lmxpc3RJZCYmdC5saXN0VHlwZSl7Y29uc3Qgbj10Lmxpc3RJZDtpZihuKXtjb25zdCB1PXQubGlzdFR5cGUsYz10Lmxpc3RTdHlsZSxyPXt0eXBlOmwuTElTVCx2YWx1ZToiIixsaXN0SWQ6bixsaXN0VHlwZTp1LGxpc3RTdHlsZTpjfSxvPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IEM9YVtpXTtpZihuIT09Qy5saXN0SWQpe2ktLTticmVha31kZWxldGUgQy5saXN0VHlwZSxkZWxldGUgQy5saXN0U3R5bGUsby5wdXNoKEMpLGkrK31yLnZhbHVlTGlzdD1oKG8scyksdD1yfX1lbHNlIGlmKHQudHlwZT09PWwuVEFCTEUpe2lmKHQucGFnaW5nSWQpe2xldCBuPWkrMSx1PTA7Zm9yKDtuPGEubGVuZ3RoOyl7Y29uc3QgYz1hW25dO2lmKGMucGFnaW5nSWQ9PT10LnBhZ2luZ0lkKXQuaGVpZ2h0Kz1jLmhlaWdodCx0LnRyTGlzdC5wdXNoKC4uLmMudHJMaXN0KSxuKyssdSsrO2Vsc2UgYnJlYWt9aSs9dX1pZih0LnRyTGlzdClmb3IobGV0IG49MDtuPHQudHJMaXN0Lmxlbmd0aDtuKyspe2NvbnN0IHU9dC50ckxpc3Rbbl07ZGVsZXRlIHUuaWQ7Zm9yKGxldCBjPTA7Yzx1LnRkTGlzdC5sZW5ndGg7YysrKXtjb25zdCByPXUudGRMaXN0W2NdLG89e2NvbHNwYW46ci5jb2xzcGFuLHJvd3NwYW46ci5yb3dzcGFuLHZhbHVlOmgoci52YWx1ZSxfKE4oe30scykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtvZS5mb3JFYWNoKEM9Pntjb25zdCBTPXJbQ107UyE9PXZvaWQgMCYmKG9bQ109Uyl9KSx1LnRkTGlzdFtjXT1vfX19ZWxzZSBpZih0LnR5cGU9PT1sLkhZUEVSTElOSyl7Y29uc3Qgbj10Lmh5cGVybGlua0lkO2lmKG4pe2NvbnN0IHU9e3R5cGU6bC5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOnQudXJsfSxjPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IHI9YVtpXTtpZihuIT09ci5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIudXJsLGMucHVzaChyKSxpKyt9dS52YWx1ZUxpc3Q9aChjLHMpLHQ9dX19ZWxzZSBpZih0LnR5cGU9PT1sLkRBVEUpe2NvbnN0IG49dC5kYXRlSWQ7aWYobil7Y29uc3QgdT17dHlwZTpsLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDp0LmRhdGVGb3JtYXR9LGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgcj1hW2ldO2lmKG4hPT1yLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIuZGF0ZUZvcm1hdCxjLnB1c2gociksaSsrfXUudmFsdWVMaXN0PWgoYyxzKSx0PXV9fWVsc2UgaWYodC5jb250cm9sSWQpe2NvbnN0IG49dC5jb250cm9sSWQ7aWYodC5jb250cm9sQ29tcG9uZW50PT09TC5QUkVGSVgpe2NvbnN0IHU9W107bGV0IGM9ITEscj1pO2Zvcig7cjxhLmxlbmd0aDspe2NvbnN0IG89YVtyXTtpZihuIT09by5jb250cm9sSWQpYnJlYWs7by5jb250cm9sQ29tcG9uZW50PT09TC5WQUxVRSYmKGRlbGV0ZSBvLmNvbnRyb2wsZGVsZXRlIG8uY29udHJvbElkLHUucHVzaChvKSksby5jb250cm9sQ29tcG9uZW50PT09TC5QT1NURklYJiYoYz0hMCkscisrfWlmKGMpe2NvbnN0IG89TSh0LHNlKSxDPU4oTih7fSx0LmNvbnRyb2wpLG8pLFM9XyhOKHt9LE0odCxsZSkpLHt0eXBlOmwuQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkMsY29udHJvbElkOm59KTtTLmNvbnRyb2wudmFsdWU9aCh1LHMpLHQ9VShTLHtleHRyYVBpY2tBdHRyczpFfSksaSs9ci1pLTF9fWlmKHQuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSB0LmNvbnRyb2wsZGVsZXRlIHQuY29udHJvbElkLHQuY29udHJvbENvbXBvbmVudCE9PUwuVkFMVUUmJnQuY29udHJvbENvbXBvbmVudCE9PUwuUFJFX1RFWFQmJnQuY29udHJvbENvbXBvbmVudCE9PUwuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCBCPVUodCx7ZXh0cmFQaWNrQXR0cnM6RX0pO2lmKCF0LnR5cGV8fHQudHlwZT09PWwuVEVYVHx8dC50eXBlPT09bC5TVUJTQ1JJUFR8fHQudHlwZT09PWwuU1VQRVJTQ1JJUFQpZm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbj1hW2krMV07aWYoaSsrLG4mJnVlKEIsVShuLHtleHRyYVBpY2tBdHRyczpFfSkpKXtjb25zdCB1PW4udmFsdWU9PT1QP2AKYDpuLnZhbHVlO0IudmFsdWUrPXV9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goQil9cmV0dXJuIHB9b25tZXNzYWdlPWU9Pntjb25zdCBzPWUuZGF0YSx7b3B0aW9uczpFLGRhdGE6QX09cyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09RXx8e30sYT17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
|
|
14449
14466
|
const blob = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
14450
14467
|
function WorkerWrapper() {
|
|
14451
14468
|
const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
@@ -15928,9 +15945,9 @@ class Placeholder {
|
|
|
15928
15945
|
this.rowList = [];
|
|
15929
15946
|
this.positionList = [];
|
|
15930
15947
|
}
|
|
15931
|
-
_compute() {
|
|
15948
|
+
_compute(options) {
|
|
15932
15949
|
this._computeRowList();
|
|
15933
|
-
this._computePositionList();
|
|
15950
|
+
this._computePositionList(options);
|
|
15934
15951
|
}
|
|
15935
15952
|
_computeRowList() {
|
|
15936
15953
|
const innerWidth = this.draw.getInnerWidth();
|
|
@@ -15939,7 +15956,7 @@ class Placeholder {
|
|
|
15939
15956
|
elementList: this.elementList
|
|
15940
15957
|
});
|
|
15941
15958
|
}
|
|
15942
|
-
_computePositionList() {
|
|
15959
|
+
_computePositionList(options) {
|
|
15943
15960
|
const { lineBreak, scale } = this.options;
|
|
15944
15961
|
const headerExtraHeight = this.draw.getHeader().getExtraHeight();
|
|
15945
15962
|
const innerWidth = this.draw.getInnerWidth();
|
|
@@ -15948,7 +15965,7 @@ class Placeholder {
|
|
|
15948
15965
|
if (!lineBreak.disabled) {
|
|
15949
15966
|
startX += (LineBreakParticle.WIDTH + LineBreakParticle.GAP) * scale;
|
|
15950
15967
|
}
|
|
15951
|
-
const startY = margins[0] + headerExtraHeight;
|
|
15968
|
+
const startY = (options == null ? void 0 : options.startY) || margins[0] + headerExtraHeight;
|
|
15952
15969
|
this.position.computePageRowPosition({
|
|
15953
15970
|
positionList: this.positionList,
|
|
15954
15971
|
rowList: this.rowList,
|
|
@@ -15960,10 +15977,9 @@ class Placeholder {
|
|
|
15960
15977
|
innerWidth
|
|
15961
15978
|
});
|
|
15962
15979
|
}
|
|
15963
|
-
render(ctx) {
|
|
15964
|
-
const { placeholder
|
|
15965
|
-
|
|
15966
|
-
return;
|
|
15980
|
+
render(ctx, options) {
|
|
15981
|
+
const { placeholder = this.options.placeholder } = options || {};
|
|
15982
|
+
const { data: data2, font, size, color, opacity } = placeholder;
|
|
15967
15983
|
this._recovery();
|
|
15968
15984
|
this.elementList = [
|
|
15969
15985
|
{
|
|
@@ -15977,7 +15993,7 @@ class Placeholder {
|
|
|
15977
15993
|
editorOptions: this.options,
|
|
15978
15994
|
isForceCompensation: true
|
|
15979
15995
|
});
|
|
15980
|
-
this._compute();
|
|
15996
|
+
this._compute(options);
|
|
15981
15997
|
const innerWidth = this.draw.getInnerWidth();
|
|
15982
15998
|
ctx.save();
|
|
15983
15999
|
ctx.globalAlpha = opacity;
|
|
@@ -16753,7 +16769,8 @@ class TableOperate {
|
|
|
16753
16769
|
const isAnchorTd = t === 0 && d === 0;
|
|
16754
16770
|
if (!isAnchorTd) {
|
|
16755
16771
|
mergeTdIdList.push(td.id);
|
|
16756
|
-
|
|
16772
|
+
const startTdValueIndex = td.value.length > 1 ? 0 : 1;
|
|
16773
|
+
for (let d2 = startTdValueIndex; d2 < td.value.length; d2++) {
|
|
16757
16774
|
const tdElement = td.value[d2];
|
|
16758
16775
|
cloneProperty(TABLE_CONTEXT_ATTR, anchorElement, tdElement);
|
|
16759
16776
|
anchorTd.value.push(tdElement);
|
|
@@ -17203,8 +17220,9 @@ class Area {
|
|
|
17203
17220
|
const width = this.draw.getInnerWidth();
|
|
17204
17221
|
for (const areaInfoItem of this.areaInfoMap) {
|
|
17205
17222
|
const { area, positionList } = areaInfoItem[1];
|
|
17206
|
-
if (!(area == null ? void 0 : area.backgroundColor) && !(area == null ? void 0 : area.borderColor))
|
|
17223
|
+
if (!(area == null ? void 0 : area.backgroundColor) && !(area == null ? void 0 : area.borderColor) && !(area == null ? void 0 : area.placeholder)) {
|
|
17207
17224
|
continue;
|
|
17225
|
+
}
|
|
17208
17226
|
const pagePositionList = positionList.filter((p) => p.pageNo === pageNo);
|
|
17209
17227
|
if (!pagePositionList.length)
|
|
17210
17228
|
continue;
|
|
@@ -17222,6 +17240,14 @@ class Area {
|
|
|
17222
17240
|
ctx.strokeStyle = area.borderColor;
|
|
17223
17241
|
ctx.strokeRect(x, y, width, height);
|
|
17224
17242
|
}
|
|
17243
|
+
if (area.placeholder && positionList.length <= 1) {
|
|
17244
|
+
const placeholder = new Placeholder(this.draw);
|
|
17245
|
+
placeholder.render(ctx, {
|
|
17246
|
+
placeholder: __spreadValues(__spreadValues({}, defaultPlaceholderOption), area.placeholder),
|
|
17247
|
+
startY: firstPosition.coordinate.leftTop[1]
|
|
17248
|
+
});
|
|
17249
|
+
}
|
|
17250
|
+
ctx.translate(-0.5, -0.5);
|
|
17225
17251
|
}
|
|
17226
17252
|
ctx.restore();
|
|
17227
17253
|
}
|
|
@@ -17604,7 +17630,7 @@ class Draw {
|
|
|
17604
17630
|
if (startIndex === endIndex) {
|
|
17605
17631
|
const startElement = elementList[startIndex];
|
|
17606
17632
|
const nextElement = elementList[startIndex + 1];
|
|
17607
|
-
return !!(((_b = startElement == null ? void 0 : startElement.title) == null ? void 0 : _b.disabled) && ((_c = nextElement == null ? void 0 : nextElement.title) == null ? void 0 : _c.disabled) || ((_d = startElement == null ? void 0 : startElement.control) == null ? void 0 : _d.disabled) && ((_e = nextElement == null ? void 0 : nextElement.control) == null ? void 0 : _e.disabled));
|
|
17633
|
+
return !!(((_b = startElement == null ? void 0 : startElement.title) == null ? void 0 : _b.disabled) && ((_c = nextElement == null ? void 0 : nextElement.title) == null ? void 0 : _c.disabled) && startElement.titleId === nextElement.titleId || ((_d = startElement == null ? void 0 : startElement.control) == null ? void 0 : _d.disabled) && ((_e = nextElement == null ? void 0 : nextElement.control) == null ? void 0 : _e.disabled) && startElement.controlId === nextElement.controlId);
|
|
17608
17634
|
}
|
|
17609
17635
|
const selectionElementList = elementList.slice(startIndex + 1, endIndex + 1);
|
|
17610
17636
|
return selectionElementList.some((element) => {
|
|
@@ -17615,6 +17641,9 @@ class Draw {
|
|
|
17615
17641
|
isDesignMode() {
|
|
17616
17642
|
return this.mode === EditorMode.DESIGN;
|
|
17617
17643
|
}
|
|
17644
|
+
isPrintMode() {
|
|
17645
|
+
return this.mode === EditorMode.PRINT;
|
|
17646
|
+
}
|
|
17618
17647
|
getOriginalWidth() {
|
|
17619
17648
|
const { paperDirection, width, height } = this.options;
|
|
17620
17649
|
return paperDirection === PaperDirection.VERTICAL ? width : height;
|
|
@@ -17908,9 +17937,9 @@ class Draw {
|
|
|
17908
17937
|
curIndex
|
|
17909
17938
|
});
|
|
17910
17939
|
}
|
|
17911
|
-
spliceElementList(elementList, start, deleteCount, items) {
|
|
17912
|
-
var _a, _b, _c, _d, _e;
|
|
17913
|
-
const
|
|
17940
|
+
spliceElementList(elementList, start, deleteCount, items, options) {
|
|
17941
|
+
var _a, _b, _c, _d, _e, _f;
|
|
17942
|
+
const { isIgnoreDeletedRule = false } = options || {};
|
|
17914
17943
|
if (deleteCount > 0) {
|
|
17915
17944
|
const endIndex = start + deleteCount;
|
|
17916
17945
|
const endElement = elementList[endIndex];
|
|
@@ -17928,12 +17957,12 @@ class Draw {
|
|
|
17928
17957
|
startIndex++;
|
|
17929
17958
|
}
|
|
17930
17959
|
}
|
|
17931
|
-
if (!this.control.
|
|
17960
|
+
if (!isIgnoreDeletedRule && !this.isDesignMode() && !this.control.getIsRangeWithinControl()) {
|
|
17932
17961
|
const tdDeletable = (_b = this.getTd()) == null ? void 0 : _b.deletable;
|
|
17933
17962
|
let deleteIndex = endIndex - 1;
|
|
17934
17963
|
while (deleteIndex >= start) {
|
|
17935
17964
|
const deleteElement = elementList[deleteIndex];
|
|
17936
|
-
if (
|
|
17965
|
+
if (((_c = deleteElement == null ? void 0 : deleteElement.control) == null ? void 0 : _c.hide) || tdDeletable !== false && ((_d = deleteElement == null ? void 0 : deleteElement.control) == null ? void 0 : _d.deletable) !== false && ((_e = deleteElement == null ? void 0 : deleteElement.title) == null ? void 0 : _e.deletable) !== false && (((_f = deleteElement == null ? void 0 : deleteElement.area) == null ? void 0 : _f.deletable) !== false || (deleteElement == null ? void 0 : deleteElement.areaIndex) !== 0)) {
|
|
17937
17966
|
elementList.splice(deleteIndex, 1);
|
|
17938
17967
|
}
|
|
17939
17968
|
deleteIndex--;
|
|
@@ -18846,22 +18875,25 @@ class Draw {
|
|
|
18846
18875
|
return pageRowList;
|
|
18847
18876
|
}
|
|
18848
18877
|
_drawHighlight(ctx, payload) {
|
|
18849
|
-
var _a;
|
|
18850
|
-
const { control: { activeBackgroundColor } } = this.options;
|
|
18878
|
+
var _a, _b;
|
|
18879
|
+
const { control: { activeBackgroundColor, disabledBackgroundColor } } = this.options;
|
|
18851
18880
|
const { rowList, positionList } = payload;
|
|
18881
|
+
const isPrintMode = this.isPrintMode();
|
|
18852
18882
|
const activeControlElement = (_a = this.control.getActiveControl()) == null ? void 0 : _a.getElement();
|
|
18853
18883
|
for (let i = 0; i < rowList.length; i++) {
|
|
18854
18884
|
const curRow = rowList[i];
|
|
18855
18885
|
for (let j = 0; j < curRow.elementList.length; j++) {
|
|
18856
18886
|
const element = curRow.elementList[j];
|
|
18857
18887
|
const preElement = curRow.elementList[j - 1];
|
|
18858
|
-
|
|
18888
|
+
const isActiveControlHighlight = !isPrintMode && activeBackgroundColor && activeControlElement && element.controlId === activeControlElement.controlId && !this.control.getIsRangeInPostfix();
|
|
18889
|
+
const isDisabledControlHighlight = !isPrintMode && disabledBackgroundColor && ((_b = element.control) == null ? void 0 : _b.disabled);
|
|
18890
|
+
if (element.highlight || isActiveControlHighlight || isDisabledControlHighlight) {
|
|
18859
18891
|
if (preElement && preElement.highlight && preElement.highlight !== element.highlight) {
|
|
18860
18892
|
this.highlight.render(ctx);
|
|
18861
18893
|
}
|
|
18862
18894
|
const { coordinate: { leftTop: [x, y] } } = positionList[curRow.startIndex + j];
|
|
18863
18895
|
const offsetX = element.left || 0;
|
|
18864
|
-
this.highlight.recordFillInfo(ctx, x - offsetX, y, element.metrics.width + offsetX, curRow.height, element.highlight || activeBackgroundColor);
|
|
18896
|
+
this.highlight.recordFillInfo(ctx, x - offsetX, y, element.metrics.width + offsetX, curRow.height, element.highlight || (isActiveControlHighlight ? activeBackgroundColor : "") || (isDisabledControlHighlight ? disabledBackgroundColor : ""));
|
|
18865
18897
|
} else if (preElement == null ? void 0 : preElement.highlight) {
|
|
18866
18898
|
this.highlight.render(ctx);
|
|
18867
18899
|
}
|
|
@@ -20756,13 +20788,14 @@ class CommandAdapt {
|
|
|
20756
20788
|
const { startIndex, endIndex } = this.range.getRange();
|
|
20757
20789
|
if (!~startIndex && !~endIndex)
|
|
20758
20790
|
return null;
|
|
20759
|
-
const { id, value, width, height, imgDisplay } = payload;
|
|
20791
|
+
const { id, conceptId, value, width, height, imgDisplay } = payload;
|
|
20760
20792
|
const imageId = id || getUUID();
|
|
20761
20793
|
this.insertElementList([
|
|
20762
20794
|
{
|
|
20763
20795
|
value,
|
|
20764
20796
|
width,
|
|
20765
20797
|
height,
|
|
20798
|
+
conceptId,
|
|
20766
20799
|
id: imageId,
|
|
20767
20800
|
type: ElementType.IMAGE,
|
|
20768
20801
|
imgDisplay
|
|
@@ -21177,9 +21210,13 @@ class CommandAdapt {
|
|
|
21177
21210
|
return;
|
|
21178
21211
|
for (let i = 0; i < updateElementInfoList.length; i++) {
|
|
21179
21212
|
const { elementList, index: index2 } = updateElementInfoList[i];
|
|
21213
|
+
const oldElement = elementList[index2];
|
|
21180
21214
|
const newElement = zipElementList([
|
|
21181
|
-
__spreadValues(__spreadValues({},
|
|
21182
|
-
]
|
|
21215
|
+
__spreadValues(__spreadValues({}, oldElement), payload.properties)
|
|
21216
|
+
], {
|
|
21217
|
+
extraPickAttrs: ["id"]
|
|
21218
|
+
});
|
|
21219
|
+
cloneProperty(AREA_CONTEXT_ATTR, oldElement, newElement[0]);
|
|
21183
21220
|
formatElementList(newElement, {
|
|
21184
21221
|
isHandleFirstElement: false,
|
|
21185
21222
|
editorOptions: this.options
|
|
@@ -21477,9 +21514,8 @@ class CommandAdapt {
|
|
|
21477
21514
|
return this.draw.getControl().getList();
|
|
21478
21515
|
}
|
|
21479
21516
|
locationControl(controlId, options) {
|
|
21480
|
-
const isLocationAfter = (options == null ? void 0 : options.position) === LocationPosition.AFTER;
|
|
21481
21517
|
function location(elementList, zone2) {
|
|
21482
|
-
var _a, _b;
|
|
21518
|
+
var _a, _b, _c;
|
|
21483
21519
|
let i = 0;
|
|
21484
21520
|
while (i < elementList.length) {
|
|
21485
21521
|
const element = elementList[i];
|
|
@@ -21510,13 +21546,19 @@ class CommandAdapt {
|
|
|
21510
21546
|
if ((element == null ? void 0 : element.controlId) !== controlId)
|
|
21511
21547
|
continue;
|
|
21512
21548
|
let curIndex = i - 1;
|
|
21513
|
-
if (
|
|
21549
|
+
if ((options == null ? void 0 : options.position) === LocationPosition.OUTER_AFTER) {
|
|
21550
|
+
if (!(element.controlComponent === ControlComponent.POSTFIX && ((_a = elementList[i + 1]) == null ? void 0 : _a.controlComponent) !== ControlComponent.POST_TEXT)) {
|
|
21551
|
+
continue;
|
|
21552
|
+
}
|
|
21553
|
+
} else if ((options == null ? void 0 : options.position) === LocationPosition.OUTER_BEFORE) {
|
|
21554
|
+
curIndex -= 1;
|
|
21555
|
+
} else if ((options == null ? void 0 : options.position) === LocationPosition.AFTER) {
|
|
21514
21556
|
curIndex -= 1;
|
|
21515
21557
|
if (element.controlComponent !== ControlComponent.PLACEHOLDER && element.controlComponent !== ControlComponent.POSTFIX && element.controlComponent !== ControlComponent.POST_TEXT) {
|
|
21516
21558
|
continue;
|
|
21517
21559
|
}
|
|
21518
21560
|
} else {
|
|
21519
|
-
if (element.controlComponent !== ControlComponent.PREFIX && element.controlComponent !== ControlComponent.PRE_TEXT || ((
|
|
21561
|
+
if (element.controlComponent !== ControlComponent.PREFIX && element.controlComponent !== ControlComponent.PRE_TEXT || ((_b = elementList[i]) == null ? void 0 : _b.controlComponent) === ControlComponent.PREFIX || ((_c = elementList[i]) == null ? void 0 : _c.controlComponent) === ControlComponent.PRE_TEXT) {
|
|
21520
21562
|
continue;
|
|
21521
21563
|
}
|
|
21522
21564
|
}
|