@plait/core 0.16.1 → 0.17.0

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.
@@ -5,10 +5,13 @@ import { MAX_RADIUS } from '../../constants';
5
5
  export function drawRoundRectangle(rs, x1, y1, x2, y2, options, outline = false, borderRadius) {
6
6
  const width = Math.abs(x1 - x2);
7
7
  const height = Math.abs(y1 - y2);
8
- const defaultRadius = Math.min(width, height) / 8;
9
- let radius = borderRadius || defaultRadius;
10
- if (defaultRadius > MAX_RADIUS) {
11
- radius = outline ? MAX_RADIUS + 2 : MAX_RADIUS;
8
+ let radius = borderRadius || 0;
9
+ if (radius === 0) {
10
+ const defaultRadius = Math.min(width, height) / 8;
11
+ let radius = defaultRadius;
12
+ if (defaultRadius > MAX_RADIUS) {
13
+ radius = outline ? MAX_RADIUS + 2 : MAX_RADIUS;
14
+ }
12
15
  }
13
16
  const point1 = [x1 + radius, y1];
14
17
  const point2 = [x2 - radius, y1];
@@ -20,46 +23,4 @@ export function drawRoundRectangle(rs, x1, y1, x2, y2, options, outline = false,
20
23
  const point8 = [x1, y1 + radius];
21
24
  return rs.path(`M${point2[0]} ${point2[1]} A ${radius} ${radius}, 0, 0, 1, ${point3[0]} ${point3[1]} L ${point4[0]} ${point4[1]} A ${radius} ${radius}, 0, 0, 1, ${point5[0]} ${point5[1]} L ${point6[0]} ${point6[1]} A ${radius} ${radius}, 0, 0, 1, ${point7[0]} ${point7[1]} L ${point8[0]} ${point8[1]} A ${radius} ${radius}, 0, 0, 1, ${point1[0]} ${point1[1]} Z`, options);
22
25
  }
23
- export function drawAbstractRoundRectangle(rs, x1, y1, x2, y2, isHorizontal, options) {
24
- const width = Math.abs(x1 - x2);
25
- const height = Math.abs(y1 - y2);
26
- const radius = 5;
27
- const handleGap = 4;
28
- const handleLength = 10;
29
- const handleSpace = handleLength + handleGap * 2;
30
- if (isHorizontal) {
31
- const handleSideLine = (width - handleSpace - radius * 2) / 2;
32
- const sideLine = height - radius * 2;
33
- return rs.path(`M${x1 + radius},${y1}
34
- l${handleSideLine},0
35
- m${handleSpace},0
36
- l${handleSideLine},0
37
- a${radius},${radius},0,0,1,${radius},${radius}
38
- l0,${sideLine}
39
- a${radius},${radius},0,0,1,-${radius},${radius}
40
- l-${handleSideLine},0
41
- m-${handleSpace},0
42
- l-${handleSideLine},0
43
- a${radius},${radius},0,0,1,-${radius},-${radius}
44
- l0,-${sideLine}
45
- a${radius},${radius},0,0,1,${radius},-${radius}`, options);
46
- }
47
- else {
48
- const handleSideLine = (height - handleSpace - radius * 2) / 2;
49
- const sideLine = width - radius * 2;
50
- return rs.path(`M${x1 + radius},${y1}
51
- l${sideLine},0
52
- a${radius},${radius},0,0,1,${radius},${radius}
53
- l0,${handleSideLine}
54
- m0,${handleSpace}
55
- l0,${handleSideLine}
56
- a${radius},${radius},0,0,1,-${radius},${radius}
57
- l-${sideLine},0
58
- a${radius},${radius},0,0,1,-${radius},-${radius}
59
- l0,-${handleSideLine}
60
- m0,-${handleSpace}
61
- l0,-${handleSideLine}
62
- a${radius},${radius},0,0,1,${radius},-${radius}`, options);
63
- }
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL2RyYXcvcmVjdGFuZ2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsRUFBWSxFQUNaLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBVSxFQUNWLEVBQVUsRUFDVixPQUFnQixFQUNoQixPQUFPLEdBQUcsS0FBSyxFQUNmLFlBQXFCO0lBRXJCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxJQUFJLE1BQU0sR0FBRyxZQUFZLElBQUksYUFBYSxDQUFDO0lBQzNDLElBQUksYUFBYSxHQUFHLFVBQVUsRUFBRTtRQUM1QixNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7S0FDbEQ7SUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFF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QUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FDVixJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRTtlQUNsQixRQUFRO2VBQ1IsTUFBTSxJQUFJLE1BQU0sVUFBVSxNQUFNLElBQUksTUFBTTtpQkFDeEMsY0FBYztpQkFDZCxXQUFXO2lCQUNYLGNBQWM7ZUFDaEIsTUFBTSxJQUFJLE1BQU0sV0FBVyxNQUFNLElBQUksTUFBTTtnQkFDMUMsUUFBUTtlQUNULE1BQU0sSUFBSSxNQUFNLFdBQVcsTUFBTSxLQUFLLE1BQU07a0JBQ3pDLGNBQWM7a0JBQ2QsV0FBVztrQkFDWCxjQUFjO2VBQ2pCLE1BQU0sSUFBSSxNQUFNLFVBQVUsTUFBTSxLQUFLLE1BQU0sRUFBRSxFQUNoRCxPQUFPLENBQ1YsQ0FBQztLQUNMO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IE1BWF9SQURJVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIGRyYXdSb3VuZFJlY3RhbmdsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgIHJzOiBSb3VnaFNWRyxcbiAgICB4MTogbnVtYmVyLFxuICAgIHkxOiBudW1iZXIsXG4gICAgeDI6IG51bWJlcixcbiAgICB5MjogbnVtYmVyLFxuICAgIG9wdGlvbnM6IE9wdGlvbnMsXG4gICAgb3V0bGluZSA9IGZhbHNlLFxuICAgIGJvcmRlclJhZGl1cz86IG51bWJlclxuKSB7XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLmFicyh4MSAtIHgyKTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyh5MSAtIHkyKTtcblxuICAgIGNvbnN0IGRlZmF1bHRSYWRpdXMgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KSAvIDg7XG4gICAgbGV0IHJhZGl1cyA9IGJvcmRlclJhZGl1cyB8fCBkZWZhdWx0UmFkaXVzO1xuICAgIGlmIChkZWZhdWx0UmFkaXVzID4gTUFYX1JBRElVUykge1xuICAgICAgICByYWRpdXMgPSBvdXRsaW5lID8gTUFYX1JBRElVUyArIDIgOiBNQVhfUkFESVVTO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50MSA9IFt4MSArIHJhZGl1cywgeTFdO1xuICAgIGNvbnN0IHBvaW50MiA9IFt4MiAtIHJhZGl1cywgeTFdO1xuICAgIGNvbnN0IHBvaW50MyA9IFt4MiwgeTEgKyByYWRpdXNdO1xuICAgIGNvbnN0IHBvaW50NCA9IFt4MiwgeTIgLSByYWRpdXNdO1xuICAgIGNvbnN0IHBvaW50NSA9IFt4MiAtIHJhZGl1cywgeTJdO1xuICAgIGNvbnN0IHBvaW50NiA9IFt4MSArIHJhZGl1cywgeTJdO1xuICAgIGNvbnN0IHBvaW50NyA9IFt4MSwgeTIgLSByYWRpdXNdO1xuICAgIGNvbnN0IHBvaW50OCA9IFt4MSwgeTEgKyByYWRpdXNdO1xuXG4gICAgcmV0dXJuIHJzLnBhdGgoXG4gICAgICAgIGBNJHtwb2ludDJbMF19ICR7cG9pbnQyWzFdfSBBICR7cmFkaXVzfSAke3JhZGl1c30sIDAsIDAsIDEsICR7cG9pbnQzWzBdfSAke3BvaW50M1sxXX0gTCAke3BvaW50NFswXX0gJHtwb2ludDRbMV19IEEgJHtyYWRpdXN9ICR7cmFkaXVzfSwgMCwgMCwgMSwgJHtwb2ludDVbMF19ICR7cG9pbnQ1WzFdfSBMICR7cG9pbnQ2WzBdfSAke3BvaW50NlsxXX0gQSAke3JhZGl1c30gJHtyYWRpdXN9LCAwLCAwLCAxLCAke3BvaW50N1swXX0gJHtwb2ludDdbMV19IEwgJHtwb2ludDhbMF19ICR7cG9pbnQ4WzFdfSBBICR7cmFkaXVzfSAke3JhZGl1c30sIDAsIDAsIDEsICR7cG9pbnQxWzBdfSAke3BvaW50MVsxXX0gWmAsXG4gICAgICAgIG9wdGlvbnNcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0Fic3RyYWN0Um91bmRSZWN0YW5nbGUoXG4gICAgcnM6IFJvdWdoU1ZHLFxuICAgIHgxOiBudW1iZXIsXG4gICAgeTE6IG51bWJlcixcbiAgICB4MjogbnVtYmVyLFxuICAgIHkyOiBudW1iZXIsXG4gICAgaXNIb3Jpem9udGFsOiBib29sZWFuLFxuICAgIG9wdGlvbnM6IE9wdGlvbnNcbikge1xuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5hYnMoeDEgLSB4Mik7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5hYnMoeTEgLSB5Mik7XG5cbiAgICBjb25zdCByYWRpdXMgPSA1O1xuICAgIGNvbnN0IGhhbmRsZUdhcCA9IDQ7XG4gICAgY29uc3QgaGFuZGxlTGVuZ3RoID0gMTA7XG5cbiAgICBjb25zdCBoYW5kbGVTcGFjZSA9IGhhbmRsZUxlbmd0aCArIGhhbmRsZUdhcCAqIDI7XG5cbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IGhhbmRsZVNpZGVMaW5lID0gKHdpZHRoIC0gaGFuZGxlU3BhY2UgLSByYWRpdXMgKiAyKSAvIDI7XG4gICAgICAgIGNvbnN0IHNpZGVMaW5lID0gaGVpZ2h0IC0gcmFkaXVzICogMjtcbiAgICAgICAgcmV0dXJuIHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7eDEgKyByYWRpdXN9LCR7eTF9XG4gICAgICAgICAgICBsJHtoYW5kbGVTaWRlTGluZX0sMFxuICAgICAgICAgICAgbSR7aGFuZGxlU3BhY2V9LDBcbiAgICAgICAgICAgIGwke2hhbmRsZVNpZGVMaW5lfSwwXG4gICAgICAgICAgICBhJHtyYWRpdXN9LCR7cmFkaXVzfSwwLDAsMSwke3JhZGl1c30sJHtyYWRpdXN9XG4gICAgICAgICAgICBsMCwke3NpZGVMaW5lfVxuICAgICAgICAgICAgYSR7cmFkaXVzfSwke3JhZGl1c30sMCwwLDEsLSR7cmFkaXVzfSwke3JhZGl1c31cbiAgICAgICAgICAgIGwtJHtoYW5kbGVTaWRlTGluZX0sMFxuICAgICAgICAgICAgbS0ke2hhbmRsZVNwYWNlfSwwXG4gICAgICAgICAgICBsLSR7aGFuZGxlU2lkZUxpbmV9LDBcbiAgICAgICAgICAgIGEke3JhZGl1c30sJHtyYWRpdXN9LDAsMCwxLC0ke3JhZGl1c30sLSR7cmFkaXVzfVxuICAgICAgICAgICAgbDAsLSR7c2lkZUxpbmV9XG4gICAgICAgICAgICBhJHtyYWRpdXN9LCR7cmFkaXVzfSwwLDAsMSwke3JhZGl1c30sLSR7cmFkaXVzfWAsXG4gICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFuZGxlU2lkZUxpbmUgPSAoaGVpZ2h0IC0gaGFuZGxlU3BhY2UgLSByYWRpdXMgKiAyKSAvIDI7XG4gICAgICAgIGNvbnN0IHNpZGVMaW5lID0gd2lkdGggLSByYWRpdXMgKiAyO1xuICAgICAgICByZXR1cm4gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHt4MSArIHJhZGl1c30sJHt5MX1cbiAgICAgICAgICAgIGwke3NpZGVMaW5lfSwwXG4gICAgICAgICAgICBhJHtyYWRpdXN9LCR7cmFkaXVzfSwwLDAsMSwke3JhZGl1c30sJHtyYWRpdXN9XG4gICAgICAgICAgICBsMCwke2hhbmRsZVNpZGVMaW5lfVxuICAgICAgICAgICAgbTAsJHtoYW5kbGVTcGFjZX1cbiAgICAgICAgICAgIGwwLCR7aGFuZGxlU2lkZUxpbmV9XG4gICAgICAgICAgICBhJHtyYWRpdXN9LCR7cmFkaXVzfSwwLDAsMSwtJHtyYWRpdXN9LCR7cmFkaXVzfVxuICAgICAgICAgICAgbC0ke3NpZGVMaW5lfSwwXG4gICAgICAgICAgICBhJHtyYWRpdXN9LCR7cmFkaXVzfSwwLDAsMSwtJHtyYWRpdXN9LC0ke3JhZGl1c31cbiAgICAgICAgICAgIGwwLC0ke2hhbmRsZVNpZGVMaW5lfVxuICAgICAgICAgICAgbTAsLSR7aGFuZGxlU3BhY2V9XG4gICAgICAgICAgICBsMCwtJHtoYW5kbGVTaWRlTGluZX1cbiAgICAgICAgICAgIGEke3JhZGl1c30sJHtyYWRpdXN9LDAsMCwxLCR7cmFkaXVzfSwtJHtyYWRpdXN9YCxcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL2RyYXcvcmVjdGFuZ2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsRUFBWSxFQUNaLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBVSxFQUNWLEVBQVUsRUFDVixPQUFnQixFQUNoQixPQUFPLEdBQUcsS0FBSyxFQUNmLFlBQXFCO0lBRXJCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLElBQUksTUFBTSxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDL0IsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUMzQixJQUFJLGFBQWEsR0FBRyxVQUFVLEVBQUU7WUFDNUIsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1NBQ2xEO0tBQ0o7SUFHRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBRWpDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FDVixJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxJQUFJLE1BQU0sY0FBYyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxJQUFJLE1BQU0sY0FBYyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxJQUFJLE1BQU0sY0FBYyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxJQUFJLE1BQU0sY0FBYyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQzFWLE9BQU8sQ0FDVixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IE1BWF9SQURJVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIGRyYXdSb3VuZFJlY3RhbmdsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgIHJzOiBSb3VnaFNWRyxcbiAgICB4MTogbnVtYmVyLFxuICAgIHkxOiBudW1iZXIsXG4gICAgeDI6IG51bWJlcixcbiAgICB5MjogbnVtYmVyLFxuICAgIG9wdGlvbnM6IE9wdGlvbnMsXG4gICAgb3V0bGluZSA9IGZhbHNlLFxuICAgIGJvcmRlclJhZGl1cz86IG51bWJlclxuKSB7XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLmFicyh4MSAtIHgyKTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyh5MSAtIHkyKTtcblxuICAgIGxldCByYWRpdXMgPSBib3JkZXJSYWRpdXMgfHwgMDtcbiAgICBpZiAocmFkaXVzID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRSYWRpdXMgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KSAvIDg7XG4gICAgICAgIGxldCByYWRpdXMgPSBkZWZhdWx0UmFkaXVzO1xuICAgICAgICBpZiAoZGVmYXVsdFJhZGl1cyA+IE1BWF9SQURJVVMpIHtcbiAgICAgICAgICAgIHJhZGl1cyA9IG91dGxpbmUgPyBNQVhfUkFESVVTICsgMiA6IE1BWF9SQURJVVM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG5cbiAgICBjb25zdCBwb2ludDEgPSBbeDEgKyByYWRpdXMsIHkxXTtcbiAgICBjb25zdCBwb2ludDIgPSBbeDIgLSByYWRpdXMsIHkxXTtcbiAgICBjb25zdCBwb2ludDMgPSBbeDIsIHkxICsgcmFkaXVzXTtcbiAgICBjb25zdCBwb2ludDQgPSBbeDIsIHkyIC0gcmFkaXVzXTtcbiAgICBjb25zdCBwb2ludDUgPSBbeDIgLSByYWRpdXMsIHkyXTtcbiAgICBjb25zdCBwb2ludDYgPSBbeDEgKyByYWRpdXMsIHkyXTtcbiAgICBjb25zdCBwb2ludDcgPSBbeDEsIHkyIC0gcmFkaXVzXTtcbiAgICBjb25zdCBwb2ludDggPSBbeDEsIHkxICsgcmFkaXVzXTtcblxuICAgIHJldHVybiBycy5wYXRoKFxuICAgICAgICBgTSR7cG9pbnQyWzBdfSAke3BvaW50MlsxXX0gQSAke3JhZGl1c30gJHtyYWRpdXN9LCAwLCAwLCAxLCAke3BvaW50M1swXX0gJHtwb2ludDNbMV19IEwgJHtwb2ludDRbMF19ICR7cG9pbnQ0WzFdfSBBICR7cmFkaXVzfSAke3JhZGl1c30sIDAsIDAsIDEsICR7cG9pbnQ1WzBdfSAke3BvaW50NVsxXX0gTCAke3BvaW50NlswXX0gJHtwb2ludDZbMV19IEEgJHtyYWRpdXN9ICR7cmFkaXVzfSwgMCwgMCwgMSwgJHtwb2ludDdbMF19ICR7cG9pbnQ3WzFdfSBMICR7cG9pbnQ4WzBdfSAke3BvaW50OFsxXX0gQSAke3JhZGl1c30gJHtyYWRpdXN9LCAwLCAwLCAxLCAke3BvaW50MVswXX0gJHtwb2ludDFbMV19IFpgLFxuICAgICAgICBvcHRpb25zXG4gICAgKTtcbn1cbiJdfQ==
@@ -1310,10 +1310,13 @@ function idCreator(length = 5) {
1310
1310
  function drawRoundRectangle(rs, x1, y1, x2, y2, options, outline = false, borderRadius) {
1311
1311
  const width = Math.abs(x1 - x2);
1312
1312
  const height = Math.abs(y1 - y2);
1313
- const defaultRadius = Math.min(width, height) / 8;
1314
- let radius = borderRadius || defaultRadius;
1315
- if (defaultRadius > MAX_RADIUS) {
1316
- radius = outline ? MAX_RADIUS + 2 : MAX_RADIUS;
1313
+ let radius = borderRadius || 0;
1314
+ if (radius === 0) {
1315
+ const defaultRadius = Math.min(width, height) / 8;
1316
+ let radius = defaultRadius;
1317
+ if (defaultRadius > MAX_RADIUS) {
1318
+ radius = outline ? MAX_RADIUS + 2 : MAX_RADIUS;
1319
+ }
1317
1320
  }
1318
1321
  const point1 = [x1 + radius, y1];
1319
1322
  const point2 = [x2 - radius, y1];
@@ -1325,48 +1328,6 @@ function drawRoundRectangle(rs, x1, y1, x2, y2, options, outline = false, border
1325
1328
  const point8 = [x1, y1 + radius];
1326
1329
  return rs.path(`M${point2[0]} ${point2[1]} A ${radius} ${radius}, 0, 0, 1, ${point3[0]} ${point3[1]} L ${point4[0]} ${point4[1]} A ${radius} ${radius}, 0, 0, 1, ${point5[0]} ${point5[1]} L ${point6[0]} ${point6[1]} A ${radius} ${radius}, 0, 0, 1, ${point7[0]} ${point7[1]} L ${point8[0]} ${point8[1]} A ${radius} ${radius}, 0, 0, 1, ${point1[0]} ${point1[1]} Z`, options);
1327
1330
  }
1328
- function drawAbstractRoundRectangle(rs, x1, y1, x2, y2, isHorizontal, options) {
1329
- const width = Math.abs(x1 - x2);
1330
- const height = Math.abs(y1 - y2);
1331
- const radius = 5;
1332
- const handleGap = 4;
1333
- const handleLength = 10;
1334
- const handleSpace = handleLength + handleGap * 2;
1335
- if (isHorizontal) {
1336
- const handleSideLine = (width - handleSpace - radius * 2) / 2;
1337
- const sideLine = height - radius * 2;
1338
- return rs.path(`M${x1 + radius},${y1}
1339
- l${handleSideLine},0
1340
- m${handleSpace},0
1341
- l${handleSideLine},0
1342
- a${radius},${radius},0,0,1,${radius},${radius}
1343
- l0,${sideLine}
1344
- a${radius},${radius},0,0,1,-${radius},${radius}
1345
- l-${handleSideLine},0
1346
- m-${handleSpace},0
1347
- l-${handleSideLine},0
1348
- a${radius},${radius},0,0,1,-${radius},-${radius}
1349
- l0,-${sideLine}
1350
- a${radius},${radius},0,0,1,${radius},-${radius}`, options);
1351
- }
1352
- else {
1353
- const handleSideLine = (height - handleSpace - radius * 2) / 2;
1354
- const sideLine = width - radius * 2;
1355
- return rs.path(`M${x1 + radius},${y1}
1356
- l${sideLine},0
1357
- a${radius},${radius},0,0,1,${radius},${radius}
1358
- l0,${handleSideLine}
1359
- m0,${handleSpace}
1360
- l0,${handleSideLine}
1361
- a${radius},${radius},0,0,1,-${radius},${radius}
1362
- l-${sideLine},0
1363
- a${radius},${radius},0,0,1,-${radius},-${radius}
1364
- l0,-${handleSideLine}
1365
- m0,-${handleSpace}
1366
- l0,-${handleSideLine}
1367
- a${radius},${radius},0,0,1,${radius},-${radius}`, options);
1368
- }
1369
- }
1370
1331
 
1371
1332
  function arrowPoints(start, end, maxHypotenuseLength = 10, degree = 40) {
1372
1333
  const width = Math.abs(start[0] - end[0]);
@@ -3299,5 +3260,5 @@ function createModModifierKeys() {
3299
3260
  * Generated bundle index. Do not edit.
3300
3261
  */
3301
3262
 
3302
- export { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawAbstractRoundRectangle, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
3263
+ export { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
3303
3264
  //# sourceMappingURL=plait-core.mjs.map