@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.
- package/build/cjs/model/const/index.js +1 -0
- package/build/cjs/model/enum/index.js +2 -1
- package/build/cjs/model/hook/index.js +14 -0
- package/build/cjs/model/hook/use-collapsed-draggable.js +16 -0
- package/build/cjs/model/hook/use-dispatch-set-collapsed-draggable.js +19 -0
- package/build/cjs/model/hook/use-handle-collapsed-draggable-change.js +19 -0
- package/build/cjs/model/reducer/index.js +3 -0
- package/build/cjs/model/reducer/reduce-set-collapsed-draggable.js +15 -0
- package/build/cjs/ui/rc-container/item-collapse/collapse-widget/index.js +60 -0
- package/build/cjs/ui/rc-container/item-collapse/collapse-widget/styles.js +24 -0
- package/build/cjs/ui/rc-container/item-collapse/collapse-with-aside-widget/index.js +78 -0
- package/build/cjs/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js} +8 -5
- package/build/cjs/ui/rc-container/item-collapse/index.js +7 -70
- package/build/esm/model/const/index.js +1 -0
- package/build/esm/model/enum/index.js +2 -1
- package/build/esm/model/hook/index.js +2 -0
- package/build/esm/model/hook/use-collapsed-draggable.js +9 -0
- package/build/esm/model/hook/use-dispatch-set-collapsed-draggable.js +12 -0
- package/build/esm/model/hook/use-handle-collapsed-draggable-change.js +12 -0
- package/build/esm/model/reducer/index.js +3 -0
- package/build/esm/model/reducer/reduce-set-collapsed-draggable.js +8 -0
- package/build/esm/ui/rc-container/item-collapse/collapse-widget/index.js +50 -0
- package/build/esm/ui/rc-container/item-collapse/collapse-widget/styles.js +15 -0
- package/build/esm/ui/rc-container/item-collapse/collapse-with-aside-widget/index.js +68 -0
- package/build/esm/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js} +8 -5
- package/build/esm/ui/rc-container/item-collapse/index.js +8 -68
- package/build/types/model/enum/index.d.ts +2 -1
- package/build/types/model/hook/index.d.ts +2 -0
- package/build/types/model/hook/use-collapsed-draggable.d.ts +1 -0
- package/build/types/model/hook/use-dispatch-set-collapsed-draggable.d.ts +1 -0
- package/build/types/model/hook/use-handle-collapsed-draggable-change.d.ts +1 -0
- package/build/types/model/reducer/reduce-set-collapsed-draggable.d.ts +2 -0
- package/build/types/model/types/action.d.ts +3 -0
- package/build/types/model/types/props.d.ts +9 -1
- package/build/types/model/types/state.d.ts +1 -0
- package/build/types/ui/rc-container/item-collapse/collapse-widget/index.d.ts +1 -0
- package/build/types/ui/rc-container/item-collapse/collapse-widget/styles.d.ts +7 -0
- package/build/types/ui/rc-container/item-collapse/collapse-with-aside-widget/index.d.ts +1 -0
- package/build/types/ui/rc-container/item-collapse/{styles.d.ts → collapse-with-aside-widget/styles.d.ts} +2 -1
- 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["
|
|
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
|
+
}
|
package/build/cjs/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js}
RENAMED
|
@@ -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("
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
20
|
-
var
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export var EAction = /*#__PURE__*/function (EAction) {
|
|
2
2
|
EAction[EAction["SET_COLLAPSED"] = 0] = "SET_COLLAPSED";
|
|
3
|
-
EAction[EAction["
|
|
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,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
|
+
}
|
package/build/esm/ui/rc-container/item-collapse/{styles.js → collapse-with-aside-widget/styles.js}
RENAMED
|
@@ -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 '
|
|
3
|
+
import { SidePanelItemButton } from '../../../rc';
|
|
4
4
|
export var ScCollapseWrapper = styled.div.withConfig({
|
|
5
|
-
componentId: "sc-
|
|
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-
|
|
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-
|
|
17
|
+
componentId: "sc-140xzf5-2"
|
|
15
18
|
})(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
|
|
@@ -1,37 +1,15 @@
|
|
|
1
|
-
import
|
|
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
|
|
3
|
+
import { useCollapsed, useHandleCollapsedChange, useProps } from '../../../model';
|
|
9
4
|
import PanelItem from '../item';
|
|
10
5
|
import intl from '../../intl';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
}
|
|
@@ -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;
|
|
@@ -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
|
-
*
|
|
14
|
+
* 是否收起,通过 onCollapsedChange 实现受控
|
|
15
15
|
*/
|
|
16
16
|
collapsed?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 收起按钮的位置 [x, y],通过 onCollapsedDraggableChange 实现受控
|
|
19
|
+
*/
|
|
20
|
+
collapsedDraggable?: number[];
|
|
17
21
|
/**
|
|
18
22
|
* 顶部工具
|
|
19
23
|
*/
|
|
@@ -42,4 +46,8 @@ export interface IModelProps {
|
|
|
42
46
|
* 是否展示推入按钮
|
|
43
47
|
*/
|
|
44
48
|
onCollapsedChange?(collapsed: boolean): void;
|
|
49
|
+
/**
|
|
50
|
+
* 收起按钮的拖拽位置
|
|
51
|
+
*/
|
|
52
|
+
onCollapsedDraggableChange?(x: number, y: number): void;
|
|
45
53
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function CollapseWidget(): JSX.Element | null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SidePanelItemButton } from '../../../rc';
|
|
2
|
+
export declare const ScCollapseWrapper: import("styled-components").StyledComponent<"div", any, {
|
|
3
|
+
$isHovered: boolean;
|
|
4
|
+
}, never>;
|
|
5
|
+
export declare const ScCollapseButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, {
|
|
6
|
+
$isHovered: boolean;
|
|
7
|
+
}, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function CollapseWithAsideWidget(): JSX.Element | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { SidePanelItemButton } from '
|
|
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.
|
|
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
|
},
|