@rc-component/trigger 2.2.5 → 3.0.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.
@@ -1,27 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = useWatch;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
7
+ var _useLayoutEffect = _interopRequireDefault(require("@rc-component/util/lib/hooks/useLayoutEffect"));
10
8
  var _util = require("../util");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
10
  function useWatch(open, target, popup, onAlign, onScroll) {
12
- (0, _useLayoutEffect.default)(function () {
11
+ (0, _useLayoutEffect.default)(() => {
13
12
  if (open && target && popup) {
14
- var targetElement = target;
15
- var popupElement = popup;
16
- var targetScrollList = (0, _util.collectScroller)(targetElement);
17
- var popupScrollList = (0, _util.collectScroller)(popupElement);
18
- var win = (0, _util.getWin)(popupElement);
19
- var mergedList = new Set([win].concat((0, _toConsumableArray2.default)(targetScrollList), (0, _toConsumableArray2.default)(popupScrollList)));
13
+ const targetElement = target;
14
+ const popupElement = popup;
15
+ const targetScrollList = (0, _util.collectScroller)(targetElement);
16
+ const popupScrollList = (0, _util.collectScroller)(popupElement);
17
+ const win = (0, _util.getWin)(popupElement);
18
+ const mergedList = new Set([win, ...targetScrollList, ...popupScrollList]);
20
19
  function notifyScroll() {
21
20
  onAlign();
22
21
  onScroll();
23
22
  }
24
- mergedList.forEach(function (scroller) {
23
+ mergedList.forEach(scroller => {
25
24
  scroller.addEventListener('scroll', notifyScroll, {
26
25
  passive: true
27
26
  });
@@ -32,8 +31,8 @@ function useWatch(open, target, popup, onAlign, onScroll) {
32
31
 
33
32
  // First time always do align
34
33
  onAlign();
35
- return function () {
36
- mergedList.forEach(function (scroller) {
34
+ return () => {
35
+ mergedList.forEach(scroller => {
37
36
  scroller.removeEventListener('scroll', notifyScroll);
38
37
  win.removeEventListener('resize', notifyScroll);
39
38
  });
@@ -1,38 +1,38 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = useWinClick;
8
- var _shadow = require("rc-util/lib/Dom/shadow");
9
- var _warning = require("rc-util/lib/warning");
7
+ var _shadow = require("@rc-component/util/lib/Dom/shadow");
8
+ var _warning = require("@rc-component/util/lib/warning");
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _util = require("../util");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
13
  function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {
13
- var openRef = React.useRef(open);
14
+ const openRef = React.useRef(open);
14
15
  openRef.current = open;
15
- var popupPointerDownRef = React.useRef(false);
16
+ const popupPointerDownRef = React.useRef(false);
16
17
 
17
18
  // Click to hide is special action since click popup element should not hide
18
- React.useEffect(function () {
19
+ React.useEffect(() => {
19
20
  if (clickToHide && popupEle && (!mask || maskClosable)) {
20
- var onPointerDown = function onPointerDown() {
21
+ const onPointerDown = () => {
21
22
  popupPointerDownRef.current = false;
22
23
  };
23
- var onTriggerClose = function onTriggerClose(e) {
24
- var _e$composedPath;
25
- if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {
24
+ const onTriggerClose = e => {
25
+ if (openRef.current && !inPopupOrChild(e.composedPath?.()?.[0] || e.target) && !popupPointerDownRef.current) {
26
26
  triggerOpen(false);
27
27
  }
28
28
  };
29
- var win = (0, _util.getWin)(popupEle);
29
+ const win = (0, _util.getWin)(popupEle);
30
30
  win.addEventListener('pointerdown', onPointerDown, true);
31
31
  win.addEventListener('mousedown', onTriggerClose, true);
32
32
  win.addEventListener('contextmenu', onTriggerClose, true);
33
33
 
34
34
  // shadow root
35
- var targetShadowRoot = (0, _shadow.getShadowRoot)(targetEle);
35
+ const targetShadowRoot = (0, _shadow.getShadowRoot)(targetEle);
36
36
  if (targetShadowRoot) {
37
37
  targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);
38
38
  targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);
@@ -40,12 +40,11 @@ function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable,
40
40
 
41
41
  // Warning if target and popup not in same root
42
42
  if (process.env.NODE_ENV !== 'production') {
43
- var _targetEle$getRootNod, _popupEle$getRootNode;
44
- var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);
45
- var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);
46
- (0, _warning.warning)(targetRoot === popupRoot, "trigger element and popup element should in same shadow root.");
43
+ const targetRoot = targetEle?.getRootNode?.();
44
+ const popupRoot = popupEle.getRootNode?.();
45
+ (0, _warning.warning)(targetRoot === popupRoot, `trigger element and popup element should in same shadow root.`);
47
46
  }
48
- return function () {
47
+ return () => {
49
48
  win.removeEventListener('pointerdown', onPointerDown, true);
50
49
  win.removeEventListener('mousedown', onTriggerClose, true);
51
50
  win.removeEventListener('contextmenu', onTriggerClose, true);
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { CSSMotionProps } from 'rc-motion';
1
+ import type { CSSMotionProps } from '@rc-component/motion';
2
2
  import * as React from 'react';
3
- import type { ActionType, AlignType, AnimationType, ArrowTypeOuter, BuildInPlacements, TransitionNameType } from './interface';
3
+ import type { ActionType, AlignType, ArrowTypeOuter, BuildInPlacements } from './interface';
4
4
  export type { ActionType, AlignType, ArrowTypeOuter as ArrowType, BuildInPlacements, };
5
5
  export interface TriggerRef {
6
6
  nativeElement: HTMLElement;
@@ -23,22 +23,12 @@ export interface TriggerProps {
23
23
  getPopupContainer?: (node: HTMLElement) => HTMLElement;
24
24
  forceRender?: boolean;
25
25
  autoDestroy?: boolean;
26
- /** @deprecated Please use `autoDestroy` instead */
27
- destroyPopupOnHide?: boolean;
28
26
  mask?: boolean;
29
27
  maskClosable?: boolean;
30
28
  /** Set popup motion. You can ref `rc-motion` for more info. */
31
29
  popupMotion?: CSSMotionProps;
32
30
  /** Set mask motion. You can ref `rc-motion` for more info. */
33
31
  maskMotion?: CSSMotionProps;
34
- /** @deprecated Please us `popupMotion` instead. */
35
- popupTransitionName?: TransitionNameType;
36
- /** @deprecated Please us `popupMotion` instead. */
37
- popupAnimation?: AnimationType;
38
- /** @deprecated Please us `maskMotion` instead. */
39
- maskTransitionName?: TransitionNameType;
40
- /** @deprecated Please us `maskMotion` instead. */
41
- maskAnimation?: AnimationType;
42
32
  mouseEnterDelay?: number;
43
33
  mouseLeaveDelay?: number;
44
34
  focusDelay?: number;
@@ -59,8 +49,6 @@ export interface TriggerProps {
59
49
  */
60
50
  fresh?: boolean;
61
51
  arrow?: boolean | ArrowTypeOuter;
62
- /** @deprecated Add `className` on `children`. Please add `className` directly instead. */
63
- className?: string;
64
52
  /**
65
53
  * @private Get trigger DOM node.
66
54
  * Used for some component is function component which can not access by `findDOMNode`