@idraw/core 0.4.0-beta.22 → 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 +190 -111
- 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
|
};
|
|
@@ -1445,9 +1445,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1445
1445
|
if (p.x > mixX && p.x < maxX && p.y > mixY && p.y < maxY) {
|
|
1446
1446
|
return true;
|
|
1447
1447
|
}
|
|
1448
|
-
if ((opts === null || opts === void 0 ? void 0 : opts.includeBorder) === true && (p.x === mixX || p.x === maxX || p.y === mixY || p.y === maxY)) {
|
|
1449
|
-
return true;
|
|
1450
|
-
}
|
|
1451
1448
|
return false;
|
|
1452
1449
|
}
|
|
1453
1450
|
function getViewPointAtElement(p, opts) {
|
|
@@ -2491,7 +2488,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2491
2488
|
function drawImage(ctx, elem, opts) {
|
|
2492
2489
|
const content = opts.loader.getContent(elem);
|
|
2493
2490
|
const { viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2494
|
-
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;
|
|
2495
2492
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2496
2493
|
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2497
2494
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -2514,6 +2511,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2514
2511
|
viewScaleInfo,
|
|
2515
2512
|
viewSizeInfo
|
|
2516
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);
|
|
2517
2518
|
ctx.save();
|
|
2518
2519
|
ctx.fillStyle = "transparent";
|
|
2519
2520
|
ctx.beginPath();
|
|
@@ -2525,7 +2526,41 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2525
2526
|
ctx.closePath();
|
|
2526
2527
|
ctx.fill();
|
|
2527
2528
|
ctx.clip();
|
|
2528
|
-
|
|
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
|
+
}
|
|
2529
2564
|
ctx.globalAlpha = parentOpacity;
|
|
2530
2565
|
ctx.restore();
|
|
2531
2566
|
}
|
|
@@ -2590,46 +2625,58 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2590
2625
|
fontSize: fontSize2,
|
|
2591
2626
|
fontFamily: detail.fontFamily
|
|
2592
2627
|
});
|
|
2593
|
-
|
|
2628
|
+
let detailText = detail.text.replace(/\r\n/gi, "\n");
|
|
2629
|
+
if (detail.textTransform === "lowercase") {
|
|
2630
|
+
detailText = detailText.toLowerCase();
|
|
2631
|
+
} else if (detail.textTransform === "uppercase") {
|
|
2632
|
+
detailText = detailText.toUpperCase();
|
|
2633
|
+
}
|
|
2594
2634
|
const fontHeight = lineHeight2;
|
|
2595
2635
|
const detailTextList = detailText.split("\n");
|
|
2596
2636
|
const lines = [];
|
|
2597
2637
|
let lineNum = 0;
|
|
2598
2638
|
detailTextList.forEach((tempText, idx) => {
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
}
|
|
2612
|
-
if ((lineNum + 1) * fontHeight > h2) {
|
|
2613
|
-
break;
|
|
2614
|
-
}
|
|
2615
|
-
if (tempText.length - 1 === i) {
|
|
2616
|
-
if ((lineNum + 1) * fontHeight <= h2) {
|
|
2639
|
+
if (detail.minInlineSize === "maxContent") {
|
|
2640
|
+
lines.push({
|
|
2641
|
+
text: tempText,
|
|
2642
|
+
width: ctx.$undoPixelRatio(ctx.measureText(tempText).width)
|
|
2643
|
+
});
|
|
2644
|
+
} else {
|
|
2645
|
+
let lineText = "";
|
|
2646
|
+
if (tempText.length > 0) {
|
|
2647
|
+
for (let i = 0; i < tempText.length; i++) {
|
|
2648
|
+
if (ctx.measureText(lineText + (tempText[i] || "")).width <= ctx.$doPixelRatio(w2)) {
|
|
2649
|
+
lineText += tempText[i] || "";
|
|
2650
|
+
} else {
|
|
2617
2651
|
lines.push({
|
|
2618
2652
|
text: lineText,
|
|
2619
2653
|
width: ctx.$undoPixelRatio(ctx.measureText(lineText).width)
|
|
2620
2654
|
});
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2655
|
+
lineText = tempText[i] || "";
|
|
2656
|
+
lineNum++;
|
|
2657
|
+
}
|
|
2658
|
+
if ((lineNum + 1) * fontHeight > h2) {
|
|
2624
2659
|
break;
|
|
2625
2660
|
}
|
|
2661
|
+
if (tempText.length - 1 === i) {
|
|
2662
|
+
if ((lineNum + 1) * fontHeight <= h2) {
|
|
2663
|
+
lines.push({
|
|
2664
|
+
text: lineText,
|
|
2665
|
+
width: ctx.$undoPixelRatio(ctx.measureText(lineText).width)
|
|
2666
|
+
});
|
|
2667
|
+
if (idx < detailTextList.length - 1) {
|
|
2668
|
+
lineNum++;
|
|
2669
|
+
}
|
|
2670
|
+
break;
|
|
2671
|
+
}
|
|
2672
|
+
}
|
|
2626
2673
|
}
|
|
2674
|
+
} else {
|
|
2675
|
+
lines.push({
|
|
2676
|
+
text: "",
|
|
2677
|
+
width: 0
|
|
2678
|
+
});
|
|
2627
2679
|
}
|
|
2628
|
-
} else {
|
|
2629
|
-
lines.push({
|
|
2630
|
-
text: "",
|
|
2631
|
-
width: 0
|
|
2632
|
-
});
|
|
2633
2680
|
}
|
|
2634
2681
|
});
|
|
2635
2682
|
let startY = 0;
|
|
@@ -2672,9 +2719,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2672
2719
|
}
|
|
2673
2720
|
function drawPath(ctx, elem, opts) {
|
|
2674
2721
|
const { detail } = elem;
|
|
2675
|
-
const { originX, originY, originW, originH } = detail;
|
|
2722
|
+
const { originX, originY, originW, originH, fillRule } = detail;
|
|
2676
2723
|
const { viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2677
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calcViewElementSize(elem, { viewScaleInfo
|
|
2724
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calcViewElementSize(elem, { viewScaleInfo }) || elem;
|
|
2678
2725
|
const scaleW = w2 / originW;
|
|
2679
2726
|
const scaleH = h2 / originH;
|
|
2680
2727
|
const viewOriginX = originX * scaleW;
|
|
@@ -2702,7 +2749,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2702
2749
|
const path2d = new Path2D(pathStr);
|
|
2703
2750
|
if (detail.fill) {
|
|
2704
2751
|
ctx.fillStyle = detail.fill;
|
|
2705
|
-
ctx.fill(path2d);
|
|
2752
|
+
ctx.fill(path2d, fillRule);
|
|
2706
2753
|
}
|
|
2707
2754
|
if (detail.stroke && detail.strokeWidth !== 0) {
|
|
2708
2755
|
ctx.strokeStyle = detail.stroke;
|
|
@@ -3786,15 +3833,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3786
3833
|
const originViewSize = sharer.getActiveViewSizeInfo();
|
|
3787
3834
|
const newViewSize = Object.assign(Object.assign({}, originViewSize), viewSize);
|
|
3788
3835
|
const { width, height, devicePixelRatio } = newViewSize;
|
|
3789
|
-
const {
|
|
3836
|
+
const { underlayContext, boardContext, overlayContext, viewContext } = __classPrivateFieldGet$1(this, _Viewer_opts, "f").boardContent;
|
|
3790
3837
|
boardContext.canvas.width = width * devicePixelRatio;
|
|
3791
3838
|
boardContext.canvas.height = height * devicePixelRatio;
|
|
3792
3839
|
boardContext.canvas.style.width = `${width}px`;
|
|
3793
3840
|
boardContext.canvas.style.height = `${height}px`;
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3841
|
+
underlayContext.canvas.width = width * devicePixelRatio;
|
|
3842
|
+
underlayContext.canvas.height = height * devicePixelRatio;
|
|
3843
|
+
overlayContext.canvas.width = width * devicePixelRatio;
|
|
3844
|
+
overlayContext.canvas.height = height * devicePixelRatio;
|
|
3798
3845
|
viewContext.canvas.width = width * devicePixelRatio;
|
|
3799
3846
|
viewContext.canvas.height = height * devicePixelRatio;
|
|
3800
3847
|
sharer.setActiveViewSizeInfo(newViewSize);
|
|
@@ -4027,18 +4074,18 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4027
4074
|
const { width, height, devicePixelRatio } = newViewSize;
|
|
4028
4075
|
const { boardContent } = __classPrivateFieldGet(this, _Board_opts, "f");
|
|
4029
4076
|
boardContent.viewContext.$resize({ width, height, devicePixelRatio });
|
|
4030
|
-
boardContent.
|
|
4077
|
+
boardContent.overlayContext.$resize({ width, height, devicePixelRatio });
|
|
4031
4078
|
boardContent.boardContext.$resize({ width, height, devicePixelRatio });
|
|
4032
|
-
boardContent.
|
|
4079
|
+
boardContent.underlayContext.$resize({ width, height, devicePixelRatio });
|
|
4033
4080
|
__classPrivateFieldGet(this, _Board_viewer, "f").drawFrame();
|
|
4034
4081
|
__classPrivateFieldGet(this, _Board_watcher, "f").trigger("resize", viewSize);
|
|
4035
4082
|
__classPrivateFieldGet(this, _Board_sharer, "f").setActiveViewSizeInfo(newViewSize);
|
|
4036
4083
|
}
|
|
4037
4084
|
clear() {
|
|
4038
4085
|
const { boardContent } = __classPrivateFieldGet(this, _Board_opts, "f");
|
|
4039
|
-
const {
|
|
4040
|
-
|
|
4041
|
-
|
|
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);
|
|
4042
4089
|
viewContext.clearRect(0, 0, viewContext.canvas.width, viewContext.canvas.height);
|
|
4043
4090
|
boardContext.clearRect(0, 0, boardContext.canvas.width, boardContext.canvas.height);
|
|
4044
4091
|
__classPrivateFieldGet(this, _Board_instances, "m", _Board_handleClear).call(this);
|
|
@@ -5412,6 +5459,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5412
5459
|
if (!targetRectInfo) {
|
|
5413
5460
|
return null;
|
|
5414
5461
|
}
|
|
5462
|
+
const vTargetLineDotMap = {};
|
|
5463
|
+
const hTargetLineDotMap = {};
|
|
5415
5464
|
const vRefLineDotMap = {};
|
|
5416
5465
|
const hRefLineDotMap = {};
|
|
5417
5466
|
const vHelperLineDotMapList = [];
|
|
@@ -5419,6 +5468,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5419
5468
|
let sortedRefXKeys = [];
|
|
5420
5469
|
let sortedRefYKeys = [];
|
|
5421
5470
|
const targetBox = getViewBoxInfo(targetRectInfo);
|
|
5471
|
+
vTargetLineDotMap[targetBox.minX] = [targetBox.minY, targetBox.midY, targetBox.maxY];
|
|
5472
|
+
vTargetLineDotMap[targetBox.midX] = [targetBox.minY, targetBox.midY, targetBox.maxY];
|
|
5473
|
+
vTargetLineDotMap[targetBox.maxX] = [targetBox.minY, targetBox.midY, targetBox.maxY];
|
|
5474
|
+
hTargetLineDotMap[targetBox.minY] = [targetBox.minX, targetBox.midX, targetBox.maxX];
|
|
5475
|
+
hTargetLineDotMap[targetBox.midY] = [targetBox.minX, targetBox.midX, targetBox.maxX];
|
|
5476
|
+
hTargetLineDotMap[targetBox.maxY] = [targetBox.minX, targetBox.midX, targetBox.maxX];
|
|
5422
5477
|
siblingViewRectInfoList.forEach((info) => {
|
|
5423
5478
|
const box = getViewBoxInfo(info);
|
|
5424
5479
|
if (!vRefLineDotMap[box.minX]) {
|
|
@@ -5817,7 +5872,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5817
5872
|
};
|
|
5818
5873
|
const MiddlewareSelector = (opts) => {
|
|
5819
5874
|
const { viewer, sharer, boardContent, calculator, eventHub } = opts;
|
|
5820
|
-
const {
|
|
5875
|
+
const { overlayContext } = boardContent;
|
|
5821
5876
|
let prevPoint = null;
|
|
5822
5877
|
let inBusyMode = null;
|
|
5823
5878
|
sharer.setSharedStorage(keyActionType, null);
|
|
@@ -5874,7 +5929,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5874
5929
|
};
|
|
5875
5930
|
const pointTargetBaseOptions = () => {
|
|
5876
5931
|
return {
|
|
5877
|
-
ctx:
|
|
5932
|
+
ctx: overlayContext,
|
|
5878
5933
|
calculator,
|
|
5879
5934
|
data: sharer.getActiveStorage("data"),
|
|
5880
5935
|
selectedElements: getActiveElements(),
|
|
@@ -5965,7 +6020,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5965
6020
|
};
|
|
5966
6021
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
5967
6022
|
const isInActiveGroup = isPointInViewActiveGroup(e.point, {
|
|
5968
|
-
ctx:
|
|
6023
|
+
ctx: overlayContext,
|
|
5969
6024
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
5970
6025
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
5971
6026
|
groupQueue: sharer.getSharedStorage(keyGroupQueue)
|
|
@@ -6042,7 +6097,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6042
6097
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6043
6098
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6044
6099
|
if (isPointInViewActiveGroup(e.point, {
|
|
6045
|
-
ctx:
|
|
6100
|
+
ctx: overlayContext,
|
|
6046
6101
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6047
6102
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6048
6103
|
groupQueue
|
|
@@ -6387,10 +6442,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6387
6442
|
}) : null;
|
|
6388
6443
|
const isLock = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.lock);
|
|
6389
6444
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6390
|
-
drawGroupQueueVertexesWrappers(
|
|
6445
|
+
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
6391
6446
|
if (hoverElement && actionType !== "drag") {
|
|
6392
6447
|
if (isLock) {
|
|
6393
|
-
drawLockVertexesWrapper(
|
|
6448
|
+
drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
6394
6449
|
...drawBaseOpts,
|
|
6395
6450
|
controller: calcElementSizeController(hoverElement, {
|
|
6396
6451
|
groupQueue,
|
|
@@ -6399,11 +6454,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6399
6454
|
})
|
|
6400
6455
|
});
|
|
6401
6456
|
} else {
|
|
6402
|
-
drawHoverVertexesWrapper(
|
|
6457
|
+
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
6403
6458
|
}
|
|
6404
6459
|
}
|
|
6405
6460
|
if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
6406
|
-
drawSelectedElementControllersVertexes(
|
|
6461
|
+
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
6407
6462
|
...drawBaseOpts,
|
|
6408
6463
|
element: elem,
|
|
6409
6464
|
calculator,
|
|
@@ -6412,7 +6467,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6412
6467
|
if (actionType === "drag") {
|
|
6413
6468
|
const xLines = sharer2.getSharedStorage(keySelectedReferenceXLines);
|
|
6414
6469
|
const yLines = sharer2.getSharedStorage(keySelectedReferenceYLines);
|
|
6415
|
-
drawReferenceLines(
|
|
6470
|
+
drawReferenceLines(overlayContext, {
|
|
6416
6471
|
xLines,
|
|
6417
6472
|
yLines
|
|
6418
6473
|
});
|
|
@@ -6421,7 +6476,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6421
6476
|
} else {
|
|
6422
6477
|
if (hoverElement && actionType !== "drag") {
|
|
6423
6478
|
if (isLock) {
|
|
6424
|
-
drawLockVertexesWrapper(
|
|
6479
|
+
drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
6425
6480
|
...drawBaseOpts,
|
|
6426
6481
|
controller: calcElementSizeController(hoverElement, {
|
|
6427
6482
|
groupQueue,
|
|
@@ -6430,11 +6485,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6430
6485
|
})
|
|
6431
6486
|
});
|
|
6432
6487
|
} else {
|
|
6433
|
-
drawHoverVertexesWrapper(
|
|
6488
|
+
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
6434
6489
|
}
|
|
6435
6490
|
}
|
|
6436
6491
|
if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
6437
|
-
drawSelectedElementControllersVertexes(
|
|
6492
|
+
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
6438
6493
|
...drawBaseOpts,
|
|
6439
6494
|
element: elem,
|
|
6440
6495
|
calculator,
|
|
@@ -6443,13 +6498,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6443
6498
|
if (actionType === "drag") {
|
|
6444
6499
|
const xLines = sharer2.getSharedStorage(keySelectedReferenceXLines);
|
|
6445
6500
|
const yLines = sharer2.getSharedStorage(keySelectedReferenceYLines);
|
|
6446
|
-
drawReferenceLines(
|
|
6501
|
+
drawReferenceLines(overlayContext, {
|
|
6447
6502
|
xLines,
|
|
6448
6503
|
yLines
|
|
6449
6504
|
});
|
|
6450
6505
|
}
|
|
6451
6506
|
} else if (actionType === "area" && areaStart && areaEnd) {
|
|
6452
|
-
drawArea(
|
|
6507
|
+
drawArea(overlayContext, { start: areaStart, end: areaEnd });
|
|
6453
6508
|
} else if (["drag-list", "drag-list-end"].includes(actionType)) {
|
|
6454
6509
|
const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
|
|
6455
6510
|
viewScaleInfo: sharer2.getActiveViewScaleInfo(),
|
|
@@ -6457,7 +6512,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6457
6512
|
calculator
|
|
6458
6513
|
});
|
|
6459
6514
|
if (listAreaSize) {
|
|
6460
|
-
drawListArea(
|
|
6515
|
+
drawListArea(overlayContext, { areaSize: listAreaSize });
|
|
6461
6516
|
}
|
|
6462
6517
|
}
|
|
6463
6518
|
}
|
|
@@ -6479,8 +6534,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6479
6534
|
scrollBarColor: "#FFFFFF60",
|
|
6480
6535
|
showScrollBar: false
|
|
6481
6536
|
};
|
|
6482
|
-
function isPointAtRect(
|
|
6483
|
-
const ctx =
|
|
6537
|
+
function isPointAtRect(overlayContext, p, rect) {
|
|
6538
|
+
const ctx = overlayContext;
|
|
6484
6539
|
const { x: x2, y: y2, w: w2, h: h2 } = rect;
|
|
6485
6540
|
ctx.beginPath();
|
|
6486
6541
|
ctx.rect(x2, y2, w2, h2);
|
|
@@ -6490,12 +6545,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6490
6545
|
}
|
|
6491
6546
|
return false;
|
|
6492
6547
|
}
|
|
6493
|
-
function isPointInScrollThumb(
|
|
6548
|
+
function isPointInScrollThumb(overlayContext, p, opts) {
|
|
6494
6549
|
let thumbType = null;
|
|
6495
6550
|
const { xThumbRect, yThumbRect } = opts;
|
|
6496
|
-
if (xThumbRect && isPointAtRect(
|
|
6551
|
+
if (xThumbRect && isPointAtRect(overlayContext, p, xThumbRect)) {
|
|
6497
6552
|
thumbType = "X";
|
|
6498
|
-
} else if (yThumbRect && isPointAtRect(
|
|
6553
|
+
} else if (yThumbRect && isPointAtRect(overlayContext, p, yThumbRect)) {
|
|
6499
6554
|
thumbType = "Y";
|
|
6500
6555
|
}
|
|
6501
6556
|
return thumbType;
|
|
@@ -6619,8 +6674,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6619
6674
|
}
|
|
6620
6675
|
ctx.restore();
|
|
6621
6676
|
}
|
|
6622
|
-
function drawScrollerInfo(
|
|
6623
|
-
const ctx =
|
|
6677
|
+
function drawScrollerInfo(overlayContext, opts) {
|
|
6678
|
+
const ctx = overlayContext;
|
|
6624
6679
|
const { viewScaleInfo, viewSizeInfo, scrollInfo } = opts;
|
|
6625
6680
|
const { activeThumbType, prevPoint, activePoint } = scrollInfo;
|
|
6626
6681
|
const wrapper = calcScrollerInfo(viewScaleInfo, viewSizeInfo);
|
|
@@ -6663,7 +6718,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6663
6718
|
}
|
|
6664
6719
|
const MiddlewareScroller = (opts) => {
|
|
6665
6720
|
const { viewer, boardContent, sharer } = opts;
|
|
6666
|
-
const {
|
|
6721
|
+
const { overlayContext } = boardContent;
|
|
6667
6722
|
sharer.setSharedStorage(keyXThumbRect, null);
|
|
6668
6723
|
sharer.setSharedStorage(keyYThumbRect, null);
|
|
6669
6724
|
const clear = () => {
|
|
@@ -6697,7 +6752,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6697
6752
|
}
|
|
6698
6753
|
};
|
|
6699
6754
|
const getThumbType = (p) => {
|
|
6700
|
-
return isPointInScrollThumb(
|
|
6755
|
+
return isPointInScrollThumb(overlayContext, p, {
|
|
6701
6756
|
xThumbRect: sharer.getSharedStorage(keyXThumbRect),
|
|
6702
6757
|
yThumbRect: sharer.getSharedStorage(keyYThumbRect)
|
|
6703
6758
|
});
|
|
@@ -6744,7 +6799,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6744
6799
|
}
|
|
6745
6800
|
},
|
|
6746
6801
|
beforeDrawFrame({ snapshot }) {
|
|
6747
|
-
const { xThumbRect, yThumbRect } = drawScroller(
|
|
6802
|
+
const { xThumbRect, yThumbRect } = drawScroller(overlayContext, { snapshot });
|
|
6748
6803
|
sharer.setSharedStorage(keyXThumbRect, xThumbRect);
|
|
6749
6804
|
sharer.setSharedStorage(keyYThumbRect, yThumbRect);
|
|
6750
6805
|
}
|
|
@@ -6789,12 +6844,35 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6789
6844
|
const gridKeyColor = "#AAAAAA40";
|
|
6790
6845
|
const lineSize = 1;
|
|
6791
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
|
+
}
|
|
6792
6870
|
function calcRulerScaleList(opts) {
|
|
6793
6871
|
const { scale, viewLength, viewOffset } = opts;
|
|
6794
6872
|
const list = [];
|
|
6795
6873
|
let rulerUnit = 10;
|
|
6796
6874
|
rulerUnit = formatNumber(rulerUnit / scale, { decimalPlaces: 0 });
|
|
6797
|
-
rulerUnit =
|
|
6875
|
+
rulerUnit = limitRulerUnit(rulerUnit);
|
|
6798
6876
|
const rulerKeyUnit = rulerUnit * 10;
|
|
6799
6877
|
const rulerSubKeyUnit = rulerUnit * 5;
|
|
6800
6878
|
let index = 0;
|
|
@@ -6817,7 +6895,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6817
6895
|
list.push(rulerScale);
|
|
6818
6896
|
index++;
|
|
6819
6897
|
}
|
|
6820
|
-
return list;
|
|
6898
|
+
return { list, rulerUnit };
|
|
6821
6899
|
}
|
|
6822
6900
|
function calcXRulerScaleList(opts) {
|
|
6823
6901
|
const { viewScaleInfo, viewSizeInfo } = opts;
|
|
@@ -6929,7 +7007,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6929
7007
|
ctx.strokeStyle = borderColor;
|
|
6930
7008
|
ctx.stroke();
|
|
6931
7009
|
}
|
|
6932
|
-
function
|
|
7010
|
+
function drawGrid(ctx, opts) {
|
|
6933
7011
|
const { xList, yList, viewSizeInfo } = opts;
|
|
6934
7012
|
const { width, height } = viewSizeInfo;
|
|
6935
7013
|
for (let i = 0; i < xList.length; i++) {
|
|
@@ -7017,7 +7095,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7017
7095
|
const middlewareEventRuler = "@middleware/show-ruler";
|
|
7018
7096
|
const MiddlewareRuler = (opts) => {
|
|
7019
7097
|
const { boardContent, viewer, eventHub, calculator } = opts;
|
|
7020
|
-
const {
|
|
7098
|
+
const { overlayContext, underlayContext } = boardContent;
|
|
7021
7099
|
let show = true;
|
|
7022
7100
|
let showGrid = true;
|
|
7023
7101
|
const rulerCallback = (e) => {
|
|
@@ -7043,14 +7121,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7043
7121
|
if (show === true) {
|
|
7044
7122
|
const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
|
|
7045
7123
|
const viewSizeInfo = getViewSizeInfoFromSnapshot(snapshot);
|
|
7046
|
-
drawScrollerSelectedArea(
|
|
7047
|
-
drawRulerBackground(
|
|
7048
|
-
const xList = calcXRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7049
|
-
drawXRuler(
|
|
7050
|
-
const yList = calcYRulerScaleList({ viewScaleInfo, viewSizeInfo });
|
|
7051
|
-
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 });
|
|
7052
7130
|
if (showGrid === true) {
|
|
7053
|
-
|
|
7131
|
+
const ctx = rulerUnit === 1 ? overlayContext : underlayContext;
|
|
7132
|
+
drawGrid(ctx, {
|
|
7054
7133
|
xList,
|
|
7055
7134
|
yList,
|
|
7056
7135
|
viewScaleInfo,
|
|
@@ -7219,7 +7298,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7219
7298
|
const infoLineHeight = 16;
|
|
7220
7299
|
const MiddlewareInfo = (opts) => {
|
|
7221
7300
|
const { boardContent, calculator } = opts;
|
|
7222
|
-
const {
|
|
7301
|
+
const { overlayContext } = boardContent;
|
|
7223
7302
|
return {
|
|
7224
7303
|
name: "@middleware/info",
|
|
7225
7304
|
beforeDrawFrame({ snapshot }) {
|
|
@@ -7275,7 +7354,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7275
7354
|
const xyText = `${formatNumber(x22, { decimalPlaces: 0 })},${formatNumber(y22, { decimalPlaces: 0 })}`;
|
|
7276
7355
|
const whText = `${formatNumber(w22, { decimalPlaces: 0 })}x${formatNumber(h22, { decimalPlaces: 0 })}`;
|
|
7277
7356
|
const angleText = `${formatNumber(elem.angle || 0, { decimalPlaces: 0 })}°`;
|
|
7278
|
-
drawSizeInfoText(
|
|
7357
|
+
drawSizeInfoText(overlayContext, {
|
|
7279
7358
|
point: {
|
|
7280
7359
|
x: rectInfo.bottom.x,
|
|
7281
7360
|
y: rectInfo.bottom.y + infoFontSize
|
|
@@ -7288,7 +7367,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7288
7367
|
color: infoTextColor,
|
|
7289
7368
|
background: infoBackground
|
|
7290
7369
|
});
|
|
7291
|
-
drawPositionInfoText(
|
|
7370
|
+
drawPositionInfoText(overlayContext, {
|
|
7292
7371
|
point: {
|
|
7293
7372
|
x: rectInfo.topLeft.x,
|
|
7294
7373
|
y: rectInfo.topLeft.y - infoFontSize * 2
|
|
@@ -7301,7 +7380,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7301
7380
|
color: infoTextColor,
|
|
7302
7381
|
background: infoBackground
|
|
7303
7382
|
});
|
|
7304
|
-
drawAngleInfoText(
|
|
7383
|
+
drawAngleInfoText(overlayContext, {
|
|
7305
7384
|
point: {
|
|
7306
7385
|
x: rectInfo.top.x + infoFontSize,
|
|
7307
7386
|
y: rectInfo.top.y - infoFontSize * 2
|
|
@@ -7416,7 +7495,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7416
7495
|
}
|
|
7417
7496
|
const MiddlewareLayoutSelector = (opts) => {
|
|
7418
7497
|
const { sharer, boardContent, calculator, viewer, eventHub } = opts;
|
|
7419
|
-
const {
|
|
7498
|
+
const { overlayContext } = boardContent;
|
|
7420
7499
|
let prevPoint = null;
|
|
7421
7500
|
const clear = () => {
|
|
7422
7501
|
prevPoint = null;
|
|
@@ -7636,7 +7715,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7636
7715
|
const { x: x2, y: y2, w: w2, h: h2 } = activeStore.data.layout;
|
|
7637
7716
|
const size = { x: x2, y: y2, w: w2, h: h2 };
|
|
7638
7717
|
const controller = calcLayoutSizeController(size, { viewScaleInfo, controllerSize: 10 });
|
|
7639
|
-
drawLayoutController(
|
|
7718
|
+
drawLayoutController(overlayContext, { controller, operations: activeStore.data.layout.operations || {} });
|
|
7640
7719
|
}
|
|
7641
7720
|
}
|
|
7642
7721
|
},
|