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