@pinnacle0/web-ui 0.4.16 → 0.4.18
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/core/Resizable/Resizer.d.ts +10 -0
- package/core/Resizable/Resizer.js +22 -0
- package/core/Resizable/Resizer.js.map +1 -0
- package/core/Resizable/index.d.ts +14 -0
- package/core/Resizable/index.js +90 -0
- package/core/Resizable/index.js.map +1 -0
- package/core/Resizable/index.less +77 -0
- package/hooks/useDrag/DragController.d.ts +13 -0
- package/hooks/useDrag/DragController.js +47 -0
- package/hooks/useDrag/DragController.js.map +1 -0
- package/hooks/useDrag/index.d.ts +5 -0
- package/hooks/useDrag/index.js +20 -0
- package/hooks/useDrag/index.js.map +1 -0
- package/hooks/useDrag/type.d.ts +11 -0
- package/hooks/useDrag/type.js +2 -0
- package/hooks/useDrag/type.js.map +1 -0
- package/hooks/useDraggable.d.ts +14 -0
- package/hooks/useDraggable.js +73 -0
- package/hooks/useDraggable.js.map +1 -0
- package/internal/NumberUtil.d.ts +2 -0
- package/internal/NumberUtil.js +7 -0
- package/internal/NumberUtil.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { DragHandler } from "../../hooks/useDrag/type";
|
|
3
|
+
interface Props {
|
|
4
|
+
onResizeStart: DragHandler;
|
|
5
|
+
onResize: DragHandler;
|
|
6
|
+
gap?: number;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const Resizer: ({ onResizeStart, onResize, gap, className }: Props) => JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from "react";
|
|
13
|
+
import { useDraggable } from "../../hooks/useDraggable";
|
|
14
|
+
import { classNames } from "../../util/ClassNames";
|
|
15
|
+
import { ReactUtil } from "../../util/ReactUtil";
|
|
16
|
+
export var Resizer = ReactUtil.memo("Resizer", function (_a) {
|
|
17
|
+
var onResizeStart = _a.onResizeStart, onResize = _a.onResize, gap = _a.gap, className = _a.className;
|
|
18
|
+
var ref = React.useRef(null);
|
|
19
|
+
var bind = useDraggable({ target: ref, onDragStart: onResizeStart, onDrag: onResize, disabled: true, gap: gap });
|
|
20
|
+
return React.createElement("div", __assign({ className: classNames("resizer", className), ref: ref }, bind));
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=Resizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resizer.js","sourceRoot":"","sources":["../../../src/core/Resizable/Resizer.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAS/C,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,EAAgD;QAA/C,aAAa,mBAAA,EAAE,QAAQ,cAAA,EAAE,GAAG,SAAA,EAAE,SAAS,eAAA;IACtF,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,IAAM,IAAI,GAAG,YAAY,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAA,EAAC,CAAC,CAAC;IAE5G,OAAO,sCAAK,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,IAAM,IAAI,EAAI,CAAC;AACpF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./index.less";
|
|
3
|
+
interface Props {
|
|
4
|
+
height: number;
|
|
5
|
+
width: number;
|
|
6
|
+
id?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
minHeight?: number;
|
|
9
|
+
minWidth?: number;
|
|
10
|
+
gap?: number;
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export declare const Resizable: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Resizer } from "./Resizer";
|
|
3
|
+
import { classNames } from "../../util/ClassNames";
|
|
4
|
+
import "./index.less";
|
|
5
|
+
export var Resizable = React.forwardRef(function (_a, ref) {
|
|
6
|
+
var height = _a.height, width = _a.width, className = _a.className, id = _a.id, gap = _a.gap, children = _a.children, _b = _a.minHeight, minHeight = _b === void 0 ? 0 : _b, _c = _a.minWidth, minWidth = _c === void 0 ? 0 : _c;
|
|
7
|
+
var resizableDivRef = React.useRef(null);
|
|
8
|
+
var startRect = React.useRef({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
|
|
9
|
+
var combineRef = function (node) {
|
|
10
|
+
if (node) {
|
|
11
|
+
if (ref) {
|
|
12
|
+
typeof ref === "function" ? ref(node) : (ref.current = node);
|
|
13
|
+
}
|
|
14
|
+
resizableDivRef.current = node;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var onResizeStart = function () {
|
|
18
|
+
if (resizableDivRef.current) {
|
|
19
|
+
var _a = resizableDivRef.current.getBoundingClientRect(), top_1 = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width_1 = _a.width, height_1 = _a.height;
|
|
20
|
+
startRect.current = { top: top_1, right: right, bottom: bottom, left: left, width: width_1, height: height_1 };
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var onResizeTop = function (state) {
|
|
24
|
+
if (resizableDivRef.current) {
|
|
25
|
+
var _a = startRect.current, top_2 = _a.top, height_2 = _a.height;
|
|
26
|
+
var deltaY = state.delta[1];
|
|
27
|
+
var transformedHeight = height_2 - deltaY;
|
|
28
|
+
if (transformedHeight < minHeight) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
resizableDivRef.current.style.top = "".concat(top_2 + deltaY, "px");
|
|
32
|
+
resizableDivRef.current.style.height = "".concat(transformedHeight, "px");
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var onResizeRight = function (state) {
|
|
36
|
+
if (resizableDivRef.current) {
|
|
37
|
+
var width_2 = startRect.current.width;
|
|
38
|
+
var transformedWidth = width_2 + state.delta[0];
|
|
39
|
+
if (transformedWidth < minWidth) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
resizableDivRef.current.style.width = "".concat(transformedWidth, "px");
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var onResizeBottom = function (state) {
|
|
46
|
+
if (resizableDivRef.current) {
|
|
47
|
+
var height_3 = startRect.current.height;
|
|
48
|
+
var transformedHeight = height_3 + state.delta[1];
|
|
49
|
+
if (transformedHeight < minHeight) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
resizableDivRef.current.style.height = "".concat(transformedHeight, "px");
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
var onResizeLeft = function (state) {
|
|
56
|
+
if (resizableDivRef.current) {
|
|
57
|
+
var _a = startRect.current, left = _a.left, width_3 = _a.width;
|
|
58
|
+
var deltaX = state.delta[0];
|
|
59
|
+
var transformedWidth = width_3 - deltaX;
|
|
60
|
+
if (transformedWidth < minWidth) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
resizableDivRef.current.style.left = "".concat(left + deltaX, "px");
|
|
64
|
+
resizableDivRef.current.style.width = "".concat(transformedWidth, "px");
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return (React.createElement("div", { className: classNames("resizable", className), id: id, ref: combineRef, style: { height: height, width: width } },
|
|
68
|
+
React.createElement(Resizer, { className: "top", onResizeStart: onResizeStart, onResize: onResizeTop, gap: gap }),
|
|
69
|
+
React.createElement(Resizer, { className: "top-right", gap: gap, onResizeStart: onResizeStart, onResize: function (state) {
|
|
70
|
+
onResizeTop(state);
|
|
71
|
+
onResizeRight(state);
|
|
72
|
+
} }),
|
|
73
|
+
React.createElement(Resizer, { className: "right", gap: gap, onResizeStart: onResizeStart, onResize: onResizeRight }),
|
|
74
|
+
React.createElement(Resizer, { className: "bottom-right", gap: gap, onResizeStart: onResizeStart, onResize: function (state) {
|
|
75
|
+
onResizeRight(state);
|
|
76
|
+
onResizeBottom(state);
|
|
77
|
+
} }),
|
|
78
|
+
React.createElement(Resizer, { className: "bottom", gap: gap, onResizeStart: onResizeStart, onResize: onResizeBottom }),
|
|
79
|
+
React.createElement(Resizer, { className: "bottom-left", gap: gap, onResizeStart: onResizeStart, onResize: function (state) {
|
|
80
|
+
onResizeBottom(state);
|
|
81
|
+
onResizeLeft(state);
|
|
82
|
+
} }),
|
|
83
|
+
React.createElement(Resizer, { className: "left", gap: gap, onResizeStart: onResizeStart, onResize: onResizeLeft }),
|
|
84
|
+
React.createElement(Resizer, { className: "top-left", gap: gap, onResizeStart: onResizeStart, onResize: function (state) {
|
|
85
|
+
onResizeTop(state);
|
|
86
|
+
onResizeLeft(state);
|
|
87
|
+
} }),
|
|
88
|
+
children));
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/Resizable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@thickness: 12px;
|
|
2
|
+
@half-thickness: 6px;
|
|
3
|
+
|
|
4
|
+
.resizable {
|
|
5
|
+
position: fixed;
|
|
6
|
+
z-index: 99;
|
|
7
|
+
border: 1px solid #333;
|
|
8
|
+
|
|
9
|
+
.resizer {
|
|
10
|
+
position: absolute;
|
|
11
|
+
z-index: 100;
|
|
12
|
+
|
|
13
|
+
&.top {
|
|
14
|
+
cursor: ns-resize;
|
|
15
|
+
top: -@half-thickness;
|
|
16
|
+
left: @half-thickness;
|
|
17
|
+
width: calc(100% - @thickness);
|
|
18
|
+
height: @thickness;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&.top-right {
|
|
22
|
+
cursor: nesw-resize;
|
|
23
|
+
width: @thickness;
|
|
24
|
+
height: @thickness;
|
|
25
|
+
top: -@half-thickness;
|
|
26
|
+
left: calc(100% - @half-thickness);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&.right {
|
|
30
|
+
cursor: ew-resize;
|
|
31
|
+
top: @half-thickness;
|
|
32
|
+
left: calc(100% - @half-thickness);
|
|
33
|
+
width: @thickness;
|
|
34
|
+
height: calc(100% - @thickness);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&.bottom-right {
|
|
38
|
+
cursor: nwse-resize;
|
|
39
|
+
width: @thickness;
|
|
40
|
+
height: @thickness;
|
|
41
|
+
top: calc(100% - @half-thickness);
|
|
42
|
+
left: calc(100% - @half-thickness);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.bottom {
|
|
46
|
+
cursor: ns-resize;
|
|
47
|
+
top: calc(100% - @half-thickness);
|
|
48
|
+
left: @half-thickness;
|
|
49
|
+
width: calc(100% - @thickness);
|
|
50
|
+
height: @thickness;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.bottom-left {
|
|
54
|
+
cursor: nesw-resize;
|
|
55
|
+
width: @thickness;
|
|
56
|
+
height: @thickness;
|
|
57
|
+
top: calc(100% - @half-thickness);
|
|
58
|
+
left: -@half-thickness;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&.left {
|
|
62
|
+
cursor: ew-resize;
|
|
63
|
+
top: @half-thickness;
|
|
64
|
+
left: -@half-thickness;
|
|
65
|
+
width: @thickness;
|
|
66
|
+
height: calc(100% - @thickness);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.top-left {
|
|
70
|
+
cursor: nwse-resize;
|
|
71
|
+
width: @thickness;
|
|
72
|
+
height: @thickness;
|
|
73
|
+
top: -@half-thickness;
|
|
74
|
+
left: -@half-thickness;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { DragConfig } from "./type";
|
|
3
|
+
export declare class DragController {
|
|
4
|
+
private dragStarted;
|
|
5
|
+
private startPosition;
|
|
6
|
+
private config;
|
|
7
|
+
private createState;
|
|
8
|
+
private setStartPosition;
|
|
9
|
+
onDrag: (event: MouseEvent) => void;
|
|
10
|
+
onDragStart: React.MouseEventHandler;
|
|
11
|
+
onDragEnd: (event: MouseEvent) => void;
|
|
12
|
+
updateHandlers: (config: DragConfig) => void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var DragController = /** @class */ (function () {
|
|
2
|
+
function DragController() {
|
|
3
|
+
var _this = this;
|
|
4
|
+
this.dragStarted = false;
|
|
5
|
+
this.startPosition = [0, 0];
|
|
6
|
+
this.config = {};
|
|
7
|
+
this.createState = function (event) {
|
|
8
|
+
return {
|
|
9
|
+
delta: [event.clientX - _this.startPosition[0], event.clientY - _this.startPosition[1]],
|
|
10
|
+
event: event,
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
this.setStartPosition = function (x, y) {
|
|
14
|
+
_this.startPosition[0] = x;
|
|
15
|
+
_this.startPosition[1] = y;
|
|
16
|
+
};
|
|
17
|
+
this.onDrag = function (event) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
_this.dragStarted && ((_b = (_a = _this.config).onDrag) === null || _b === void 0 ? void 0 : _b.call(_a, _this.createState(event)));
|
|
20
|
+
};
|
|
21
|
+
this.onDragStart = function (event) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
// disable right click event
|
|
24
|
+
if (event.nativeEvent.button !== 0)
|
|
25
|
+
return;
|
|
26
|
+
if (event.currentTarget !== event.target)
|
|
27
|
+
return;
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
_this.setStartPosition(event.clientX, event.clientY);
|
|
30
|
+
_this.dragStarted = true;
|
|
31
|
+
(_b = (_a = _this.config).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, _this.createState(event.nativeEvent));
|
|
32
|
+
};
|
|
33
|
+
this.onDragEnd = function (event) {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
if (_this.dragStarted) {
|
|
36
|
+
_this.dragStarted = false;
|
|
37
|
+
(_b = (_a = _this.config).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, _this.createState(event));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
this.updateHandlers = function (config) {
|
|
41
|
+
_this.config = config;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return DragController;
|
|
45
|
+
}());
|
|
46
|
+
export { DragController };
|
|
47
|
+
//# sourceMappingURL=DragController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragController.js","sourceRoot":"","sources":["../../../src/hooks/useDrag/DragController.ts"],"names":[],"mappings":"AAEA;IAAA;QAAA,iBA0CC;QAzCW,gBAAW,GAAY,KAAK,CAAC;QAC7B,kBAAa,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,WAAM,GAAe,EAAE,CAAC;QAExB,gBAAW,GAAG,UAAC,KAAiB;YACpC,OAAO;gBACH,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACrF,KAAK,OAAA;aACR,CAAC;QACN,CAAC,CAAC;QAEM,qBAAgB,GAAG,UAAC,CAAS,EAAE,CAAS;YAC5C,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,WAAM,GAAG,UAAC,KAAiB;;YACvB,KAAI,CAAC,WAAW,KAAI,MAAA,MAAA,KAAI,CAAC,MAAM,EAAC,MAAM,mDAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC;QACtE,CAAC,CAAC;QAEF,gBAAW,GAA4B,UAAA,KAAK;;YACxC,4BAA4B;YAC5B,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC3C,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO;YAEjD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,MAAA,MAAA,KAAI,CAAC,MAAM,EAAC,WAAW,mDAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;QAEF,cAAS,GAAG,UAAC,KAAiB;;YAC1B,IAAI,KAAI,CAAC,WAAW,EAAE;gBAClB,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,MAAA,MAAA,KAAI,CAAC,MAAM,EAAC,SAAS,mDAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aACpD;QACL,CAAC,CAAC;QAEF,mBAAc,GAAG,UAAC,MAAkB;YAChC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC;IACN,CAAC;IAAD,qBAAC;AAAD,CAAC,AA1CD,IA0CC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DragController } from "./DragController";
|
|
3
|
+
export var useDrag = function (config) {
|
|
4
|
+
var controller = React.useMemo(function () { return new DragController(); }, []);
|
|
5
|
+
React.useEffect(function () {
|
|
6
|
+
controller.updateHandlers(config);
|
|
7
|
+
}, [config, controller]);
|
|
8
|
+
React.useEffect(function () {
|
|
9
|
+
document.addEventListener("mousemove", controller.onDrag);
|
|
10
|
+
document.addEventListener("mouseup", controller.onDragEnd);
|
|
11
|
+
return function () {
|
|
12
|
+
document.removeEventListener("mousemove", controller.onDrag);
|
|
13
|
+
document.removeEventListener("mouseup", controller.onDragEnd);
|
|
14
|
+
};
|
|
15
|
+
}, [config, controller]);
|
|
16
|
+
return {
|
|
17
|
+
onMouseDown: controller.onDragStart.bind(controller),
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useDrag/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAGhD,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,MAAkB;IACtC,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,IAAI,cAAc,EAAE,EAApB,CAAoB,EAAE,EAAE,CAAC,CAAC;IAEjE,KAAK,CAAC,SAAS,CAAC;QACZ,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzB,KAAK,CAAC,SAAS,CAAC;QACZ,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAE3D,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzB,OAAO;QACH,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;KACvD,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type Vector = [number, number];
|
|
2
|
+
export interface DragState {
|
|
3
|
+
delta: Vector;
|
|
4
|
+
event: MouseEvent;
|
|
5
|
+
}
|
|
6
|
+
export type DragHandler = (state: DragState) => void;
|
|
7
|
+
export interface DragConfig {
|
|
8
|
+
onDragStart?: DragHandler;
|
|
9
|
+
onDrag?: DragHandler;
|
|
10
|
+
onDragEnd?: DragHandler;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/hooks/useDrag/type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DragState } from "./useDrag/type";
|
|
3
|
+
interface Config {
|
|
4
|
+
target: React.RefObject<HTMLElement>;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
gap?: number;
|
|
7
|
+
onDragStart?: (state: DragState) => void;
|
|
8
|
+
onDrag?: (state: DragState) => void;
|
|
9
|
+
onDragEnd?: (state: DragState) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const useDraggable: ({ target, disabled, onDragStart, onDrag, onDragEnd, gap }: Config) => {
|
|
12
|
+
onMouseDown: React.MouseEventHandler<Element>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
14
|
+
if (!m) return o;
|
|
15
|
+
var i = m.call(o), r, ar = [], e;
|
|
16
|
+
try {
|
|
17
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
18
|
+
}
|
|
19
|
+
catch (error) { e = { error: error }; }
|
|
20
|
+
finally {
|
|
21
|
+
try {
|
|
22
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
23
|
+
}
|
|
24
|
+
finally { if (e) throw e.error; }
|
|
25
|
+
}
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
import React from "react";
|
|
29
|
+
import { NumberUtil } from "../internal/NumberUtil";
|
|
30
|
+
import { useDrag } from "./useDrag";
|
|
31
|
+
import { useTransform } from "./useTransform";
|
|
32
|
+
export var useDraggable = function (_a) {
|
|
33
|
+
var target = _a.target, disabled = _a.disabled, onDragStart = _a.onDragStart, onDrag = _a.onDrag, onDragEnd = _a.onDragEnd, _b = _a.gap, gap = _b === void 0 ? 0 : _b;
|
|
34
|
+
var start = React.useRef([0, 0]);
|
|
35
|
+
var bounds = React.useRef({ x: [0, 0], y: [0, 0] });
|
|
36
|
+
var transit = useTransform(target);
|
|
37
|
+
var boundedDelta = function (delta) {
|
|
38
|
+
var _a = __read(delta, 2), deltaX = _a[0], deltaY = _a[1];
|
|
39
|
+
var _b = __read(bounds.current.x, 2), minX = _b[0], maxX = _b[1];
|
|
40
|
+
var _c = __read(bounds.current.y, 2), minY = _c[0], maxY = _c[1];
|
|
41
|
+
return [NumberUtil.clamp(deltaX, minX, maxX), NumberUtil.clamp(deltaY, minY, maxY)];
|
|
42
|
+
};
|
|
43
|
+
var bind = useDrag({
|
|
44
|
+
onDragStart: function (state) {
|
|
45
|
+
if (target.current) {
|
|
46
|
+
var _a = target.current.getBoundingClientRect(), left = _a.left, right = _a.right, bottom = _a.bottom, top_1 = _a.top;
|
|
47
|
+
start.current = [left, top_1];
|
|
48
|
+
bounds.current = { x: [-left + gap, window.innerWidth - right - gap], y: [-top_1 + gap, window.innerHeight - bottom - gap] };
|
|
49
|
+
onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(state);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
onDrag: function (state) {
|
|
53
|
+
if (target.current) {
|
|
54
|
+
var delta = boundedDelta(state.delta);
|
|
55
|
+
!disabled && transit.to({ x: delta[0], y: delta[1], immediate: false });
|
|
56
|
+
onDrag === null || onDrag === void 0 ? void 0 : onDrag(__assign(__assign({}, state), { delta: delta }));
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
onDragEnd: function (state) {
|
|
60
|
+
if (target.current) {
|
|
61
|
+
var delta = boundedDelta(state.delta);
|
|
62
|
+
if (!disabled) {
|
|
63
|
+
target.current.style.left = "".concat(start.current[0] + delta[0], "px");
|
|
64
|
+
target.current.style.top = "".concat(start.current[1] + delta[1], "px");
|
|
65
|
+
}
|
|
66
|
+
transit.to({ x: 0, y: 0, immediate: true });
|
|
67
|
+
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(__assign(__assign({}, state), { delta: delta }));
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
return bind;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=useDraggable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDraggable.js","sourceRoot":"","sources":["../../src/hooks/useDraggable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAW5C,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,EAAmE;QAAlE,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAE,WAAO,EAAP,GAAG,mBAAG,CAAC,KAAA;IACnF,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;IACpD,IAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAErC,IAAM,YAAY,GAAG,UAAC,KAAa;QACzB,IAAA,KAAA,OAAmB,KAAK,IAAA,EAAvB,MAAM,QAAA,EAAE,MAAM,QAAS,CAAC;QACzB,IAAA,KAAA,OAAe,MAAM,CAAC,OAAO,CAAC,CAAC,IAAA,EAA9B,IAAI,QAAA,EAAE,IAAI,QAAoB,CAAC;QAChC,IAAA,KAAA,OAAe,MAAM,CAAC,OAAO,CAAC,CAAC,IAAA,EAA9B,IAAI,QAAA,EAAE,IAAI,QAAoB,CAAC;QAEtC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC;IAEF,IAAM,IAAI,GAAG,OAAO,CAAC;QACjB,WAAW,EAAE,UAAA,KAAK;YACd,IAAI,MAAM,CAAC,OAAO,EAAE;gBACV,IAAA,KAA6B,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAlE,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,KAAG,SAA0C,CAAC;gBAC1E,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,KAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,GAAG,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC,EAAC,CAAC;gBACzH,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,CAAC;aACxB;QACL,CAAC;QACD,MAAM,EAAE,UAAA,KAAK;YACT,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,IAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;gBACtE,MAAM,aAAN,MAAM,uBAAN,MAAM,uBAAO,KAAK,KAAE,KAAK,OAAA,IAAE,CAAC;aAC/B;QACL,CAAC;QACD,SAAS,EAAE,UAAA,KAAK;YACZ,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,IAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,QAAQ,EAAE;oBACX,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,UAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAI,CAAC;oBAC/D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,UAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAI,CAAC;iBACjE;gBACD,OAAO,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC1C,SAAS,aAAT,SAAS,uBAAT,SAAS,uBAAO,KAAK,KAAE,KAAK,OAAA,IAAE,CAAC;aAClC;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
package/internal/NumberUtil.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
declare function rounding(value: number, algorithm: "round" | "ceil" | "floor", maxScale: number): number;
|
|
2
2
|
declare function roundingToString(value: number, algorithm: "round" | "ceil" | "floor", scale: number): string;
|
|
3
|
+
declare function clamp(value: number, min: number, max: number): number;
|
|
3
4
|
export declare const NumberUtil: Readonly<{
|
|
4
5
|
rounding: typeof rounding;
|
|
5
6
|
roundingToString: typeof roundingToString;
|
|
7
|
+
clamp: typeof clamp;
|
|
6
8
|
}>;
|
|
7
9
|
export {};
|
package/internal/NumberUtil.js
CHANGED
|
@@ -31,8 +31,15 @@ function rounding(value, algorithm, maxScale) {
|
|
|
31
31
|
function roundingToString(value, algorithm, scale) {
|
|
32
32
|
return rounding(value, algorithm, scale).toFixed(scale);
|
|
33
33
|
}
|
|
34
|
+
function clamp(value, min, max) {
|
|
35
|
+
if (min > max) {
|
|
36
|
+
throw new Error("[util] NumberUtil.clamp min(".concat(min, ") must be <= max(").concat(max, ")"));
|
|
37
|
+
}
|
|
38
|
+
return Math.max(min, Math.min(max, value));
|
|
39
|
+
}
|
|
34
40
|
export var NumberUtil = Object.freeze({
|
|
35
41
|
rounding: rounding,
|
|
36
42
|
roundingToString: roundingToString,
|
|
43
|
+
clamp: clamp,
|
|
37
44
|
});
|
|
38
45
|
//# sourceMappingURL=NumberUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberUtil.js","sourceRoot":"","sources":["../../src/internal/NumberUtil.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAqC,EAAE,QAAgB;IACpF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE;QAC9D,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAChG;IACD;;;;;;;;;;;;OAYG;IACH,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,IAAM,eAAe,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,IAAM,mBAAmB,GAAG,SAAA,EAAE,EAAI,eAAe,CAAA,CAAC;IAClD,IAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,CAAC,gBAAgB,CAAC;IACxF,IAAM,SAAS,GAAG,SAAA,EAAE,EAAI,QAAQ,CAAA,CAAC;IACjC,IAAI,eAAe,GAAG,QAAQ,IAAI,gBAAgB,EAAE;QAChD,IAAM,aAAa,GAAG,SAAA,EAAE,EAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAA,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;KACrF;SAAM;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;KACzD;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,SAAqC,EAAE,KAAa;IACzF,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,QAAQ,UAAA;IACR,gBAAgB,kBAAA;
|
|
1
|
+
{"version":3,"file":"NumberUtil.js","sourceRoot":"","sources":["../../src/internal/NumberUtil.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAqC,EAAE,QAAgB;IACpF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE;QAC9D,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAChG;IACD;;;;;;;;;;;;OAYG;IACH,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,IAAM,eAAe,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,IAAM,mBAAmB,GAAG,SAAA,EAAE,EAAI,eAAe,CAAA,CAAC;IAClD,IAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,CAAC,gBAAgB,CAAC;IACxF,IAAM,SAAS,GAAG,SAAA,EAAE,EAAI,QAAQ,CAAA,CAAC;IACjC,IAAI,eAAe,GAAG,QAAQ,IAAI,gBAAgB,EAAE;QAChD,IAAM,aAAa,GAAG,SAAA,EAAE,EAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAA,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;KACrF;SAAM;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;KACzD;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,SAAqC,EAAE,KAAa;IACzF,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAClD,IAAI,GAAG,GAAG,GAAG,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,sCAA+B,GAAG,8BAAoB,GAAG,MAAG,CAAC,CAAC;KACjF;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,QAAQ,UAAA;IACR,gBAAgB,kBAAA;IAChB,KAAK,OAAA;CACR,CAAC,CAAC"}
|