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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/build/cjs/model/const/index.js +1 -0
  2. package/build/cjs/model/enum/index.js +2 -1
  3. package/build/cjs/model/hook/index.js +14 -0
  4. package/build/cjs/model/hook/use-collapsed-draggable.js +16 -0
  5. package/build/cjs/model/hook/use-dispatch-set-collapsed-draggable.js +19 -0
  6. package/build/cjs/model/hook/use-handle-collapsed-draggable-change.js +19 -0
  7. package/build/cjs/model/reducer/index.js +3 -0
  8. package/build/cjs/model/reducer/reduce-set-collapsed-draggable.js +15 -0
  9. package/build/cjs/ui/rc-container/item-collapse/collapse-widget/index.js +60 -0
  10. package/build/cjs/ui/rc-container/item-collapse/collapse-widget/styles.js +24 -0
  11. package/build/cjs/ui/rc-container/item-collapse/collapse-with-aside-widget/index.js +78 -0
  12. package/build/cjs/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js} +8 -5
  13. package/build/cjs/ui/rc-container/item-collapse/index.js +7 -70
  14. package/build/esm/model/const/index.js +1 -0
  15. package/build/esm/model/enum/index.js +2 -1
  16. package/build/esm/model/hook/index.js +2 -0
  17. package/build/esm/model/hook/use-collapsed-draggable.js +9 -0
  18. package/build/esm/model/hook/use-dispatch-set-collapsed-draggable.js +12 -0
  19. package/build/esm/model/hook/use-handle-collapsed-draggable-change.js +12 -0
  20. package/build/esm/model/reducer/index.js +3 -0
  21. package/build/esm/model/reducer/reduce-set-collapsed-draggable.js +8 -0
  22. package/build/esm/ui/rc-container/item-collapse/collapse-widget/index.js +50 -0
  23. package/build/esm/ui/rc-container/item-collapse/collapse-widget/styles.js +15 -0
  24. package/build/esm/ui/rc-container/item-collapse/collapse-with-aside-widget/index.js +68 -0
  25. package/build/esm/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js} +8 -5
  26. package/build/esm/ui/rc-container/item-collapse/index.js +8 -68
  27. package/build/types/model/enum/index.d.ts +2 -1
  28. package/build/types/model/hook/index.d.ts +2 -0
  29. package/build/types/model/hook/use-collapsed-draggable.d.ts +1 -0
  30. package/build/types/model/hook/use-dispatch-set-collapsed-draggable.d.ts +1 -0
  31. package/build/types/model/hook/use-handle-collapsed-draggable-change.d.ts +1 -0
  32. package/build/types/model/reducer/reduce-set-collapsed-draggable.d.ts +2 -0
  33. package/build/types/model/types/action.d.ts +3 -0
  34. package/build/types/model/types/props.d.ts +9 -1
  35. package/build/types/model/types/state.d.ts +1 -0
  36. package/build/types/ui/rc-container/item-collapse/collapse-widget/index.d.ts +1 -0
  37. package/build/types/ui/rc-container/item-collapse/collapse-widget/styles.d.ts +7 -0
  38. package/build/types/ui/rc-container/item-collapse/collapse-with-aside-widget/index.d.ts +1 -0
  39. package/build/types/ui/rc-container/item-collapse/{styles.d.ts → collapse-with-aside-widget/styles.d.ts} +2 -1
  40. package/package.json +3 -2
@@ -8,5 +8,6 @@ var BODY_CLASS_WITH_SIDE_PANEL = exports.BODY_CLASS_WITH_SIDE_PANEL = 'with-side
8
8
  var QUICK_TOP_VISIBLE_OFFSET = exports.QUICK_TOP_VISIBLE_OFFSET = 200;
9
9
  var DEFAULT_CONTEXT_STATE = exports.DEFAULT_CONTEXT_STATE = {
10
10
  collapsed: true,
11
+ collapsedDraggable: [0, 0],
11
12
  quickTopVisible: false
12
13
  };
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.EAction = void 0;
7
7
  var EAction = exports.EAction = /*#__PURE__*/function (EAction) {
8
8
  EAction[EAction["SET_COLLAPSED"] = 0] = "SET_COLLAPSED";
9
- EAction[EAction["SET_QUICK_TOP_VISIBLE"] = 1] = "SET_QUICK_TOP_VISIBLE";
9
+ EAction[EAction["SET_COLLAPSED_DRAGGABLE"] = 1] = "SET_COLLAPSED_DRAGGABLE";
10
+ EAction[EAction["SET_QUICK_TOP_VISIBLE"] = 2] = "SET_QUICK_TOP_VISIBLE";
10
11
  return EAction;
11
12
  }({});
@@ -16,12 +16,24 @@ Object.defineProperty(exports, "useCollapsed", {
16
16
  return _useCollapsed.default;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "useCollapsedDraggable", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _useCollapsedDraggable.default;
23
+ }
24
+ });
19
25
  Object.defineProperty(exports, "useHandleCollapsedChange", {
20
26
  enumerable: true,
21
27
  get: function get() {
22
28
  return _useHandleCollapsedChange.default;
23
29
  }
24
30
  });
31
+ Object.defineProperty(exports, "useHandleCollapsedDraggableChange", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _useHandleCollapsedDraggableChange.default;
35
+ }
36
+ });
25
37
  Object.defineProperty(exports, "useHandleGoTop", {
26
38
  enumerable: true,
27
39
  get: function get() {
@@ -62,8 +74,10 @@ var _useModelProps = _interopRequireDefault(require("./_use-model-props"));
62
74
  var _useChildren = _interopRequireDefault(require("./use-children"));
63
75
  var _useVisible = _interopRequireDefault(require("./use-visible"));
64
76
  var _useCollapsed = _interopRequireDefault(require("./use-collapsed"));
77
+ var _useCollapsedDraggable = _interopRequireDefault(require("./use-collapsed-draggable"));
65
78
  var _useItemsTop = _interopRequireDefault(require("./use-items-top"));
66
79
  var _useItemsBottom = _interopRequireDefault(require("./use-items-bottom"));
67
80
  var _useQuickTop = _interopRequireDefault(require("./use-quick-top"));
68
81
  var _useHandleCollapsedChange = _interopRequireDefault(require("./use-handle-collapsed-change"));
82
+ var _useHandleCollapsedDraggableChange = _interopRequireDefault(require("./use-handle-collapsed-draggable-change"));
69
83
  var _useHandleGoTop = _interopRequireDefault(require("./use-handle-go-top"));
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = useCollapsedDraggable;
8
+ var _useModelProps2 = _interopRequireDefault(require("./_use-model-props"));
9
+ var _useModelState2 = _interopRequireDefault(require("./_use-model-state"));
10
+ function useCollapsedDraggable() {
11
+ var _useModelProps = (0, _useModelProps2.default)(),
12
+ valueInProps = _useModelProps.collapsedDraggable;
13
+ var _useModelState = (0, _useModelState2.default)(),
14
+ valueInState = _useModelState.collapsedDraggable;
15
+ return valueInProps !== null && valueInProps !== void 0 ? valueInProps : valueInState;
16
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = useDispatchSetCollapsedDraggable;
8
+ var _react = require("react");
9
+ var _enum = require("../enum");
10
+ var _useModelDispatch = _interopRequireDefault(require("./_use-model-dispatch"));
11
+ function useDispatchSetCollapsedDraggable() {
12
+ var dispatch = (0, _useModelDispatch.default)();
13
+ return (0, _react.useCallback)(function (payload) {
14
+ return dispatch({
15
+ type: _enum.EAction.SET_COLLAPSED_DRAGGABLE,
16
+ payload: payload
17
+ });
18
+ }, [dispatch]);
19
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = useHandleCollapsedDraggableChange;
8
+ var _react = require("react");
9
+ var _useDispatchSetCollapsedDraggable = _interopRequireDefault(require("./use-dispatch-set-collapsed-draggable"));
10
+ var _useModelProps2 = _interopRequireDefault(require("./_use-model-props"));
11
+ function useHandleCollapsedDraggableChange() {
12
+ var _useModelProps = (0, _useModelProps2.default)(),
13
+ onCollapsedDraggableChange = _useModelProps.onCollapsedDraggableChange;
14
+ var dispatchSetCollapsedDraggable = (0, _useDispatchSetCollapsedDraggable.default)();
15
+ return (0, _react.useCallback)(function (x, y) {
16
+ dispatchSetCollapsedDraggable([x, y]);
17
+ onCollapsedDraggableChange === null || onCollapsedDraggableChange === void 0 ? void 0 : onCollapsedDraggableChange(x, y);
18
+ }, [dispatchSetCollapsedDraggable, onCollapsedDraggableChange]);
19
+ }
@@ -7,11 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = reducer;
8
8
  var _enum = require("../enum");
9
9
  var _reduceSetCollapsed = _interopRequireDefault(require("./reduce-set-collapsed"));
10
+ var _reduceSetCollapsedDraggable = _interopRequireDefault(require("./reduce-set-collapsed-draggable"));
10
11
  var _reduceSetQuickTopVisible = _interopRequireDefault(require("./reduce-set-quick-top-visible"));
11
12
  function reducer(state, action) {
12
13
  switch (action.type) {
13
14
  case _enum.EAction.SET_COLLAPSED:
14
15
  return (0, _reduceSetCollapsed.default)(state, action.payload);
16
+ case _enum.EAction.SET_COLLAPSED_DRAGGABLE:
17
+ return (0, _reduceSetCollapsedDraggable.default)(state, action.payload);
15
18
  case _enum.EAction.SET_QUICK_TOP_VISIBLE:
16
19
  return (0, _reduceSetQuickTopVisible.default)(state, action.payload);
17
20
  default:
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = reduceSetCollapsedDraggable;
8
+ var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
9
+ function reduceSetCollapsedDraggable(state, payload) {
10
+ return (0, _immutabilityHelper.default)(state, {
11
+ collapsedDraggable: {
12
+ $set: payload
13
+ }
14
+ });
15
+ }
@@ -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
+ var collapsedDraggable = (0, _model.useCollapsedDraggable)();
30
+ var handleCollapsedDraggableChange = (0, _model.useHandleCollapsedDraggableChange)();
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: +(collapsedDraggable[0] || 0),
39
+ y: +(collapsedDraggable[1] || 0)
40
+ },
41
+ bounds: {
42
+ left: 0,
43
+ right: 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
+ handleCollapsedDraggableChange(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.8;margin-right:-10px;"]) : 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
  }
@@ -2,5 +2,6 @@ export var BODY_CLASS_WITH_SIDE_PANEL = 'with-side-panel';
2
2
  export var QUICK_TOP_VISIBLE_OFFSET = 200;
3
3
  export var DEFAULT_CONTEXT_STATE = {
4
4
  collapsed: true,
5
+ collapsedDraggable: [0, 0],
5
6
  quickTopVisible: false
6
7
  };
@@ -1,5 +1,6 @@
1
1
  export var EAction = /*#__PURE__*/function (EAction) {
2
2
  EAction[EAction["SET_COLLAPSED"] = 0] = "SET_COLLAPSED";
3
- EAction[EAction["SET_QUICK_TOP_VISIBLE"] = 1] = "SET_QUICK_TOP_VISIBLE";
3
+ EAction[EAction["SET_COLLAPSED_DRAGGABLE"] = 1] = "SET_COLLAPSED_DRAGGABLE";
4
+ EAction[EAction["SET_QUICK_TOP_VISIBLE"] = 2] = "SET_QUICK_TOP_VISIBLE";
4
5
  return EAction;
5
6
  }({});
@@ -2,10 +2,12 @@ export { default as useProps } from './_use-model-props';
2
2
  export { default as useChildren } from './use-children';
3
3
  export { default as useVisible } from './use-visible';
4
4
  export { default as useCollapsed } from './use-collapsed';
5
+ export { default as useCollapsedDraggable } from './use-collapsed-draggable';
5
6
  export { default as useItemsTop } from './use-items-top';
6
7
  export { default as useItemsBottom } from './use-items-bottom';
7
8
  export { default as useQuickTop } from './use-quick-top';
8
9
 
9
10
  // handlers
10
11
  export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
12
+ export { default as useHandleCollapsedDraggableChange } from './use-handle-collapsed-draggable-change';
11
13
  export { default as useHandleGoTop } from './use-handle-go-top';
@@ -0,0 +1,9 @@
1
+ import useModelProps from './_use-model-props';
2
+ import useModelState from './_use-model-state';
3
+ export default function useCollapsedDraggable() {
4
+ var _useModelProps = useModelProps(),
5
+ valueInProps = _useModelProps.collapsedDraggable;
6
+ var _useModelState = useModelState(),
7
+ valueInState = _useModelState.collapsedDraggable;
8
+ return valueInProps !== null && valueInProps !== void 0 ? valueInProps : valueInState;
9
+ }
@@ -0,0 +1,12 @@
1
+ import { useCallback } from 'react';
2
+ import { EAction } from '../enum';
3
+ import useModelDispatch from './_use-model-dispatch';
4
+ export default function useDispatchSetCollapsedDraggable() {
5
+ var dispatch = useModelDispatch();
6
+ return useCallback(function (payload) {
7
+ return dispatch({
8
+ type: EAction.SET_COLLAPSED_DRAGGABLE,
9
+ payload: payload
10
+ });
11
+ }, [dispatch]);
12
+ }
@@ -0,0 +1,12 @@
1
+ import { useCallback } from 'react';
2
+ import useDispatchSetCollapsedDraggable from './use-dispatch-set-collapsed-draggable';
3
+ import useModelProps from './_use-model-props';
4
+ export default function useHandleCollapsedDraggableChange() {
5
+ var _useModelProps = useModelProps(),
6
+ onCollapsedDraggableChange = _useModelProps.onCollapsedDraggableChange;
7
+ var dispatchSetCollapsedDraggable = useDispatchSetCollapsedDraggable();
8
+ return useCallback(function (x, y) {
9
+ dispatchSetCollapsedDraggable([x, y]);
10
+ onCollapsedDraggableChange === null || onCollapsedDraggableChange === void 0 ? void 0 : onCollapsedDraggableChange(x, y);
11
+ }, [dispatchSetCollapsedDraggable, onCollapsedDraggableChange]);
12
+ }
@@ -1,10 +1,13 @@
1
1
  import { EAction } from '../enum';
2
2
  import reduceSetCollapsed from './reduce-set-collapsed';
3
+ import reduceSetCollapsedDraggable from './reduce-set-collapsed-draggable';
3
4
  import reduceSetQuickTopVisible from './reduce-set-quick-top-visible';
4
5
  export default function reducer(state, action) {
5
6
  switch (action.type) {
6
7
  case EAction.SET_COLLAPSED:
7
8
  return reduceSetCollapsed(state, action.payload);
9
+ case EAction.SET_COLLAPSED_DRAGGABLE:
10
+ return reduceSetCollapsedDraggable(state, action.payload);
8
11
  case EAction.SET_QUICK_TOP_VISIBLE:
9
12
  return reduceSetQuickTopVisible(state, action.payload);
10
13
  default:
@@ -0,0 +1,8 @@
1
+ import update from 'immutability-helper';
2
+ export default function reduceSetCollapsedDraggable(state, payload) {
3
+ return update(state, {
4
+ collapsedDraggable: {
5
+ $set: payload
6
+ }
7
+ });
8
+ }
@@ -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, useCollapsedDraggable, useHandleCollapsedDraggableChange } 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
+ var collapsedDraggable = useCollapsedDraggable();
20
+ var handleCollapsedDraggableChange = useHandleCollapsedDraggableChange();
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: +(collapsedDraggable[0] || 0),
29
+ y: +(collapsedDraggable[1] || 0)
30
+ },
31
+ bounds: {
32
+ left: 0,
33
+ right: 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
+ handleCollapsedDraggableChange(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.8;margin-right:-10px;"]) : 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
  }
@@ -1,4 +1,5 @@
1
1
  export declare enum EAction {
2
2
  SET_COLLAPSED = 0,
3
- SET_QUICK_TOP_VISIBLE = 1
3
+ SET_COLLAPSED_DRAGGABLE = 1,
4
+ SET_QUICK_TOP_VISIBLE = 2
4
5
  }
@@ -2,8 +2,10 @@ export { default as useProps } from './_use-model-props';
2
2
  export { default as useChildren } from './use-children';
3
3
  export { default as useVisible } from './use-visible';
4
4
  export { default as useCollapsed } from './use-collapsed';
5
+ export { default as useCollapsedDraggable } from './use-collapsed-draggable';
5
6
  export { default as useItemsTop } from './use-items-top';
6
7
  export { default as useItemsBottom } from './use-items-bottom';
7
8
  export { default as useQuickTop } from './use-quick-top';
8
9
  export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
10
+ export { default as useHandleCollapsedDraggableChange } from './use-handle-collapsed-draggable-change';
9
11
  export { default as useHandleGoTop } from './use-handle-go-top';
@@ -0,0 +1 @@
1
+ export default function useCollapsedDraggable(): number[];
@@ -0,0 +1 @@
1
+ export default function useDispatchSetCollapsedDraggable(): (payload: number[]) => void;
@@ -0,0 +1 @@
1
+ export default function useHandleCollapsedDraggableChange(): (x: number, y: number) => void;
@@ -0,0 +1,2 @@
1
+ import { IModelState } from '../types';
2
+ export default function reduceSetCollapsedDraggable(state: IModelState, payload: number[]): IModelState;
@@ -3,5 +3,8 @@ import { EAction } from '../enum';
3
3
  export type TModelAction = {
4
4
  type: EAction.SET_COLLAPSED | EAction.SET_QUICK_TOP_VISIBLE;
5
5
  payload: boolean;
6
+ } | {
7
+ type: EAction.SET_COLLAPSED_DRAGGABLE;
8
+ payload: number[];
6
9
  };
7
10
  export type TModelDispatch = Dispatch<TModelAction>;
@@ -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
  }
@@ -1,4 +1,5 @@
1
1
  export interface IModelState {
2
2
  collapsed: boolean;
3
+ collapsedDraggable: number[];
3
4
  quickTopVisible: boolean;
4
5
  }
@@ -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.3",
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
  },