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

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 (37) hide show
  1. package/build/cjs/ui/index.js +6 -25
  2. package/build/cjs/ui/rc/side-panel-item-wrap/index.js +1 -1
  3. package/build/cjs/ui/rc-container/index.js +3 -10
  4. package/build/cjs/ui/rc-container/item/index.js +16 -16
  5. package/build/cjs/ui/rc-container/item-collapse/index.js +100 -0
  6. package/build/cjs/ui/rc-container/item-collapse/styles.js +24 -0
  7. package/build/cjs/ui/rc-container/items/index.js +3 -3
  8. package/build/cjs/ui/rc-container/quick-top/index.js +4 -15
  9. package/build/cjs/ui/styles.js +18 -0
  10. package/build/esm/ui/index.js +9 -25
  11. package/build/esm/ui/rc/side-panel-item-wrap/index.js +1 -1
  12. package/build/esm/ui/rc-container/index.js +1 -2
  13. package/build/esm/ui/rc-container/item/index.js +16 -16
  14. package/build/esm/ui/rc-container/item-collapse/index.js +90 -0
  15. package/build/esm/ui/rc-container/item-collapse/styles.js +15 -0
  16. package/build/esm/ui/rc-container/items/index.js +3 -3
  17. package/build/esm/ui/rc-container/quick-top/index.js +4 -15
  18. package/build/esm/ui/styles.js +9 -0
  19. package/build/types/model/types/common.d.ts +2 -2
  20. package/build/types/ui/rc/side-panel-item-button/index.d.ts +2 -2
  21. package/build/types/ui/rc-container/index.d.ts +1 -2
  22. package/build/types/ui/rc-container/item-collapse/index.d.ts +1 -0
  23. package/build/types/ui/rc-container/item-collapse/styles.d.ts +6 -0
  24. package/build/types/ui/styles.d.ts +3 -0
  25. package/package.json +3 -6
  26. package/build/cjs/ui/rc-container/collapse-aside/index.js +0 -29
  27. package/build/cjs/ui/rc-container/collapse-aside/styles.js +0 -36
  28. package/build/cjs/ui/rc-container/collapse-toggle/index.js +0 -67
  29. package/build/cjs/ui/rc-container/collapse-toggle/styles.js +0 -39
  30. package/build/esm/ui/rc-container/collapse-aside/index.js +0 -20
  31. package/build/esm/ui/rc-container/collapse-aside/styles.js +0 -27
  32. package/build/esm/ui/rc-container/collapse-toggle/index.js +0 -57
  33. package/build/esm/ui/rc-container/collapse-toggle/styles.js +0 -30
  34. package/build/types/ui/rc-container/collapse-aside/index.d.ts +0 -1
  35. package/build/types/ui/rc-container/collapse-aside/styles.d.ts +0 -3
  36. package/build/types/ui/rc-container/collapse-toggle/index.d.ts +0 -1
  37. package/build/types/ui/rc-container/collapse-toggle/styles.d.ts +0 -10
@@ -1,45 +1,26 @@
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 = Ui;
9
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _react = _interopRequireDefault(require("react"));
11
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
12
- var _consoleBaseTheme = require("@alicloud/console-base-theme");
13
10
  var _model = require("../model");
11
+ var _styles = require("./styles");
14
12
  var _const = require("./const");
15
13
  var _rc = require("./rc");
16
14
  var _rcContainer = require("./rc-container");
17
- 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); }
18
- 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; }
19
- var ScAside = _styledComponents.default.aside.withConfig({
20
- componentId: "sc-1ok6knf-0"
21
- })(["z-index:", ";position:fixed;top:0;right:0;bottom:0;display:flex;flex-direction:column;padding:", "px 0 ", "px 0;width:", "px;transition:transform 250ms ease-in-out 0ms;box-shadow:none;", " ", " ", " .hasTopbar &{top:", "px;}"], _consoleBaseTheme.Z_INDEX.SIDE_PANEL, _const.SPACING_Y * 1.5, _const.SIZE_BUTTON_WRAP_HEIGHT + _const.SPACING_Y, _consoleBaseTheme.SIZE.WIDTH_SIDE_PANEL, _consoleBaseTheme.mixinBgPrimary, _consoleBaseTheme.mixinBorderTertiaryLeft, function (_ref) {
22
- var $collapsed = _ref.$collapsed;
23
- return $collapsed ? (0, _styledComponents.css)(["transform:translateX(101%);border:none !important;"]) : _consoleBaseTheme.mixinBorderTertiaryLeft;
24
- }, _consoleBaseTheme.SIZE.HEIGHT_TOP_NAV);
25
- var ScCollapseAsideWrapper = _styledComponents.default.div.withConfig({
26
- componentId: "sc-1ok6knf-1"
27
- })(["", ""], function (_ref2) {
28
- var $collapsedAsideMini = _ref2.$collapsedAsideMini,
29
- $collapsed = _ref2.$collapsed;
30
- return $collapsedAsideMini && $collapsed && (0, _styledComponents.css)(["transform:scale(0.7) translateX(10%);"]);
31
- });
32
15
  function Ui() {
33
16
  var visible = (0, _model.useVisible)();
34
- var _useProps = (0, _model.useProps)(),
35
- collapsedAsideMini = _useProps.collapsedAsideMini;
36
17
  var collapsed = (0, _model.useCollapsed)();
37
- return visible ? /*#__PURE__*/_react.default.createElement(ScAside, (0, _defineProperty2.default)({
18
+ if (!visible) {
19
+ return null;
20
+ }
21
+ return /*#__PURE__*/_react.default.createElement(_styles.ScAside, (0, _defineProperty2.default)({
38
22
  $collapsed: collapsed,
39
23
  className: 'J_fixed_right_will_be_pushed_left',
40
24
  'data-spm': 'console-base_sidebar'
41
- }, _const.DATA_KEY_J, ''), /*#__PURE__*/_react.default.createElement(_rc.GlobalStyleOnBody, null), /*#__PURE__*/_react.default.createElement(_rcContainer.ItemsTop, null), /*#__PURE__*/_react.default.createElement(_rcContainer.ItemsBottom, null), /*#__PURE__*/_react.default.createElement(ScCollapseAsideWrapper, {
42
- $collapsedAsideMini: !!collapsedAsideMini,
43
- $collapsed: collapsed
44
- }, /*#__PURE__*/_react.default.createElement(_rcContainer.CollapseAside, null), /*#__PURE__*/_react.default.createElement(_rcContainer.CollapseToggle, null))) : null;
25
+ }, _const.DATA_KEY_J, ''), /*#__PURE__*/_react.default.createElement(_rc.GlobalStyleOnBody, null), /*#__PURE__*/_react.default.createElement(_rcContainer.ItemsTop, null), /*#__PURE__*/_react.default.createElement(_rcContainer.ItemsBottom, null), /*#__PURE__*/_react.default.createElement(_rcContainer.ItemCollapse, null));
45
26
  }
@@ -12,4 +12,4 @@ var _const = require("../../const");
12
12
  */
13
13
  var _default = exports.default = _styledComponents.default.div.withConfig({
14
14
  componentId: "sc-3r2cly-0"
15
- })(["display:flex;align-items:center;justify-content:center;position:relative;width:", "px;height:", "px;"], _const.SIZE_BUTTON_WRAP_WIDTH, _const.SIZE_BUTTON_WRAP_HEIGHT);
15
+ })(["position:relative;display:flex;align-items:center;justify-content:center;width:", "px;height:", "px;"], _const.SIZE_BUTTON_WRAP_WIDTH, _const.SIZE_BUTTON_WRAP_HEIGHT);
@@ -4,16 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- Object.defineProperty(exports, "CollapseAside", {
7
+ Object.defineProperty(exports, "ItemCollapse", {
8
8
  enumerable: true,
9
9
  get: function get() {
10
- return _collapseAside.default;
11
- }
12
- });
13
- Object.defineProperty(exports, "CollapseToggle", {
14
- enumerable: true,
15
- get: function get() {
16
- return _collapseToggle.default;
10
+ return _itemCollapse.default;
17
11
  }
18
12
  });
19
13
  Object.defineProperty(exports, "ItemsBottom", {
@@ -29,5 +23,4 @@ Object.defineProperty(exports, "ItemsTop", {
29
23
  }
30
24
  });
31
25
  var _items = require("./items");
32
- var _collapseToggle = _interopRequireDefault(require("./collapse-toggle"));
33
- var _collapseAside = _interopRequireDefault(require("./collapse-aside"));
26
+ var _itemCollapse = _interopRequireDefault(require("./item-collapse"));
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  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"));
@@ -56,14 +55,15 @@ var Item = function Item(_ref) {
56
55
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
57
56
  }, [onClick, onActiveChange, active]);
58
57
  (0, _react.useEffect)(function () {
59
- if (!collapsed && tooltipDefaultOpen) {
60
- openTimerRef.current = setTimeout(function () {
61
- setOpen(true);
62
- defaultOpenTimerRef.current = setTimeout(function () {
63
- setOpen(false);
64
- }, tooltipDefaultOpenDuration);
65
- }, Math.max(tooltipDefaultOpenDelay, 250));
58
+ if (collapsed || !tooltipDefaultOpen) {
59
+ return;
66
60
  }
61
+ openTimerRef.current = setTimeout(function () {
62
+ setOpen(true);
63
+ defaultOpenTimerRef.current = setTimeout(function () {
64
+ setOpen(false);
65
+ }, tooltipDefaultOpenDuration);
66
+ }, Math.max(tooltipDefaultOpenDelay, 250));
67
67
 
68
68
  // 组件卸载时,主动清除计时器
69
69
  return function () {
@@ -76,23 +76,23 @@ var Item = function Item(_ref) {
76
76
  defaultOpenTimerRef.current = null;
77
77
  }
78
78
  };
79
- }, []);
79
+ }, [collapsed, tooltipDefaultOpen, tooltipDefaultOpenDelay, tooltipDefaultOpenDuration]);
80
80
 
81
81
  // 侧边栏收起时,弹窗需关闭
82
82
  (0, _react.useEffect)(function () {
83
- if (collapsed && open) {
83
+ if (collapsed) {
84
84
  setOpen(false);
85
85
  }
86
86
  }, [collapsed]);
87
- return /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, (0, _extends2.default)({
87
+ return /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, _objectSpread(_objectSpread({
88
+ spm: 'console-base_sidebar',
88
89
  title: tooltipAsHtml && typeof tooltip === 'string' ? /*#__PURE__*/_react.default.createElement(_consoleBaseRcHtmlTrusted.default, {
89
90
  text: tooltip
90
91
  }) : tooltip || title,
91
92
  destroyTooltipOnHide: true,
92
- placement: "left",
93
- fixed: true,
94
- spm: "console-base_sidebar"
95
- }, tooltipOptions, {
93
+ placement: 'left',
94
+ fixed: true
95
+ }, tooltipOptions), {}, {
96
96
  overlayStyle: _objectSpread({
97
97
  marginLeft: '8px'
98
98
  }, tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.overlayStyle),
@@ -101,7 +101,7 @@ var Item = function Item(_ref) {
101
101
  }), /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, {
102
102
  id: id,
103
103
  className: className
104
- }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, (0, _extends2.default)({
104
+ }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, _objectSpread({
105
105
  buttonId: buttonId,
106
106
  buttonStyle: buttonStyle,
107
107
  title: title,
@@ -0,0 +1,100 @@
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 = 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");
15
+ var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
16
+ var _model = require("../../../model");
17
+ var _item = _interopRequireDefault(require("../item"));
18
+ 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';
24
+ 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
+ var _useProps = (0, _model.useProps)(),
30
+ collapsedAside = _useProps.collapsedAside;
31
+ var collapsed = (0, _model.useCollapsed)();
32
+ 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
+ if (!collapsed) {
46
+ return /*#__PURE__*/_react.default.createElement(_item.default, {
47
+ spm: 'collapse-hidden',
48
+ title: (0, _intl.default)('op:toggle_hidden'),
49
+ icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
50
+ type: "angle-right"
51
+ }),
52
+ tooltipOptions: {
53
+ mouseEnterDelay: 250
54
+ },
55
+ onClick: handleToggleCollapsed
56
+ });
57
+ }
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);
100
+ }
@@ -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 = exports.ScCollapseAside = 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-dyn7up-0"
15
+ })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", ""], function (_ref) {
16
+ var $isDragging = _ref.$isDragging;
17
+ return $isDragging ? (0, _styledComponents.css)(["cursor:move;*{pointer-events:none !important;}"]) : null;
18
+ });
19
+ var ScCollapseAside = exports.ScCollapseAside = _styledComponents.default.div.withConfig({
20
+ componentId: "sc-dyn7up-1"
21
+ })(["position:relative;display:flex;align-items:center;justify-content:center;"]);
22
+ var ScCollapseButton = exports.ScCollapseButton = (0, _styledComponents.default)(_rc.SidePanelItemButton).withConfig({
23
+ componentId: "sc-dyn7up-2"
24
+ })(["&,&:hover{", " ", "}"], _consoleBaseTheme.mixinBgAccent, _consoleBaseTheme.mixinTextWhite);
@@ -17,6 +17,9 @@ var _item = _interopRequireDefault(require("../item"));
17
17
  var _quickTop = _interopRequireDefault(require("../quick-top"));
18
18
  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; }
19
19
  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; }
20
+ var ScHr = (0, _styledComponents.default)(_consoleBaseThemeScBase.HrBase).withConfig({
21
+ componentId: "sc-1h5t3jq-0"
22
+ })(["margin:", "px 4px;"], _const.SPACING_Y);
20
23
  function Items(_ref) {
21
24
  var items = _ref.items;
22
25
  // index 为业务传入的期望展示的顺序
@@ -39,9 +42,6 @@ function ItemsTop() {
39
42
  items: items
40
43
  }));
41
44
  }
42
- var ScHr = (0, _styledComponents.default)(_consoleBaseThemeScBase.HrBase).withConfig({
43
- componentId: "sc-1h5t3jq-0"
44
- })(["margin:", "px 4px;"], _const.SPACING_Y);
45
45
  function ItemsBottom() {
46
46
  var quickTop = (0, _model.useQuickTop)();
47
47
  var children = (0, _model.useChildren)();
@@ -7,27 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = QuickTop;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
10
- var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
11
10
  var _model = require("../../../model");
12
- var _rc = require("../../rc");
11
+ var _item = _interopRequireDefault(require("../item"));
13
12
  var _intl = _interopRequireDefault(require("../../intl"));
14
13
  function QuickTop() {
15
14
  var handleGoTop = (0, _model.useHandleGoTop)();
16
- var title = (0, _intl.default)('op:back_to_top');
17
- return /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
18
- title: title,
19
- destroyTooltipOnHide: true,
20
- placement: "left",
21
- fixed: true,
22
- overlayStyle: {
23
- marginLeft: '8px'
24
- },
25
- spm: "console-base_sidebar"
26
- }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, null, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, {
27
- title: title,
15
+ return /*#__PURE__*/_react.default.createElement(_item.default, {
16
+ title: (0, _intl.default)('op:back_to_top'),
28
17
  icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
29
18
  type: "go-top"
30
19
  }),
31
20
  onClick: handleGoTop
32
- })));
21
+ });
33
22
  }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ScAside = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _consoleBaseTheme = require("@alicloud/console-base-theme");
10
+ var _const = require("./const");
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 ScAside = exports.ScAside = _styledComponents.default.aside.withConfig({
14
+ componentId: "sc-i507bi-0"
15
+ })(["z-index:", ";position:fixed;top:0;right:0;bottom:0;display:flex;flex-direction:column;padding:", "px 0;width:", "px;transition:transform 250ms ease-in-out 0ms;box-shadow:none;", " ", " ", " .hasTopbar &{top:", "px;}"], _consoleBaseTheme.Z_INDEX.SIDE_PANEL, _const.SPACING_Y * 1.5, _consoleBaseTheme.SIZE.WIDTH_SIDE_PANEL, _consoleBaseTheme.mixinBgPrimary, _consoleBaseTheme.mixinBorderTertiaryLeft, function (_ref) {
16
+ var $collapsed = _ref.$collapsed;
17
+ return $collapsed ? (0, _styledComponents.css)(["transform:translateX(101%);border:none !important;"]) : _consoleBaseTheme.mixinBorderTertiaryLeft;
18
+ }, _consoleBaseTheme.SIZE.HEIGHT_TOP_NAV);
@@ -1,35 +1,19 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import React from 'react';
3
- import styled, { css } from 'styled-components';
4
- import { SIZE, Z_INDEX, mixinBgPrimary, mixinBorderTertiaryLeft } from '@alicloud/console-base-theme';
5
- import { useVisible, useCollapsed, useProps } from '../model';
6
- import { SIZE_BUTTON_WRAP_HEIGHT, SPACING_Y, DATA_KEY_J } from './const';
3
+ import { useVisible, useCollapsed } from '../model';
4
+ import { ScAside } from './styles';
5
+ import { DATA_KEY_J } from './const';
7
6
  import { GlobalStyleOnBody } from './rc';
8
- import { ItemsTop, ItemsBottom, CollapseToggle, CollapseAside } from './rc-container';
9
- var ScAside = styled.aside.withConfig({
10
- componentId: "sc-1ok6knf-0"
11
- })(["z-index:", ";position:fixed;top:0;right:0;bottom:0;display:flex;flex-direction:column;padding:", "px 0 ", "px 0;width:", "px;transition:transform 250ms ease-in-out 0ms;box-shadow:none;", " ", " ", " .hasTopbar &{top:", "px;}"], Z_INDEX.SIDE_PANEL, SPACING_Y * 1.5, SIZE_BUTTON_WRAP_HEIGHT + SPACING_Y, SIZE.WIDTH_SIDE_PANEL, mixinBgPrimary, mixinBorderTertiaryLeft, function (_ref) {
12
- var $collapsed = _ref.$collapsed;
13
- return $collapsed ? css(["transform:translateX(101%);border:none !important;"]) : mixinBorderTertiaryLeft;
14
- }, SIZE.HEIGHT_TOP_NAV);
15
- var ScCollapseAsideWrapper = styled.div.withConfig({
16
- componentId: "sc-1ok6knf-1"
17
- })(["", ""], function (_ref2) {
18
- var $collapsedAsideMini = _ref2.$collapsedAsideMini,
19
- $collapsed = _ref2.$collapsed;
20
- return $collapsedAsideMini && $collapsed && css(["transform:scale(0.7) translateX(10%);"]);
21
- });
7
+ import { ItemsTop, ItemsBottom, ItemCollapse } from './rc-container';
22
8
  export default function Ui() {
23
9
  var visible = useVisible();
24
- var _useProps = useProps(),
25
- collapsedAsideMini = _useProps.collapsedAsideMini;
26
10
  var collapsed = useCollapsed();
27
- return visible ? /*#__PURE__*/React.createElement(ScAside, _defineProperty({
11
+ if (!visible) {
12
+ return null;
13
+ }
14
+ return /*#__PURE__*/React.createElement(ScAside, _defineProperty({
28
15
  $collapsed: collapsed,
29
16
  className: 'J_fixed_right_will_be_pushed_left',
30
17
  'data-spm': 'console-base_sidebar'
31
- }, DATA_KEY_J, ''), /*#__PURE__*/React.createElement(GlobalStyleOnBody, null), /*#__PURE__*/React.createElement(ItemsTop, null), /*#__PURE__*/React.createElement(ItemsBottom, null), /*#__PURE__*/React.createElement(ScCollapseAsideWrapper, {
32
- $collapsedAsideMini: !!collapsedAsideMini,
33
- $collapsed: collapsed
34
- }, /*#__PURE__*/React.createElement(CollapseAside, null), /*#__PURE__*/React.createElement(CollapseToggle, null))) : null;
18
+ }, DATA_KEY_J, ''), /*#__PURE__*/React.createElement(GlobalStyleOnBody, null), /*#__PURE__*/React.createElement(ItemsTop, null), /*#__PURE__*/React.createElement(ItemsBottom, null), /*#__PURE__*/React.createElement(ItemCollapse, null));
35
19
  }
@@ -6,4 +6,4 @@ import { SIZE_BUTTON_WRAP_WIDTH, SIZE_BUTTON_WRAP_HEIGHT } from '../../const';
6
6
  */
7
7
  export default styled.div.withConfig({
8
8
  componentId: "sc-3r2cly-0"
9
- })(["display:flex;align-items:center;justify-content:center;position:relative;width:", "px;height:", "px;"], SIZE_BUTTON_WRAP_WIDTH, SIZE_BUTTON_WRAP_HEIGHT);
9
+ })(["position:relative;display:flex;align-items:center;justify-content:center;width:", "px;height:", "px;"], SIZE_BUTTON_WRAP_WIDTH, SIZE_BUTTON_WRAP_HEIGHT);
@@ -1,3 +1,2 @@
1
1
  export { ItemsTop, ItemsBottom } from './items';
2
- export { default as CollapseToggle } from './collapse-toggle';
3
- export { default as CollapseAside } from './collapse-aside';
2
+ export { default as ItemCollapse } from './item-collapse';
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  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";
@@ -46,14 +45,15 @@ var Item = function Item(_ref) {
46
45
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
47
46
  }, [onClick, onActiveChange, active]);
48
47
  useEffect(function () {
49
- if (!collapsed && tooltipDefaultOpen) {
50
- openTimerRef.current = setTimeout(function () {
51
- setOpen(true);
52
- defaultOpenTimerRef.current = setTimeout(function () {
53
- setOpen(false);
54
- }, tooltipDefaultOpenDuration);
55
- }, Math.max(tooltipDefaultOpenDelay, 250));
48
+ if (collapsed || !tooltipDefaultOpen) {
49
+ return;
56
50
  }
51
+ openTimerRef.current = setTimeout(function () {
52
+ setOpen(true);
53
+ defaultOpenTimerRef.current = setTimeout(function () {
54
+ setOpen(false);
55
+ }, tooltipDefaultOpenDuration);
56
+ }, Math.max(tooltipDefaultOpenDelay, 250));
57
57
 
58
58
  // 组件卸载时,主动清除计时器
59
59
  return function () {
@@ -66,23 +66,23 @@ var Item = function Item(_ref) {
66
66
  defaultOpenTimerRef.current = null;
67
67
  }
68
68
  };
69
- }, []);
69
+ }, [collapsed, tooltipDefaultOpen, tooltipDefaultOpenDelay, tooltipDefaultOpenDuration]);
70
70
 
71
71
  // 侧边栏收起时,弹窗需关闭
72
72
  useEffect(function () {
73
- if (collapsed && open) {
73
+ if (collapsed) {
74
74
  setOpen(false);
75
75
  }
76
76
  }, [collapsed]);
77
- return /*#__PURE__*/React.createElement(TooltipV1, _extends({
77
+ return /*#__PURE__*/React.createElement(TooltipV1, _objectSpread(_objectSpread({
78
+ spm: 'console-base_sidebar',
78
79
  title: tooltipAsHtml && typeof tooltip === 'string' ? /*#__PURE__*/React.createElement(HtmlTrusted, {
79
80
  text: tooltip
80
81
  }) : tooltip || title,
81
82
  destroyTooltipOnHide: true,
82
- placement: "left",
83
- fixed: true,
84
- spm: "console-base_sidebar"
85
- }, tooltipOptions, {
83
+ placement: 'left',
84
+ fixed: true
85
+ }, tooltipOptions), {}, {
86
86
  overlayStyle: _objectSpread({
87
87
  marginLeft: '8px'
88
88
  }, tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.overlayStyle),
@@ -91,7 +91,7 @@ var Item = function Item(_ref) {
91
91
  }), /*#__PURE__*/React.createElement(SidePanelItemWrap, {
92
92
  id: id,
93
93
  className: className
94
- }, /*#__PURE__*/React.createElement(SidePanelItemButton, _extends({
94
+ }, /*#__PURE__*/React.createElement(SidePanelItemButton, _objectSpread({
95
95
  buttonId: buttonId,
96
96
  buttonStyle: buttonStyle,
97
97
  title: title,
@@ -0,0 +1,90 @@
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';
7
+ import Icon from '@alicloud/console-base-rc-icon';
8
+ import { useCollapsed, useHandleCollapsedChange, useProps, useItemsTop } from '../../../model';
9
+ import PanelItem from '../item';
10
+ 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';
14
+ export default function ItemCollapse() {
15
+ var _useState = useState(false),
16
+ _useState2 = _slicedToArray(_useState, 2),
17
+ isDragging = _useState2[0],
18
+ setIsDragging = _useState2[1];
19
+ var _useProps = useProps(),
20
+ collapsedAside = _useProps.collapsedAside;
21
+ var collapsed = useCollapsed();
22
+ 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
+ if (!collapsed) {
36
+ return /*#__PURE__*/React.createElement(PanelItem, {
37
+ spm: 'collapse-hidden',
38
+ title: intl('op:toggle_hidden'),
39
+ icon: /*#__PURE__*/React.createElement(Icon, {
40
+ type: "angle-right"
41
+ }),
42
+ tooltipOptions: {
43
+ mouseEnterDelay: 250
44
+ },
45
+ onClick: handleToggleCollapsed
46
+ });
47
+ }
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);
90
+ }
@@ -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-dyn7up-0"
6
+ })(["z-index:998;position:fixed;right:0;bottom:9px;*{-webkit-user-drag:none !important;}", ""], function (_ref) {
7
+ var $isDragging = _ref.$isDragging;
8
+ return $isDragging ? css(["cursor:move;*{pointer-events:none !important;}"]) : null;
9
+ });
10
+ export var ScCollapseAside = styled.div.withConfig({
11
+ componentId: "sc-dyn7up-1"
12
+ })(["position:relative;display:flex;align-items:center;justify-content:center;"]);
13
+ export var ScCollapseButton = styled(SidePanelItemButton).withConfig({
14
+ componentId: "sc-dyn7up-2"
15
+ })(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
@@ -9,6 +9,9 @@ import { useChildren, useItemsTop, useItemsBottom, useQuickTop } from '../../../
9
9
  import { DATA_KEY_SIDE_PANEL_ITEM, SPACING_Y } from '../../const';
10
10
  import PanelItem from '../item';
11
11
  import QuickTop from '../quick-top';
12
+ var ScHr = styled(HrBase).withConfig({
13
+ componentId: "sc-1h5t3jq-0"
14
+ })(["margin:", "px 4px;"], SPACING_Y);
12
15
  function Items(_ref) {
13
16
  var items = _ref.items;
14
17
  // index 为业务传入的期望展示的顺序
@@ -31,9 +34,6 @@ export function ItemsTop() {
31
34
  items: items
32
35
  }));
33
36
  }
34
- var ScHr = styled(HrBase).withConfig({
35
- componentId: "sc-1h5t3jq-0"
36
- })(["margin:", "px 4px;"], SPACING_Y);
37
37
  export function ItemsBottom() {
38
38
  var quickTop = useQuickTop();
39
39
  var children = useChildren();
@@ -1,26 +1,15 @@
1
1
  import React from 'react';
2
2
  import Icon from '@alicloud/console-base-rc-icon';
3
- import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
4
3
  import { useHandleGoTop } from '../../../model';
5
- import { SidePanelItemWrap, SidePanelItemButton } from '../../rc';
4
+ import PanelItem from '../item';
6
5
  import intl from '../../intl';
7
6
  export default function QuickTop() {
8
7
  var handleGoTop = useHandleGoTop();
9
- var title = intl('op:back_to_top');
10
- return /*#__PURE__*/React.createElement(TooltipV1, {
11
- title: title,
12
- destroyTooltipOnHide: true,
13
- placement: "left",
14
- fixed: true,
15
- overlayStyle: {
16
- marginLeft: '8px'
17
- },
18
- spm: "console-base_sidebar"
19
- }, /*#__PURE__*/React.createElement(SidePanelItemWrap, null, /*#__PURE__*/React.createElement(SidePanelItemButton, {
20
- title: title,
8
+ return /*#__PURE__*/React.createElement(PanelItem, {
9
+ title: intl('op:back_to_top'),
21
10
  icon: /*#__PURE__*/React.createElement(Icon, {
22
11
  type: "go-top"
23
12
  }),
24
13
  onClick: handleGoTop
25
- })));
14
+ });
26
15
  }
@@ -0,0 +1,9 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { SIZE, Z_INDEX, mixinBgPrimary, mixinBorderTertiaryLeft } from '@alicloud/console-base-theme';
3
+ import { SPACING_Y } from './const';
4
+ export var ScAside = styled.aside.withConfig({
5
+ componentId: "sc-i507bi-0"
6
+ })(["z-index:", ";position:fixed;top:0;right:0;bottom:0;display:flex;flex-direction:column;padding:", "px 0;width:", "px;transition:transform 250ms ease-in-out 0ms;box-shadow:none;", " ", " ", " .hasTopbar &{top:", "px;}"], Z_INDEX.SIDE_PANEL, SPACING_Y * 1.5, SIZE.WIDTH_SIDE_PANEL, mixinBgPrimary, mixinBorderTertiaryLeft, function (_ref) {
7
+ var $collapsed = _ref.$collapsed;
8
+ return $collapsed ? css(["transform:translateX(101%);border:none !important;"]) : mixinBorderTertiaryLeft;
9
+ }, SIZE.HEIGHT_TOP_NAV);
@@ -1,6 +1,6 @@
1
1
  import { EasyIconValue } from '@alicloud/console-base-rc-easy-icon';
2
2
  import { TooltipPropsV1 } from '@alicloud/console-base-rc-tooltip';
3
- export interface SidePanelItemButtonProps {
3
+ export interface ISidePanelItemButtonProps {
4
4
  /**
5
5
  * 入口按钮 ID
6
6
  */
@@ -54,7 +54,7 @@ export interface SidePanelItemButtonProps {
54
54
  */
55
55
  onActiveChange?(active: boolean): void;
56
56
  }
57
- export interface ISidePanelItemProps extends SidePanelItemButtonProps {
57
+ export interface ISidePanelItemProps extends ISidePanelItemButtonProps {
58
58
  /**
59
59
  * 自定义展示顺序,越小越靠前,不传则按照消息传入的顺序展示
60
60
  */
@@ -1,5 +1,5 @@
1
- import { SidePanelItemButtonProps } from '../../../model/types/common';
1
+ import { ISidePanelItemButtonProps } from '../../../model/types/common';
2
2
  /**
3
3
  * 工具的按钮
4
4
  */
5
- export default function SidePanelItemButton({ title, icon, onlyShowIcon, active, buttonId, buttonStyle, ...rest }: SidePanelItemButtonProps): JSX.Element;
5
+ export default function SidePanelItemButton({ title, icon, onlyShowIcon, active, buttonId, buttonStyle, ...rest }: ISidePanelItemButtonProps): JSX.Element;
@@ -1,3 +1,2 @@
1
1
  export { ItemsTop, ItemsBottom } from './items';
2
- export { default as CollapseToggle } from './collapse-toggle';
3
- export { default as CollapseAside } from './collapse-aside';
2
+ export { default as ItemCollapse } from './item-collapse';
@@ -0,0 +1 @@
1
+ export default function ItemCollapse(): JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ import { SidePanelItemButton } from '../../rc';
2
+ export declare const ScCollapseWrapper: import("styled-components").StyledComponent<"div", any, {
3
+ $isDragging: boolean;
4
+ }, never>;
5
+ export declare const ScCollapseAside: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const ScCollapseButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, {}, never>;
@@ -0,0 +1,3 @@
1
+ export declare const ScAside: import("styled-components").StyledComponent<"aside", any, {
2
+ $collapsed: boolean;
3
+ }, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/console-base-rc-side-panel",
3
- "version": "1.1.23",
3
+ "version": "1.1.24-beta.1",
4
4
  "description": "ConsoleBase 组件 - 右侧边栏",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -23,7 +23,6 @@
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-transition-group": "^4.4.6",
27
26
  "@types/styled-components": "^5.1.26",
28
27
  "react": "^17.0.2",
29
28
  "styled-components": "^5.3.10",
@@ -34,8 +33,6 @@
34
33
  "styled-components": ">=5"
35
34
  },
36
35
  "dependencies": {
37
- "@alicloud/console-base-conf-env": "^1.6.9",
38
- "@alicloud/console-base-conf-locale": "^1.8.9",
39
36
  "@alicloud/console-base-intl-factory-basic": "^1.6.9",
40
37
  "@alicloud/console-base-rc-button": "^1.8.2",
41
38
  "@alicloud/console-base-rc-easy-icon": "^1.0.1",
@@ -48,10 +45,10 @@
48
45
  "@alicloud/console-base-theme-sc-base": "^1.6.4",
49
46
  "@alicloud/mere-dom": "^1.8.0",
50
47
  "@alicloud/react-hook-is-unmounted": "^1.3.4",
51
- "@alicloud/react-hook-mouse-hover": "^1.0.2",
52
48
  "@alicloud/typescript-missing-helpers": "^1.3.4",
49
+ "ahooks": "^3.7.11",
53
50
  "immutability-helper": "^3.1.1",
54
- "react-transition-group": "^4.4.5"
51
+ "react-draggable": "^4.4.6"
55
52
  },
56
53
  "scripts": {
57
54
  "start": "breezr start-storybook",
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = CollapseAside;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _model = require("../../../model");
10
- var _styles = require("./styles");
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
- function CollapseAside() {
14
- var collapseAsideRef = (0, _react.useRef)(null);
15
- var _useProps = (0, _model.useProps)(),
16
- collapsedAside = _useProps.collapsedAside;
17
- var collapsed = (0, _model.useCollapsed)();
18
- return collapsedAside ? /*#__PURE__*/_react.default.createElement(_styles.ScCSSTransition, {
19
- nodeRef: collapseAsideRef,
20
- in: collapsed,
21
- classNames: "cb-collapse-aside",
22
- timeout: 200,
23
- mountOnEnter: true,
24
- unmountOnExit: true
25
- }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseAsideWrap, {
26
- ref: collapseAsideRef,
27
- "data-spm-click": "gostr=/aliyun;locaid=dcollapsed-aside"
28
- }, collapsedAside)) : null;
29
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.ScCollapseAsideWrap = exports.ScCSSTransition = void 0;
8
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
- var _reactTransitionGroup = require("react-transition-group");
10
- 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); }
11
- 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; }
12
- var KfZoomBigIn = (0, _styledComponents.keyframes)(["0%{transform:scale(0);opacity:0;}100%{transform:scale(1);opacity:1;}"]);
13
- var ScCSSTransition = exports.ScCSSTransition = (0, _styledComponents.default)(_reactTransitionGroup.CSSTransition).withConfig({
14
- componentId: "sc-1slnea7-0"
15
- })(["&.", "{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1);animation-duration:", ";animation-fill-mode:both;animation-play-state:paused;}&.", "{animation-name:", ";animation-play-state:running;}&.", "{pointer-events:none;animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86);animation-duration:", ";animation-fill-mode:both;animation-play-state:paused;}&.", "{animation-name:", ";animation-direction:reverse;animation-play-state:running;}"], function (_ref) {
16
- var classNames = _ref.classNames;
17
- return "".concat(classNames, "-enter");
18
- }, function (_ref2) {
19
- var timeout = _ref2.timeout;
20
- return "".concat(timeout, "ms");
21
- }, function (_ref3) {
22
- var classNames = _ref3.classNames;
23
- return "".concat(classNames, "-enter-active");
24
- }, KfZoomBigIn, function (_ref4) {
25
- var classNames = _ref4.classNames;
26
- return "".concat(classNames, "-exit");
27
- }, function (_ref5) {
28
- var timeout = _ref5.timeout;
29
- return "".concat(timeout, "ms");
30
- }, function (_ref6) {
31
- var classNames = _ref6.classNames;
32
- return "".concat(classNames, "-exit-active");
33
- }, KfZoomBigIn);
34
- var ScCollapseAsideWrap = exports.ScCollapseAsideWrap = _styledComponents.default.div.withConfig({
35
- componentId: "sc-1slnea7-1"
36
- })(["position:absolute;right:100%;bottom:50px;margin-right:10px;"]);
@@ -1,67 +0,0 @@
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 = PanelToggle;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
12
- var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
13
- var _model = require("../../../model");
14
- var _styles = require("./styles");
15
- var _rc = require("../../rc");
16
- var _intl = _interopRequireDefault(require("../../intl"));
17
- 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); }
18
- 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; }
19
- function PanelToggle() {
20
- var _useState = (0, _react.useState)(false),
21
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
- isHovered = _useState2[0],
23
- setIsHovered = _useState2[1];
24
- var _useProps = (0, _model.useProps)(),
25
- collapsedAside = _useProps.collapsedAside;
26
- var collapsed = (0, _model.useCollapsed)();
27
- var unread = (0, _model.useItemsTop)().some(function (v) {
28
- return v.unread;
29
- });
30
- var handleToggleCollapsed = (0, _model.useHandleCollapsedChange)();
31
- var title = (0, _intl.default)(collapsed ? 'op:toggle_visible' : 'op:toggle_hidden');
32
- return /*#__PURE__*/_react.default.createElement(_styles.ScCollapseToggleWrap, null, /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
33
- title: title,
34
- placement: "left",
35
- destroyTooltipOnHide: true,
36
- fixed: true,
37
- mouseEnterDelay: !collapsedAside && collapsed ? 250 : 0,
38
- overlayStyle: {
39
- marginLeft: '8px'
40
- },
41
- spm: "console-base_sidebar"
42
- }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseToggle, {
43
- $hovered: isHovered,
44
- $collapsed: collapsed,
45
- $collapsedAside: !!collapsedAside,
46
- onMouseEnter: function onMouseEnter() {
47
- return setIsHovered(true);
48
- },
49
- onMouseLeave: function onMouseLeave() {
50
- return setIsHovered(false);
51
- }
52
- }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseToggleButton, {
53
- spm: collapsed ? 'collapse-visible' : 'collapse-hidden',
54
- title: title,
55
- icon: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
56
- type: "angle-right",
57
- rotate: collapsed ? 180 : 0
58
- }),
59
- onClick: handleToggleCollapsed,
60
- $collapsed: collapsed,
61
- $collapsedAside: !!collapsedAside,
62
- $hovered: isHovered
63
- }), collapsed && unread ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
64
- unread: true,
65
- alignLeft: true
66
- }) : null)));
67
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.ScCollapseToggleWrap = exports.ScCollapseToggleButton = exports.ScCollapseToggle = void 0;
8
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
- var _consoleBaseTheme = require("@alicloud/console-base-theme");
10
- var _rc = require("../../rc");
11
- var _const = require("../../const");
12
- 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); }
13
- 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; }
14
- var ScCollapseToggleWrap = exports.ScCollapseToggleWrap = _styledComponents.default.div.withConfig({
15
- componentId: "sc-xm41v7-0"
16
- })(["position:absolute;right:0;bottom:", "px;"], _const.SPACING_Y);
17
- var cssToggleIn = (0, _styledComponents.css)(["transform:translateX(-101%);"]);
18
- var cssToggleOut = (0, _styledComponents.css)(["transform:translateX(-50.5%);"]);
19
- var ScCollapseToggle = exports.ScCollapseToggle = (0, _styledComponents.default)(_rc.SidePanelItemWrap).withConfig({
20
- componentId: "sc-xm41v7-1"
21
- })(["transform:translateX(0);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
22
- var $collapsed = _ref.$collapsed,
23
- $collapsedAside = _ref.$collapsedAside,
24
- $hovered = _ref.$hovered;
25
- return $collapsed && ($collapsedAside || $hovered ? cssToggleIn : cssToggleOut);
26
- });
27
- var collapsedStyles = (0, _styledComponents.css)(["&,&:hover{", " ", "}"], _consoleBaseTheme.mixinBgAccent, _consoleBaseTheme.mixinTextWhite);
28
- var nonSimpleCnPadding = (0, _styledComponents.css)(["padding-left:4px;text-align:left;"]);
29
- var ScCollapseToggleButton = exports.ScCollapseToggleButton = (0, _styledComponents.default)(_rc.SidePanelItemButton).withConfig({
30
- componentId: "sc-xm41v7-2"
31
- })(["", " ", ""], function (_ref2) {
32
- var $collapsed = _ref2.$collapsed;
33
- return $collapsed && collapsedStyles;
34
- }, function (_ref3) {
35
- var $collapsed = _ref3.$collapsed,
36
- $collapsedAside = _ref3.$collapsedAside,
37
- $hovered = _ref3.$hovered;
38
- return $collapsed && !$collapsedAside && !$hovered && nonSimpleCnPadding;
39
- });
@@ -1,20 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import { useCollapsed, useProps } from '../../../model';
3
- import { ScCollapseAsideWrap, ScCSSTransition } from './styles';
4
- export default function CollapseAside() {
5
- var collapseAsideRef = useRef(null);
6
- var _useProps = useProps(),
7
- collapsedAside = _useProps.collapsedAside;
8
- var collapsed = useCollapsed();
9
- return collapsedAside ? /*#__PURE__*/React.createElement(ScCSSTransition, {
10
- nodeRef: collapseAsideRef,
11
- in: collapsed,
12
- classNames: "cb-collapse-aside",
13
- timeout: 200,
14
- mountOnEnter: true,
15
- unmountOnExit: true
16
- }, /*#__PURE__*/React.createElement(ScCollapseAsideWrap, {
17
- ref: collapseAsideRef,
18
- "data-spm-click": "gostr=/aliyun;locaid=dcollapsed-aside"
19
- }, collapsedAside)) : null;
20
- }
@@ -1,27 +0,0 @@
1
- import styled, { keyframes } from 'styled-components';
2
- import { CSSTransition } from 'react-transition-group';
3
- var KfZoomBigIn = keyframes(["0%{transform:scale(0);opacity:0;}100%{transform:scale(1);opacity:1;}"]);
4
- export var ScCSSTransition = styled(CSSTransition).withConfig({
5
- componentId: "sc-1slnea7-0"
6
- })(["&.", "{animation-timing-function:cubic-bezier(0.08,0.82,0.17,1);animation-duration:", ";animation-fill-mode:both;animation-play-state:paused;}&.", "{animation-name:", ";animation-play-state:running;}&.", "{pointer-events:none;animation-timing-function:cubic-bezier(0.78,0.14,0.15,0.86);animation-duration:", ";animation-fill-mode:both;animation-play-state:paused;}&.", "{animation-name:", ";animation-direction:reverse;animation-play-state:running;}"], function (_ref) {
7
- var classNames = _ref.classNames;
8
- return "".concat(classNames, "-enter");
9
- }, function (_ref2) {
10
- var timeout = _ref2.timeout;
11
- return "".concat(timeout, "ms");
12
- }, function (_ref3) {
13
- var classNames = _ref3.classNames;
14
- return "".concat(classNames, "-enter-active");
15
- }, KfZoomBigIn, function (_ref4) {
16
- var classNames = _ref4.classNames;
17
- return "".concat(classNames, "-exit");
18
- }, function (_ref5) {
19
- var timeout = _ref5.timeout;
20
- return "".concat(timeout, "ms");
21
- }, function (_ref6) {
22
- var classNames = _ref6.classNames;
23
- return "".concat(classNames, "-exit-active");
24
- }, KfZoomBigIn);
25
- export var ScCollapseAsideWrap = styled.div.withConfig({
26
- componentId: "sc-1slnea7-1"
27
- })(["position:absolute;right:100%;bottom:50px;margin-right:10px;"]);
@@ -1,57 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import React, { useState } from 'react';
3
- import Icon from '@alicloud/console-base-rc-icon';
4
- import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
5
- import { useCollapsed, useItemsTop, useHandleCollapsedChange, useProps } from '../../../model';
6
- import { ScCollapseToggleWrap, ScCollapseToggle, ScCollapseToggleButton } from './styles';
7
- import { SidePanelItemBadge } from '../../rc';
8
- import intl from '../../intl';
9
- export default function PanelToggle() {
10
- var _useState = useState(false),
11
- _useState2 = _slicedToArray(_useState, 2),
12
- isHovered = _useState2[0],
13
- setIsHovered = _useState2[1];
14
- var _useProps = useProps(),
15
- collapsedAside = _useProps.collapsedAside;
16
- var collapsed = useCollapsed();
17
- var unread = useItemsTop().some(function (v) {
18
- return v.unread;
19
- });
20
- var handleToggleCollapsed = useHandleCollapsedChange();
21
- var title = intl(collapsed ? 'op:toggle_visible' : 'op:toggle_hidden');
22
- return /*#__PURE__*/React.createElement(ScCollapseToggleWrap, null, /*#__PURE__*/React.createElement(TooltipV1, {
23
- title: title,
24
- placement: "left",
25
- destroyTooltipOnHide: true,
26
- fixed: true,
27
- mouseEnterDelay: !collapsedAside && collapsed ? 250 : 0,
28
- overlayStyle: {
29
- marginLeft: '8px'
30
- },
31
- spm: "console-base_sidebar"
32
- }, /*#__PURE__*/React.createElement(ScCollapseToggle, {
33
- $hovered: isHovered,
34
- $collapsed: collapsed,
35
- $collapsedAside: !!collapsedAside,
36
- onMouseEnter: function onMouseEnter() {
37
- return setIsHovered(true);
38
- },
39
- onMouseLeave: function onMouseLeave() {
40
- return setIsHovered(false);
41
- }
42
- }, /*#__PURE__*/React.createElement(ScCollapseToggleButton, {
43
- spm: collapsed ? 'collapse-visible' : 'collapse-hidden',
44
- title: title,
45
- icon: /*#__PURE__*/React.createElement(Icon, {
46
- type: "angle-right",
47
- rotate: collapsed ? 180 : 0
48
- }),
49
- onClick: handleToggleCollapsed,
50
- $collapsed: collapsed,
51
- $collapsedAside: !!collapsedAside,
52
- $hovered: isHovered
53
- }), collapsed && unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
54
- unread: true,
55
- alignLeft: true
56
- }) : null)));
57
- }
@@ -1,30 +0,0 @@
1
- import styled, { css } from 'styled-components';
2
- import { mixinBgAccent, mixinTextWhite } from '@alicloud/console-base-theme';
3
- import { SidePanelItemWrap, SidePanelItemButton } from '../../rc';
4
- import { SPACING_Y } from '../../const';
5
- export var ScCollapseToggleWrap = styled.div.withConfig({
6
- componentId: "sc-xm41v7-0"
7
- })(["position:absolute;right:0;bottom:", "px;"], SPACING_Y);
8
- var cssToggleIn = css(["transform:translateX(-101%);"]);
9
- var cssToggleOut = css(["transform:translateX(-50.5%);"]);
10
- export var ScCollapseToggle = styled(SidePanelItemWrap).withConfig({
11
- componentId: "sc-xm41v7-1"
12
- })(["transform:translateX(0);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
13
- var $collapsed = _ref.$collapsed,
14
- $collapsedAside = _ref.$collapsedAside,
15
- $hovered = _ref.$hovered;
16
- return $collapsed && ($collapsedAside || $hovered ? cssToggleIn : cssToggleOut);
17
- });
18
- var collapsedStyles = css(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
19
- var nonSimpleCnPadding = css(["padding-left:4px;text-align:left;"]);
20
- export var ScCollapseToggleButton = styled(SidePanelItemButton).withConfig({
21
- componentId: "sc-xm41v7-2"
22
- })(["", " ", ""], function (_ref2) {
23
- var $collapsed = _ref2.$collapsed;
24
- return $collapsed && collapsedStyles;
25
- }, function (_ref3) {
26
- var $collapsed = _ref3.$collapsed,
27
- $collapsedAside = _ref3.$collapsedAside,
28
- $hovered = _ref3.$hovered;
29
- return $collapsed && !$collapsedAside && !$hovered && nonSimpleCnPadding;
30
- });
@@ -1 +0,0 @@
1
- export default function CollapseAside(): JSX.Element | null;
@@ -1,3 +0,0 @@
1
- import { CSSTransition } from 'react-transition-group';
2
- export declare const ScCSSTransition: import("styled-components").StyledComponent<typeof CSSTransition, any, {}, never>;
3
- export declare const ScCollapseAsideWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1 +0,0 @@
1
- export default function PanelToggle(): JSX.Element;
@@ -1,10 +0,0 @@
1
- import { SidePanelItemButton } from '../../rc';
2
- interface IScProps {
3
- $collapsed: boolean;
4
- $collapsedAside: boolean;
5
- $hovered: boolean;
6
- }
7
- export declare const ScCollapseToggleWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
8
- export declare const ScCollapseToggle: import("styled-components").StyledComponent<"div", any, IScProps, never>;
9
- export declare const ScCollapseToggleButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, IScProps, never>;
10
- export {};