@kdcloudjs/kdesign 1.7.48-usePopper.1 → 1.7.48-usePopper.2
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/CHANGELOG.md +120 -0
- package/dist/kdesign-complete.less +20 -21
- package/dist/kdesign.css +17 -16
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +2591 -1435
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +15 -10
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/useId.d.ts +2 -0
- package/es/_utils/useId.js +30 -0
- package/es/_utils/usePopper.js +13 -7
- package/es/anchor/anchor.js +11 -2
- package/es/city-picker/style/index.css +0 -1
- package/es/city-picker/style/index.less +0 -1
- package/es/color-picker/color-picker-panel.js +1 -1
- package/es/date-picker/date-panel.js +35 -30
- package/es/date-picker/date-picker.js +4 -1
- package/es/date-picker/hooks/use-picker-input.js +2 -3
- package/es/date-picker/range-picker.js +10 -24
- package/es/date-picker/utils/date-fns.js +4 -2
- package/es/filter/filter.js +4 -5
- package/es/grid/col.js +14 -3
- package/es/grid/row.js +15 -4
- package/es/input/ClearableLabeledInput.js +2 -2
- package/es/input/TextArea.js +1 -7
- package/es/input-number/inputNumber.js +29 -8
- package/es/pagination/style/index.css +1 -0
- package/es/pagination/style/index.less +1 -0
- package/es/popper/index.d.ts +4 -1
- package/es/popper/index.js +214 -137
- package/es/popper/style/index.css +10 -11
- package/es/popper/style/index.less +17 -19
- package/es/qr-code/qr-code.js +1 -1
- package/es/radio/radio.js +2 -2
- package/es/radio/style/index.css +0 -1
- package/es/radio/style/index.less +1 -1
- package/es/select/style/index.css +3 -0
- package/es/select/style/index.less +1 -0
- package/es/split-panel/split-panel.js +16 -0
- package/es/tooltip/style/index.css +2 -2
- package/es/tooltip/style/index.less +1 -1
- package/es/tree/utils/treeUtils.js +1 -1
- package/es/upload/upload.js +1 -1
- package/lib/_utils/useId.d.ts +2 -0
- package/lib/_utils/useId.js +43 -0
- package/lib/_utils/usePopper.js +13 -7
- package/lib/anchor/anchor.js +11 -2
- package/lib/city-picker/style/index.css +0 -1
- package/lib/city-picker/style/index.less +0 -1
- package/lib/color-picker/color-picker-panel.js +1 -1
- package/lib/date-picker/date-panel.js +39 -34
- package/lib/date-picker/date-picker.js +4 -1
- package/lib/date-picker/hooks/use-picker-input.js +2 -3
- package/lib/date-picker/range-picker.js +10 -24
- package/lib/date-picker/utils/date-fns.js +4 -2
- package/lib/filter/filter.js +4 -5
- package/lib/grid/col.js +14 -3
- package/lib/grid/row.js +15 -4
- package/lib/input/ClearableLabeledInput.js +2 -2
- package/lib/input/TextArea.js +1 -7
- package/lib/input-number/inputNumber.js +29 -8
- package/lib/pagination/style/index.css +1 -0
- package/lib/pagination/style/index.less +1 -0
- package/lib/popper/index.d.ts +4 -1
- package/lib/popper/index.js +213 -136
- package/lib/popper/style/index.css +10 -11
- package/lib/popper/style/index.less +17 -19
- package/lib/qr-code/qr-code.js +1 -1
- package/lib/radio/radio.js +2 -2
- package/lib/radio/style/index.css +0 -1
- package/lib/radio/style/index.less +1 -1
- package/lib/select/style/index.css +3 -0
- package/lib/select/style/index.less +1 -0
- package/lib/split-panel/split-panel.js +16 -0
- package/lib/tooltip/style/index.css +2 -2
- package/lib/tooltip/style/index.less +1 -1
- package/lib/tree/utils/treeUtils.js +1 -1
- package/lib/upload/upload.js +1 -1
- package/package.json +7 -3
package/es/popper/index.js
CHANGED
|
@@ -7,8 +7,10 @@ import _flatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instanc
|
|
|
7
7
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
8
8
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
9
9
|
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
|
10
|
+
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
|
11
|
+
import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
|
|
10
12
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
11
|
-
import React, { useEffect, useRef, useState, Children, forwardRef } from 'react';
|
|
13
|
+
import React, { useEffect, useRef, useState, Children, forwardRef, useContext, isValidElement, useImperativeHandle } from 'react';
|
|
12
14
|
import { createPopper } from '@popperjs/core';
|
|
13
15
|
import { tuple } from '../_utils/type';
|
|
14
16
|
import classnames from 'classnames';
|
|
@@ -16,16 +18,21 @@ import debounce from 'lodash/debounce';
|
|
|
16
18
|
import ReactDOM from 'react-dom';
|
|
17
19
|
import { isFragment } from '../_utils/reactNode';
|
|
18
20
|
import { ConfigContext } from '../config-provider';
|
|
21
|
+
import { useMergedState } from '../_utils/hooks';
|
|
22
|
+
import useId from '../_utils/useId';
|
|
19
23
|
export var Placements = tuple('top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom');
|
|
20
24
|
export var Triggers = tuple('hover', 'focus', 'click', 'contextMenu');
|
|
21
25
|
var useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
|
26
|
+
var TriggerContext = /*#__PURE__*/React.createContext(null);
|
|
22
27
|
var generateGetBoundingClientRect = function generateGetBoundingClientRect() {
|
|
23
28
|
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
24
29
|
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
30
|
+
var width = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
31
|
+
var height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
25
32
|
return function () {
|
|
26
33
|
return {
|
|
27
|
-
width:
|
|
28
|
-
height:
|
|
34
|
+
width: width,
|
|
35
|
+
height: height,
|
|
29
36
|
top: y,
|
|
30
37
|
right: x,
|
|
31
38
|
bottom: y,
|
|
@@ -36,6 +43,7 @@ var generateGetBoundingClientRect = function generateGetBoundingClientRect() {
|
|
|
36
43
|
var virtualElement = {
|
|
37
44
|
getBoundingClientRect: generateGetBoundingClientRect()
|
|
38
45
|
};
|
|
46
|
+
var triggerTypeArray = ['hover', 'focus', 'click', 'contextMenu'];
|
|
39
47
|
export var popperPlacementMap = {
|
|
40
48
|
top: 'top',
|
|
41
49
|
left: 'left',
|
|
@@ -51,7 +59,7 @@ export var popperPlacementMap = {
|
|
|
51
59
|
rightBottom: 'right-end'
|
|
52
60
|
};
|
|
53
61
|
var placementFlip = {
|
|
54
|
-
bottom: '
|
|
62
|
+
bottom: 'top',
|
|
55
63
|
top: 'bottom',
|
|
56
64
|
right: 'left',
|
|
57
65
|
left: 'right'
|
|
@@ -74,29 +82,28 @@ var getFallbackPlacements = function getFallbackPlacements(key) {
|
|
|
74
82
|
return f !== key;
|
|
75
83
|
}));
|
|
76
84
|
};
|
|
77
|
-
var getRealDom = function getRealDom(locatorRef
|
|
85
|
+
var getRealDom = function getRealDom(locatorRef) {
|
|
86
|
+
var locatorElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
78
87
|
var _a;
|
|
79
88
|
if (!locatorRef.current) return locatorRef.current;
|
|
80
|
-
var REF_NAME_OBJ = {
|
|
81
|
-
Input: 'input',
|
|
82
|
-
InputNumber: 'input',
|
|
83
|
-
Select: 'select',
|
|
84
|
-
Upload: 'input'
|
|
85
|
-
};
|
|
86
89
|
if (locatorRef.current.tagName) return locatorRef.current;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
if (locatorElement) {
|
|
91
|
+
var REF_NAME_OBJ = {
|
|
92
|
+
Input: 'input',
|
|
93
|
+
InputNumber: 'input',
|
|
94
|
+
Select: 'select',
|
|
95
|
+
Upload: 'input'
|
|
96
|
+
};
|
|
97
|
+
var name = REF_NAME_OBJ === null || REF_NAME_OBJ === void 0 ? void 0 : REF_NAME_OBJ[(_a = locatorElement === null || locatorElement === void 0 ? void 0 : locatorElement.type) === null || _a === void 0 ? void 0 : _a.displayName];
|
|
98
|
+
return locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current[name];
|
|
95
99
|
}
|
|
96
|
-
return
|
|
100
|
+
return locatorElement;
|
|
101
|
+
};
|
|
102
|
+
var getElement = function getElement(element) {
|
|
103
|
+
return typeof element === 'function' ? element() : element;
|
|
97
104
|
};
|
|
98
105
|
export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
99
|
-
var
|
|
106
|
+
var _context8, _context9, _context10;
|
|
100
107
|
var _a;
|
|
101
108
|
var _React$useContext = React.useContext(ConfigContext),
|
|
102
109
|
getPrefixCls = _React$useContext.getPrefixCls,
|
|
@@ -138,40 +145,52 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
138
145
|
getTriggerElement = _props$getTriggerElem === void 0 ? function (locatorNode) {
|
|
139
146
|
return locatorNode;
|
|
140
147
|
} : _props$getTriggerElem,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
148
|
+
_props$getPopupContai = props.getPopupContainer,
|
|
149
|
+
getPopupContainer = _props$getPopupContai === void 0 ? function () {
|
|
150
|
+
return document.body;
|
|
151
|
+
} : _props$getPopupContai,
|
|
152
|
+
onTransitionEnd = props.onTransitionEnd,
|
|
153
|
+
onAnimationEnd = props.onAnimationEnd,
|
|
144
154
|
children = props.children;
|
|
145
|
-
// const trigger = 'click'
|
|
146
|
-
// const arrow = false
|
|
147
155
|
var popperPrefixCls = getPrefixCls(pkgPrefixCls, 'popper');
|
|
148
|
-
var
|
|
149
|
-
var
|
|
156
|
+
var referencePrefixCls = "".concat(popperPrefixCls, "-reference");
|
|
157
|
+
var child = getElement(children);
|
|
158
|
+
var childrenInner = /*#__PURE__*/isValidElement(child) && !isFragment(child) ? child : /*#__PURE__*/React.createElement("span", null, child);
|
|
159
|
+
var popperElement = getElement(tip);
|
|
150
160
|
var referenceElement = Children.only(childrenInner);
|
|
151
|
-
var
|
|
161
|
+
var id = useId();
|
|
162
|
+
var parentContext = useContext(TriggerContext);
|
|
163
|
+
var subPopupRefs = useRef({});
|
|
164
|
+
var context = React.useMemo(function () {
|
|
165
|
+
return {
|
|
166
|
+
registerSubPopup: function registerSubPopup(id, subPopupEle) {
|
|
167
|
+
subPopupRefs.current[id] = subPopupEle;
|
|
168
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}, [parentContext]);
|
|
172
|
+
var popperRefDom = useRef(null);
|
|
152
173
|
var popperRefInner = useRef(null);
|
|
153
174
|
var popperRef = ref || popperRefInner;
|
|
154
175
|
var popperInstance = useRef(null);
|
|
155
|
-
var
|
|
156
|
-
|
|
157
|
-
var container =
|
|
158
|
-
|
|
159
|
-
|
|
176
|
+
var referenceRefInner = useRef(null);
|
|
177
|
+
var referenceRef = (referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.ref) || referenceRefInner;
|
|
178
|
+
var container = getPopupContainer(getRealDom(referenceRef, referenceElement) || document.body) || document.body;
|
|
179
|
+
var _useMergedState = useMergedState(false, {
|
|
180
|
+
value: visible,
|
|
181
|
+
defaultValue: defaultVisible
|
|
182
|
+
}),
|
|
183
|
+
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
|
184
|
+
visibleInner = _useMergedState2[0],
|
|
185
|
+
setVisibleInner = _useMergedState2[1];
|
|
186
|
+
var _useState = useState(visibleInner),
|
|
160
187
|
_useState2 = _slicedToArray(_useState, 2),
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
var _useState3 = useState(
|
|
188
|
+
exist = _useState2[0],
|
|
189
|
+
setExist = _useState2[1];
|
|
190
|
+
var _useState3 = useState(getRealPlacement(placement)),
|
|
164
191
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
var _useState5 = useState(false),
|
|
168
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
169
|
-
active = _useState6[0],
|
|
170
|
-
setActive = _useState6[1];
|
|
171
|
-
var _useState7 = useState(getRealPlacement(placement)),
|
|
172
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
173
|
-
placementInner = _useState8[0],
|
|
174
|
-
setPlacementInner = _useState8[1];
|
|
192
|
+
placementInner = _useState4[0],
|
|
193
|
+
setPlacementInner = _useState4[1];
|
|
175
194
|
var delayRef = useRef();
|
|
176
195
|
var clearDelay = function clearDelay() {
|
|
177
196
|
if (typeof delayRef.current !== 'undefined') {
|
|
@@ -179,34 +198,64 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
179
198
|
delayRef.current = null;
|
|
180
199
|
}
|
|
181
200
|
};
|
|
201
|
+
var changeVisible = function changeVisible(nextOpen) {
|
|
202
|
+
var triggerType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
203
|
+
if (visibleInner !== nextOpen) {
|
|
204
|
+
if (nextOpen && _includesInstanceProperty(triggerTypeArray).call(triggerTypeArray, triggerType)) {
|
|
205
|
+
onTrigger === null || onTrigger === void 0 ? void 0 : onTrigger(triggerType);
|
|
206
|
+
}
|
|
207
|
+
if (typeof visible === 'undefined') {
|
|
208
|
+
setVisibleInner(nextOpen);
|
|
209
|
+
}
|
|
210
|
+
onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);
|
|
211
|
+
}
|
|
212
|
+
if (!nextOpen && _Object$keys(subPopupRefs.current || {}).length) {
|
|
213
|
+
console.log('triggerOpenSub', subPopupRefs.current);
|
|
214
|
+
_Object$values(subPopupRefs.current).forEach(function (d) {
|
|
215
|
+
if (typeof (d === null || d === void 0 ? void 0 : d.triggerOpen) === 'function' && (d === null || d === void 0 ? void 0 : d.visible)) {
|
|
216
|
+
d === null || d === void 0 ? void 0 : d.triggerOpen(false);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
};
|
|
182
221
|
var triggerOpen = function triggerOpen(nextOpen) {
|
|
183
222
|
var triggerType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
184
|
-
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0
|
|
185
|
-
console.log('triggerOpen', nextOpen, delay);
|
|
223
|
+
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
186
224
|
clearDelay();
|
|
187
|
-
if (
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
225
|
+
if (!disabled) {
|
|
226
|
+
if (delay === 0) {
|
|
227
|
+
changeVisible(nextOpen, triggerType);
|
|
228
|
+
} else {
|
|
229
|
+
if (visibleInner !== nextOpen) {
|
|
230
|
+
delayRef.current = setTimeout(function () {
|
|
231
|
+
changeVisible(nextOpen, triggerType);
|
|
232
|
+
}, delay * 1000);
|
|
194
233
|
}
|
|
195
|
-
onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);
|
|
196
234
|
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
var isSubPopper = function isSubPopper(event) {
|
|
238
|
+
if (!event || !(event === null || event === void 0 ? void 0 : event.target)) {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
// let targetElement: HTMLElement = event.target as HTMLElement
|
|
242
|
+
// const POP_ATTR_NAME = 'data-popper-placement'
|
|
243
|
+
// while (targetElement && targetElement !== document.documentElement) {
|
|
244
|
+
// if (targetElement?.getAttribute(POP_ATTR_NAME) && targetElement?.className.includes(popperPrefixCls)) {
|
|
245
|
+
// return true
|
|
246
|
+
// }
|
|
247
|
+
// targetElement = targetElement?.parentNode as HTMLElement
|
|
248
|
+
// }
|
|
249
|
+
var target = event.target;
|
|
250
|
+
if (subPopupRefs.current) {
|
|
251
|
+
for (var key in subPopupRefs.current) {
|
|
252
|
+
var dom = subPopupRefs.current[key].dom;
|
|
253
|
+
if (dom && ((dom === null || dom === void 0 ? void 0 : dom.contains(target)) || dom === target)) {
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
208
256
|
}
|
|
209
257
|
}
|
|
258
|
+
return false;
|
|
210
259
|
};
|
|
211
260
|
var onTriggerInner = function onTriggerInner(nextOpen, triggerType) {
|
|
212
261
|
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
@@ -214,43 +263,76 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
214
263
|
};
|
|
215
264
|
var onClick = function onClick(e) {
|
|
216
265
|
var _a, _b;
|
|
217
|
-
|
|
266
|
+
e.stopPropagation();
|
|
267
|
+
onTriggerInner(!visibleInner, 'click');
|
|
218
268
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
219
269
|
};
|
|
220
270
|
var onFocus = function onFocus(e) {
|
|
221
271
|
var _a, _b;
|
|
222
|
-
onTriggerInner(true, 'focus'
|
|
272
|
+
onTriggerInner(true, 'focus');
|
|
223
273
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onFocus) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
224
274
|
};
|
|
225
275
|
var onBlur = function onBlur(e) {
|
|
226
276
|
var _a, _b;
|
|
227
|
-
onTriggerInner(false, 'focus'
|
|
277
|
+
onTriggerInner(false, 'focus');
|
|
228
278
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
229
279
|
};
|
|
230
280
|
var onContextMenu = function onContextMenu(e) {
|
|
231
281
|
var _a, _b;
|
|
232
282
|
e.preventDefault();
|
|
233
|
-
|
|
234
|
-
|
|
283
|
+
var clientWidth = 0;
|
|
284
|
+
var clientHeight = 0;
|
|
285
|
+
if (arrow) {
|
|
286
|
+
if (_startsWithInstanceProperty(placementInner).call(placementInner, 'top') || _startsWithInstanceProperty(placementInner).call(placementInner, 'bottom')) {
|
|
287
|
+
var _context6;
|
|
288
|
+
if (!_includesInstanceProperty(_context6 = ['top', 'bottom']).call(_context6, placementInner)) {
|
|
289
|
+
clientWidth = 6 * arrowSize;
|
|
290
|
+
}
|
|
291
|
+
} else {
|
|
292
|
+
var _context7;
|
|
293
|
+
if (!_includesInstanceProperty(_context7 = ['right', 'left']).call(_context7, placementInner)) {
|
|
294
|
+
clientHeight = 6 * arrowSize;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
virtualElement.getBoundingClientRect = generateGetBoundingClientRect(e.clientX, e.clientY, clientWidth, clientHeight);
|
|
299
|
+
onTriggerInner(!visibleInner, 'contextMenu');
|
|
235
300
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onContextMenu) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
236
301
|
};
|
|
237
302
|
var onMouseOver = function onMouseOver(e) {
|
|
238
303
|
var _a, _b;
|
|
239
|
-
console.log('onMouseOver');
|
|
240
304
|
onTriggerInner(true, 'hover', mouseEnterDelay);
|
|
241
305
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onMouseOver) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
242
306
|
};
|
|
243
307
|
var onMouseLeave = function onMouseLeave(e) {
|
|
244
308
|
var _a, _b;
|
|
245
|
-
console.log('onMouseLeave');
|
|
246
309
|
onTriggerInner(false, 'hover', mouseLeaveDelay);
|
|
247
310
|
(_b = (_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.onMouseLeave) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
248
311
|
};
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
312
|
+
var onPopperAnimationEnd = function onPopperAnimationEnd(e) {
|
|
313
|
+
onAnimationEnd === null || onAnimationEnd === void 0 ? void 0 : onAnimationEnd(e);
|
|
314
|
+
onTransitionEnd === null || onTransitionEnd === void 0 ? void 0 : onTransitionEnd(e);
|
|
315
|
+
};
|
|
316
|
+
var isTrigger = function isTrigger(triggerValue) {
|
|
317
|
+
return trigger === triggerValue || Array.isArray(trigger) && _includesInstanceProperty(trigger).call(trigger, triggerValue);
|
|
318
|
+
};
|
|
319
|
+
var triggerEventHandle = function triggerEventHandle(triggerNode) {
|
|
320
|
+
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'addEventListener';
|
|
321
|
+
if (isTrigger('click')) {
|
|
322
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('click', onClick);
|
|
323
|
+
}
|
|
324
|
+
if (isTrigger('focus')) {
|
|
325
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('focus', onFocus);
|
|
326
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('blur', onBlur);
|
|
252
327
|
}
|
|
253
|
-
|
|
328
|
+
if (isTrigger('contextMenu')) {
|
|
329
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('contextmenu', onContextMenu);
|
|
330
|
+
}
|
|
331
|
+
if (isTrigger('hover')) {
|
|
332
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('mouseover', onMouseOver);
|
|
333
|
+
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode[type]('mouseleave', onMouseLeave);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
254
336
|
useEffect(function () {
|
|
255
337
|
setPlacementInner(getRealPlacement(placement));
|
|
256
338
|
}, [placement]);
|
|
@@ -258,9 +340,9 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
258
340
|
var scrollHandle = debounce(function (e) {
|
|
259
341
|
var _a, _b;
|
|
260
342
|
if (visibleInner) {
|
|
261
|
-
var isPopper = e.target ===
|
|
343
|
+
var isPopper = e.target === popperRefDom.current || ((_b = (_a = popperRefDom.current) === null || _a === void 0 ? void 0 : _a.contains) === null || _b === void 0 ? void 0 : _b.call(_a, e.target));
|
|
262
344
|
if (scrollHidden && !isPopper) {
|
|
263
|
-
triggerOpen(false);
|
|
345
|
+
triggerOpen(false, 'scroll');
|
|
264
346
|
}
|
|
265
347
|
}
|
|
266
348
|
}, 10);
|
|
@@ -270,14 +352,18 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
270
352
|
return function () {
|
|
271
353
|
document.removeEventListener('scroll', scrollHandle, true);
|
|
272
354
|
};
|
|
273
|
-
}, [visibleInner, scrollHidden,
|
|
355
|
+
}, [visibleInner, scrollHidden, popperRefDom]);
|
|
274
356
|
useEffect(function () {
|
|
275
357
|
var clickHandle = debounce(function (e) {
|
|
358
|
+
var _a, _b, _c;
|
|
276
359
|
if (visibleInner) {
|
|
277
|
-
var
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
360
|
+
var isPopper = popperRefDom.current ? popperRefDom.current === e.target || ((_b = (_a = popperRefDom.current).contains) === null || _b === void 0 ? void 0 : _b.call(_a, e.target)) : false;
|
|
361
|
+
var domReference = getRealDom(referenceRef, referenceElement);
|
|
362
|
+
var isReference = domReference ? domReference === e.target || ((_c = domReference === null || domReference === void 0 ? void 0 : domReference.contains) === null || _c === void 0 ? void 0 : _c.call(domReference, e.target)) : false;
|
|
363
|
+
var isTarget = trigger === 'contextMenu' ? isPopper : isPopper || isReference;
|
|
364
|
+
console.log('clickOutside', children, e.target, isPopper, isReference, subPopupRefs.current);
|
|
365
|
+
if (clickToClose && !isTarget && !isSubPopper(e)) {
|
|
366
|
+
triggerOpen(false, 'clickOutside', 0);
|
|
281
367
|
}
|
|
282
368
|
}
|
|
283
369
|
}, 10);
|
|
@@ -287,30 +373,22 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
287
373
|
return function () {
|
|
288
374
|
document.removeEventListener('click', clickHandle, true);
|
|
289
375
|
};
|
|
290
|
-
}, [visibleInner, clickToClose, referenceRef,
|
|
376
|
+
}, [visibleInner, clickToClose, referenceRef, popperRefDom]);
|
|
291
377
|
useEffect(function () {
|
|
292
378
|
var realDom = getRealDom(referenceRef, referenceElement);
|
|
293
379
|
var triggerNode = getTriggerElement(realDom);
|
|
294
|
-
|
|
295
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('click', onClick);
|
|
296
|
-
} else if (trigger === 'focus') {
|
|
297
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('focus', onFocus);
|
|
298
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('blur', onBlur);
|
|
299
|
-
} else if (trigger === 'contextMenu') {
|
|
300
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('contextmenu', onContextMenu);
|
|
301
|
-
} else {
|
|
302
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('mouseover', onMouseOver);
|
|
303
|
-
triggerNode === null || triggerNode === void 0 ? void 0 : triggerNode.addEventListener('mouseleave', onMouseLeave);
|
|
304
|
-
}
|
|
380
|
+
triggerEventHandle(triggerNode);
|
|
305
381
|
return function () {
|
|
306
|
-
triggerNode
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
382
|
+
triggerEventHandle(triggerNode, 'removeEventListener');
|
|
383
|
+
};
|
|
384
|
+
}, [getTriggerElement, visibleInner, referenceElement, referenceRef, trigger]);
|
|
385
|
+
useImperativeHandle(popperRef, function () {
|
|
386
|
+
return {
|
|
387
|
+
dom: popperRefDom.current,
|
|
388
|
+
triggerOpen: triggerOpen,
|
|
389
|
+
visible: visibleInner
|
|
312
390
|
};
|
|
313
|
-
}
|
|
391
|
+
});
|
|
314
392
|
var popperModifiers = [{
|
|
315
393
|
name: 'offset',
|
|
316
394
|
options: {
|
|
@@ -320,23 +398,24 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
320
398
|
name: 'preventOverflow',
|
|
321
399
|
enabled: autoPlacement,
|
|
322
400
|
options: {
|
|
323
|
-
altBoundary: disabled,
|
|
324
401
|
mainAxis: true
|
|
325
402
|
}
|
|
326
403
|
}, {
|
|
327
404
|
name: 'flip',
|
|
328
405
|
enabled: autoPlacement,
|
|
329
406
|
options: {
|
|
330
|
-
altBoundary: disabled,
|
|
331
407
|
fallbackPlacements: autoPlacement ? getFallbackPlacements(placementInner) : undefined
|
|
332
408
|
}
|
|
333
409
|
}, {
|
|
334
410
|
name: 'onUpdate',
|
|
335
411
|
enabled: true,
|
|
336
412
|
phase: 'afterWrite',
|
|
337
|
-
fn: function fn(
|
|
338
|
-
var
|
|
339
|
-
|
|
413
|
+
fn: function fn(d) {
|
|
414
|
+
var _ref = d === null || d === void 0 ? void 0 : d.state,
|
|
415
|
+
p = _ref.placement;
|
|
416
|
+
if (p !== placementInner) {
|
|
417
|
+
setPlacementInner(p);
|
|
418
|
+
}
|
|
340
419
|
}
|
|
341
420
|
}];
|
|
342
421
|
var popperOptionsInner = {
|
|
@@ -346,73 +425,71 @@ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
346
425
|
};
|
|
347
426
|
useEnhancedEffect(function () {
|
|
348
427
|
var _a, _b;
|
|
349
|
-
console.log('-----1', exist, popperInstance.current);
|
|
350
428
|
if (visibleInner) {
|
|
351
429
|
if (!exist) {
|
|
352
430
|
setExist(true);
|
|
353
431
|
} else {
|
|
354
|
-
setActive(true);
|
|
355
|
-
setTimeout(function () {
|
|
356
|
-
return setActive(false);
|
|
357
|
-
}, 1000);
|
|
358
432
|
if (popperInstance.current) {
|
|
359
433
|
(_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.setOptions(function (options) {
|
|
360
434
|
return _extends(_extends({}, options), popperOptionsInner);
|
|
361
435
|
});
|
|
362
436
|
(_b = popperInstance.current) === null || _b === void 0 ? void 0 : _b.forceUpdate();
|
|
363
437
|
}
|
|
438
|
+
setTimeout(function () {
|
|
439
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, popperRef.current);
|
|
440
|
+
}, 10);
|
|
364
441
|
}
|
|
365
442
|
}
|
|
366
|
-
}, [visibleInner, placementInner]);
|
|
443
|
+
}, [visibleInner, placementInner, arrow]);
|
|
367
444
|
useEnhancedEffect(function () {
|
|
368
|
-
|
|
369
|
-
if (!exist || disabled) {
|
|
445
|
+
if (!exist) {
|
|
370
446
|
return undefined;
|
|
371
447
|
}
|
|
372
448
|
var current = getRealDom(referenceRef, referenceElement);
|
|
373
449
|
if (current) {
|
|
374
|
-
popperInstance.current = createPopper(trigger === 'contextMenu' ? virtualElement : (current === null || current === void 0 ? void 0 : current.closest(".".concat(
|
|
450
|
+
popperInstance.current = createPopper(trigger === 'contextMenu' ? virtualElement : (current === null || current === void 0 ? void 0 : current.closest(".".concat(referencePrefixCls))) || current, popperRefDom.current, popperOptionsInner);
|
|
451
|
+
setTimeout(function () {
|
|
452
|
+
parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, popperRef.current);
|
|
453
|
+
}, 10);
|
|
375
454
|
}
|
|
376
455
|
return function () {
|
|
377
456
|
var _a;
|
|
378
|
-
console.log('-----3');
|
|
379
457
|
(_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
380
458
|
};
|
|
381
|
-
}, [exist
|
|
459
|
+
}, [exist]);
|
|
382
460
|
if (children === null || typeof children === 'undefined') {
|
|
383
461
|
return null;
|
|
384
462
|
}
|
|
463
|
+
var arrowStyle = _defineProperty({}, "--arrowSize", arrowSize + 'px');
|
|
385
464
|
var popperContainerProps = {
|
|
386
|
-
ref:
|
|
387
|
-
|
|
465
|
+
ref: popperRefDom,
|
|
466
|
+
style: _extends({}, arrow ? arrowStyle : {}),
|
|
467
|
+
className: classnames(popperPrefixCls, {
|
|
388
468
|
hidden: !visibleInner
|
|
389
|
-
})
|
|
390
|
-
onTransitionEnd: function onTransitionEnd(e) {
|
|
391
|
-
return _onTransitionEnd === null || _onTransitionEnd === void 0 ? void 0 : _onTransitionEnd(e);
|
|
392
|
-
}
|
|
469
|
+
})
|
|
393
470
|
};
|
|
394
|
-
var arrowStyle = _defineProperty({}, "--arrowSize", arrowSize + 'px');
|
|
395
471
|
var popperProps = {
|
|
396
|
-
className: classnames([
|
|
397
|
-
style: _extends(_extends(
|
|
472
|
+
className: classnames([_concatInstanceProperty(_context8 = "".concat(popperPrefixCls, "-")).call(_context8, placementInner)], _defineProperty({}, _concatInstanceProperty(_context9 = "".concat(popperPrefixCls, "-")).call(_context9, placementInner, "-out"), !visibleInner), _defineProperty({}, _concatInstanceProperty(_context10 = "".concat(popperPrefixCls, "-")).call(_context10, placementInner, "-in"), visibleInner), prefixCls, popperClassName, className),
|
|
473
|
+
style: _extends(_extends({}, popperStyle), style),
|
|
398
474
|
onMouseOver: trigger === 'hover' ? function () {
|
|
399
475
|
return onTriggerInner(true, 'hover', mouseEnterDelay);
|
|
400
476
|
} : undefined,
|
|
401
477
|
onMouseLeave: trigger === 'hover' ? function () {
|
|
402
478
|
return onTriggerInner(false, 'hover', mouseLeaveDelay);
|
|
403
479
|
} : undefined,
|
|
404
|
-
onAnimationEnd:
|
|
405
|
-
|
|
406
|
-
}
|
|
480
|
+
onAnimationEnd: onPopperAnimationEnd,
|
|
481
|
+
onTransitionEnd: onPopperAnimationEnd
|
|
407
482
|
};
|
|
408
483
|
var referenceProps = {
|
|
409
484
|
ref: referenceRef,
|
|
410
|
-
className: classnames((_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.className,
|
|
485
|
+
className: classnames((_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.className, referencePrefixCls)
|
|
411
486
|
};
|
|
412
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(referenceElement, referenceProps), exist && container && /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(
|
|
413
|
-
|
|
487
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(referenceElement, referenceProps), exist && container && /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(TriggerContext.Provider, {
|
|
488
|
+
value: context
|
|
489
|
+
}, /*#__PURE__*/React.createElement("div", _extends({}, popperContainerProps), /*#__PURE__*/React.createElement("div", _extends({}, popperProps), popperElement, arrow && /*#__PURE__*/React.createElement("div", {
|
|
490
|
+
className: "arrow",
|
|
414
491
|
"data-popper-arrow": ""
|
|
415
|
-
}))), container));
|
|
492
|
+
})))), container));
|
|
416
493
|
});
|
|
417
494
|
Popper.displayName = 'Popper';
|
|
418
495
|
export default Popper;
|
|
@@ -114,24 +114,23 @@
|
|
|
114
114
|
.kd-popper.hidden {
|
|
115
115
|
opacity: 0;
|
|
116
116
|
visibility: hidden;
|
|
117
|
-
-webkit-transition: all calc(0.3s - 0.1s);
|
|
118
|
-
transition: all calc(0.3s - 0.1s);
|
|
119
117
|
pointer-events: none;
|
|
120
118
|
}
|
|
121
|
-
.kd-popper
|
|
119
|
+
.kd-popper .arrow {
|
|
122
120
|
visibility: hidden;
|
|
123
121
|
}
|
|
124
|
-
.kd-popper
|
|
122
|
+
.kd-popper .arrow::before {
|
|
125
123
|
visibility: visible;
|
|
126
124
|
position: absolute;
|
|
127
125
|
border-style: solid;
|
|
126
|
+
border-color: transparent;
|
|
128
127
|
border-width: var(--arrowSize);
|
|
129
128
|
content: '';
|
|
130
129
|
-webkit-transform: rotate(45deg);
|
|
131
130
|
transform: rotate(45deg);
|
|
132
131
|
}
|
|
133
132
|
.kd-popper[data-popper-placement^='top'] .arrow {
|
|
134
|
-
bottom: var(--arrowSize);
|
|
133
|
+
bottom: calc(0.9 * var(--arrowSize));
|
|
135
134
|
}
|
|
136
135
|
.kd-popper[data-popper-placement^='top'] .arrow::before {
|
|
137
136
|
left: calc(-1 * var(--arrowSize));
|
|
@@ -139,7 +138,7 @@
|
|
|
139
138
|
border-left-color: transparent;
|
|
140
139
|
}
|
|
141
140
|
.kd-popper[data-popper-placement^='bottom'] .arrow {
|
|
142
|
-
top: calc(-
|
|
141
|
+
top: calc(-0.9 * var(--arrowSize));
|
|
143
142
|
}
|
|
144
143
|
.kd-popper[data-popper-placement^='bottom'] .arrow::before {
|
|
145
144
|
left: calc(-1 * var(--arrowSize));
|
|
@@ -147,7 +146,7 @@
|
|
|
147
146
|
border-right-color: transparent;
|
|
148
147
|
}
|
|
149
148
|
.kd-popper[data-popper-placement^='left'] .arrow {
|
|
150
|
-
right: var(--arrowSize);
|
|
149
|
+
right: calc(0.9 * var(--arrowSize));
|
|
151
150
|
}
|
|
152
151
|
.kd-popper[data-popper-placement^='left'] .arrow::before {
|
|
153
152
|
top: calc(-1 * var(--arrowSize));
|
|
@@ -155,7 +154,7 @@
|
|
|
155
154
|
border-bottom-color: transparent;
|
|
156
155
|
}
|
|
157
156
|
.kd-popper[data-popper-placement^='right'] .arrow {
|
|
158
|
-
left: calc(-
|
|
157
|
+
left: calc(-0.9 * var(--arrowSize));
|
|
159
158
|
}
|
|
160
159
|
.kd-popper[data-popper-placement^='right'] .arrow::before {
|
|
161
160
|
top: calc(-1 * var(--arrowSize));
|
|
@@ -242,17 +241,17 @@
|
|
|
242
241
|
-webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
|
|
243
242
|
animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
|
|
244
243
|
}
|
|
245
|
-
.kd-popper-
|
|
244
|
+
.kd-popper-right-end {
|
|
246
245
|
-webkit-animation-duration: calc(0.3s - 0.1s);
|
|
247
246
|
animation-duration: calc(0.3s - 0.1s);
|
|
248
247
|
}
|
|
249
|
-
.kd-popper-
|
|
248
|
+
.kd-popper-right-end-in {
|
|
250
249
|
-webkit-animation-name: kdZoomLeftBottomIn;
|
|
251
250
|
animation-name: kdZoomLeftBottomIn;
|
|
252
251
|
-webkit-animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
|
|
253
252
|
animation-timing-function: cubic-bezier(0, 0.4, 0.4, 1);
|
|
254
253
|
}
|
|
255
|
-
.kd-popper-
|
|
254
|
+
.kd-popper-right-end-out {
|
|
256
255
|
-webkit-animation-name: kdZoomLeftBottomOut;
|
|
257
256
|
animation-name: kdZoomLeftBottomOut;
|
|
258
257
|
-webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 0.6);
|