@hufe921/canvas-editor 0.9.126 → 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 +37 -0
- package/README.md +1 -0
- package/dist/canvas-editor.es.js +199 -195
- 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/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";
|
|
@@ -463,163 +463,6 @@ function scrollIntoView(container, selected) {
|
|
|
463
463
|
container.scrollTop = bottom - container.clientHeight;
|
|
464
464
|
}
|
|
465
465
|
}
|
|
466
|
-
var browser = { exports: {} };
|
|
467
|
-
var process = browser.exports = {};
|
|
468
|
-
var cachedSetTimeout;
|
|
469
|
-
var cachedClearTimeout;
|
|
470
|
-
function defaultSetTimout() {
|
|
471
|
-
throw new Error("setTimeout has not been defined");
|
|
472
|
-
}
|
|
473
|
-
function defaultClearTimeout() {
|
|
474
|
-
throw new Error("clearTimeout has not been defined");
|
|
475
|
-
}
|
|
476
|
-
(function() {
|
|
477
|
-
try {
|
|
478
|
-
if (typeof setTimeout === "function") {
|
|
479
|
-
cachedSetTimeout = setTimeout;
|
|
480
|
-
} else {
|
|
481
|
-
cachedSetTimeout = defaultSetTimout;
|
|
482
|
-
}
|
|
483
|
-
} catch (e) {
|
|
484
|
-
cachedSetTimeout = defaultSetTimout;
|
|
485
|
-
}
|
|
486
|
-
try {
|
|
487
|
-
if (typeof clearTimeout === "function") {
|
|
488
|
-
cachedClearTimeout = clearTimeout;
|
|
489
|
-
} else {
|
|
490
|
-
cachedClearTimeout = defaultClearTimeout;
|
|
491
|
-
}
|
|
492
|
-
} catch (e) {
|
|
493
|
-
cachedClearTimeout = defaultClearTimeout;
|
|
494
|
-
}
|
|
495
|
-
})();
|
|
496
|
-
function runTimeout(fun) {
|
|
497
|
-
if (cachedSetTimeout === setTimeout) {
|
|
498
|
-
return setTimeout(fun, 0);
|
|
499
|
-
}
|
|
500
|
-
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
501
|
-
cachedSetTimeout = setTimeout;
|
|
502
|
-
return setTimeout(fun, 0);
|
|
503
|
-
}
|
|
504
|
-
try {
|
|
505
|
-
return cachedSetTimeout(fun, 0);
|
|
506
|
-
} catch (e) {
|
|
507
|
-
try {
|
|
508
|
-
return cachedSetTimeout.call(null, fun, 0);
|
|
509
|
-
} catch (e2) {
|
|
510
|
-
return cachedSetTimeout.call(this, fun, 0);
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
function runClearTimeout(marker) {
|
|
515
|
-
if (cachedClearTimeout === clearTimeout) {
|
|
516
|
-
return clearTimeout(marker);
|
|
517
|
-
}
|
|
518
|
-
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
519
|
-
cachedClearTimeout = clearTimeout;
|
|
520
|
-
return clearTimeout(marker);
|
|
521
|
-
}
|
|
522
|
-
try {
|
|
523
|
-
return cachedClearTimeout(marker);
|
|
524
|
-
} catch (e) {
|
|
525
|
-
try {
|
|
526
|
-
return cachedClearTimeout.call(null, marker);
|
|
527
|
-
} catch (e2) {
|
|
528
|
-
return cachedClearTimeout.call(this, marker);
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
var queue = [];
|
|
533
|
-
var draining = false;
|
|
534
|
-
var currentQueue;
|
|
535
|
-
var queueIndex = -1;
|
|
536
|
-
function cleanUpNextTick() {
|
|
537
|
-
if (!draining || !currentQueue) {
|
|
538
|
-
return;
|
|
539
|
-
}
|
|
540
|
-
draining = false;
|
|
541
|
-
if (currentQueue.length) {
|
|
542
|
-
queue = currentQueue.concat(queue);
|
|
543
|
-
} else {
|
|
544
|
-
queueIndex = -1;
|
|
545
|
-
}
|
|
546
|
-
if (queue.length) {
|
|
547
|
-
drainQueue();
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
function drainQueue() {
|
|
551
|
-
if (draining) {
|
|
552
|
-
return;
|
|
553
|
-
}
|
|
554
|
-
var timeout = runTimeout(cleanUpNextTick);
|
|
555
|
-
draining = true;
|
|
556
|
-
var len = queue.length;
|
|
557
|
-
while (len) {
|
|
558
|
-
currentQueue = queue;
|
|
559
|
-
queue = [];
|
|
560
|
-
while (++queueIndex < len) {
|
|
561
|
-
if (currentQueue) {
|
|
562
|
-
currentQueue[queueIndex].run();
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
queueIndex = -1;
|
|
566
|
-
len = queue.length;
|
|
567
|
-
}
|
|
568
|
-
currentQueue = null;
|
|
569
|
-
draining = false;
|
|
570
|
-
runClearTimeout(timeout);
|
|
571
|
-
}
|
|
572
|
-
process.nextTick = function(fun) {
|
|
573
|
-
var args = new Array(arguments.length - 1);
|
|
574
|
-
if (arguments.length > 1) {
|
|
575
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
576
|
-
args[i - 1] = arguments[i];
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
queue.push(new Item(fun, args));
|
|
580
|
-
if (queue.length === 1 && !draining) {
|
|
581
|
-
runTimeout(drainQueue);
|
|
582
|
-
}
|
|
583
|
-
};
|
|
584
|
-
function Item(fun, array) {
|
|
585
|
-
this.fun = fun;
|
|
586
|
-
this.array = array;
|
|
587
|
-
}
|
|
588
|
-
Item.prototype.run = function() {
|
|
589
|
-
this.fun.apply(null, this.array);
|
|
590
|
-
};
|
|
591
|
-
process.title = "browser";
|
|
592
|
-
process.browser = true;
|
|
593
|
-
process.env = {};
|
|
594
|
-
process.argv = [];
|
|
595
|
-
process.version = "";
|
|
596
|
-
process.versions = {};
|
|
597
|
-
function noop() {
|
|
598
|
-
}
|
|
599
|
-
process.on = noop;
|
|
600
|
-
process.addListener = noop;
|
|
601
|
-
process.once = noop;
|
|
602
|
-
process.off = noop;
|
|
603
|
-
process.removeListener = noop;
|
|
604
|
-
process.removeAllListeners = noop;
|
|
605
|
-
process.emit = noop;
|
|
606
|
-
process.prependListener = noop;
|
|
607
|
-
process.prependOnceListener = noop;
|
|
608
|
-
process.listeners = function(name) {
|
|
609
|
-
return [];
|
|
610
|
-
};
|
|
611
|
-
process.binding = function(name) {
|
|
612
|
-
throw new Error("process.binding is not supported");
|
|
613
|
-
};
|
|
614
|
-
process.cwd = function() {
|
|
615
|
-
return "/";
|
|
616
|
-
};
|
|
617
|
-
process.chdir = function(dir) {
|
|
618
|
-
throw new Error("process.chdir is not supported");
|
|
619
|
-
};
|
|
620
|
-
process.umask = function() {
|
|
621
|
-
return 0;
|
|
622
|
-
};
|
|
623
466
|
const CURSOR_AGENT_OFFSET_HEIGHT = 12;
|
|
624
467
|
const defaultCursorOption = {
|
|
625
468
|
width: 1,
|
|
@@ -4300,8 +4143,11 @@ const defaultCheckboxOption = {
|
|
|
4300
4143
|
height: 14,
|
|
4301
4144
|
gap: 5,
|
|
4302
4145
|
lineWidth: 1,
|
|
4303
|
-
fillStyle: "#
|
|
4304
|
-
strokeStyle: "#
|
|
4146
|
+
fillStyle: "#ffffff",
|
|
4147
|
+
strokeStyle: "#000000",
|
|
4148
|
+
checkFillStyle: "#5175f4",
|
|
4149
|
+
checkStrokeStyle: "#5175f4",
|
|
4150
|
+
checkMarkColor: "#ffffff",
|
|
4305
4151
|
verticalAlign: VerticalAlign.BOTTOM
|
|
4306
4152
|
};
|
|
4307
4153
|
const defaultControlOption = {
|
|
@@ -5860,9 +5706,12 @@ function getElementListByHTML(htmlText, options) {
|
|
|
5860
5706
|
}
|
|
5861
5707
|
}
|
|
5862
5708
|
}
|
|
5709
|
+
const clipboardHost = document.createElement("div");
|
|
5710
|
+
document.body.appendChild(clipboardHost);
|
|
5711
|
+
const shadowRoot = clipboardHost.attachShadow({ mode: "open" });
|
|
5863
5712
|
const clipboardDom = document.createElement("div");
|
|
5864
5713
|
clipboardDom.innerHTML = htmlText;
|
|
5865
|
-
|
|
5714
|
+
shadowRoot.appendChild(clipboardDom);
|
|
5866
5715
|
const deleteNodes = [];
|
|
5867
5716
|
clipboardDom.childNodes.forEach((child) => {
|
|
5868
5717
|
var _a;
|
|
@@ -5872,7 +5721,7 @@ function getElementListByHTML(htmlText, options) {
|
|
|
5872
5721
|
});
|
|
5873
5722
|
deleteNodes.forEach((node) => node.remove());
|
|
5874
5723
|
findTextNode(clipboardDom);
|
|
5875
|
-
|
|
5724
|
+
clipboardHost.remove();
|
|
5876
5725
|
return elementList;
|
|
5877
5726
|
}
|
|
5878
5727
|
function getTextFromElementList(elementList) {
|
|
@@ -6115,6 +5964,12 @@ function pasteImage(host, file) {
|
|
|
6115
5964
|
const draw = host.getDraw();
|
|
6116
5965
|
if (draw.isReadonly() || draw.isDisabled())
|
|
6117
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
|
+
}
|
|
6118
5973
|
const rangeManager = draw.getRange();
|
|
6119
5974
|
const { startIndex } = rangeManager.getRange();
|
|
6120
5975
|
const elementList = draw.getElementList();
|
|
@@ -6416,7 +6271,7 @@ class Cursor {
|
|
|
6416
6271
|
} else {
|
|
6417
6272
|
this._clearBlinkTimeout();
|
|
6418
6273
|
}
|
|
6419
|
-
|
|
6274
|
+
nextTick(() => {
|
|
6420
6275
|
this.moveCursorToVisible({
|
|
6421
6276
|
cursorPosition,
|
|
6422
6277
|
direction: parseInt(oldTop) > cursorTop ? MoveDirection.UP : MoveDirection.DOWN
|
|
@@ -6432,10 +6287,6 @@ class Cursor {
|
|
|
6432
6287
|
if (!cursorPosition || !direction)
|
|
6433
6288
|
return;
|
|
6434
6289
|
const { pageNo, coordinate: { leftTop, leftBottom } } = cursorPosition;
|
|
6435
|
-
const prePageY = pageNo * (this.draw.getHeight() + this.draw.getPageGap()) + this.container.getBoundingClientRect().top;
|
|
6436
|
-
const isUp = direction === MoveDirection.UP;
|
|
6437
|
-
const x = leftBottom[0];
|
|
6438
|
-
const y = isUp ? leftTop[1] + prePageY : leftBottom[1] + prePageY;
|
|
6439
6290
|
const scrollContainer = findScrollContainer(this.container);
|
|
6440
6291
|
const rect = {
|
|
6441
6292
|
left: 0,
|
|
@@ -6443,7 +6294,8 @@ class Cursor {
|
|
|
6443
6294
|
top: 0,
|
|
6444
6295
|
bottom: 0
|
|
6445
6296
|
};
|
|
6446
|
-
|
|
6297
|
+
const isDocumentScroll = scrollContainer === document.documentElement;
|
|
6298
|
+
if (isDocumentScroll) {
|
|
6447
6299
|
rect.right = window.innerWidth;
|
|
6448
6300
|
rect.bottom = window.innerHeight;
|
|
6449
6301
|
} else {
|
|
@@ -6453,6 +6305,10 @@ class Cursor {
|
|
|
6453
6305
|
rect.top = top;
|
|
6454
6306
|
rect.bottom = bottom;
|
|
6455
6307
|
}
|
|
6308
|
+
const prePageY = pageNo * (this.draw.getHeight() + this.draw.getPageGap()) + this.container.getBoundingClientRect().top;
|
|
6309
|
+
const isUp = direction === MoveDirection.UP;
|
|
6310
|
+
const x = leftBottom[0] + (isDocumentScroll ? 0 : rect.left);
|
|
6311
|
+
const y = isUp ? leftTop[1] + prePageY : leftBottom[1] + prePageY;
|
|
6456
6312
|
const { maskMargin } = this.options;
|
|
6457
6313
|
rect.top += maskMargin[0];
|
|
6458
6314
|
rect.bottom -= maskMargin[2];
|
|
@@ -6480,6 +6336,8 @@ var KeyMap;
|
|
|
6480
6336
|
KeyMap2["Right"] = "ArrowRight";
|
|
6481
6337
|
KeyMap2["Up"] = "ArrowUp";
|
|
6482
6338
|
KeyMap2["Down"] = "ArrowDown";
|
|
6339
|
+
KeyMap2["Home"] = "Home";
|
|
6340
|
+
KeyMap2["End"] = "End";
|
|
6483
6341
|
KeyMap2["ESC"] = "Escape";
|
|
6484
6342
|
KeyMap2["TAB"] = "Tab";
|
|
6485
6343
|
KeyMap2["META"] = "Meta";
|
|
@@ -7183,22 +7041,22 @@ function mousemove(evt, host) {
|
|
|
7183
7041
|
tableId
|
|
7184
7042
|
});
|
|
7185
7043
|
} else {
|
|
7186
|
-
let
|
|
7044
|
+
let end2 = ~endIndex ? endIndex : 0;
|
|
7187
7045
|
if ((startIsTable || isTable) && startTableId !== tableId)
|
|
7188
7046
|
return;
|
|
7189
7047
|
let start = startIndex;
|
|
7190
|
-
if (start >
|
|
7191
|
-
[start,
|
|
7048
|
+
if (start > end2) {
|
|
7049
|
+
[start, end2] = [end2, start];
|
|
7192
7050
|
}
|
|
7193
|
-
if (start ===
|
|
7051
|
+
if (start === end2)
|
|
7194
7052
|
return;
|
|
7195
7053
|
const elementList = draw.getElementList();
|
|
7196
7054
|
const startElement = elementList[start + 1];
|
|
7197
|
-
const endElement = elementList[
|
|
7055
|
+
const endElement = elementList[end2];
|
|
7198
7056
|
if ((startElement == null ? void 0 : startElement.controlComponent) === ControlComponent.PLACEHOLDER && (endElement == null ? void 0 : endElement.controlComponent) === ControlComponent.PLACEHOLDER && startElement.controlId === endElement.controlId) {
|
|
7199
7057
|
return;
|
|
7200
7058
|
}
|
|
7201
|
-
rangeManager.setRange(start,
|
|
7059
|
+
rangeManager.setRange(start, end2);
|
|
7202
7060
|
}
|
|
7203
7061
|
draw.render({
|
|
7204
7062
|
isSubmitHistory: false,
|
|
@@ -8116,6 +7974,116 @@ function updown(evt, host) {
|
|
|
8116
7974
|
});
|
|
8117
7975
|
}
|
|
8118
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
|
+
}
|
|
8119
8087
|
function keydown(evt, host) {
|
|
8120
8088
|
if (host.isComposing)
|
|
8121
8089
|
return;
|
|
@@ -8127,11 +8095,23 @@ function keydown(evt, host) {
|
|
|
8127
8095
|
} else if (evt.key === KeyMap.Enter) {
|
|
8128
8096
|
enter(evt, host);
|
|
8129
8097
|
} else if (evt.key === KeyMap.Left) {
|
|
8130
|
-
|
|
8098
|
+
if (isMod(evt)) {
|
|
8099
|
+
home(evt, host);
|
|
8100
|
+
} else {
|
|
8101
|
+
left(evt, host);
|
|
8102
|
+
}
|
|
8131
8103
|
} else if (evt.key === KeyMap.Right) {
|
|
8132
|
-
|
|
8104
|
+
if (isMod(evt)) {
|
|
8105
|
+
end(evt, host);
|
|
8106
|
+
} else {
|
|
8107
|
+
right(evt, host);
|
|
8108
|
+
}
|
|
8133
8109
|
} else if (evt.key === KeyMap.Up || evt.key === KeyMap.Down) {
|
|
8134
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);
|
|
8135
8115
|
} else if (isMod(evt) && evt.key.toLocaleLowerCase() === KeyMap.Z) {
|
|
8136
8116
|
if (draw.isReadonly() && draw.getMode() !== EditorMode.FORM)
|
|
8137
8117
|
return;
|
|
@@ -8289,7 +8269,7 @@ async function cut(host) {
|
|
|
8289
8269
|
return;
|
|
8290
8270
|
const elementList = draw.getElementList();
|
|
8291
8271
|
let start = startIndex;
|
|
8292
|
-
let
|
|
8272
|
+
let end2 = endIndex;
|
|
8293
8273
|
if (startIndex === endIndex) {
|
|
8294
8274
|
const position = draw.getPosition();
|
|
8295
8275
|
const positionList = position.getPositionList();
|
|
@@ -8307,17 +8287,17 @@ async function cut(host) {
|
|
|
8307
8287
|
}
|
|
8308
8288
|
const firstElementIndex = cutElementIndexList[0] - 1;
|
|
8309
8289
|
start = firstElementIndex < 0 ? 0 : firstElementIndex;
|
|
8310
|
-
|
|
8290
|
+
end2 = cutElementIndexList[cutElementIndexList.length - 1];
|
|
8311
8291
|
}
|
|
8312
8292
|
const options = draw.getOptions();
|
|
8313
|
-
await writeElementList(elementList.slice(start + 1,
|
|
8293
|
+
await writeElementList(elementList.slice(start + 1, end2 + 1), options);
|
|
8314
8294
|
const control = draw.getControl();
|
|
8315
8295
|
let curIndex;
|
|
8316
8296
|
if (control.getActiveControl() && control.getIsRangeWithinControl()) {
|
|
8317
8297
|
curIndex = control.cut();
|
|
8318
8298
|
control.emitControlContentChange();
|
|
8319
8299
|
} else {
|
|
8320
|
-
draw.spliceElementList(elementList, start + 1,
|
|
8300
|
+
draw.spliceElementList(elementList, start + 1, end2 - start);
|
|
8321
8301
|
curIndex = start;
|
|
8322
8302
|
}
|
|
8323
8303
|
rangeManager.setRange(curIndex, curIndex);
|
|
@@ -9791,17 +9771,17 @@ class RangeManager {
|
|
|
9791
9771
|
middle++;
|
|
9792
9772
|
}
|
|
9793
9773
|
}
|
|
9794
|
-
let
|
|
9774
|
+
let end2 = endIndex;
|
|
9795
9775
|
if (isCollapsed && elementList[startIndex].value === ZERO) {
|
|
9796
|
-
|
|
9776
|
+
end2 += 1;
|
|
9797
9777
|
}
|
|
9798
|
-
while (
|
|
9799
|
-
const element = elementList[
|
|
9800
|
-
const nextElement = elementList[
|
|
9778
|
+
while (end2 < positionList.length) {
|
|
9779
|
+
const element = elementList[end2];
|
|
9780
|
+
const nextElement = elementList[end2 + 1];
|
|
9801
9781
|
if (element.value === ZERO && !element.listWrap || element.listId !== (nextElement == null ? void 0 : nextElement.listId) || element.titleId !== (nextElement == null ? void 0 : nextElement.titleId)) {
|
|
9802
9782
|
break;
|
|
9803
9783
|
}
|
|
9804
|
-
const { pageNo, rowNo } = positionList[
|
|
9784
|
+
const { pageNo, rowNo } = positionList[end2];
|
|
9805
9785
|
let rowArray = rangeRow.get(pageNo);
|
|
9806
9786
|
if (!rowArray) {
|
|
9807
9787
|
rowArray = [];
|
|
@@ -9810,7 +9790,7 @@ class RangeManager {
|
|
|
9810
9790
|
if (!rowArray.includes(rowNo)) {
|
|
9811
9791
|
rowArray.push(rowNo);
|
|
9812
9792
|
}
|
|
9813
|
-
|
|
9793
|
+
end2++;
|
|
9814
9794
|
}
|
|
9815
9795
|
return rangeRow;
|
|
9816
9796
|
}
|
|
@@ -15513,7 +15493,7 @@ class CheckboxParticle {
|
|
|
15513
15493
|
render(payload) {
|
|
15514
15494
|
const { ctx, x, index: index2, row } = payload;
|
|
15515
15495
|
let { y } = payload;
|
|
15516
|
-
const { checkbox: { gap, lineWidth, fillStyle, strokeStyle, verticalAlign }, scale } = this.options;
|
|
15496
|
+
const { checkbox: { gap, lineWidth, fillStyle, strokeStyle, checkFillStyle, checkStrokeStyle, checkMarkColor, verticalAlign }, scale } = this.options;
|
|
15517
15497
|
const { metrics, checkbox } = row.elementList[index2];
|
|
15518
15498
|
if (verticalAlign === VerticalAlign.TOP || verticalAlign === VerticalAlign.MIDDLE) {
|
|
15519
15499
|
let nextIndex = index2 + 1;
|
|
@@ -15544,22 +15524,26 @@ class CheckboxParticle {
|
|
|
15544
15524
|
ctx.beginPath();
|
|
15545
15525
|
ctx.translate(0.5, 0.5);
|
|
15546
15526
|
if (checkbox == null ? void 0 : checkbox.value) {
|
|
15527
|
+
ctx.fillStyle = checkFillStyle;
|
|
15528
|
+
ctx.fillRect(left2, top, width, height);
|
|
15529
|
+
ctx.beginPath();
|
|
15547
15530
|
ctx.lineWidth = lineWidth;
|
|
15548
|
-
ctx.strokeStyle =
|
|
15531
|
+
ctx.strokeStyle = checkStrokeStyle;
|
|
15549
15532
|
ctx.rect(left2, top, width, height);
|
|
15550
15533
|
ctx.stroke();
|
|
15551
15534
|
ctx.beginPath();
|
|
15552
|
-
ctx.
|
|
15553
|
-
ctx.fillRect(left2, top, width, height);
|
|
15554
|
-
ctx.beginPath();
|
|
15555
|
-
ctx.strokeStyle = strokeStyle;
|
|
15535
|
+
ctx.strokeStyle = checkMarkColor;
|
|
15556
15536
|
ctx.lineWidth = lineWidth * 2 * scale;
|
|
15557
15537
|
ctx.moveTo(left2 + 2 * scale, top + height / 2);
|
|
15558
15538
|
ctx.lineTo(left2 + width / 2, top + height - 3 * scale);
|
|
15559
15539
|
ctx.lineTo(left2 + width - 2 * scale, top + 3 * scale);
|
|
15560
15540
|
ctx.stroke();
|
|
15561
15541
|
} else {
|
|
15542
|
+
ctx.fillStyle = fillStyle;
|
|
15543
|
+
ctx.fillRect(left2, top, width, height);
|
|
15544
|
+
ctx.beginPath();
|
|
15562
15545
|
ctx.lineWidth = lineWidth;
|
|
15546
|
+
ctx.strokeStyle = strokeStyle;
|
|
15563
15547
|
ctx.rect(left2, top, width, height);
|
|
15564
15548
|
ctx.stroke();
|
|
15565
15549
|
}
|
|
@@ -15665,7 +15649,7 @@ function WorkerWrapper$1() {
|
|
|
15665
15649
|
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
15666
15650
|
}
|
|
15667
15651
|
}
|
|
15668
|
-
const encodedJs = "KCgpPT57dmFyIFRlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxJZT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgQWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIG5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbGU9KFQsSSxkKT0+SSBpbiBUP1RlKFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxTPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlkZS5jYWxsKEksZCkmJmxlKFQsZCxJW2RdKTtpZihuZSlmb3IodmFyIGQgb2YgbmUoSSkpUmUuY2FsbChJLGQpJiZsZShULGQsSVtkXSk7cmV0dXJuIFR9LFg9KFQsSSk9PkllKFQsQWUoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5IQUxGPSJoYWxmIixlLk9ORV9USElSRD0ib25lLXRoaXJkIixlLlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24oZSl7ZS5BUkFCSUM9ImFyYWJpYyIsZS5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKGUpe2UuSU5MSU5FPSJpbmxpbmUiLGUuQkxPQ0s9ImJsb2NrIixlLlNVUlJPVU5EPSJzdXJyb3VuZCIsZS5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsZS5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciBfOyhmdW5jdGlvbihlKXtlLkJFRk9SRT0iYmVmb3JlIixlLkFGVEVSPSJhZnRlciIsZS5PVVRFUl9CRUZPUkU9Im91dGVyLWJlZm9yZSIsZS5PVVRFUl9BRlRFUj0ib3V0ZXItYWZ0ZXIifSkoX3x8KF89e30pKTt2YXIgTTsoZnVuY3Rpb24oZSl7ZS5ST1c9InJvdyIsZS5DT0xVTU49ImNvbHVtbiJ9KShNfHwoTT17fSkpO2NvbnN0IFA9Ilx1MjAwQiI7VC5IQUxGKyIiLDEvMixULk9ORV9USElSRCsiIiwxLzMsVC5RVUFSVEVSKyIiLDEvNDtmdW5jdGlvbiBiKGUpe2lmKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiIpcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBlO2xldCBzPXt9O3JldHVybiBBcnJheS5pc0FycmF5KGUpP3M9ZS5tYXAodT0+Yih1KSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaCh1PT57c1t1XT1iKGVbdV0pfSksc31mdW5jdGlvbiB3KGUscyl7Y29uc3QgdT17fTtmb3IoY29uc3QgQSBpbiBlKXMuaW5jbHVkZXMoQSkmJih1W0FdPWVbQV0pO3JldHVybiB1fWZ1bmN0aW9uIHJlKGUscyl7cmV0dXJuIGUubGVuZ3RoIT09cy5sZW5ndGg/ITE6IWUuc29tZSh1PT4hcy5pbmNsdWRlcyh1KSl9dmFyIGw7KGZ1bmN0aW9uKGUpe2UuVEVYVD0idGV4dCIsZS5JTUFHRT0iaW1hZ2UiLGUuVEFCTEU9InRhYmxlIixlLkhZUEVSTElOSz0iaHlwZXJsaW5rIixlLlNVUEVSU0NSSVBUPSJzdXBlcnNjcmlwdCIsZS5TVUJTQ1JJUFQ9InN1YnNjcmlwdCIsZS5TRVBBUkFUT1I9InNlcGFyYXRvciIsZS5QQUdFX0JSRUFLPSJwYWdlQnJlYWsiLGUuQ09OVFJPTD0iY29udHJvbCIsZS5BUkVBPSJhcmVhIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuTEFURVg9ImxhdGV4IixlLlRBQj0idGFiIixlLkRBVEU9ImRhdGUiLGUuQkxPQ0s9ImJsb2NrIixlLlRJVExFPSJ0aXRsZSIsZS5MSVNUPSJsaXN0IixlLkxBQkVMPSJsYWJlbCJ9KShsfHwobD17fSkpO2NvbnN0IG9lPVsicm93RmxleCIsInJvd01hcmdpbiJdLHNlPVsidHlwZSIsImZvbnQiLCJzaXplIiwiYm9sZCIsImNvbG9yIiwiaXRhbGljIiwiaGlnaGxpZ2h0IiwidW5kZXJsaW5lIiwic3RyaWtlb3V0Iiwicm93RmxleCIsInJvd01hcmdpbiIsImRhc2hBcnJheSIsInRyTGlzdCIsInRhYmxlVG9vbERpc2FibGVkIiwiYm9yZGVyVHlwZSIsImJvcmRlckNvbG9yIiwidHJhbnNsYXRlWCIsIndpZHRoIiwiaGVpZ2h0IiwidXJsIiwiY29sZ3JvdXAiLCJ2YWx1ZUxpc3QiLCJjb250cm9sIiwiY2hlY2tib3giLCJyYWRpbyIsImRhdGVGb3JtYXQiLCJibG9jayIsImxldmVsIiwidGl0bGUiLCJsaXN0VHlwZSIsImxpc3RTdHlsZSIsImxpc3RXcmFwIiwiZ3JvdXBJZHMiLCJjb25jZXB0SWQiLCJpbWdEaXNwbGF5IiwiaW1nRmxvYXRQb3NpdGlvbiIsImltZ1Rvb2xEaXNhYmxlZCIsImltZ1ByZXZpZXdEaXNhYmxlZCIsImltZ0Nyb3AiLCJpbWdDYXB0aW9uIiwidGV4dERlY29yYXRpb24iLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwiYXJlYUlkIiwiYXJlYSIsImhpZGUiLCJsYWJlbCIsImxhYmVsSWQiLCJsaW5lV2lkdGgiXSxjZT1bImNvbmNlcHRJZCIsImV4dGVuc2lvbiIsImV4dGVybmFsSWQiLCJ2ZXJ0aWNhbEFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyVHlwZXMiLCJzbGFzaFR5cGVzIiwiZGlzYWJsZWQiLCJkZWxldGFibGUiXSxFZT1bImZvbnQiLCJzaXplIiwiYm9sZCIsImhpZ2hsaWdodCIsIml0YWxpYyIsInN0cmlrZW91dCJdO2wuVEVYVCxsLkhZUEVSTElOSyxsLlNVQlNDUklQVCxsLlNVUEVSU0NSSVBULGwuQ09OVFJPTCxsLkRBVEUsbC5JTUFHRSxsLkxBVEVYLGwuQkxPQ0ssbC5QQUdFX0JSRUFLLGwuU0VQQVJBVE9SLGwuVEFCTEUsbC5USVRMRSxsLkxJU1Q7dmFyIE47KGZ1bmN0aW9uKGUpe2UuVUw9InVsIixlLk9MPSJvbCJ9KShOfHwoTj17fSkpO3ZhciBPOyhmdW5jdGlvbihlKXtlLkRJU0M9ImRpc2MiLGUuQ0lSQ0xFPSJjaXJjbGUiLGUuU1FVQVJFPSJzcXVhcmUiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94In0pKE98fChPPXt9KSk7dmFyIEg7KGZ1bmN0aW9uKGUpe2UuREVDSU1BTD0iZGVjaW1hbCJ9KShIfHwoSD17fSkpO3ZhciB2OyhmdW5jdGlvbihlKXtlW2UuRElTQz1PLkRJU0NdPSJESVNDIixlW2UuQ0lSQ0xFPU8uQ0lSQ0xFXT0iQ0lSQ0xFIixlW2UuU1FVQVJFPU8uU1FVQVJFXT0iU1FVQVJFIixlW2UuREVDSU1BTD1ILkRFQ0lNQUxdPSJERUNJTUFMIixlW2UuQ0hFQ0tCT1g9Ty5DSEVDS0JPWF09IkNIRUNLQk9YIn0pKHZ8fCh2PXt9KSksTy5ESVNDKyIiLE8uQ0lSQ0xFKyIiLE8uU1FVQVJFKyIiLE8uQ0hFQ0tCT1grIiIsTi5PTCsiIixOLlVMKyIiLHYuRElTQysiIix2LkNJUkNMRSsiIix2LlNRVUFSRSsiIix2LkRFQ0lNQUwrIiIsdi5DSEVDS0JPWCsiIjt2YXIgZjsoZnVuY3Rpb24oZSl7ZS5GSVJTVD0iZmlyc3QiLGUuU0VDT05EPSJzZWNvbmQiLGUuVEhJUkQ9InRoaXJkIixlLkZPVVJUSD0iZm91cnRoIixlLkZJRlRIPSJmaWZ0aCIsZS5TSVhUSD0ic2l4dGgifSkoZnx8KGY9e30pKSxmLkZJUlNUKyIiLGYuU0VDT05EKyIiLGYuVEhJUkQrIiIsZi5GT1VSVEgrIiIsZi5GSUZUSCsiIixmLlNJWFRIKyIiLGYuRklSU1QrIiIsZi5TRUNPTkQrIiIsZi5USElSRCsiIixmLkZPVVJUSCsiIixmLkZJRlRIKyIiLGYuU0lYVEgrIiIsZi5GSVJTVCxmLlNFQ09ORCxmLlRISVJELGYuRk9VUlRILGYuRklGVEgsZi5TSVhUSDt2YXIgSzsoZnVuY3Rpb24oZSl7ZS5JRlJBTUU9ImlmcmFtZSIsZS5WSURFTz0idmlkZW8ifSkoS3x8KEs9e30pKTt2YXIgRzsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLlNFTEVDVD0ic2VsZWN0IixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuREFURT0iZGF0ZSIsZS5OVU1CRVI9Im51bWJlciJ9KShHfHwoRz17fSkpO3ZhciBDOyhmdW5jdGlvbihlKXtlLlBSRUZJWD0icHJlZml4IixlLlBPU1RGSVg9InBvc3RmaXgiLGUuUFJFX1RFWFQ9InByZVRleHQiLGUuUE9TVF9URVhUPSJwb3N0VGV4dCIsZS5QTEFDRUhPTERFUj0icGxhY2Vob2xkZXIiLGUuVkFMVUU9InZhbHVlIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8ifSkoQ3x8KEM9e30pKTt2YXIgejsoZnVuY3Rpb24oZSl7ZS5ST1dfU1RBUlQ9InJvd1N0YXJ0IixlLlZBTFVFX1NUQVJUPSJ2YWx1ZVN0YXJ0In0pKHp8fCh6PXt9KSk7dmFyIFk7KGZ1bmN0aW9uKGUpe2UuQUNUSVZFPSJhY3RpdmUiLGUuSU5BQ1RJVkU9ImluYWN0aXZlIn0pKFl8fChZPXt9KSk7dmFyIFY7KGZ1bmN0aW9uKGUpe2UuTlVNQkVSPSJudW1iZXIiLGUuT1BFUkFUT1I9Im9wZXJhdG9yIixlLlVUSUxJVFk9InV0aWxpdHkiLGUuRVFVQUw9ImVxdWFsIn0pKFZ8fChWPXt9KSk7dmFyIFE7KGZ1bmN0aW9uKGUpe2UuQ09NUE9ORU5UPSJjb21wb25lbnQiLGUuTUVOVT0ibWVudSIsZS5NQUlOPSJtYWluIixlLkZPT1RFUj0iZm9vdGVyIixlLkNPTlRFWFRNRU5VPSJjb250ZXh0bWVudSIsZS5QT1BVUD0icG9wdXAiLGUuQ0FUQUxPRz0iY2F0YWxvZyIsZS5DT01NRU5UPSJjb21tZW50In0pKFF8fChRPXt9KSk7dmFyIFc7KGZ1bmN0aW9uKGUpe2UuUEFHRT0icGFnZSIsZS5UQUJMRT0idGFibGUifSkoV3x8KFc9e30pKTt2YXIgcTsoZnVuY3Rpb24oZSl7ZS5FRElUPSJlZGl0IixlLkNMRUFOPSJjbGVhbiIsZS5SRUFET05MWT0icmVhZG9ubHkiLGUuRk9STT0iZm9ybSIsZS5QUklOVD0icHJpbnQiLGUuREVTSUdOPSJkZXNpZ24iLGUuR1JBRkZJVEk9ImdyYWZmaXRpIn0pKHF8fChxPXt9KSk7dmFyIFo7KGZ1bmN0aW9uKGUpe2UuSEVBREVSPSJoZWFkZXIiLGUuTUFJTj0ibWFpbiIsZS5GT09URVI9ImZvb3RlciJ9KShafHwoWj17fSkpO3ZhciBKOyhmdW5jdGlvbihlKXtlLlBBR0lORz0icGFnaW5nIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoSnx8KEo9e30pKTt2YXIgajsoZnVuY3Rpb24oZSl7ZS5WRVJUSUNBTD0idmVydGljYWwiLGUuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCJ9KShqfHwoaj17fSkpO3ZhciAkOyhmdW5jdGlvbihlKXtlLkJSRUFLX0FMTD0iYnJlYWstYWxsIixlLkJSRUFLX1dPUkQ9ImJyZWFrLXdvcmQifSkoJHx8KCQ9e30pKTt2YXIgZWU7KGZ1bmN0aW9uKGUpe2UuU1BFRUQ9InNwZWVkIixlLkNPTVBBVElCSUxJVFk9ImNvbXBhdGliaWxpdHkifSkoZWV8fChlZT17fSkpO3ZhciBEOyhmdW5jdGlvbihlKXtlLkxFRlQ9ImxlZnQiLGUuQ0VOVEVSPSJjZW50ZXIiLGUuUklHSFQ9InJpZ2h0IixlLkFMSUdOTUVOVD0iYWxpZ25tZW50IixlLkpVU1RJRlk9Imp1c3RpZnkifSkoRHx8KEQ9e30pKTt2YXIgdGU7KGZ1bmN0aW9uKGUpe2UuQUxMPSJhbGwiLGUuRU1QVFk9ImVtcHR5IixlLkVYVEVSTkFMPSJleHRlcm5hbCIsZS5JTlRFUk5BTD0iaW50ZXJuYWwiLGUuREFTSD0iZGFzaCJ9KSh0ZXx8KHRlPXt9KSk7dmFyIGllOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLlJJR0hUPSJyaWdodCIsZS5CT1RUT009ImJvdHRvbSIsZS5MRUZUPSJsZWZ0In0pKGllfHwoaWU9e30pKTt2YXIgYWU7KGZ1bmN0aW9uKGUpe2UuRk9SV0FSRD0iZm9yd2FyZCIsZS5CQUNLPSJiYWNrIn0pKGFlfHwoYWU9e30pKTt2YXIgbTsoZnVuY3Rpb24oZSl7ZS5DT05UQUlOPSJjb250YWluIixlLkNPVkVSPSJjb3ZlciJ9KShtfHwobT17fSkpO3ZhciBrOyhmdW5jdGlvbihlKXtlLlJFUEVBVD0icmVwZWF0IixlLk5PX1JFUEVBVD0ibm8tcmVwZWF0IixlLlJFUEVBVF9YPSJyZXBlYXQteCIsZS5SRVBFQVRfWT0icmVwZWF0LXkifSkoa3x8KGs9e30pKSxtLkNPVkVSLGsuTk9fUkVQRUFUO3ZhciBGOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLk1JRERMRT0ibWlkZGxlIixlLkJPVFRPTT0iYm90dG9tIn0pKEZ8fChGPXt9KSksRi5CT1RUT00sVC5IQUxGLFQuSEFMRjtjb25zdCB1ZT17UEFHRV9OTzoie3BhZ2VOb30iLFBBR0VfQ09VTlQ6IntwYWdlQ291bnR9In07RC5DRU5URVIsdWUuUEFHRV9OTyxJLkFSQUJJQyxGLkJPVFRPTTt2YXIgVTsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLklNQUdFPSJpbWFnZSJ9KShVfHwoVT17fSkpLFUuVEVYVCxJLkFSQUJJQzt2YXIgeTsoZnVuY3Rpb24oZSl7ZS5QQUdFPSJwYWdlIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoeXx8KHk9e30pKSx5LkNPTlRJTlVJVFk7ZnVuY3Rpb24gZmUoZSxzKXtjb25zdCB1PU9iamVjdC5rZXlzKGUpLEE9T2JqZWN0LmtleXMocyk7aWYodS5sZW5ndGghPT1BLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IFI9MDtSPHUubGVuZ3RoO1IrKyl7Y29uc3QgYT11W1JdO2lmKGEhPT0idmFsdWUiJiYhKGE9PT0iZ3JvdXBJZHMiJiZBcnJheS5pc0FycmF5KGVbYV0pJiZBcnJheS5pc0FycmF5KHNbYV0pJiZyZShlW2FdLHNbYV0pKSYmZVthXSE9PXNbYV0pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQihlLHM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOnV9PXMsQT1bLi4uc2VdO3UmJkEucHVzaCguLi51KTtjb25zdCBSPXt2YWx1ZTplLnZhbHVlPT09UD9gCmA6ZS52YWx1ZX07cmV0dXJuIEEuZm9yRWFjaChhPT57Y29uc3QgcD1lW2FdO3AhPT12b2lkIDAmJihSW2FdPXApfSksUn1mdW5jdGlvbiBoKGUscz17fSl7Y29uc3R7ZXh0cmFQaWNrQXR0cnM6dSxpc0NsYXNzaWZ5QXJlYTpBPSExLGlzQ2xvbmU6Uj0hMH09cyxhPVI/YihlKTplLHA9W107bGV0IGk9MDtmb3IoO2k8YS5sZW5ndGg7KXtsZXQgdD1hW2ldO2lmKGk9PT0wJiZ0LnZhbHVlPT09UCYmIXQubGlzdElkJiYoIXQudHlwZXx8dC50eXBlPT09bC5URVhUKSl7aSsrO2NvbnRpbnVlfWlmKHQuYXJlYUlkKXtjb25zdCBuPXQuYXJlYUlkLEU9dC5hcmVhLGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbz1hW2ldO2lmKG4hPT1vLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmFyZWEsZGVsZXRlIG8uYXJlYUlkLGMucHVzaChvKSxpKyt9Y29uc3Qgcj1oKGMscyk7aWYoQSl7Y29uc3Qgbz17dHlwZTpsLkFSRUEsdmFsdWU6IiIsYXJlYUlkOm4sYXJlYTpFfTtvLnZhbHVlTGlzdD1yLHQ9b31lbHNle3Auc3BsaWNlKGksMCwuLi5yKTtjb250aW51ZX19ZWxzZSBpZih0LnRpdGxlSWQmJnQubGV2ZWwpe2NvbnN0IG49dC50aXRsZUlkO2lmKG4pe2NvbnN0IEU9dC5sZXZlbCxjPXt0eXBlOmwuVElUTEUsdGl0bGU6dC50aXRsZSx0aXRsZUlkOm4sdmFsdWU6IiIsbGV2ZWw6RX0scj1bXTtmb3IoO2k8YS5sZW5ndGg7KXtjb25zdCBvPWFbaV07aWYobiE9PW8udGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmxldmVsLGRlbGV0ZSBvLnRpdGxlLHIucHVzaChvKSxpKyt9Yy52YWx1ZUxpc3Q9aChyLHMpLHQ9Y319ZWxzZSBpZih0Lmxpc3RJZCYmdC5saXN0VHlwZSl7Y29uc3Qgbj10Lmxpc3RJZDtpZihuKXtjb25zdCBFPXQubGlzdFR5cGUsYz10Lmxpc3RTdHlsZSxyPXt0eXBlOmwuTElTVCx2YWx1ZToiIixsaXN0SWQ6bixsaXN0VHlwZTpFLGxpc3RTdHlsZTpjfSxvPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IEw9YVtpXTtpZihuIT09TC5saXN0SWQpe2ktLTticmVha31kZWxldGUgTC5saXN0VHlwZSxkZWxldGUgTC5saXN0U3R5bGUsby5wdXNoKEwpLGkrK31yLnZhbHVlTGlzdD1oKG8scyksdD1yfX1lbHNlIGlmKHQudHlwZT09PWwuVEFCTEUpe2lmKHQucGFnaW5nSWQpe2xldCBuPWkrMSxFPTA7Zm9yKDtuPGEubGVuZ3RoOyl7Y29uc3QgYz1hW25dO2lmKGMucGFnaW5nSWQ9PT10LnBhZ2luZ0lkKXQuaGVpZ2h0Kz1jLmhlaWdodCx0LnRyTGlzdC5wdXNoKC4uLmMudHJMaXN0KSxuKyssRSsrO2Vsc2UgYnJlYWt9aSs9RX1pZih0LnRyTGlzdClmb3IobGV0IG49MDtuPHQudHJMaXN0Lmxlbmd0aDtuKyspe2NvbnN0IEU9dC50ckxpc3Rbbl07ZGVsZXRlIEUuaWQ7Zm9yKGxldCBjPTA7YzxFLnRkTGlzdC5sZW5ndGg7YysrKXtjb25zdCByPUUudGRMaXN0W2NdLG89e2NvbHNwYW46ci5jb2xzcGFuLHJvd3NwYW46ci5yb3dzcGFuLHZhbHVlOmgoci52YWx1ZSxYKFMoe30scykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtjZS5mb3JFYWNoKEw9Pntjb25zdCBnPXJbTF07ZyE9PXZvaWQgMCYmKG9bTF09Zyl9KSxFLnRkTGlzdFtjXT1vfX19ZWxzZSBpZih0LnR5cGU9PT1sLkhZUEVSTElOSyl7Y29uc3Qgbj10Lmh5cGVybGlua0lkO2lmKG4pe2NvbnN0IEU9e3R5cGU6bC5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOnQudXJsfSxjPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IHI9YVtpXTtpZihuIT09ci5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIudXJsLGMucHVzaChyKSxpKyt9RS52YWx1ZUxpc3Q9aChjLHMpLHQ9RX19ZWxzZSBpZih0LnR5cGU9PT1sLkRBVEUpe2NvbnN0IG49dC5kYXRlSWQ7aWYobil7Y29uc3QgRT17dHlwZTpsLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDp0LmRhdGVGb3JtYXR9LGM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgcj1hW2ldO2lmKG4hPT1yLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIuZGF0ZUZvcm1hdCxjLnB1c2gociksaSsrfUUudmFsdWVMaXN0PWgoYyxzKSx0PUV9fWVsc2UgaWYodC5jb250cm9sSWQpe2NvbnN0IG49dC5jb250cm9sSWQ7aWYodC5jb250cm9sQ29tcG9uZW50PT09Qy5QUkVGSVgpe2NvbnN0IEU9W107bGV0IGM9ITEscj1pO2Zvcig7cjxhLmxlbmd0aDspe2NvbnN0IG89YVtyXTtpZihuIT09by5jb250cm9sSWQpYnJlYWs7by5jb250cm9sQ29tcG9uZW50PT09Qy5WQUxVRSYmKGRlbGV0ZSBvLmNvbnRyb2wsZGVsZXRlIG8uY29udHJvbElkLEUucHVzaChvKSksby5jb250cm9sQ29tcG9uZW50PT09Qy5QT1NURklYJiYoYz0hMCkscisrfWlmKGMpe2NvbnN0IG89dyh0LEVlKSxMPVMoUyh7fSx0LmNvbnRyb2wpLG8pLGc9WChTKHt9LHcodCxvZSkpLHt0eXBlOmwuQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkwsY29udHJvbElkOm59KTtnLmNvbnRyb2wudmFsdWU9aChFLHMpLHQ9QihnLHtleHRyYVBpY2tBdHRyczp1fSksaSs9ci1pLTF9fWlmKHQuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSB0LmNvbnRyb2wsZGVsZXRlIHQuY29udHJvbElkLHQuY29udHJvbENvbXBvbmVudCE9PUMuVkFMVUUmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUFJFX1RFWFQmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCB4PUIodCx7ZXh0cmFQaWNrQXR0cnM6dX0pO2lmKCF0LnR5cGV8fHQudHlwZT09PWwuVEVYVHx8dC50eXBlPT09bC5TVUJTQ1JJUFR8fHQudHlwZT09PWwuU1VQRVJTQ1JJUFQpZm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbj1hW2krMV07aWYoaSsrLG4mJmZlKHgsQihuLHtleHRyYVBpY2tBdHRyczp1fSkpKXtjb25zdCBFPW4udmFsdWU9PT1QP2AKYDpuLnZhbHVlO3gudmFsdWUrPUV9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goeCl9cmV0dXJuIHB9b25tZXNzYWdlPWU9Pntjb25zdCBzPWUuZGF0YSx7b3B0aW9uczp1LGRhdGE6QX09cyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09dXx8e30sYT17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
|
|
15652
|
+
const encodedJs = "KCgpPT57dmFyIFRlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxJZT1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgQWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIGxlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbmU9KFQsSSxkKT0+SSBpbiBUP1RlKFQsSSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZH0pOlRbSV09ZCxnPShULEkpPT57Zm9yKHZhciBkIGluIEl8fChJPXt9KSlkZS5jYWxsKEksZCkmJm5lKFQsZCxJW2RdKTtpZihsZSlmb3IodmFyIGQgb2YgbGUoSSkpUmUuY2FsbChJLGQpJiZuZShULGQsSVtkXSk7cmV0dXJuIFR9LFg9KFQsSSk9PkllKFQsQWUoSSkpOyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5IQUxGPSJoYWxmIixlLk9ORV9USElSRD0ib25lLXRoaXJkIixlLlFVQVJURVI9InF1YXJ0ZXIifSkoVHx8KFQ9e30pKTt2YXIgSTsoZnVuY3Rpb24oZSl7ZS5BUkFCSUM9ImFyYWJpYyIsZS5DSElORVNFPSJjaGluZXNlIn0pKEl8fChJPXt9KSk7dmFyIGQ7KGZ1bmN0aW9uKGUpe2UuSU5MSU5FPSJpbmxpbmUiLGUuQkxPQ0s9ImJsb2NrIixlLlNVUlJPVU5EPSJzdXJyb3VuZCIsZS5GTE9BVF9UT1A9ImZsb2F0LXRvcCIsZS5GTE9BVF9CT1RUT009ImZsb2F0LWJvdHRvbSJ9KShkfHwoZD17fSkpO3ZhciBfOyhmdW5jdGlvbihlKXtlLkJFRk9SRT0iYmVmb3JlIixlLkFGVEVSPSJhZnRlciIsZS5PVVRFUl9CRUZPUkU9Im91dGVyLWJlZm9yZSIsZS5PVVRFUl9BRlRFUj0ib3V0ZXItYWZ0ZXIifSkoX3x8KF89e30pKTt2YXIgTTsoZnVuY3Rpb24oZSl7ZS5ST1c9InJvdyIsZS5DT0xVTU49ImNvbHVtbiJ9KShNfHwoTT17fSkpO2NvbnN0IFA9Ilx1MjAwQiI7VC5IQUxGKyIiLDEvMixULk9ORV9USElSRCsiIiwxLzMsVC5RVUFSVEVSKyIiLDEvNDtmdW5jdGlvbiBiKGUpe2lmKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiIpcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QiKXJldHVybiBlO2xldCBjPXt9O3JldHVybiBBcnJheS5pc0FycmF5KGUpP2M9ZS5tYXAoRT0+YihFKSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaChFPT57Y1tFXT1iKGVbRV0pfSksY31mdW5jdGlvbiB3KGUsYyl7Y29uc3QgRT17fTtmb3IoY29uc3QgQSBpbiBlKWMuaW5jbHVkZXMoQSkmJihFW0FdPWVbQV0pO3JldHVybiBFfWZ1bmN0aW9uIHJlKGUsYyl7cmV0dXJuIGUubGVuZ3RoIT09Yy5sZW5ndGg/ITE6IWUuc29tZShFPT4hYy5pbmNsdWRlcyhFKSl9dmFyIG47KGZ1bmN0aW9uKGUpe2UuVEVYVD0idGV4dCIsZS5JTUFHRT0iaW1hZ2UiLGUuVEFCTEU9InRhYmxlIixlLkhZUEVSTElOSz0iaHlwZXJsaW5rIixlLlNVUEVSU0NSSVBUPSJzdXBlcnNjcmlwdCIsZS5TVUJTQ1JJUFQ9InN1YnNjcmlwdCIsZS5TRVBBUkFUT1I9InNlcGFyYXRvciIsZS5QQUdFX0JSRUFLPSJwYWdlQnJlYWsiLGUuQ09OVFJPTD0iY29udHJvbCIsZS5BUkVBPSJhcmVhIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuTEFURVg9ImxhdGV4IixlLlRBQj0idGFiIixlLkRBVEU9ImRhdGUiLGUuQkxPQ0s9ImJsb2NrIixlLlRJVExFPSJ0aXRsZSIsZS5MSVNUPSJsaXN0IixlLkxBQkVMPSJsYWJlbCJ9KShufHwobj17fSkpO2NvbnN0IG9lPVsicm93RmxleCIsInJvd01hcmdpbiJdLGNlPVsidHlwZSIsImZvbnQiLCJzaXplIiwiYm9sZCIsImNvbG9yIiwiaXRhbGljIiwiaGlnaGxpZ2h0IiwidW5kZXJsaW5lIiwic3RyaWtlb3V0Iiwicm93RmxleCIsInJvd01hcmdpbiIsImRhc2hBcnJheSIsInRyTGlzdCIsInRhYmxlVG9vbERpc2FibGVkIiwiYm9yZGVyVHlwZSIsImJvcmRlckNvbG9yIiwidHJhbnNsYXRlWCIsIndpZHRoIiwiaGVpZ2h0IiwidXJsIiwiY29sZ3JvdXAiLCJ2YWx1ZUxpc3QiLCJjb250cm9sIiwiY2hlY2tib3giLCJyYWRpbyIsImRhdGVGb3JtYXQiLCJibG9jayIsImxldmVsIiwidGl0bGUiLCJsaXN0VHlwZSIsImxpc3RTdHlsZSIsImxpc3RXcmFwIiwiZ3JvdXBJZHMiLCJjb25jZXB0SWQiLCJpbWdEaXNwbGF5IiwiaW1nRmxvYXRQb3NpdGlvbiIsImltZ1Rvb2xEaXNhYmxlZCIsImltZ1ByZXZpZXdEaXNhYmxlZCIsImltZ0Nyb3AiLCJpbWdDYXB0aW9uIiwidGV4dERlY29yYXRpb24iLCJleHRlbnNpb24iLCJleHRlcm5hbElkIiwiYXJlYUlkIiwiYXJlYSIsImhpZGUiLCJsYWJlbCIsImxhYmVsSWQiLCJsaW5lV2lkdGgiXSxzZT1bImNvbmNlcHRJZCIsImV4dGVuc2lvbiIsImV4dGVybmFsSWQiLCJ2ZXJ0aWNhbEFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyVHlwZXMiLCJzbGFzaFR5cGVzIiwiZGlzYWJsZWQiLCJkZWxldGFibGUiXSxmZT1bImZvbnQiLCJzaXplIiwiYm9sZCIsImhpZ2hsaWdodCIsIml0YWxpYyIsInN0cmlrZW91dCJdO24uVEVYVCxuLkhZUEVSTElOSyxuLlNVQlNDUklQVCxuLlNVUEVSU0NSSVBULG4uQ09OVFJPTCxuLkRBVEUsbi5JTUFHRSxuLkxBVEVYLG4uQkxPQ0ssbi5QQUdFX0JSRUFLLG4uU0VQQVJBVE9SLG4uVEFCTEUsbi5USVRMRSxuLkxJU1Q7dmFyIE47KGZ1bmN0aW9uKGUpe2UuVUw9InVsIixlLk9MPSJvbCJ9KShOfHwoTj17fSkpO3ZhciBPOyhmdW5jdGlvbihlKXtlLkRJU0M9ImRpc2MiLGUuQ0lSQ0xFPSJjaXJjbGUiLGUuU1FVQVJFPSJzcXVhcmUiLGUuQ0hFQ0tCT1g9ImNoZWNrYm94In0pKE98fChPPXt9KSk7dmFyIEg7KGZ1bmN0aW9uKGUpe2UuREVDSU1BTD0iZGVjaW1hbCJ9KShIfHwoSD17fSkpO3ZhciB2OyhmdW5jdGlvbihlKXtlW2UuRElTQz1PLkRJU0NdPSJESVNDIixlW2UuQ0lSQ0xFPU8uQ0lSQ0xFXT0iQ0lSQ0xFIixlW2UuU1FVQVJFPU8uU1FVQVJFXT0iU1FVQVJFIixlW2UuREVDSU1BTD1ILkRFQ0lNQUxdPSJERUNJTUFMIixlW2UuQ0hFQ0tCT1g9Ty5DSEVDS0JPWF09IkNIRUNLQk9YIn0pKHZ8fCh2PXt9KSksTy5ESVNDKyIiLE8uQ0lSQ0xFKyIiLE8uU1FVQVJFKyIiLE8uQ0hFQ0tCT1grIiIsTi5PTCsiIixOLlVMKyIiLHYuRElTQysiIix2LkNJUkNMRSsiIix2LlNRVUFSRSsiIix2LkRFQ0lNQUwrIiIsdi5DSEVDS0JPWCsiIjt2YXIgdTsoZnVuY3Rpb24oZSl7ZS5GSVJTVD0iZmlyc3QiLGUuU0VDT05EPSJzZWNvbmQiLGUuVEhJUkQ9InRoaXJkIixlLkZPVVJUSD0iZm91cnRoIixlLkZJRlRIPSJmaWZ0aCIsZS5TSVhUSD0ic2l4dGgifSkodXx8KHU9e30pKSx1LkZJUlNUKyIiLHUuU0VDT05EKyIiLHUuVEhJUkQrIiIsdS5GT1VSVEgrIiIsdS5GSUZUSCsiIix1LlNJWFRIKyIiLHUuRklSU1QrIiIsdS5TRUNPTkQrIiIsdS5USElSRCsiIix1LkZPVVJUSCsiIix1LkZJRlRIKyIiLHUuU0lYVEgrIiIsdS5GSVJTVCx1LlNFQ09ORCx1LlRISVJELHUuRk9VUlRILHUuRklGVEgsdS5TSVhUSDt2YXIgSzsoZnVuY3Rpb24oZSl7ZS5JRlJBTUU9ImlmcmFtZSIsZS5WSURFTz0idmlkZW8ifSkoS3x8KEs9e30pKTt2YXIgRzsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLlNFTEVDVD0ic2VsZWN0IixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8iLGUuREFURT0iZGF0ZSIsZS5OVU1CRVI9Im51bWJlciJ9KShHfHwoRz17fSkpO3ZhciBDOyhmdW5jdGlvbihlKXtlLlBSRUZJWD0icHJlZml4IixlLlBPU1RGSVg9InBvc3RmaXgiLGUuUFJFX1RFWFQ9InByZVRleHQiLGUuUE9TVF9URVhUPSJwb3N0VGV4dCIsZS5QTEFDRUhPTERFUj0icGxhY2Vob2xkZXIiLGUuVkFMVUU9InZhbHVlIixlLkNIRUNLQk9YPSJjaGVja2JveCIsZS5SQURJTz0icmFkaW8ifSkoQ3x8KEM9e30pKTt2YXIgejsoZnVuY3Rpb24oZSl7ZS5ST1dfU1RBUlQ9InJvd1N0YXJ0IixlLlZBTFVFX1NUQVJUPSJ2YWx1ZVN0YXJ0In0pKHp8fCh6PXt9KSk7dmFyIFk7KGZ1bmN0aW9uKGUpe2UuQUNUSVZFPSJhY3RpdmUiLGUuSU5BQ1RJVkU9ImluYWN0aXZlIn0pKFl8fChZPXt9KSk7dmFyIFY7KGZ1bmN0aW9uKGUpe2UuTlVNQkVSPSJudW1iZXIiLGUuT1BFUkFUT1I9Im9wZXJhdG9yIixlLlVUSUxJVFk9InV0aWxpdHkiLGUuRVFVQUw9ImVxdWFsIn0pKFZ8fChWPXt9KSk7dmFyIFE7KGZ1bmN0aW9uKGUpe2UuQ09NUE9ORU5UPSJjb21wb25lbnQiLGUuTUVOVT0ibWVudSIsZS5NQUlOPSJtYWluIixlLkZPT1RFUj0iZm9vdGVyIixlLkNPTlRFWFRNRU5VPSJjb250ZXh0bWVudSIsZS5QT1BVUD0icG9wdXAiLGUuQ0FUQUxPRz0iY2F0YWxvZyIsZS5DT01NRU5UPSJjb21tZW50In0pKFF8fChRPXt9KSk7dmFyIFc7KGZ1bmN0aW9uKGUpe2UuUEFHRT0icGFnZSIsZS5UQUJMRT0idGFibGUifSkoV3x8KFc9e30pKTt2YXIgcTsoZnVuY3Rpb24oZSl7ZS5FRElUPSJlZGl0IixlLkNMRUFOPSJjbGVhbiIsZS5SRUFET05MWT0icmVhZG9ubHkiLGUuRk9STT0iZm9ybSIsZS5QUklOVD0icHJpbnQiLGUuREVTSUdOPSJkZXNpZ24iLGUuR1JBRkZJVEk9ImdyYWZmaXRpIn0pKHF8fChxPXt9KSk7dmFyIFo7KGZ1bmN0aW9uKGUpe2UuSEVBREVSPSJoZWFkZXIiLGUuTUFJTj0ibWFpbiIsZS5GT09URVI9ImZvb3RlciJ9KShafHwoWj17fSkpO3ZhciBKOyhmdW5jdGlvbihlKXtlLlBBR0lORz0icGFnaW5nIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoSnx8KEo9e30pKTt2YXIgajsoZnVuY3Rpb24oZSl7ZS5WRVJUSUNBTD0idmVydGljYWwiLGUuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCJ9KShqfHwoaj17fSkpO3ZhciAkOyhmdW5jdGlvbihlKXtlLkJSRUFLX0FMTD0iYnJlYWstYWxsIixlLkJSRUFLX1dPUkQ9ImJyZWFrLXdvcmQifSkoJHx8KCQ9e30pKTt2YXIgZWU7KGZ1bmN0aW9uKGUpe2UuU1BFRUQ9InNwZWVkIixlLkNPTVBBVElCSUxJVFk9ImNvbXBhdGliaWxpdHkifSkoZWV8fChlZT17fSkpO3ZhciBEOyhmdW5jdGlvbihlKXtlLkxFRlQ9ImxlZnQiLGUuQ0VOVEVSPSJjZW50ZXIiLGUuUklHSFQ9InJpZ2h0IixlLkFMSUdOTUVOVD0iYWxpZ25tZW50IixlLkpVU1RJRlk9Imp1c3RpZnkifSkoRHx8KEQ9e30pKTt2YXIgdGU7KGZ1bmN0aW9uKGUpe2UuQUxMPSJhbGwiLGUuRU1QVFk9ImVtcHR5IixlLkVYVEVSTkFMPSJleHRlcm5hbCIsZS5JTlRFUk5BTD0iaW50ZXJuYWwiLGUuREFTSD0iZGFzaCJ9KSh0ZXx8KHRlPXt9KSk7dmFyIGllOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLlJJR0hUPSJyaWdodCIsZS5CT1RUT009ImJvdHRvbSIsZS5MRUZUPSJsZWZ0In0pKGllfHwoaWU9e30pKTt2YXIgYWU7KGZ1bmN0aW9uKGUpe2UuRk9SV0FSRD0iZm9yd2FyZCIsZS5CQUNLPSJiYWNrIn0pKGFlfHwoYWU9e30pKTt2YXIgazsoZnVuY3Rpb24oZSl7ZS5DT05UQUlOPSJjb250YWluIixlLkNPVkVSPSJjb3ZlciJ9KShrfHwoaz17fSkpO3ZhciBtOyhmdW5jdGlvbihlKXtlLlJFUEVBVD0icmVwZWF0IixlLk5PX1JFUEVBVD0ibm8tcmVwZWF0IixlLlJFUEVBVF9YPSJyZXBlYXQteCIsZS5SRVBFQVRfWT0icmVwZWF0LXkifSkobXx8KG09e30pKSxrLkNPVkVSLG0uTk9fUkVQRUFUO3ZhciBGOyhmdW5jdGlvbihlKXtlLlRPUD0idG9wIixlLk1JRERMRT0ibWlkZGxlIixlLkJPVFRPTT0iYm90dG9tIn0pKEZ8fChGPXt9KSksRi5CT1RUT00sVC5IQUxGLFQuSEFMRjtjb25zdCBFZT17UEFHRV9OTzoie3BhZ2VOb30iLFBBR0VfQ09VTlQ6IntwYWdlQ291bnR9In07RC5DRU5URVIsRWUuUEFHRV9OTyxJLkFSQUJJQyxGLkJPVFRPTTt2YXIgeTsoZnVuY3Rpb24oZSl7ZS5URVhUPSJ0ZXh0IixlLklNQUdFPSJpbWFnZSJ9KSh5fHwoeT17fSkpLHkuVEVYVCxJLkFSQUJJQzt2YXIgVTsoZnVuY3Rpb24oZSl7ZS5QQUdFPSJwYWdlIixlLkNPTlRJTlVJVFk9ImNvbnRpbnVpdHkifSkoVXx8KFU9e30pKSxVLkNPTlRJTlVJVFk7ZnVuY3Rpb24gdWUoZSxjKXtjb25zdCBFPU9iamVjdC5rZXlzKGUpLEE9T2JqZWN0LmtleXMoYyk7aWYoRS5sZW5ndGghPT1BLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IFI9MDtSPEUubGVuZ3RoO1IrKyl7Y29uc3QgYT1FW1JdO2lmKGEhPT0idmFsdWUiJiYhKGE9PT0iZ3JvdXBJZHMiJiZBcnJheS5pc0FycmF5KGVbYV0pJiZBcnJheS5pc0FycmF5KGNbYV0pJiZyZShlW2FdLGNbYV0pKSYmZVthXSE9PWNbYV0pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQihlLGM9e30pe2NvbnN0e2V4dHJhUGlja0F0dHJzOkV9PWMsQT1bLi4uY2VdO0UmJkEucHVzaCguLi5FKTtjb25zdCBSPXt2YWx1ZTplLnZhbHVlPT09UD9gCmA6ZS52YWx1ZX07cmV0dXJuIEEuZm9yRWFjaChhPT57Y29uc3QgcD1lW2FdO3AhPT12b2lkIDAmJihSW2FdPXApfSksUn1mdW5jdGlvbiBoKGUsYz17fSl7Y29uc3R7ZXh0cmFQaWNrQXR0cnM6RSxpc0NsYXNzaWZ5QXJlYTpBPSExLGlzQ2xvbmU6Uj0hMH09YyxhPVI/YihlKTplLHA9W107bGV0IGk9MDtmb3IoO2k8YS5sZW5ndGg7KXtsZXQgdD1hW2ldO2lmKGk9PT0wJiZ0LnZhbHVlPT09UCYmIXQubGlzdElkJiYoIXQudHlwZXx8dC50eXBlPT09bi5URVhUKSl7aSsrO2NvbnRpbnVlfWlmKHQuYXJlYUlkKXtjb25zdCBsPXQuYXJlYUlkLGY9dC5hcmVhLHM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgbz1hW2ldO2lmKGwhPT1vLmFyZWFJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmFyZWEsZGVsZXRlIG8uYXJlYUlkLHMucHVzaChvKSxpKyt9Y29uc3Qgcj1oKHMsYyk7aWYoQSl7Y29uc3Qgbz17dHlwZTpuLkFSRUEsdmFsdWU6IiIsYXJlYUlkOmwsYXJlYTpmfTtvLnZhbHVlTGlzdD1yLHQ9b31lbHNle3Auc3BsaWNlKGksMCwuLi5yKTtjb250aW51ZX19ZWxzZSBpZih0LnRpdGxlSWQmJnQubGV2ZWwpe2NvbnN0IGw9dC50aXRsZUlkO2lmKGwpe2NvbnN0IGY9dC5sZXZlbCxzPXt0eXBlOm4uVElUTEUsdGl0bGU6dC50aXRsZSx0aXRsZUlkOmwsdmFsdWU6IiIsbGV2ZWw6Zn0scj1bXTtmb3IoO2k8YS5sZW5ndGg7KXtjb25zdCBvPWFbaV07aWYobCE9PW8udGl0bGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSBvLmxldmVsLGRlbGV0ZSBvLnRpdGxlLHIucHVzaChvKSxpKyt9cy52YWx1ZUxpc3Q9aChyLGMpLHQ9c319ZWxzZSBpZih0Lmxpc3RJZCYmdC5saXN0VHlwZSl7Y29uc3QgbD10Lmxpc3RJZDtpZihsKXtjb25zdCBmPXQubGlzdFR5cGUscz10Lmxpc3RTdHlsZSxyPXt0eXBlOm4uTElTVCx2YWx1ZToiIixsaXN0SWQ6bCxsaXN0VHlwZTpmLGxpc3RTdHlsZTpzfSxvPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IEw9YVtpXTtpZihsIT09TC5saXN0SWQpe2ktLTticmVha31kZWxldGUgTC5saXN0VHlwZSxkZWxldGUgTC5saXN0U3R5bGUsby5wdXNoKEwpLGkrK31yLnZhbHVlTGlzdD1oKG8sYyksdD1yfX1lbHNlIGlmKHQudHlwZT09PW4uVEFCTEUpe2lmKHQucGFnaW5nSWQpe2xldCBsPWkrMSxmPTA7Zm9yKDtsPGEubGVuZ3RoOyl7Y29uc3Qgcz1hW2xdO2lmKHMucGFnaW5nSWQ9PT10LnBhZ2luZ0lkKXQuaGVpZ2h0Kz1zLmhlaWdodCx0LnRyTGlzdC5wdXNoKC4uLnMudHJMaXN0KSxsKyssZisrO2Vsc2UgYnJlYWt9aSs9Zn1pZih0LnRyTGlzdClmb3IobGV0IGw9MDtsPHQudHJMaXN0Lmxlbmd0aDtsKyspe2NvbnN0IGY9dC50ckxpc3RbbF07ZGVsZXRlIGYuaWQ7Zm9yKGxldCBzPTA7czxmLnRkTGlzdC5sZW5ndGg7cysrKXtjb25zdCByPWYudGRMaXN0W3NdLG89e2NvbHNwYW46ci5jb2xzcGFuLHJvd3NwYW46ci5yb3dzcGFuLHZhbHVlOmgoci52YWx1ZSxYKGcoe30sYykse2lzQ2xhc3NpZnlBcmVhOiExfSkpfTtzZS5mb3JFYWNoKEw9Pntjb25zdCBTPXJbTF07UyE9PXZvaWQgMCYmKG9bTF09Uyl9KSxmLnRkTGlzdFtzXT1vfX19ZWxzZSBpZih0LnR5cGU9PT1uLkhZUEVSTElOSyl7Y29uc3QgbD10Lmh5cGVybGlua0lkO2lmKGwpe2NvbnN0IGY9e3R5cGU6bi5IWVBFUkxJTkssdmFsdWU6IiIsdXJsOnQudXJsfSxzPVtdO2Zvcig7aTxhLmxlbmd0aDspe2NvbnN0IHI9YVtpXTtpZihsIT09ci5oeXBlcmxpbmtJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIudXJsLHMucHVzaChyKSxpKyt9Zi52YWx1ZUxpc3Q9aChzLGMpLHQ9Zn19ZWxzZSBpZih0LnR5cGU9PT1uLkRBVEUpe2NvbnN0IGw9dC5kYXRlSWQ7aWYobCl7Y29uc3QgZj17dHlwZTpuLkRBVEUsdmFsdWU6IiIsZGF0ZUZvcm1hdDp0LmRhdGVGb3JtYXR9LHM9W107Zm9yKDtpPGEubGVuZ3RoOyl7Y29uc3Qgcj1hW2ldO2lmKGwhPT1yLmRhdGVJZCl7aS0tO2JyZWFrfWRlbGV0ZSByLnR5cGUsZGVsZXRlIHIuZGF0ZUZvcm1hdCxzLnB1c2gociksaSsrfWYudmFsdWVMaXN0PWgocyxjKSx0PWZ9fWVsc2UgaWYodC5jb250cm9sSWQpe2NvbnN0IGw9dC5jb250cm9sSWQ7aWYodC5jb250cm9sQ29tcG9uZW50PT09Qy5QUkVGSVgpe2NvbnN0IGY9W107bGV0IHM9ITEscj1pO2Zvcig7cjxhLmxlbmd0aDspe2NvbnN0IG89YVtyXTtpZihsIT09by5jb250cm9sSWQpYnJlYWs7by5jb250cm9sQ29tcG9uZW50PT09Qy5WQUxVRSYmKGRlbGV0ZSBvLmNvbnRyb2wsZGVsZXRlIG8uY29udHJvbElkLGYucHVzaChvKSksby5jb250cm9sQ29tcG9uZW50PT09Qy5QT1NURklYJiYocz0hMCkscisrfWlmKHMpe2NvbnN0IG89dyh0LGZlKSxMPWcoZyh7fSx0LmNvbnRyb2wpLG8pLFM9WChnKHt9LHcodCxvZSkpLHt0eXBlOm4uQ09OVFJPTCx2YWx1ZToiIixjb250cm9sOkwsY29udHJvbElkOmx9KTtTLmNvbnRyb2wudmFsdWU9aChmLGMpLHQ9QihTLHtleHRyYVBpY2tBdHRyczpFfSksaSs9ci1pLTF9fWlmKHQuY29udHJvbENvbXBvbmVudCYmKGRlbGV0ZSB0LmNvbnRyb2wsZGVsZXRlIHQuY29udHJvbElkLHQuY29udHJvbENvbXBvbmVudCE9PUMuVkFMVUUmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUFJFX1RFWFQmJnQuY29udHJvbENvbXBvbmVudCE9PUMuUE9TVF9URVhUKSl7aSsrO2NvbnRpbnVlfX1jb25zdCB4PUIodCx7ZXh0cmFQaWNrQXR0cnM6RX0pO2lmKCF0LnR5cGV8fHQudHlwZT09PW4uVEVYVHx8dC50eXBlPT09bi5TVUJTQ1JJUFR8fHQudHlwZT09PW4uU1VQRVJTQ1JJUFQpZm9yKDtpPGEubGVuZ3RoOyl7Y29uc3QgbD1hW2krMV07aWYoaSsrLGwmJnVlKHgsQihsLHtleHRyYVBpY2tBdHRyczpFfSkpKXtjb25zdCBmPWwudmFsdWU9PT1QP2AKYDpsLnZhbHVlO3gudmFsdWUrPWZ9ZWxzZSBicmVha31lbHNlIGkrKztwLnB1c2goeCl9cmV0dXJuIHB9b25tZXNzYWdlPWU9Pntjb25zdCBjPWUuZGF0YSx7b3B0aW9uczpFLGRhdGE6QX09Yyx7ZXh0cmFQaWNrQXR0cnM6Uj1bXX09RXx8e30sYT17aGVhZGVyOmgoQS5oZWFkZXIse2V4dHJhUGlja0F0dHJzOlIsaXNDbG9uZTohMX0pLG1haW46aChBLm1haW4se2V4dHJhUGlja0F0dHJzOlIsaXNDbGFzc2lmeUFyZWE6ITAsaXNDbG9uZTohMX0pLGZvb3RlcjpoKEEuZm9vdGVyLHtleHRyYVBpY2tBdHRyczpSLGlzQ2xvbmU6ITF9KX07cG9zdE1lc3NhZ2UoYSl9fSkoKTt9KSgpOwo=";
|
|
15669
15653
|
const blob = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
15670
15654
|
function WorkerWrapper() {
|
|
15671
15655
|
const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
@@ -21467,6 +21451,17 @@ class Command {
|
|
|
21467
21451
|
this.executeJumpControl = adapt.jumpControl.bind(adapt);
|
|
21468
21452
|
}
|
|
21469
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
|
+
}
|
|
21470
21465
|
function convertPxToPaperSize(width, height) {
|
|
21471
21466
|
if (width === 1125 && height === 1593) {
|
|
21472
21467
|
return {
|
|
@@ -22785,6 +22780,10 @@ class CommandAdapt {
|
|
|
22785
22780
|
if (innerWidth <= 0)
|
|
22786
22781
|
return 0;
|
|
22787
22782
|
const targetElementList = deepClone(elementList);
|
|
22783
|
+
formatElementList(targetElementList, {
|
|
22784
|
+
isHandleFirstElement: false,
|
|
22785
|
+
editorOptions: this.options
|
|
22786
|
+
});
|
|
22788
22787
|
const surroundElementList = pickSurroundElementList(targetElementList);
|
|
22789
22788
|
const rowList = this.draw.computeRowList({
|
|
22790
22789
|
innerWidth,
|
|
@@ -22898,6 +22897,8 @@ class CommandAdapt {
|
|
|
22898
22897
|
}
|
|
22899
22898
|
start--;
|
|
22900
22899
|
}
|
|
22900
|
+
const startParagraphNo = getParagraphNo(elementList, startIndex);
|
|
22901
|
+
const endParagraphNo = startIndex === endIndex ? startParagraphNo : getParagraphNo(elementList, endIndex);
|
|
22901
22902
|
return deepClone({
|
|
22902
22903
|
isCollapsed,
|
|
22903
22904
|
startElement,
|
|
@@ -22917,7 +22918,9 @@ class CommandAdapt {
|
|
|
22917
22918
|
selectionText,
|
|
22918
22919
|
selectionElementList,
|
|
22919
22920
|
titleId,
|
|
22920
|
-
titleStartPageNo
|
|
22921
|
+
titleStartPageNo,
|
|
22922
|
+
startParagraphNo,
|
|
22923
|
+
endParagraphNo
|
|
22921
22924
|
});
|
|
22922
22925
|
}
|
|
22923
22926
|
getRangeRow() {
|
|
@@ -24862,6 +24865,7 @@ class EventBus {
|
|
|
24862
24865
|
class Override {
|
|
24863
24866
|
constructor() {
|
|
24864
24867
|
__publicField(this, "paste");
|
|
24868
|
+
__publicField(this, "pasteImage");
|
|
24865
24869
|
__publicField(this, "copy");
|
|
24866
24870
|
__publicField(this, "drop");
|
|
24867
24871
|
}
|