@alicloud/console-base-rc-side-panel 1.1.15 → 1.1.17

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.
@@ -10,8 +10,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
12
12
  var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
13
- var _consoleBaseConfEnv = _interopRequireDefault(require("@alicloud/console-base-conf-env"));
14
- var _consoleBaseConfLocale = _interopRequireWildcard(require("@alicloud/console-base-conf-locale"));
15
13
  var _model = require("../../../model");
16
14
  var _styles = require("./styles");
17
15
  var _rc = require("../../rc");
@@ -23,26 +21,27 @@ function PanelToggle() {
23
21
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
24
22
  isHovered = _useState2[0],
25
23
  setIsHovered = _useState2[1];
24
+ var _useProps = (0, _model.useProps)(),
25
+ collapsedAside = _useProps.collapsedAside;
26
26
  var collapsed = (0, _model.useCollapsed)();
27
27
  var unread = (0, _model.useItemsTop)().some(function (v) {
28
28
  return v.unread;
29
29
  });
30
30
  var handleToggleCollapsed = (0, _model.useHandleCollapsedChange)();
31
31
  var title = (0, _intl.default)(collapsed ? 'op:toggle_visible' : 'op:toggle_hidden');
32
- // 站点是否处于简体中文环境下,即国内站
33
- var isSimpleCN = _consoleBaseConfEnv.default.SITE === 'CN' && _consoleBaseConfLocale.default.LANGUAGE === _consoleBaseConfLocale.ELanguage.ZH;
34
32
  return /*#__PURE__*/_react.default.createElement(_styles.ScCollapseToggleWrap, null, /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
35
33
  title: title,
36
34
  placement: "left",
37
35
  destroyTooltipOnHide: true,
38
36
  fixed: true,
37
+ mouseEnterDelay: !collapsedAside && collapsed ? 250 : 0,
39
38
  overlayStyle: {
40
39
  marginLeft: '8px'
41
40
  }
42
41
  }, /*#__PURE__*/_react.default.createElement(_styles.ScCollapseToggle, {
43
42
  $hovered: isHovered,
44
43
  $collapsed: collapsed,
45
- $isSimpleCN: isSimpleCN,
44
+ $collapsedAside: !!collapsedAside,
46
45
  onMouseEnter: function onMouseEnter() {
47
46
  return setIsHovered(true);
48
47
  },
@@ -57,10 +56,10 @@ function PanelToggle() {
57
56
  }),
58
57
  onClick: handleToggleCollapsed,
59
58
  $collapsed: collapsed,
60
- $isSimpleCN: isSimpleCN,
59
+ $collapsedAside: !!collapsedAside,
61
60
  $hovered: isHovered
62
61
  }), collapsed && unread ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
63
62
  unread: true,
64
- alignLeft: !isSimpleCN && !isHovered
63
+ alignLeft: true
65
64
  }) : null)));
66
65
  }
@@ -14,19 +14,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
14
14
  var ScCollapseToggleWrap = exports.ScCollapseToggleWrap = _styledComponents.default.div.withConfig({
15
15
  componentId: "sc-xm41v7-0"
16
16
  })(["position:absolute;right:0;bottom:", "px;"], _const.SPACING_Y);
17
- var cssToggleNone = (0, _styledComponents.css)(["transform:translateX(0);"]);
18
17
  var cssToggleIn = (0, _styledComponents.css)(["transform:translateX(-101%);"]);
19
- var cssToggleOut = (0, _styledComponents.css)(["transform:translateX(-50%);"]);
18
+ var cssToggleOut = (0, _styledComponents.css)(["transform:translateX(-50.5%);"]);
20
19
  var ScCollapseToggle = exports.ScCollapseToggle = (0, _styledComponents.default)(_rc.SidePanelItemWrap).withConfig({
21
20
  componentId: "sc-xm41v7-1"
22
- })(["transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
21
+ })(["transform:translateX(0);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
23
22
  var $collapsed = _ref.$collapsed,
24
- $isSimpleCN = _ref.$isSimpleCN,
23
+ $collapsedAside = _ref.$collapsedAside,
25
24
  $hovered = _ref.$hovered;
26
- if (!$collapsed) {
27
- return cssToggleNone;
28
- }
29
- return $isSimpleCN || $hovered ? cssToggleIn : cssToggleOut;
25
+ return $collapsed && ($collapsedAside || $hovered ? cssToggleIn : cssToggleOut);
30
26
  });
31
27
  var collapsedStyles = (0, _styledComponents.css)(["&,&:hover{", " ", "}"], _consoleBaseTheme.mixinBgAccent, _consoleBaseTheme.mixinTextWhite);
32
28
  var nonSimpleCnPadding = (0, _styledComponents.css)(["padding-left:4px;text-align:left;"]);
@@ -37,7 +33,7 @@ var ScCollapseToggleButton = exports.ScCollapseToggleButton = (0, _styledCompone
37
33
  return $collapsed && collapsedStyles;
38
34
  }, function (_ref3) {
39
35
  var $collapsed = _ref3.$collapsed,
40
- $isSimpleCN = _ref3.$isSimpleCN,
36
+ $collapsedAside = _ref3.$collapsedAside,
41
37
  $hovered = _ref3.$hovered;
42
- return $collapsed && !$isSimpleCN && !$hovered && nonSimpleCnPadding;
38
+ return $collapsed && !$collapsedAside && !$hovered && nonSimpleCnPadding;
43
39
  });
@@ -19,6 +19,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
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
20
  function Items(_ref) {
21
21
  var items = _ref.items;
22
+ // index 为业务传入的期望展示的顺序
23
+ items.sort(function (a, b) {
24
+ var _a$index, _b$index;
25
+ var indexA = (_a$index = a.index) !== null && _a$index !== void 0 ? _a$index : Number.MAX_SAFE_INTEGER;
26
+ var indexB = (_b$index = b.index) !== null && _b$index !== void 0 ? _b$index : Number.MAX_SAFE_INTEGER;
27
+ return indexA - indexB;
28
+ });
22
29
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map(function (v) {
23
30
  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)));
24
31
  }));
@@ -2,9 +2,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import React, { useState } from 'react';
3
3
  import Icon from '@alicloud/console-base-rc-icon';
4
4
  import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
5
- import CONF_ENV from '@alicloud/console-base-conf-env';
6
- import CONF_LOCALE, { ELanguage } from '@alicloud/console-base-conf-locale';
7
- import { useCollapsed, useItemsTop, useHandleCollapsedChange } from '../../../model';
5
+ import { useCollapsed, useItemsTop, useHandleCollapsedChange, useProps } from '../../../model';
8
6
  import { ScCollapseToggleWrap, ScCollapseToggle, ScCollapseToggleButton } from './styles';
9
7
  import { SidePanelItemBadge } from '../../rc';
10
8
  import intl from '../../intl';
@@ -13,26 +11,27 @@ export default function PanelToggle() {
13
11
  _useState2 = _slicedToArray(_useState, 2),
14
12
  isHovered = _useState2[0],
15
13
  setIsHovered = _useState2[1];
14
+ var _useProps = useProps(),
15
+ collapsedAside = _useProps.collapsedAside;
16
16
  var collapsed = useCollapsed();
17
17
  var unread = useItemsTop().some(function (v) {
18
18
  return v.unread;
19
19
  });
20
20
  var handleToggleCollapsed = useHandleCollapsedChange();
21
21
  var title = intl(collapsed ? 'op:toggle_visible' : 'op:toggle_hidden');
22
- // 站点是否处于简体中文环境下,即国内站
23
- var isSimpleCN = CONF_ENV.SITE === 'CN' && CONF_LOCALE.LANGUAGE === ELanguage.ZH;
24
22
  return /*#__PURE__*/React.createElement(ScCollapseToggleWrap, null, /*#__PURE__*/React.createElement(TooltipV1, {
25
23
  title: title,
26
24
  placement: "left",
27
25
  destroyTooltipOnHide: true,
28
26
  fixed: true,
27
+ mouseEnterDelay: !collapsedAside && collapsed ? 250 : 0,
29
28
  overlayStyle: {
30
29
  marginLeft: '8px'
31
30
  }
32
31
  }, /*#__PURE__*/React.createElement(ScCollapseToggle, {
33
32
  $hovered: isHovered,
34
33
  $collapsed: collapsed,
35
- $isSimpleCN: isSimpleCN,
34
+ $collapsedAside: !!collapsedAside,
36
35
  onMouseEnter: function onMouseEnter() {
37
36
  return setIsHovered(true);
38
37
  },
@@ -47,10 +46,10 @@ export default function PanelToggle() {
47
46
  }),
48
47
  onClick: handleToggleCollapsed,
49
48
  $collapsed: collapsed,
50
- $isSimpleCN: isSimpleCN,
49
+ $collapsedAside: !!collapsedAside,
51
50
  $hovered: isHovered
52
51
  }), collapsed && unread ? /*#__PURE__*/React.createElement(SidePanelItemBadge, {
53
52
  unread: true,
54
- alignLeft: !isSimpleCN && !isHovered
53
+ alignLeft: true
55
54
  }) : null)));
56
55
  }
@@ -5,19 +5,15 @@ import { SPACING_Y } from '../../const';
5
5
  export var ScCollapseToggleWrap = styled.div.withConfig({
6
6
  componentId: "sc-xm41v7-0"
7
7
  })(["position:absolute;right:0;bottom:", "px;"], SPACING_Y);
8
- var cssToggleNone = css(["transform:translateX(0);"]);
9
8
  var cssToggleIn = css(["transform:translateX(-101%);"]);
10
- var cssToggleOut = css(["transform:translateX(-50%);"]);
9
+ var cssToggleOut = css(["transform:translateX(-50.5%);"]);
11
10
  export var ScCollapseToggle = styled(SidePanelItemWrap).withConfig({
12
11
  componentId: "sc-xm41v7-1"
13
- })(["transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
12
+ })(["transform:translateX(0);transition:transform 250ms ease-in-out 0ms;", ""], function (_ref) {
14
13
  var $collapsed = _ref.$collapsed,
15
- $isSimpleCN = _ref.$isSimpleCN,
14
+ $collapsedAside = _ref.$collapsedAside,
16
15
  $hovered = _ref.$hovered;
17
- if (!$collapsed) {
18
- return cssToggleNone;
19
- }
20
- return $isSimpleCN || $hovered ? cssToggleIn : cssToggleOut;
16
+ return $collapsed && ($collapsedAside || $hovered ? cssToggleIn : cssToggleOut);
21
17
  });
22
18
  var collapsedStyles = css(["&,&:hover{", " ", "}"], mixinBgAccent, mixinTextWhite);
23
19
  var nonSimpleCnPadding = css(["padding-left:4px;text-align:left;"]);
@@ -28,7 +24,7 @@ export var ScCollapseToggleButton = styled(SidePanelItemButton).withConfig({
28
24
  return $collapsed && collapsedStyles;
29
25
  }, function (_ref3) {
30
26
  var $collapsed = _ref3.$collapsed,
31
- $isSimpleCN = _ref3.$isSimpleCN,
27
+ $collapsedAside = _ref3.$collapsedAside,
32
28
  $hovered = _ref3.$hovered;
33
- return $collapsed && !$isSimpleCN && !$hovered && nonSimpleCnPadding;
29
+ return $collapsed && !$collapsedAside && !$hovered && nonSimpleCnPadding;
34
30
  });
@@ -11,6 +11,13 @@ import PanelItem from '../item';
11
11
  import QuickTop from '../quick-top';
12
12
  function Items(_ref) {
13
13
  var items = _ref.items;
14
+ // index 为业务传入的期望展示的顺序
15
+ items.sort(function (a, b) {
16
+ var _a$index, _b$index;
17
+ var indexA = (_a$index = a.index) !== null && _a$index !== void 0 ? _a$index : Number.MAX_SAFE_INTEGER;
18
+ var indexB = (_b$index = b.index) !== null && _b$index !== void 0 ? _b$index : Number.MAX_SAFE_INTEGER;
19
+ return indexA - indexB;
20
+ });
14
21
  return /*#__PURE__*/React.createElement(React.Fragment, null, items.map(function (v) {
15
22
  return /*#__PURE__*/React.createElement(PanelItem, _objectSpread(_objectSpread({}, v), {}, _defineProperty(_defineProperty({}, DATA_KEY_SIDE_PANEL_ITEM, v.key), "spm", v.key)));
16
23
  }));
@@ -47,6 +47,10 @@ export interface SidePanelItemButtonProps {
47
47
  onActiveChange?(active: boolean): void;
48
48
  }
49
49
  export interface ISidePanelItemProps extends SidePanelItemButtonProps {
50
+ /**
51
+ * 自定义展示顺序,越小越靠前,不传则按照消息传入的顺序展示
52
+ */
53
+ index?: number;
50
54
  /**
51
55
  * 右上角徽标,数字展示数字,true 展示小红点
52
56
  */
@@ -1,7 +1,7 @@
1
1
  import { SidePanelItemButton } from '../../rc';
2
2
  interface IScProps {
3
3
  $collapsed: boolean;
4
- $isSimpleCN: boolean;
4
+ $collapsedAside: boolean;
5
5
  $hovered: boolean;
6
6
  }
7
7
  export declare const ScCollapseToggleWrap: import("styled-components").StyledComponent<"div", 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.15",
3
+ "version": "1.1.17",
4
4
  "description": "ConsoleBase 组件 - 右侧边栏",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -43,7 +43,7 @@
43
43
  "@alicloud/console-base-rc-html-trusted": "^1.0.5",
44
44
  "@alicloud/console-base-rc-icon": "^1.10.6",
45
45
  "@alicloud/console-base-rc-marks": "^1.8.3",
46
- "@alicloud/console-base-rc-tooltip": "^1.1.20",
46
+ "@alicloud/console-base-rc-tooltip": "^1.1.21",
47
47
  "@alicloud/console-base-theme": "^1.9.7",
48
48
  "@alicloud/console-base-theme-sc-base": "^1.6.4",
49
49
  "@alicloud/mere-dom": "^1.8.0",