@idraw/core 0.4.0-beta.23 → 0.4.0-beta.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/middleware/info/index.js +4 -4
- package/dist/esm/middleware/layout-selector/index.js +2 -2
- package/dist/esm/middleware/ruler/index.js +10 -9
- package/dist/esm/middleware/ruler/util.d.ts +9 -3
- package/dist/esm/middleware/ruler/util.js +26 -3
- package/dist/esm/middleware/scroller/index.js +3 -3
- package/dist/esm/middleware/scroller/util.d.ts +1 -1
- package/dist/esm/middleware/scroller/util.js +7 -7
- package/dist/esm/middleware/selector/index.js +15 -15
- package/dist/index.global.js +142 -80
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -656,23 +656,23 @@ var __privateMethod = (obj, member, method) => {
|
|
|
656
656
|
const ctx = canvas.getContext("2d");
|
|
657
657
|
if (createCustomContext2D) {
|
|
658
658
|
const viewContext = createCustomContext2D(ctxOpts);
|
|
659
|
-
const
|
|
660
|
-
const
|
|
659
|
+
const overlayContext = createCustomContext2D(ctxOpts);
|
|
660
|
+
const underlayContext = createCustomContext2D(ctxOpts);
|
|
661
661
|
const boardContext = createContext2D(Object.assign({ ctx }, ctxOpts));
|
|
662
662
|
const drawView = () => {
|
|
663
663
|
const { width: w2, height: h2 } = viewContext.$getSize();
|
|
664
664
|
boardContext.clearRect(0, 0, w2, h2);
|
|
665
|
-
boardContext.drawImage(
|
|
665
|
+
boardContext.drawImage(underlayContext.canvas, 0, 0, w2, h2);
|
|
666
666
|
boardContext.drawImage(viewContext.canvas, 0, 0, w2, h2);
|
|
667
|
-
boardContext.drawImage(
|
|
668
|
-
|
|
667
|
+
boardContext.drawImage(overlayContext.canvas, 0, 0, w2, h2);
|
|
668
|
+
underlayContext.clearRect(0, 0, w2, h2);
|
|
669
669
|
viewContext.clearRect(0, 0, w2, h2);
|
|
670
|
-
|
|
670
|
+
overlayContext.clearRect(0, 0, w2, h2);
|
|
671
671
|
};
|
|
672
672
|
const content = {
|
|
673
|
-
|
|
673
|
+
underlayContext,
|
|
674
674
|
viewContext,
|
|
675
|
-
|
|
675
|
+
overlayContext,
|
|
676
676
|
boardContext,
|
|
677
677
|
drawView
|
|
678
678
|
};
|
|
@@ -680,45 +680,45 @@ var __privateMethod = (obj, member, method) => {
|
|
|
680
680
|
}
|
|
681
681
|
if (offscreen === true) {
|
|
682
682
|
const viewContext = createOffscreenContext2D(ctxOpts);
|
|
683
|
-
const
|
|
684
|
-
const
|
|
683
|
+
const overlayContext = createOffscreenContext2D(ctxOpts);
|
|
684
|
+
const underlayContext = createOffscreenContext2D(ctxOpts);
|
|
685
685
|
const boardContext = createContext2D(Object.assign({ ctx }, ctxOpts));
|
|
686
686
|
const drawView = () => {
|
|
687
687
|
const { width: w2, height: h2 } = viewContext.$getSize();
|
|
688
688
|
boardContext.clearRect(0, 0, w2, h2);
|
|
689
|
-
boardContext.drawImage(
|
|
689
|
+
boardContext.drawImage(underlayContext.canvas, 0, 0, w2, h2);
|
|
690
690
|
boardContext.drawImage(viewContext.canvas, 0, 0, w2, h2);
|
|
691
|
-
boardContext.drawImage(
|
|
692
|
-
|
|
691
|
+
boardContext.drawImage(overlayContext.canvas, 0, 0, w2, h2);
|
|
692
|
+
underlayContext.clearRect(0, 0, w2, h2);
|
|
693
693
|
viewContext.clearRect(0, 0, w2, h2);
|
|
694
|
-
|
|
694
|
+
overlayContext.clearRect(0, 0, w2, h2);
|
|
695
695
|
};
|
|
696
696
|
const content = {
|
|
697
|
-
|
|
697
|
+
underlayContext,
|
|
698
698
|
viewContext,
|
|
699
|
-
|
|
699
|
+
overlayContext,
|
|
700
700
|
boardContext,
|
|
701
701
|
drawView
|
|
702
702
|
};
|
|
703
703
|
return content;
|
|
704
704
|
} else {
|
|
705
705
|
const viewContext = createContext2D(ctxOpts);
|
|
706
|
-
const
|
|
707
|
-
const
|
|
706
|
+
const overlayContext = createContext2D(ctxOpts);
|
|
707
|
+
const underlayContext = createContext2D(ctxOpts);
|
|
708
708
|
const boardContext = createContext2D(Object.assign({ ctx }, ctxOpts));
|
|
709
709
|
const drawView = () => {
|
|
710
710
|
boardContext.clearRect(0, 0, width, height);
|
|
711
|
-
boardContext.drawImage(
|
|
711
|
+
boardContext.drawImage(underlayContext.canvas, 0, 0, width, height);
|
|
712
712
|
boardContext.drawImage(viewContext.canvas, 0, 0, width, height);
|
|
713
|
-
boardContext.drawImage(
|
|
714
|
-
|
|
713
|
+
boardContext.drawImage(overlayContext.canvas, 0, 0, width, height);
|
|
714
|
+
underlayContext.clearRect(0, 0, width, height);
|
|
715
715
|
viewContext.clearRect(0, 0, width, height);
|
|
716
|
-
|
|
716
|
+
overlayContext.clearRect(0, 0, width, height);
|
|
717
717
|
};
|
|
718
718
|
const content = {
|
|
719
|
-
|
|
719
|
+
underlayContext,
|
|
720
720
|
viewContext,
|
|
721
|
-
|
|
721
|
+
overlayContext,
|
|
722
722
|
boardContext,
|
|
723
723
|
drawView
|
|
724
724
|
};
|
|
@@ -2488,7 +2488,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2488
2488
|
function drawImage(ctx, elem, opts) {
|
|
2489
2489
|
const content = opts.loader.getContent(elem);
|
|
2490
2490
|
const { viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2491
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calcViewElementSize(elem, { viewScaleInfo
|
|
2491
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calcViewElementSize(elem, { viewScaleInfo }) || elem;
|
|
2492
2492
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2493
2493
|
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2494
2494
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -2511,6 +2511,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2511
2511
|
viewScaleInfo,
|
|
2512
2512
|
viewSizeInfo
|
|
2513
2513
|
});
|
|
2514
|
+
const { detail } = elem;
|
|
2515
|
+
const { scaleMode, originW = 0, originH = 0 } = detail;
|
|
2516
|
+
const imageW = ctx.$undoPixelRatio(originW);
|
|
2517
|
+
const imageH = ctx.$undoPixelRatio(originH);
|
|
2514
2518
|
ctx.save();
|
|
2515
2519
|
ctx.fillStyle = "transparent";
|
|
2516
2520
|
ctx.beginPath();
|
|
@@ -2522,7 +2526,41 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2522
2526
|
ctx.closePath();
|
|
2523
2527
|
ctx.fill();
|
|
2524
2528
|
ctx.clip();
|
|
2525
|
-
|
|
2529
|
+
if (scaleMode && originH && originW) {
|
|
2530
|
+
let sx = 0;
|
|
2531
|
+
let sy = 0;
|
|
2532
|
+
let sWidth = imageW;
|
|
2533
|
+
let sHeight = imageH;
|
|
2534
|
+
const dx = x3;
|
|
2535
|
+
const dy = y3;
|
|
2536
|
+
const dWidth = w3;
|
|
2537
|
+
const dHeight = h3;
|
|
2538
|
+
if (imageW > elem.w || imageH > elem.h) {
|
|
2539
|
+
if (scaleMode === "fill") {
|
|
2540
|
+
const sourceScale = Math.max(elem.w / imageW, elem.h / imageH);
|
|
2541
|
+
const newImageWidth = imageW * sourceScale;
|
|
2542
|
+
const newImageHeight = imageH * sourceScale;
|
|
2543
|
+
sx = (newImageWidth - elem.w) / 2 / sourceScale;
|
|
2544
|
+
sy = (newImageHeight - elem.h) / 2 / sourceScale;
|
|
2545
|
+
sWidth = elem.w / sourceScale;
|
|
2546
|
+
sHeight = elem.h / sourceScale;
|
|
2547
|
+
} else if (scaleMode === "tile") {
|
|
2548
|
+
sx = 0;
|
|
2549
|
+
sy = 0;
|
|
2550
|
+
sWidth = elem.w;
|
|
2551
|
+
sHeight = elem.h;
|
|
2552
|
+
} else if (scaleMode === "fit") {
|
|
2553
|
+
const sourceScale = Math.min(elem.w / imageW, elem.h / imageH);
|
|
2554
|
+
sx = (imageW - elem.w / sourceScale) / 2;
|
|
2555
|
+
sy = (imageH - elem.h / sourceScale) / 2;
|
|
2556
|
+
sWidth = elem.w / sourceScale;
|
|
2557
|
+
sHeight = elem.h / sourceScale;
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
ctx.drawImage(content, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
|
|
2561
|
+
} else {
|
|
2562
|
+
ctx.drawImage(content, x3, y3, w3, h3);
|
|
2563
|
+
}
|
|
2526
2564
|
ctx.globalAlpha = parentOpacity;
|
|
2527
2565
|
ctx.restore();
|
|
2528
2566
|
}
|
|
@@ -2681,7 +2719,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2681
2719
|
}
|
|
2682
2720
|
function drawPath(ctx, elem, opts) {
|
|
2683
2721
|
const { detail } = elem;
|
|
2684
|
-
const { originX, originY, originW, originH } = detail;
|
|
2722
|
+
const { originX, originY, originW, originH, fillRule } = detail;
|
|
2685
2723
|
const { viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2686
2724
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calcViewElementSize(elem, { viewScaleInfo }) || elem;
|
|
2687
2725
|
const scaleW = w2 / originW;
|
|
@@ -2711,7 +2749,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2711
2749
|
const path2d = new Path2D(pathStr);
|
|
2712
2750
|
if (detail.fill) {
|
|
2713
2751
|
ctx.fillStyle = detail.fill;
|
|
2714
|
-
ctx.fill(path2d);
|
|
2752
|
+
ctx.fill(path2d, fillRule);
|
|
2715
2753
|
}
|
|
2716
2754
|
if (detail.stroke && detail.strokeWidth !== 0) {
|
|
2717
2755
|
ctx.strokeStyle = detail.stroke;
|
|
@@ -3795,15 +3833,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3795
3833
|
const originViewSize = sharer.getActiveViewSizeInfo();
|
|
3796
3834
|
const newViewSize = Object.assign(Object.assign({}, originViewSize), viewSize);
|
|
3797
3835
|
const { width, height, devicePixelRatio } = newViewSize;
|
|
3798
|
-
const {
|
|
3836
|
+
const { underlayContext, boardContext, overlayContext, viewContext } = __classPrivateFieldGet$1(this, _Viewer_opts, "f").boardContent;
|
|
3799
3837
|
boardContext.canvas.width = width * devicePixelRatio;
|
|
3800
3838
|
boardContext.canvas.height = height * devicePixelRatio;
|
|
3801
3839
|
boardContext.canvas.style.width = `${width}px`;
|
|
3802
3840
|
boardContext.canvas.style.height = `${height}px`;
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3841
|
+
underlayContext.canvas.width = width * devicePixelRatio;
|
|
3842
|
+
underlayContext.canvas.height = height * devicePixelRatio;
|
|
3843
|
+
overlayContext.canvas.width = width * devicePixelRatio;
|
|
3844
|
+
overlayContext.canvas.height = height * devicePixelRatio;
|
|
3807
3845
|
viewContext.canvas.width = width * devicePixelRatio;
|
|
3808
3846
|
viewContext.canvas.height = height * devicePixelRatio;
|
|
3809
3847
|
sharer.setActiveViewSizeInfo(newViewSize);
|
|
@@ -4036,18 +4074,18 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4036
4074
|
const { width, height, devicePixelRatio } = newViewSize;
|
|
4037
4075
|
const { boardContent } = __classPrivateFieldGet(this, _Board_opts, "f");
|
|
4038
4076
|
boardContent.viewContext.$resize({ width, height, devicePixelRatio });
|
|
4039
|
-
boardContent.
|
|
4077
|
+
boardContent.overlayContext.$resize({ width, height, devicePixelRatio });
|
|
4040
4078
|
boardContent.boardContext.$resize({ width, height, devicePixelRatio });
|
|
4041
|
-
boardContent.
|
|
4079
|
+
boardContent.underlayContext.$resize({ width, height, devicePixelRatio });
|
|
4042
4080
|
__classPrivateFieldGet(this, _Board_viewer, "f").drawFrame();
|
|
4043
4081
|
__classPrivateFieldGet(this, _Board_watcher, "f").trigger("resize", viewSize);
|
|
4044
4082
|
__classPrivateFieldGet(this, _Board_sharer, "f").setActiveViewSizeInfo(newViewSize);
|
|
4045
4083
|
}
|
|
4046
4084
|
clear() {
|
|
4047
4085
|
const { boardContent } = __classPrivateFieldGet(this, _Board_opts, "f");
|
|
4048
|
-
const {
|
|
4049
|
-
|
|
4050
|
-
|
|
4086
|
+
const { underlayContext, overlayContext, viewContext, boardContext } = boardContent;
|
|
4087
|
+
underlayContext.clearRect(0, 0, underlayContext.canvas.width, underlayContext.canvas.height);
|
|
4088
|
+
overlayContext.clearRect(0, 0, overlayContext.canvas.width, overlayContext.canvas.height);
|
|
4051
4089
|
viewContext.clearRect(0, 0, viewContext.canvas.width, viewContext.canvas.height);
|
|
4052
4090
|
boardContext.clearRect(0, 0, boardContext.canvas.width, boardContext.canvas.height);
|
|
4053
4091
|
__classPrivateFieldGet(this, _Board_instances, "m", _Board_handleClear).call(this);
|
|
@@ -5834,7 +5872,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5834
5872
|
};
|
|
5835
5873
|
const MiddlewareSelector = (opts) => {
|
|
5836
5874
|
const { viewer, sharer, boardContent, calculator, eventHub } = opts;
|
|
5837
|
-
const {
|
|
5875
|
+
const { overlayContext } = boardContent;
|
|
5838
5876
|
let prevPoint = null;
|
|
5839
5877
|
let inBusyMode = null;
|
|
5840
5878
|
sharer.setSharedStorage(keyActionType, null);
|
|
@@ -5891,7 +5929,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5891
5929
|
};
|
|
5892
5930
|
const pointTargetBaseOptions = () => {
|
|
5893
5931
|
return {
|
|
5894
|
-
ctx:
|
|
5932
|
+
ctx: overlayContext,
|
|
5895
5933
|
calculator,
|
|
5896
5934
|
data: sharer.getActiveStorage("data"),
|
|
5897
5935
|
selectedElements: getActiveElements(),
|
|
@@ -5982,7 +6020,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5982
6020
|
};
|
|
5983
6021
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
5984
6022
|
const isInActiveGroup = isPointInViewActiveGroup(e.point, {
|
|
5985
|
-
ctx:
|
|
6023
|
+
ctx: overlayContext,
|
|
5986
6024
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
5987
6025
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
5988
6026
|
groupQueue: sharer.getSharedStorage(keyGroupQueue)
|
|
@@ -6059,7 +6097,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6059
6097
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6060
6098
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6061
6099
|
if (isPointInViewActiveGroup(e.point, {
|
|
6062
|
-
ctx:
|
|
6100
|
+
ctx: overlayContext,
|
|
6063
6101
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6064
6102
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6065
6103
|
groupQueue
|
|
@@ -6404,10 +6442,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6404
6442
|
}) : null;
|
|
6405
6443
|
const isLock = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.lock);
|
|
6406
6444
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6407
|
-
drawGroupQueueVertexesWrappers(
|
|
6445
|
+
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
6408
6446
|
if (hoverElement && actionType !== "drag") {
|
|
6409
6447
|
if (isLock) {
|
|
6410
|
-
drawLockVertexesWrapper(
|
|
6448
|
+
drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
6411
6449
|
...drawBaseOpts,
|
|
6412
6450
|
controller: calcElementSizeController(hoverElement, {
|
|
6413
6451
|
groupQueue,
|
|
@@ -6416,11 +6454,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6416
6454
|
})
|
|
6417
6455
|
});
|
|
6418
6456
|
} else {
|
|
6419
|
-
drawHoverVertexesWrapper(
|
|
6457
|
+
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
6420
6458
|
}
|
|
6421
6459
|
}
|
|
6422
6460
|
if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
6423
|
-
drawSelectedElementControllersVertexes(
|
|
6461
|
+
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
6424
6462
|
...drawBaseOpts,
|
|
6425
6463
|
element: elem,
|
|
6426
6464
|
calculator,
|
|
@@ -6429,7 +6467,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6429
6467
|
if (actionType === "drag") {
|
|
6430
6468
|
const xLines = sharer2.getSharedStorage(keySelectedReferenceXLines);
|
|
6431
6469
|
const yLines = sharer2.getSharedStorage(keySelectedReferenceYLines);
|
|
6432
|
-
drawReferenceLines(
|
|
6470
|
+
drawReferenceLines(overlayContext, {
|
|
6433
6471
|
xLines,
|
|
6434
6472
|
yLines
|
|
6435
6473
|
});
|
|
@@ -6438,7 +6476,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6438
6476
|
} else {
|
|
6439
6477
|
if (hoverElement && actionType !== "drag") {
|
|
6440
6478
|
if (isLock) {
|
|
6441
|
-
drawLockVertexesWrapper(
|
|
6479
|
+
drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
6442
6480
|
...drawBaseOpts,
|
|
6443
6481
|
controller: calcElementSizeController(hoverElement, {
|
|
6444
6482
|
groupQueue,
|
|
@@ -6447,11 +6485,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6447
6485
|
})
|
|
6448
6486
|
});
|
|
6449
6487
|
} else {
|
|
6450
|
-
drawHoverVertexesWrapper(
|
|
6488
|
+
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
6451
6489
|
}
|
|
6452
6490
|
}
|
|
6453
6491
|
if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
6454
|
-
drawSelectedElementControllersVertexes(
|
|
6492
|
+
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
6455
6493
|
...drawBaseOpts,
|
|
6456
6494
|
element: elem,
|
|
6457
6495
|
calculator,
|
|
@@ -6460,13 +6498,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6460
6498
|
if (actionType === "drag") {
|
|
6461
6499
|
const xLines = sharer2.getSharedStorage(keySelectedReferenceXLines);
|
|
6462
6500
|
const yLines = sharer2.getSharedStorage(keySelectedReferenceYLines);
|
|
6463
|
-
drawReferenceLines(
|
|
6501
|
+
drawReferenceLines(overlayContext, {
|
|
6464
6502
|
xLines,
|
|
6465
6503
|
yLines
|
|
6466
6504
|
});
|
|
6467
6505
|
}
|
|
6468
6506
|
} else if (actionType === "area" && areaStart && areaEnd) {
|
|
6469
|
-
drawArea(
|
|
6507
|
+
drawArea(overlayContext, { start: areaStart, end: areaEnd });
|
|
6470
6508
|
} else if (["drag-list", "drag-list-end"].includes(actionType)) {
|
|
6471
6509
|
const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
|
|
6472
6510
|
viewScaleInfo: sharer2.getActiveViewScaleInfo(),
|
|
@@ -6474,7 +6512,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6474
6512
|
calculator
|
|
6475
6513
|
});
|
|
6476
6514
|
if (listAreaSize) {
|
|
6477
|
-
drawListArea(
|
|
6515
|
+
drawListArea(overlayContext, { areaSize: listAreaSize });
|
|
6478
6516
|
}
|
|
6479
6517
|
}
|
|
6480
6518
|
}
|
|
@@ -6496,8 +6534,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6496
6534
|
scrollBarColor: "#FFFFFF60",
|
|
6497
6535
|
showScrollBar: false
|
|
6498
6536
|
};
|
|
6499
|
-
function isPointAtRect(
|
|
6500
|
-
const ctx =
|
|
6537
|
+
function isPointAtRect(overlayContext, p, rect) {
|
|
6538
|
+
const ctx = overlayContext;
|
|
6501
6539
|
const { x: x2, y: y2, w: w2, h: h2 } = rect;
|
|
6502
6540
|
ctx.beginPath();
|
|
6503
6541
|
ctx.rect(x2, y2, w2, h2);
|
|
@@ -6507,12 +6545,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6507
6545
|
}
|
|
6508
6546
|
return false;
|
|
6509
6547
|
}
|
|
6510
|
-
function isPointInScrollThumb(
|
|
6548
|
+
function isPointInScrollThumb(overlayContext, p, opts) {
|
|
6511
6549
|
let thumbType = null;
|
|
6512
6550
|
const { xThumbRect, yThumbRect } = opts;
|
|
6513
|
-
if (xThumbRect && isPointAtRect(
|
|
6551
|
+
if (xThumbRect && isPointAtRect(overlayContext, p, xThumbRect)) {
|
|
6514
6552
|
thumbType = "X";
|
|
6515
|
-
} else if (yThumbRect && isPointAtRect(
|
|
6553
|
+
} else if (yThumbRect && isPointAtRect(overlayContext, p, yThumbRect)) {
|
|
6516
6554
|
thumbType = "Y";
|
|
6517
6555
|
}
|
|
6518
6556
|
return thumbType;
|
|
@@ -6636,8 +6674,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6636
6674
|
}
|
|
6637
6675
|
ctx.restore();
|
|
6638
6676
|
}
|
|
6639
|
-
function drawScrollerInfo(
|
|
6640
|
-
const ctx =
|
|
6677
|
+
function drawScrollerInfo(overlayContext, opts) {
|
|
6678
|
+
const ctx = overlayContext;
|
|
6641
6679
|
const { viewScaleInfo, viewSizeInfo, scrollInfo } = opts;
|
|
6642
6680
|
const { activeThumbType, prevPoint, activePoint } = scrollInfo;
|
|
6643
6681
|
const wrapper = calcScrollerInfo(viewScaleInfo, viewSizeInfo);
|
|
@@ -6680,7 +6718,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6680
6718
|
}
|
|
6681
6719
|
const MiddlewareScroller = (opts) => {
|
|
6682
6720
|
const { viewer, boardContent, sharer } = opts;
|
|
6683
|
-
const {
|
|
6721
|
+
const { overlayContext } = boardContent;
|
|
6684
6722
|
sharer.setSharedStorage(keyXThumbRect, null);
|
|
6685
6723
|
sharer.setSharedStorage(keyYThumbRect, null);
|
|
6686
6724
|
const clear = () => {
|
|
@@ -6714,7 +6752,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6714
6752
|
}
|
|
6715
6753
|
};
|
|
6716
6754
|
const getThumbType = (p) => {
|
|
6717
|
-
return isPointInScrollThumb(
|
|
6755
|
+
return isPointInScrollThumb(overlayContext, p, {
|
|
6718
6756
|
xThumbRect: sharer.getSharedStorage(keyXThumbRect),
|
|
6719
6757
|
yThumbRect: sharer.getSharedStorage(keyYThumbRect)
|
|
6720
6758
|
});
|
|
@@ -6761,7 +6799,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6761
6799
|
}
|
|
6762
6800
|
},
|
|
6763
6801
|
beforeDrawFrame({ snapshot }) {
|
|
6764
|
-
const { xThumbRect, yThumbRect } = drawScroller(
|
|
6802
|
+
const { xThumbRect, yThumbRect } = drawScroller(overlayContext, { snapshot });
|
|
6765
6803
|
sharer.setSharedStorage(keyXThumbRect, xThumbRect);
|
|
6766
6804
|
sharer.setSharedStorage(keyYThumbRect, yThumbRect);
|
|
6767
6805
|
}
|
|
@@ -6806,12 +6844,35 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6806
6844
|
const gridKeyColor = "#AAAAAA40";
|
|
6807
6845
|
const lineSize = 1;
|
|
6808
6846
|
const selectedAreaColor = "#196097";
|
|
6847
|
+
const limitRulerUnitList = [1, 2, 5, 10, 20, 50, 100, 200, 500];
|
|
6848
|
+
function limitRulerUnit(unit) {
|
|
6849
|
+
unit = Math.max(limitRulerUnitList[0], Math.min(unit, limitRulerUnitList[limitRulerUnitList.length - 1]));
|
|
6850
|
+
for (let i = 0; i < limitRulerUnitList.length - 1; i++) {
|
|
6851
|
+
const thisUnit = limitRulerUnitList[i];
|
|
6852
|
+
const nextUnit = limitRulerUnitList[i + 1];
|
|
6853
|
+
if (unit > nextUnit) {
|
|
6854
|
+
continue;
|
|
6855
|
+
}
|
|
6856
|
+
if (unit === thisUnit) {
|
|
6857
|
+
return unit;
|
|
6858
|
+
}
|
|
6859
|
+
if (unit === nextUnit) {
|
|
6860
|
+
return unit;
|
|
6861
|
+
}
|
|
6862
|
+
const mid = (thisUnit + nextUnit) / 2;
|
|
6863
|
+
if (unit <= mid) {
|
|
6864
|
+
return thisUnit;
|
|
6865
|
+
}
|
|
6866
|
+
return nextUnit;
|
|
6867
|
+
}
|
|
6868
|
+
return unit;
|
|
6869
|
+
}
|
|
6809
6870
|
function calcRulerScaleList(opts) {
|
|
6810
6871
|
const { scale, viewLength, viewOffset } = opts;
|
|
6811
6872
|
const list = [];
|
|
6812
6873
|
let rulerUnit = 10;
|
|
6813
6874
|
rulerUnit = formatNumber(rulerUnit / scale, { decimalPlaces: 0 });
|
|
6814
|
-
rulerUnit =
|
|
6875
|
+
rulerUnit = limitRulerUnit(rulerUnit);
|
|
6815
6876
|
const rulerKeyUnit = rulerUnit * 10;
|
|
6816
6877
|
const rulerSubKeyUnit = rulerUnit * 5;
|
|
6817
6878
|
let index = 0;
|
|
@@ -6834,7 +6895,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6834
6895
|
list.push(rulerScale);
|
|
6835
6896
|
index++;
|
|
6836
6897
|
}
|
|
6837
|
-
return list;
|
|
6898
|
+
return { list, rulerUnit };
|
|
6838
6899
|
}
|
|
6839
6900
|
function calcXRulerScaleList(opts) {
|
|
6840
6901
|
const { viewScaleInfo, viewSizeInfo } = opts;
|
|
@@ -6946,7 +7007,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6946
7007
|
ctx.strokeStyle = borderColor;
|
|
6947
7008
|
ctx.stroke();
|
|
6948
7009
|
}
|
|
6949
|
-
function
|
|
7010
|
+
function drawGrid(ctx, opts) {
|
|
6950
7011
|
const { xList, yList, viewSizeInfo } = opts;
|
|
6951
7012
|
const { width, height } = viewSizeInfo;
|
|
6952
7013
|
for (let i = 0; i < xList.length; i++) {
|
|
@@ -7034,7 +7095,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7034
7095
|
const middlewareEventRuler = "@middleware/show-ruler";
|
|
7035
7096
|
const MiddlewareRuler = (opts) => {
|
|
7036
7097
|
const { boardContent, viewer, eventHub, calculator } = opts;
|
|
7037
|
-
const {
|
|
7098
|
+
const { overlayContext, underlayContext } = boardContent;
|
|
7038
7099
|
let show = true;
|
|
7039
7100
|
let showGrid = true;
|
|
7040
7101
|
const rulerCallback = (e) => {
|
|
@@ -7060,14 +7121,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7060
7121
|
if (show === true) {
|
|
7061
7122
|
const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
|
|
7062
7123
|
const viewSizeInfo = getViewSizeInfoFromSnapshot(snapshot);
|
|
7063
|
-
drawScrollerSelectedArea(
|
|
7064
|
-
drawRulerBackground(
|
|
7065
|
-
const xList = calcXRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7066
|
-
drawXRuler(
|
|
7067
|
-
const yList = calcYRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7068
|
-
drawYRuler(
|
|
7124
|
+
drawScrollerSelectedArea(overlayContext, { snapshot, calculator });
|
|
7125
|
+
drawRulerBackground(overlayContext, { viewScaleInfo, viewSizeInfo });
|
|
7126
|
+
const { list: xList, rulerUnit } = calcXRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7127
|
+
drawXRuler(overlayContext, { scaleList: xList });
|
|
7128
|
+
const { list: yList } = calcYRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7129
|
+
drawYRuler(overlayContext, { scaleList: yList });
|
|
7069
7130
|
if (showGrid === true) {
|
|
7070
|
-
|
|
7131
|
+
const ctx = rulerUnit === 1 ? overlayContext : underlayContext;
|
|
7132
|
+
drawGrid(ctx, {
|
|
7071
7133
|
xList,
|
|
7072
7134
|
yList,
|
|
7073
7135
|
viewScaleInfo,
|
|
@@ -7236,7 +7298,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7236
7298
|
const infoLineHeight = 16;
|
|
7237
7299
|
const MiddlewareInfo = (opts) => {
|
|
7238
7300
|
const { boardContent, calculator } = opts;
|
|
7239
|
-
const {
|
|
7301
|
+
const { overlayContext } = boardContent;
|
|
7240
7302
|
return {
|
|
7241
7303
|
name: "@middleware/info",
|
|
7242
7304
|
beforeDrawFrame({ snapshot }) {
|
|
@@ -7292,7 +7354,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7292
7354
|
const xyText = `${formatNumber(x22, { decimalPlaces: 0 })},${formatNumber(y22, { decimalPlaces: 0 })}`;
|
|
7293
7355
|
const whText = `${formatNumber(w22, { decimalPlaces: 0 })}x${formatNumber(h22, { decimalPlaces: 0 })}`;
|
|
7294
7356
|
const angleText = `${formatNumber(elem.angle || 0, { decimalPlaces: 0 })}°`;
|
|
7295
|
-
drawSizeInfoText(
|
|
7357
|
+
drawSizeInfoText(overlayContext, {
|
|
7296
7358
|
point: {
|
|
7297
7359
|
x: rectInfo.bottom.x,
|
|
7298
7360
|
y: rectInfo.bottom.y + infoFontSize
|
|
@@ -7305,7 +7367,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7305
7367
|
color: infoTextColor,
|
|
7306
7368
|
background: infoBackground
|
|
7307
7369
|
});
|
|
7308
|
-
drawPositionInfoText(
|
|
7370
|
+
drawPositionInfoText(overlayContext, {
|
|
7309
7371
|
point: {
|
|
7310
7372
|
x: rectInfo.topLeft.x,
|
|
7311
7373
|
y: rectInfo.topLeft.y - infoFontSize * 2
|
|
@@ -7318,7 +7380,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7318
7380
|
color: infoTextColor,
|
|
7319
7381
|
background: infoBackground
|
|
7320
7382
|
});
|
|
7321
|
-
drawAngleInfoText(
|
|
7383
|
+
drawAngleInfoText(overlayContext, {
|
|
7322
7384
|
point: {
|
|
7323
7385
|
x: rectInfo.top.x + infoFontSize,
|
|
7324
7386
|
y: rectInfo.top.y - infoFontSize * 2
|
|
@@ -7433,7 +7495,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7433
7495
|
}
|
|
7434
7496
|
const MiddlewareLayoutSelector = (opts) => {
|
|
7435
7497
|
const { sharer, boardContent, calculator, viewer, eventHub } = opts;
|
|
7436
|
-
const {
|
|
7498
|
+
const { overlayContext } = boardContent;
|
|
7437
7499
|
let prevPoint = null;
|
|
7438
7500
|
const clear = () => {
|
|
7439
7501
|
prevPoint = null;
|
|
@@ -7653,7 +7715,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7653
7715
|
const { x: x2, y: y2, w: w2, h: h2 } = activeStore.data.layout;
|
|
7654
7716
|
const size = { x: x2, y: y2, w: w2, h: h2 };
|
|
7655
7717
|
const controller = calcLayoutSizeController(size, { viewScaleInfo, controllerSize: 10 });
|
|
7656
|
-
drawLayoutController(
|
|
7718
|
+
drawLayoutController(overlayContext, { controller, operations: activeStore.data.layout.operations || {} });
|
|
7657
7719
|
}
|
|
7658
7720
|
}
|
|
7659
7721
|
},
|