@kdcloudjs/kdesign 1.7.70 → 1.8.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.
Files changed (66) hide show
  1. package/dist/kdesign-complete.less +105 -10
  2. package/dist/kdesign.css +361 -66
  3. package/dist/kdesign.css.map +1 -1
  4. package/dist/kdesign.js +4202 -440
  5. package/dist/kdesign.js.map +1 -1
  6. package/dist/kdesign.min.css +2 -2
  7. package/dist/kdesign.min.js +13 -13
  8. package/dist/kdesign.min.js.map +1 -1
  9. package/es/_utils/useId.d.ts +2 -0
  10. package/es/_utils/useId.js +30 -0
  11. package/es/date-picker/calendar.d.ts +3 -2
  12. package/es/date-picker/date-panel.d.ts +2 -1
  13. package/es/date-picker/date-picker.d.ts +4 -0
  14. package/es/date-picker/hooks/use-range-disabled.d.ts +3 -2
  15. package/es/date-picker/hooks/use-range-disabled.js +4 -2
  16. package/es/date-picker/interface.d.ts +2 -1
  17. package/es/date-picker/panel/month/month.d.ts +2 -2
  18. package/es/date-picker/panel/month/month.js +7 -3
  19. package/es/date-picker/panel/quarter/quarter.d.ts +2 -2
  20. package/es/date-picker/panel/quarter/quarter.js +7 -3
  21. package/es/date-picker/panel/week/week.d.ts +2 -1
  22. package/es/date-picker/panel/year/year.d.ts +2 -1
  23. package/es/date-picker/panel/year/year.js +7 -3
  24. package/es/date-picker/range-picker.js +3 -1
  25. package/es/date-picker/single/input-date.d.ts +2 -1
  26. package/es/popper/index.d.ts +54 -0
  27. package/es/popper/index.js +495 -0
  28. package/es/popper/style/css.js +2 -0
  29. package/es/popper/style/index.css +355 -0
  30. package/es/popper/style/index.d.ts +2 -0
  31. package/es/popper/style/index.js +2 -0
  32. package/es/popper/style/index.less +101 -0
  33. package/es/tooltip/style/index.css +4 -65
  34. package/es/tooltip/style/index.less +3 -10
  35. package/es/tooltip/tooltip.d.ts +3 -7
  36. package/es/tooltip/tooltip.js +10 -26
  37. package/lib/_utils/useId.d.ts +2 -0
  38. package/lib/_utils/useId.js +43 -0
  39. package/lib/date-picker/calendar.d.ts +3 -2
  40. package/lib/date-picker/date-panel.d.ts +2 -1
  41. package/lib/date-picker/date-picker.d.ts +4 -0
  42. package/lib/date-picker/hooks/use-range-disabled.d.ts +3 -2
  43. package/lib/date-picker/hooks/use-range-disabled.js +4 -2
  44. package/lib/date-picker/interface.d.ts +2 -1
  45. package/lib/date-picker/panel/month/month.d.ts +2 -2
  46. package/lib/date-picker/panel/month/month.js +7 -3
  47. package/lib/date-picker/panel/quarter/quarter.d.ts +2 -2
  48. package/lib/date-picker/panel/quarter/quarter.js +7 -3
  49. package/lib/date-picker/panel/week/week.d.ts +2 -1
  50. package/lib/date-picker/panel/year/year.d.ts +2 -1
  51. package/lib/date-picker/panel/year/year.js +7 -3
  52. package/lib/date-picker/range-picker.js +3 -1
  53. package/lib/date-picker/single/input-date.d.ts +2 -1
  54. package/lib/popper/index.d.ts +54 -0
  55. package/lib/popper/index.js +512 -0
  56. package/lib/popper/style/css.js +4 -0
  57. package/lib/popper/style/index.css +355 -0
  58. package/lib/popper/style/index.d.ts +2 -0
  59. package/lib/popper/style/index.js +4 -0
  60. package/lib/popper/style/index.less +101 -0
  61. package/lib/style/components.less +1 -0
  62. package/lib/tooltip/style/index.css +4 -65
  63. package/lib/tooltip/style/index.less +3 -10
  64. package/lib/tooltip/tooltip.d.ts +3 -7
  65. package/lib/tooltip/tooltip.js +10 -31
  66. package/package.json +8 -3
@@ -0,0 +1,495 @@
1
+ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
3
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
+ import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
5
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
6
+ import _flatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/flat";
7
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
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";
12
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
13
+ import React, { useEffect, useRef, useState, Children, forwardRef, useContext, isValidElement, useImperativeHandle } from 'react';
14
+ import { createPopper } from '@popperjs/core';
15
+ import { tuple } from '../_utils/type';
16
+ import classnames from 'classnames';
17
+ import debounce from 'lodash/debounce';
18
+ import ReactDOM from 'react-dom';
19
+ import { isFragment } from '../_utils/reactNode';
20
+ import { ConfigContext } from '../config-provider';
21
+ import { useMergedState } from '../_utils/hooks';
22
+ import useId from '../_utils/useId';
23
+ export var Placements = tuple('top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom');
24
+ export var Triggers = tuple('hover', 'focus', 'click', 'contextMenu');
25
+ var useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
26
+ var TriggerContext = /*#__PURE__*/React.createContext(null);
27
+ var generateGetBoundingClientRect = function generateGetBoundingClientRect() {
28
+ var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
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;
32
+ return function () {
33
+ return {
34
+ width: width,
35
+ height: height,
36
+ top: y,
37
+ right: x,
38
+ bottom: y,
39
+ left: x
40
+ };
41
+ };
42
+ };
43
+ var virtualElement = {
44
+ getBoundingClientRect: generateGetBoundingClientRect()
45
+ };
46
+ var triggerTypeArray = ['hover', 'focus', 'click', 'contextMenu'];
47
+ export var popperPlacementMap = {
48
+ top: 'top',
49
+ left: 'left',
50
+ right: 'right',
51
+ bottom: 'bottom',
52
+ topLeft: 'top-start',
53
+ topRight: 'top-end',
54
+ bottomLeft: 'bottom-start',
55
+ bottomRight: 'bottom-end',
56
+ leftTop: 'left-start',
57
+ leftBottom: 'left-end',
58
+ rightTop: 'right-start',
59
+ rightBottom: 'right-end'
60
+ };
61
+ var placementFlip = {
62
+ bottom: 'top',
63
+ top: 'bottom',
64
+ right: 'left',
65
+ left: 'right'
66
+ };
67
+ var getRealPlacement = function getRealPlacement(key) {
68
+ return popperPlacementMap[key] ? popperPlacementMap[key] : 'top';
69
+ };
70
+ var getFallbackPlacements = function getFallbackPlacements(key) {
71
+ var _context, _context2, _context3, _context4;
72
+ var prefix = key.split('-')[0];
73
+ var suffix = ['']; // , '-start', '-end']
74
+ return _toConsumableArray(_filterInstanceProperty(_context = _flatInstanceProperty(_context2 = _mapInstanceProperty(_context3 = _toConsumableArray(_filterInstanceProperty(_context4 = _Object$keys(placementFlip)).call(_context4, function (r) {
75
+ var _context5;
76
+ return _includesInstanceProperty(_context5 = [prefix, placementFlip[prefix]]).call(_context5, r);
77
+ }))).call(_context3, function (d) {
78
+ return _mapInstanceProperty(suffix).call(suffix, function (o) {
79
+ return d + o;
80
+ });
81
+ })).call(_context2)).call(_context, function (f) {
82
+ return f !== key;
83
+ }));
84
+ };
85
+ var getRealDom = function getRealDom(locatorRef) {
86
+ var locatorElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
87
+ var _a;
88
+ if (!locatorRef.current) return locatorRef.current;
89
+ if (locatorRef.current.tagName) return locatorRef.current;
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];
99
+ }
100
+ return locatorElement;
101
+ };
102
+ var getElement = function getElement(element) {
103
+ return typeof element === 'function' ? element() : element;
104
+ };
105
+ export var Popper = /*#__PURE__*/forwardRef(function (props, ref) {
106
+ var _context8, _context9, _context10;
107
+ var _a;
108
+ var _React$useContext = React.useContext(ConfigContext),
109
+ getPrefixCls = _React$useContext.getPrefixCls,
110
+ pkgPrefixCls = _React$useContext.prefixCls;
111
+ var prefixCls = props.prefixCls,
112
+ onTrigger = props.onTrigger,
113
+ style = props.style,
114
+ popperStyle = props.popperStyle,
115
+ _props$arrow = props.arrow,
116
+ arrow = _props$arrow === void 0 ? false : _props$arrow,
117
+ onVisibleChange = props.onVisibleChange,
118
+ className = props.className,
119
+ popperClassName = props.popperClassName,
120
+ tip = props.tip,
121
+ _props$disabled = props.disabled,
122
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
123
+ _props$trigger = props.trigger,
124
+ trigger = _props$trigger === void 0 ? 'click' : _props$trigger,
125
+ _props$placement = props.placement,
126
+ placement = _props$placement === void 0 ? 'top' : _props$placement,
127
+ visible = props.visible,
128
+ _props$arrowSize = props.arrowSize,
129
+ arrowSize = _props$arrowSize === void 0 ? 4.25 : _props$arrowSize,
130
+ _props$gap = props.gap,
131
+ defaultGap = _props$gap === void 0 ? 4 : _props$gap,
132
+ _props$scrollHidden = props.scrollHidden,
133
+ scrollHidden = _props$scrollHidden === void 0 ? false : _props$scrollHidden,
134
+ _props$mouseEnterDela = props.mouseEnterDelay,
135
+ mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,
136
+ _props$mouseLeaveDela = props.mouseLeaveDelay,
137
+ mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
138
+ _props$defaultVisible = props.defaultVisible,
139
+ defaultVisible = _props$defaultVisible === void 0 ? false : _props$defaultVisible,
140
+ _props$autoPlacement = props.autoPlacement,
141
+ autoPlacement = _props$autoPlacement === void 0 ? true : _props$autoPlacement,
142
+ _props$clickToClose = props.clickToClose,
143
+ clickToClose = _props$clickToClose === void 0 ? true : _props$clickToClose,
144
+ _props$getTriggerElem = props.getTriggerElement,
145
+ getTriggerElement = _props$getTriggerElem === void 0 ? function (locatorNode) {
146
+ return locatorNode;
147
+ } : _props$getTriggerElem,
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,
154
+ children = props.children;
155
+ var popperPrefixCls = getPrefixCls(pkgPrefixCls, 'popper');
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);
160
+ var referenceElement = Children.only(childrenInner);
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);
173
+ var popperRefInner = useRef(null);
174
+ var popperRef = ref || popperRefInner;
175
+ var popperInstance = useRef(null);
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),
187
+ _useState2 = _slicedToArray(_useState, 2),
188
+ exist = _useState2[0],
189
+ setExist = _useState2[1];
190
+ var _useState3 = useState(getRealPlacement(placement)),
191
+ _useState4 = _slicedToArray(_useState3, 2),
192
+ placementInner = _useState4[0],
193
+ setPlacementInner = _useState4[1];
194
+ var delayRef = useRef();
195
+ var clearDelay = function clearDelay() {
196
+ if (typeof delayRef.current !== 'undefined') {
197
+ clearTimeout(delayRef.current);
198
+ delayRef.current = null;
199
+ }
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
+ };
221
+ var triggerOpen = function triggerOpen(nextOpen) {
222
+ var triggerType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
223
+ var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
224
+ clearDelay();
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);
233
+ }
234
+ }
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
+ }
256
+ }
257
+ }
258
+ return false;
259
+ };
260
+ var onTriggerInner = function onTriggerInner(nextOpen, triggerType) {
261
+ var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
262
+ triggerOpen(nextOpen, triggerType, delay);
263
+ };
264
+ var onClick = function onClick(e) {
265
+ var _a, _b;
266
+ e.stopPropagation();
267
+ onTriggerInner(!visibleInner, 'click');
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);
269
+ };
270
+ var onFocus = function onFocus(e) {
271
+ var _a, _b;
272
+ onTriggerInner(true, 'focus');
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);
274
+ };
275
+ var onBlur = function onBlur(e) {
276
+ var _a, _b;
277
+ onTriggerInner(false, 'focus');
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);
279
+ };
280
+ var onContextMenu = function onContextMenu(e) {
281
+ var _a, _b;
282
+ e.preventDefault();
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');
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);
301
+ };
302
+ var onMouseOver = function onMouseOver(e) {
303
+ var _a, _b;
304
+ onTriggerInner(true, 'hover', mouseEnterDelay);
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);
306
+ };
307
+ var onMouseLeave = function onMouseLeave(e) {
308
+ var _a, _b;
309
+ onTriggerInner(false, 'hover', mouseLeaveDelay);
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);
311
+ };
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);
327
+ }
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
+ };
336
+ useEffect(function () {
337
+ setPlacementInner(getRealPlacement(placement));
338
+ }, [placement]);
339
+ useEffect(function () {
340
+ var scrollHandle = debounce(function (e) {
341
+ var _a, _b;
342
+ if (visibleInner) {
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));
344
+ if (scrollHidden && !isPopper) {
345
+ triggerOpen(false, 'scroll');
346
+ }
347
+ }
348
+ }, 10);
349
+ if (visibleInner) {
350
+ document.addEventListener('scroll', scrollHandle, true);
351
+ }
352
+ return function () {
353
+ document.removeEventListener('scroll', scrollHandle, true);
354
+ };
355
+ }, [visibleInner, scrollHidden, popperRefDom]);
356
+ useEffect(function () {
357
+ var clickHandle = debounce(function (e) {
358
+ var _a, _b, _c;
359
+ if (visibleInner) {
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);
367
+ }
368
+ }
369
+ }, 10);
370
+ if (visibleInner) {
371
+ document.addEventListener('click', clickHandle, true);
372
+ }
373
+ return function () {
374
+ document.removeEventListener('click', clickHandle, true);
375
+ };
376
+ }, [visibleInner, clickToClose, referenceRef, popperRefDom]);
377
+ useEffect(function () {
378
+ var realDom = getRealDom(referenceRef, referenceElement);
379
+ var triggerNode = getTriggerElement(realDom);
380
+ triggerEventHandle(triggerNode);
381
+ return function () {
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
390
+ };
391
+ });
392
+ var popperModifiers = [{
393
+ name: 'offset',
394
+ options: {
395
+ offset: [0, defaultGap + (arrow ? 5 : 0)]
396
+ }
397
+ }, {
398
+ name: 'preventOverflow',
399
+ enabled: autoPlacement,
400
+ options: {
401
+ mainAxis: true
402
+ }
403
+ }, {
404
+ name: 'flip',
405
+ enabled: autoPlacement,
406
+ options: {
407
+ fallbackPlacements: autoPlacement ? getFallbackPlacements(placementInner) : undefined
408
+ }
409
+ }, {
410
+ name: 'onUpdate',
411
+ enabled: true,
412
+ phase: 'afterWrite',
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
+ }
419
+ }
420
+ }];
421
+ var popperOptionsInner = {
422
+ placement: placementInner,
423
+ modifiers: popperModifiers,
424
+ strategy: 'fixed'
425
+ };
426
+ useEnhancedEffect(function () {
427
+ var _a, _b;
428
+ if (visibleInner) {
429
+ if (!exist) {
430
+ setExist(true);
431
+ } else {
432
+ if (popperInstance.current) {
433
+ (_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.setOptions(function (options) {
434
+ return _extends(_extends({}, options), popperOptionsInner);
435
+ });
436
+ (_b = popperInstance.current) === null || _b === void 0 ? void 0 : _b.forceUpdate();
437
+ }
438
+ setTimeout(function () {
439
+ parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, popperRef.current);
440
+ }, 10);
441
+ }
442
+ }
443
+ }, [visibleInner, placementInner, arrow]);
444
+ useEnhancedEffect(function () {
445
+ if (!exist) {
446
+ return undefined;
447
+ }
448
+ var current = getRealDom(referenceRef, referenceElement);
449
+ if (current) {
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);
454
+ }
455
+ return function () {
456
+ var _a;
457
+ (_a = popperInstance.current) === null || _a === void 0 ? void 0 : _a.destroy();
458
+ };
459
+ }, [exist]);
460
+ if (children === null || typeof children === 'undefined') {
461
+ return null;
462
+ }
463
+ var arrowStyle = _defineProperty({}, "--arrowSize", arrowSize + 'px');
464
+ var popperContainerProps = {
465
+ ref: popperRefDom,
466
+ style: _extends({}, arrow ? arrowStyle : {}),
467
+ className: classnames(popperPrefixCls, {
468
+ hidden: !visibleInner
469
+ })
470
+ };
471
+ var popperProps = {
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),
474
+ onMouseOver: trigger === 'hover' ? function () {
475
+ return onTriggerInner(true, 'hover', mouseEnterDelay);
476
+ } : undefined,
477
+ onMouseLeave: trigger === 'hover' ? function () {
478
+ return onTriggerInner(false, 'hover', mouseLeaveDelay);
479
+ } : undefined,
480
+ onAnimationEnd: onPopperAnimationEnd,
481
+ onTransitionEnd: onPopperAnimationEnd
482
+ };
483
+ var referenceProps = {
484
+ ref: referenceRef,
485
+ className: classnames((_a = referenceElement === null || referenceElement === void 0 ? void 0 : referenceElement.props) === null || _a === void 0 ? void 0 : _a.className, referencePrefixCls)
486
+ };
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",
491
+ "data-popper-arrow": ""
492
+ })))), container));
493
+ });
494
+ Popper.displayName = 'Popper';
495
+ export default Popper;
@@ -0,0 +1,2 @@
1
+ import '../../style/index.css';
2
+ import './index.css';