@hufe921/canvas-editor 0.9.127 → 0.9.128
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 +27 -0
- package/README.md +1 -0
- package/dist/canvas-editor.es.js +188 -32
- package/dist/canvas-editor.es.js.map +1 -1
- package/dist/canvas-editor.umd.js +38 -38
- package/dist/canvas-editor.umd.js.map +1 -1
- package/dist/src/editor/core/event/handlers/keydown/end.d.ts +2 -0
- package/dist/src/editor/core/event/handlers/keydown/home.d.ts +2 -0
- package/dist/src/editor/core/override/Override.d.ts +1 -0
- package/dist/src/editor/dataset/enum/KeyMap.d.ts +2 -0
- package/dist/src/editor/interface/Checkbox.d.ts +3 -0
- package/dist/src/editor/interface/Range.d.ts +2 -0
- package/dist/src/editor/utils/paragraph.d.ts +8 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
## [0.9.128](https://github.com/Hufe921/canvas-editor/compare/v0.9.127...v0.9.128) (2026-02-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* prevent global CSS styles from affecting pasted text color #1359 ([c7925e6](https://github.com/Hufe921/canvas-editor/commit/c7925e642fe6933523c89ac3b6c1f4452472e656)), closes [#1359](https://github.com/Hufe921/canvas-editor/issues/1359)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Chores
|
|
10
|
+
|
|
11
|
+
* add deep wiki ([2496c30](https://github.com/Hufe921/canvas-editor/commit/2496c306572281363bd7bc5ffdf098afa563fd21))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Documentation
|
|
15
|
+
|
|
16
|
+
* add ZRead and DeepWiki badges ([22dd500](https://github.com/Hufe921/canvas-editor/commit/22dd500ca013173b39544b43260bae56fe968306))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* add checkMarkColor option for checkbox #1367 ([3cf52b4](https://github.com/Hufe921/canvas-editor/commit/3cf52b4f0ffa6306d0f6b76e10b6eb08ce12d5e5)), closes [#1367](https://github.com/Hufe921/canvas-editor/issues/1367)
|
|
22
|
+
* add paragraph index for getRangeContext api #1360 ([a26e6c3](https://github.com/Hufe921/canvas-editor/commit/a26e6c349bf4d61839252e27b3f58daf0ee809c1)), closes [#1360](https://github.com/Hufe921/canvas-editor/issues/1360)
|
|
23
|
+
* add pasteImage override support #1365 ([558b138](https://github.com/Hufe921/canvas-editor/commit/558b138e59624c0cca848b1e32a1b399a776d1af)), closes [#1365](https://github.com/Hufe921/canvas-editor/issues/1365)
|
|
24
|
+
* implemented shortcut for home and end keys #1361 ([942fb5b](https://github.com/Hufe921/canvas-editor/commit/942fb5b69855488c29d67f4c7503f1294919b92a)), closes [#1361](https://github.com/Hufe921/canvas-editor/issues/1361)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
1
28
|
## [0.9.127](https://github.com/Hufe921/canvas-editor/compare/v0.9.126...v0.9.127) (2026-02-18)
|
|
2
29
|
|
|
3
30
|
|
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
<a href="https://www.npmjs.com/package/@hufe921/canvas-editor" target="_blank"><img src="https://img.shields.io/npm/l/@hufe921/canvas-editor.svg?sanitize=true" alt="License"></a>
|
|
16
16
|
<a href="https://github.com/Hufe921/canvas-editor/issues/new/choose" target="_blank"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs"></a>
|
|
17
17
|
<a href="https://zread.ai/Hufe921/canvas-editor" target="_blank"><img src="https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff" alt="zread"/></a>
|
|
18
|
+
<a href="https://deepwiki.com/Hufe921/canvas-editor" target="_blank"><img src="https://img.shields.io/badge/Ask_DeepWiki-_.svg?style=flat&color=0094de&labelColor=000000&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJzaXplLTQgdHJhbnNmb3JtIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTcwMCBncm91cC1ob3Zlcjpyb3RhdGUtMTgwIFsmYW1wO19wYXRoXTpzdHJva2UtMCIgdmlld0JveD0iMTEwIDExMCA0NjAgNTAwIj48cGF0aCBkPSJNNDE5IDMzMnExNi03IDMyIDBsMjUgMTUgMyAxIDMgMSAzLTEgMy0xIDUxLTI5cTYtMyA2LTExdi01OHEwLTgtNi0xMWwtNTEtMjlxLTYtMy0xMiAwbC01MSAyOXYxbC0yIDEtMiAydjFsLTEgMnYxbC0xIDN2MjlhMzIgMzIgMCAwIDEtNDggMjhsLTI1LTE1LTMtMS0zLTEtMyAxLTMgMS01MSAyOXEtNSAzLTYgMTF2NThxMSA4IDYgMTFsNTEgMjkgMyAxIDMgMSAzLTEgMy0xIDI1LTE1YTMyIDMyIDAgMCAxIDQ4IDI4djI5bDEgM3YxbDEgMnYxbDIgMiAyIDIgNTEgMjkgNiAyIDYtMiA1MS0yOXE2LTMgNi0xMXYtNThxMC04LTYtMTFsLTUxLTI5LTMtMS0zLTEtMyAxLTMgMS0yNSAxNWEzMiAzMiAwIDAgMS00OC0yOHExLTE4IDE2LTI4IiBzdHlsZT0iZmlsbDojMjFjMTlhIi8+PHBhdGggZD0ibTE0MSAzMTggNTEgMjkgNiAyIDYtMiA1MS0yOXYtMWwyLTEgMi0ydi0xbDEtMnYtMWwxLTN2LTI5YTMyIDMyIDAgMCAxIDQ4LTI4bDI1IDE1IDMgMSAzIDEgMy0xIDMtMSA1MS0yOXE2LTMgNi0xMXYtNThxMC04LTYtMTFsLTUxLTI5cS02LTMtMTIgMGwtNTEgMjktMiAyaC0xbC0xIDJ2MWwtMSAydjFsLTEgM3YyOWEzMiAzMiAwIDAgMS00OCAyOGwtMjUtMTUtMy0xLTMtMS0zIDEtMyAxLTUxIDI5cS02IDMtNiAxMXY1OHEwIDggNiAxMSIgc3R5bGU9ImZpbGw6IzM5NjljYSIvPjxwYXRoIGQ9Im0zOTcgNDg0LTUxLTI5LTMtMS0zLTEtMyAxLTMgMS0yNSAxNWEzMiAzMiAwIDAgMS00OC0yOHYtMjlsLTEtM3YtMWwtMS0ydi0xbC0yLTItMi0xdi0xbC01MS0yOXEtNi0zLTEyIDBsLTUxIDI5cS02IDMtNiAxMXY1OHEwIDggNiAxMWw1MSAyOSAzIDEgMyAxIDMtMSAzLTEgMjUtMTVhMzIgMzIgMCAwIDEgNDggMjh2MjlsMSAzdjFsMSAydjFsMiAyIDIgMiA1MSAyOSA2IDIgNi0yIDUxLTI5cTYtMyA2LTExdi01OHEwLTgtNi0xMSIgc3R5bGU9ImZpbGw6IzAyOTRkZSIvPjwvc3ZnPg==&logoColor=ffffff" alt="DeepWiki"/></a>
|
|
18
19
|
</p>
|
|
19
20
|
|
|
20
21
|
<p align="center"> a rich text editor by canvas/svg</p>
|
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.128";
|
|
27
27
|
var MaxHeightRatio;
|
|
28
28
|
(function(MaxHeightRatio2) {
|
|
29
29
|
MaxHeightRatio2["HALF"] = "half";
|
|
@@ -4143,8 +4143,11 @@ const defaultCheckboxOption = {
|
|
|
4143
4143
|
height: 14,
|
|
4144
4144
|
gap: 5,
|
|
4145
4145
|
lineWidth: 1,
|
|
4146
|
-
fillStyle: "#
|
|
4147
|
-
strokeStyle: "#
|
|
4146
|
+
fillStyle: "#ffffff",
|
|
4147
|
+
strokeStyle: "#000000",
|
|
4148
|
+
checkFillStyle: "#5175f4",
|
|
4149
|
+
checkStrokeStyle: "#5175f4",
|
|
4150
|
+
checkMarkColor: "#ffffff",
|
|
4148
4151
|
verticalAlign: VerticalAlign.BOTTOM
|
|
4149
4152
|
};
|
|
4150
4153
|
const defaultControlOption = {
|
|
@@ -5703,9 +5706,12 @@ function getElementListByHTML(htmlText, options) {
|
|
|
5703
5706
|
}
|
|
5704
5707
|
}
|
|
5705
5708
|
}
|
|
5709
|
+
const clipboardHost = document.createElement("div");
|
|
5710
|
+
document.body.appendChild(clipboardHost);
|
|
5711
|
+
const shadowRoot = clipboardHost.attachShadow({ mode: "open" });
|
|
5706
5712
|
const clipboardDom = document.createElement("div");
|
|
5707
5713
|
clipboardDom.innerHTML = htmlText;
|
|
5708
|
-
|
|
5714
|
+
shadowRoot.appendChild(clipboardDom);
|
|
5709
5715
|
const deleteNodes = [];
|
|
5710
5716
|
clipboardDom.childNodes.forEach((child) => {
|
|
5711
5717
|
var _a;
|
|
@@ -5715,7 +5721,7 @@ function getElementListByHTML(htmlText, options) {
|
|
|
5715
5721
|
});
|
|
5716
5722
|
deleteNodes.forEach((node) => node.remove());
|
|
5717
5723
|
findTextNode(clipboardDom);
|
|
5718
|
-
|
|
5724
|
+
clipboardHost.remove();
|
|
5719
5725
|
return elementList;
|
|
5720
5726
|
}
|
|
5721
5727
|
function getTextFromElementList(elementList) {
|
|
@@ -5958,6 +5964,12 @@ function pasteImage(host, file) {
|
|
|
5958
5964
|
const draw = host.getDraw();
|
|
5959
5965
|
if (draw.isReadonly() || draw.isDisabled())
|
|
5960
5966
|
return;
|
|
5967
|
+
const { pasteImage: overridePasteImage } = draw.getOverride();
|
|
5968
|
+
if (overridePasteImage) {
|
|
5969
|
+
const overrideResult = overridePasteImage(file);
|
|
5970
|
+
if ((overrideResult == null ? void 0 : overrideResult.preventDefault) !== false)
|
|
5971
|
+
return;
|
|
5972
|
+
}
|
|
5961
5973
|
const rangeManager = draw.getRange();
|
|
5962
5974
|
const { startIndex } = rangeManager.getRange();
|
|
5963
5975
|
const elementList = draw.getElementList();
|
|
@@ -6324,6 +6336,8 @@ var KeyMap;
|
|
|
6324
6336
|
KeyMap2["Right"] = "ArrowRight";
|
|
6325
6337
|
KeyMap2["Up"] = "ArrowUp";
|
|
6326
6338
|
KeyMap2["Down"] = "ArrowDown";
|
|
6339
|
+
KeyMap2["Home"] = "Home";
|
|
6340
|
+
KeyMap2["End"] = "End";
|
|
6327
6341
|
KeyMap2["ESC"] = "Escape";
|
|
6328
6342
|
KeyMap2["TAB"] = "Tab";
|
|
6329
6343
|
KeyMap2["META"] = "Meta";
|
|
@@ -7027,22 +7041,22 @@ function mousemove(evt, host) {
|
|
|
7027
7041
|
tableId
|
|
7028
7042
|
});
|
|
7029
7043
|
} else {
|
|
7030
|
-
let
|
|
7044
|
+
let end2 = ~endIndex ? endIndex : 0;
|
|
7031
7045
|
if ((startIsTable || isTable) && startTableId !== tableId)
|
|
7032
7046
|
return;
|
|
7033
7047
|
let start = startIndex;
|
|
7034
|
-
if (start >
|
|
7035
|
-
[start,
|
|
7048
|
+
if (start > end2) {
|
|
7049
|
+
[start, end2] = [end2, start];
|
|
7036
7050
|
}
|
|
7037
|
-
if (start ===
|
|
7051
|
+
if (start === end2)
|
|
7038
7052
|
return;
|
|
7039
7053
|
const elementList = draw.getElementList();
|
|
7040
7054
|
const startElement = elementList[start + 1];
|
|
7041
|
-
const endElement = elementList[
|
|
7055
|
+
const endElement = elementList[end2];
|
|
7042
7056
|
if ((startElement == null ? void 0 : startElement.controlComponent) === ControlComponent.PLACEHOLDER && (endElement == null ? void 0 : endElement.controlComponent) === ControlComponent.PLACEHOLDER && startElement.controlId === endElement.controlId) {
|
|
7043
7057
|
return;
|
|
7044
7058
|
}
|
|
7045
|
-
rangeManager.setRange(start,
|
|
7059
|
+
rangeManager.setRange(start, end2);
|
|
7046
7060
|
}
|
|
7047
7061
|
draw.render({
|
|
7048
7062
|
isSubmitHistory: false,
|
|
@@ -7960,6 +7974,116 @@ function updown(evt, host) {
|
|
|
7960
7974
|
});
|
|
7961
7975
|
}
|
|
7962
7976
|
}
|
|
7977
|
+
function home(evt, host) {
|
|
7978
|
+
const draw = host.getDraw();
|
|
7979
|
+
if (draw.isReadonly())
|
|
7980
|
+
return;
|
|
7981
|
+
const position = draw.getPosition();
|
|
7982
|
+
const cursorPosition = position.getCursorPosition();
|
|
7983
|
+
if (!cursorPosition)
|
|
7984
|
+
return;
|
|
7985
|
+
const rangeManager = draw.getRange();
|
|
7986
|
+
const { startIndex, endIndex } = rangeManager.getRange();
|
|
7987
|
+
const positionList = position.getPositionList();
|
|
7988
|
+
let anchorPosition = cursorPosition;
|
|
7989
|
+
if (evt.shiftKey && startIndex !== endIndex) {
|
|
7990
|
+
if (startIndex === cursorPosition.index) {
|
|
7991
|
+
anchorPosition = positionList[endIndex];
|
|
7992
|
+
} else {
|
|
7993
|
+
anchorPosition = positionList[startIndex];
|
|
7994
|
+
}
|
|
7995
|
+
}
|
|
7996
|
+
const { rowNo } = anchorPosition;
|
|
7997
|
+
let lineStartIndex = anchorPosition.index;
|
|
7998
|
+
for (let i = anchorPosition.index - 1; i >= 0; i--) {
|
|
7999
|
+
if (positionList[i].rowNo !== rowNo)
|
|
8000
|
+
break;
|
|
8001
|
+
lineStartIndex = i;
|
|
8002
|
+
}
|
|
8003
|
+
let anchorStart = lineStartIndex;
|
|
8004
|
+
let anchorEnd = lineStartIndex;
|
|
8005
|
+
if (evt.shiftKey) {
|
|
8006
|
+
if (startIndex !== endIndex) {
|
|
8007
|
+
if (startIndex === cursorPosition.index) {
|
|
8008
|
+
anchorStart = startIndex;
|
|
8009
|
+
anchorEnd = lineStartIndex;
|
|
8010
|
+
} else {
|
|
8011
|
+
anchorStart = lineStartIndex;
|
|
8012
|
+
anchorEnd = endIndex;
|
|
8013
|
+
}
|
|
8014
|
+
} else {
|
|
8015
|
+
anchorStart = lineStartIndex;
|
|
8016
|
+
anchorEnd = startIndex;
|
|
8017
|
+
}
|
|
8018
|
+
}
|
|
8019
|
+
if (anchorStart > anchorEnd) {
|
|
8020
|
+
[anchorStart, anchorEnd] = [anchorEnd, anchorStart];
|
|
8021
|
+
}
|
|
8022
|
+
rangeManager.setRange(anchorStart, anchorEnd);
|
|
8023
|
+
const isCollapsed = anchorStart === anchorEnd;
|
|
8024
|
+
draw.render({
|
|
8025
|
+
curIndex: isCollapsed ? anchorStart : void 0,
|
|
8026
|
+
isSetCursor: isCollapsed,
|
|
8027
|
+
isSubmitHistory: false,
|
|
8028
|
+
isCompute: false
|
|
8029
|
+
});
|
|
8030
|
+
evt.preventDefault();
|
|
8031
|
+
}
|
|
8032
|
+
function end(evt, host) {
|
|
8033
|
+
const draw = host.getDraw();
|
|
8034
|
+
if (draw.isReadonly())
|
|
8035
|
+
return;
|
|
8036
|
+
const position = draw.getPosition();
|
|
8037
|
+
const cursorPosition = position.getCursorPosition();
|
|
8038
|
+
if (!cursorPosition)
|
|
8039
|
+
return;
|
|
8040
|
+
const rangeManager = draw.getRange();
|
|
8041
|
+
const { startIndex, endIndex } = rangeManager.getRange();
|
|
8042
|
+
const positionList = position.getPositionList();
|
|
8043
|
+
let anchorPosition = cursorPosition;
|
|
8044
|
+
if (evt.shiftKey && startIndex !== endIndex) {
|
|
8045
|
+
if (startIndex === cursorPosition.index) {
|
|
8046
|
+
anchorPosition = positionList[endIndex];
|
|
8047
|
+
} else {
|
|
8048
|
+
anchorPosition = positionList[startIndex];
|
|
8049
|
+
}
|
|
8050
|
+
}
|
|
8051
|
+
const { rowNo } = anchorPosition;
|
|
8052
|
+
let lineEndIndex = anchorPosition.index;
|
|
8053
|
+
for (let i = anchorPosition.index + 1; i < positionList.length; i++) {
|
|
8054
|
+
if (positionList[i].rowNo !== rowNo)
|
|
8055
|
+
break;
|
|
8056
|
+
lineEndIndex = i;
|
|
8057
|
+
}
|
|
8058
|
+
let anchorStart = lineEndIndex;
|
|
8059
|
+
let anchorEnd = lineEndIndex;
|
|
8060
|
+
if (evt.shiftKey) {
|
|
8061
|
+
if (startIndex !== endIndex) {
|
|
8062
|
+
if (startIndex === cursorPosition.index) {
|
|
8063
|
+
anchorStart = startIndex;
|
|
8064
|
+
anchorEnd = lineEndIndex;
|
|
8065
|
+
} else {
|
|
8066
|
+
anchorStart = lineEndIndex;
|
|
8067
|
+
anchorEnd = endIndex;
|
|
8068
|
+
}
|
|
8069
|
+
} else {
|
|
8070
|
+
anchorStart = startIndex;
|
|
8071
|
+
anchorEnd = lineEndIndex;
|
|
8072
|
+
}
|
|
8073
|
+
}
|
|
8074
|
+
if (anchorStart > anchorEnd) {
|
|
8075
|
+
[anchorStart, anchorEnd] = [anchorEnd, anchorStart];
|
|
8076
|
+
}
|
|
8077
|
+
rangeManager.setRange(anchorStart, anchorEnd);
|
|
8078
|
+
const isCollapsed = anchorStart === anchorEnd;
|
|
8079
|
+
draw.render({
|
|
8080
|
+
curIndex: isCollapsed ? anchorStart : void 0,
|
|
8081
|
+
isSetCursor: isCollapsed,
|
|
8082
|
+
isSubmitHistory: false,
|
|
8083
|
+
isCompute: false
|
|
8084
|
+
});
|
|
8085
|
+
evt.preventDefault();
|
|
8086
|
+
}
|
|
7963
8087
|
function keydown(evt, host) {
|
|
7964
8088
|
if (host.isComposing)
|
|
7965
8089
|
return;
|
|
@@ -7971,11 +8095,23 @@ function keydown(evt, host) {
|
|
|
7971
8095
|
} else if (evt.key === KeyMap.Enter) {
|
|
7972
8096
|
enter(evt, host);
|
|
7973
8097
|
} else if (evt.key === KeyMap.Left) {
|
|
7974
|
-
|
|
8098
|
+
if (isMod(evt)) {
|
|
8099
|
+
home(evt, host);
|
|
8100
|
+
} else {
|
|
8101
|
+
left(evt, host);
|
|
8102
|
+
}
|
|
7975
8103
|
} else if (evt.key === KeyMap.Right) {
|
|
7976
|
-
|
|
8104
|
+
if (isMod(evt)) {
|
|
8105
|
+
end(evt, host);
|
|
8106
|
+
} else {
|
|
8107
|
+
right(evt, host);
|
|
8108
|
+
}
|
|
7977
8109
|
} else if (evt.key === KeyMap.Up || evt.key === KeyMap.Down) {
|
|
7978
8110
|
updown(evt, host);
|
|
8111
|
+
} else if (evt.key === KeyMap.Home) {
|
|
8112
|
+
home(evt, host);
|
|
8113
|
+
} else if (evt.key === KeyMap.End) {
|
|
8114
|
+
end(evt, host);
|
|
7979
8115
|
} else if (isMod(evt) && evt.key.toLocaleLowerCase() === KeyMap.Z) {
|
|
7980
8116
|
if (draw.isReadonly() && draw.getMode() !== EditorMode.FORM)
|
|
7981
8117
|
return;
|
|
@@ -8133,7 +8269,7 @@ async function cut(host) {
|
|
|
8133
8269
|
return;
|
|
8134
8270
|
const elementList = draw.getElementList();
|
|
8135
8271
|
let start = startIndex;
|
|
8136
|
-
let
|
|
8272
|
+
let end2 = endIndex;
|
|
8137
8273
|
if (startIndex === endIndex) {
|
|
8138
8274
|
const position = draw.getPosition();
|
|
8139
8275
|
const positionList = position.getPositionList();
|
|
@@ -8151,17 +8287,17 @@ async function cut(host) {
|
|
|
8151
8287
|
}
|
|
8152
8288
|
const firstElementIndex = cutElementIndexList[0] - 1;
|
|
8153
8289
|
start = firstElementIndex < 0 ? 0 : firstElementIndex;
|
|
8154
|
-
|
|
8290
|
+
end2 = cutElementIndexList[cutElementIndexList.length - 1];
|
|
8155
8291
|
}
|
|
8156
8292
|
const options = draw.getOptions();
|
|
8157
|
-
await writeElementList(elementList.slice(start + 1,
|
|
8293
|
+
await writeElementList(elementList.slice(start + 1, end2 + 1), options);
|
|
8158
8294
|
const control = draw.getControl();
|
|
8159
8295
|
let curIndex;
|
|
8160
8296
|
if (control.getActiveControl() && control.getIsRangeWithinControl()) {
|
|
8161
8297
|
curIndex = control.cut();
|
|
8162
8298
|
control.emitControlContentChange();
|
|
8163
8299
|
} else {
|
|
8164
|
-
draw.spliceElementList(elementList, start + 1,
|
|
8300
|
+
draw.spliceElementList(elementList, start + 1, end2 - start);
|
|
8165
8301
|
curIndex = start;
|
|
8166
8302
|
}
|
|
8167
8303
|
rangeManager.setRange(curIndex, curIndex);
|
|
@@ -9635,17 +9771,17 @@ class RangeManager {
|
|
|
9635
9771
|
middle++;
|
|
9636
9772
|
}
|
|
9637
9773
|
}
|
|
9638
|
-
let
|
|
9774
|
+
let end2 = endIndex;
|
|
9639
9775
|
if (isCollapsed && elementList[startIndex].value === ZERO) {
|
|
9640
|
-
|
|
9776
|
+
end2 += 1;
|
|
9641
9777
|
}
|
|
9642
|
-
while (
|
|
9643
|
-
const element = elementList[
|
|
9644
|
-
const nextElement = elementList[
|
|
9778
|
+
while (end2 < positionList.length) {
|
|
9779
|
+
const element = elementList[end2];
|
|
9780
|
+
const nextElement = elementList[end2 + 1];
|
|
9645
9781
|
if (element.value === ZERO && !element.listWrap || element.listId !== (nextElement == null ? void 0 : nextElement.listId) || element.titleId !== (nextElement == null ? void 0 : nextElement.titleId)) {
|
|
9646
9782
|
break;
|
|
9647
9783
|
}
|
|
9648
|
-
const { pageNo, rowNo } = positionList[
|
|
9784
|
+
const { pageNo, rowNo } = positionList[end2];
|
|
9649
9785
|
let rowArray = rangeRow.get(pageNo);
|
|
9650
9786
|
if (!rowArray) {
|
|
9651
9787
|
rowArray = [];
|
|
@@ -9654,7 +9790,7 @@ class RangeManager {
|
|
|
9654
9790
|
if (!rowArray.includes(rowNo)) {
|
|
9655
9791
|
rowArray.push(rowNo);
|
|
9656
9792
|
}
|
|
9657
|
-
|
|
9793
|
+
end2++;
|
|
9658
9794
|
}
|
|
9659
9795
|
return rangeRow;
|
|
9660
9796
|
}
|
|
@@ -15357,7 +15493,7 @@ class CheckboxParticle {
|
|
|
15357
15493
|
render(payload) {
|
|
15358
15494
|
const { ctx, x, index: index2, row } = payload;
|
|
15359
15495
|
let { y } = payload;
|
|
15360
|
-
const { checkbox: { gap, lineWidth, fillStyle, strokeStyle, verticalAlign }, scale } = this.options;
|
|
15496
|
+
const { checkbox: { gap, lineWidth, fillStyle, strokeStyle, checkFillStyle, checkStrokeStyle, checkMarkColor, verticalAlign }, scale } = this.options;
|
|
15361
15497
|
const { metrics, checkbox } = row.elementList[index2];
|
|
15362
15498
|
if (verticalAlign === VerticalAlign.TOP || verticalAlign === VerticalAlign.MIDDLE) {
|
|
15363
15499
|
let nextIndex = index2 + 1;
|
|
@@ -15388,22 +15524,26 @@ class CheckboxParticle {
|
|
|
15388
15524
|
ctx.beginPath();
|
|
15389
15525
|
ctx.translate(0.5, 0.5);
|
|
15390
15526
|
if (checkbox == null ? void 0 : checkbox.value) {
|
|
15527
|
+
ctx.fillStyle = checkFillStyle;
|
|
15528
|
+
ctx.fillRect(left2, top, width, height);
|
|
15529
|
+
ctx.beginPath();
|
|
15391
15530
|
ctx.lineWidth = lineWidth;
|
|
15392
|
-
ctx.strokeStyle =
|
|
15531
|
+
ctx.strokeStyle = checkStrokeStyle;
|
|
15393
15532
|
ctx.rect(left2, top, width, height);
|
|
15394
15533
|
ctx.stroke();
|
|
15395
15534
|
ctx.beginPath();
|
|
15396
|
-
ctx.
|
|
15397
|
-
ctx.fillRect(left2, top, width, height);
|
|
15398
|
-
ctx.beginPath();
|
|
15399
|
-
ctx.strokeStyle = strokeStyle;
|
|
15535
|
+
ctx.strokeStyle = checkMarkColor;
|
|
15400
15536
|
ctx.lineWidth = lineWidth * 2 * scale;
|
|
15401
15537
|
ctx.moveTo(left2 + 2 * scale, top + height / 2);
|
|
15402
15538
|
ctx.lineTo(left2 + width / 2, top + height - 3 * scale);
|
|
15403
15539
|
ctx.lineTo(left2 + width - 2 * scale, top + 3 * scale);
|
|
15404
15540
|
ctx.stroke();
|
|
15405
15541
|
} else {
|
|
15542
|
+
ctx.fillStyle = fillStyle;
|
|
15543
|
+
ctx.fillRect(left2, top, width, height);
|
|
15544
|
+
ctx.beginPath();
|
|
15406
15545
|
ctx.lineWidth = lineWidth;
|
|
15546
|
+
ctx.strokeStyle = strokeStyle;
|
|
15407
15547
|
ctx.rect(left2, top, width, height);
|
|
15408
15548
|
ctx.stroke();
|
|
15409
15549
|
}
|
|
@@ -15509,7 +15649,7 @@ function WorkerWrapper$1() {
|
|
|
15509
15649
|
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
15510
15650
|
}
|
|
15511
15651
|
}
|
|
15512
|
-
const encodedJs = "KCgpPT57dmFyIFRlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxJZT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgQWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIG5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbGU9KFQsSSxkKT0+SSBpbiBUP1RlKFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxTPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlkZS5jYWxsKEksZCkmJmxlKFQsZCxJW2RdKTtpZihuZSlmb3IodmFyIGQgb2YgbmUoSSkpUmUuY2FsbChJLGQpJiZsZShULGQsSVtkXSk7cmV0dXJuIFR9LFg9KFQsSSk9PkllKFQsQWUoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5IQUxGPSJoYWxmIixlLk9ORV9USElSRD0ib25lLXRoaXJkIixlLlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24oZSl7ZS5BUkFCSUM9ImFyYWJpYyIsZS5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKGUpe2UuSU5MSU5FPSJpbmxpbmUiLGUuQkxPQ0s9ImJsb2NrIixlLlNVUlJPVU5EPSJzdXJyb3VuZCIsZS5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsZS5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciBfOyhmdW5jdGlvbihlKXtlLkJFRk9SRT0iYmVmb3JlIixlLkFGVEVSPSJhZnRlciIsZS5PVVRFUl9CRUZPUkU9Im91dGVyLWJlZm9yZSIsZS5PVVRFUl9BRlRFUj0ib3V0ZXItYWZ0ZXIifSkoX3x8KF89e30pKTt2YXIgTTsoZnVuY3Rpb24oZSl7ZS5ST1c9InJvdyIsZS5DT0xVTU49ImNvbHVtbiJ9KShNfHwoTT17fSkpO2NvbnN0IFA9Ilx1MjAwQiI7VC5IQUxGKyIiLDEvMixULk9ORV9USElSRCsiIiwxLzMsVC5RVUFSVEVSKyIiLDEvNDtmdW5jdGlvbiBiKGUpe2lmKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiIpcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBlO2xldCBzPXt9O3JldHVybiBBcnJheS5pc0FycmF5KGUpP3M9ZS5tYXAodT0+Yih1KSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaCh1PT57c1t1XT1iKGVbdV0pfSksc31mdW5jdGlvbiB3KGUscyl7Y29uc3QgdT17fTtmb3IoY29uc3QgQSBpbiBlKXMuaW5jbHVkZXMoQSkmJih1W0FdPWVbQV0pO3JldHVybiB1fWZ1bmN0aW9uIHJlKGUscyl7cmV0dXJuIGUubGVuZ3RoIT09cy5sZW5ndGg/ITE6IWUuc29tZSh1PT4hcy5pbmNsdWRlcyh1KSl9dmFyIGw7KGZ1bmN0aW9uKGUpe2UuVEVYVD0idGV4dCIsZS5JTUFHRT0iaW1hZ2UiLGUuVEFCTEU9InRhYmxlIixlLkhZUEVSTElOSz0iaHlwZXJsaW5rIixlLlNVUEVSU0NSSVBUPSJzdXBlcnNjcmlwdCIsZS5TVUJTQ1JJUFQ9InN1YnNjcmlwdCIsZS5TRVBBUkFUT1I9InNlcGFyYXRvciIsZS5QQUdFX0JSRUFLPSJwYWdlQnJlYWsiLGUuQ09OVFJPTD0iY29udHJvbCIsZS5BUkVBPSJhcmVhIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuTEFURVg9ImxhdGV4IixlLlRBQj0idGFiIixlLkRBVEU9ImRhdGUiLGUuQkxPQ0s9ImJsb2NrIixlLlRJVExFPSJ0aXRsZSIsZS5MSVNUPSJsaXN0IixlLkxBQkVMPSJsYWJlbCJ9KShsfHwobD17fSkpO2NvbnN0IG9lPVsicm93RmxleCIsInJvd01hcmdpbiJdLHNlPVsidHlwZSIsImZvbnQiLCJzaXplIiwiYm9sZCIsImNvbG9yIiwiaXRhbGljIiwiaGlnaGxpZ2h0IiwidW5kZXJsaW5lIiwic3RyaWtlb3V0Iiwicm93RmxleCIsInJvd01hcmdpbiIsImRhc2hBcnJheSIsInRyTGlzdCIsInRhYmxlVG9vbERpc2FibGVkIiwiYm9yZGVyVHlwZSIsImJvcmRlckNvbG9yIiwidHJhbnNsYXRlWCIsIndpZHRoIiwiaGVpZ2h0IiwidXJsIiwiY29sZ3JvdXAiLCJ2YWx1ZUxpc3QiLCJjb250cm9sIiwiY2hlY2tib3giLCJyYWRpbyIsImRhdGVGb3JtYXQiLCJibG9jayIsImxldmVsIiwidGl0bGUiLCJsaXN0VHlwZSIsImxpc3RTdHlsZSIsImxpc3RXcmFwIiwiZ3JvdXBJZHMiLCJjb25jZXB0SWQiLCJpbWdEaXNwbGF5IiwiaW1nRmxvYXRQb3NpdGlvbiIsImltZ1Rvb2xEaXNhYmxlZCIsImltZ1ByZXZpZXdEaXNhYmxlZCIsImltZ0Nyb3AiLCJpbWdDYXB0aW9uIiwidGV4dERlY29yYXRpb24iLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwiYXJlYUlkIiwiYXJlYSIsImhpZGUiLCJsYWJlbCIsImxhYmVsSWQiLCJsaW5lV2lkdGgiXSxjZT1bImNvbmNlcHRJZCIsImV4dGVuc2lvbiIsImV4dGVybmFsSWQiLCJ2ZXJ0aWNhbEFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyVHlwZXMiLCJzbGFzaFR5cGVzIiwiZGlzYWJsZWQiLCJkZWxldGFibGUiXSxFZT1bImZvbnQiLCJzaXplIiwiYm9sZCIsImhpZ2hsaWdodCIsIml0YWxpYyIsInN0cmlrZW91dCJdO2wuVEVYVCxsLkhZUEVSTElOSyxsLlNVQlNDUklQVCxsLlNVUEVSU0NSSVBULGwuQ09OVFJPTCxsLkRBVEUsbC5JTUFHRSxsLkxBVEVYLGwuQkxPQ0ssbC5QQUdFX0JSRUFLLGwuU0VQQVJBVE9SLGwuVEFCTEUsbC5USVRMRSxsLkxJU1Q7dmFyIE47KGZ1bmN0aW9uKGUpe2UuVUw9InVsIixlLk9MPSJvbCJ9KShOfHwoTj17fSkpO3ZhciBPOyhmdW5jdGlvbihlKXtlLkRJU0M9ImRpc2MiLGUuQ0lSQ0xFPSJjaXJjbGUiLGUuU1FVQVJFPSJzcXVhcmUiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94In0pKE98fChPPXt9KSk7dmFyIEg7KGZ1bmN0aW9uKGUpe2UuREVDSU1BTD0iZGVjaW1hbCJ9KShIfHwoSD17fSkpO3ZhciB2OyhmdW5jdGlvbihlKXtlW2UuRElTQz1PLkRJU0NdPSJESVNDIixlW2UuQ0lSQ0xFPU8uQ0lSQ0xFXT0iQ0lSQ0xFIixlW2UuU1FVQVJFPU8uU1FVQVJFXT0iU1FVQVJFIixlW2UuREVDSU1BTD1ILkRFQ0lNQUxdPSJERUNJTUFMIixlW2UuQ0hFQ0tCT1g9Ty5DSEVDS0JPWF09IkNIRUNLQk9YIn0pKHZ8fCh2PXt9KSksTy5ESVNDKyIiLE8uQ0lSQ0xFKyIiLE8uU1FVQVJFKyIiLE8uQ0hFQ0tCT1grIiIsTi5PTCsiIixOLlVMKyIiLHYuRElTQysiIix2LkNJUkNMRSsiIix2LlNRVUFSRSsiIix2LkRFQ0lNQUwrIiIsdi5DSEVDS0JPWCsiIjt2YXIgZjsoZnVuY3Rpb24oZSl7ZS5GSVJTVD0iZmlyc3QiLGUuU0VDT05EPSJzZWNvbmQiLGUuVEhJUkQ9InRoaXJkIixlLkZPVVJUSD0iZm91cnRoIixlLkZJRlRIPSJmaWZ0aCIsZS5TSVhUSD0ic2l4dGgifSkoZnx8KGY9e30pKSxmLkZJUlNUKyIiLGYuU0VDT05EKyIiLGYuVEhJUkQrIiIsZi5GT1VSVEgrIiIsZi5GSUZUSCsiIixmLlNJWFRIKyIiLGYuRklSU1QrIiIsZi5TRUNPTkQrIiIsZi5USElSRCsiIixmLkZPVVJUSCsiIixmLkZJRlRIKyIiLGYuU0lYVEgrIiIsZi5GSVJTVCxmLlNFQ09ORCxmLlRISVJELGYuRk9VUlRILGYuRklGVEgsZi5TSVhUSDt2YXIgSzsoZnVuY3Rpb24oZSl7ZS5JRlJBTUU9ImlmcmFtZSIsZS5WSURFTz0idmlkZW8ifSkoS3x8KEs9e30pKTt2YXIgRzsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLlNFTEVDVD0ic2VsZWN0IixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuREFURT0iZGF0ZSIsZS5OVU1CRVI9Im51bWJlciJ9KShHfHwoRz17fSkpO3ZhciBDOyhmdW5jdGlvbihlKXtlLlBSRUZJWD0icHJlZml4IixlLlBPU1RGSVg9InBvc3RmaXgiLGUuUFJFX1RFWFQ9InByZVRleHQiLGUuUE9TVF9URVhUPSJwb3N0VGV4dCIsZS5QTEFDRUhPTERFUj0icGxhY2Vob2xkZXIiLGUuVkFMVUU9InZhbHVlIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8ifSkoQ3x8KEM9e30pKTt2YXIgejsoZnVuY3Rpb24oZSl7ZS5ST1dfU1RBUlQ9InJvd1N0YXJ0IixlLlZBTFVFX1NUQVJUPSJ2YWx1ZVN0YXJ0In0pKHp8fCh6PXt9KSk7dmFyIFk7KGZ1bmN0aW9uKGUpe2UuQUNUSVZFPSJhY3RpdmUiLGUuSU5BQ1RJVkU9ImluYWN0aXZlIn0pKFl8fChZPXt9KSk7dmFyIFY7KGZ1bmN0aW9uKGUpe2UuTlVNQkVSPSJudW1iZXIiLGUuT1BFUkFUT1I9Im9wZXJhdG9yIixlLlVUSUxJVFk9InV0aWxpdHkiLGUuRVFVQUw9ImVxdWFsIn0pKFZ8fChWPXt9KSk7dmFyIFE7KGZ1bmN0aW9uKGUpe2UuQ09NUE9ORU5UPSJjb21wb25lbnQiLGUuTUVOVT0ibWVudSIsZS5NQUlOPSJtYWluIixlLkZPT1RFUj0iZm9vdGVyIixlLkNPTlRFWFRNRU5VPSJjb250ZXh0bWVudSIsZS5QT1BVUD0icG9wdXAiLGUuQ0FUQUxPRz0iY2F0YWxvZyIsZS5DT01NRU5UPSJjb21tZW50In0pKFF8fChRPXt9KSk7dmFyIFc7KGZ1bmN0aW9uKGUpe2UuUEFHRT0icGFnZSIsZS5UQUJMRT0idGFibGUifSkoV3x8KFc9e30pKTt2YXIgcTsoZnVuY3Rpb24oZSl7ZS5FRElUPSJlZGl0IixlLkNMRUFOPSJjbGVhbiIsZS5SRUFET05MWT0icmVhZG9ubHkiLGUuRk9STT0iZm9ybSIsZS5QUklOVD0icHJpbnQiLGUuREVTSUdOPSJkZXNpZ24iLGUuR1JBRkZJVEk9ImdyYWZmaXRpIn0pKHF8fChxPXt9KSk7dmFyIFo7KGZ1bmN0aW9uKGUpe2UuSEVBREVSPSJoZWFkZXIiLGUuTUFJTj0ibWFpbiIsZS5GT09URVI9ImZvb3RlciJ9KShafHwoWj17fSkpO3ZhciBKOyhmdW5jdGlvbihlKXtlLlBBR0lORz0icGFnaW5nIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoSnx8KEo9e30pKTt2YXIgajsoZnVuY3Rpb24oZSl7ZS5WRVJUSUNBTD0idmVydGljYWwiLGUuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCJ9KShqfHwoaj17fSkpO3ZhciAkOyhmdW5jdGlvbihlKXtlLkJSRUFLX0FMTD0iYnJlYWstYWxsIixlLkJSRUFLX1dPUkQ9ImJyZWFrLXdvcmQifSkoJHx8KCQ9e30pKTt2YXIgZWU7KGZ1bmN0aW9uKGUpe2UuU1BFRUQ9InNwZWVkIixlLkNPTVBBVElCSUxJVFk9ImNvbXBhdGliaWxpdHkifSkoZWV8fChlZT17fSkpO3ZhciBEOyhmdW5jdGlvbihlKXtlLkxFRlQ9ImxlZnQiLGUuQ0VOVEVSPSJjZW50ZXIiLGUuUklHSFQ9InJpZ2h0IixlLkFMSUdOTUVOVD0iYWxpZ25tZW50IixlLkpVU1RJRlk9Imp1c3RpZnkifSkoRHx8KEQ9e30pKTt2YXIgdGU7KGZ1bmN0aW9uKGUpe2UuQUxMPSJhbGwiLGUuRU1QVFk9ImVtcHR5IixlLkVYVEVSTkFMPSJleHRlcm5hbCIsZS5JTlRFUk5BTD0iaW50ZXJuYWwiLGUuREFTSD0iZGFzaCJ9KSh0ZXx8KHRlPXt9KSk7dmFyIGllOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLlJJR0hUPSJyaWdodCIsZS5CT1RUT009ImJvdHRvbSIsZS5MRUZUPSJsZWZ0In0pKGllfHwoaWU9e30pKTt2YXIgYWU7KGZ1bmN0aW9uKGUpe2UuRk9SV0FSRD0iZm9yd2FyZCIsZS5CQUNLPSJiYWNrIn0pKGFlfHwoYWU9e30pKTt2YXIgbTsoZnVuY3Rpb24oZSl7ZS5DT05UQUlOPSJjb250YWluIixlLkNPVkVSPSJjb3ZlciJ9KShtfHwobT17fSkpO3ZhciBrOyhmdW5jdGlvbihlKXtlLlJFUEVBVD0icmVwZWF0IixlLk5PX1JFUEVBVD0ibm8tcmVwZWF0IixlLlJFUEVBVF9YPSJyZXBlYXQteCIsZS5SRVBFQVRfWT0icmVwZWF0LXkifSkoa3x8KGs9e30pKSxtLkNPVkVSLGsuTk9fUkVQRUFUO3ZhciBGOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLk1JRERMRT0ibWlkZGxlIixlLkJPVFRPTT0iYm90dG9tIn0pKEZ8fChGPXt9KSksRi5CT1RUT00sVC5IQUxGLFQuSEFMRjtjb25zdCB1ZT17UEFHRV9OTzoie3BhZ2VOb30iLFBBR0VfQ09VTlQ6IntwYWdlQ291bnR9In07RC5DRU5URVIsdWUuUEFHRV9OTyxJLkFSQUJJQyxGLkJPVFRPTTt2YXIgVTsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLklNQUdFPSJpbWFnZSJ9KShVfHwoVT17fSkpLFUuVEVYVCxJLkFSQUJJQzt2YXIgeTsoZnVuY3Rpb24oZSl7ZS5QQUdFPSJwYWdlIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoeXx8KHk9e30pKSx5LkNPTlRJTlVJVFk7ZnVuY3Rpb24gZmUoZSxzKXtjb25zdCB1PU9iamVjdC5rZXlzKGUpLEE9T2JqZWN0LmtleXMocyk7aWYodS5sZW5ndGghPT1BLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IFI9MDtSPHUubGVuZ3RoO1IrKyl7Y29uc3QgYT11W1JdO2lmKGEhPT0idmFsdWUiJiYhKGE9PT0iZ3JvdXBJZHMiJiZBcnJheS5pc0FycmF5KGVbYV0pJiZBcnJheS5pc0FycmF5KHNbYV0pJiZyZShlW2FdLHNbYV0pKSYmZVthXSE9PXNbYV0pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQihlLHM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOnV9PXMsQT1bLi4uc2VdO3UmJkEucHVzaCguLi51KTtjb25zdCBSPXt2YWx1ZTplLnZhbHVlPT09UD9gCmA6ZS52YWx1ZX07cmV0dXJuIEEuZm9yRWFjaChhPT57Y29uc3QgcD1lW2FdO3AhPT12b2lkIDAmJihSW2FdPXApfSksUn1mdW5jdGlvbiBoKGUscz17fSl7Y29uc3R7ZXh0cmFQaWNrQXR0cnM6dSxpc0NsYXNzaWZ5QXJlYTpBPSExLGlzQ2xvbmU6Uj0hMH09cyxhPVI/YihlKTplLHA9W107bGV0IGk9MDtmb3IoO2k8YS5sZW5ndGg7KXtsZXQgdD1hW2ldO2lmKGk9PT0wJiZ0LnZhbHVlPT09UCYmIXQubGlzdElkJiYoIXQudHlwZXx8dC50eXBlPT09bC5URVhUKSl7aSsrO2NvbnRpbnVlfWlmKHQuYXJlYUlkKXtjb25zdCBuPXQuYXJlYUlkLEU9dC5hcmVhLGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbz1hW2ldO2lmKG4hPT1vLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmFyZWEsZGVsZXRlIG8uYXJlYUlkLGMucHVzaChvKSxpKyt9Y29uc3Qgcj1oKGMscyk7aWYoQSl7Y29uc3Qgbz17dHlwZTpsLkFSRUEsdmFsdWU6IiIsYXJlYUlkOm4sYXJlYTpFfTtvLnZhbHVlTGlzdD1yLHQ9b31lbHNle3Auc3BsaWNlKGksMCwuLi5yKTtjb250aW51ZX19ZWxzZSBpZih0LnRpdGxlSWQmJnQubGV2ZWwpe2NvbnN0IG49dC50aXRsZUlkO2lmKG4pe2NvbnN0IEU9dC5sZXZlbCxjPXt0eXBlOmwuVElUTEUsdGl0bGU6dC50aXRsZSx0aXRsZUlkOm4sdmFsdWU6IiIsbGV2ZWw6RX0scj1bXTtmb3IoO2k8YS5sZW5ndGg7KXtjb25zdCBvPWFbaV07aWYobiE9PW8udGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmxldmVsLGRlbGV0ZSBvLnRpdGxlLHIucHVzaChvKSxpKyt9Yy52YWx1ZUxpc3Q9aChyLHMpLHQ9Y319ZWxzZSBpZih0Lmxpc3RJZCYmdC5saXN0VHlwZSl7Y29uc3Qgbj10Lmxpc3RJZDtpZihuKXtjb25zdCBFPXQubGlzdFR5cGUsYz10Lmxpc3RTdHlsZSxyPXt0eXBlOmwuTElTVCx2YWx1ZToiIixsaXN0SWQ6bixsaXN0VHlwZTpFLGxpc3RTdHlsZTpjfSxvPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IEw9YVtpXTtpZihuIT09TC5saXN0SWQpe2ktLTticmVha31kZWxldGUgTC5saXN0VHlwZSxkZWxldGUgTC5saXN0U3R5bGUsby5wdXNoKEwpLGkrK31yLnZhbHVlTGlzdD1oKG8scyksdD1yfX1lbHNlIGlmKHQudHlwZT09PWwuVEFCTEUpe2lmKHQucGFnaW5nSWQpe2xldCBuPWkrMSxFPTA7Zm9yKDtuPGEubGVuZ3RoOyl7Y29uc3QgYz1hW25dO2lmKGMucGFnaW5nSWQ9PT10LnBhZ2luZ0lkKXQuaGVpZ2h0Kz1jLmhlaWdodCx0LnRyTGlzdC5wdXNoKC4uLmMudHJMaXN0KSxuKyssRSsrO2Vsc2UgYnJlYWt9aSs9RX1pZih0LnRyTGlzdClmb3IobGV0IG49MDtuPHQudHJMaXN0Lmxlbmd0aDtuKyspe2NvbnN0IEU9dC50ckxpc3Rbbl07ZGVsZXRlIEUuaWQ7Zm9yKGxldCBjPTA7YzxFLnRkTGlzdC5sZW5ndGg7YysrKXtjb25zdCByPUUudGRMaXN0W2NdLG89e2NvbHNwYW46ci5jb2xzcGFuLHJvd3NwYW46ci5yb3dzcGFuLHZhbHVlOmgoci52YWx1ZSxYKFMoe30scykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtjZS5mb3JFYWNoKEw9Pntjb25zdCBnPXJbTF07ZyE9PXZvaWQgMCYmKG9bTF09Zyl9KSxFLnRkTGlzdFtjXT1vfX19ZWxzZSBpZih0LnR5cGU9PT1sLkhZUEVSTElOSyl7Y29uc3Qgbj10Lmh5cGVybGlua0lkO2lmKG4pe2NvbnN0IEU9e3R5cGU6bC5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOnQudXJsfSxjPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IHI9YVtpXTtpZihuIT09ci5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIudXJsLGMucHVzaChyKSxpKyt9RS52YWx1ZUxpc3Q9aChjLHMpLHQ9RX19ZWxzZSBpZih0LnR5cGU9PT1sLkRBVEUpe2NvbnN0IG49dC5kYXRlSWQ7aWYobil7Y29uc3QgRT17dHlwZTpsLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDp0LmRhdGVGb3JtYXR9LGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgcj1hW2ldO2lmKG4hPT1yLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIuZGF0ZUZvcm1hdCxjLnB1c2gociksaSsrfUUudmFsdWVMaXN0PWgoYyxzKSx0PUV9fWVsc2UgaWYodC5jb250cm9sSWQpe2NvbnN0IG49dC5jb250cm9sSWQ7aWYodC5jb250cm9sQ29tcG9uZW50PT09Qy5QUkVGSVgpe2NvbnN0IEU9W107bGV0IGM9ITEscj1pO2Zvcig7cjxhLmxlbmd0aDspe2NvbnN0IG89YVtyXTtpZihuIT09by5jb250cm9sSWQpYnJlYWs7by5jb250cm9sQ29tcG9uZW50PT09Qy5WQUxVRSYmKGRlbGV0ZSBvLmNvbnRyb2wsZGVsZXRlIG8uY29udHJvbElkLEUucHVzaChvKSksby5jb250cm9sQ29tcG9uZW50PT09Qy5QT1NURklYJiYoYz0hMCkscisrfWlmKGMpe2NvbnN0IG89dyh0LEVlKSxMPVMoUyh7fSx0LmNvbnRyb2wpLG8pLGc9WChTKHt9LHcodCxvZSkpLHt0eXBlOmwuQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkwsY29udHJvbElkOm59KTtnLmNvbnRyb2wudmFsdWU9aChFLHMpLHQ9QihnLHtleHRyYVBpY2tBdHRyczp1fSksaSs9ci1pLTF9fWlmKHQuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSB0LmNvbnRyb2wsZGVsZXRlIHQuY29udHJvbElkLHQuY29udHJvbENvbXBvbmVudCE9PUMuVkFMVUUmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUFJFX1RFWFQmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCB4PUIodCx7ZXh0cmFQaWNrQXR0cnM6dX0pO2lmKCF0LnR5cGV8fHQudHlwZT09PWwuVEVYVHx8dC50eXBlPT09bC5TVUJTQ1JJUFR8fHQudHlwZT09PWwuU1VQRVJTQ1JJUFQpZm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbj1hW2krMV07aWYoaSsrLG4mJmZlKHgsQihuLHtleHRyYVBpY2tBdHRyczp1fSkpKXtjb25zdCBFPW4udmFsdWU9PT1QP2AKYDpuLnZhbHVlO3gudmFsdWUrPUV9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goeCl9cmV0dXJuIHB9b25tZXNzYWdlPWU9Pntjb25zdCBzPWUuZGF0YSx7b3B0aW9uczp1LGRhdGE6QX09cyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09dXx8e30sYT17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
|
|
15652
|
+
const encodedJs = "KCgpPT57dmFyIFRlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxJZT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgQWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIGxlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbmU9KFQsSSxkKT0+SSBpbiBUP1RlKFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxnPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlkZS5jYWxsKEksZCkmJm5lKFQsZCxJW2RdKTtpZihsZSlmb3IodmFyIGQgb2YgbGUoSSkpUmUuY2FsbChJLGQpJiZuZShULGQsSVtkXSk7cmV0dXJuIFR9LFg9KFQsSSk9PkllKFQsQWUoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5IQUxGPSJoYWxmIixlLk9ORV9USElSRD0ib25lLXRoaXJkIixlLlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24oZSl7ZS5BUkFCSUM9ImFyYWJpYyIsZS5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKGUpe2UuSU5MSU5FPSJpbmxpbmUiLGUuQkxPQ0s9ImJsb2NrIixlLlNVUlJPVU5EPSJzdXJyb3VuZCIsZS5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsZS5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciBfOyhmdW5jdGlvbihlKXtlLkJFRk9SRT0iYmVmb3JlIixlLkFGVEVSPSJhZnRlciIsZS5PVVRFUl9CRUZPUkU9Im91dGVyLWJlZm9yZSIsZS5PVVRFUl9BRlRFUj0ib3V0ZXItYWZ0ZXIifSkoX3x8KF89e30pKTt2YXIgTTsoZnVuY3Rpb24oZSl7ZS5ST1c9InJvdyIsZS5DT0xVTU49ImNvbHVtbiJ9KShNfHwoTT17fSkpO2NvbnN0IFA9Ilx1MjAwQiI7VC5IQUxGKyIiLDEvMixULk9ORV9USElSRCsiIiwxLzMsVC5RVUFSVEVSKyIiLDEvNDtmdW5jdGlvbiBiKGUpe2lmKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiIpcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBlO2xldCBjPXt9O3JldHVybiBBcnJheS5pc0FycmF5KGUpP2M9ZS5tYXAoRT0+YihFKSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaChFPT57Y1tFXT1iKGVbRV0pfSksY31mdW5jdGlvbiB3KGUsYyl7Y29uc3QgRT17fTtmb3IoY29uc3QgQSBpbiBlKWMuaW5jbHVkZXMoQSkmJihFW0FdPWVbQV0pO3JldHVybiBFfWZ1bmN0aW9uIHJlKGUsYyl7cmV0dXJuIGUubGVuZ3RoIT09Yy5sZW5ndGg/ITE6IWUuc29tZShFPT4hYy5pbmNsdWRlcyhFKSl9dmFyIG47KGZ1bmN0aW9uKGUpe2UuVEVYVD0idGV4dCIsZS5JTUFHRT0iaW1hZ2UiLGUuVEFCTEU9InRhYmxlIixlLkhZUEVSTElOSz0iaHlwZXJsaW5rIixlLlNVUEVSU0NSSVBUPSJzdXBlcnNjcmlwdCIsZS5TVUJTQ1JJUFQ9InN1YnNjcmlwdCIsZS5TRVBBUkFUT1I9InNlcGFyYXRvciIsZS5QQUdFX0JSRUFLPSJwYWdlQnJlYWsiLGUuQ09OVFJPTD0iY29udHJvbCIsZS5BUkVBPSJhcmVhIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuTEFURVg9ImxhdGV4IixlLlRBQj0idGFiIixlLkRBVEU9ImRhdGUiLGUuQkxPQ0s9ImJsb2NrIixlLlRJVExFPSJ0aXRsZSIsZS5MSVNUPSJsaXN0IixlLkxBQkVMPSJsYWJlbCJ9KShufHwobj17fSkpO2NvbnN0IG9lPVsicm93RmxleCIsInJvd01hcmdpbiJdLGNlPVsidHlwZSIsImZvbnQiLCJzaXplIiwiYm9sZCIsImNvbG9yIiwiaXRhbGljIiwiaGlnaGxpZ2h0IiwidW5kZXJsaW5lIiwic3RyaWtlb3V0Iiwicm93RmxleCIsInJvd01hcmdpbiIsImRhc2hBcnJheSIsInRyTGlzdCIsInRhYmxlVG9vbERpc2FibGVkIiwiYm9yZGVyVHlwZSIsImJvcmRlckNvbG9yIiwidHJhbnNsYXRlWCIsIndpZHRoIiwiaGVpZ2h0IiwidXJsIiwiY29sZ3JvdXAiLCJ2YWx1ZUxpc3QiLCJjb250cm9sIiwiY2hlY2tib3giLCJyYWRpbyIsImRhdGVGb3JtYXQiLCJibG9jayIsImxldmVsIiwidGl0bGUiLCJsaXN0VHlwZSIsImxpc3RTdHlsZSIsImxpc3RXcmFwIiwiZ3JvdXBJZHMiLCJjb25jZXB0SWQiLCJpbWdEaXNwbGF5IiwiaW1nRmxvYXRQb3NpdGlvbiIsImltZ1Rvb2xEaXNhYmxlZCIsImltZ1ByZXZpZXdEaXNhYmxlZCIsImltZ0Nyb3AiLCJpbWdDYXB0aW9uIiwidGV4dERlY29yYXRpb24iLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwiYXJlYUlkIiwiYXJlYSIsImhpZGUiLCJsYWJlbCIsImxhYmVsSWQiLCJsaW5lV2lkdGgiXSxzZT1bImNvbmNlcHRJZCIsImV4dGVuc2lvbiIsImV4dGVybmFsSWQiLCJ2ZXJ0aWNhbEFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyVHlwZXMiLCJzbGFzaFR5cGVzIiwiZGlzYWJsZWQiLCJkZWxldGFibGUiXSxmZT1bImZvbnQiLCJzaXplIiwiYm9sZCIsImhpZ2hsaWdodCIsIml0YWxpYyIsInN0cmlrZW91dCJdO24uVEVYVCxuLkhZUEVSTElOSyxuLlNVQlNDUklQVCxuLlNVUEVSU0NSSVBULG4uQ09OVFJPTCxuLkRBVEUsbi5JTUFHRSxuLkxBVEVYLG4uQkxPQ0ssbi5QQUdFX0JSRUFLLG4uU0VQQVJBVE9SLG4uVEFCTEUsbi5USVRMRSxuLkxJU1Q7dmFyIE47KGZ1bmN0aW9uKGUpe2UuVUw9InVsIixlLk9MPSJvbCJ9KShOfHwoTj17fSkpO3ZhciBPOyhmdW5jdGlvbihlKXtlLkRJU0M9ImRpc2MiLGUuQ0lSQ0xFPSJjaXJjbGUiLGUuU1FVQVJFPSJzcXVhcmUiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94In0pKE98fChPPXt9KSk7dmFyIEg7KGZ1bmN0aW9uKGUpe2UuREVDSU1BTD0iZGVjaW1hbCJ9KShIfHwoSD17fSkpO3ZhciB2OyhmdW5jdGlvbihlKXtlW2UuRElTQz1PLkRJU0NdPSJESVNDIixlW2UuQ0lSQ0xFPU8uQ0lSQ0xFXT0iQ0lSQ0xFIixlW2UuU1FVQVJFPU8uU1FVQVJFXT0iU1FVQVJFIixlW2UuREVDSU1BTD1ILkRFQ0lNQUxdPSJERUNJTUFMIixlW2UuQ0hFQ0tCT1g9Ty5DSEVDS0JPWF09IkNIRUNLQk9YIn0pKHZ8fCh2PXt9KSksTy5ESVNDKyIiLE8uQ0lSQ0xFKyIiLE8uU1FVQVJFKyIiLE8uQ0hFQ0tCT1grIiIsTi5PTCsiIixOLlVMKyIiLHYuRElTQysiIix2LkNJUkNMRSsiIix2LlNRVUFSRSsiIix2LkRFQ0lNQUwrIiIsdi5DSEVDS0JPWCsiIjt2YXIgdTsoZnVuY3Rpb24oZSl7ZS5GSVJTVD0iZmlyc3QiLGUuU0VDT05EPSJzZWNvbmQiLGUuVEhJUkQ9InRoaXJkIixlLkZPVVJUSD0iZm91cnRoIixlLkZJRlRIPSJmaWZ0aCIsZS5TSVhUSD0ic2l4dGgifSkodXx8KHU9e30pKSx1LkZJUlNUKyIiLHUuU0VDT05EKyIiLHUuVEhJUkQrIiIsdS5GT1VSVEgrIiIsdS5GSUZUSCsiIix1LlNJWFRIKyIiLHUuRklSU1QrIiIsdS5TRUNPTkQrIiIsdS5USElSRCsiIix1LkZPVVJUSCsiIix1LkZJRlRIKyIiLHUuU0lYVEgrIiIsdS5GSVJTVCx1LlNFQ09ORCx1LlRISVJELHUuRk9VUlRILHUuRklGVEgsdS5TSVhUSDt2YXIgSzsoZnVuY3Rpb24oZSl7ZS5JRlJBTUU9ImlmcmFtZSIsZS5WSURFTz0idmlkZW8ifSkoS3x8KEs9e30pKTt2YXIgRzsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLlNFTEVDVD0ic2VsZWN0IixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuREFURT0iZGF0ZSIsZS5OVU1CRVI9Im51bWJlciJ9KShHfHwoRz17fSkpO3ZhciBDOyhmdW5jdGlvbihlKXtlLlBSRUZJWD0icHJlZml4IixlLlBPU1RGSVg9InBvc3RmaXgiLGUuUFJFX1RFWFQ9InByZVRleHQiLGUuUE9TVF9URVhUPSJwb3N0VGV4dCIsZS5QTEFDRUhPTERFUj0icGxhY2Vob2xkZXIiLGUuVkFMVUU9InZhbHVlIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8ifSkoQ3x8KEM9e30pKTt2YXIgejsoZnVuY3Rpb24oZSl7ZS5ST1dfU1RBUlQ9InJvd1N0YXJ0IixlLlZBTFVFX1NUQVJUPSJ2YWx1ZVN0YXJ0In0pKHp8fCh6PXt9KSk7dmFyIFk7KGZ1bmN0aW9uKGUpe2UuQUNUSVZFPSJhY3RpdmUiLGUuSU5BQ1RJVkU9ImluYWN0aXZlIn0pKFl8fChZPXt9KSk7dmFyIFY7KGZ1bmN0aW9uKGUpe2UuTlVNQkVSPSJudW1iZXIiLGUuT1BFUkFUT1I9Im9wZXJhdG9yIixlLlVUSUxJVFk9InV0aWxpdHkiLGUuRVFVQUw9ImVxdWFsIn0pKFZ8fChWPXt9KSk7dmFyIFE7KGZ1bmN0aW9uKGUpe2UuQ09NUE9ORU5UPSJjb21wb25lbnQiLGUuTUVOVT0ibWVudSIsZS5NQUlOPSJtYWluIixlLkZPT1RFUj0iZm9vdGVyIixlLkNPTlRFWFRNRU5VPSJjb250ZXh0bWVudSIsZS5QT1BVUD0icG9wdXAiLGUuQ0FUQUxPRz0iY2F0YWxvZyIsZS5DT01NRU5UPSJjb21tZW50In0pKFF8fChRPXt9KSk7dmFyIFc7KGZ1bmN0aW9uKGUpe2UuUEFHRT0icGFnZSIsZS5UQUJMRT0idGFibGUifSkoV3x8KFc9e30pKTt2YXIgcTsoZnVuY3Rpb24oZSl7ZS5FRElUPSJlZGl0IixlLkNMRUFOPSJjbGVhbiIsZS5SRUFET05MWT0icmVhZG9ubHkiLGUuRk9STT0iZm9ybSIsZS5QUklOVD0icHJpbnQiLGUuREVTSUdOPSJkZXNpZ24iLGUuR1JBRkZJVEk9ImdyYWZmaXRpIn0pKHF8fChxPXt9KSk7dmFyIFo7KGZ1bmN0aW9uKGUpe2UuSEVBREVSPSJoZWFkZXIiLGUuTUFJTj0ibWFpbiIsZS5GT09URVI9ImZvb3RlciJ9KShafHwoWj17fSkpO3ZhciBKOyhmdW5jdGlvbihlKXtlLlBBR0lORz0icGFnaW5nIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoSnx8KEo9e30pKTt2YXIgajsoZnVuY3Rpb24oZSl7ZS5WRVJUSUNBTD0idmVydGljYWwiLGUuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCJ9KShqfHwoaj17fSkpO3ZhciAkOyhmdW5jdGlvbihlKXtlLkJSRUFLX0FMTD0iYnJlYWstYWxsIixlLkJSRUFLX1dPUkQ9ImJyZWFrLXdvcmQifSkoJHx8KCQ9e30pKTt2YXIgZWU7KGZ1bmN0aW9uKGUpe2UuU1BFRUQ9InNwZWVkIixlLkNPTVBBVElCSUxJVFk9ImNvbXBhdGliaWxpdHkifSkoZWV8fChlZT17fSkpO3ZhciBEOyhmdW5jdGlvbihlKXtlLkxFRlQ9ImxlZnQiLGUuQ0VOVEVSPSJjZW50ZXIiLGUuUklHSFQ9InJpZ2h0IixlLkFMSUdOTUVOVD0iYWxpZ25tZW50IixlLkpVU1RJRlk9Imp1c3RpZnkifSkoRHx8KEQ9e30pKTt2YXIgdGU7KGZ1bmN0aW9uKGUpe2UuQUxMPSJhbGwiLGUuRU1QVFk9ImVtcHR5IixlLkVYVEVSTkFMPSJleHRlcm5hbCIsZS5JTlRFUk5BTD0iaW50ZXJuYWwiLGUuREFTSD0iZGFzaCJ9KSh0ZXx8KHRlPXt9KSk7dmFyIGllOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLlJJR0hUPSJyaWdodCIsZS5CT1RUT009ImJvdHRvbSIsZS5MRUZUPSJsZWZ0In0pKGllfHwoaWU9e30pKTt2YXIgYWU7KGZ1bmN0aW9uKGUpe2UuRk9SV0FSRD0iZm9yd2FyZCIsZS5CQUNLPSJiYWNrIn0pKGFlfHwoYWU9e30pKTt2YXIgazsoZnVuY3Rpb24oZSl7ZS5DT05UQUlOPSJjb250YWluIixlLkNPVkVSPSJjb3ZlciJ9KShrfHwoaz17fSkpO3ZhciBtOyhmdW5jdGlvbihlKXtlLlJFUEVBVD0icmVwZWF0IixlLk5PX1JFUEVBVD0ibm8tcmVwZWF0IixlLlJFUEVBVF9YPSJyZXBlYXQteCIsZS5SRVBFQVRfWT0icmVwZWF0LXkifSkobXx8KG09e30pKSxrLkNPVkVSLG0uTk9fUkVQRUFUO3ZhciBGOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLk1JRERMRT0ibWlkZGxlIixlLkJPVFRPTT0iYm90dG9tIn0pKEZ8fChGPXt9KSksRi5CT1RUT00sVC5IQUxGLFQuSEFMRjtjb25zdCBFZT17UEFHRV9OTzoie3BhZ2VOb30iLFBBR0VfQ09VTlQ6IntwYWdlQ291bnR9In07RC5DRU5URVIsRWUuUEFHRV9OTyxJLkFSQUJJQyxGLkJPVFRPTTt2YXIgeTsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLklNQUdFPSJpbWFnZSJ9KSh5fHwoeT17fSkpLHkuVEVYVCxJLkFSQUJJQzt2YXIgVTsoZnVuY3Rpb24oZSl7ZS5QQUdFPSJwYWdlIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoVXx8KFU9e30pKSxVLkNPTlRJTlVJVFk7ZnVuY3Rpb24gdWUoZSxjKXtjb25zdCBFPU9iamVjdC5rZXlzKGUpLEE9T2JqZWN0LmtleXMoYyk7aWYoRS5sZW5ndGghPT1BLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IFI9MDtSPEUubGVuZ3RoO1IrKyl7Y29uc3QgYT1FW1JdO2lmKGEhPT0idmFsdWUiJiYhKGE9PT0iZ3JvdXBJZHMiJiZBcnJheS5pc0FycmF5KGVbYV0pJiZBcnJheS5pc0FycmF5KGNbYV0pJiZyZShlW2FdLGNbYV0pKSYmZVthXSE9PWNbYV0pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQihlLGM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOkV9PWMsQT1bLi4uY2VdO0UmJkEucHVzaCguLi5FKTtjb25zdCBSPXt2YWx1ZTplLnZhbHVlPT09UD9gCmA6ZS52YWx1ZX07cmV0dXJuIEEuZm9yRWFjaChhPT57Y29uc3QgcD1lW2FdO3AhPT12b2lkIDAmJihSW2FdPXApfSksUn1mdW5jdGlvbiBoKGUsYz17fSl7Y29uc3R7ZXh0cmFQaWNrQXR0cnM6RSxpc0NsYXNzaWZ5QXJlYTpBPSExLGlzQ2xvbmU6Uj0hMH09YyxhPVI/YihlKTplLHA9W107bGV0IGk9MDtmb3IoO2k8YS5sZW5ndGg7KXtsZXQgdD1hW2ldO2lmKGk9PT0wJiZ0LnZhbHVlPT09UCYmIXQubGlzdElkJiYoIXQudHlwZXx8dC50eXBlPT09bi5URVhUKSl7aSsrO2NvbnRpbnVlfWlmKHQuYXJlYUlkKXtjb25zdCBsPXQuYXJlYUlkLGY9dC5hcmVhLHM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbz1hW2ldO2lmKGwhPT1vLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmFyZWEsZGVsZXRlIG8uYXJlYUlkLHMucHVzaChvKSxpKyt9Y29uc3Qgcj1oKHMsYyk7aWYoQSl7Y29uc3Qgbz17dHlwZTpuLkFSRUEsdmFsdWU6IiIsYXJlYUlkOmwsYXJlYTpmfTtvLnZhbHVlTGlzdD1yLHQ9b31lbHNle3Auc3BsaWNlKGksMCwuLi5yKTtjb250aW51ZX19ZWxzZSBpZih0LnRpdGxlSWQmJnQubGV2ZWwpe2NvbnN0IGw9dC50aXRsZUlkO2lmKGwpe2NvbnN0IGY9dC5sZXZlbCxzPXt0eXBlOm4uVElUTEUsdGl0bGU6dC50aXRsZSx0aXRsZUlkOmwsdmFsdWU6IiIsbGV2ZWw6Zn0scj1bXTtmb3IoO2k8YS5sZW5ndGg7KXtjb25zdCBvPWFbaV07aWYobCE9PW8udGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmxldmVsLGRlbGV0ZSBvLnRpdGxlLHIucHVzaChvKSxpKyt9cy52YWx1ZUxpc3Q9aChyLGMpLHQ9c319ZWxzZSBpZih0Lmxpc3RJZCYmdC5saXN0VHlwZSl7Y29uc3QgbD10Lmxpc3RJZDtpZihsKXtjb25zdCBmPXQubGlzdFR5cGUscz10Lmxpc3RTdHlsZSxyPXt0eXBlOm4uTElTVCx2YWx1ZToiIixsaXN0SWQ6bCxsaXN0VHlwZTpmLGxpc3RTdHlsZTpzfSxvPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IEw9YVtpXTtpZihsIT09TC5saXN0SWQpe2ktLTticmVha31kZWxldGUgTC5saXN0VHlwZSxkZWxldGUgTC5saXN0U3R5bGUsby5wdXNoKEwpLGkrK31yLnZhbHVlTGlzdD1oKG8sYyksdD1yfX1lbHNlIGlmKHQudHlwZT09PW4uVEFCTEUpe2lmKHQucGFnaW5nSWQpe2xldCBsPWkrMSxmPTA7Zm9yKDtsPGEubGVuZ3RoOyl7Y29uc3Qgcz1hW2xdO2lmKHMucGFnaW5nSWQ9PT10LnBhZ2luZ0lkKXQuaGVpZ2h0Kz1zLmhlaWdodCx0LnRyTGlzdC5wdXNoKC4uLnMudHJMaXN0KSxsKyssZisrO2Vsc2UgYnJlYWt9aSs9Zn1pZih0LnRyTGlzdClmb3IobGV0IGw9MDtsPHQudHJMaXN0Lmxlbmd0aDtsKyspe2NvbnN0IGY9dC50ckxpc3RbbF07ZGVsZXRlIGYuaWQ7Zm9yKGxldCBzPTA7czxmLnRkTGlzdC5sZW5ndGg7cysrKXtjb25zdCByPWYudGRMaXN0W3NdLG89e2NvbHNwYW46ci5jb2xzcGFuLHJvd3NwYW46ci5yb3dzcGFuLHZhbHVlOmgoci52YWx1ZSxYKGcoe30sYykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtzZS5mb3JFYWNoKEw9Pntjb25zdCBTPXJbTF07UyE9PXZvaWQgMCYmKG9bTF09Uyl9KSxmLnRkTGlzdFtzXT1vfX19ZWxzZSBpZih0LnR5cGU9PT1uLkhZUEVSTElOSyl7Y29uc3QgbD10Lmh5cGVybGlua0lkO2lmKGwpe2NvbnN0IGY9e3R5cGU6bi5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOnQudXJsfSxzPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IHI9YVtpXTtpZihsIT09ci5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIudXJsLHMucHVzaChyKSxpKyt9Zi52YWx1ZUxpc3Q9aChzLGMpLHQ9Zn19ZWxzZSBpZih0LnR5cGU9PT1uLkRBVEUpe2NvbnN0IGw9dC5kYXRlSWQ7aWYobCl7Y29uc3QgZj17dHlwZTpuLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDp0LmRhdGVGb3JtYXR9LHM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgcj1hW2ldO2lmKGwhPT1yLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIuZGF0ZUZvcm1hdCxzLnB1c2gociksaSsrfWYudmFsdWVMaXN0PWgocyxjKSx0PWZ9fWVsc2UgaWYodC5jb250cm9sSWQpe2NvbnN0IGw9dC5jb250cm9sSWQ7aWYodC5jb250cm9sQ29tcG9uZW50PT09Qy5QUkVGSVgpe2NvbnN0IGY9W107bGV0IHM9ITEscj1pO2Zvcig7cjxhLmxlbmd0aDspe2NvbnN0IG89YVtyXTtpZihsIT09by5jb250cm9sSWQpYnJlYWs7by5jb250cm9sQ29tcG9uZW50PT09Qy5WQUxVRSYmKGRlbGV0ZSBvLmNvbnRyb2wsZGVsZXRlIG8uY29udHJvbElkLGYucHVzaChvKSksby5jb250cm9sQ29tcG9uZW50PT09Qy5QT1NURklYJiYocz0hMCkscisrfWlmKHMpe2NvbnN0IG89dyh0LGZlKSxMPWcoZyh7fSx0LmNvbnRyb2wpLG8pLFM9WChnKHt9LHcodCxvZSkpLHt0eXBlOm4uQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkwsY29udHJvbElkOmx9KTtTLmNvbnRyb2wudmFsdWU9aChmLGMpLHQ9QihTLHtleHRyYVBpY2tBdHRyczpFfSksaSs9ci1pLTF9fWlmKHQuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSB0LmNvbnRyb2wsZGVsZXRlIHQuY29udHJvbElkLHQuY29udHJvbENvbXBvbmVudCE9PUMuVkFMVUUmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUFJFX1RFWFQmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCB4PUIodCx7ZXh0cmFQaWNrQXR0cnM6RX0pO2lmKCF0LnR5cGV8fHQudHlwZT09PW4uVEVYVHx8dC50eXBlPT09bi5TVUJTQ1JJUFR8fHQudHlwZT09PW4uU1VQRVJTQ1JJUFQpZm9yKDtpPGEubGVuZ3RoOyl7Y29uc3QgbD1hW2krMV07aWYoaSsrLGwmJnVlKHgsQihsLHtleHRyYVBpY2tBdHRyczpFfSkpKXtjb25zdCBmPWwudmFsdWU9PT1QP2AKYDpsLnZhbHVlO3gudmFsdWUrPWZ9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goeCl9cmV0dXJuIHB9b25tZXNzYWdlPWU9Pntjb25zdCBjPWUuZGF0YSx7b3B0aW9uczpFLGRhdGE6QX09Yyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09RXx8e30sYT17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
|
|
15513
15653
|
const blob = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
15514
15654
|
function WorkerWrapper() {
|
|
15515
15655
|
const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
@@ -21311,6 +21451,17 @@ class Command {
|
|
|
21311
21451
|
this.executeJumpControl = adapt.jumpControl.bind(adapt);
|
|
21312
21452
|
}
|
|
21313
21453
|
}
|
|
21454
|
+
function getParagraphNo(elementList, index2) {
|
|
21455
|
+
let paragraphNo = 0;
|
|
21456
|
+
for (let i = 1; i < index2; i++) {
|
|
21457
|
+
const curElement = elementList[i];
|
|
21458
|
+
const preElement = elementList[i - 1];
|
|
21459
|
+
if (curElement.value === ZERO && !curElement.listWrap && !curElement.listId || curElement.listId !== (preElement == null ? void 0 : preElement.listId) && preElement.value !== ZERO || curElement.titleId !== (preElement == null ? void 0 : preElement.titleId) && preElement.value !== ZERO) {
|
|
21460
|
+
paragraphNo++;
|
|
21461
|
+
}
|
|
21462
|
+
}
|
|
21463
|
+
return paragraphNo;
|
|
21464
|
+
}
|
|
21314
21465
|
function convertPxToPaperSize(width, height) {
|
|
21315
21466
|
if (width === 1125 && height === 1593) {
|
|
21316
21467
|
return {
|
|
@@ -22746,6 +22897,8 @@ class CommandAdapt {
|
|
|
22746
22897
|
}
|
|
22747
22898
|
start--;
|
|
22748
22899
|
}
|
|
22900
|
+
const startParagraphNo = getParagraphNo(elementList, startIndex);
|
|
22901
|
+
const endParagraphNo = startIndex === endIndex ? startParagraphNo : getParagraphNo(elementList, endIndex);
|
|
22749
22902
|
return deepClone({
|
|
22750
22903
|
isCollapsed,
|
|
22751
22904
|
startElement,
|
|
@@ -22765,7 +22918,9 @@ class CommandAdapt {
|
|
|
22765
22918
|
selectionText,
|
|
22766
22919
|
selectionElementList,
|
|
22767
22920
|
titleId,
|
|
22768
|
-
titleStartPageNo
|
|
22921
|
+
titleStartPageNo,
|
|
22922
|
+
startParagraphNo,
|
|
22923
|
+
endParagraphNo
|
|
22769
22924
|
});
|
|
22770
22925
|
}
|
|
22771
22926
|
getRangeRow() {
|
|
@@ -24710,6 +24865,7 @@ class EventBus {
|
|
|
24710
24865
|
class Override {
|
|
24711
24866
|
constructor() {
|
|
24712
24867
|
__publicField(this, "paste");
|
|
24868
|
+
__publicField(this, "pasteImage");
|
|
24713
24869
|
__publicField(this, "copy");
|
|
24714
24870
|
__publicField(this, "drop");
|
|
24715
24871
|
}
|