publ-echo 0.0.4 → 0.0.6
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/App.d.ts +2 -0
- package/dist/App.js +18 -0
- package/dist/examples/ReactGridLayout/ReactGridLayoutShowcase01.d.ts +2 -0
- package/dist/examples/ReactGridLayout/ReactGridLayoutShowcase01.js +57 -0
- package/dist/examples/ReactGridLayout/index.js +1 -0
- package/dist/examples/ResponsiveGridLayout/ResponsiveGridLayoutShowcase01.d.ts +2 -0
- package/dist/examples/ResponsiveGridLayout/ResponsiveGridLayoutShowcase01.js +69 -0
- package/dist/examples/ResponsiveGridLayout/index.js +1 -0
- package/dist/examples/index.js +2 -0
- package/dist/examples/utils.d.ts +8 -0
- package/dist/examples/utils.js +14 -0
- package/dist/index.d.ts +1 -0
- package/{src/index.tsx → dist/index.js} +3 -12
- package/dist/lib/Draggable/Draggable.d.ts +17 -0
- package/dist/lib/Draggable/Draggable.js +192 -0
- package/dist/lib/Draggable/DraggableCore.d.ts +5 -0
- package/dist/lib/Draggable/DraggableCore.js +266 -0
- package/dist/lib/Draggable/constants.d.ts +12 -0
- package/dist/lib/Draggable/constants.js +12 -0
- package/dist/lib/Draggable/index.js +2 -0
- package/dist/lib/Draggable/types.d.ts +55 -0
- package/dist/lib/Draggable/types.js +1 -0
- package/dist/lib/Draggable/utils/domHelpers.d.ts +22 -0
- package/dist/lib/Draggable/utils/domHelpers.js +222 -0
- package/dist/lib/Draggable/utils/getPrefix.d.ts +5 -0
- package/dist/lib/Draggable/utils/getPrefix.js +41 -0
- package/dist/lib/Draggable/utils/positionHelpers.d.ts +7 -0
- package/dist/lib/Draggable/utils/positionHelpers.js +32 -0
- package/dist/lib/Draggable/utils/types.d.ts +30 -0
- package/dist/lib/Draggable/utils/types.js +1 -0
- package/dist/lib/Draggable/utils/validationHelpers.d.ts +4 -0
- package/dist/lib/Draggable/utils/validationHelpers.js +16 -0
- package/dist/lib/GridItem/GridItem.d.ts +5 -0
- package/dist/lib/GridItem/GridItem.js +324 -0
- package/dist/lib/GridItem/index.js +1 -0
- package/dist/lib/GridItem/types.d.ts +105 -0
- package/dist/lib/GridItem/types.js +1 -0
- package/dist/lib/GridItem/utils/calculateUtils.d.ts +30 -0
- package/dist/lib/GridItem/utils/calculateUtils.js +108 -0
- package/dist/lib/GridLayoutEditor/ReactGridLayout.d.ts +5 -0
- package/dist/lib/GridLayoutEditor/ReactGridLayout.js +423 -0
- package/dist/lib/GridLayoutEditor/ResponsiveGridLayout.d.ts +4 -0
- package/dist/lib/GridLayoutEditor/ResponsiveGridLayout.js +117 -0
- package/dist/lib/GridLayoutEditor/index.d.ts +3 -0
- package/dist/lib/GridLayoutEditor/index.js +2 -0
- package/dist/lib/GridLayoutEditor/types.d.ts +129 -0
- package/dist/lib/GridLayoutEditor/types.js +1 -0
- package/dist/lib/GridLayoutEditor/utils/renderHelpers.d.ts +164 -0
- package/dist/lib/GridLayoutEditor/utils/renderHelpers.js +591 -0
- package/dist/lib/GridLayoutEditor/utils/responsiveUtils.d.ts +26 -0
- package/dist/lib/GridLayoutEditor/utils/responsiveUtils.js +77 -0
- package/dist/lib/PreviewGLE/ReactGridLayoutPreview.d.ts +7 -0
- package/dist/lib/PreviewGLE/ReactGridLayoutPreview.js +35 -0
- package/dist/lib/PreviewGLE/ResponsiveGridLayoutPreview.d.ts +9 -0
- package/dist/lib/PreviewGLE/ResponsiveGridLayoutPreview.js +38 -0
- package/dist/lib/PreviewGLE/index.js +2 -0
- package/dist/lib/Resizable/Resizable.d.ts +7 -0
- package/dist/lib/Resizable/Resizable.js +216 -0
- package/dist/lib/Resizable/ResizableBox.d.ts +7 -0
- package/dist/lib/Resizable/ResizableBox.js +57 -0
- package/dist/lib/Resizable/index.js +1 -0
- package/dist/lib/Resizable/types.d.ts +63 -0
- package/dist/lib/Resizable/types.js +1 -0
- package/dist/lib/Resizable/utils/cloneElement.d.ts +2 -0
- package/dist/lib/Resizable/utils/cloneElement.js +21 -0
- package/dist/lib/components/WidthProvider.d.ts +9 -0
- package/dist/lib/components/WidthProvider.js +55 -0
- package/dist/lib/components/index.js +1 -0
- package/dist/lib/components/types.d.ts +13 -0
- package/dist/lib/components/types.js +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/reportWebVitals.d.ts +3 -0
- package/dist/reportWebVitals.js +13 -0
- package/dist/setupTests.d.ts +1 -0
- package/dist/utils/types.d.ts +4 -0
- package/dist/utils/types.js +1 -0
- package/package.json +5 -5
- package/bin/cli.js +0 -8
- package/bitbucket-pipelines.yml +0 -35
- package/public/favicon.ico +0 -0
- package/public/index.html +0 -43
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +0 -25
- package/public/robots.txt +0 -3
- package/src/App.tsx +0 -28
- package/src/examples/ReactGridLayout/ReactGridLayoutShowcase01.tsx +0 -80
- package/src/examples/ResponsiveGridLayout/ResponsiveGridLayoutShowcase01.tsx +0 -114
- package/src/examples/utils.ts +0 -15
- package/src/lib/Draggable/Draggable.tsx +0 -303
- package/src/lib/Draggable/DraggableCore.tsx +0 -352
- package/src/lib/Draggable/constants.ts +0 -12
- package/src/lib/Draggable/types.ts +0 -74
- package/src/lib/Draggable/utils/domHelpers.ts +0 -284
- package/src/lib/Draggable/utils/getPrefix.ts +0 -42
- package/src/lib/Draggable/utils/positionHelpers.ts +0 -49
- package/src/lib/Draggable/utils/types.ts +0 -41
- package/src/lib/Draggable/utils/validationHelpers.ts +0 -23
- package/src/lib/GridItem/GridItem.tsx +0 -493
- package/src/lib/GridItem/types.ts +0 -121
- package/src/lib/GridItem/utils/calculateUtils.ts +0 -173
- package/src/lib/GridLayoutEditor/ReactGridLayout.tsx +0 -662
- package/src/lib/GridLayoutEditor/ResponsiveGridLayout.tsx +0 -204
- package/src/lib/GridLayoutEditor/index.ts +0 -11
- package/src/lib/GridLayoutEditor/styles/styles.css +0 -133
- package/src/lib/GridLayoutEditor/types.ts +0 -199
- package/src/lib/GridLayoutEditor/utils/renderHelpers.ts +0 -737
- package/src/lib/GridLayoutEditor/utils/responsiveUtils.ts +0 -111
- package/src/lib/PreviewGLE/ReactGridLayoutPreview.tsx +0 -46
- package/src/lib/PreviewGLE/ResponsiveGridLayoutPreview.tsx +0 -54
- package/src/lib/Resizable/Resizable.tsx +0 -323
- package/src/lib/Resizable/ResizableBox.tsx +0 -109
- package/src/lib/Resizable/styles/styles.css +0 -76
- package/src/lib/Resizable/types.ts +0 -96
- package/src/lib/Resizable/utils/cloneElement.ts +0 -15
- package/src/lib/components/WidthProvider.tsx +0 -71
- package/src/lib/components/types.ts +0 -19
- package/src/react-app-env.d.ts +0 -1
- package/src/reportWebVitals.ts +0 -15
- package/src/utils/types.ts +0 -3
- package/tsconfig.json +0 -22
- /package/{src/examples/ReactGridLayout/index.ts → dist/examples/ReactGridLayout/index.d.ts} +0 -0
- /package/{src/examples/ResponsiveGridLayout/index.ts → dist/examples/ResponsiveGridLayout/index.d.ts} +0 -0
- /package/{src/examples/index.ts → dist/examples/index.d.ts} +0 -0
- /package/{src/lib/Draggable/index.ts → dist/lib/Draggable/index.d.ts} +0 -0
- /package/{src/lib/GridItem/index.ts → dist/lib/GridItem/index.d.ts} +0 -0
- /package/{src/lib/PreviewGLE/index.ts → dist/lib/PreviewGLE/index.d.ts} +0 -0
- /package/{src/lib/Resizable/index.ts → dist/lib/Resizable/index.d.ts} +0 -0
- /package/{src/lib/components/index.ts → dist/lib/components/index.d.ts} +0 -0
- /package/{src/lib/index.ts → dist/lib/index.d.ts} +0 -0
- /package/{src/setupTests.ts → dist/setupTests.js} +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import ReactGridLayout from "../GridLayoutEditor/ReactGridLayout";
|
|
18
|
+
import styled from "styled-components";
|
|
19
|
+
// const Responsive = WidthProvider(ReactGridLayout);
|
|
20
|
+
// NOTE - 예시용으로 확인할 수 있게 props을 받았지만 추후에 배포될 때 제거 필요
|
|
21
|
+
function ReactGridLayoutPreview(_a) {
|
|
22
|
+
var layout = _a.layout, props = _a.props;
|
|
23
|
+
var defaultProps = {
|
|
24
|
+
isDraggable: false,
|
|
25
|
+
isResizable: false,
|
|
26
|
+
};
|
|
27
|
+
// const [layout, setLayout] = useState<Layout>(lay);
|
|
28
|
+
function onLayoutChange(newLayout) {
|
|
29
|
+
// setLayout(newLayout);
|
|
30
|
+
}
|
|
31
|
+
return (_jsx(ReactGridLayout, __assign({ layout: layout, onLayoutChange: onLayoutChange }, defaultProps, props, { children: layout.map(function (each) { return (_jsx(S_SampleBox, { children: each.i }, each.i)); }) })));
|
|
32
|
+
}
|
|
33
|
+
var S_SampleBox = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100px;\n height: 100px;\n background-color: #fbff00;\n border: #3c1eff 1px solid;\n"], ["\n width: 100px;\n height: 100px;\n background-color: #fbff00;\n border: #3c1eff 1px solid;\n"])));
|
|
34
|
+
export default ReactGridLayoutPreview;
|
|
35
|
+
var templateObject_1;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Layout } from "../GridLayoutEditor/types";
|
|
2
|
+
type Props = {
|
|
3
|
+
layouts: {
|
|
4
|
+
[key: string]: Layout;
|
|
5
|
+
};
|
|
6
|
+
props: any;
|
|
7
|
+
};
|
|
8
|
+
declare function ResponsiveGridLayoutPreview({ layouts, props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default ResponsiveGridLayoutPreview;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import styled from "styled-components";
|
|
18
|
+
import ResponsiveGridLayout from "../GridLayoutEditor/ResponsiveGridLayout";
|
|
19
|
+
import { WidthProvider } from "../components";
|
|
20
|
+
import _ from "lodash";
|
|
21
|
+
var Responsive = WidthProvider(ResponsiveGridLayout);
|
|
22
|
+
// NOTE - 예시용으로 확인할 수 있게 props을 받았지만 추후에 배포될 때 제거 필요
|
|
23
|
+
function ResponsiveGridLayoutPreview(_a) {
|
|
24
|
+
var layouts = _a.layouts, props = _a.props;
|
|
25
|
+
var defaultProps = {
|
|
26
|
+
isDraggable: false,
|
|
27
|
+
isResizable: false,
|
|
28
|
+
};
|
|
29
|
+
function generateDOM() {
|
|
30
|
+
return _.map(layouts.lg, function (l, i) {
|
|
31
|
+
return (_jsx(S_SampleBox, { className: l.static ? "static" : "", children: l.static ? (_jsxs("span", { className: "text", title: "This item is static and cannot be removed or resized.", children: ["Static - ", i] })) : (_jsx("span", { className: "text", children: i })) }, i));
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return (_jsx(Responsive, __assign({ layouts: layouts }, defaultProps, props, { children: generateDOM() })));
|
|
35
|
+
}
|
|
36
|
+
var S_SampleBox = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100px;\n height: 100px;\n background-color: #fbff00;\n border: #3c1eff 1px solid;\n"], ["\n width: 100px;\n height: 100px;\n background-color: #fbff00;\n border: #3c1eff 1px solid;\n"])));
|
|
37
|
+
export default ResponsiveGridLayoutPreview;
|
|
38
|
+
var templateObject_1;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PropsWithChildren } from "../Draggable/types";
|
|
3
|
+
import { ResizableProps } from "./types";
|
|
4
|
+
import "./styles/styles.css";
|
|
5
|
+
type Props = ResizableProps;
|
|
6
|
+
declare const Resizable: ({ children, axis, handleSize, lockAspectRatio, minConstraints, maxConstraints, resizeHandles, transformScale, ...props }: PropsWithChildren<Props>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
7
|
+
export default Resizable;
|
|
@@ -0,0 +1,216 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
24
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
25
|
+
if (ar || !(i in from)) {
|
|
26
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
27
|
+
ar[i] = from[i];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
31
|
+
};
|
|
32
|
+
import { createElement as _createElement } from "react";
|
|
33
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
34
|
+
import React, { useRef } from "react";
|
|
35
|
+
import DraggableCore from "../Draggable/DraggableCore";
|
|
36
|
+
import { cloneElement } from "./utils/cloneElement";
|
|
37
|
+
import "./styles/styles.css";
|
|
38
|
+
var Resizable = function (_a) {
|
|
39
|
+
var children = _a.children, _b = _a.axis, axis = _b === void 0 ? "both" : _b, _c = _a.handleSize, handleSize = _c === void 0 ? [20, 20] : _c, _d = _a.lockAspectRatio, lockAspectRatio = _d === void 0 ? false : _d, _e = _a.minConstraints, minConstraints = _e === void 0 ? [20, 20] : _e, _f = _a.maxConstraints, maxConstraints = _f === void 0 ? [Infinity, Infinity] : _f, _g = _a.resizeHandles, resizeHandles = _g === void 0 ? ["se"] : _g, _h = _a.transformScale, transformScale = _h === void 0 ? 1 : _h, props = __rest(_a, ["children", "axis", "handleSize", "lockAspectRatio", "minConstraints", "maxConstraints", "resizeHandles", "transformScale"]);
|
|
40
|
+
var handleRefs = useRef({
|
|
41
|
+
s: useRef(null),
|
|
42
|
+
n: useRef(null),
|
|
43
|
+
e: useRef(null),
|
|
44
|
+
w: useRef(null),
|
|
45
|
+
se: useRef(null),
|
|
46
|
+
sw: useRef(null),
|
|
47
|
+
ne: useRef(null),
|
|
48
|
+
nw: useRef(null),
|
|
49
|
+
});
|
|
50
|
+
var startPosition = useRef(null);
|
|
51
|
+
var startSize = useRef(null);
|
|
52
|
+
var lastHandleRect = null;
|
|
53
|
+
var slack = null;
|
|
54
|
+
var className = props.className, draggableOpts = props.draggableOpts, width = props.width, height = props.height, handle = props.handle, onResize = props.onResize, onResizeStop = props.onResizeStop, onResizeStart = props.onResizeStart, restProps = __rest(props, ["className", "draggableOpts", "width", "height", "handle", "onResize", "onResizeStop", "onResizeStart"]);
|
|
55
|
+
var resetData = function () {
|
|
56
|
+
lastHandleRect = slack = null;
|
|
57
|
+
};
|
|
58
|
+
// NOTE - 최소 또는 최대 제약 조건 width와 height 계산, 비율 고정 계산
|
|
59
|
+
var checkConstraints = function (width, height) {
|
|
60
|
+
if (!minConstraints && !maxConstraints && !lockAspectRatio) {
|
|
61
|
+
return [width, height];
|
|
62
|
+
}
|
|
63
|
+
if (lockAspectRatio) {
|
|
64
|
+
var ratio = props.width / props.height;
|
|
65
|
+
var deltaWidth = width - props.width;
|
|
66
|
+
var deltaHeight = height - props.height;
|
|
67
|
+
if (Math.abs(deltaWidth) > Math.abs(deltaHeight * ratio)) {
|
|
68
|
+
height = width / ratio;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
width = height * ratio;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
var _a = [width, height], oldW = _a[0], oldH = _a[1];
|
|
75
|
+
var _b = slack || [0, 0], slackW = _b[0], slackH = _b[1];
|
|
76
|
+
width += slackW;
|
|
77
|
+
height += slackH;
|
|
78
|
+
if (minConstraints) {
|
|
79
|
+
width = Math.max(minConstraints[0], width);
|
|
80
|
+
height = Math.max(minConstraints[1], height);
|
|
81
|
+
}
|
|
82
|
+
if (maxConstraints) {
|
|
83
|
+
width = Math.min(maxConstraints[0], width);
|
|
84
|
+
height = Math.min(maxConstraints[1], height);
|
|
85
|
+
}
|
|
86
|
+
slack = [slackW + (oldW - width), slackH + (oldH - height)];
|
|
87
|
+
return [width, height];
|
|
88
|
+
};
|
|
89
|
+
var checkTopLeft = function (deltaX, deltaY, top, left, width, height, handleAxis) {
|
|
90
|
+
var newTop = top;
|
|
91
|
+
var newLeft = left;
|
|
92
|
+
if (!startPosition.current || !startSize.current)
|
|
93
|
+
return [newTop, newLeft];
|
|
94
|
+
var currentSumOfLeftAndWidth = left + width;
|
|
95
|
+
var startSumOfLeftAndWidth = startPosition.current.left + startSize.current.width;
|
|
96
|
+
var currentSumOfTopAndHeight = top + height;
|
|
97
|
+
var startSumOfTopAndHeight = startPosition.current.top + startSize.current.height;
|
|
98
|
+
var resizableLeft = startPosition.current.left + (startSize.current.width - width);
|
|
99
|
+
var resizableTop = startPosition.current.top + (startSize.current.height - height);
|
|
100
|
+
if (deltaX < 0) {
|
|
101
|
+
if (handleAxis === "nw" || handleAxis === "w" || handleAxis === "sw") {
|
|
102
|
+
if (currentSumOfLeftAndWidth > startSumOfLeftAndWidth) {
|
|
103
|
+
newLeft = Math.min(left, resizableLeft);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (deltaY < 0) {
|
|
108
|
+
if (handleAxis === "nw" || handleAxis === "n" || handleAxis === "ne") {
|
|
109
|
+
if (currentSumOfTopAndHeight > startSumOfTopAndHeight) {
|
|
110
|
+
newTop = Math.min(top, resizableTop);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (deltaX > 0) {
|
|
115
|
+
if (handleAxis === "nw" || handleAxis === "w" || handleAxis === "sw") {
|
|
116
|
+
if (width >= minConstraints[0]) {
|
|
117
|
+
newLeft = Math.max(left, resizableLeft);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (deltaY > 0) {
|
|
122
|
+
if (handleAxis === "nw" || handleAxis === "n" || handleAxis === "ne") {
|
|
123
|
+
if (height >= minConstraints[1]) {
|
|
124
|
+
newTop = Math.max(top, resizableTop);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return [newTop, newLeft];
|
|
129
|
+
};
|
|
130
|
+
var resizeHandler = function (handlerName, handleAxis) {
|
|
131
|
+
return function (e, _a) {
|
|
132
|
+
var _b, _c;
|
|
133
|
+
var _d, _e, _f, _g, _h, _j;
|
|
134
|
+
var node = _a.node, deltaX = _a.deltaX, deltaY = _a.deltaY;
|
|
135
|
+
if (handlerName === "onResizeStart") {
|
|
136
|
+
var position = { top: (_d = props.top) !== null && _d !== void 0 ? _d : 0, left: (_e = props.left) !== null && _e !== void 0 ? _e : 0 };
|
|
137
|
+
startPosition.current = position;
|
|
138
|
+
startSize.current = {
|
|
139
|
+
width: (_f = props.width) !== null && _f !== void 0 ? _f : 0,
|
|
140
|
+
height: (_g = props.height) !== null && _g !== void 0 ? _g : 0,
|
|
141
|
+
};
|
|
142
|
+
resetData();
|
|
143
|
+
}
|
|
144
|
+
var canDragX = (axis === "both" || axis === "x") &&
|
|
145
|
+
handleAxis !== "n" &&
|
|
146
|
+
handleAxis !== "s";
|
|
147
|
+
var canDragY = (axis === "both" || axis === "y") &&
|
|
148
|
+
handleAxis !== "e" &&
|
|
149
|
+
handleAxis !== "w";
|
|
150
|
+
if (!canDragX && !canDragY)
|
|
151
|
+
return;
|
|
152
|
+
var axisV = handleAxis[0];
|
|
153
|
+
var axisH = handleAxis[handleAxis.length - 1];
|
|
154
|
+
var handleRect = node.getBoundingClientRect();
|
|
155
|
+
// if (lastHandleRect !== null) {
|
|
156
|
+
// if (axisH === "w") {
|
|
157
|
+
// const deltaLeftSinceLast = handleRect.left - lastHandleRect.left;
|
|
158
|
+
// deltaX += deltaLeftSinceLast;
|
|
159
|
+
// }
|
|
160
|
+
// if (axisV === "n") {
|
|
161
|
+
// const deltaTopSinceLast = handleRect.top - lastHandleRect.top;
|
|
162
|
+
// deltaY += deltaTopSinceLast;
|
|
163
|
+
// }
|
|
164
|
+
// }
|
|
165
|
+
lastHandleRect = handleRect;
|
|
166
|
+
if (axisH === "w") {
|
|
167
|
+
deltaX = -deltaX;
|
|
168
|
+
}
|
|
169
|
+
if (axisV === "n") {
|
|
170
|
+
deltaY = -deltaY;
|
|
171
|
+
}
|
|
172
|
+
var width = props.width + (canDragX ? deltaX / transformScale : 0);
|
|
173
|
+
var height = props.height + (canDragY ? deltaY / transformScale : 0);
|
|
174
|
+
var left = (_h = props === null || props === void 0 ? void 0 : props.left) !== null && _h !== void 0 ? _h : 0;
|
|
175
|
+
var top = (_j = props === null || props === void 0 ? void 0 : props.top) !== null && _j !== void 0 ? _j : 0;
|
|
176
|
+
if (axisV === "n") {
|
|
177
|
+
top = top - deltaY;
|
|
178
|
+
}
|
|
179
|
+
if (axisH === "w") {
|
|
180
|
+
left = left - deltaX;
|
|
181
|
+
}
|
|
182
|
+
_b = checkConstraints(width, height), width = _b[0], height = _b[1];
|
|
183
|
+
_c = checkTopLeft(deltaX, deltaY, top, left, width, height, handleAxis), top = _c[0], left = _c[1];
|
|
184
|
+
var isDimensionsChanged = width !== props.width || height !== props.height;
|
|
185
|
+
var cb = typeof props[handlerName] === "function" ? props[handlerName] : null;
|
|
186
|
+
var isCbSkipped = handlerName === "onResize" && !isDimensionsChanged;
|
|
187
|
+
if (cb && !isCbSkipped) {
|
|
188
|
+
cb(e, { node: node, size: { width: width, height: height, top: top, left: left }, handle: handleAxis });
|
|
189
|
+
}
|
|
190
|
+
if (handlerName === "onResizeStop") {
|
|
191
|
+
startPosition.current = null;
|
|
192
|
+
startSize.current = null;
|
|
193
|
+
resetData();
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
var renderResizeHandle = function (handleAxis, ref) {
|
|
198
|
+
if (!handle) {
|
|
199
|
+
return (_jsx("span", { className: "react-resizable-handle react-resizable-handle-".concat(handleAxis), ref: ref }));
|
|
200
|
+
}
|
|
201
|
+
if (typeof handle === "function") {
|
|
202
|
+
return handle(handleAxis, ref);
|
|
203
|
+
}
|
|
204
|
+
var isDOMElement = typeof handle.type === "string";
|
|
205
|
+
var props = __assign({ ref: ref }, (isDOMElement ? {} : { handleAxis: handleAxis }));
|
|
206
|
+
return React.cloneElement(handle, props);
|
|
207
|
+
};
|
|
208
|
+
return cloneElement(children, __assign(__assign({}, restProps), { className: "".concat(className ? "".concat(className, " ") : "", "react-resizable"), children: __spreadArray([
|
|
209
|
+
// ...children.props.children,
|
|
210
|
+
React.Children.map(children.props.children, function (child) { return child; })
|
|
211
|
+
], resizeHandles.map(function (handleAxis) {
|
|
212
|
+
var ref = (handleRefs === null || handleRefs === void 0 ? void 0 : handleRefs.current) && handleRefs.current[handleAxis];
|
|
213
|
+
return (_createElement(DraggableCore, __assign({}, draggableOpts, { nodeRef: ref, key: "resizableHandle-".concat(handleAxis), onStop: resizeHandler("onResizeStop", handleAxis), onStart: resizeHandler("onResizeStart", handleAxis), onDrag: resizeHandler("onResize", handleAxis) }), renderResizeHandle(handleAxis, ref)));
|
|
214
|
+
}), true) }));
|
|
215
|
+
};
|
|
216
|
+
export default Resizable;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ResizableProps } from "./types";
|
|
2
|
+
import { PropsWithChildren } from "../Draggable/types";
|
|
3
|
+
type ResizableBoxProps = ResizableProps & {
|
|
4
|
+
style?: Object;
|
|
5
|
+
};
|
|
6
|
+
declare const ResizableBox: ({ children, ...props }: PropsWithChildren<ResizableBoxProps>) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default ResizableBox;
|
|
@@ -0,0 +1,57 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
24
|
+
import { useState } from "react";
|
|
25
|
+
import Resizable from "./Resizable";
|
|
26
|
+
var ResizableBox = function (_a) {
|
|
27
|
+
var children = _a.children, props = __rest(_a, ["children"]);
|
|
28
|
+
var handle = props.handle, handleSize = props.handleSize, onResize = props.onResize, onResizeStart = props.onResizeStart, onResizeStop = props.onResizeStop, draggableOpts = props.draggableOpts, minConstraints = props.minConstraints, maxConstraints = props.maxConstraints, lockAspectRatio = props.lockAspectRatio, axis = props.axis, width = props.width, height = props.height, resizeHandles = props.resizeHandles, style = props.style, transformScale = props.transformScale, restProps = __rest(props, ["handle", "handleSize", "onResize", "onResizeStart", "onResizeStop", "draggableOpts", "minConstraints", "maxConstraints", "lockAspectRatio", "axis", "width", "height", "resizeHandles", "style", "transformScale"]);
|
|
29
|
+
var _b = useState({
|
|
30
|
+
width: width,
|
|
31
|
+
height: height,
|
|
32
|
+
propsWidth: width,
|
|
33
|
+
propsHeight: height,
|
|
34
|
+
}), resizableBoxState = _b[0], setResizableBoxState = _b[1];
|
|
35
|
+
var handleResize = function (e, data) {
|
|
36
|
+
var size = data.size;
|
|
37
|
+
if (props.onResize) {
|
|
38
|
+
setResizableBoxState(function (prevState) { return (__assign(__assign({}, prevState), { width: size.width, height: size.height })); });
|
|
39
|
+
props.onResize(e, data);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
setResizableBoxState(function (prevState) { return (__assign(__assign({}, prevState), { width: size.width, height: size.height })); });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// NOTE - class형 컴포넌트에서 사용되는 getDerivedStateFromProps에 대응하기 위한 조건문입니다.
|
|
46
|
+
if (width !== resizableBoxState.propsWidth ||
|
|
47
|
+
height !== resizableBoxState.propsHeight) {
|
|
48
|
+
setResizableBoxState({
|
|
49
|
+
width: width,
|
|
50
|
+
height: height,
|
|
51
|
+
propsWidth: width,
|
|
52
|
+
propsHeight: height,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return (_jsx(_Fragment, { children: _jsx(Resizable, { axis: axis, draggableOpts: draggableOpts, handle: handle, handleSize: handleSize, height: resizableBoxState.height, lockAspectRatio: lockAspectRatio, maxConstraints: maxConstraints, minConstraints: minConstraints, onResizeStart: onResizeStart, onResize: handleResize, onResizeStop: onResizeStop, resizeHandles: resizeHandles, transformScale: transformScale, width: resizableBoxState.width, children: _jsx("div", __assign({}, restProps, { style: __assign(__assign({}, style), { width: resizableBoxState.width + "px", height: resizableBoxState.height + "px" }) })) }) }));
|
|
56
|
+
};
|
|
57
|
+
export default ResizableBox;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Resizable } from "./Resizable";
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CSSProperties, ReactElement, Ref, SyntheticEvent } from "react";
|
|
2
|
+
import { DraggableCoreDefaultProps } from "../Draggable/types";
|
|
3
|
+
export type ReactRef<T> = {
|
|
4
|
+
current: T | null;
|
|
5
|
+
};
|
|
6
|
+
export type Axis = "both" | "x" | "y" | "none";
|
|
7
|
+
export type ResizeHandleAxis = "s" | "w" | "e" | "n" | "sw" | "nw" | "se" | "ne";
|
|
8
|
+
export type ResizableBoxState = {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
propsWidth: number;
|
|
12
|
+
propsHeight: number;
|
|
13
|
+
};
|
|
14
|
+
export type DragCallbackData = {
|
|
15
|
+
node: HTMLElement;
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
deltaX: number;
|
|
19
|
+
deltaY: number;
|
|
20
|
+
lastX: number;
|
|
21
|
+
lastY: number;
|
|
22
|
+
};
|
|
23
|
+
export type ResizeCallbackData = {
|
|
24
|
+
node: HTMLElement;
|
|
25
|
+
size: {
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
top: number;
|
|
29
|
+
left: number;
|
|
30
|
+
};
|
|
31
|
+
handle: ResizeHandleAxis;
|
|
32
|
+
};
|
|
33
|
+
export type ResizableDefaultProps = {
|
|
34
|
+
axis: Axis;
|
|
35
|
+
handleSize: [number, number];
|
|
36
|
+
lockAspectRatio: boolean;
|
|
37
|
+
minConstraints: [number, number];
|
|
38
|
+
maxConstraints: [number, number];
|
|
39
|
+
resizeHandles: ResizeHandleAxis[];
|
|
40
|
+
transformScale: number;
|
|
41
|
+
};
|
|
42
|
+
export type ResizableProps = {
|
|
43
|
+
top?: number;
|
|
44
|
+
left?: number;
|
|
45
|
+
children?: ReactElement<any>;
|
|
46
|
+
axis?: Axis;
|
|
47
|
+
className?: string;
|
|
48
|
+
draggableOpts?: Partial<DraggableCoreDefaultProps>;
|
|
49
|
+
handle?: ResizeHandleType;
|
|
50
|
+
onResizeStop?: (e: SyntheticEvent<any>, data: ResizeCallbackData) => any;
|
|
51
|
+
onResizeStart?: (e: SyntheticEvent<any>, data: ResizeCallbackData) => any;
|
|
52
|
+
onResize?: (e: SyntheticEvent<any>, data: ResizeCallbackData) => any;
|
|
53
|
+
handleSize?: [number, number];
|
|
54
|
+
lockAspectRatio?: boolean;
|
|
55
|
+
minConstraints?: [number, number];
|
|
56
|
+
maxConstraints?: [number, number];
|
|
57
|
+
resizeHandles?: ResizeHandleAxis[];
|
|
58
|
+
transformScale?: number;
|
|
59
|
+
style?: CSSProperties;
|
|
60
|
+
width: number;
|
|
61
|
+
height: number;
|
|
62
|
+
};
|
|
63
|
+
export type ResizeHandleType = ReactElement<any> | ((resizeHandleAxis: ResizeHandleAxis, ref: Ref<HTMLElement>) => ReactElement<any>);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
export function cloneElement(element, props) {
|
|
14
|
+
if (props.style && element.props.style) {
|
|
15
|
+
props.style = __assign(__assign({}, element.props.style), props.style);
|
|
16
|
+
}
|
|
17
|
+
if (props.className && element.props.className) {
|
|
18
|
+
props.className = "".concat(element.props.className, " ").concat(props.className);
|
|
19
|
+
}
|
|
20
|
+
return React.cloneElement(element, props);
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type ComposedProps<Config> = {
|
|
3
|
+
measureBeforeMount?: boolean;
|
|
4
|
+
className?: string;
|
|
5
|
+
style?: Object;
|
|
6
|
+
width?: number;
|
|
7
|
+
} & Config;
|
|
8
|
+
declare const WidthProvider: <Config>(ComposedComponent: React.ComponentType<Config>) => (props: ComposedProps<Config>) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default WidthProvider;
|
|
@@ -0,0 +1,55 @@
|
|
|
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 { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
14
|
+
import classNames from "classnames";
|
|
15
|
+
import { useRef, useState, useEffect } from "react";
|
|
16
|
+
var layoutClassName = "react-grid-layout";
|
|
17
|
+
/*
|
|
18
|
+
* A simple HOC that provides facility for listening to container resizes.
|
|
19
|
+
*/
|
|
20
|
+
var WidthProvider = function (ComposedComponent) {
|
|
21
|
+
return function (props) {
|
|
22
|
+
var _a;
|
|
23
|
+
var elementRef = useRef(null);
|
|
24
|
+
var mounted = useRef(false);
|
|
25
|
+
var _b = useState({
|
|
26
|
+
width: (_a = props.width) !== null && _a !== void 0 ? _a : 1280,
|
|
27
|
+
}), state = _b[0], setState = _b[1];
|
|
28
|
+
var _c = props.measureBeforeMount, measureBeforeMount = _c === void 0 ? false : _c;
|
|
29
|
+
useEffect(function () {
|
|
30
|
+
if (mounted.current) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
mounted.current = true;
|
|
34
|
+
window.addEventListener("resize", onWindowResize);
|
|
35
|
+
onWindowResize();
|
|
36
|
+
return function () {
|
|
37
|
+
mounted.current = false;
|
|
38
|
+
window.removeEventListener("resize", onWindowResize);
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
var onWindowResize = function () {
|
|
42
|
+
if (!mounted.current)
|
|
43
|
+
return;
|
|
44
|
+
var node = elementRef.current;
|
|
45
|
+
if (node instanceof HTMLElement && node.offsetWidth) {
|
|
46
|
+
setState({ width: node.offsetWidth });
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
if (measureBeforeMount && !mounted.current) {
|
|
50
|
+
return (_jsx("div", { className: classNames(props.className, layoutClassName), style: props.style, ref: elementRef }));
|
|
51
|
+
}
|
|
52
|
+
return _jsx(ComposedComponent, __assign({}, props, { innerRef: elementRef }, state));
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
export default WidthProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as WidthProvider } from "./WidthProvider";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
export type WidthProviderProps = {
|
|
3
|
+
measureBeforeMount: boolean;
|
|
4
|
+
className?: string;
|
|
5
|
+
style?: Object;
|
|
6
|
+
};
|
|
7
|
+
export type WidthProviderState = {
|
|
8
|
+
width: number;
|
|
9
|
+
};
|
|
10
|
+
export type WidthProviderRef = {
|
|
11
|
+
innerRef?: RefObject<HTMLDivElement>;
|
|
12
|
+
};
|
|
13
|
+
export type ComposedProps = WidthProviderProps & WidthProviderState & WidthProviderRef;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var reportWebVitals = function (onPerfEntry) {
|
|
2
|
+
if (onPerfEntry && onPerfEntry instanceof Function) {
|
|
3
|
+
import('web-vitals').then(function (_a) {
|
|
4
|
+
var getCLS = _a.getCLS, getFID = _a.getFID, getFCP = _a.getFCP, getLCP = _a.getLCP, getTTFB = _a.getTTFB;
|
|
5
|
+
getCLS(onPerfEntry);
|
|
6
|
+
getFID(onPerfEntry);
|
|
7
|
+
getFCP(onPerfEntry);
|
|
8
|
+
getLCP(onPerfEntry);
|
|
9
|
+
getTTFB(onPerfEntry);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export default reportWebVitals;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "publ-echo",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
7
|
+
"files": [
|
|
8
|
+
"/dist"
|
|
9
|
+
],
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@testing-library/jest-dom": "^5.16.5",
|
|
12
12
|
"@testing-library/react": "^13.4.0",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"start": "react-scripts start",
|
|
27
|
-
"build": "
|
|
27
|
+
"build": "rm -rf ./dist && tsc -noEmit false",
|
|
28
28
|
"test": "react-scripts test",
|
|
29
29
|
"eject": "react-scripts eject"
|
|
30
30
|
},
|