@lemon-fe/components 1.2.11 → 1.2.12-alpha.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/es/modal/index.d.ts +1 -1
- package/es/modal/index.js +92 -11
- package/es/modal/index.less +11 -1
- package/package.json +3 -3
package/es/modal/index.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ declare const Modal: Pick<React.FC<AntdModalProps> & import("antd/lib/modal/conf
|
|
|
12
12
|
useModal: typeof import("antd/lib/modal/useModal").default;
|
|
13
13
|
destroyAll: () => void;
|
|
14
14
|
config: typeof import("antd/lib/modal/confirm").modalGlobalConfig;
|
|
15
|
-
}, "success" | "error" | "warning" | "info" | "warn" | "confirm" | "useModal" | "
|
|
15
|
+
}, "success" | "error" | "warning" | "info" | "warn" | "confirm" | "useModal" | "config" | "destroyAll"> & typeof LemonModal;
|
|
16
16
|
export default Modal;
|
package/es/modal/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["enableFullscreen", "defaultFullscreen", "fullscreen", "onFullscreenChange", "title", "wrapClassName"];
|
|
3
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
var _excluded = ["enableFullscreen", "defaultFullscreen", "fullscreen", "onFullscreenChange", "title", "wrapClassName", "transform"];
|
|
4
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
6
6
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
8
8
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -15,11 +15,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
15
15
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
16
16
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
17
17
|
import { Modal as AntdModal } from 'antd';
|
|
18
|
-
import React, { useState } from 'react';
|
|
18
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
19
19
|
import Icons from "../icons";
|
|
20
20
|
import { prefixClassName } from "../utils";
|
|
21
|
+
import { DndContext, useDraggable, MouseSensor, TouchSensor, useSensor, useSensors } from '@dnd-kit/core';
|
|
21
22
|
import classNames from 'classnames';
|
|
22
|
-
function
|
|
23
|
+
function LemonModalInternal(props) {
|
|
23
24
|
var _ref;
|
|
24
25
|
var enableFullscreen = props.enableFullscreen,
|
|
25
26
|
defaultFullscreen = props.defaultFullscreen,
|
|
@@ -27,12 +28,33 @@ function LemonModal(props) {
|
|
|
27
28
|
onFullscreenChange = props.onFullscreenChange,
|
|
28
29
|
title = props.title,
|
|
29
30
|
wrapClassName = props.wrapClassName,
|
|
31
|
+
transformProp = props.transform,
|
|
30
32
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
31
33
|
var _useState = useState((_ref = fullscreenProp !== null && fullscreenProp !== void 0 ? fullscreenProp : defaultFullscreen) !== null && _ref !== void 0 ? _ref : false),
|
|
32
34
|
_useState2 = _slicedToArray(_useState, 2),
|
|
33
35
|
fullscreen = _useState2[0],
|
|
34
36
|
setFullscreen = _useState2[1];
|
|
35
37
|
var prefixCls = prefixClassName('modal');
|
|
38
|
+
var _useDraggable = useDraggable({
|
|
39
|
+
id: 'draggable-modal'
|
|
40
|
+
}),
|
|
41
|
+
attributes = _useDraggable.attributes,
|
|
42
|
+
listeners = _useDraggable.listeners,
|
|
43
|
+
setNodeRef = _useDraggable.setNodeRef,
|
|
44
|
+
transform = _useDraggable.transform,
|
|
45
|
+
isDragging = _useDraggable.isDragging;
|
|
46
|
+
var translate = useMemo(function () {
|
|
47
|
+
var x = transformProp.x,
|
|
48
|
+
y = transformProp.y;
|
|
49
|
+
if (transform) {
|
|
50
|
+
x += transform.x;
|
|
51
|
+
y += transform.y;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
x: x,
|
|
55
|
+
y: y
|
|
56
|
+
};
|
|
57
|
+
}, [transform, transformProp]);
|
|
36
58
|
var mergedFullscreen = fullscreenProp !== null && fullscreenProp !== void 0 ? fullscreenProp : fullscreen;
|
|
37
59
|
var handleFullscreenChange = function handleFullscreenChange(result) {
|
|
38
60
|
onFullscreenChange === null || onFullscreenChange === void 0 || onFullscreenChange(result);
|
|
@@ -40,11 +62,13 @@ function LemonModal(props) {
|
|
|
40
62
|
};
|
|
41
63
|
return /*#__PURE__*/React.createElement(AntdModal, _extends({
|
|
42
64
|
closeIcon: /*#__PURE__*/React.createElement(Icons.CloseLight, null),
|
|
43
|
-
wrapClassName: classNames(prefixCls(), wrapClassName),
|
|
65
|
+
wrapClassName: classNames(prefixCls(), wrapClassName, _defineProperty({}, prefixCls('dragging'), isDragging)),
|
|
44
66
|
maskClosable: false,
|
|
45
|
-
title:
|
|
67
|
+
title: /*#__PURE__*/React.createElement("div", {
|
|
46
68
|
className: prefixCls('header')
|
|
47
|
-
},
|
|
69
|
+
}, /*#__PURE__*/React.createElement("div", _extends({
|
|
70
|
+
className: prefixCls('header-title')
|
|
71
|
+
}, attributes, listeners), title), enableFullscreen ? /*#__PURE__*/React.createElement("button", {
|
|
48
72
|
className: prefixCls('fullscreen'),
|
|
49
73
|
onClick: function onClick() {
|
|
50
74
|
handleFullscreenChange(!mergedFullscreen);
|
|
@@ -65,15 +89,72 @@ function LemonModal(props) {
|
|
|
65
89
|
d: "m9.828 9.121 3.182 3.182-.707.707-3.182-3.182a.5.5 0 0 1 .707-.707ZM1.697.99 4.878 4.17a.5.5 0 0 1-.707.707L.99 1.697 1.697.99ZM4.879 9.828 1.697 13.01l-.707-.707 3.182-3.182a.5.5 0 0 1 .707.707Zm8.131-8.131L9.83 4.878a.5.5 0 0 1-.707-.707L12.303.99l.707.707Z"
|
|
66
90
|
}), /*#__PURE__*/React.createElement("path", {
|
|
67
91
|
d: "M1.5 8a.5.5 0 0 1 .5.5V12h3.5a.5.5 0 0 1 .492.41L6 12.5a.5.5 0 0 1-.5.5h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5Zm11 0a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-4a.5.5 0 1 1 0-1H12V8.5a.5.5 0 0 1 .41-.492L12.5 8Zm-7-7a.5.5 0 0 1 0 1H2v3.5a.5.5 0 0 1-.41.492L1.5 6a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5h4Zm7 0a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2H8.5a.5.5 0 0 1-.492-.41L8 1.5a.5.5 0 0 1 .5-.5h4Z"
|
|
68
|
-
}))))
|
|
92
|
+
})))) : null),
|
|
93
|
+
modalRender: function modalRender(node) {
|
|
94
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
ref: setNodeRef,
|
|
96
|
+
style: {
|
|
97
|
+
transform: "translate3d(".concat(translate.x, "px, ").concat(translate.y, "px, 0)")
|
|
98
|
+
}
|
|
99
|
+
}, node);
|
|
100
|
+
}
|
|
69
101
|
}, restProps, {
|
|
70
|
-
centered:
|
|
71
|
-
width:
|
|
72
|
-
bodyStyle:
|
|
102
|
+
centered: mergedFullscreen ? true : restProps.centered,
|
|
103
|
+
width: mergedFullscreen ? '95vw' : restProps.width,
|
|
104
|
+
bodyStyle: mergedFullscreen ? _objectSpread(_objectSpread({}, restProps.bodyStyle), {}, {
|
|
73
105
|
height: '85vh'
|
|
74
106
|
}) : restProps.bodyStyle
|
|
75
107
|
}));
|
|
76
108
|
}
|
|
109
|
+
function LemonModal(props) {
|
|
110
|
+
var defaultTransform = useMemo(function () {
|
|
111
|
+
return {
|
|
112
|
+
x: 0,
|
|
113
|
+
y: 0
|
|
114
|
+
};
|
|
115
|
+
}, []);
|
|
116
|
+
var _useState3 = useState(defaultTransform),
|
|
117
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
118
|
+
transform = _useState4[0],
|
|
119
|
+
setTransform = _useState4[1];
|
|
120
|
+
var sensors = useSensors(useSensor(MouseSensor), useSensor(TouchSensor));
|
|
121
|
+
var handleDragEnd = useCallback(function (evt) {
|
|
122
|
+
setTransform(function (prev) {
|
|
123
|
+
return {
|
|
124
|
+
x: prev.x + evt.delta.x,
|
|
125
|
+
y: prev.y + evt.delta.y
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
}, []);
|
|
129
|
+
var handleFullscreenChange = function handleFullscreenChange(value) {
|
|
130
|
+
var _props$onFullscreenCh;
|
|
131
|
+
setTransform(defaultTransform);
|
|
132
|
+
(_props$onFullscreenCh = props.onFullscreenChange) === null || _props$onFullscreenCh === void 0 || _props$onFullscreenCh.call(props, value);
|
|
133
|
+
};
|
|
134
|
+
var modifiers = useMemo(function () {
|
|
135
|
+
var modifier = function modifier(args) {
|
|
136
|
+
var draggingNodeRect = args.draggingNodeRect;
|
|
137
|
+
if (!draggingNodeRect) {
|
|
138
|
+
return args.transform;
|
|
139
|
+
}
|
|
140
|
+
if (args.transform.y + transform.y + draggingNodeRect.top < 0) {
|
|
141
|
+
return _objectSpread(_objectSpread({}, args.transform), {}, {
|
|
142
|
+
y: -(transform.y + draggingNodeRect.top)
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return args.transform;
|
|
146
|
+
};
|
|
147
|
+
return [modifier];
|
|
148
|
+
}, [transform]);
|
|
149
|
+
return /*#__PURE__*/React.createElement(DndContext, {
|
|
150
|
+
onDragEnd: handleDragEnd,
|
|
151
|
+
sensors: sensors,
|
|
152
|
+
modifiers: modifiers
|
|
153
|
+
}, /*#__PURE__*/React.createElement(LemonModalInternal, _extends({}, props, {
|
|
154
|
+
onFullscreenChange: handleFullscreenChange,
|
|
155
|
+
transform: transform
|
|
156
|
+
})));
|
|
157
|
+
}
|
|
77
158
|
var types = ['info', 'success', 'error', 'warning', 'warn', 'confirm'];
|
|
78
159
|
var Modal = LemonModal;
|
|
79
160
|
types.forEach(function (type) {
|
package/es/modal/index.less
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
&-header {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|
|
5
|
+
|
|
6
|
+
&-title {
|
|
7
|
+
flex: 1;
|
|
8
|
+
min-width: 0;
|
|
9
|
+
margin-right: @padding-md;
|
|
10
|
+
cursor: move;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&-dragging {
|
|
15
|
+
overflow: hidden;
|
|
5
16
|
}
|
|
6
17
|
|
|
7
18
|
&-fullscreen {
|
|
@@ -9,7 +20,6 @@
|
|
|
9
20
|
width: 24px;
|
|
10
21
|
height: 24px;
|
|
11
22
|
margin-right: 24px;
|
|
12
|
-
margin-left: auto;
|
|
13
23
|
padding: 0;
|
|
14
24
|
color: rgba(51, 51, 51, 0.5);
|
|
15
25
|
font-size: 14px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemon-fe/components",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12-alpha.0",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "",
|
|
6
6
|
"license": "ISC",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@ag-grid-community/infinite-row-model": "29.2.0",
|
|
27
27
|
"@ag-grid-community/react": "29.2.0",
|
|
28
28
|
"@ag-grid-community/styles": "29.2.0",
|
|
29
|
-
"@dnd-kit/core": "
|
|
29
|
+
"@dnd-kit/core": ">=6.0.0",
|
|
30
30
|
"@lemon-fe/hooks": "^1.2.11",
|
|
31
31
|
"@lemon-fe/utils": "^1.1.0",
|
|
32
32
|
"async-validator": "^4.2.5",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"publishConfig": {
|
|
68
68
|
"registry": "https://registry.npmjs.org"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "2eb0063a6413e9b73f58a2cc8974537a47d201ad"
|
|
71
71
|
}
|