@alicloud/console-base-rc-side-panel 1.0.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.
Files changed (189) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +3 -0
  3. package/build/cjs/index.js +20 -0
  4. package/build/cjs/model/const/index.js +15 -0
  5. package/build/cjs/model/context/index.js +9 -0
  6. package/build/cjs/model/enum/index.js +12 -0
  7. package/build/cjs/model/hook/_use-model-context.js +12 -0
  8. package/build/cjs/model/hook/_use-model-dispatch.js +11 -0
  9. package/build/cjs/model/hook/_use-model-props.js +29 -0
  10. package/build/cjs/model/hook/_use-model-state.js +11 -0
  11. package/build/cjs/model/hook/index.js +62 -0
  12. package/build/cjs/model/hook/use-children.js +11 -0
  13. package/build/cjs/model/hook/use-collapsed.js +16 -0
  14. package/build/cjs/model/hook/use-dispatch-set-collapsed.js +19 -0
  15. package/build/cjs/model/hook/use-dispatch-set-quick-top-visible.js +19 -0
  16. package/build/cjs/model/hook/use-effect-quick-top.js +40 -0
  17. package/build/cjs/model/hook/use-effect-toggle-body-class.js +25 -0
  18. package/build/cjs/model/hook/use-effects.js +13 -0
  19. package/build/cjs/model/hook/use-handle-collapsed-change.js +21 -0
  20. package/build/cjs/model/hook/use-handle-go-top.js +22 -0
  21. package/build/cjs/model/hook/use-handle-set-quick-top-visible.js +19 -0
  22. package/build/cjs/model/hook/use-items-bottom.js +11 -0
  23. package/build/cjs/model/hook/use-items-top.js +11 -0
  24. package/build/cjs/model/hook/use-quick-top.js +19 -0
  25. package/build/cjs/model/hook/use-visible.js +14 -0
  26. package/build/cjs/model/index.js +35 -0
  27. package/build/cjs/model/lifecycle/index.js +12 -0
  28. package/build/cjs/model/provider/index.js +40 -0
  29. package/build/cjs/model/reducer/index.js +20 -0
  30. package/build/cjs/model/reducer/reduce-set-collapsed.js +15 -0
  31. package/build/cjs/model/reducer/reduce-set-quick-top-visible.js +15 -0
  32. package/build/cjs/model/types/action.js +5 -0
  33. package/build/cjs/model/types/common.js +5 -0
  34. package/build/cjs/model/types/context.js +5 -0
  35. package/build/cjs/model/types/index.js +60 -0
  36. package/build/cjs/model/types/props.js +5 -0
  37. package/build/cjs/model/types/state.js +5 -0
  38. package/build/cjs/model/util/index.js +13 -0
  39. package/build/cjs/model/util/toggle-body-class.js +16 -0
  40. package/build/cjs/ui/const/index.js +26 -0
  41. package/build/cjs/ui/index.js +29 -0
  42. package/build/cjs/ui/intl/index.js +19 -0
  43. package/build/cjs/ui/intl/locales/en-us.js +12 -0
  44. package/build/cjs/ui/intl/locales/ja-jp.js +12 -0
  45. package/build/cjs/ui/intl/locales/zh-cn.js +12 -0
  46. package/build/cjs/ui/intl/locales/zh-tw.js +12 -0
  47. package/build/cjs/ui/rc/aside/index.js +14 -0
  48. package/build/cjs/ui/rc/global-style-on-body/index.js +15 -0
  49. package/build/cjs/ui/rc/index.js +48 -0
  50. package/build/cjs/ui/rc/side-panel-item-badge/index.js +56 -0
  51. package/build/cjs/ui/rc/side-panel-item-button/index.js +39 -0
  52. package/build/cjs/ui/rc/side-panel-item-tooltip/index.js +58 -0
  53. package/build/cjs/ui/rc/side-panel-item-wrap/index.js +16 -0
  54. package/build/cjs/ui/rc-container/collapse-toggle/index.js +77 -0
  55. package/build/cjs/ui/rc-container/index.js +27 -0
  56. package/build/cjs/ui/rc-container/item/index.js +103 -0
  57. package/build/cjs/ui/rc-container/items/index.js +20 -0
  58. package/build/cjs/ui/rc-container/items-bottom/index.js +28 -0
  59. package/build/cjs/ui/rc-container/items-bottom/quick-top/index.js +47 -0
  60. package/build/cjs/ui/rc-container/items-top/index.js +20 -0
  61. package/build/cjs/ui/types/index.js +5 -0
  62. package/build/cjs/ui/util/get-value-by-status.js +23 -0
  63. package/build/cjs/ui/util/index.js +13 -0
  64. package/build/cjs/with-model/index.js +15 -0
  65. package/build/es/index.js +2 -0
  66. package/build/es/model/const/index.js +6 -0
  67. package/build/es/model/context/index.js +2 -0
  68. package/build/es/model/enum/index.js +5 -0
  69. package/build/es/model/hook/_use-model-context.js +5 -0
  70. package/build/es/model/hook/_use-model-dispatch.js +4 -0
  71. package/build/es/model/hook/_use-model-props.js +22 -0
  72. package/build/es/model/hook/_use-model-state.js +4 -0
  73. package/build/es/model/hook/index.js +10 -0
  74. package/build/es/model/hook/use-children.js +4 -0
  75. package/build/es/model/hook/use-collapsed.js +9 -0
  76. package/build/es/model/hook/use-dispatch-set-collapsed.js +12 -0
  77. package/build/es/model/hook/use-dispatch-set-quick-top-visible.js +12 -0
  78. package/build/es/model/hook/use-effect-quick-top.js +33 -0
  79. package/build/es/model/hook/use-effect-toggle-body-class.js +18 -0
  80. package/build/es/model/hook/use-effects.js +6 -0
  81. package/build/es/model/hook/use-handle-collapsed-change.js +14 -0
  82. package/build/es/model/hook/use-handle-go-top.js +15 -0
  83. package/build/es/model/hook/use-handle-set-quick-top-visible.js +12 -0
  84. package/build/es/model/hook/use-items-bottom.js +4 -0
  85. package/build/es/model/hook/use-items-top.js +4 -0
  86. package/build/es/model/hook/use-quick-top.js +12 -0
  87. package/build/es/model/hook/use-visible.js +7 -0
  88. package/build/es/model/index.js +3 -0
  89. package/build/es/model/lifecycle/index.js +5 -0
  90. package/build/es/model/provider/index.js +30 -0
  91. package/build/es/model/reducer/index.js +13 -0
  92. package/build/es/model/reducer/reduce-set-collapsed.js +8 -0
  93. package/build/es/model/reducer/reduce-set-quick-top-visible.js +8 -0
  94. package/build/es/model/types/action.js +1 -0
  95. package/build/es/model/types/common.js +1 -0
  96. package/build/es/model/types/context.js +1 -0
  97. package/build/es/model/types/index.js +5 -0
  98. package/build/es/model/types/props.js +1 -0
  99. package/build/es/model/types/state.js +1 -0
  100. package/build/es/model/util/index.js +1 -0
  101. package/build/es/model/util/toggle-body-class.js +10 -0
  102. package/build/es/ui/const/index.js +12 -0
  103. package/build/es/ui/index.js +19 -0
  104. package/build/es/ui/intl/index.js +11 -0
  105. package/build/es/ui/intl/locales/en-us.js +5 -0
  106. package/build/es/ui/intl/locales/ja-jp.js +5 -0
  107. package/build/es/ui/intl/locales/zh-cn.js +5 -0
  108. package/build/es/ui/intl/locales/zh-tw.js +5 -0
  109. package/build/es/ui/rc/aside/index.js +6 -0
  110. package/build/es/ui/rc/global-style-on-body/index.js +8 -0
  111. package/build/es/ui/rc/index.js +6 -0
  112. package/build/es/ui/rc/side-panel-item-badge/index.js +46 -0
  113. package/build/es/ui/rc/side-panel-item-button/index.js +29 -0
  114. package/build/es/ui/rc/side-panel-item-tooltip/index.js +48 -0
  115. package/build/es/ui/rc/side-panel-item-wrap/index.js +9 -0
  116. package/build/es/ui/rc-container/collapse-toggle/index.js +67 -0
  117. package/build/es/ui/rc-container/index.js +3 -0
  118. package/build/es/ui/rc-container/item/index.js +93 -0
  119. package/build/es/ui/rc-container/items/index.js +13 -0
  120. package/build/es/ui/rc-container/items-bottom/index.js +21 -0
  121. package/build/es/ui/rc-container/items-bottom/quick-top/index.js +37 -0
  122. package/build/es/ui/rc-container/items-top/index.js +13 -0
  123. package/build/es/ui/types/index.js +1 -0
  124. package/build/es/ui/util/get-value-by-status.js +17 -0
  125. package/build/es/ui/util/index.js +1 -0
  126. package/build/es/with-model/index.js +8 -0
  127. package/build/types/index.d.ts +3 -0
  128. package/build/types/model/const/index.d.ts +4 -0
  129. package/build/types/model/context/index.d.ts +4 -0
  130. package/build/types/model/enum/index.d.ts +4 -0
  131. package/build/types/model/hook/_use-model-context.d.ts +2 -0
  132. package/build/types/model/hook/_use-model-dispatch.d.ts +2 -0
  133. package/build/types/model/hook/_use-model-props.d.ts +5 -0
  134. package/build/types/model/hook/_use-model-state.d.ts +2 -0
  135. package/build/types/model/hook/index.d.ts +8 -0
  136. package/build/types/model/hook/use-children.d.ts +2 -0
  137. package/build/types/model/hook/use-collapsed.d.ts +1 -0
  138. package/build/types/model/hook/use-dispatch-set-collapsed.d.ts +1 -0
  139. package/build/types/model/hook/use-dispatch-set-quick-top-visible.d.ts +1 -0
  140. package/build/types/model/hook/use-effect-quick-top.d.ts +1 -0
  141. package/build/types/model/hook/use-effect-toggle-body-class.d.ts +1 -0
  142. package/build/types/model/hook/use-effects.d.ts +1 -0
  143. package/build/types/model/hook/use-handle-collapsed-change.d.ts +1 -0
  144. package/build/types/model/hook/use-handle-go-top.d.ts +1 -0
  145. package/build/types/model/hook/use-handle-set-quick-top-visible.d.ts +1 -0
  146. package/build/types/model/hook/use-items-bottom.d.ts +2 -0
  147. package/build/types/model/hook/use-items-top.d.ts +2 -0
  148. package/build/types/model/hook/use-quick-top.d.ts +6 -0
  149. package/build/types/model/hook/use-visible.d.ts +1 -0
  150. package/build/types/model/index.d.ts +4 -0
  151. package/build/types/model/lifecycle/index.d.ts +1 -0
  152. package/build/types/model/provider/index.d.ts +8 -0
  153. package/build/types/model/reducer/index.d.ts +2 -0
  154. package/build/types/model/reducer/reduce-set-collapsed.d.ts +2 -0
  155. package/build/types/model/reducer/reduce-set-quick-top-visible.d.ts +2 -0
  156. package/build/types/model/types/action.d.ts +7 -0
  157. package/build/types/model/types/common.d.ts +66 -0
  158. package/build/types/model/types/context.d.ts +11 -0
  159. package/build/types/model/types/index.d.ts +5 -0
  160. package/build/types/model/types/props.d.ts +37 -0
  161. package/build/types/model/types/state.d.ts +4 -0
  162. package/build/types/model/util/index.d.ts +1 -0
  163. package/build/types/model/util/toggle-body-class.d.ts +1 -0
  164. package/build/types/ui/const/index.d.ts +8 -0
  165. package/build/types/ui/index.d.ts +1 -0
  166. package/build/types/ui/intl/index.d.ts +6 -0
  167. package/build/types/ui/intl/locales/en-us.d.ts +6 -0
  168. package/build/types/ui/intl/locales/ja-jp.d.ts +6 -0
  169. package/build/types/ui/intl/locales/zh-cn.d.ts +6 -0
  170. package/build/types/ui/intl/locales/zh-tw.d.ts +6 -0
  171. package/build/types/ui/rc/aside/index.d.ts +2 -0
  172. package/build/types/ui/rc/global-style-on-body/index.d.ts +1 -0
  173. package/build/types/ui/rc/index.d.ts +6 -0
  174. package/build/types/ui/rc/side-panel-item-badge/index.d.ts +9 -0
  175. package/build/types/ui/rc/side-panel-item-button/index.d.ts +5 -0
  176. package/build/types/ui/rc/side-panel-item-tooltip/index.d.ts +10 -0
  177. package/build/types/ui/rc/side-panel-item-wrap/index.d.ts +5 -0
  178. package/build/types/ui/rc-container/collapse-toggle/index.d.ts +1 -0
  179. package/build/types/ui/rc-container/index.d.ts +3 -0
  180. package/build/types/ui/rc-container/item/index.d.ts +5 -0
  181. package/build/types/ui/rc-container/items/index.d.ts +6 -0
  182. package/build/types/ui/rc-container/items-bottom/index.d.ts +1 -0
  183. package/build/types/ui/rc-container/items-bottom/quick-top/index.d.ts +1 -0
  184. package/build/types/ui/rc-container/items-top/index.d.ts +1 -0
  185. package/build/types/ui/types/index.d.ts +4 -0
  186. package/build/types/ui/util/get-value-by-status.d.ts +8 -0
  187. package/build/types/ui/util/index.d.ts +1 -0
  188. package/build/types/with-model/index.d.ts +2 -0
  189. package/package.json +69 -0
@@ -0,0 +1,103 @@
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 = Item;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactHookMouseEnterLeave = _interopRequireDefault(require("@alicloud/react-hook-mouse-enter-leave"));
14
+ var _consoleBaseRcHtmlTrusted = _interopRequireDefault(require("@alicloud/console-base-rc-html-trusted"));
15
+ var _consoleBaseRcEasyIcon = require("@alicloud/console-base-rc-easy-icon");
16
+ var _model = require("../../../model");
17
+ var _util = require("../../util");
18
+ var _rc = require("../../rc");
19
+ var _excluded = ["id", "className", "style", "active", "title", "titleActive", "icon", "iconHovered", "iconActive", "iconActiveHovered", "unread", "mark", "tooltip", "tooltipActive", "tooltipAsHtml", "tooltipAlign", "tooltipDefaultVisible", "onClick", "onActiveChange", "onMouseEnter", "onMouseLeave"];
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+ function Item(_ref) {
25
+ var id = _ref.id,
26
+ className = _ref.className,
27
+ style = _ref.style,
28
+ active = _ref.active,
29
+ title = _ref.title,
30
+ titleActive = _ref.titleActive,
31
+ icon = _ref.icon,
32
+ iconHovered = _ref.iconHovered,
33
+ iconActive = _ref.iconActive,
34
+ iconActiveHovered = _ref.iconActiveHovered,
35
+ unread = _ref.unread,
36
+ mark = _ref.mark,
37
+ tooltip = _ref.tooltip,
38
+ tooltipActive = _ref.tooltipActive,
39
+ tooltipAsHtml = _ref.tooltipAsHtml,
40
+ tooltipAlign = _ref.tooltipAlign,
41
+ _ref$tooltipDefaultVi = _ref.tooltipDefaultVisible,
42
+ tooltipDefaultVisible = _ref$tooltipDefaultVi === void 0 ? false : _ref$tooltipDefaultVi,
43
+ onClick = _ref.onClick,
44
+ onActiveChange = _ref.onActiveChange,
45
+ onMouseEnter = _ref.onMouseEnter,
46
+ onMouseLeave = _ref.onMouseLeave,
47
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
48
+ var collapsed = (0, _model.useCollapsed)();
49
+ var _useState = (0, _react.useState)(tooltipDefaultVisible),
50
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
+ stateTooltipVisible = _useState2[0],
52
+ setStateTooltipVisible = _useState2[1];
53
+ var _useMouseEnterLeave = (0, _reactHookMouseEnterLeave.default)((0, _react.useCallback)(function () {
54
+ setStateTooltipVisible(true);
55
+ onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
56
+ }, [setStateTooltipVisible, onMouseEnter]), (0, _react.useCallback)(function () {
57
+ setStateTooltipVisible(false);
58
+ onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
59
+ }, [setStateTooltipVisible, onMouseLeave])),
60
+ _useMouseEnterLeave2 = (0, _slicedToArray2.default)(_useMouseEnterLeave, 2),
61
+ handleMouseEnter = _useMouseEnterLeave2[0],
62
+ handleMouseLeave = _useMouseEnterLeave2[1];
63
+ var handleClick = (0, _react.useCallback)(function (e) {
64
+ onClick === null || onClick === void 0 ? void 0 : onClick(e);
65
+ onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(!active);
66
+ }, [active, onClick, onActiveChange]);
67
+ var finalTitle = (0, _util.getValueByStatus)({
68
+ valueNormal: title,
69
+ valueActive: titleActive
70
+ }, stateTooltipVisible, active);
71
+ var finalIcon = (0, _util.getValueByStatus)({
72
+ valueNormal: icon,
73
+ valueHovered: iconHovered,
74
+ valueActive: iconActive,
75
+ valueActiveHovered: iconActiveHovered
76
+ }, stateTooltipVisible, active);
77
+ var finalTooltip = (0, _util.getValueByStatus)({
78
+ valueNormal: tooltip,
79
+ valueActive: tooltipActive
80
+ }, stateTooltipVisible, active);
81
+ return /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, {
82
+ id: id,
83
+ className: className,
84
+ style: style,
85
+ onMouseLeave: handleMouseLeave
86
+ }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, _objectSpread(_objectSpread({}, props), {}, {
87
+ active: active,
88
+ title: title,
89
+ label: (0, _consoleBaseRcEasyIcon.renderEasyIcon)(finalIcon) || title,
90
+ onMouseEnter: handleMouseEnter,
91
+ onClick: handleClick
92
+ })), /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemBadge, {
93
+ unread: unread,
94
+ mark: mark
95
+ }), finalTooltip || finalTitle ? /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemTooltip, {
96
+ visible: stateTooltipVisible && !collapsed,
97
+ align: tooltipAlign,
98
+ content: tooltipAsHtml && finalTooltip && typeof finalTooltip === 'string' ? /*#__PURE__*/_react.default.createElement(_consoleBaseRcHtmlTrusted.default, {
99
+ text: finalTooltip
100
+ }) : finalTooltip || finalTitle,
101
+ onMouseEnter: handleMouseEnter
102
+ }) : null);
103
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = Items;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _const = require("../../const");
11
+ var _item = _interopRequireDefault(require("../item"));
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ function Items(_ref) {
15
+ var items = _ref.items;
16
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map(function (v) {
17
+ var _objectSpread2;
18
+ return /*#__PURE__*/_react.default.createElement(_item.default, _objectSpread((_objectSpread2 = {}, (0, _defineProperty2.default)(_objectSpread2, _const.DATA_KEY_SIDE_PANEL_ITEM, v.key), (0, _defineProperty2.default)(_objectSpread2, "spm", v.key), _objectSpread2), v));
19
+ }));
20
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ItemsBottom;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _consoleBaseThemeScBase = require("@alicloud/console-base-theme-sc-base");
11
+ var _consoleBaseRcFlex = _interopRequireDefault(require("@alicloud/console-base-rc-flex"));
12
+ var _const = require("../../const");
13
+ var _model = require("../../../model");
14
+ var _items = _interopRequireDefault(require("../items"));
15
+ var _quickTop = _interopRequireDefault(require("./quick-top"));
16
+ var ScHr = (0, _styledComponents.default)(_consoleBaseThemeScBase.HrBase).withConfig({
17
+ componentId: "sc-1rxhuz5-0"
18
+ })(["margin:", "px 4px;"], _const.SPACING_Y);
19
+ function ItemsBottom() {
20
+ var quickTop = (0, _model.useQuickTop)();
21
+ var children = (0, _model.useChildren)();
22
+ var items = (0, _model.useItemsBottom)();
23
+ return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
24
+ vertical: true
25
+ }, quickTop.container && quickTop.visible ? /*#__PURE__*/_react.default.createElement(_quickTop.default, null) : null, children || items.length ? /*#__PURE__*/_react.default.createElement(ScHr, null) : null, children || /*#__PURE__*/_react.default.createElement(_items.default, {
26
+ items: items
27
+ }));
28
+ }
@@ -0,0 +1,47 @@
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 = QuickTop;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactHookMouseEnterLeave = _interopRequireDefault(require("@alicloud/react-hook-mouse-enter-leave"));
12
+ var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
13
+ var _model = require("../../../../model");
14
+ var _intl = _interopRequireDefault(require("../../../intl"));
15
+ var _rc = require("../../../rc");
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function QuickTop() {
19
+ var handleGoTop = (0, _model.useHandleGoTop)();
20
+ var _useState = (0, _react.useState)(false),
21
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
+ stateHovered = _useState2[0],
23
+ setStateHovered = _useState2[1];
24
+ var _useMouseEnterLeave = (0, _reactHookMouseEnterLeave.default)((0, _react.useCallback)(function () {
25
+ setStateHovered(true);
26
+ }, [setStateHovered]), (0, _react.useCallback)(function () {
27
+ setStateHovered(false);
28
+ }, [setStateHovered])),
29
+ _useMouseEnterLeave2 = (0, _slicedToArray2.default)(_useMouseEnterLeave, 2),
30
+ handleMouseEnter = _useMouseEnterLeave2[0],
31
+ handleMouseLeave = _useMouseEnterLeave2[1];
32
+ var title = (0, _intl.default)('op:back_to_top');
33
+ return /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, {
34
+ hovered: stateHovered,
35
+ onMouseLeave: handleMouseLeave
36
+ }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, {
37
+ title: title,
38
+ label: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
39
+ type: "go-top"
40
+ }),
41
+ onMouseEnter: handleMouseEnter,
42
+ onClick: handleGoTop
43
+ }), /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemTooltip, {
44
+ visible: stateHovered,
45
+ content: title
46
+ }));
47
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ItemsTop;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _consoleBaseRcFlex = _interopRequireDefault(require("@alicloud/console-base-rc-flex"));
10
+ var _model = require("../../../model");
11
+ var _items = _interopRequireDefault(require("../items"));
12
+ function ItemsTop() {
13
+ var items = (0, _model.useItemsTop)();
14
+ return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
15
+ vertical: true,
16
+ flex: true
17
+ }, /*#__PURE__*/_react.default.createElement(_items.default, {
18
+ items: items
19
+ }));
20
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getValueByStatus;
7
+ function getValueByStatus(values, hovered, active) {
8
+ var valueNormal = values.valueNormal,
9
+ valueHovered = values.valueHovered,
10
+ valueActive = values.valueActive,
11
+ valueActiveHovered = values.valueActiveHovered;
12
+ if (hovered && active) {
13
+ var _ref;
14
+ return (_ref = valueActiveHovered !== null && valueActiveHovered !== void 0 ? valueActiveHovered : valueActive) !== null && _ref !== void 0 ? _ref : valueNormal;
15
+ }
16
+ if (active) {
17
+ return valueActive !== null && valueActive !== void 0 ? valueActive : valueNormal;
18
+ }
19
+ if (hovered) {
20
+ return valueHovered !== null && valueHovered !== void 0 ? valueHovered : valueNormal;
21
+ }
22
+ return valueNormal;
23
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "getValueByStatus", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _getValueByStatus.default;
11
+ }
12
+ });
13
+ var _getValueByStatus = _interopRequireDefault(require("./get-value-by-status"));
@@ -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 = WithModel;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _model = _interopRequireDefault(require("../model"));
10
+ var _ui = _interopRequireDefault(require("../ui"));
11
+ function WithModel(props) {
12
+ return /*#__PURE__*/_react.default.createElement(_model.default, {
13
+ props: props
14
+ }, /*#__PURE__*/_react.default.createElement(_ui.default, null));
15
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './with-model';
2
+ export { default as SidePanelItem } from './ui/rc-container/item'; // 供使用 children 的情况
@@ -0,0 +1,6 @@
1
+ export var BODY_CLASS_WITH_SIDE_PANEL = 'with-side-panel';
2
+ export var QUICK_TOP_VISIBLE_OFFSET = 200;
3
+ export var DEFAULT_CONTEXT_STATE = {
4
+ collapsed: false,
5
+ quickTopVisible: false
6
+ };
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export default /*#__PURE__*/createContext(null);
@@ -0,0 +1,5 @@
1
+ export var EAction = /*#__PURE__*/function (EAction) {
2
+ EAction[EAction["SET_COLLAPSED"] = 0] = "SET_COLLAPSED";
3
+ EAction[EAction["SET_QUICK_TOP_VISIBLE"] = 1] = "SET_QUICK_TOP_VISIBLE";
4
+ return EAction;
5
+ }({});
@@ -0,0 +1,5 @@
1
+ import { useContext } from 'react';
2
+ import Context from '../context';
3
+ export default function useModelContext() {
4
+ return useContext(Context);
5
+ }
@@ -0,0 +1,4 @@
1
+ import useModelContext from './_use-model-context';
2
+ export default function useModelDispatch() {
3
+ return useModelContext().dispatch;
4
+ }
@@ -0,0 +1,22 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["itemsTop", "itemsBottom"];
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+ import { useMemo } from 'react';
7
+ import useModelContext from './_use-model-context';
8
+ export default function useModelProps() {
9
+ var _useModelContext = useModelContext(),
10
+ props = _useModelContext.props;
11
+ return useMemo(function () {
12
+ var _props$itemsTop = props.itemsTop,
13
+ itemsTop = _props$itemsTop === void 0 ? [] : _props$itemsTop,
14
+ _props$itemsBottom = props.itemsBottom,
15
+ itemsBottom = _props$itemsBottom === void 0 ? [] : _props$itemsBottom,
16
+ rest = _objectWithoutProperties(props, _excluded);
17
+ return _objectSpread(_objectSpread({}, rest), {}, {
18
+ itemsTop: itemsTop,
19
+ itemsBottom: itemsBottom
20
+ });
21
+ }, [props]);
22
+ }
@@ -0,0 +1,4 @@
1
+ import useModelContext from './_use-model-context';
2
+ export default function useModelState() {
3
+ return useModelContext().state;
4
+ }
@@ -0,0 +1,10 @@
1
+ export { default as useChildren } from './use-children';
2
+ export { default as useVisible } from './use-visible';
3
+ export { default as useCollapsed } from './use-collapsed';
4
+ export { default as useItemsTop } from './use-items-top';
5
+ export { default as useItemsBottom } from './use-items-bottom';
6
+ export { default as useQuickTop } from './use-quick-top';
7
+
8
+ // handlers
9
+ export { default as useHandleCollapsedChange } from './use-handle-collapsed-change';
10
+ export { default as useHandleGoTop } from './use-handle-go-top';
@@ -0,0 +1,4 @@
1
+ import useModelProps from './_use-model-props';
2
+ export default function useChildren() {
3
+ return useModelProps().children;
4
+ }
@@ -0,0 +1,9 @@
1
+ import useModelProps from './_use-model-props';
2
+ import useModelState from './_use-model-state';
3
+ export default function useCollapsed() {
4
+ var _useModelProps = useModelProps(),
5
+ valueInProps = _useModelProps.collapsed;
6
+ var _useModelState = useModelState(),
7
+ valueInState = _useModelState.collapsed;
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 useDispatchSetCollapsed() {
5
+ var dispatch = useModelDispatch();
6
+ return useCallback(function (payload) {
7
+ return dispatch({
8
+ type: EAction.SET_COLLAPSED,
9
+ payload: payload
10
+ });
11
+ }, [dispatch]);
12
+ }
@@ -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 useDispatchSetQuickTopVisible() {
5
+ var dispatch = useModelDispatch();
6
+ return useCallback(function (payload) {
7
+ return dispatch({
8
+ type: EAction.SET_QUICK_TOP_VISIBLE,
9
+ payload: payload
10
+ });
11
+ }, [dispatch]);
12
+ }
@@ -0,0 +1,33 @@
1
+ import { useCallback, useEffect } from 'react';
2
+ import { QUICK_TOP_VISIBLE_OFFSET } from '../const';
3
+ import useModelProps from './_use-model-props';
4
+ import useVisible from './use-visible';
5
+ import useCollapsed from './use-collapsed';
6
+ import useHandleSetQuickTopVisible from './use-handle-set-quick-top-visible';
7
+ export default function useEffectQuickTop() {
8
+ var _useModelProps = useModelProps(),
9
+ quickTopContainer = _useModelProps.quickTopContainer;
10
+ var visible = useVisible();
11
+ var collapsed = useCollapsed();
12
+ var handleSetQuickTopVisible = useHandleSetQuickTopVisible();
13
+ var handleToggleVisible = useCallback(function () {
14
+ if (!quickTopContainer) {
15
+ return;
16
+ }
17
+ handleSetQuickTopVisible((quickTopContainer.scrollY || quickTopContainer.scrollTop) > QUICK_TOP_VISIBLE_OFFSET);
18
+ }, [quickTopContainer, handleSetQuickTopVisible]);
19
+
20
+ // container 变化导致 handleToggleVisible 变化,此时需要执行一次
21
+ useEffect(handleToggleVisible, [handleToggleVisible]);
22
+
23
+ // 对 container 进行 scroll 的事件绑定
24
+ useEffect(function () {
25
+ if (!quickTopContainer || !visible || collapsed) {
26
+ return;
27
+ }
28
+ quickTopContainer.addEventListener('scroll', handleToggleVisible);
29
+ return function () {
30
+ return quickTopContainer.removeEventListener('scroll', handleToggleVisible);
31
+ };
32
+ }, [visible, collapsed, quickTopContainer, handleToggleVisible]);
33
+ }
@@ -0,0 +1,18 @@
1
+ import { useEffect } from 'react';
2
+ import { triggerWindowResize } from '@alicloud/mere-dom';
3
+ import { toggleBodyClass } from '../util';
4
+ import useCollapsed from './use-collapsed';
5
+ export default function useEffectToggleBodyClass() {
6
+ var collapsed = useCollapsed();
7
+ useEffect(function () {
8
+ if (collapsed) {
9
+ return;
10
+ }
11
+ toggleBodyClass();
12
+ triggerWindowResize();
13
+ return function () {
14
+ toggleBodyClass(false);
15
+ triggerWindowResize();
16
+ };
17
+ }, [collapsed]);
18
+ }
@@ -0,0 +1,6 @@
1
+ import useEffectToggleBodyClass from './use-effect-toggle-body-class';
2
+ import useEffectQuickTop from './use-effect-quick-top';
3
+ export default function useEffects() {
4
+ useEffectToggleBodyClass();
5
+ useEffectQuickTop();
6
+ }
@@ -0,0 +1,14 @@
1
+ import { useCallback } from 'react';
2
+ import useCollapsed from './use-collapsed';
3
+ import useDispatchSetCollapsed from './use-dispatch-set-collapsed';
4
+ import useModelProps from './_use-model-props';
5
+ export default function useHandleCollapsedChange() {
6
+ var _useModelProps = useModelProps(),
7
+ onCollapsedChange = _useModelProps.onCollapsedChange;
8
+ var collapsed = !useCollapsed(); // 取反一下
9
+ var dispatchSetCollapsed = useDispatchSetCollapsed();
10
+ return useCallback(function () {
11
+ dispatchSetCollapsed(collapsed);
12
+ onCollapsedChange === null || onCollapsedChange === void 0 ? void 0 : onCollapsedChange(collapsed);
13
+ }, [collapsed, dispatchSetCollapsed, onCollapsedChange]);
14
+ }
@@ -0,0 +1,15 @@
1
+ import { useCallback } from 'react';
2
+ import { scrollTo } from '@alicloud/mere-dom';
3
+ import useQuickTop from './use-quick-top';
4
+ export default function useHandleGoTop() {
5
+ var _useQuickTop = useQuickTop(),
6
+ container = _useQuickTop.container;
7
+ return useCallback(function () {
8
+ if (!container) {
9
+ return;
10
+ }
11
+ scrollTo(container, {
12
+ top: 0
13
+ });
14
+ }, [container]);
15
+ }
@@ -0,0 +1,12 @@
1
+ import { useCallback } from 'react';
2
+ import useDispatchSetQuickTopVisible from './use-dispatch-set-quick-top-visible';
3
+ import useModelProps from './_use-model-props';
4
+ export default function useHandleSetQuickTopVisible() {
5
+ var _useModelProps = useModelProps(),
6
+ onQuickTopVisibleChange = _useModelProps.onQuickTopVisibleChange;
7
+ var dispatchSetQuickTopVisible = useDispatchSetQuickTopVisible();
8
+ return useCallback(function (visible) {
9
+ dispatchSetQuickTopVisible(visible);
10
+ onQuickTopVisibleChange === null || onQuickTopVisibleChange === void 0 ? void 0 : onQuickTopVisibleChange(visible);
11
+ }, [dispatchSetQuickTopVisible, onQuickTopVisibleChange]);
12
+ }
@@ -0,0 +1,4 @@
1
+ import useModelProps from './_use-model-props';
2
+ export default function useItemsBottom() {
3
+ return useModelProps().itemsBottom;
4
+ }
@@ -0,0 +1,4 @@
1
+ import useModelProps from './_use-model-props';
2
+ export default function useItemsTop() {
3
+ return useModelProps().itemsTop;
4
+ }
@@ -0,0 +1,12 @@
1
+ import useModelProps from './_use-model-props';
2
+ import useModelState from './_use-model-state';
3
+ export default function useQuickTop() {
4
+ var _useModelProps = useModelProps(),
5
+ quickTopContainer = _useModelProps.quickTopContainer;
6
+ var _useModelState = useModelState(),
7
+ quickTopVisible = _useModelState.quickTopVisible;
8
+ return {
9
+ container: quickTopContainer,
10
+ visible: quickTopVisible
11
+ };
12
+ }
@@ -0,0 +1,7 @@
1
+ import useModelProps from './_use-model-props';
2
+ export default function useVisible() {
3
+ var _useModelProps = useModelProps(),
4
+ _useModelProps$visibl = _useModelProps.visible,
5
+ visible = _useModelProps$visibl === void 0 ? true : _useModelProps$visibl;
6
+ return visible;
7
+ }
@@ -0,0 +1,3 @@
1
+ export { default } from './provider';
2
+ export { BODY_CLASS_WITH_SIDE_PANEL } from './const';
3
+ export * from './hook';
@@ -0,0 +1,5 @@
1
+ import useEffects from '../hook/use-effects';
2
+ export default function Lifecycle() {
3
+ useEffects();
4
+ return null;
5
+ }
@@ -0,0 +1,30 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React, { useCallback, useReducer } from 'react';
3
+ import useIsUnmounted from '@alicloud/react-hook-is-unmounted';
4
+ import { DEFAULT_CONTEXT_STATE } from '../const';
5
+ import reducer from '../reducer';
6
+ import Context from '../context';
7
+ import Lifecycle from '../lifecycle';
8
+ export default function Provider(_ref) {
9
+ var props = _ref.props,
10
+ children = _ref.children;
11
+ var isUnmounted = useIsUnmounted();
12
+ var _useReducer = useReducer(reducer, DEFAULT_CONTEXT_STATE),
13
+ _useReducer2 = _slicedToArray(_useReducer, 2),
14
+ state = _useReducer2[0],
15
+ dispatch = _useReducer2[1];
16
+ var safeDispatch = useCallback(function (action) {
17
+ // 不必再担心异步回调 dispatch 可能发生的错误
18
+ if (isUnmounted()) {
19
+ return;
20
+ }
21
+ dispatch(action);
22
+ }, [isUnmounted, dispatch]);
23
+ return /*#__PURE__*/React.createElement(Context.Provider, {
24
+ value: {
25
+ props: props,
26
+ state: state,
27
+ dispatch: safeDispatch
28
+ }
29
+ }, children, /*#__PURE__*/React.createElement(Lifecycle, null));
30
+ }
@@ -0,0 +1,13 @@
1
+ import { EAction } from '../enum';
2
+ import reduceSetCollapsed from './reduce-set-collapsed';
3
+ import reduceSetQuickTopVisible from './reduce-set-quick-top-visible';
4
+ export default function reducer(state, action) {
5
+ switch (action.type) {
6
+ case EAction.SET_COLLAPSED:
7
+ return reduceSetCollapsed(state, action.payload);
8
+ case EAction.SET_QUICK_TOP_VISIBLE:
9
+ return reduceSetQuickTopVisible(state, action.payload);
10
+ default:
11
+ return state;
12
+ }
13
+ }
@@ -0,0 +1,8 @@
1
+ import update from 'immutability-helper';
2
+ export default function reduceSetCollapsed(state, payload) {
3
+ return update(state, {
4
+ collapsed: {
5
+ $set: payload
6
+ }
7
+ });
8
+ }
@@ -0,0 +1,8 @@
1
+ import update from 'immutability-helper';
2
+ export default function reduceSetQuickTopVisible(state, payload) {
3
+ return update(state, {
4
+ quickTopVisible: {
5
+ $set: payload
6
+ }
7
+ });
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};