@hi-ui/hiui 2.15.11 → 2.15.12
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/es/_util/SwitchVersion.js +40 -0
- package/es/_util/depreactedPropsCompat.js +58 -0
- package/es/_util/index.js +31 -0
- package/es/_util/warning.js +2 -2
- package/es/alert/Alert.js +126 -0
- package/es/alert/__tests__/index.test.js +84 -0
- package/es/alert/index.js +6 -147
- package/es/alert/style/index.css +1 -1
- package/es/badge/Badge.js +82 -0
- package/es/badge/__tests__/index.test.js +82 -0
- package/es/badge/index.js +9 -87
- package/es/badge/style/index.css +1 -1
- package/es/badge/style/index.js +0 -0
- package/es/breadcrumb/__tests__/index.test.js +61 -0
- package/es/breadcrumb/index.js +85 -0
- package/es/breadcrumb/style/index.css +1 -0
- package/es/button/Button.js +62 -60
- package/es/button/ButtonGroup.js +24 -40
- package/es/button/IconLoading.js +6 -6
- package/es/button/__tests__/index.test.js +221 -0
- package/es/button/index.js +3 -2
- package/es/button/style/index.css +1 -1
- package/es/card/__tests__/index.test.js +179 -0
- package/es/card/index.js +61 -57
- package/es/card/style/index.css +1 -1
- package/es/carousel/__tests__/index.test.js +104 -0
- package/es/carousel/index.js +219 -0
- package/es/carousel/style/index.css +1 -0
- package/es/carousel/style/index.js +3 -0
- package/es/cascader/Cascader.js +190 -133
- package/es/cascader/Menu.js +168 -0
- package/es/cascader/__tests__/index.test.js +392 -0
- package/es/cascader/index.js +5 -2
- package/es/cascader/style/cascader.css +1 -1
- package/es/cascader/style/menu.css +1 -1
- package/es/checkbox/Checkbox.js +136 -0
- package/es/checkbox/Group.js +194 -0
- package/es/checkbox/__tests__/index.test.js +226 -0
- package/es/checkbox/checkbox-legacy/Base.js +212 -0
- package/es/checkbox/checkbox-legacy/CheckBox.js +157 -0
- package/es/checkbox/checkbox-legacy/index.js +15 -0
- package/es/checkbox/checkbox-legacy/style/index.css +1 -0
- package/es/checkbox/checkbox-legacy/style/index.js +3 -0
- package/es/checkbox/index.js +13 -4
- package/es/checkbox/style/index.css +1 -1
- package/es/collapse/__tests__/index.test.js +111 -0
- package/es/collapse/index.js +88 -110
- package/es/collapse/style/index.css +1 -1
- package/es/confirm/index.js +39 -60
- package/es/context/index.js +45 -51
- package/es/counter/Counter.js +339 -0
- package/es/counter/__tests__/index.test.js +134 -0
- package/es/counter/counter-legacy/index.js +267 -0
- package/es/counter/index.js +6 -270
- package/es/counter/style/index.css +1 -1
- package/es/date-picker/BasePicker.js +380 -302
- package/es/date-picker/Calender.js +326 -98
- package/es/date-picker/DatePanel.js +194 -213
- package/es/date-picker/DatePicker.js +143 -47
- package/es/date-picker/DateRangePanel.js +272 -208
- package/es/date-picker/Modal.js +18 -32
- package/es/date-picker/Time.js +231 -345
- package/es/date-picker/TimeList.js +246 -0
- package/es/date-picker/TimePanel.js +28 -41
- package/es/date-picker/TimePeriodPanel.js +27 -46
- package/es/date-picker/TimePicker.js +44 -46
- package/es/date-picker/TimeRangePanel.js +33 -51
- package/es/date-picker/Type.js +5 -1
- package/es/date-picker/WeekRangePanel.js +254 -175
- package/es/date-picker/YMRangePanel.js +364 -0
- package/es/date-picker/__tests__/index.test.js +956 -0
- package/es/date-picker/constants.js +14 -28
- package/es/date-picker/dateUtil.js +221 -52
- package/es/date-picker/datepicker-legacy/BasePicker.js +511 -0
- package/es/date-picker/datepicker-legacy/Calender.js +422 -0
- package/es/date-picker/datepicker-legacy/DatePanel.js +455 -0
- package/es/date-picker/datepicker-legacy/DatePicker.js +103 -0
- package/es/date-picker/datepicker-legacy/DateRangePanel.js +488 -0
- package/es/date-picker/datepicker-legacy/Modal.js +67 -0
- package/es/date-picker/datepicker-legacy/Time.js +405 -0
- package/es/date-picker/datepicker-legacy/TimePanel.js +85 -0
- package/es/date-picker/datepicker-legacy/TimePeriodPanel.js +118 -0
- package/es/date-picker/datepicker-legacy/TimePicker.js +78 -0
- package/es/date-picker/datepicker-legacy/TimeRangePanel.js +90 -0
- package/es/date-picker/datepicker-legacy/Type.js +31 -0
- package/es/date-picker/datepicker-legacy/WeekRangePanel.js +337 -0
- package/es/date-picker/datepicker-legacy/constants.js +79 -0
- package/es/date-picker/datepicker-legacy/dateUtil.js +258 -0
- package/es/date-picker/datepicker-legacy/index.js +15 -0
- package/es/date-picker/datepicker-legacy/local.js +11 -0
- package/es/date-picker/datepicker-legacy/style/index.css +1 -0
- package/es/date-picker/datepicker-legacy/style/index.js +3 -0
- package/es/date-picker/datepicker-legacy/style/timepicker.css +1 -0
- package/es/date-picker/datepicker-legacy/util.js +60 -0
- package/es/date-picker/index.js +5 -2
- package/es/date-picker/style/index.css +1 -1
- package/es/date-picker/toLunar.js +172 -0
- package/es/date-picker/util.js +101 -8
- package/es/dropdown/Dropdown.js +191 -203
- package/es/dropdown/DropdownButton.js +102 -0
- package/es/dropdown/DropdownMenu.js +107 -0
- package/es/dropdown/DropdownMenuItem.js +172 -0
- package/es/dropdown/__tests__/index.test.js +313 -0
- package/es/dropdown/index.js +69 -4
- package/es/dropdown/style/index.css +1 -1
- package/es/dropdown/style/index.js +0 -2
- package/es/dropdown/{__test__ → tests}/index.test.js +7 -7
- package/es/dropdown/utils.js +35 -0
- package/es/ficon/index.js +16 -30
- package/es/form/Form.js +176 -0
- package/es/form/{item.js → Item.js} +52 -60
- package/es/form/__tests__/index.test.js +571 -0
- package/es/form/index.js +6 -171
- package/es/form/style/index.css +1 -1
- package/es/grid/__tests__/index.test.js +100 -0
- package/es/grid/index.js +36 -56
- package/es/icon/index.js +23 -38
- package/es/index.js +61 -9
- package/es/input/Input.js +400 -0
- package/es/input/__tests__/index.test.js +376 -0
- package/es/input/index.js +26 -347
- package/es/input/input-legacy/index.js +341 -0
- package/es/input/input-legacy/util.js +176 -0
- package/es/input/style/index.css +1 -1
- package/es/input/util.js +26 -18
- package/es/lib/withDragDropContext.js +2 -2
- package/es/loading/Loading.js +173 -0
- package/es/loading/__tests__/index.test.js +110 -0
- package/es/loading/index.js +5 -129
- package/es/loading/style/index.css +0 -0
- package/es/loading/style/index.js +0 -0
- package/es/locales/en-US.js +45 -9
- package/es/locales/index.js +16 -2
- package/es/locales/zh-CN.js +46 -10
- package/es/locales/zh-Hant-HK.js +123 -0
- package/es/locales/zh-Hant-TW.js +125 -0
- package/es/menu/Item.js +34 -51
- package/es/menu/Menu.js +414 -0
- package/es/menu/SubMenu.js +63 -90
- package/es/menu/Title.js +37 -51
- package/es/menu/__tests__/index.test.js +274 -0
- package/es/menu/index.js +12 -419
- package/es/menu/style/index.css +1 -1
- package/es/message/__tests__/index.test.js +71 -0
- package/es/message/index.js +58 -0
- package/es/message/style/index.css +1 -0
- package/es/message/style/index.js +5 -0
- package/es/modal/__tests__/index.test.js +178 -0
- package/es/modal/index.js +85 -77
- package/es/modal/style/index.css +1 -1
- package/es/nav-menu/NavMenu.js +44 -61
- package/es/nav-menu/__test__/index.test.js +8 -8
- package/es/nav-menu/__tests__/index.test.js +23 -0
- package/es/nav-menu/index.js +2 -2
- package/es/notice/Notice.js +136 -0
- package/es/notice/NoticeContainer.js +107 -0
- package/es/notice/__tests__/index.test.js +174 -0
- package/es/notice/index.js +66 -0
- package/es/notice/style/index.css +1 -0
- package/es/notice/style/index.js +5 -0
- package/es/notification/HandleNotification/index.js +216 -0
- package/es/notification/HandleNotification/style/index.css +1 -0
- package/es/notification/HandleNotification/style/index.js +5 -0
- package/es/notification/__tests__/index.test.js +114 -0
- package/es/notification/index.js +68 -231
- package/es/notification/style/index.css +1 -1
- package/es/notification/style/index.js +0 -0
- package/es/pagination/Pager.js +7 -9
- package/es/pagination/Pagination.js +134 -133
- package/es/pagination/__tests__/index.test.js +244 -0
- package/es/pagination/index.js +9 -8
- package/es/pagination/style/index.css +1 -1
- package/es/panel/index.js +28 -46
- package/es/popover/__test__/index.test.js +10 -10
- package/es/popover/__tests__/index.test.js +152 -0
- package/es/popover/index.js +77 -83
- package/es/popper/index.js +68 -64
- package/es/popper/style/index.css +1 -1
- package/es/preview/index.js +529 -0
- package/es/preview/style/index.css +1 -0
- package/es/preview/style/index.js +3 -0
- package/es/progress/BarProgress.js +107 -43
- package/es/progress/CircleProgress.js +13 -14
- package/es/progress/DashboardProgress.js +11 -13
- package/es/progress/Progress.js +102 -0
- package/es/progress/__tests__/index.test.js +131 -0
- package/es/progress/index.js +8 -100
- package/es/progress/style/index.css +1 -1
- package/es/radio/Group.js +199 -0
- package/es/radio/Radio.js +147 -0
- package/es/radio/__tests__/index.test.js +127 -0
- package/es/radio/index.js +10 -216
- package/es/radio/{__test__ → radio-legacy/__test__}/index.test.js +13 -13
- package/es/radio/radio-legacy/index.js +214 -0
- package/es/radio/radio-legacy/style/index.css +1 -0
- package/es/radio/radio-legacy/style/index.js +3 -0
- package/es/radio/style/index.css +1 -1
- package/es/rate/Icons.js +70 -70
- package/es/rate/Rate.js +75 -108
- package/es/rate/__tests__/index.test.js +124 -0
- package/es/rate/index.js +5 -2
- package/es/rate/style/index.css +1 -1
- package/es/select/Select.js +330 -265
- package/es/select/SelectDropdown.js +223 -79
- package/es/select/SelectInput.js +120 -91
- package/es/select/__tests__/index.test.js +505 -0
- package/es/select/index.js +6 -4
- package/es/select/select-legacy/Option.js +78 -0
- package/es/select/select-legacy/Select.js +702 -0
- package/es/select/select-legacy/SelectDropdown.js +157 -0
- package/es/select/select-legacy/SelectInput.js +308 -0
- package/es/select/select-legacy/common.js +19 -0
- package/es/select/select-legacy/index.js +16 -0
- package/es/select/style/select-dropdown.css +1 -1
- package/es/select/style/select-input.css +1 -1
- package/es/stepper/Stepper.js +147 -0
- package/es/stepper/__tests__/index.test.js +161 -0
- package/es/stepper/index.js +21 -127
- package/es/stepper/style/index.css +1 -1
- package/es/style/icon/diyIcon.css +1 -1
- package/es/style/icon/index.css +1 -1
- package/es/switch/__tests__/index.test.js +68 -0
- package/es/switch/index.js +26 -46
- package/es/switch/style/index.css +1 -1
- package/es/table/Body.js +294 -0
- package/es/table/ClickOuterside.js +95 -0
- package/es/table/Footer.js +171 -0
- package/es/table/Header.js +320 -0
- package/es/table/TableContent.js +101 -0
- package/es/table/__tests__/index.test.js +129 -0
- package/es/table/checkbox/index.js +36 -47
- package/es/table/checkbox/style/index.css +1 -0
- package/es/table/checkbox/style/index.js +3 -0
- package/es/table/index.js +269 -314
- package/es/table/menu/index.js +34 -44
- package/es/table/prefix.js +2 -2
- package/es/table/style/Table.css +1 -1
- package/es/table/style/index.css +1 -1
- package/es/tabs/ItemDropdown.js +45 -65
- package/es/tabs/TabPane.js +26 -44
- package/es/tabs/Tabs.js +110 -111
- package/es/tabs/__tests__/index.test.js +329 -0
- package/es/tabs/index.js +9 -3
- package/es/tabs/style/index.css +1 -1
- package/es/tabs/tabs-legacy/ItemDropdown.js +162 -0
- package/es/tabs/tabs-legacy/TabPane.js +70 -0
- package/es/tabs/tabs-legacy/Tabs.js +291 -0
- package/es/tabs/tabs-legacy/index.js +18 -0
- package/es/tabs/tabs-legacy/style/index.css +1 -0
- package/es/tabs/tabs-legacy/style/index.js +3 -0
- package/es/tag/__tests__/index.test.js +46 -0
- package/es/tag/index.js +86 -0
- package/es/tag/style/index.css +1 -0
- package/es/tag/style/index.js +3 -0
- package/es/timeline/__tests__/index.test.js +198 -0
- package/es/timeline/index.js +206 -136
- package/es/timeline/style/index.css +1 -1
- package/es/tooltip/__tests__/index.test.js +166 -0
- package/es/tooltip/index.js +93 -52
- package/es/tooltip/style/index.css +1 -1
- package/es/transfer/Item.js +73 -71
- package/es/transfer/Transfer.js +558 -0
- package/es/transfer/__tests__/index.test.js +210 -0
- package/es/transfer/index.js +4 -443
- package/es/transfer/style/index.css +1 -1
- package/es/tree/IconLoading.js +38 -0
- package/es/tree/Tree.js +94 -111
- package/es/tree/TreeDivider.js +6 -6
- package/es/tree/TreeItem.js +217 -123
- package/es/tree/TreeNode.js +472 -333
- package/es/tree/__tests__/index.test.js +599 -0
- package/es/tree/index.js +9 -2
- package/es/tree/style/index.css +1 -1
- package/es/tree/tree-legacy/Tree.js +330 -0
- package/es/tree/tree-legacy/TreeDivider.js +25 -0
- package/es/tree/tree-legacy/TreeItem.js +326 -0
- package/es/tree/tree-legacy/TreeNode.js +711 -0
- package/es/tree/tree-legacy/index.js +13 -0
- package/es/tree/tree-legacy/style/index.css +1 -0
- package/es/tree/tree-legacy/style/index.js +3 -0
- package/es/tree/tree-legacy/util.js +434 -0
- package/es/tree/util.js +8 -256
- package/es/upload/Upload.js +292 -200
- package/es/upload/UploadAvatar.js +61 -79
- package/es/upload/UploadClick.js +62 -60
- package/es/upload/UploadDrag.js +63 -66
- package/es/upload/UploadPhoto.js +86 -75
- package/es/upload/UploadPictureCard.js +53 -60
- package/es/upload/__tests__/index.test.js +760 -0
- package/es/upload/index.js +8 -71
- package/es/upload/main.js +83 -0
- package/es/upload/style/index.css +1 -1
- package/es/upload/tool.js +0 -1
- package/es/upload/{Preview.js → upload-legacy/Preview.js} +48 -62
- package/es/upload/upload-legacy/Upload.js +431 -0
- package/es/upload/upload-legacy/UploadAvatar.js +318 -0
- package/es/upload/upload-legacy/UploadClick.js +121 -0
- package/es/upload/upload-legacy/UploadDrag.js +176 -0
- package/es/upload/upload-legacy/UploadPhoto.js +179 -0
- package/es/upload/upload-legacy/UploadPictureCard.js +122 -0
- package/es/upload/upload-legacy/index.js +67 -0
- package/es/upload/upload-legacy/style/index.css +1 -0
- package/es/upload/upload-legacy/style/index.js +5 -0
- package/es/upload/upload-legacy/tool.js +84 -0
- package/es/watermark/index.js +97 -0
- package/es/watermark/watermark.js +263 -0
- package/package.json +1 -1
- package/es/alert/__test__/index.test.js +0 -67
- package/es/button/__test__/index.test.js +0 -29
- package/es/cascader/__test__/index.test.js +0 -283
- package/es/cascader/menu.js +0 -155
- package/es/checkbox/Base.js +0 -205
- package/es/checkbox/CheckBox.js +0 -185
- package/es/collapse/__test__/index.test.js +0 -58
- package/es/counter/__test__/index.test.js +0 -52
- package/es/menu/ItemGroup.js +0 -81
- package/es/modal/__test__/index.test.js +0 -123
- package/es/notification/__test__/index.test.js +0 -56
- package/es/pagination/__test__/index.test.js +0 -140
- package/es/rate/__test__/index.test.js +0 -54
- package/es/select/Option.js +0 -93
- package/es/select/__test__/index.test.js +0 -429
- package/es/style/color/colors.css +0 -0
- package/es/style/index.css +0 -0
- package/es/style/mixins/colors.css +0 -0
- package/es/style/mixins/index.css +0 -0
- package/es/style/theme/dark.css +0 -0
- package/es/style/theme/default.css +0 -0
- package/es/switch/__test__/index.test.js +0 -39
- package/es/table/__test__/index.test.js +0 -73
- package/es/table/body.js +0 -318
- package/es/table/clickOuterside.js +0 -115
- package/es/table/footer.js +0 -196
- package/es/table/header.js +0 -337
- package/es/table/pover.js +0 -154
- package/es/table/tableContent.js +0 -120
- package/es/timeline/__test__/index.test.js +0 -49
- package/es/timeline/foldingItem.js +0 -82
- package/es/tooltip/__test__/index.test.js +0 -67
- package/es/transfer/__test__/index.test.js +0 -11
- /package/es/{style → breadcrumb/style}/index.js +0 -0
- /package/es/checkbox/{common.js → checkbox-legacy/common.js} +0 -0
- /package/es/upload/{style → upload-legacy/style}/preview.css +0 -0
- /package/es/upload/{style → upload-legacy/style}/preview.js +0 -0
package/es/menu/Menu.js
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
+
|
|
24
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
+
|
|
26
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
27
|
+
|
|
28
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
29
|
+
|
|
30
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
+
|
|
32
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
|
+
|
|
34
|
+
var _Title = _interopRequireDefault(require("./Title"));
|
|
35
|
+
|
|
36
|
+
var _Item = _interopRequireDefault(require("./Item"));
|
|
37
|
+
|
|
38
|
+
var _SubMenu = _interopRequireDefault(require("./SubMenu"));
|
|
39
|
+
|
|
40
|
+
require("./style/index");
|
|
41
|
+
|
|
42
|
+
var Menu =
|
|
43
|
+
/*#__PURE__*/
|
|
44
|
+
function (_Component) {
|
|
45
|
+
(0, _inherits2["default"])(Menu, _Component);
|
|
46
|
+
|
|
47
|
+
function Menu(props) {
|
|
48
|
+
var _this;
|
|
49
|
+
|
|
50
|
+
(0, _classCallCheck2["default"])(this, Menu);
|
|
51
|
+
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Menu).call(this, props));
|
|
52
|
+
var _this$props = _this.props,
|
|
53
|
+
activeId = _this$props.activeId,
|
|
54
|
+
collapsed = _this$props.collapsed;
|
|
55
|
+
|
|
56
|
+
var activeIndex = _this.getActiveIndex(activeId);
|
|
57
|
+
|
|
58
|
+
var expandIndex = [];
|
|
59
|
+
_this.clickOutsideHandel = _this.clickOutside.bind((0, _assertThisInitialized2["default"])(_this));
|
|
60
|
+
|
|
61
|
+
if (_this.isNoMiniVertaicalMenu(collapsed)) {
|
|
62
|
+
// 垂直非mini菜单默认打开激活项
|
|
63
|
+
expandIndex = [activeIndex.split('-').slice(0, -1).join('-')];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
_this.state = {
|
|
67
|
+
activeId: _this.props.activeId,
|
|
68
|
+
expandIndex: expandIndex,
|
|
69
|
+
activeIndex: activeIndex,
|
|
70
|
+
collapsed: collapsed
|
|
71
|
+
};
|
|
72
|
+
_this.clickInsideFlag = false; // click在menu标识
|
|
73
|
+
|
|
74
|
+
return _this;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
(0, _createClass2["default"])(Menu, [{
|
|
78
|
+
key: "componentWillReceiveProps",
|
|
79
|
+
value: function componentWillReceiveProps(nextProps) {
|
|
80
|
+
var activeId = nextProps.activeId,
|
|
81
|
+
data = nextProps.data,
|
|
82
|
+
collapsed = nextProps.collapsed;
|
|
83
|
+
|
|
84
|
+
if (activeId !== this.props.activeId || !_lodash["default"].isEqual(data, this.props.data)) {
|
|
85
|
+
var activeIndex = this.getActiveIndex(activeId, data);
|
|
86
|
+
this.setState({
|
|
87
|
+
activeId: activeId,
|
|
88
|
+
activeIndex: activeIndex
|
|
89
|
+
});
|
|
90
|
+
this.isNoMiniVertaicalMenu(collapsed) && this.setState({
|
|
91
|
+
expandIndex: [activeIndex.split('-').slice(0, -1).join('-')]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (collapsed !== this.props.collapsed) {
|
|
96
|
+
this.setState({
|
|
97
|
+
collapsed: collapsed
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
key: "componentDidMount",
|
|
103
|
+
value: function componentDidMount() {
|
|
104
|
+
window.addEventListener('click', this.clickOutsideHandel);
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
key: "componentWillUnmount",
|
|
108
|
+
value: function componentWillUnmount() {
|
|
109
|
+
window.removeEventListener('click', this.clickOutsideHandel);
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: "clickOutside",
|
|
113
|
+
value: function clickOutside() {
|
|
114
|
+
if (!this.clickInsideFlag && !this.isNoMiniVertaicalMenu()) {
|
|
115
|
+
this.setState({
|
|
116
|
+
expandIndex: []
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
this.clickInsideFlag = false;
|
|
121
|
+
}
|
|
122
|
+
}, {
|
|
123
|
+
key: "clickInside",
|
|
124
|
+
value: function clickInside() {
|
|
125
|
+
this.clickInsideFlag = true;
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "getExpandIndex",
|
|
129
|
+
value: function getExpandIndex(clickedIndex) {
|
|
130
|
+
if (!clickedIndex) {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
var accordion = this.props.accordion;
|
|
135
|
+
var expandIndex = this.state.expandIndex;
|
|
136
|
+
var _clickedIndex = clickedIndex;
|
|
137
|
+
var subInExpandIndex = false;
|
|
138
|
+
|
|
139
|
+
var _expandIndex = expandIndex.filter(function (item) {
|
|
140
|
+
// 点击父菜单时,需要把已展开的子菜单过滤掉,因为父菜单关闭时所有子菜单也要关闭
|
|
141
|
+
var flag = item.startsWith(_clickedIndex);
|
|
142
|
+
|
|
143
|
+
if (flag) {
|
|
144
|
+
subInExpandIndex = true;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return !flag;
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
subInExpandIndex && _expandIndex.push(_clickedIndex); // subInExpandIndex为true说明其有子菜单被展开,在点击需要关闭
|
|
151
|
+
|
|
152
|
+
var index = _expandIndex.indexOf(clickedIndex);
|
|
153
|
+
|
|
154
|
+
if (index > -1) {
|
|
155
|
+
// 点击同一个submenu,如果已展开则关闭
|
|
156
|
+
_clickedIndex = clickedIndex.split('-').slice(0, -1).join('-');
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (!accordion && this.isNoMiniVertaicalMenu()) {
|
|
160
|
+
// 非手风琴模式只有在垂直非mini状态下才生效
|
|
161
|
+
index > -1 ? _expandIndex.splice(index, 1, _clickedIndex) : _expandIndex.push(_clickedIndex);
|
|
162
|
+
return _expandIndex;
|
|
163
|
+
} else {
|
|
164
|
+
return _clickedIndex ? [_clickedIndex] : [];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "isNoMiniVertaicalMenu",
|
|
169
|
+
value: function isNoMiniVertaicalMenu() {
|
|
170
|
+
var collapsed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.collapsed;
|
|
171
|
+
// 垂直非mini菜单
|
|
172
|
+
return this.props.placement === 'vertical' && !collapsed;
|
|
173
|
+
}
|
|
174
|
+
}, {
|
|
175
|
+
key: "getActiveMenus",
|
|
176
|
+
value: function getActiveMenus(menus, activeId) {
|
|
177
|
+
var activeMenus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
178
|
+
var result;
|
|
179
|
+
|
|
180
|
+
for (var index in menus) {
|
|
181
|
+
var _activeMenus = (0, _toConsumableArray2["default"])(activeMenus);
|
|
182
|
+
|
|
183
|
+
if (menus[index].id === activeId) {
|
|
184
|
+
_activeMenus.push(index);
|
|
185
|
+
|
|
186
|
+
result = _activeMenus;
|
|
187
|
+
} else if (menus[index].children) {
|
|
188
|
+
_activeMenus.push(index);
|
|
189
|
+
|
|
190
|
+
result = this.getActiveMenus(menus[index].children, activeId, _activeMenus);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (result) {
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (result) {
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "getActiveIndex",
|
|
204
|
+
value: function getActiveIndex(activeId, menu) {
|
|
205
|
+
// 获取激活item对应的索引,以'-'拼接成字符串
|
|
206
|
+
var data = this.props.data;
|
|
207
|
+
|
|
208
|
+
if (activeId === undefined || activeId === '') {
|
|
209
|
+
return '';
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
var activeMenus = this.getActiveMenus(menu || data, activeId, []);
|
|
213
|
+
return activeMenus && activeMenus.join('-') || '';
|
|
214
|
+
}
|
|
215
|
+
}, {
|
|
216
|
+
key: "toggleMini",
|
|
217
|
+
value: function toggleMini() {
|
|
218
|
+
var _this2 = this;
|
|
219
|
+
|
|
220
|
+
var collapsed = !this.state.collapsed;
|
|
221
|
+
var expandIndex = collapsed ? [] : this.state.expandIndex;
|
|
222
|
+
setTimeout(function () {
|
|
223
|
+
_this2.setState({
|
|
224
|
+
collapsed: collapsed,
|
|
225
|
+
expandIndex: expandIndex
|
|
226
|
+
}, function () {
|
|
227
|
+
_this2.props.onCollapse && _this2.props.onCollapse(collapsed);
|
|
228
|
+
});
|
|
229
|
+
}, 0);
|
|
230
|
+
}
|
|
231
|
+
}, {
|
|
232
|
+
key: "onClick",
|
|
233
|
+
value: function onClick(indexs, id, data) {
|
|
234
|
+
var _this3 = this;
|
|
235
|
+
|
|
236
|
+
var expandIndex = this.isNoMiniVertaicalMenu() ? this.state.expandIndex : this.getExpandIndex(''); // 非mini垂直菜单选中时不需要收起子菜单
|
|
237
|
+
|
|
238
|
+
var oldId = this.state.activeId;
|
|
239
|
+
this.setState({
|
|
240
|
+
activeId: id,
|
|
241
|
+
activeIndex: indexs,
|
|
242
|
+
expandIndex: expandIndex
|
|
243
|
+
}, function () {
|
|
244
|
+
_this3.props.onClick(id, oldId, data);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
key: "onClickSubMenu",
|
|
249
|
+
value: function onClickSubMenu(index) {
|
|
250
|
+
var _this4 = this;
|
|
251
|
+
|
|
252
|
+
var expandIndex = this.getExpandIndex(index);
|
|
253
|
+
this.clickInside();
|
|
254
|
+
this.setState({
|
|
255
|
+
expandIndex: expandIndex
|
|
256
|
+
}, function () {
|
|
257
|
+
index && _this4.props.onClickSubMenu && _this4.props.onClickSubMenu(index.split('-'));
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}, {
|
|
261
|
+
key: "renderItem",
|
|
262
|
+
value: function renderItem(data, index) {
|
|
263
|
+
var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
264
|
+
// render menu item
|
|
265
|
+
var activeIndex = this.state.activeIndex;
|
|
266
|
+
var mergeProps = Object.assign({
|
|
267
|
+
onClick: this.onClick.bind(this),
|
|
268
|
+
id: data.id,
|
|
269
|
+
icon: data.icon,
|
|
270
|
+
activeIndex: activeIndex,
|
|
271
|
+
index: index,
|
|
272
|
+
disabled: data.disabled,
|
|
273
|
+
key: index,
|
|
274
|
+
data: data
|
|
275
|
+
}, props);
|
|
276
|
+
return _react["default"].createElement(_Item["default"], mergeProps, data.content);
|
|
277
|
+
}
|
|
278
|
+
}, {
|
|
279
|
+
key: "renderFatSubMenu",
|
|
280
|
+
value: function renderFatSubMenu(data, parentIndex) {
|
|
281
|
+
var _this5 = this;
|
|
282
|
+
|
|
283
|
+
// render胖菜单
|
|
284
|
+
var groups = [];
|
|
285
|
+
data.forEach(function (dataItem, groupIndex) {
|
|
286
|
+
groups.push(_react["default"].createElement("li", {
|
|
287
|
+
className: "hi-menu-fat",
|
|
288
|
+
key: groupIndex
|
|
289
|
+
}, _react["default"].createElement("div", {
|
|
290
|
+
className: "hi-menu-fat__title hi-menu__title"
|
|
291
|
+
}, _react["default"].createElement(_Title["default"], {
|
|
292
|
+
icon: dataItem.icon,
|
|
293
|
+
content: dataItem.content
|
|
294
|
+
})), dataItem.children && _react["default"].createElement("ul", {
|
|
295
|
+
className: "hi-menu-fat__content"
|
|
296
|
+
}, dataItem.children.map(function (child, index) {
|
|
297
|
+
return _this5.renderItem(child, parentIndex + '-' + groupIndex + '-' + index, {
|
|
298
|
+
level: 2
|
|
299
|
+
});
|
|
300
|
+
}))));
|
|
301
|
+
});
|
|
302
|
+
return groups;
|
|
303
|
+
}
|
|
304
|
+
}, {
|
|
305
|
+
key: "renderMenu",
|
|
306
|
+
value: function renderMenu(data) {
|
|
307
|
+
var _this6 = this;
|
|
308
|
+
|
|
309
|
+
var parentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
310
|
+
var _this$props2 = this.props,
|
|
311
|
+
showAllSubMenus = _this$props2.showAllSubMenus,
|
|
312
|
+
placement = _this$props2.placement,
|
|
313
|
+
theme = _this$props2.theme;
|
|
314
|
+
var _this$state = this.state,
|
|
315
|
+
activeIndex = _this$state.activeIndex,
|
|
316
|
+
expandIndex = _this$state.expandIndex,
|
|
317
|
+
collapsed = _this$state.collapsed;
|
|
318
|
+
var items = [];
|
|
319
|
+
var renderMenu = showAllSubMenus ? this.renderFatSubMenu.bind(this) : this.renderMenu.bind(this);
|
|
320
|
+
data.forEach(function (item, index) {
|
|
321
|
+
var indexStr = parentIndex !== '' ? parentIndex + '-' + index : '' + index;
|
|
322
|
+
var level = indexStr.split('-').length;
|
|
323
|
+
|
|
324
|
+
if (item.children) {
|
|
325
|
+
items.push(_react["default"].createElement(_SubMenu["default"], {
|
|
326
|
+
key: index,
|
|
327
|
+
theme: theme,
|
|
328
|
+
onClick: _this6.onClickSubMenu.bind(_this6),
|
|
329
|
+
clickInside: _this6.clickInside.bind(_this6),
|
|
330
|
+
index: indexStr,
|
|
331
|
+
level: level,
|
|
332
|
+
fatMenu: showAllSubMenus,
|
|
333
|
+
activeIndex: activeIndex,
|
|
334
|
+
expandIndex: expandIndex,
|
|
335
|
+
disabled: item.disabled,
|
|
336
|
+
content: item.content,
|
|
337
|
+
icon: item.icon,
|
|
338
|
+
renderMenu: renderMenu,
|
|
339
|
+
datas: item.children,
|
|
340
|
+
mode: placement,
|
|
341
|
+
mini: collapsed
|
|
342
|
+
}));
|
|
343
|
+
} else {
|
|
344
|
+
items.push(_this6.renderItem(item, indexStr, {
|
|
345
|
+
level: level,
|
|
346
|
+
placement: placement,
|
|
347
|
+
mini: collapsed
|
|
348
|
+
}));
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
return items;
|
|
352
|
+
}
|
|
353
|
+
}, {
|
|
354
|
+
key: "render",
|
|
355
|
+
value: function render() {
|
|
356
|
+
var _this$props3 = this.props,
|
|
357
|
+
data = _this$props3.data,
|
|
358
|
+
placement = _this$props3.placement,
|
|
359
|
+
showCollapse = _this$props3.showCollapse,
|
|
360
|
+
theme = _this$props3.theme;
|
|
361
|
+
var collapsed = this.state.collapsed;
|
|
362
|
+
var cls = (0, _classnames["default"])('hi-menu', "theme__".concat(theme), "hi-menu--".concat(placement), {
|
|
363
|
+
'hi-menu--mini': collapsed
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
var miniIcon = _react["default"].createElement("i", {
|
|
367
|
+
className: "hi-icon icon-".concat(collapsed ? 'Expand' : 'Collapse')
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
return _react["default"].createElement("div", {
|
|
371
|
+
className: cls
|
|
372
|
+
}, _react["default"].createElement("ul", {
|
|
373
|
+
className: "hi-menu-items"
|
|
374
|
+
}, this.renderMenu(data)), placement === 'vertical' && showCollapse && _react["default"].createElement("div", {
|
|
375
|
+
className: "hi-menu--mini__toggle",
|
|
376
|
+
onClick: this.toggleMini.bind(this)
|
|
377
|
+
}, miniIcon));
|
|
378
|
+
}
|
|
379
|
+
}]);
|
|
380
|
+
return Menu;
|
|
381
|
+
}(_react.Component);
|
|
382
|
+
|
|
383
|
+
Menu.defaultProps = {
|
|
384
|
+
placement: 'vertical',
|
|
385
|
+
onClick: function onClick() {},
|
|
386
|
+
activeId: '',
|
|
387
|
+
collapsed: false,
|
|
388
|
+
showCollapse: false,
|
|
389
|
+
showAllSubMenus: false,
|
|
390
|
+
accordion: true
|
|
391
|
+
};
|
|
392
|
+
Menu.propTypes = {
|
|
393
|
+
data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
394
|
+
content: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
|
|
395
|
+
id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
396
|
+
disabled: _propTypes["default"].bool,
|
|
397
|
+
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
|
|
398
|
+
children: _propTypes["default"].array
|
|
399
|
+
})),
|
|
400
|
+
activeId: _propTypes["default"].string,
|
|
401
|
+
placement: _propTypes["default"].oneOf(['horizontal', 'vertical']),
|
|
402
|
+
collapsed: _propTypes["default"].bool,
|
|
403
|
+
// 是否是mini模式,需要同时placement=vertical时才生效
|
|
404
|
+
showCollapse: _propTypes["default"].bool,
|
|
405
|
+
// mini状态开关,需要同时placement=vertical时才生效
|
|
406
|
+
showAllSubMenus: _propTypes["default"].bool,
|
|
407
|
+
// 胖菜单,需要同时placement=horizontal时才生效
|
|
408
|
+
accordion: _propTypes["default"].bool,
|
|
409
|
+
onClick: _propTypes["default"].func,
|
|
410
|
+
onClickSubMenu: _propTypes["default"].func,
|
|
411
|
+
onCollapse: _propTypes["default"].func
|
|
412
|
+
};
|
|
413
|
+
var _default = Menu;
|
|
414
|
+
exports["default"] = _default;
|
package/es/menu/SubMenu.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
3
7
|
Object.defineProperty(exports, "__esModule", {
|
|
4
8
|
value: true
|
|
5
9
|
});
|
|
6
10
|
exports["default"] = void 0;
|
|
7
11
|
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
+
|
|
8
22
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
23
|
|
|
10
24
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -17,48 +31,17 @@ var _icon = _interopRequireDefault(require("../icon"));
|
|
|
17
31
|
|
|
18
32
|
var _Title = _interopRequireDefault(require("./Title"));
|
|
19
33
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
25
|
-
|
|
26
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
27
|
-
|
|
28
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
29
|
-
|
|
30
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
31
|
-
|
|
32
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
33
|
-
|
|
34
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
35
|
-
|
|
36
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
37
|
-
|
|
38
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
39
|
-
|
|
40
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
41
|
-
|
|
42
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
43
|
-
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
-
|
|
46
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
47
|
-
|
|
48
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
49
|
-
|
|
50
|
-
var SubMenu = /*#__PURE__*/function (_Component) {
|
|
51
|
-
_inherits(SubMenu, _Component);
|
|
52
|
-
|
|
53
|
-
var _super = _createSuper(SubMenu);
|
|
34
|
+
var SubMenu =
|
|
35
|
+
/*#__PURE__*/
|
|
36
|
+
function (_Component) {
|
|
37
|
+
(0, _inherits2["default"])(SubMenu, _Component);
|
|
54
38
|
|
|
55
39
|
function SubMenu() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return _super.apply(this, arguments);
|
|
40
|
+
(0, _classCallCheck2["default"])(this, SubMenu);
|
|
41
|
+
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SubMenu).apply(this, arguments));
|
|
59
42
|
}
|
|
60
43
|
|
|
61
|
-
|
|
44
|
+
(0, _createClass2["default"])(SubMenu, [{
|
|
62
45
|
key: "onClick",
|
|
63
46
|
value: function onClick(index) {
|
|
64
47
|
this.props.onClick(index);
|
|
@@ -66,38 +49,30 @@ var SubMenu = /*#__PURE__*/function (_Component) {
|
|
|
66
49
|
}, {
|
|
67
50
|
key: "checkActive",
|
|
68
51
|
value: function checkActive(activeIndex, index) {
|
|
69
|
-
|
|
52
|
+
var indexArr = index.split('-');
|
|
53
|
+
var activeIndexArr = activeIndex.split('-');
|
|
54
|
+
return activeIndexArr.slice(0, indexArr.length).join('-') === index;
|
|
70
55
|
}
|
|
71
56
|
}, {
|
|
72
57
|
key: "checkExpand",
|
|
73
58
|
value: function checkExpand(activeIndex, expandIndex, index) {
|
|
74
59
|
return expandIndex.some(function (item) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// } = this.props
|
|
80
|
-
// if (!mini && mode==='vertical' && expandIndex.length===0) {
|
|
81
|
-
// return activeIndex.indexOf(index) === 0
|
|
82
|
-
// } else {
|
|
83
|
-
// return expandIndex.some(item => {
|
|
84
|
-
// // return item.indexOf(index) === 0 || (activeIndex.indexOf(item) === 0 && activeIndex.indexOf(index) === 0)
|
|
85
|
-
// return item.indexOf(index) === 0
|
|
86
|
-
// })
|
|
87
|
-
// }
|
|
60
|
+
var indexArr = index.split('-');
|
|
61
|
+
var expandIndexArr = item.split('-');
|
|
62
|
+
return expandIndexArr.slice(0, indexArr.length).join('-') === index;
|
|
63
|
+
});
|
|
88
64
|
}
|
|
89
65
|
}, {
|
|
90
66
|
key: "renderPopperMenu",
|
|
91
67
|
value: function renderPopperMenu(deepSubmenu, isExpand) {
|
|
92
|
-
var _this = this;
|
|
93
|
-
|
|
94
68
|
var _this$props = this.props,
|
|
95
69
|
mini = _this$props.mini,
|
|
96
70
|
datas = _this$props.datas,
|
|
97
71
|
index = _this$props.index,
|
|
98
72
|
renderMenu = _this$props.renderMenu,
|
|
99
73
|
fatMenu = _this$props.fatMenu,
|
|
100
|
-
clickInside = _this$props.clickInside
|
|
74
|
+
clickInside = _this$props.clickInside,
|
|
75
|
+
theme = _this$props.theme;
|
|
101
76
|
var leftGap;
|
|
102
77
|
var topGap;
|
|
103
78
|
var placement;
|
|
@@ -113,22 +88,19 @@ var SubMenu = /*#__PURE__*/function (_Component) {
|
|
|
113
88
|
placement = 'bottom-start';
|
|
114
89
|
}
|
|
115
90
|
|
|
116
|
-
return
|
|
91
|
+
return _react["default"].createElement(_popper["default"], {
|
|
117
92
|
show: isExpand,
|
|
118
93
|
attachEle: this.submenuTrigger,
|
|
119
94
|
zIndex: 1050,
|
|
120
95
|
topGap: topGap,
|
|
121
96
|
leftGap: leftGap,
|
|
122
|
-
className: (0, _classnames["default"])('hi-submenu__popper', {
|
|
97
|
+
className: (0, _classnames["default"])('hi-submenu__popper', "theme__".concat(theme), {
|
|
123
98
|
'hi-submenu__popper--fat': fatMenu
|
|
124
99
|
}),
|
|
125
100
|
width: false,
|
|
126
101
|
placement: placement
|
|
127
|
-
},
|
|
102
|
+
}, _react["default"].createElement("ul", {
|
|
128
103
|
className: (0, _classnames["default"])('hi-submenu__items'),
|
|
129
|
-
ref: function ref(node) {
|
|
130
|
-
_this.submenuNode = node;
|
|
131
|
-
},
|
|
132
104
|
onClick: function onClick() {
|
|
133
105
|
return clickInside();
|
|
134
106
|
} // 利用事件冒泡设置clickInsideFlag
|
|
@@ -142,9 +114,10 @@ var SubMenu = /*#__PURE__*/function (_Component) {
|
|
|
142
114
|
datas = _this$props2.datas,
|
|
143
115
|
index = _this$props2.index,
|
|
144
116
|
renderMenu = _this$props2.renderMenu,
|
|
145
|
-
clickInside = _this$props2.clickInside
|
|
146
|
-
|
|
147
|
-
|
|
117
|
+
clickInside = _this$props2.clickInside,
|
|
118
|
+
theme = _this$props2.theme;
|
|
119
|
+
return _react["default"].createElement("ul", {
|
|
120
|
+
className: (0, _classnames["default"])('hi-submenu__items', "theme__".concat(theme), {
|
|
148
121
|
'hi-submenu__items--hide': !isExpand
|
|
149
122
|
}),
|
|
150
123
|
onClick: function onClick() {
|
|
@@ -157,7 +130,7 @@ var SubMenu = /*#__PURE__*/function (_Component) {
|
|
|
157
130
|
}, {
|
|
158
131
|
key: "render",
|
|
159
132
|
value: function render() {
|
|
160
|
-
var
|
|
133
|
+
var _this = this;
|
|
161
134
|
|
|
162
135
|
var _this$props3 = this.props,
|
|
163
136
|
content = _this$props3.content,
|
|
@@ -169,55 +142,54 @@ var SubMenu = /*#__PURE__*/function (_Component) {
|
|
|
169
142
|
activeIndex = _this$props3.activeIndex,
|
|
170
143
|
expandIndex = _this$props3.expandIndex,
|
|
171
144
|
disabled = _this$props3.disabled,
|
|
172
|
-
fatMenu = _this$props3.fatMenu
|
|
145
|
+
fatMenu = _this$props3.fatMenu,
|
|
146
|
+
theme = _this$props3.theme;
|
|
173
147
|
var isExpand = this.checkExpand(activeIndex, expandIndex, index);
|
|
174
148
|
var isActive = this.checkActive(activeIndex, index);
|
|
175
149
|
var deepSubmenu = index.split('-').length > 1;
|
|
176
|
-
var cls = (0, _classnames["default"])('hi-menu-item', 'hi-submenu', "hi-menu--".concat(level), {
|
|
150
|
+
var cls = (0, _classnames["default"])('hi-menu-item', "theme__".concat(theme), 'hi-submenu', "hi-menu--".concat(level), {
|
|
177
151
|
'hi-menu-item--disabled': disabled,
|
|
178
152
|
'hi-menu-item--active': isActive,
|
|
179
153
|
'hi-submenu--fat': fatMenu
|
|
180
154
|
});
|
|
181
155
|
var toggleIcon;
|
|
182
156
|
|
|
183
|
-
if (
|
|
184
|
-
toggleIcon =
|
|
157
|
+
if (mode === 'horizontal' && !deepSubmenu) {
|
|
158
|
+
toggleIcon = 'down';
|
|
159
|
+
} else if (deepSubmenu && (mode === 'horizontal' || mini)) {
|
|
160
|
+
toggleIcon = 'right';
|
|
185
161
|
} else {
|
|
186
162
|
toggleIcon = isExpand ? 'up' : 'down';
|
|
187
163
|
}
|
|
188
164
|
|
|
189
|
-
return
|
|
165
|
+
return _react["default"].createElement("li", {
|
|
190
166
|
className: cls,
|
|
191
167
|
ref: function ref(node) {
|
|
192
|
-
|
|
168
|
+
_this.submenuTrigger = node;
|
|
193
169
|
},
|
|
194
170
|
key: index
|
|
195
|
-
},
|
|
196
|
-
className: "hi-submenu__title hi-menu__title",
|
|
171
|
+
}, _react["default"].createElement("div", {
|
|
172
|
+
className: "theme__".concat(theme, " hi-submenu__title hi-menu__title"),
|
|
197
173
|
onClick: function onClick() {
|
|
198
|
-
|
|
199
|
-
_this2.onClick(index);
|
|
200
|
-
}
|
|
174
|
+
!disabled && _this.onClick(index);
|
|
201
175
|
}
|
|
202
|
-
},
|
|
176
|
+
}, _react["default"].createElement(_Title["default"], {
|
|
203
177
|
icon: icon,
|
|
204
|
-
content: content
|
|
205
|
-
|
|
178
|
+
content: content,
|
|
179
|
+
mini: mini,
|
|
180
|
+
level: level,
|
|
181
|
+
placement: mode
|
|
182
|
+
}), _react["default"].createElement("div", {
|
|
206
183
|
className: "hi-menu__title-toggle-icon"
|
|
207
|
-
},
|
|
184
|
+
}, _react["default"].createElement(_icon["default"], {
|
|
208
185
|
name: toggleIcon
|
|
209
186
|
}))), !mini && mode === 'vertical' ? this.renderVerticalMenu(isActive, isExpand) : this.renderPopperMenu(deepSubmenu, isExpand));
|
|
210
187
|
}
|
|
211
188
|
}]);
|
|
212
|
-
|
|
213
189
|
return SubMenu;
|
|
214
190
|
}(_react.Component);
|
|
215
191
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
_defineProperty(SubMenu, "componentName", 'SubMenu');
|
|
219
|
-
|
|
220
|
-
_defineProperty(SubMenu, "propTypes", {
|
|
192
|
+
SubMenu.propTypes = {
|
|
221
193
|
icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
|
|
222
194
|
content: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
|
|
223
195
|
datas: _propTypes["default"].array,
|
|
@@ -231,9 +203,10 @@ _defineProperty(SubMenu, "propTypes", {
|
|
|
231
203
|
disabled: _propTypes["default"].bool,
|
|
232
204
|
activeIndex: _propTypes["default"].string,
|
|
233
205
|
expandIndex: _propTypes["default"].array
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
_defineProperty(SubMenu, "defaultProps", {
|
|
206
|
+
};
|
|
207
|
+
SubMenu.defaultProps = {
|
|
237
208
|
level: 1,
|
|
238
209
|
expandIndex: []
|
|
239
|
-
}
|
|
210
|
+
};
|
|
211
|
+
var _default = SubMenu;
|
|
212
|
+
exports["default"] = _default;
|