@alicloud/console-base-rc-side-panel 1.1.24-beta.1 → 1.1.24-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = CollapseWidget;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactDom = require("react-dom");
12
+ var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
13
+ var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
14
+ var _model = require("../../../../model");
15
+ var _intl = _interopRequireDefault(require("../../../intl"));
16
+ var _rc = require("../../../rc");
17
+ var _styles = require("./styles");
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); }
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; }
20
+ function CollapseWidget() {
21
+ var _useState = (0, _react.useState)(false),
22
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
23
+ isHovered = _useState2[0],
24
+ setIsHovered = _useState2[1];
25
+ var handleToggleCollapsed = (0, _model.useHandleCollapsedChange)();
26
+ var unread = (0, _model.useItemsTop)().some(function (v) {
27
+ return v.unread;
28
+ });
29
+ return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_styles.ScCollapseWrapper, {
30
+ $isHovered: isHovered,
31
+ onMouseEnter: function onMouseEnter() {
32
+ return setIsHovered(true);
33
+ },
34
+ onMouseLeave: function onMouseLeave() {
35
+ return setIsHovered(false);
36
+ }
37
+ }, /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
38
+ spm: 'console-base_sidebar',
39
+ title: (0, _intl.default)('op:toggle_visible'),
40
+ placement: 'left',
41
+ destroyTooltipOnHide: true,
42
+ fixed: true,
43
+ mouseEnterDelay: 250,
44
+ overlayStyle: {
45
+ marginLeft: '8px'
46
+ }
47
+ }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, null, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseButton, {
48
+ $isHovered: isHovered,
49
+ spm: 'collapse-visible',
50
+ title: (0, _intl.default)('op:toggle_visible'),
51
+ icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
52
+ type: "angle-right",
53
+ rotate: 180
54
+ }),
55
+ onClick: handleToggleCollapsed
56
+ }), unread ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
57
+ unread: true,
58
+ alignLeft: !isHovered
59
+ }) : null))), document.body);
60
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ScCollapseWrapper = exports.ScCollapseButton = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _consoleBaseTheme = require("@alicloud/console-base-theme");
10
+ var _rc = require("../../../rc");
11
+ 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); }
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 && {}.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; }
13
+ var ScCollapseWrapper = exports.ScCollapseWrapper = _styledComponents.default.div.withConfig({
14
+ componentId: "sc-8cd4ie-0"
15
+ })(["z-index:998;position:fixed;right:0;bottom:9px;transform:translateX(50%);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
16
+ var $isHovered = _ref.$isHovered;
17
+ return $isHovered && (0, _styledComponents.css)(["transform:translateX(0);"]);
18
+ });
19
+ var ScCollapseButton = exports.ScCollapseButton = (0, _styledComponents.default)(_rc.SidePanelItemButton).withConfig({
20
+ componentId: "sc-8cd4ie-1"
21
+ })(["&,&:hover{", " ", "}", ""], _consoleBaseTheme.mixinBgAccent, _consoleBaseTheme.mixinTextWhite, function (_ref2) {
22
+ var $isHovered = _ref2.$isHovered;
23
+ return !$isHovered && (0, _styledComponents.css)(["padding-left:4px;text-align:left;"]);
24
+ });
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = CollapseWithAsideWidget;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactDom = require("react-dom");
12
+ var _reactDraggable = _interopRequireDefault(require("react-draggable"));
13
+ var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
14
+ var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
15
+ var _model = require("../../../../model");
16
+ var _intl = _interopRequireDefault(require("../../../intl"));
17
+ var _rc = require("../../../rc");
18
+ var _styles = require("./styles");
19
+ 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
+ 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 CollapseWithAsideWidget() {
22
+ var _useState = (0, _react.useState)(false),
23
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
24
+ isDragging = _useState2[0],
25
+ setIsDragging = _useState2[1];
26
+ var _useProps = (0, _model.useProps)(),
27
+ collapsedAside = _useProps.collapsedAside,
28
+ collapsedAsideMini = _useProps.collapsedAsideMini,
29
+ collapsedDraggable = _useProps.collapsedDraggable,
30
+ onCollapsedDraggableChange = _useProps.onCollapsedDraggableChange;
31
+ var handleToggleCollapsed = (0, _model.useHandleCollapsedChange)();
32
+ var unread = (0, _model.useItemsTop)().some(function (v) {
33
+ return v.unread;
34
+ });
35
+ return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
36
+ axis: 'y',
37
+ position: {
38
+ x: 0,
39
+ y: 0
40
+ },
41
+ bounds: {
42
+ left: +((collapsedDraggable === null || collapsedDraggable === void 0 ? void 0 : collapsedDraggable[0]) || 0),
43
+ right: +((collapsedDraggable === null || collapsedDraggable === void 0 ? void 0 : collapsedDraggable[1]) || 0),
44
+ top: -500,
45
+ bottom: 0
46
+ },
47
+ onDrag: function onDrag() {
48
+ setIsDragging(true);
49
+ },
50
+ onStop: function onStop(_, data) {
51
+ setIsDragging(false);
52
+ onCollapsedDraggableChange === null || onCollapsedDraggableChange === void 0 ? void 0 : onCollapsedDraggableChange(data.x, data.y);
53
+ }
54
+ }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseWrapper, {
55
+ $isDragging: isDragging,
56
+ $collapsedAsideMini: !!collapsedAsideMini
57
+ }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseAside, null, collapsedAside), /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
58
+ spm: 'console-base_sidebar',
59
+ title: (0, _intl.default)('op:toggle_visible'),
60
+ placement: 'left',
61
+ destroyTooltipOnHide: true,
62
+ fixed: true,
63
+ mouseEnterDelay: 250,
64
+ overlayStyle: {
65
+ marginLeft: '8px'
66
+ }
67
+ }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, null, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseButton, {
68
+ spm: 'collapse-visible',
69
+ title: (0, _intl.default)('op:toggle_visible'),
70
+ icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
71
+ type: "angle-right",
72
+ rotate: 180
73
+ }),
74
+ onClick: handleToggleCollapsed
75
+ }), unread ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
76
+ unread: true
77
+ }) : null)))), document.body);
78
+ }
@@ -7,18 +7,21 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ScCollapseWrapper = exports.ScCollapseButton = exports.ScCollapseAside = void 0;
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
  var _consoleBaseTheme = require("@alicloud/console-base-theme");
10
- var _rc = require("../../rc");
10
+ var _rc = require("../../../rc");
11
11
  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); }
12
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 && {}.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; }
13
13
  var ScCollapseWrapper = exports.ScCollapseWrapper = _styledComponents.default.div.withConfig({
14
- componentId: "sc-dyn7up-0"
15
- })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", ""], function (_ref) {
14
+ componentId: "sc-140xzf5-0"
15
+ })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", " ", ""], function (_ref) {
16
16
  var $isDragging = _ref.$isDragging;
17
17
  return $isDragging ? (0, _styledComponents.css)(["cursor:move;*{pointer-events:none !important;}"]) : null;
18
+ }, function (_ref2) {
19
+ var $collapsedAsideMini = _ref2.$collapsedAsideMini;
20
+ return $collapsedAsideMini ? (0, _styledComponents.css)(["zoom:0.6;margin-right:-8px;"]) : null;
18
21
  });
19
22
  var ScCollapseAside = exports.ScCollapseAside = _styledComponents.default.div.withConfig({
20
- componentId: "sc-dyn7up-1"
23
+ componentId: "sc-140xzf5-1"
21
24
  })(["position:relative;display:flex;align-items:center;justify-content:center;"]);
22
25
  var ScCollapseButton = exports.ScCollapseButton = (0, _styledComponents.default)(_rc.SidePanelItemButton).withConfig({
23
- componentId: "sc-dyn7up-2"
26
+ componentId: "sc-140xzf5-2"
24
27
  })(["&,&:hover{", " ", "}"], _consoleBaseTheme.mixinBgAccent, _consoleBaseTheme.mixinTextWhite);
@@ -1,47 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = ItemCollapse;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _reactDom = require("react-dom");
12
- var _reactDraggable = _interopRequireDefault(require("react-draggable"));
13
- var _ahooks = require("ahooks");
14
- var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
8
+ var _react = _interopRequireDefault(require("react"));
15
9
  var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
16
10
  var _model = require("../../../model");
17
11
  var _item = _interopRequireDefault(require("../item"));
18
12
  var _intl = _interopRequireDefault(require("../../intl"));
19
- var _rc = require("../../rc");
20
- var _styles = require("./styles");
21
- 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); }
22
- 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; }
23
- var CB_SIDE_PANEL_COLLAPSE_Y = 'cb-side-panel-collapse-y';
13
+ var _collapseWidget = _interopRequireDefault(require("./collapse-widget"));
14
+ var _collapseWithAsideWidget = _interopRequireDefault(require("./collapse-with-aside-widget"));
24
15
  function ItemCollapse() {
25
- var _useState = (0, _react.useState)(false),
26
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
27
- isDragging = _useState2[0],
28
- setIsDragging = _useState2[1];
29
16
  var _useProps = (0, _model.useProps)(),
30
17
  collapsedAside = _useProps.collapsedAside;
31
18
  var collapsed = (0, _model.useCollapsed)();
32
19
  var handleToggleCollapsed = (0, _model.useHandleCollapsedChange)();
33
- var unread = (0, _model.useItemsTop)().some(function (v) {
34
- return v.unread;
35
- });
36
- var _useLocalStorageState = (0, _ahooks.useLocalStorageState)(CB_SIDE_PANEL_COLLAPSE_Y, {
37
- defaultValue: 0,
38
- deserializer: function deserializer(value) {
39
- return +(value || 0);
40
- }
41
- }),
42
- _useLocalStorageState2 = (0, _slicedToArray2.default)(_useLocalStorageState, 2),
43
- draggableY = _useLocalStorageState2[0],
44
- setDraggableY = _useLocalStorageState2[1];
45
20
  if (!collapsed) {
46
21
  return /*#__PURE__*/_react.default.createElement(_item.default, {
47
22
  spm: 'collapse-hidden',
@@ -55,46 +30,8 @@ function ItemCollapse() {
55
30
  onClick: handleToggleCollapsed
56
31
  });
57
32
  }
58
- return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
59
- axis: 'y',
60
- position: {
61
- x: 0,
62
- y: +(draggableY || 0)
63
- },
64
- bounds: {
65
- left: 0,
66
- right: 0,
67
- top: -500,
68
- bottom: 0
69
- },
70
- onDrag: function onDrag() {
71
- setIsDragging(true);
72
- },
73
- onStop: function onStop(_, data) {
74
- setIsDragging(false);
75
- setDraggableY(data.y);
76
- }
77
- }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseWrapper, {
78
- $isDragging: isDragging
79
- }, collapsedAside ? /*#__PURE__*/_react.default.createElement(_styles.ScCollapseAside, null, collapsedAside) : null, /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
80
- spm: 'console-base_sidebar',
81
- title: (0, _intl.default)('op:toggle_visible'),
82
- placement: 'left',
83
- destroyTooltipOnHide: true,
84
- fixed: true,
85
- mouseEnterDelay: 250,
86
- overlayStyle: {
87
- marginLeft: '8px'
88
- }
89
- }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, null, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseButton, {
90
- spm: 'collapse-visible',
91
- title: (0, _intl.default)('op:toggle_visible'),
92
- icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
93
- type: "angle-right",
94
- rotate: 180
95
- }),
96
- onClick: handleToggleCollapsed
97
- }), unread ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
98
- unread: true
99
- }) : null)))), document.body);
33
+ if (!collapsedAside) {
34
+ return /*#__PURE__*/_react.default.createElement(_collapseWidget.default, null);
35
+ }
36
+ return /*#__PURE__*/_react.default.createElement(_collapseWithAsideWidget.default, null);
100
37
  }
@@ -0,0 +1,50 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React, { useState } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
5
+ import Icon from '@alicloud/console-base-rc-icon';
6
+ import { useHandleCollapsedChange, useItemsTop } from '../../../../model';
7
+ import intl from '../../../intl';
8
+ import { SidePanelItemBadge, SidePanelItemWrap } from '../../../rc';
9
+ import { ScCollapseWrapper, ScCollapseButton } from './styles';
10
+ export default function CollapseWidget() {
11
+ var _useState = useState(false),
12
+ _useState2 = _slicedToArray(_useState, 2),
13
+ isHovered = _useState2[0],
14
+ setIsHovered = _useState2[1];
15
+ var handleToggleCollapsed = useHandleCollapsedChange();
16
+ var unread = useItemsTop().some(function (v) {
17
+ return v.unread;
18
+ });
19
+ return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(ScCollapseWrapper, {
20
+ $isHovered: isHovered,
21
+ onMouseEnter: function onMouseEnter() {
22
+ return setIsHovered(true);
23
+ },
24
+ onMouseLeave: function onMouseLeave() {
25
+ return setIsHovered(false);
26
+ }
27
+ }, /*#__PURE__*/React.createElement(TooltipV1, {
28
+ spm: 'console-base_sidebar',
29
+ title: intl('op:toggle_visible'),
30
+ placement: 'left',
31
+ destroyTooltipOnHide: true,
32
+ fixed: true,
33
+ mouseEnterDelay: 250,
34
+ overlayStyle: {
35
+ marginLeft: '8px'
36
+ }
37
+ }, /*#__PURE__*/React.createElement(SidePanelItemWrap, null, /*#__PURE__*/React.createElement(ScCollapseButton, {
38
+ $isHovered: isHovered,
39
+ spm: 'collapse-visible',
40
+ title: intl('op:toggle_visible'),
41
+ icon: /*#__PURE__*/React.createElement(Icon, {
42
+ type: "angle-right",
43
+ rotate: 180
44
+ }),
45
+ onClick: handleToggleCollapsed
46
+ }), unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
47
+ unread: true,
48
+ alignLeft: !isHovered
49
+ }) : null))), document.body);
50
+ }
@@ -0,0 +1,15 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { mixinBgAccent, mixinTextWhite } from '@alicloud/console-base-theme';
3
+ import { SidePanelItemButton } from '../../../rc';
4
+ export var ScCollapseWrapper = styled.div.withConfig({
5
+ componentId: "sc-8cd4ie-0"
6
+ })(["z-index:998;position:fixed;right:0;bottom:9px;transform:translateX(50%);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
7
+ var $isHovered = _ref.$isHovered;
8
+ return $isHovered && css(["transform:translateX(0);"]);
9
+ });
10
+ export var ScCollapseButton = styled(SidePanelItemButton).withConfig({
11
+ componentId: "sc-8cd4ie-1"
12
+ })(["&,&:hover{", " ", "}", ""], mixinBgAccent, mixinTextWhite, function (_ref2) {
13
+ var $isHovered = _ref2.$isHovered;
14
+ return !$isHovered && css(["padding-left:4px;text-align:left;"]);
15
+ });
@@ -0,0 +1,68 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React, { useState } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import Draggable from 'react-draggable';
5
+ import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
6
+ import Icon from '@alicloud/console-base-rc-icon';
7
+ import { useHandleCollapsedChange, useProps, useItemsTop } from '../../../../model';
8
+ import intl from '../../../intl';
9
+ import { SidePanelItemBadge, SidePanelItemWrap } from '../../../rc';
10
+ import { ScCollapseWrapper, ScCollapseAside, ScCollapseButton } from './styles';
11
+ export default function CollapseWithAsideWidget() {
12
+ var _useState = useState(false),
13
+ _useState2 = _slicedToArray(_useState, 2),
14
+ isDragging = _useState2[0],
15
+ setIsDragging = _useState2[1];
16
+ var _useProps = useProps(),
17
+ collapsedAside = _useProps.collapsedAside,
18
+ collapsedAsideMini = _useProps.collapsedAsideMini,
19
+ collapsedDraggable = _useProps.collapsedDraggable,
20
+ onCollapsedDraggableChange = _useProps.onCollapsedDraggableChange;
21
+ var handleToggleCollapsed = useHandleCollapsedChange();
22
+ var unread = useItemsTop().some(function (v) {
23
+ return v.unread;
24
+ });
25
+ return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(Draggable, {
26
+ axis: 'y',
27
+ position: {
28
+ x: 0,
29
+ y: 0
30
+ },
31
+ bounds: {
32
+ left: +((collapsedDraggable === null || collapsedDraggable === void 0 ? void 0 : collapsedDraggable[0]) || 0),
33
+ right: +((collapsedDraggable === null || collapsedDraggable === void 0 ? void 0 : collapsedDraggable[1]) || 0),
34
+ top: -500,
35
+ bottom: 0
36
+ },
37
+ onDrag: function onDrag() {
38
+ setIsDragging(true);
39
+ },
40
+ onStop: function onStop(_, data) {
41
+ setIsDragging(false);
42
+ onCollapsedDraggableChange === null || onCollapsedDraggableChange === void 0 ? void 0 : onCollapsedDraggableChange(data.x, data.y);
43
+ }
44
+ }, /*#__PURE__*/React.createElement(ScCollapseWrapper, {
45
+ $isDragging: isDragging,
46
+ $collapsedAsideMini: !!collapsedAsideMini
47
+ }, /*#__PURE__*/React.createElement(ScCollapseAside, null, collapsedAside), /*#__PURE__*/React.createElement(TooltipV1, {
48
+ spm: 'console-base_sidebar',
49
+ title: intl('op:toggle_visible'),
50
+ placement: 'left',
51
+ destroyTooltipOnHide: true,
52
+ fixed: true,
53
+ mouseEnterDelay: 250,
54
+ overlayStyle: {
55
+ marginLeft: '8px'
56
+ }
57
+ }, /*#__PURE__*/React.createElement(SidePanelItemWrap, null, /*#__PURE__*/React.createElement(ScCollapseButton, {
58
+ spm: 'collapse-visible',
59
+ title: intl('op:toggle_visible'),
60
+ icon: /*#__PURE__*/React.createElement(Icon, {
61
+ type: "angle-right",
62
+ rotate: 180
63
+ }),
64
+ onClick: handleToggleCollapsed
65
+ }), unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
66
+ unread: true
67
+ }) : null)))), document.body);
68
+ }
@@ -1,15 +1,18 @@
1
1
  import styled, { css } from 'styled-components';
2
2
  import { mixinBgAccent, mixinTextWhite } from '@alicloud/console-base-theme';
3
- import { SidePanelItemButton } from '../../rc';
3
+ import { SidePanelItemButton } from '../../../rc';
4
4
  export var ScCollapseWrapper = styled.div.withConfig({
5
- componentId: "sc-dyn7up-0"
6
- })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", ""], function (_ref) {
5
+ componentId: "sc-140xzf5-0"
6
+ })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", " ", ""], function (_ref) {
7
7
  var $isDragging = _ref.$isDragging;
8
8
  return $isDragging ? css(["cursor:move;*{pointer-events:none !important;}"]) : null;
9
+ }, function (_ref2) {
10
+ var $collapsedAsideMini = _ref2.$collapsedAsideMini;
11
+ return $collapsedAsideMini ? css(["zoom:0.6;margin-right:-8px;"]) : null;
9
12
  });
10
13
  export var ScCollapseAside = styled.div.withConfig({
11
- componentId: "sc-dyn7up-1"
14
+ componentId: "sc-140xzf5-1"
12
15
  })(["position:relative;display:flex;align-items:center;justify-content:center;"]);
13
16
  export var ScCollapseButton = styled(SidePanelItemButton).withConfig({
14
- componentId: "sc-dyn7up-2"
17
+ componentId: "sc-140xzf5-2"
15
18
  })(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
@@ -1,37 +1,15 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import React, { useState } from 'react';
3
- import { createPortal } from 'react-dom';
4
- import Draggable from 'react-draggable';
5
- import { useLocalStorageState } from 'ahooks';
6
- import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
1
+ import React from 'react';
7
2
  import Icon from '@alicloud/console-base-rc-icon';
8
- import { useCollapsed, useHandleCollapsedChange, useProps, useItemsTop } from '../../../model';
3
+ import { useCollapsed, useHandleCollapsedChange, useProps } from '../../../model';
9
4
  import PanelItem from '../item';
10
5
  import intl from '../../intl';
11
- import { SidePanelItemBadge, SidePanelItemWrap } from '../../rc';
12
- import { ScCollapseWrapper, ScCollapseAside, ScCollapseButton } from './styles';
13
- var CB_SIDE_PANEL_COLLAPSE_Y = 'cb-side-panel-collapse-y';
6
+ import CollapseWidget from './collapse-widget';
7
+ import CollapseWithAsideWidget from './collapse-with-aside-widget';
14
8
  export default function ItemCollapse() {
15
- var _useState = useState(false),
16
- _useState2 = _slicedToArray(_useState, 2),
17
- isDragging = _useState2[0],
18
- setIsDragging = _useState2[1];
19
9
  var _useProps = useProps(),
20
10
  collapsedAside = _useProps.collapsedAside;
21
11
  var collapsed = useCollapsed();
22
12
  var handleToggleCollapsed = useHandleCollapsedChange();
23
- var unread = useItemsTop().some(function (v) {
24
- return v.unread;
25
- });
26
- var _useLocalStorageState = useLocalStorageState(CB_SIDE_PANEL_COLLAPSE_Y, {
27
- defaultValue: 0,
28
- deserializer: function deserializer(value) {
29
- return +(value || 0);
30
- }
31
- }),
32
- _useLocalStorageState2 = _slicedToArray(_useLocalStorageState, 2),
33
- draggableY = _useLocalStorageState2[0],
34
- setDraggableY = _useLocalStorageState2[1];
35
13
  if (!collapsed) {
36
14
  return /*#__PURE__*/React.createElement(PanelItem, {
37
15
  spm: 'collapse-hidden',
@@ -45,46 +23,8 @@ export default function ItemCollapse() {
45
23
  onClick: handleToggleCollapsed
46
24
  });
47
25
  }
48
- return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(Draggable, {
49
- axis: 'y',
50
- position: {
51
- x: 0,
52
- y: +(draggableY || 0)
53
- },
54
- bounds: {
55
- left: 0,
56
- right: 0,
57
- top: -500,
58
- bottom: 0
59
- },
60
- onDrag: function onDrag() {
61
- setIsDragging(true);
62
- },
63
- onStop: function onStop(_, data) {
64
- setIsDragging(false);
65
- setDraggableY(data.y);
66
- }
67
- }, /*#__PURE__*/React.createElement(ScCollapseWrapper, {
68
- $isDragging: isDragging
69
- }, collapsedAside ? /*#__PURE__*/React.createElement(ScCollapseAside, null, collapsedAside) : null, /*#__PURE__*/React.createElement(TooltipV1, {
70
- spm: 'console-base_sidebar',
71
- title: intl('op:toggle_visible'),
72
- placement: 'left',
73
- destroyTooltipOnHide: true,
74
- fixed: true,
75
- mouseEnterDelay: 250,
76
- overlayStyle: {
77
- marginLeft: '8px'
78
- }
79
- }, /*#__PURE__*/React.createElement(SidePanelItemWrap, null, /*#__PURE__*/React.createElement(ScCollapseButton, {
80
- spm: 'collapse-visible',
81
- title: intl('op:toggle_visible'),
82
- icon: /*#__PURE__*/React.createElement(Icon, {
83
- type: "angle-right",
84
- rotate: 180
85
- }),
86
- onClick: handleToggleCollapsed
87
- }), unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
88
- unread: true
89
- }) : null)))), document.body);
26
+ if (!collapsedAside) {
27
+ return /*#__PURE__*/React.createElement(CollapseWidget, null);
28
+ }
29
+ return /*#__PURE__*/React.createElement(CollapseWithAsideWidget, null);
90
30
  }
@@ -11,9 +11,13 @@ export interface IModelProps {
11
11
  */
12
12
  visible?: boolean;
13
13
  /**
14
- * 通过 onCollapsedChange 实现受控
14
+ * 是否收起,通过 onCollapsedChange 实现受控
15
15
  */
16
16
  collapsed?: boolean;
17
+ /**
18
+ * 收起按钮的位置 [x, y],通过 onCollapsedDraggableChange 实现受控
19
+ */
20
+ collapsedDraggable?: number[];
17
21
  /**
18
22
  * 顶部工具
19
23
  */
@@ -42,4 +46,8 @@ export interface IModelProps {
42
46
  * 是否展示推入按钮
43
47
  */
44
48
  onCollapsedChange?(collapsed: boolean): void;
49
+ /**
50
+ * 收起按钮的拖拽位置
51
+ */
52
+ onCollapsedDraggableChange?(x: number, y: number): void;
45
53
  }
@@ -0,0 +1 @@
1
+ export default function CollapseWidget(): JSX.Element | null;
@@ -0,0 +1,7 @@
1
+ import { SidePanelItemButton } from '../../../rc';
2
+ export declare const ScCollapseWrapper: import("styled-components").StyledComponent<"div", any, {
3
+ $isHovered: boolean;
4
+ }, never>;
5
+ export declare const ScCollapseButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, {
6
+ $isHovered: boolean;
7
+ }, never>;
@@ -0,0 +1 @@
1
+ export default function CollapseWithAsideWidget(): JSX.Element | null;
@@ -1,6 +1,7 @@
1
- import { SidePanelItemButton } from '../../rc';
1
+ import { SidePanelItemButton } from '../../../rc';
2
2
  export declare const ScCollapseWrapper: import("styled-components").StyledComponent<"div", any, {
3
3
  $isDragging: boolean;
4
+ $collapsedAsideMini: boolean;
4
5
  }, never>;
5
6
  export declare const ScCollapseAside: import("styled-components").StyledComponent<"div", any, {}, never>;
6
7
  export declare const ScCollapseButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, {}, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/console-base-rc-side-panel",
3
- "version": "1.1.24-beta.1",
3
+ "version": "1.1.24-beta.2",
4
4
  "description": "ConsoleBase 组件 - 右侧边栏",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -23,6 +23,7 @@
23
23
  "@alicloud/demo-rc-elements": "^1.13.0",
24
24
  "@alicloud/ts-config": "^1.1.3",
25
25
  "@types/react": "^17.0.58",
26
+ "@types/react-dom": "^17.0.19",
26
27
  "@types/styled-components": "^5.1.26",
27
28
  "react": "^17.0.2",
28
29
  "styled-components": "^5.3.10",
@@ -30,6 +31,7 @@
30
31
  },
31
32
  "peerDependencies": {
32
33
  "react": ">=16.8",
34
+ "react-dom": "^17.0.2",
33
35
  "styled-components": ">=5"
34
36
  },
35
37
  "dependencies": {
@@ -46,7 +48,6 @@
46
48
  "@alicloud/mere-dom": "^1.8.0",
47
49
  "@alicloud/react-hook-is-unmounted": "^1.3.4",
48
50
  "@alicloud/typescript-missing-helpers": "^1.3.4",
49
- "ahooks": "^3.7.11",
50
51
  "immutability-helper": "^3.1.1",
51
52
  "react-draggable": "^4.4.6"
52
53
  },