@alicloud/console-base-rc-side-panel 1.1.12-beta.0 → 1.1.12

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.
@@ -5,9 +5,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = Item;
8
+ exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
12
  var _react = _interopRequireWildcard(require("react"));
@@ -15,17 +14,22 @@ var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
15
14
  var _consoleBaseRcHtmlTrusted = _interopRequireDefault(require("@alicloud/console-base-rc-html-trusted"));
16
15
  var _model = require("../../../model");
17
16
  var _rc = require("../../rc");
18
- var _excluded = ["title", "unread", "mark", "tooltip", "tooltipAsHtml", "tooltipOptions", "active", "onActiveChange", "onClick", "id", "className", "style"];
17
+ var _excluded = ["title", "unread", "mark", "tooltip", "tooltipAsHtml", "tooltipDefaultOpen", "tooltipDefaultOpenDelay", "tooltipDefaultOpenDuration", "tooltipOptions", "active", "onActiveChange", "onClick", "id", "className", "style"];
19
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
19
  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 && {}.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; }
21
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
- function Item(_ref) {
20
+ var Item = function Item(_ref) {
24
21
  var title = _ref.title,
25
22
  unread = _ref.unread,
26
23
  mark = _ref.mark,
27
24
  tooltip = _ref.tooltip,
28
- tooltipAsHtml = _ref.tooltipAsHtml,
25
+ _ref$tooltipAsHtml = _ref.tooltipAsHtml,
26
+ tooltipAsHtml = _ref$tooltipAsHtml === void 0 ? false : _ref$tooltipAsHtml,
27
+ _ref$tooltipDefaultOp = _ref.tooltipDefaultOpen,
28
+ tooltipDefaultOpen = _ref$tooltipDefaultOp === void 0 ? false : _ref$tooltipDefaultOp,
29
+ _ref$tooltipDefaultOp2 = _ref.tooltipDefaultOpenDelay,
30
+ tooltipDefaultOpenDelay = _ref$tooltipDefaultOp2 === void 0 ? 0.1 : _ref$tooltipDefaultOp2,
31
+ _ref$tooltipDefaultOp3 = _ref.tooltipDefaultOpenDuration,
32
+ tooltipDefaultOpenDuration = _ref$tooltipDefaultOp3 === void 0 ? 3000 : _ref$tooltipDefaultOp3,
29
33
  tooltipOptions = _ref.tooltipOptions,
30
34
  active = _ref.active,
31
35
  onActiveChange = _ref.onActiveChange,
@@ -34,53 +38,57 @@ function Item(_ref) {
34
38
  className = _ref.className,
35
39
  style = _ref.style,
36
40
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var collapsed = (0, _model.useCollapsed)();
38
- var _useState = (0, _react.useState)(),
41
+ var openTimerRef = (0, _react.useRef)(null);
42
+ var defaultOpenTimerRef = (0, _react.useRef)(null);
43
+ var _useState = (0, _react.useState)(false),
39
44
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
40
- formatTitle = _useState2[0],
41
- setFormatTitle = _useState2[1];
42
- var _useState3 = (0, _react.useState)(tooltipOptions),
43
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
44
- formatTooltipOptions = _useState4[0],
45
- setFormatTooltipOptions = _useState4[1];
45
+ open = _useState2[0],
46
+ setOpen = _useState2[1];
47
+ var collapsed = (0, _model.useCollapsed)();
46
48
  var handleClick = (0, _react.useCallback)(function (event) {
47
49
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
48
50
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
49
51
  }, [onClick, onActiveChange, active]);
50
-
51
- // 处理复杂 title
52
52
  (0, _react.useEffect)(function () {
53
- var formatTitle = tooltip || title;
54
- if (tooltipAsHtml && typeof tooltip === 'string') {
55
- formatTitle = /*#__PURE__*/_react.default.createElement(_consoleBaseRcHtmlTrusted.default, {
56
- text: tooltip
57
- });
53
+ if (!collapsed && tooltipDefaultOpen) {
54
+ openTimerRef.current = setTimeout(function () {
55
+ setOpen(true);
56
+ defaultOpenTimerRef.current = setTimeout(function () {
57
+ setOpen(false);
58
+ }, tooltipDefaultOpenDuration);
59
+ }, tooltipDefaultOpenDelay);
58
60
  }
59
- setFormatTitle(formatTitle);
60
- }, [tooltip, title, tooltipAsHtml]);
61
61
 
62
- // 侧边栏收起时,内部弹窗需全部关闭
63
- (0, _react.useEffect)(function () {
64
- var formatTooltipOptions = _objectSpread({}, tooltipOptions);
65
- if (collapsed) {
66
- if (formatTooltipOptions.defaultOpen) {
67
- formatTooltipOptions.defaultOpen = false;
68
- }
69
- if (formatTooltipOptions.open) {
70
- formatTooltipOptions.open = false;
62
+ // 组件卸载时,主动清除计时器
63
+ return function () {
64
+ if (openTimerRef.current) {
65
+ clearTimeout(openTimerRef.current);
66
+ openTimerRef.current = null;
71
67
  }
72
- if (formatTooltipOptions.onOpenChange && typeof formatTooltipOptions.onOpenChange === 'function') {
73
- formatTooltipOptions.onOpenChange(false);
68
+ if (defaultOpenTimerRef.current) {
69
+ clearTimeout(defaultOpenTimerRef.current);
70
+ defaultOpenTimerRef.current = null;
74
71
  }
72
+ };
73
+ }, []);
74
+
75
+ // 侧边栏收起时,弹窗需关闭
76
+ (0, _react.useEffect)(function () {
77
+ if (collapsed && open) {
78
+ setOpen(false);
75
79
  }
76
- setFormatTooltipOptions(formatTooltipOptions);
77
- }, [tooltipOptions, collapsed]);
80
+ }, [collapsed]);
78
81
  return /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, (0, _extends2.default)({
79
- title: formatTitle,
80
- placement: "left",
82
+ title: tooltipAsHtml && typeof tooltip === 'string' ? /*#__PURE__*/_react.default.createElement(_consoleBaseRcHtmlTrusted.default, {
83
+ text: tooltip
84
+ }) : tooltip || title,
81
85
  destroyTooltipOnHide: true,
86
+ placement: "left",
82
87
  fixed: true
83
- }, formatTooltipOptions), /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, {
88
+ }, tooltipOptions, {
89
+ open: open,
90
+ onOpenChange: setOpen
91
+ }), /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, {
84
92
  id: id,
85
93
  className: className,
86
94
  style: style
@@ -92,4 +100,5 @@ function Item(_ref) {
92
100
  unread: unread,
93
101
  mark: mark
94
102
  })));
95
- }
103
+ };
104
+ var _default = exports.default = Item;
@@ -1,21 +1,25 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["title", "unread", "mark", "tooltip", "tooltipAsHtml", "tooltipOptions", "active", "onActiveChange", "onClick", "id", "className", "style"];
6
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- import React, { useCallback, useEffect, useState } from 'react';
4
+ var _excluded = ["title", "unread", "mark", "tooltip", "tooltipAsHtml", "tooltipDefaultOpen", "tooltipDefaultOpenDelay", "tooltipDefaultOpenDuration", "tooltipOptions", "active", "onActiveChange", "onClick", "id", "className", "style"];
5
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
9
6
  import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
10
7
  import HtmlTrusted from '@alicloud/console-base-rc-html-trusted';
11
8
  import { useCollapsed } from '../../../model';
12
9
  import { SidePanelItemWrap, SidePanelItemButton, SidePanelItemBadge } from '../../rc';
13
- export default function Item(_ref) {
10
+ var Item = function Item(_ref) {
14
11
  var title = _ref.title,
15
12
  unread = _ref.unread,
16
13
  mark = _ref.mark,
17
14
  tooltip = _ref.tooltip,
18
- tooltipAsHtml = _ref.tooltipAsHtml,
15
+ _ref$tooltipAsHtml = _ref.tooltipAsHtml,
16
+ tooltipAsHtml = _ref$tooltipAsHtml === void 0 ? false : _ref$tooltipAsHtml,
17
+ _ref$tooltipDefaultOp = _ref.tooltipDefaultOpen,
18
+ tooltipDefaultOpen = _ref$tooltipDefaultOp === void 0 ? false : _ref$tooltipDefaultOp,
19
+ _ref$tooltipDefaultOp2 = _ref.tooltipDefaultOpenDelay,
20
+ tooltipDefaultOpenDelay = _ref$tooltipDefaultOp2 === void 0 ? 0.1 : _ref$tooltipDefaultOp2,
21
+ _ref$tooltipDefaultOp3 = _ref.tooltipDefaultOpenDuration,
22
+ tooltipDefaultOpenDuration = _ref$tooltipDefaultOp3 === void 0 ? 3000 : _ref$tooltipDefaultOp3,
19
23
  tooltipOptions = _ref.tooltipOptions,
20
24
  active = _ref.active,
21
25
  onActiveChange = _ref.onActiveChange,
@@ -24,53 +28,57 @@ export default function Item(_ref) {
24
28
  className = _ref.className,
25
29
  style = _ref.style,
26
30
  rest = _objectWithoutProperties(_ref, _excluded);
27
- var collapsed = useCollapsed();
28
- var _useState = useState(),
31
+ var openTimerRef = useRef(null);
32
+ var defaultOpenTimerRef = useRef(null);
33
+ var _useState = useState(false),
29
34
  _useState2 = _slicedToArray(_useState, 2),
30
- formatTitle = _useState2[0],
31
- setFormatTitle = _useState2[1];
32
- var _useState3 = useState(tooltipOptions),
33
- _useState4 = _slicedToArray(_useState3, 2),
34
- formatTooltipOptions = _useState4[0],
35
- setFormatTooltipOptions = _useState4[1];
35
+ open = _useState2[0],
36
+ setOpen = _useState2[1];
37
+ var collapsed = useCollapsed();
36
38
  var handleClick = useCallback(function (event) {
37
39
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
38
40
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
39
41
  }, [onClick, onActiveChange, active]);
40
-
41
- // 处理复杂 title
42
42
  useEffect(function () {
43
- var formatTitle = tooltip || title;
44
- if (tooltipAsHtml && typeof tooltip === 'string') {
45
- formatTitle = /*#__PURE__*/React.createElement(HtmlTrusted, {
46
- text: tooltip
47
- });
43
+ if (!collapsed && tooltipDefaultOpen) {
44
+ openTimerRef.current = setTimeout(function () {
45
+ setOpen(true);
46
+ defaultOpenTimerRef.current = setTimeout(function () {
47
+ setOpen(false);
48
+ }, tooltipDefaultOpenDuration);
49
+ }, tooltipDefaultOpenDelay);
48
50
  }
49
- setFormatTitle(formatTitle);
50
- }, [tooltip, title, tooltipAsHtml]);
51
51
 
52
- // 侧边栏收起时,内部弹窗需全部关闭
53
- useEffect(function () {
54
- var formatTooltipOptions = _objectSpread({}, tooltipOptions);
55
- if (collapsed) {
56
- if (formatTooltipOptions.defaultOpen) {
57
- formatTooltipOptions.defaultOpen = false;
58
- }
59
- if (formatTooltipOptions.open) {
60
- formatTooltipOptions.open = false;
52
+ // 组件卸载时,主动清除计时器
53
+ return function () {
54
+ if (openTimerRef.current) {
55
+ clearTimeout(openTimerRef.current);
56
+ openTimerRef.current = null;
61
57
  }
62
- if (formatTooltipOptions.onOpenChange && typeof formatTooltipOptions.onOpenChange === 'function') {
63
- formatTooltipOptions.onOpenChange(false);
58
+ if (defaultOpenTimerRef.current) {
59
+ clearTimeout(defaultOpenTimerRef.current);
60
+ defaultOpenTimerRef.current = null;
64
61
  }
62
+ };
63
+ }, []);
64
+
65
+ // 侧边栏收起时,弹窗需关闭
66
+ useEffect(function () {
67
+ if (collapsed && open) {
68
+ setOpen(false);
65
69
  }
66
- setFormatTooltipOptions(formatTooltipOptions);
67
- }, [tooltipOptions, collapsed]);
70
+ }, [collapsed]);
68
71
  return /*#__PURE__*/React.createElement(TooltipV1, _extends({
69
- title: formatTitle,
70
- placement: "left",
72
+ title: tooltipAsHtml && typeof tooltip === 'string' ? /*#__PURE__*/React.createElement(HtmlTrusted, {
73
+ text: tooltip
74
+ }) : tooltip || title,
71
75
  destroyTooltipOnHide: true,
76
+ placement: "left",
72
77
  fixed: true
73
- }, formatTooltipOptions), /*#__PURE__*/React.createElement(SidePanelItemWrap, {
78
+ }, tooltipOptions, {
79
+ open: open,
80
+ onOpenChange: setOpen
81
+ }), /*#__PURE__*/React.createElement(SidePanelItemWrap, {
74
82
  id: id,
75
83
  className: className,
76
84
  style: style
@@ -82,4 +90,5 @@ export default function Item(_ref) {
82
90
  unread: unread,
83
91
  mark: mark
84
92
  })));
85
- }
93
+ };
94
+ export default Item;
@@ -56,13 +56,25 @@ export interface ISidePanelItemProps extends SidePanelItemButtonProps {
56
56
  */
57
57
  tooltip?: string | React.ReactElement;
58
58
  /**
59
- * 按钮提示框支持 HTML 字符串
59
+ * 按钮提示框支持 HTML 字符串,默认 false
60
60
  */
61
61
  tooltipAsHtml?: boolean;
62
+ /**
63
+ * 默认是否显隐,默认 false
64
+ */
65
+ tooltipDefaultOpen?: boolean;
66
+ /**
67
+ * 默认显示延迟时间,单位毫秒,默认 0.1ms
68
+ */
69
+ tooltipDefaultOpenDelay?: number;
70
+ /**
71
+ * 默认显示持续时间,时间结束自动隐藏,单位毫秒,默认 3000ms
72
+ */
73
+ tooltipDefaultOpenDuration?: number;
62
74
  /**
63
75
  * 按钮提示框的配置
64
76
  */
65
- tooltipOptions?: Omit<TooltipPropsV1, 'title'>;
77
+ tooltipOptions?: Omit<TooltipPropsV1, 'title' | 'children' | 'defaultOpen' | 'open' | 'onOpenChange'>;
66
78
  /**
67
79
  * 入口 ID
68
80
  */
@@ -1,2 +1,4 @@
1
+ import React from 'react';
1
2
  import { SidePanelItemProps } from '../../../model';
2
- export default function Item({ title, unread, mark, tooltip, tooltipAsHtml, tooltipOptions, active, onActiveChange, onClick, id, className, style, ...rest }: SidePanelItemProps): JSX.Element;
3
+ declare const Item: React.FC<SidePanelItemProps>;
4
+ export default Item;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/console-base-rc-side-panel",
3
- "version": "1.1.12-beta.0",
3
+ "version": "1.1.12",
4
4
  "description": "ConsoleBase 组件 - 右侧边栏",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -43,7 +43,7 @@
43
43
  "@alicloud/console-base-rc-html-trusted": "^1.0.5",
44
44
  "@alicloud/console-base-rc-icon": "^1.10.6",
45
45
  "@alicloud/console-base-rc-marks": "^1.8.3",
46
- "@alicloud/console-base-rc-tooltip": "^1.1.14",
46
+ "@alicloud/console-base-rc-tooltip": "^1.1.19",
47
47
  "@alicloud/console-base-theme": "^1.9.7",
48
48
  "@alicloud/console-base-theme-sc-base": "^1.6.4",
49
49
  "@alicloud/mere-dom": "^1.8.0",