@alicloud/console-base-rc-side-panel 1.1.11 → 1.1.12-beta.0
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 +2 -4
- package/build/cjs/model/enum/index.js +0 -1
- package/build/cjs/model/hook/index.js +1 -15
- package/build/cjs/model/hook/use-effects.js +0 -2
- package/build/cjs/model/reducer/index.js +0 -3
- package/build/cjs/ui/index.js +4 -3
- package/build/cjs/ui/rc/side-panel-item-button/index.js +14 -28
- package/build/cjs/ui/rc/side-panel-item-button/styles.js +32 -0
- package/build/cjs/ui/rc/side-panel-item-wrap/index.js +1 -1
- package/build/cjs/ui/rc-container/collapse-aside/index.js +28 -0
- package/build/cjs/ui/rc-container/collapse-aside/styles.js +36 -0
- package/build/cjs/ui/rc-container/collapse-toggle/index.js +30 -58
- package/build/cjs/ui/rc-container/collapse-toggle/styles.js +43 -0
- package/build/cjs/ui/rc-container/index.js +11 -5
- package/build/cjs/ui/rc-container/item/index.js +55 -20
- package/build/cjs/ui/rc-container/items/index.js +27 -8
- package/build/esm/model/const/index.js +1 -3
- package/build/esm/model/enum/index.js +0 -1
- package/build/esm/model/hook/index.js +1 -3
- package/build/esm/model/hook/use-effects.js +0 -2
- package/build/esm/model/reducer/index.js +0 -3
- package/build/esm/ui/index.js +5 -4
- package/build/esm/ui/rc/side-panel-item-button/index.js +15 -25
- package/build/esm/ui/rc/side-panel-item-button/styles.js +22 -0
- package/build/esm/ui/rc/side-panel-item-wrap/index.js +1 -1
- package/build/esm/ui/rc-container/collapse-aside/index.js +19 -0
- package/build/esm/ui/rc-container/collapse-aside/styles.js +27 -0
- package/build/esm/ui/rc-container/collapse-toggle/index.js +31 -59
- package/build/esm/ui/rc-container/collapse-toggle/styles.js +34 -0
- package/build/esm/ui/rc-container/index.js +3 -3
- package/build/esm/ui/rc-container/item/index.js +56 -21
- package/build/esm/ui/rc-container/items/index.js +28 -10
- package/build/types/model/const/index.d.ts +0 -1
- package/build/types/model/enum/index.d.ts +1 -2
- package/build/types/model/hook/index.d.ts +0 -2
- package/build/types/model/types/action.d.ts +1 -1
- package/build/types/model/types/common.d.ts +49 -12
- package/build/types/model/types/props.d.ts +0 -8
- package/build/types/model/types/state.d.ts +0 -1
- package/build/types/ui/rc/side-panel-item-button/index.d.ts +2 -2
- package/build/types/ui/rc/side-panel-item-button/styles.d.ts +4 -0
- package/build/types/ui/rc-container/collapse-aside/index.d.ts +1 -0
- package/build/types/ui/rc-container/collapse-aside/styles.d.ts +3 -0
- package/build/types/ui/rc-container/collapse-toggle/styles.d.ts +10 -0
- package/build/types/ui/rc-container/index.d.ts +2 -2
- package/build/types/ui/rc-container/item/index.d.ts +1 -1
- package/build/types/ui/rc-container/items/index.d.ts +2 -6
- package/package.json +4 -2
- package/build/cjs/model/hook/use-dispatch-set-quick-top-visible.js +0 -19
- package/build/cjs/model/hook/use-effect-quick-top.js +0 -40
- package/build/cjs/model/hook/use-handle-go-top.js +0 -22
- package/build/cjs/model/hook/use-handle-set-quick-top-visible.js +0 -19
- package/build/cjs/model/hook/use-quick-top.js +0 -19
- package/build/cjs/model/reducer/reduce-set-quick-top-visible.js +0 -15
- package/build/cjs/ui/rc-container/items-bottom/index.js +0 -28
- package/build/cjs/ui/rc-container/items-bottom/quick-top/index.js +0 -29
- package/build/cjs/ui/rc-container/items-top/index.js +0 -20
- package/build/cjs/ui/types/index.js +0 -5
- package/build/esm/model/hook/use-dispatch-set-quick-top-visible.js +0 -12
- package/build/esm/model/hook/use-effect-quick-top.js +0 -33
- package/build/esm/model/hook/use-handle-go-top.js +0 -15
- package/build/esm/model/hook/use-handle-set-quick-top-visible.js +0 -12
- package/build/esm/model/hook/use-quick-top.js +0 -12
- package/build/esm/model/reducer/reduce-set-quick-top-visible.js +0 -8
- package/build/esm/ui/rc-container/items-bottom/index.js +0 -21
- package/build/esm/ui/rc-container/items-bottom/quick-top/index.js +0 -22
- package/build/esm/ui/rc-container/items-top/index.js +0 -13
- package/build/esm/ui/types/index.js +0 -1
- package/build/types/model/hook/use-dispatch-set-quick-top-visible.d.ts +0 -1
- package/build/types/model/hook/use-effect-quick-top.d.ts +0 -1
- package/build/types/model/hook/use-handle-go-top.d.ts +0 -1
- package/build/types/model/hook/use-handle-set-quick-top-visible.d.ts +0 -1
- package/build/types/model/hook/use-quick-top.d.ts +0 -6
- package/build/types/model/reducer/reduce-set-quick-top-visible.d.ts +0 -2
- package/build/types/ui/rc-container/items-bottom/index.d.ts +0 -1
- package/build/types/ui/rc-container/items-bottom/quick-top/index.d.ts +0 -1
- package/build/types/ui/rc-container/items-top/index.d.ts +0 -1
- package/build/types/ui/types/index.d.ts +0 -5
|
@@ -4,9 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ItemsBottom = ItemsBottom;
|
|
8
|
+
exports.ItemsTop = ItemsTop;
|
|
8
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
|
+
var _consoleBaseRcFlex = _interopRequireDefault(require("@alicloud/console-base-rc-flex"));
|
|
13
|
+
var _consoleBaseThemeScBase = require("@alicloud/console-base-theme-sc-base");
|
|
10
14
|
var _model = require("../../../model");
|
|
11
15
|
var _const = require("../../const");
|
|
12
16
|
var _item = _interopRequireDefault(require("../item"));
|
|
@@ -14,13 +18,28 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
14
18
|
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; }
|
|
15
19
|
function Items(_ref) {
|
|
16
20
|
var items = _ref.items;
|
|
17
|
-
var collapsed = (0, _model.useCollapsed)();
|
|
18
21
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map(function (v) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(_item.default, _objectSpread(_objectSpread({}, v), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, _const.DATA_KEY_SIDE_PANEL_ITEM, v.key), "spm", v.key)));
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
function ItemsTop() {
|
|
26
|
+
var items = (0, _model.useItemsTop)();
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
|
|
28
|
+
vertical: true,
|
|
29
|
+
flex: true
|
|
30
|
+
}, /*#__PURE__*/_react.default.createElement(Items, {
|
|
31
|
+
items: items
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
var ScHr = (0, _styledComponents.default)(_consoleBaseThemeScBase.HrBase).withConfig({
|
|
35
|
+
componentId: "sc-1h5t3jq-0"
|
|
36
|
+
})(["margin:", "px 4px;"], _const.SPACING_Y);
|
|
37
|
+
function ItemsBottom() {
|
|
38
|
+
var children = (0, _model.useChildren)();
|
|
39
|
+
var items = (0, _model.useItemsBottom)();
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
|
|
41
|
+
vertical: true
|
|
42
|
+
}, children || items.length ? /*#__PURE__*/_react.default.createElement(ScHr, null) : null, children || /*#__PURE__*/_react.default.createElement(Items, {
|
|
43
|
+
items: items
|
|
25
44
|
}));
|
|
26
45
|
}
|
|
@@ -4,8 +4,6 @@ export { default as useVisible } from './use-visible';
|
|
|
4
4
|
export { default as useCollapsed } from './use-collapsed';
|
|
5
5
|
export { default as useItemsTop } from './use-items-top';
|
|
6
6
|
export { default as useItemsBottom } from './use-items-bottom';
|
|
7
|
-
export { default as useQuickTop } from './use-quick-top';
|
|
8
7
|
|
|
9
8
|
// handlers
|
|
10
|
-
export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
|
|
11
|
-
export { default as useHandleGoTop } from './use-handle-go-top';
|
|
9
|
+
export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { EAction } from '../enum';
|
|
2
2
|
import reduceSetCollapsed from './reduce-set-collapsed';
|
|
3
|
-
import reduceSetQuickTopVisible from './reduce-set-quick-top-visible';
|
|
4
3
|
export default function reducer(state, action) {
|
|
5
4
|
switch (action.type) {
|
|
6
5
|
case EAction.SET_COLLAPSED:
|
|
7
6
|
return reduceSetCollapsed(state, action.payload);
|
|
8
|
-
case EAction.SET_QUICK_TOP_VISIBLE:
|
|
9
|
-
return reduceSetQuickTopVisible(state, action.payload);
|
|
10
7
|
default:
|
|
11
8
|
return state;
|
|
12
9
|
}
|
package/build/esm/ui/index.js
CHANGED
|
@@ -5,11 +5,12 @@ import { SIZE, Z_INDEX, mixinBgPrimary, mixinBorderTertiaryLeft } from '@aliclou
|
|
|
5
5
|
import { useVisible, useCollapsed } from '../model';
|
|
6
6
|
import { SIZE_BUTTON_WRAP_HEIGHT, SPACING_Y, DATA_KEY_J } from './const';
|
|
7
7
|
import { GlobalStyleOnBody } from './rc';
|
|
8
|
-
import { ItemsTop, ItemsBottom, CollapseToggle } from './rc-container';
|
|
8
|
+
import { ItemsTop, ItemsBottom, CollapseToggle, CollapseAside } from './rc-container';
|
|
9
9
|
var ScAside = styled.aside.withConfig({
|
|
10
10
|
componentId: "sc-1ok6knf-0"
|
|
11
|
-
})(["
|
|
12
|
-
|
|
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 ease-in-out 250ms;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;
|
|
13
14
|
}, SIZE.HEIGHT_TOP_NAV);
|
|
14
15
|
export default function Ui() {
|
|
15
16
|
var visible = useVisible();
|
|
@@ -17,5 +18,5 @@ export default function Ui() {
|
|
|
17
18
|
return visible ? /*#__PURE__*/React.createElement(ScAside, _defineProperty({
|
|
18
19
|
$collapsed: collapsed,
|
|
19
20
|
className: 'J_fixed_right_will_be_pushed_left'
|
|
20
|
-
}, DATA_KEY_J, ''), /*#__PURE__*/React.createElement(GlobalStyleOnBody, null), /*#__PURE__*/React.createElement(ItemsTop, null), /*#__PURE__*/React.createElement(ItemsBottom, null), /*#__PURE__*/React.createElement(CollapseToggle, null)) : null;
|
|
21
|
+
}, DATA_KEY_J, ''), /*#__PURE__*/React.createElement(GlobalStyleOnBody, null), /*#__PURE__*/React.createElement(ItemsTop, null), /*#__PURE__*/React.createElement(ItemsBottom, null), /*#__PURE__*/React.createElement(CollapseAside, null), /*#__PURE__*/React.createElement(CollapseToggle, null)) : null;
|
|
21
22
|
}
|
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["title", "onlyShowIcon"];
|
|
3
|
+
var _excluded = ["title", "icon", "onlyShowIcon", "active"];
|
|
4
4
|
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; }
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
-
import React from
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { SIZE_BUTTON, SIZE_BUTTON_ICON } from "../../const";
|
|
11
|
-
var ScButton = styled(Button).withConfig({
|
|
12
|
-
componentId: "sc-titsgb-0"
|
|
13
|
-
})(["border-radius:", "px;width:", "px;height:", "px;line-height:", "px;", " ", " ", " i{font-size:", "px;}svg,img{display:inline-block;width:", "px;height:", "px;vertical-align:middle;}&:hover{", "}a:link&,a:visited&{", "}"], SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, mixinBgSecondaryFade, mixinTextSecondary, function (props) {
|
|
14
|
-
return props.active ? css(["", " ", ""], mixinBgTertiaryFade, mixinShadowSDown) : null;
|
|
15
|
-
}, SIZE_BUTTON_ICON, SIZE_BUTTON_ICON, SIZE_BUTTON_ICON, mixinBgTertiaryFade, mixinTextSecondary);
|
|
16
|
-
var ScButtonIcon = styled(Button).withConfig({
|
|
17
|
-
componentId: "sc-titsgb-1"
|
|
18
|
-
})(["border-radius:", "px;width:", "px;height:", "px;line-height:", "px;svg,img{display:inline-block;width:", "px;height:", "px;vertical-align:middle;}"], SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON);
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { ButtonSize, ButtonTheme } from '@alicloud/console-base-rc-button';
|
|
8
|
+
import { renderEasyIcon } from '@alicloud/console-base-rc-easy-icon';
|
|
9
|
+
import { ScButton } from './styles';
|
|
19
10
|
|
|
20
11
|
/**
|
|
21
12
|
* 工具的按钮
|
|
22
13
|
*/
|
|
23
14
|
export default function SidePanelItemButton(_ref) {
|
|
24
15
|
var title = _ref.title,
|
|
16
|
+
icon = _ref.icon,
|
|
25
17
|
onlyShowIcon = _ref.onlyShowIcon,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}, props), {}, {
|
|
18
|
+
active = _ref.active,
|
|
19
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
20
|
+
return /*#__PURE__*/React.createElement(ScButton, _objectSpread({
|
|
30
21
|
size: ButtonSize.NONE,
|
|
31
|
-
theme: ButtonTheme.NONE
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}));
|
|
22
|
+
theme: ButtonTheme.NONE,
|
|
23
|
+
'aria-label': title,
|
|
24
|
+
label: renderEasyIcon(icon) || '',
|
|
25
|
+
$onlyShowIcon: onlyShowIcon || false,
|
|
26
|
+
$active: active || false
|
|
27
|
+
}, rest));
|
|
38
28
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import Button from '@alicloud/console-base-rc-button';
|
|
3
|
+
import { mixinTextSecondary, mixinBgSecondaryFade, mixinBgTertiaryFade, mixinShadowSDown } from '@alicloud/console-base-theme';
|
|
4
|
+
import { SIZE_BUTTON, SIZE_BUTTON_ICON } from '../../const';
|
|
5
|
+
export var ScButton = styled(Button).withConfig({
|
|
6
|
+
componentId: "sc-1fk7xls-0"
|
|
7
|
+
})(["width:", "px;height:", "px;line-height:", "px;border-radius:", "px;", " ", " i{font-size:", "px;}svg,img{display:inline-block;width:", "px;height:", "px;vertical-align:middle;}"], SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, SIZE_BUTTON, function (_ref) {
|
|
8
|
+
var $onlyShowIcon = _ref.$onlyShowIcon;
|
|
9
|
+
return !$onlyShowIcon ? css(["", " ", " &:hover{", "}a:link&,a:visited&{", "}"], mixinBgSecondaryFade, mixinTextSecondary, mixinBgTertiaryFade, mixinTextSecondary) : null;
|
|
10
|
+
}, function (_ref2) {
|
|
11
|
+
var $active = _ref2.$active;
|
|
12
|
+
return $active ? css(["", " ", ""], mixinBgTertiaryFade, mixinShadowSDown) : null;
|
|
13
|
+
}, function (_ref3) {
|
|
14
|
+
var $onlyShowIcon = _ref3.$onlyShowIcon;
|
|
15
|
+
return !$onlyShowIcon ? SIZE_BUTTON_ICON : SIZE_BUTTON;
|
|
16
|
+
}, function (_ref4) {
|
|
17
|
+
var $onlyShowIcon = _ref4.$onlyShowIcon;
|
|
18
|
+
return !$onlyShowIcon ? SIZE_BUTTON_ICON : SIZE_BUTTON;
|
|
19
|
+
}, function (_ref5) {
|
|
20
|
+
var $onlyShowIcon = _ref5.$onlyShowIcon;
|
|
21
|
+
return !$onlyShowIcon ? SIZE_BUTTON_ICON : SIZE_BUTTON;
|
|
22
|
+
});
|
|
@@ -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;
|
|
9
|
+
})(["display:flex;align-items:center;justify-content:center;position:relative;width:", "px;height:", "px;"], SIZE_BUTTON_WRAP_WIDTH, SIZE_BUTTON_WRAP_HEIGHT);
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
}, collapsedAside)) : null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
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,84 +1,56 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import styled, { css } from 'styled-components';
|
|
4
|
-
import { mixinBgAccent, mixinTextWhite } from '@alicloud/console-base-theme';
|
|
5
3
|
import Icon from '@alicloud/console-base-rc-icon';
|
|
6
4
|
import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
|
|
7
5
|
import CONF_ENV from '@alicloud/console-base-conf-env';
|
|
8
6
|
import CONF_LOCALE, { ELanguage } from '@alicloud/console-base-conf-locale';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
7
|
+
import { useCollapsed, useItemsTop, useHandleCollapsedChange } from '../../../model';
|
|
8
|
+
import { ScCollapseToggleWrap, ScCollapseToggle, ScCollapseToggleButton } from './styles';
|
|
9
|
+
import { SidePanelItemBadge } from '../../rc';
|
|
12
10
|
import intl from '../../intl';
|
|
13
|
-
/**
|
|
14
|
-
* 站点是否处于简体中文环境下,即国内站
|
|
15
|
-
*/
|
|
16
|
-
var isSimpleCN = function isSimpleCN() {
|
|
17
|
-
return CONF_ENV.SITE === 'CN' && CONF_LOCALE.LANGUAGE === ELanguage.ZH;
|
|
18
|
-
};
|
|
19
|
-
var cssToggleIn = css(["transform:translateX(-100%);"]);
|
|
20
|
-
var ScCollapseToggle = styled(SidePanelItemWrap).withConfig({
|
|
21
|
-
componentId: "sc-15z8r94-0"
|
|
22
|
-
})(["position:absolute;right:0;bottom:", "px;flex-direction:column;", ""], SPACING_Y, function (props) {
|
|
23
|
-
if (!props.collapsed) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
if (isSimpleCN()) {
|
|
27
|
-
return cssToggleIn;
|
|
28
|
-
}
|
|
29
|
-
return props.hovered ? cssToggleIn : css(["transform:translateX(-50%);"]);
|
|
30
|
-
});
|
|
31
|
-
var ScCollapseToggleButton = styled(SidePanelItemButton).withConfig({
|
|
32
|
-
componentId: "sc-15z8r94-1"
|
|
33
|
-
})(["", " ", ""], function (props) {
|
|
34
|
-
return props.active ? css(["", " ", " &:hover{", " ", "}"], mixinBgAccent, mixinTextWhite, mixinBgAccent, mixinTextWhite) : null;
|
|
35
|
-
}, isSimpleCN() ? null : function (props) {
|
|
36
|
-
return props.collapsed && !props.hovered ? css(["padding-left:4px;text-align:left;"]) : null;
|
|
37
|
-
});
|
|
38
11
|
export default function PanelToggle() {
|
|
39
|
-
var
|
|
40
|
-
|
|
12
|
+
var _useState = useState(false),
|
|
13
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14
|
+
isHovered = _useState2[0],
|
|
15
|
+
setIsHovered = _useState2[1];
|
|
41
16
|
var collapsed = useCollapsed();
|
|
42
17
|
var unread = useItemsTop().some(function (v) {
|
|
43
18
|
return v.unread;
|
|
44
19
|
});
|
|
45
20
|
var handleToggleCollapsed = useHandleCollapsedChange();
|
|
46
|
-
var _useState = useState(false),
|
|
47
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
48
|
-
isHovered = _useState2[0],
|
|
49
|
-
setIsHovered = _useState2[1];
|
|
50
21
|
var title = intl(collapsed ? 'op:toggle_visible' : 'op:toggle_hidden');
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
22
|
+
// 站点是否处于简体中文环境下,即国内站
|
|
23
|
+
var isSimpleCN = CONF_ENV.SITE === 'CN' && CONF_LOCALE.LANGUAGE === ELanguage.ZH;
|
|
24
|
+
return /*#__PURE__*/React.createElement(ScCollapseToggleWrap, null, /*#__PURE__*/React.createElement(TooltipV1, {
|
|
25
|
+
title: title,
|
|
26
|
+
placement: "left",
|
|
27
|
+
destroyTooltipOnHide: true,
|
|
28
|
+
fixed: true,
|
|
29
|
+
overlayStyle: collapsed ? {
|
|
30
|
+
transform: 'translateX(10px)'
|
|
31
|
+
} : {}
|
|
32
|
+
}, /*#__PURE__*/React.createElement(ScCollapseToggle, {
|
|
33
|
+
$hovered: isHovered,
|
|
34
|
+
$collapsed: collapsed,
|
|
35
|
+
$isSimpleCN: isSimpleCN,
|
|
54
36
|
onMouseEnter: function onMouseEnter() {
|
|
55
37
|
return setIsHovered(true);
|
|
56
38
|
},
|
|
57
39
|
onMouseLeave: function onMouseLeave() {
|
|
58
40
|
return setIsHovered(false);
|
|
59
41
|
}
|
|
60
|
-
},
|
|
61
|
-
title: title,
|
|
62
|
-
placement: "left",
|
|
63
|
-
mouseEnterDelay: collapsed ? 200 : 0 // 收起状态下 hover 时,需等待动画结束后再显示提示框,避免位置错误
|
|
64
|
-
,
|
|
65
|
-
destroyTooltipOnHide: true,
|
|
66
|
-
fixed: true,
|
|
67
|
-
overlayStyle: collapsed ? {} : {
|
|
68
|
-
transform: 'translateX(-10px)'
|
|
69
|
-
}
|
|
70
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ScCollapseToggleButton, {
|
|
71
|
-
hovered: isHovered,
|
|
72
|
-
collapsed: collapsed,
|
|
73
|
-
active: collapsed,
|
|
42
|
+
}, /*#__PURE__*/React.createElement(ScCollapseToggleButton, {
|
|
74
43
|
title: title,
|
|
75
|
-
|
|
44
|
+
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
76
45
|
type: "angle-right",
|
|
77
|
-
rotate: collapsed ? 180 :
|
|
46
|
+
rotate: collapsed ? 180 : 0
|
|
78
47
|
}),
|
|
79
|
-
onClick: handleToggleCollapsed
|
|
80
|
-
|
|
48
|
+
onClick: handleToggleCollapsed,
|
|
49
|
+
$collapsed: collapsed,
|
|
50
|
+
$isSimpleCN: isSimpleCN,
|
|
51
|
+
$hovered: isHovered
|
|
52
|
+
}), collapsed && unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
|
|
81
53
|
unread: true,
|
|
82
|
-
alignLeft: !
|
|
83
|
-
}) : null);
|
|
54
|
+
alignLeft: !isSimpleCN && !isHovered
|
|
55
|
+
}) : null)));
|
|
84
56
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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 cssToggleNone = css(["transform:translateX(0);"]);
|
|
9
|
+
var cssToggleIn = css(["transform:translateX(-100%);"]);
|
|
10
|
+
var cssToggleOut = css(["transform:translateX(-50%);"]);
|
|
11
|
+
export var ScCollapseToggle = styled(SidePanelItemWrap).withConfig({
|
|
12
|
+
componentId: "sc-xm41v7-1"
|
|
13
|
+
})(["transition:transform 250ms ease-in-out 0s;", ""], function (_ref) {
|
|
14
|
+
var $collapsed = _ref.$collapsed,
|
|
15
|
+
$isSimpleCN = _ref.$isSimpleCN,
|
|
16
|
+
$hovered = _ref.$hovered;
|
|
17
|
+
if (!$collapsed) {
|
|
18
|
+
return cssToggleNone;
|
|
19
|
+
}
|
|
20
|
+
return $isSimpleCN || $hovered ? cssToggleIn : cssToggleOut;
|
|
21
|
+
});
|
|
22
|
+
var collapsedStyles = css(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
|
|
23
|
+
var nonSimpleCnPadding = css(["padding-left:4px;text-align:left;"]);
|
|
24
|
+
export var ScCollapseToggleButton = styled(SidePanelItemButton).withConfig({
|
|
25
|
+
componentId: "sc-xm41v7-2"
|
|
26
|
+
})(["", " ", ""], function (_ref2) {
|
|
27
|
+
var $collapsed = _ref2.$collapsed;
|
|
28
|
+
return $collapsed && collapsedStyles;
|
|
29
|
+
}, function (_ref3) {
|
|
30
|
+
var $collapsed = _ref3.$collapsed,
|
|
31
|
+
$isSimpleCN = _ref3.$isSimpleCN,
|
|
32
|
+
$hovered = _ref3.$hovered;
|
|
33
|
+
return $collapsed && !$isSimpleCN && !$hovered && nonSimpleCnPadding;
|
|
34
|
+
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { default as
|
|
3
|
-
export { default as
|
|
1
|
+
export { ItemsTop, ItemsBottom } from './items';
|
|
2
|
+
export { default as CollapseToggle } from './collapse-toggle';
|
|
3
|
+
export { default as CollapseAside } from './collapse-aside';
|
|
@@ -1,47 +1,82 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
var _excluded = ["title", "unread", "mark", "tooltip", "tooltipAsHtml", "tooltipOptions", "active", "onActiveChange", "onClick", "id", "className", "style"];
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
6
9
|
import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
|
|
7
10
|
import HtmlTrusted from '@alicloud/console-base-rc-html-trusted';
|
|
11
|
+
import { useCollapsed } from '../../../model';
|
|
8
12
|
import { SidePanelItemWrap, SidePanelItemButton, SidePanelItemBadge } from '../../rc';
|
|
9
13
|
export default function Item(_ref) {
|
|
10
|
-
var
|
|
11
|
-
className = _ref.className,
|
|
12
|
-
style = _ref.style,
|
|
13
|
-
active = _ref.active,
|
|
14
|
-
title = _ref.title,
|
|
15
|
-
icon = _ref.icon,
|
|
14
|
+
var title = _ref.title,
|
|
16
15
|
unread = _ref.unread,
|
|
17
16
|
mark = _ref.mark,
|
|
18
17
|
tooltip = _ref.tooltip,
|
|
19
18
|
tooltipAsHtml = _ref.tooltipAsHtml,
|
|
20
19
|
tooltipOptions = _ref.tooltipOptions,
|
|
21
|
-
|
|
22
|
-
onClick = _ref.onClick,
|
|
20
|
+
active = _ref.active,
|
|
23
21
|
onActiveChange = _ref.onActiveChange,
|
|
22
|
+
onClick = _ref.onClick,
|
|
23
|
+
id = _ref.id,
|
|
24
|
+
className = _ref.className,
|
|
25
|
+
style = _ref.style,
|
|
24
26
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
+
var collapsed = useCollapsed();
|
|
28
|
+
var _useState = useState(),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
formatTitle = _useState2[0],
|
|
31
|
+
setFormatTitle = _useState2[1];
|
|
32
|
+
var _useState3 = useState(tooltipOptions),
|
|
33
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
34
|
+
formatTooltipOptions = _useState4[0],
|
|
35
|
+
setFormatTooltipOptions = _useState4[1];
|
|
36
|
+
var handleClick = useCallback(function (event) {
|
|
37
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
27
38
|
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
|
|
28
|
-
}, [
|
|
39
|
+
}, [onClick, onActiveChange, active]);
|
|
40
|
+
|
|
41
|
+
// 处理复杂 title
|
|
42
|
+
useEffect(function () {
|
|
43
|
+
var formatTitle = tooltip || title;
|
|
44
|
+
if (tooltipAsHtml && typeof tooltip === 'string') {
|
|
45
|
+
formatTitle = /*#__PURE__*/React.createElement(HtmlTrusted, {
|
|
46
|
+
text: tooltip
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
setFormatTitle(formatTitle);
|
|
50
|
+
}, [tooltip, title, tooltipAsHtml]);
|
|
51
|
+
|
|
52
|
+
// 侧边栏收起时,内部弹窗需全部关闭
|
|
53
|
+
useEffect(function () {
|
|
54
|
+
var formatTooltipOptions = _objectSpread({}, tooltipOptions);
|
|
55
|
+
if (collapsed) {
|
|
56
|
+
if (formatTooltipOptions.defaultOpen) {
|
|
57
|
+
formatTooltipOptions.defaultOpen = false;
|
|
58
|
+
}
|
|
59
|
+
if (formatTooltipOptions.open) {
|
|
60
|
+
formatTooltipOptions.open = false;
|
|
61
|
+
}
|
|
62
|
+
if (formatTooltipOptions.onOpenChange && typeof formatTooltipOptions.onOpenChange === 'function') {
|
|
63
|
+
formatTooltipOptions.onOpenChange(false);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
setFormatTooltipOptions(formatTooltipOptions);
|
|
67
|
+
}, [tooltipOptions, collapsed]);
|
|
29
68
|
return /*#__PURE__*/React.createElement(TooltipV1, _extends({
|
|
30
|
-
title:
|
|
31
|
-
text: tooltip
|
|
32
|
-
}) : tooltip || title,
|
|
69
|
+
title: formatTitle,
|
|
33
70
|
placement: "left",
|
|
34
71
|
destroyTooltipOnHide: true,
|
|
35
72
|
fixed: true
|
|
36
|
-
},
|
|
73
|
+
}, formatTooltipOptions), /*#__PURE__*/React.createElement(SidePanelItemWrap, {
|
|
37
74
|
id: id,
|
|
38
75
|
className: className,
|
|
39
76
|
style: style
|
|
40
77
|
}, /*#__PURE__*/React.createElement(SidePanelItemButton, _extends({
|
|
41
|
-
active: active,
|
|
42
78
|
title: title,
|
|
43
|
-
|
|
44
|
-
onlyShowIcon: onlyShowIcon,
|
|
79
|
+
active: active,
|
|
45
80
|
onClick: handleClick
|
|
46
81
|
}, rest)), /*#__PURE__*/React.createElement(SidePanelItemBadge, {
|
|
47
82
|
unread: unread,
|
|
@@ -2,18 +2,36 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
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; }
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import React from 'react';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import styled from 'styled-components';
|
|
6
|
+
import Flex from '@alicloud/console-base-rc-flex';
|
|
7
|
+
import { HrBase } from '@alicloud/console-base-theme-sc-base';
|
|
8
|
+
import { useChildren, useItemsTop, useItemsBottom } from '../../../model';
|
|
9
|
+
import { DATA_KEY_SIDE_PANEL_ITEM, SPACING_Y } from '../../const';
|
|
7
10
|
import PanelItem from '../item';
|
|
8
|
-
|
|
11
|
+
function Items(_ref) {
|
|
9
12
|
var items = _ref.items;
|
|
10
|
-
var collapsed = useCollapsed();
|
|
11
13
|
return /*#__PURE__*/React.createElement(React.Fragment, null, items.map(function (v) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
return /*#__PURE__*/React.createElement(PanelItem, _objectSpread(_objectSpread({}, v), {}, _defineProperty(_defineProperty({}, DATA_KEY_SIDE_PANEL_ITEM, v.key), "spm", v.key)));
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
export function ItemsTop() {
|
|
18
|
+
var items = useItemsTop();
|
|
19
|
+
return /*#__PURE__*/React.createElement(Flex, {
|
|
20
|
+
vertical: true,
|
|
21
|
+
flex: true
|
|
22
|
+
}, /*#__PURE__*/React.createElement(Items, {
|
|
23
|
+
items: items
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
var ScHr = styled(HrBase).withConfig({
|
|
27
|
+
componentId: "sc-1h5t3jq-0"
|
|
28
|
+
})(["margin:", "px 4px;"], SPACING_Y);
|
|
29
|
+
export function ItemsBottom() {
|
|
30
|
+
var children = useChildren();
|
|
31
|
+
var items = useItemsBottom();
|
|
32
|
+
return /*#__PURE__*/React.createElement(Flex, {
|
|
33
|
+
vertical: true
|
|
34
|
+
}, children || items.length ? /*#__PURE__*/React.createElement(ScHr, null) : null, children || /*#__PURE__*/React.createElement(Items, {
|
|
35
|
+
items: items
|
|
18
36
|
}));
|
|
19
37
|
}
|
|
@@ -4,6 +4,4 @@ export { default as useVisible } from './use-visible';
|
|
|
4
4
|
export { default as useCollapsed } from './use-collapsed';
|
|
5
5
|
export { default as useItemsTop } from './use-items-top';
|
|
6
6
|
export { default as useItemsBottom } from './use-items-bottom';
|
|
7
|
-
export { default as useQuickTop } from './use-quick-top';
|
|
8
7
|
export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
|
|
9
|
-
export { default as useHandleGoTop } from './use-handle-go-top';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Dispatch } from 'react';
|
|
2
2
|
import { EAction } from '../enum';
|
|
3
3
|
export type TModelAction = {
|
|
4
|
-
type: EAction.SET_COLLAPSED
|
|
4
|
+
type: EAction.SET_COLLAPSED;
|
|
5
5
|
payload: boolean;
|
|
6
6
|
};
|
|
7
7
|
export type TModelDispatch = Dispatch<TModelAction>;
|