@rc-component/trigger 2.0.0-0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/Popup/index.js CHANGED
@@ -147,7 +147,7 @@ var Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {
147
147
  visible: open,
148
148
  onVisibleChanged: function onVisibleChanged(nextVisible) {
149
149
  var _motion$onVisibleChan;
150
- motion === null || motion === void 0 ? void 0 : (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 ? void 0 : _motion$onVisibleChan.call(motion, nextVisible);
150
+ motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);
151
151
  _onVisibleChanged(nextVisible);
152
152
  }
153
153
  }), function (_ref, motionRef) {
@@ -118,13 +118,14 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
118
118
  var originTop = popupElement.style.top;
119
119
  var originRight = popupElement.style.right;
120
120
  var originBottom = popupElement.style.bottom;
121
+ var originOverflow = popupElement.style.overflow;
121
122
 
122
123
  // Placement
123
124
  var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);
124
125
 
125
126
  // placeholder element
126
127
  var placeholderElement = doc.createElement('div');
127
- (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 ? void 0 : _popupElement$parentE.appendChild(placeholderElement);
128
+ (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);
128
129
  placeholderElement.style.left = "".concat(popupElement.offsetLeft, "px");
129
130
  placeholderElement.style.top = "".concat(popupElement.offsetTop, "px");
130
131
  placeholderElement.style.position = popupPosition;
@@ -136,6 +137,7 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
136
137
  popupElement.style.top = '0';
137
138
  popupElement.style.right = 'auto';
138
139
  popupElement.style.bottom = 'auto';
140
+ popupElement.style.overflow = 'hidden';
139
141
 
140
142
  // Calculate align style, we should consider `transform` case
141
143
  var targetRect;
@@ -208,7 +210,8 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
208
210
  popupElement.style.top = originTop;
209
211
  popupElement.style.right = originRight;
210
212
  popupElement.style.bottom = originBottom;
211
- (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 ? void 0 : _popupElement$parentE2.removeChild(placeholderElement);
213
+ popupElement.style.overflow = originOverflow;
214
+ (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);
212
215
 
213
216
  // Calculate scale
214
217
  var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);
@@ -465,7 +468,7 @@ export default function useAlign(open, popupEle, target, placement, builtinPlace
465
468
  var minBottom = Math.min(popupBottom, targetBottom);
466
469
  var yCenter = (maxTop + minBottom) / 2;
467
470
  var nextArrowY = yCenter - popupTop;
468
- onPopupAlign === null || onPopupAlign === void 0 ? void 0 : onPopupAlign(popupEle, nextAlignInfo);
471
+ onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);
469
472
 
470
473
  // Additional calculate right & bottom position
471
474
  var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);
@@ -1,85 +1,44 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { warning } from 'rc-util';
3
1
  import { getShadowRoot } from "rc-util/es/Dom/shadow";
4
- import raf from "rc-util/es/raf";
2
+ import { warning } from "rc-util/es/warning";
5
3
  import * as React from 'react';
6
4
  import { getWin } from "../util";
7
5
  export default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {
8
6
  var openRef = React.useRef(open);
9
-
10
- // Window click to hide should be lock to avoid trigger lock immediately
11
- var lockRef = React.useRef(false);
12
- if (openRef.current !== open) {
13
- lockRef.current = true;
14
- openRef.current = open;
15
- }
16
- React.useEffect(function () {
17
- var id = raf(function () {
18
- lockRef.current = false;
19
- });
20
- return function () {
21
- raf.cancel(id);
22
- };
23
- }, [open]);
7
+ openRef.current = open;
24
8
 
25
9
  // Click to hide is special action since click popup element should not hide
26
10
  React.useEffect(function () {
27
11
  if (clickToHide && popupEle && (!mask || maskClosable)) {
28
- var genClickEvents = function genClickEvents() {
29
- var clickInside = false;
30
-
31
- // User may mouseDown inside and drag out of popup and mouse up
32
- // Record here to prevent close
33
- var onWindowMouseDown = function onWindowMouseDown(_ref) {
34
- var target = _ref.target;
35
- clickInside = inPopupOrChild(target);
36
- };
37
- var onWindowClick = function onWindowClick(_ref2) {
38
- var target = _ref2.target;
39
- if (!lockRef.current && openRef.current && !clickInside && !inPopupOrChild(target)) {
40
- triggerOpen(false);
41
- }
42
- };
43
- return [onWindowMouseDown, onWindowClick];
12
+ var onTriggerClose = function onTriggerClose(_ref) {
13
+ var target = _ref.target;
14
+ if (openRef.current && !inPopupOrChild(target)) {
15
+ triggerOpen(false);
16
+ }
44
17
  };
45
-
46
- // Events
47
- var _genClickEvents = genClickEvents(),
48
- _genClickEvents2 = _slicedToArray(_genClickEvents, 2),
49
- onWinMouseDown = _genClickEvents2[0],
50
- onWinClick = _genClickEvents2[1];
51
- var _genClickEvents3 = genClickEvents(),
52
- _genClickEvents4 = _slicedToArray(_genClickEvents3, 2),
53
- onShadowMouseDown = _genClickEvents4[0],
54
- onShadowClick = _genClickEvents4[1];
55
18
  var win = getWin(popupEle);
56
- win.addEventListener('mousedown', onWinMouseDown, true);
57
- win.addEventListener('click', onWinClick, true);
58
- win.addEventListener('contextmenu', onWinClick, true);
19
+ win.addEventListener('mousedown', onTriggerClose, true);
20
+ win.addEventListener('contextmenu', onTriggerClose, true);
59
21
 
60
22
  // shadow root
61
23
  var targetShadowRoot = getShadowRoot(targetEle);
62
24
  if (targetShadowRoot) {
63
- targetShadowRoot.addEventListener('mousedown', onShadowMouseDown, true);
64
- targetShadowRoot.addEventListener('click', onShadowClick, true);
65
- targetShadowRoot.addEventListener('contextmenu', onShadowClick, true);
25
+ targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);
26
+ targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);
66
27
  }
67
28
 
68
29
  // Warning if target and popup not in same root
69
30
  if (process.env.NODE_ENV !== 'production') {
70
31
  var _targetEle$getRootNod, _popupEle$getRootNode;
71
- var targetRoot = targetEle === null || targetEle === void 0 ? void 0 : (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);
32
+ var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);
72
33
  var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);
73
34
  warning(targetRoot === popupRoot, "trigger element and popup element should in same shadow root.");
74
35
  }
75
36
  return function () {
76
- win.removeEventListener('mousedown', onWinMouseDown, true);
77
- win.removeEventListener('click', onWinClick, true);
78
- win.removeEventListener('contextmenu', onWinClick, true);
37
+ win.removeEventListener('mousedown', onTriggerClose, true);
38
+ win.removeEventListener('contextmenu', onTriggerClose, true);
79
39
  if (targetShadowRoot) {
80
- targetShadowRoot.removeEventListener('mousedown', onShadowMouseDown, true);
81
- targetShadowRoot.removeEventListener('click', onShadowClick, true);
82
- targetShadowRoot.removeEventListener('contextmenu', onShadowClick, true);
40
+ targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);
41
+ targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);
83
42
  }
84
43
  };
85
44
  }
package/es/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import type { CSSMotionProps } from 'rc-motion';
2
2
  import * as React from 'react';
3
3
  import type { ActionType, AlignType, AnimationType, ArrowTypeOuter, BuildInPlacements, TransitionNameType } from './interface';
4
- export type { BuildInPlacements, AlignType, ActionType, ArrowTypeOuter as ArrowType, };
4
+ export type { ActionType, AlignType, ArrowTypeOuter as ArrowType, BuildInPlacements, };
5
5
  export interface TriggerRef {
6
+ nativeElement: HTMLElement;
7
+ popupElement: HTMLElement;
6
8
  forceAlign: VoidFunction;
7
9
  }
8
10
  export interface TriggerProps {
package/es/index.js CHANGED
@@ -12,20 +12,21 @@ import useId from "rc-util/es/hooks/useId";
12
12
  import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
13
13
  import isMobile from "rc-util/es/isMobile";
14
14
  import * as React from 'react';
15
- import { flushSync } from 'react-dom';
15
+ import Popup from "./Popup";
16
+ import TriggerWrapper from "./TriggerWrapper";
16
17
  import TriggerContext from "./context";
17
18
  import useAction from "./hooks/useAction";
18
19
  import useAlign from "./hooks/useAlign";
19
20
  import useWatch from "./hooks/useWatch";
20
21
  import useWinClick from "./hooks/useWinClick";
21
- import Popup from "./Popup";
22
- import TriggerWrapper from "./TriggerWrapper";
23
22
  import { getAlignPopupClassName, getMotion } from "./util";
24
23
 
25
24
  // Removed Props List
26
25
  // Seems this can be auto
27
26
  // getDocument?: (element?: HTMLElement) => Document;
27
+
28
28
  // New version will not wrap popup with `rc-trigger-popup-content` when multiple children
29
+
29
30
  export function generateTrigger() {
30
31
  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;
31
32
  var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -94,7 +95,7 @@ export function generateTrigger() {
94
95
  return {
95
96
  registerSubPopup: function registerSubPopup(id, subPopupEle) {
96
97
  subPopupElements.current[id] = subPopupEle;
97
- parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);
98
+ parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);
98
99
  }
99
100
  };
100
101
  }, [parentContext]);
@@ -105,11 +106,15 @@ export function generateTrigger() {
105
106
  _React$useState4 = _slicedToArray(_React$useState3, 2),
106
107
  popupEle = _React$useState4[0],
107
108
  setPopupEle = _React$useState4[1];
109
+
110
+ // Used for forwardRef popup. Not use internal
111
+ var externalPopupRef = React.useRef(null);
108
112
  var setPopupRef = useEvent(function (node) {
113
+ externalPopupRef.current = node;
109
114
  if (isDOM(node) && popupEle !== node) {
110
115
  setPopupEle(node);
111
116
  }
112
- parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
117
+ parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);
113
118
  });
114
119
 
115
120
  // =========================== Target ===========================
@@ -118,9 +123,13 @@ export function generateTrigger() {
118
123
  _React$useState6 = _slicedToArray(_React$useState5, 2),
119
124
  targetEle = _React$useState6[0],
120
125
  setTargetEle = _React$useState6[1];
126
+
127
+ // Used for forwardRef target. Not use internal
128
+ var externalForwardRef = React.useRef(null);
121
129
  var setTargetRef = useEvent(function (node) {
122
130
  if (isDOM(node) && targetEle !== node) {
123
131
  setTargetEle(node);
132
+ externalForwardRef.current = node;
124
133
  }
125
134
  });
126
135
 
@@ -160,15 +169,19 @@ export function generateTrigger() {
160
169
  }, [popupVisible]);
161
170
  var openRef = React.useRef(mergedOpen);
162
171
  openRef.current = mergedOpen;
172
+ var lastTriggerRef = React.useRef([]);
173
+ lastTriggerRef.current = [];
163
174
  var internalTriggerOpen = useEvent(function (nextOpen) {
175
+ var _lastTriggerRef$curre;
176
+ setMergedOpen(nextOpen);
177
+
164
178
  // Enter or Pointer will both trigger open state change
165
179
  // We only need take one to avoid duplicated change event trigger
166
- flushSync(function () {
167
- if (mergedOpen !== nextOpen) {
168
- setMergedOpen(nextOpen);
169
- onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextOpen);
170
- }
171
- });
180
+ // Use `lastTriggerRef` to record last open type
181
+ if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {
182
+ lastTriggerRef.current.push(nextOpen);
183
+ onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);
184
+ }
172
185
  });
173
186
 
174
187
  // Trigger for delay
@@ -258,8 +271,12 @@ export function generateTrigger() {
258
271
  var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);
259
272
  return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));
260
273
  }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);
274
+
275
+ // ============================ Refs ============================
261
276
  React.useImperativeHandle(ref, function () {
262
277
  return {
278
+ nativeElement: externalForwardRef.current,
279
+ popupElement: externalPopupRef.current,
263
280
  forceAlign: triggerAlign
264
281
  };
265
282
  });
@@ -289,7 +306,7 @@ export function generateTrigger() {
289
306
  var onVisibleChanged = function onVisibleChanged(visible) {
290
307
  setInMotion(false);
291
308
  onAlign();
292
- afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 ? void 0 : afterPopupVisibleChange(visible);
309
+ afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);
293
310
  };
294
311
 
295
312
  // We will trigger align when motion is in prepare
@@ -316,14 +333,14 @@ export function generateTrigger() {
316
333
  function wrapperAction(eventName, nextOpen, delay, preEvent) {
317
334
  cloneProps[eventName] = function (event) {
318
335
  var _originChildProps$eve;
319
- preEvent === null || preEvent === void 0 ? void 0 : preEvent(event);
336
+ preEvent === null || preEvent === void 0 || preEvent(event);
320
337
  triggerOpen(nextOpen, delay);
321
338
 
322
339
  // Pass to origin
323
340
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
324
341
  args[_key - 1] = arguments[_key];
325
342
  }
326
- (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 ? void 0 : _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
343
+ (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
327
344
  };
328
345
  }
329
346
 
@@ -342,7 +359,7 @@ export function generateTrigger() {
342
359
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
343
360
  args[_key2 - 1] = arguments[_key2];
344
361
  }
345
- (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 ? void 0 : _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
362
+ (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
346
363
  };
347
364
  }
348
365
 
@@ -362,9 +379,9 @@ export function generateTrigger() {
362
379
  wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {
363
380
  setMousePosByEvent(event);
364
381
  });
365
- onPopupMouseEnter = function onPopupMouseEnter() {
382
+ onPopupMouseEnter = function onPopupMouseEnter(event) {
366
383
  // Only trigger re-open when popup is visible
367
- if (mergedOpen || inMotion) {
384
+ if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {
368
385
  triggerOpen(true, mouseEnterDelay);
369
386
  }
370
387
  };
@@ -374,7 +391,7 @@ export function generateTrigger() {
374
391
  cloneProps.onMouseMove = function (event) {
375
392
  var _originChildProps$onM;
376
393
  // setMousePosByEvent(event);
377
- (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 ? void 0 : _originChildProps$onM.call(originChildProps, event);
394
+ (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);
378
395
  };
379
396
  }
380
397
  }
@@ -410,7 +427,7 @@ export function generateTrigger() {
410
427
  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
411
428
  args[_key3 - 1] = arguments[_key3];
412
429
  }
413
- (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 ? void 0 : _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
430
+ (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
414
431
  };
415
432
  }
416
433
 
@@ -432,7 +449,7 @@ export function generateTrigger() {
432
449
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
433
450
  args[_key4] = arguments[_key4];
434
451
  }
435
- (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 ? void 0 : _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
452
+ (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
436
453
  restProps[eventName].apply(restProps, args);
437
454
  };
438
455
  }
package/es/mock.js CHANGED
@@ -11,12 +11,12 @@ var MockPortal = function MockPortal(_ref) {
11
11
  visible = _React$useState2[0],
12
12
  setVisible = _React$useState2[1];
13
13
  React.useEffect(function () {
14
- getContainer === null || getContainer === void 0 ? void 0 : getContainer();
14
+ getContainer === null || getContainer === void 0 || getContainer();
15
15
  });
16
16
  React.useEffect(function () {
17
17
  if (open) {
18
18
  setVisible(true);
19
- } else if (!open && autoDestroy) {
19
+ } else if (autoDestroy) {
20
20
  setVisible(false);
21
21
  }
22
22
  }, [open, autoDestroy]);
@@ -15,5 +15,4 @@ var PopupContent = /*#__PURE__*/React.memo(function (_ref) {
15
15
  if (process.env.NODE_ENV !== 'production') {
16
16
  PopupContent.displayName = 'PopupContent';
17
17
  }
18
- var _default = PopupContent;
19
- exports.default = _default;
18
+ var _default = exports.default = PopupContent;
@@ -155,7 +155,7 @@ var Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {
155
155
  visible: open,
156
156
  onVisibleChanged: function onVisibleChanged(nextVisible) {
157
157
  var _motion$onVisibleChan;
158
- motion === null || motion === void 0 ? void 0 : (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 ? void 0 : _motion$onVisibleChan.call(motion, nextVisible);
158
+ motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);
159
159
  _onVisibleChanged(nextVisible);
160
160
  }
161
161
  }), function (_ref, motionRef) {
@@ -190,5 +190,4 @@ var Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {
190
190
  if (process.env.NODE_ENV !== 'production') {
191
191
  Popup.displayName = 'Popup';
192
192
  }
193
- var _default = Popup;
194
- exports.default = _default;
193
+ var _default = exports.default = Popup;
@@ -24,5 +24,4 @@ var TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
24
  if (process.env.NODE_ENV !== 'production') {
25
25
  TriggerWrapper.displayName = 'TriggerWrapper';
26
26
  }
27
- var _default = TriggerWrapper;
28
- exports.default = _default;
27
+ var _default = exports.default = TriggerWrapper;
package/lib/context.js CHANGED
@@ -7,5 +7,4 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var TriggerContext = /*#__PURE__*/React.createContext(null);
10
- var _default = TriggerContext;
11
- exports.default = _default;
10
+ var _default = exports.default = TriggerContext;
@@ -126,13 +126,14 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
126
126
  var originTop = popupElement.style.top;
127
127
  var originRight = popupElement.style.right;
128
128
  var originBottom = popupElement.style.bottom;
129
+ var originOverflow = popupElement.style.overflow;
129
130
 
130
131
  // Placement
131
132
  var placementInfo = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, builtinPlacements[placement]), popupAlign);
132
133
 
133
134
  // placeholder element
134
135
  var placeholderElement = doc.createElement('div');
135
- (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 ? void 0 : _popupElement$parentE.appendChild(placeholderElement);
136
+ (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);
136
137
  placeholderElement.style.left = "".concat(popupElement.offsetLeft, "px");
137
138
  placeholderElement.style.top = "".concat(popupElement.offsetTop, "px");
138
139
  placeholderElement.style.position = popupPosition;
@@ -144,6 +145,7 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
144
145
  popupElement.style.top = '0';
145
146
  popupElement.style.right = 'auto';
146
147
  popupElement.style.bottom = 'auto';
148
+ popupElement.style.overflow = 'hidden';
147
149
 
148
150
  // Calculate align style, we should consider `transform` case
149
151
  var targetRect;
@@ -216,7 +218,8 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
216
218
  popupElement.style.top = originTop;
217
219
  popupElement.style.right = originRight;
218
220
  popupElement.style.bottom = originBottom;
219
- (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 ? void 0 : _popupElement$parentE2.removeChild(placeholderElement);
221
+ popupElement.style.overflow = originOverflow;
222
+ (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);
220
223
 
221
224
  // Calculate scale
222
225
  var _scaleX = (0, _util.toNum)(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);
@@ -473,7 +476,7 @@ function useAlign(open, popupEle, target, placement, builtinPlacements, popupAli
473
476
  var minBottom = Math.min(popupBottom, targetBottom);
474
477
  var yCenter = (maxTop + minBottom) / 2;
475
478
  var nextArrowY = yCenter - popupTop;
476
- onPopupAlign === null || onPopupAlign === void 0 ? void 0 : onPopupAlign(popupEle, nextAlignInfo);
479
+ onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);
477
480
 
478
481
  // Additional calculate right & bottom position
479
482
  var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);
@@ -1,93 +1,51 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = useWinClick;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _rcUtil = require("rc-util");
11
8
  var _shadow = require("rc-util/lib/Dom/shadow");
12
- var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
9
+ var _warning = require("rc-util/lib/warning");
13
10
  var React = _interopRequireWildcard(require("react"));
14
11
  var _util = require("../util");
15
12
  function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {
16
13
  var openRef = React.useRef(open);
17
-
18
- // Window click to hide should be lock to avoid trigger lock immediately
19
- var lockRef = React.useRef(false);
20
- if (openRef.current !== open) {
21
- lockRef.current = true;
22
- openRef.current = open;
23
- }
24
- React.useEffect(function () {
25
- var id = (0, _raf.default)(function () {
26
- lockRef.current = false;
27
- });
28
- return function () {
29
- _raf.default.cancel(id);
30
- };
31
- }, [open]);
14
+ openRef.current = open;
32
15
 
33
16
  // Click to hide is special action since click popup element should not hide
34
17
  React.useEffect(function () {
35
18
  if (clickToHide && popupEle && (!mask || maskClosable)) {
36
- var genClickEvents = function genClickEvents() {
37
- var clickInside = false;
38
-
39
- // User may mouseDown inside and drag out of popup and mouse up
40
- // Record here to prevent close
41
- var onWindowMouseDown = function onWindowMouseDown(_ref) {
42
- var target = _ref.target;
43
- clickInside = inPopupOrChild(target);
44
- };
45
- var onWindowClick = function onWindowClick(_ref2) {
46
- var target = _ref2.target;
47
- if (!lockRef.current && openRef.current && !clickInside && !inPopupOrChild(target)) {
48
- triggerOpen(false);
49
- }
50
- };
51
- return [onWindowMouseDown, onWindowClick];
19
+ var onTriggerClose = function onTriggerClose(_ref) {
20
+ var target = _ref.target;
21
+ if (openRef.current && !inPopupOrChild(target)) {
22
+ triggerOpen(false);
23
+ }
52
24
  };
53
-
54
- // Events
55
- var _genClickEvents = genClickEvents(),
56
- _genClickEvents2 = (0, _slicedToArray2.default)(_genClickEvents, 2),
57
- onWinMouseDown = _genClickEvents2[0],
58
- onWinClick = _genClickEvents2[1];
59
- var _genClickEvents3 = genClickEvents(),
60
- _genClickEvents4 = (0, _slicedToArray2.default)(_genClickEvents3, 2),
61
- onShadowMouseDown = _genClickEvents4[0],
62
- onShadowClick = _genClickEvents4[1];
63
25
  var win = (0, _util.getWin)(popupEle);
64
- win.addEventListener('mousedown', onWinMouseDown, true);
65
- win.addEventListener('click', onWinClick, true);
66
- win.addEventListener('contextmenu', onWinClick, true);
26
+ win.addEventListener('mousedown', onTriggerClose, true);
27
+ win.addEventListener('contextmenu', onTriggerClose, true);
67
28
 
68
29
  // shadow root
69
30
  var targetShadowRoot = (0, _shadow.getShadowRoot)(targetEle);
70
31
  if (targetShadowRoot) {
71
- targetShadowRoot.addEventListener('mousedown', onShadowMouseDown, true);
72
- targetShadowRoot.addEventListener('click', onShadowClick, true);
73
- targetShadowRoot.addEventListener('contextmenu', onShadowClick, true);
32
+ targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);
33
+ targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);
74
34
  }
75
35
 
76
36
  // Warning if target and popup not in same root
77
37
  if (process.env.NODE_ENV !== 'production') {
78
38
  var _targetEle$getRootNod, _popupEle$getRootNode;
79
- var targetRoot = targetEle === null || targetEle === void 0 ? void 0 : (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);
39
+ var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);
80
40
  var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);
81
- (0, _rcUtil.warning)(targetRoot === popupRoot, "trigger element and popup element should in same shadow root.");
41
+ (0, _warning.warning)(targetRoot === popupRoot, "trigger element and popup element should in same shadow root.");
82
42
  }
83
43
  return function () {
84
- win.removeEventListener('mousedown', onWinMouseDown, true);
85
- win.removeEventListener('click', onWinClick, true);
86
- win.removeEventListener('contextmenu', onWinClick, true);
44
+ win.removeEventListener('mousedown', onTriggerClose, true);
45
+ win.removeEventListener('contextmenu', onTriggerClose, true);
87
46
  if (targetShadowRoot) {
88
- targetShadowRoot.removeEventListener('mousedown', onShadowMouseDown, true);
89
- targetShadowRoot.removeEventListener('click', onShadowClick, true);
90
- targetShadowRoot.removeEventListener('contextmenu', onShadowClick, true);
47
+ targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);
48
+ targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);
91
49
  }
92
50
  };
93
51
  }
package/lib/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import type { CSSMotionProps } from 'rc-motion';
2
2
  import * as React from 'react';
3
3
  import type { ActionType, AlignType, AnimationType, ArrowTypeOuter, BuildInPlacements, TransitionNameType } from './interface';
4
- export type { BuildInPlacements, AlignType, ActionType, ArrowTypeOuter as ArrowType, };
4
+ export type { ActionType, AlignType, ArrowTypeOuter as ArrowType, BuildInPlacements, };
5
5
  export interface TriggerRef {
6
+ nativeElement: HTMLElement;
7
+ popupElement: HTMLElement;
6
8
  forceAlign: VoidFunction;
7
9
  }
8
10
  export interface TriggerProps {
package/lib/index.js CHANGED
@@ -20,14 +20,13 @@ var _useId = _interopRequireDefault(require("rc-util/lib/hooks/useId"));
20
20
  var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
21
21
  var _isMobile = _interopRequireDefault(require("rc-util/lib/isMobile"));
22
22
  var React = _interopRequireWildcard(require("react"));
23
- var _reactDom = require("react-dom");
23
+ var _Popup = _interopRequireDefault(require("./Popup"));
24
+ var _TriggerWrapper = _interopRequireDefault(require("./TriggerWrapper"));
24
25
  var _context = _interopRequireDefault(require("./context"));
25
26
  var _useAction3 = _interopRequireDefault(require("./hooks/useAction"));
26
27
  var _useAlign3 = _interopRequireDefault(require("./hooks/useAlign"));
27
28
  var _useWatch = _interopRequireDefault(require("./hooks/useWatch"));
28
29
  var _useWinClick = _interopRequireDefault(require("./hooks/useWinClick"));
29
- var _Popup = _interopRequireDefault(require("./Popup"));
30
- var _TriggerWrapper = _interopRequireDefault(require("./TriggerWrapper"));
31
30
  var _util = require("./util");
32
31
  var _excluded = ["prefixCls", "children", "action", "showAction", "hideAction", "popupVisible", "defaultPopupVisible", "onPopupVisibleChange", "afterPopupVisibleChange", "mouseEnterDelay", "mouseLeaveDelay", "focusDelay", "blurDelay", "mask", "maskClosable", "getPopupContainer", "forceRender", "autoDestroy", "destroyPopupOnHide", "popup", "popupClassName", "popupStyle", "popupPlacement", "builtinPlacements", "popupAlign", "zIndex", "stretch", "getPopupClassNameFromAlign", "fresh", "alignPoint", "onPopupClick", "onPopupAlign", "arrow", "popupMotion", "maskMotion", "popupTransitionName", "popupAnimation", "maskTransitionName", "maskAnimation", "className", "getTriggerDOMNode"];
33
32
  // Removed Props List
@@ -104,7 +103,7 @@ function generateTrigger() {
104
103
  return {
105
104
  registerSubPopup: function registerSubPopup(id, subPopupEle) {
106
105
  subPopupElements.current[id] = subPopupEle;
107
- parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);
106
+ parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);
108
107
  }
109
108
  };
110
109
  }, [parentContext]);
@@ -115,11 +114,15 @@ function generateTrigger() {
115
114
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
116
115
  popupEle = _React$useState4[0],
117
116
  setPopupEle = _React$useState4[1];
117
+
118
+ // Used for forwardRef popup. Not use internal
119
+ var externalPopupRef = React.useRef(null);
118
120
  var setPopupRef = (0, _useEvent.default)(function (node) {
121
+ externalPopupRef.current = node;
119
122
  if ((0, _findDOMNode.isDOM)(node) && popupEle !== node) {
120
123
  setPopupEle(node);
121
124
  }
122
- parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);
125
+ parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);
123
126
  });
124
127
 
125
128
  // =========================== Target ===========================
@@ -128,9 +131,13 @@ function generateTrigger() {
128
131
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
129
132
  targetEle = _React$useState6[0],
130
133
  setTargetEle = _React$useState6[1];
134
+
135
+ // Used for forwardRef target. Not use internal
136
+ var externalForwardRef = React.useRef(null);
131
137
  var setTargetRef = (0, _useEvent.default)(function (node) {
132
138
  if ((0, _findDOMNode.isDOM)(node) && targetEle !== node) {
133
139
  setTargetEle(node);
140
+ externalForwardRef.current = node;
134
141
  }
135
142
  });
136
143
 
@@ -170,15 +177,19 @@ function generateTrigger() {
170
177
  }, [popupVisible]);
171
178
  var openRef = React.useRef(mergedOpen);
172
179
  openRef.current = mergedOpen;
180
+ var lastTriggerRef = React.useRef([]);
181
+ lastTriggerRef.current = [];
173
182
  var internalTriggerOpen = (0, _useEvent.default)(function (nextOpen) {
183
+ var _lastTriggerRef$curre;
184
+ setMergedOpen(nextOpen);
185
+
174
186
  // Enter or Pointer will both trigger open state change
175
187
  // We only need take one to avoid duplicated change event trigger
176
- (0, _reactDom.flushSync)(function () {
177
- if (mergedOpen !== nextOpen) {
178
- setMergedOpen(nextOpen);
179
- onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextOpen);
180
- }
181
- });
188
+ // Use `lastTriggerRef` to record last open type
189
+ if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {
190
+ lastTriggerRef.current.push(nextOpen);
191
+ onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);
192
+ }
182
193
  });
183
194
 
184
195
  // Trigger for delay
@@ -268,8 +279,12 @@ function generateTrigger() {
268
279
  var baseClassName = (0, _util.getAlignPopupClassName)(builtinPlacements, prefixCls, alignInfo, alignPoint);
269
280
  return (0, _classnames.default)(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));
270
281
  }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);
282
+
283
+ // ============================ Refs ============================
271
284
  React.useImperativeHandle(ref, function () {
272
285
  return {
286
+ nativeElement: externalForwardRef.current,
287
+ popupElement: externalPopupRef.current,
273
288
  forceAlign: triggerAlign
274
289
  };
275
290
  });
@@ -299,7 +314,7 @@ function generateTrigger() {
299
314
  var onVisibleChanged = function onVisibleChanged(visible) {
300
315
  setInMotion(false);
301
316
  onAlign();
302
- afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 ? void 0 : afterPopupVisibleChange(visible);
317
+ afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);
303
318
  };
304
319
 
305
320
  // We will trigger align when motion is in prepare
@@ -326,14 +341,14 @@ function generateTrigger() {
326
341
  function wrapperAction(eventName, nextOpen, delay, preEvent) {
327
342
  cloneProps[eventName] = function (event) {
328
343
  var _originChildProps$eve;
329
- preEvent === null || preEvent === void 0 ? void 0 : preEvent(event);
344
+ preEvent === null || preEvent === void 0 || preEvent(event);
330
345
  triggerOpen(nextOpen, delay);
331
346
 
332
347
  // Pass to origin
333
348
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
334
349
  args[_key - 1] = arguments[_key];
335
350
  }
336
- (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 ? void 0 : _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
351
+ (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
337
352
  };
338
353
  }
339
354
 
@@ -352,7 +367,7 @@ function generateTrigger() {
352
367
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
353
368
  args[_key2 - 1] = arguments[_key2];
354
369
  }
355
- (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 ? void 0 : _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
370
+ (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
356
371
  };
357
372
  }
358
373
 
@@ -372,9 +387,9 @@ function generateTrigger() {
372
387
  wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {
373
388
  setMousePosByEvent(event);
374
389
  });
375
- onPopupMouseEnter = function onPopupMouseEnter() {
390
+ onPopupMouseEnter = function onPopupMouseEnter(event) {
376
391
  // Only trigger re-open when popup is visible
377
- if (mergedOpen || inMotion) {
392
+ if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {
378
393
  triggerOpen(true, mouseEnterDelay);
379
394
  }
380
395
  };
@@ -384,7 +399,7 @@ function generateTrigger() {
384
399
  cloneProps.onMouseMove = function (event) {
385
400
  var _originChildProps$onM;
386
401
  // setMousePosByEvent(event);
387
- (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 ? void 0 : _originChildProps$onM.call(originChildProps, event);
402
+ (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);
388
403
  };
389
404
  }
390
405
  }
@@ -420,7 +435,7 @@ function generateTrigger() {
420
435
  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
421
436
  args[_key3 - 1] = arguments[_key3];
422
437
  }
423
- (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 ? void 0 : _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
438
+ (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
424
439
  };
425
440
  }
426
441
 
@@ -442,7 +457,7 @@ function generateTrigger() {
442
457
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
443
458
  args[_key4] = arguments[_key4];
444
459
  }
445
- (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 ? void 0 : _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
460
+ (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
446
461
  restProps[eventName].apply(restProps, args);
447
462
  };
448
463
  }
@@ -526,5 +541,4 @@ function generateTrigger() {
526
541
  }
527
542
  return Trigger;
528
543
  }
529
- var _default = generateTrigger(_portal.default);
530
- exports.default = _default;
544
+ var _default = exports.default = generateTrigger(_portal.default);
package/lib/mock.js CHANGED
@@ -19,16 +19,15 @@ var MockPortal = function MockPortal(_ref) {
19
19
  visible = _React$useState2[0],
20
20
  setVisible = _React$useState2[1];
21
21
  React.useEffect(function () {
22
- getContainer === null || getContainer === void 0 ? void 0 : getContainer();
22
+ getContainer === null || getContainer === void 0 || getContainer();
23
23
  });
24
24
  React.useEffect(function () {
25
25
  if (open) {
26
26
  setVisible(true);
27
- } else if (!open && autoDestroy) {
27
+ } else if (autoDestroy) {
28
28
  setVisible(false);
29
29
  }
30
30
  }, [open, autoDestroy]);
31
31
  return visible ? children : null;
32
32
  };
33
- var _default = (0, _index.generateTrigger)(MockPortal);
34
- exports.default = _default;
33
+ var _default = exports.default = (0, _index.generateTrigger)(MockPortal);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/trigger",
3
- "version": "2.0.0-0",
3
+ "version": "2.1.0",
4
4
  "description": "base abstract trigger component for react",
5
5
  "engines": {
6
6
  "node": ">=8.x"
@@ -33,7 +33,7 @@
33
33
  "start": "dumi dev",
34
34
  "build": "dumi build",
35
35
  "compile": "father build && lessc assets/index.less assets/index.css",
36
- "prepublishOnly": "npm run compile && np --yolo --no-publish --branch feat/@rc-component/dom-align",
36
+ "prepublishOnly": "npm run compile && np --yolo --no-publish",
37
37
  "lint": "eslint src/ docs/examples/ --ext .tsx,.ts,.jsx,.js",
38
38
  "test": "rc-test",
39
39
  "coverage": "rc-test --coverage",
@@ -41,29 +41,30 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@rc-component/father-plugin": "^1.0.0",
44
- "@testing-library/jest-dom": "^5.16.4",
45
- "@testing-library/react": "^13.0.0",
44
+ "@testing-library/jest-dom": "^6.1.4",
45
+ "@testing-library/react": "^14.0.0",
46
46
  "@types/classnames": "^2.2.10",
47
- "@types/jest": "^26.0.15",
48
- "@types/react": "^16.8.19",
47
+ "@types/jest": "^29.5.2",
48
+ "@types/node": "^20.11.6",
49
+ "@types/react": "^18.0.0",
49
50
  "@types/react-dom": "^18.0.11",
51
+ "@umijs/fabric": "^4.0.1",
50
52
  "cross-env": "^7.0.1",
51
53
  "dumi": "^2.1.0",
52
- "eslint": "^7.0.0",
54
+ "eslint": "^8.51.0",
53
55
  "father": "^4.0.0",
54
- "less": "^3.10.3",
55
- "np": "^8.0.4",
56
+ "less": "^4.2.0",
57
+ "np": "^9.0.0",
56
58
  "rc-test": "^7.0.13",
57
59
  "react": "^18.0.0",
58
60
  "react-dom": "^18.0.0",
59
- "regenerator-runtime": "^0.13.7",
60
- "typescript": "^4.0.0"
61
+ "regenerator-runtime": "^0.14.0",
62
+ "typescript": "^5.1.6"
61
63
  },
62
64
  "dependencies": {
63
65
  "@babel/runtime": "^7.23.2",
64
66
  "@rc-component/portal": "^1.1.0",
65
67
  "classnames": "^2.3.2",
66
- "rc-align": "5.0.0-0",
67
68
  "rc-motion": "^2.0.0",
68
69
  "rc-resize-observer": "^1.3.1",
69
70
  "rc-util": "^5.38.0"
@@ -71,9 +72,5 @@
71
72
  "peerDependencies": {
72
73
  "react": ">=16.9.0",
73
74
  "react-dom": ">=16.9.0"
74
- },
75
- "resolutions": {
76
- "@types/react": "^16.9.0",
77
- "@types/react-dom": "^16.9.0"
78
75
  }
79
76
  }