@witchcraft/layout 0.1.3 → 0.2.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.
- package/README.md +27 -24
- package/dist/module.json +1 -1
- package/dist/runtime/components/FrameDragHandle.d.vue.ts +15 -0
- package/dist/runtime/components/FrameDragHandle.vue +28 -0
- package/dist/runtime/components/FrameDragHandle.vue.d.ts +15 -0
- package/dist/runtime/components/LayoutDecos.d.vue.ts +2 -4
- package/dist/runtime/components/LayoutDecos.vue +10 -29
- package/dist/runtime/components/LayoutDecos.vue.d.ts +2 -4
- package/dist/runtime/components/LayoutEdges.d.vue.ts +3 -3
- package/dist/runtime/components/LayoutEdges.vue +8 -8
- package/dist/runtime/components/LayoutEdges.vue.d.ts +3 -3
- package/dist/runtime/components/LayoutFrame.d.vue.ts +1 -1
- package/dist/runtime/components/LayoutFrame.vue +0 -1
- package/dist/runtime/components/LayoutFrame.vue.d.ts +1 -1
- package/dist/runtime/components/LayoutShapeSquare.d.vue.ts +3 -1
- package/dist/runtime/components/LayoutShapeSquare.vue.d.ts +3 -1
- package/dist/runtime/components/LayoutWindow.d.vue.ts +26 -12
- package/dist/runtime/components/LayoutWindow.vue +95 -84
- package/dist/runtime/components/LayoutWindow.vue.d.ts +26 -12
- package/dist/runtime/composables/useFrames.d.ts +15 -13
- package/dist/runtime/composables/useFrames.js +59 -39
- package/dist/runtime/demo/App.vue +116 -30
- package/dist/runtime/demo/DemoControls.d.vue.ts +4 -1
- package/dist/runtime/demo/DemoControls.vue +98 -4
- package/dist/runtime/demo/DemoControls.vue.d.ts +4 -1
- package/dist/runtime/drag/CloseAction.d.ts +26 -5
- package/dist/runtime/drag/CloseAction.js +87 -40
- package/dist/runtime/drag/DragActionHandler.d.ts +20 -8
- package/dist/runtime/drag/DragActionHandler.js +47 -12
- package/dist/runtime/drag/FrameDragAction.d.ts +45 -0
- package/dist/runtime/drag/FrameDragAction.js +143 -0
- package/dist/runtime/drag/SplitAction.d.ts +32 -11
- package/dist/runtime/drag/SplitAction.js +82 -24
- package/dist/runtime/drag/createDefaultHandlers.d.ts +9 -0
- package/dist/runtime/drag/createDefaultHandlers.js +10 -0
- package/dist/runtime/drag/defaultDragActions.d.ts +9 -0
- package/dist/runtime/drag/defaultDragActions.js +10 -0
- package/dist/runtime/drag/types.d.ts +82 -13
- package/dist/runtime/drag/types.js +1 -0
- package/dist/runtime/helpers/createZoneSideClipPath.d.ts +12 -0
- package/dist/runtime/helpers/createZoneSideClipPath.js +17 -0
- package/dist/runtime/helpers/doEdgesOverlap.d.ts +3 -1
- package/dist/runtime/helpers/doEdgesOverlap.js +5 -5
- package/dist/runtime/helpers/getDockBoundaries.d.ts +19 -0
- package/dist/runtime/helpers/getDockBoundaries.js +14 -0
- package/dist/runtime/helpers/getEdgeLength.d.ts +2 -0
- package/dist/runtime/helpers/getEdgeLength.js +5 -0
- package/dist/runtime/helpers/getIntersections.js +2 -2
- package/dist/runtime/helpers/getIntersectionsCss.js +2 -2
- package/dist/runtime/helpers/getMoveEdgeInfo.js +2 -2
- package/dist/runtime/helpers/getResizeLimit.js +2 -2
- package/dist/runtime/helpers/getShapeSquareCss.js +2 -2
- package/dist/runtime/helpers/getVisualEdgeCss.js +2 -2
- package/dist/runtime/helpers/getVisualEdges.d.ts +1 -1
- package/dist/runtime/helpers/getVisualEdges.js +4 -3
- package/dist/runtime/helpers/index.d.ts +4 -0
- package/dist/runtime/helpers/index.js +4 -0
- package/dist/runtime/helpers/isEdgeEqual.js +2 -4
- package/dist/runtime/helpers/isWindowEdge.js +2 -2
- package/dist/runtime/helpers/isWindowEdgePoint.js +2 -2
- package/dist/runtime/helpers/moveEdge.js +2 -2
- package/dist/runtime/helpers/numberToScaledPercent.d.ts +1 -1
- package/dist/runtime/helpers/numberToScaledPercent.js +2 -2
- package/dist/runtime/helpers/numberToScaledSize.js +2 -2
- package/dist/runtime/helpers/rotateFrames.d.ts +7 -0
- package/dist/runtime/helpers/rotateFrames.js +36 -0
- package/dist/runtime/helpers/scaledPointToPx.d.ts +13 -0
- package/dist/runtime/helpers/scaledPointToPx.js +7 -0
- package/dist/runtime/helpers/toWindowCoord.js +2 -2
- package/dist/runtime/layout/applyFrameChanges.d.ts +10 -0
- package/dist/runtime/layout/applyFrameChanges.js +29 -0
- package/dist/runtime/layout/createSplitDecoFromDrag.d.ts +6 -1
- package/dist/runtime/layout/createSplitDecoFromDrag.js +4 -4
- package/dist/runtime/layout/createSplitDecoShapes.d.ts +7 -0
- package/dist/runtime/layout/{createSplitDecoEdge.js → createSplitDecoShapes.js} +6 -3
- package/dist/runtime/layout/debugFrame.js +2 -1
- package/dist/runtime/layout/findSafeSplitEdge.js +2 -2
- package/dist/runtime/layout/frameCreate.js +2 -2
- package/dist/runtime/layout/getCloseFrameInfo.d.ts +7 -6
- package/dist/runtime/layout/getCloseFrameInfo.js +10 -3
- package/dist/runtime/layout/getDragZones.d.ts +8 -0
- package/dist/runtime/layout/getDragZones.js +32 -0
- package/dist/runtime/layout/getFillEmptySpaceInfo.d.ts +65 -0
- package/dist/runtime/layout/getFillEmptySpaceInfo.js +69 -0
- package/dist/runtime/layout/getFrameCollapseInfo.d.ts +13 -0
- package/dist/runtime/layout/getFrameCollapseInfo.js +93 -0
- package/dist/runtime/layout/getFrameDockInfo.d.ts +9 -0
- package/dist/runtime/layout/getFrameDockInfo.js +82 -0
- package/dist/runtime/layout/getFrameDragZones.d.ts +16 -0
- package/dist/runtime/layout/getFrameDragZones.js +74 -0
- package/dist/runtime/layout/getFrameRearrangeInfo.d.ts +139 -0
- package/dist/runtime/layout/getFrameRearrangeInfo.js +87 -0
- package/dist/runtime/layout/getFrameSplitInfo.d.ts +7 -5
- package/dist/runtime/layout/getFrameSplitInfo.js +10 -3
- package/dist/runtime/layout/getFrameSwapInfo.d.ts +9 -0
- package/dist/runtime/layout/getFrameSwapInfo.js +27 -0
- package/dist/runtime/layout/getFrameTo.js +2 -2
- package/dist/runtime/layout/getFrameUncollapseInfo.d.ts +12 -0
- package/dist/runtime/layout/getFrameUncollapseInfo.js +88 -0
- package/dist/runtime/layout/getFrameUndockInfo.d.ts +13 -0
- package/dist/runtime/layout/getFrameUndockInfo.js +51 -0
- package/dist/runtime/layout/getFramesRedistributeInfo.d.ts +29 -0
- package/dist/runtime/layout/getFramesRedistributeInfo.js +53 -0
- package/dist/runtime/layout/getWindowDragZones.d.ts +6 -0
- package/dist/runtime/layout/getWindowDragZones.js +49 -0
- package/dist/runtime/layout/index.d.ts +14 -5
- package/dist/runtime/layout/index.js +14 -5
- package/dist/runtime/layout/isPointInRect.d.ts +7 -0
- package/dist/runtime/layout/{isPointInFrame.js → isPointInRect.js} +1 -1
- package/dist/runtime/layout/resizeFrame.js +2 -2
- package/dist/runtime/settings.d.ts +41 -16
- package/dist/runtime/settings.js +95 -53
- package/dist/runtime/types/index.d.ts +324 -54
- package/dist/runtime/types/index.js +54 -20
- package/package.json +28 -29
- package/src/runtime/components/FrameDragHandle.vue +30 -0
- package/src/runtime/components/LayoutDecos.vue +12 -36
- package/src/runtime/components/LayoutEdges.vue +27 -23
- package/src/runtime/components/LayoutFrame.vue +6 -5
- package/src/runtime/components/LayoutShapeSquare.vue +9 -3
- package/src/runtime/components/LayoutWindow.vue +110 -101
- package/src/runtime/composables/useFrames.ts +80 -50
- package/src/runtime/demo/App.vue +126 -36
- package/src/runtime/demo/DemoControls.vue +115 -6
- package/src/runtime/drag/CloseAction.ts +106 -44
- package/src/runtime/drag/DragActionHandler.ts +71 -20
- package/src/runtime/drag/FrameDragAction.ts +202 -0
- package/src/runtime/drag/SplitAction.ts +106 -34
- package/src/runtime/drag/createDefaultHandlers.ts +19 -0
- package/src/runtime/drag/defaultDragActions.ts +19 -0
- package/src/runtime/drag/types.ts +90 -20
- package/src/runtime/helpers/createZoneSideClipPath.ts +41 -0
- package/src/runtime/helpers/doEdgesOverlap.ts +11 -5
- package/src/runtime/helpers/getDockBoundaries.ts +36 -0
- package/src/runtime/helpers/getEdgeLength.ts +10 -0
- package/src/runtime/helpers/getIntersections.ts +2 -2
- package/src/runtime/helpers/getIntersectionsCss.ts +2 -2
- package/src/runtime/helpers/getMoveEdgeInfo.ts +2 -2
- package/src/runtime/helpers/getResizeLimit.ts +2 -2
- package/src/runtime/helpers/getShapeSquareCss.ts +2 -2
- package/src/runtime/helpers/getVisualEdgeCss.ts +2 -2
- package/src/runtime/helpers/getVisualEdges.ts +5 -4
- package/src/runtime/helpers/index.ts +4 -0
- package/src/runtime/helpers/isEdgeEqual.ts +2 -4
- package/src/runtime/helpers/isWindowEdge.ts +2 -2
- package/src/runtime/helpers/isWindowEdgePoint.ts +2 -2
- package/src/runtime/helpers/moveEdge.ts +2 -2
- package/src/runtime/helpers/numberToScaledPercent.ts +3 -3
- package/src/runtime/helpers/numberToScaledSize.ts +2 -2
- package/src/runtime/helpers/rotateFrames.ts +45 -0
- package/src/runtime/helpers/scaledPointToPx.ts +13 -0
- package/src/runtime/helpers/toWindowCoord.ts +2 -2
- package/src/runtime/layout/applyFrameChanges.ts +39 -0
- package/src/runtime/layout/createSplitDecoFromDrag.ts +12 -6
- package/src/runtime/layout/{createSplitDecoEdge.ts → createSplitDecoShapes.ts} +17 -7
- package/src/runtime/layout/debugFrame.ts +1 -1
- package/src/runtime/layout/findSafeSplitEdge.ts +3 -3
- package/src/runtime/layout/frameCreate.ts +2 -2
- package/src/runtime/layout/getCloseFrameInfo.ts +21 -8
- package/src/runtime/layout/getDragZones.ts +48 -0
- package/src/runtime/layout/getFillEmptySpaceInfo.ts +177 -0
- package/src/runtime/layout/getFrameCollapseInfo.ts +164 -0
- package/src/runtime/layout/getFrameDockInfo.ts +126 -0
- package/src/runtime/layout/getFrameDragZones.ts +100 -0
- package/src/runtime/layout/getFrameRearrangeInfo.ts +261 -0
- package/src/runtime/layout/getFrameSplitInfo.ts +21 -8
- package/src/runtime/layout/getFrameSwapInfo.ts +45 -0
- package/src/runtime/layout/getFrameTo.ts +2 -2
- package/src/runtime/layout/getFrameUncollapseInfo.ts +160 -0
- package/src/runtime/layout/getFrameUndockInfo.ts +97 -0
- package/src/runtime/layout/getFramesRedistributeInfo.ts +98 -0
- package/src/runtime/layout/getWindowDragZones.ts +59 -0
- package/src/runtime/layout/index.ts +14 -5
- package/src/runtime/layout/isPointInRect.ts +7 -0
- package/src/runtime/layout/resizeFrame.ts +2 -2
- package/src/runtime/settings.ts +69 -49
- package/src/runtime/types/index.ts +143 -28
- package/dist/runtime/layout/closeFrame.d.ts +0 -5
- package/dist/runtime/layout/closeFrame.js +0 -13
- package/dist/runtime/layout/closeFrames.d.ts +0 -2
- package/dist/runtime/layout/closeFrames.js +0 -8
- package/dist/runtime/layout/createSplitDecoEdge.d.ts +0 -2
- package/dist/runtime/layout/frameSplit.d.ts +0 -16
- package/dist/runtime/layout/frameSplit.js +0 -9
- package/dist/runtime/layout/isPointInFrame.d.ts +0 -2
- package/src/runtime/layout/closeFrame.ts +0 -33
- package/src/runtime/layout/closeFrames.ts +0 -14
- package/src/runtime/layout/frameSplit.ts +0 -31
- package/src/runtime/layout/isPointInFrame.ts +0 -7
|
@@ -1,17 +1,26 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { closeFrames } from "./closeFrames.js";
|
|
3
|
-
export { createSplitDecoEdge } from "./createSplitDecoEdge.js";
|
|
1
|
+
export { applyFrameChanges } from "./applyFrameChanges.js";
|
|
4
2
|
export { createSplitDecoFromDrag } from "./createSplitDecoFromDrag.js";
|
|
3
|
+
export { createSplitDecoShapes } from "./createSplitDecoShapes.js";
|
|
5
4
|
export { debugFrame } from "./debugFrame.js";
|
|
6
5
|
export { findFramesTouchingEdge } from "./findFramesTouchingEdge.js";
|
|
7
6
|
export { findSafeSplitEdgeAndPosition } from "./findSafeSplitEdge.js";
|
|
8
7
|
export { findVisualEdge } from "./findVisualEdge.js";
|
|
9
8
|
export { frameCreate } from "./frameCreate.js";
|
|
10
|
-
export { frameSplit } from "./frameSplit.js";
|
|
11
9
|
export { getCloseFrameInfo } from "./getCloseFrameInfo.js";
|
|
10
|
+
export { getDragZones } from "./getDragZones.js";
|
|
11
|
+
export { getFillEmptySpaceInfo } from "./getFillEmptySpaceInfo.js";
|
|
12
|
+
export { getFrameCollapseInfo } from "./getFrameCollapseInfo.js";
|
|
13
|
+
export { getFrameDockInfo } from "./getFrameDockInfo.js";
|
|
14
|
+
export { getFrameDragZones } from "./getFrameDragZones.js";
|
|
15
|
+
export { getFrameRearrangeInfo } from "./getFrameRearrangeInfo.js";
|
|
12
16
|
export { getFrameSplitInfo } from "./getFrameSplitInfo.js";
|
|
17
|
+
export { getFramesRedistributeInfo } from "./getFramesRedistributeInfo.js";
|
|
18
|
+
export { getFrameSwapInfo } from "./getFrameSwapInfo.js";
|
|
13
19
|
export { getFrameTo } from "./getFrameTo.js";
|
|
14
|
-
export {
|
|
20
|
+
export { getFrameUncollapseInfo } from "./getFrameUncollapseInfo.js";
|
|
21
|
+
export { getFrameUndockInfo } from "./getFrameUndockInfo.js";
|
|
22
|
+
export { getWindowDragZones } from "./getWindowDragZones.js";
|
|
23
|
+
export { isPointInRect } from "./isPointInRect.js";
|
|
15
24
|
export { layoutAddWindow } from "./layoutAddWindow.js";
|
|
16
25
|
export { layoutCreate } from "./layoutCreate.js";
|
|
17
26
|
export { layoutRemoveWindow } from "./layoutRemoveWindow.js";
|
|
@@ -6,8 +6,8 @@ import { getResizeLimit } from "../helpers/getResizeLimit.js";
|
|
|
6
6
|
import { getVisualEdges } from "../helpers/getVisualEdges.js";
|
|
7
7
|
import { isWindowEdge } from "../helpers/isWindowEdge.js";
|
|
8
8
|
import { resizeByEdge } from "../helpers/resizeByEdge.js";
|
|
9
|
-
import {
|
|
10
|
-
export function resizeFrame(win, frame, dir, distance, minSize =
|
|
9
|
+
import { settings } from "../settings.js";
|
|
10
|
+
export function resizeFrame(win, frame, dir, distance, minSize = settings.minSizeScaled) {
|
|
11
11
|
const originalDistance = distance;
|
|
12
12
|
const frameEdges = frameToEdges(frame);
|
|
13
13
|
const resizeEdges = dir === "up" ? [frameEdges.top] : dir === "down" ? [frameEdges.bottom] : dir === "vertical" ? [frameEdges.top, frameEdges.bottom] : dir === "left" ? [frameEdges.left] : dir === "right" ? [frameEdges.right] : [frameEdges.left, frameEdges.right];
|
|
@@ -1,23 +1,48 @@
|
|
|
1
1
|
import type { Point, Size } from "./types/index.js";
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export declare class Settings {
|
|
3
|
+
private _scale;
|
|
4
|
+
private _maxInt;
|
|
5
|
+
get scale(): number;
|
|
6
|
+
set scale(v: number);
|
|
7
|
+
get maxInt(): number;
|
|
8
|
+
private _snapPoint;
|
|
9
|
+
private _snapPointScaled;
|
|
10
|
+
get snapPoint(): number | Point;
|
|
11
|
+
set snapPoint(v: number | Point);
|
|
12
|
+
get snapPointScaled(): {
|
|
8
13
|
x: number;
|
|
9
14
|
y: number;
|
|
10
15
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
private _minSize;
|
|
17
|
+
private _minSizeScaled;
|
|
18
|
+
get minSize(): number | Size;
|
|
19
|
+
set minSize(v: number | Size);
|
|
20
|
+
get minSizeScaled(): {
|
|
14
21
|
width: number;
|
|
15
22
|
height: number;
|
|
16
23
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
private _collapseSize;
|
|
25
|
+
private _collapseSizeScaled;
|
|
26
|
+
get collapseSize(): number | Size;
|
|
27
|
+
set collapseSize(v: number | Size);
|
|
28
|
+
get collapseSizeScaled(): {
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
};
|
|
32
|
+
private _maxPerpendicularLength;
|
|
33
|
+
private _maxPerpendicularLengthScaled;
|
|
34
|
+
get maxPerpendicularLength(): number | Size;
|
|
35
|
+
set maxPerpendicularLength(v: number | Size);
|
|
36
|
+
get maxPerpendicularLengthScaled(): {
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
};
|
|
40
|
+
private _scalePoint;
|
|
41
|
+
private _scaleSize;
|
|
42
|
+
private _recalcAll;
|
|
43
|
+
zoneSizes: {
|
|
44
|
+
frameEdgePx: number;
|
|
45
|
+
windowEdgePx: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export declare const settings: Settings;
|
package/dist/runtime/settings.js
CHANGED
|
@@ -1,54 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
1
|
+
export class Settings {
|
|
2
|
+
_scale = 3;
|
|
3
|
+
_maxInt = 100 * 10 ** 3;
|
|
4
|
+
get scale() {
|
|
5
|
+
return this._scale;
|
|
6
|
+
}
|
|
7
|
+
set scale(v) {
|
|
8
|
+
this._scale = v;
|
|
9
|
+
this._maxInt = 100 * 10 ** v;
|
|
10
|
+
this._recalcAll();
|
|
11
|
+
}
|
|
12
|
+
get maxInt() {
|
|
13
|
+
return this._maxInt;
|
|
14
|
+
}
|
|
15
|
+
_snapPoint = { x: 0.5, y: 0.5 };
|
|
16
|
+
_snapPointScaled = { x: Math.round(0.5 * 10 ** 3), y: Math.round(0.5 * 10 ** 3) };
|
|
17
|
+
get snapPoint() {
|
|
18
|
+
return this._snapPoint;
|
|
19
|
+
}
|
|
20
|
+
set snapPoint(v) {
|
|
21
|
+
if (typeof v === "number") {
|
|
22
|
+
this._snapPoint = { x: v, y: v };
|
|
23
|
+
} else {
|
|
24
|
+
this._snapPoint = { x: v.x, y: v.y };
|
|
25
|
+
}
|
|
26
|
+
this._snapPointScaled = this._scalePoint(this._snapPoint);
|
|
27
|
+
}
|
|
28
|
+
get snapPointScaled() {
|
|
29
|
+
return this._snapPointScaled;
|
|
30
|
+
}
|
|
31
|
+
_minSize = { width: 10 ** 3, height: 10 ** 3 };
|
|
32
|
+
_minSizeScaled = { width: 10 ** 3, height: 10 ** 3 };
|
|
33
|
+
get minSize() {
|
|
34
|
+
return this._minSize;
|
|
35
|
+
}
|
|
36
|
+
set minSize(v) {
|
|
37
|
+
if (typeof v === "number") {
|
|
38
|
+
this._minSize = { width: v, height: v };
|
|
39
|
+
} else {
|
|
40
|
+
this._minSize = { width: v.width, height: v.height };
|
|
41
|
+
}
|
|
42
|
+
this._minSizeScaled = this._scaleSize(this._minSize);
|
|
43
|
+
}
|
|
44
|
+
get minSizeScaled() {
|
|
45
|
+
return this._minSizeScaled;
|
|
46
|
+
}
|
|
47
|
+
_collapseSize = { width: 0, height: 0 };
|
|
48
|
+
_collapseSizeScaled = { width: 0, height: 0 };
|
|
49
|
+
get collapseSize() {
|
|
50
|
+
return this._collapseSize;
|
|
51
|
+
}
|
|
52
|
+
set collapseSize(v) {
|
|
53
|
+
if (typeof v === "number") {
|
|
54
|
+
this._collapseSize = { width: v, height: v };
|
|
55
|
+
} else {
|
|
56
|
+
this._collapseSize = { width: v.width, height: v.height };
|
|
57
|
+
}
|
|
58
|
+
this._collapseSizeScaled = this._scaleSize(this._collapseSize);
|
|
59
|
+
}
|
|
60
|
+
get collapseSizeScaled() {
|
|
61
|
+
return this._collapseSizeScaled;
|
|
62
|
+
}
|
|
63
|
+
_maxPerpendicularLength = { width: 20, height: 20 };
|
|
64
|
+
_maxPerpendicularLengthScaled = { width: Math.round(20 * 10 ** 3), height: Math.round(20 * 10 ** 3) };
|
|
65
|
+
get maxPerpendicularLength() {
|
|
66
|
+
return this._maxPerpendicularLength;
|
|
67
|
+
}
|
|
68
|
+
set maxPerpendicularLength(v) {
|
|
69
|
+
if (typeof v === "number") {
|
|
70
|
+
this._maxPerpendicularLength = { width: v, height: v };
|
|
71
|
+
} else {
|
|
72
|
+
this._maxPerpendicularLength = { ...v };
|
|
73
|
+
}
|
|
74
|
+
this._maxPerpendicularLengthScaled = this._scaleSize(this._maxPerpendicularLength);
|
|
75
|
+
}
|
|
76
|
+
get maxPerpendicularLengthScaled() {
|
|
77
|
+
return this._maxPerpendicularLengthScaled;
|
|
78
|
+
}
|
|
79
|
+
_scalePoint(p) {
|
|
80
|
+
const m = 10 ** this._scale;
|
|
81
|
+
return { x: Math.round(p.x * m), y: Math.round(p.y * m) };
|
|
82
|
+
}
|
|
83
|
+
_scaleSize(s) {
|
|
84
|
+
const m = 10 ** this._scale;
|
|
85
|
+
return { width: Math.round(s.width * m), height: Math.round(s.height * m) };
|
|
86
|
+
}
|
|
87
|
+
_recalcAll() {
|
|
88
|
+
this.snapPoint = this._snapPoint;
|
|
89
|
+
this.minSize = this._minSize;
|
|
90
|
+
this.collapseSize = this._collapseSize;
|
|
91
|
+
this.maxPerpendicularLength = this._maxPerpendicularLength;
|
|
92
|
+
}
|
|
93
|
+
// ==== px sized, don't require recalc
|
|
94
|
+
zoneSizes = { frameEdgePx: 40, windowEdgePx: 20 };
|
|
54
95
|
}
|
|
96
|
+
export const settings = new Settings();
|