@qsxy/element-plus-react 1.0.0-next.10 → 1.0.0-next.11
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/dist/Avatar/Avatar.js +73 -72
- package/dist/Avatar/index.js +1 -39
- package/dist/Avatar/typings.js +1 -17
- package/dist/Badge/Badge.d.ts +2 -2
- package/dist/Badge/Badge.js +63 -60
- package/dist/Badge/index.js +1 -39
- package/dist/Badge/typings.d.ts +1 -1
- package/dist/Badge/typings.js +1 -17
- package/dist/Breadcrumb/Breadcrumb.js +23 -50
- package/dist/Breadcrumb/BreadcrumbItem.js +45 -51
- package/dist/Breadcrumb/index.js +2 -42
- package/dist/Breadcrumb/typings.js +1 -17
- package/dist/Button/Button.js +132 -105
- package/dist/Button/ButtonGroup.js +29 -48
- package/dist/Button/ButtonGroupContext.js +2 -30
- package/dist/Button/index.js +2 -42
- package/dist/Button/typings.d.ts +4 -2
- package/dist/Button/typings.js +1 -17
- package/dist/Button/useButtonCustomStyle.d.ts +4 -0
- package/dist/Button/useButtonCustomStyle.js +65 -0
- package/dist/Calendar/Calendar.js +310 -237
- package/dist/Calendar/CalendarContext.js +3 -27
- package/dist/Calendar/DatePanel.js +191 -158
- package/dist/Calendar/DateRangePanel.js +140 -125
- package/dist/Calendar/Footer.js +41 -51
- package/dist/Calendar/Header.js +83 -65
- package/dist/Calendar/MonthPanel.js +138 -124
- package/dist/Calendar/MonthRangePanel.js +137 -124
- package/dist/Calendar/ShortCuts.js +21 -40
- package/dist/Calendar/WeekPanel.js +213 -145
- package/dist/Calendar/YearPanel.js +150 -125
- package/dist/Calendar/YearRangePanel.js +138 -128
- package/dist/Calendar/index.js +4 -47
- package/dist/Calendar/typings.js +1 -17
- package/dist/Calendar/util.js +26 -68
- package/dist/Card/Card.js +36 -46
- package/dist/Card/index.js +1 -39
- package/dist/Card/typings.js +1 -17
- package/dist/Carousel/Carousel.js +202 -166
- package/dist/Carousel/CarouselContext.js +14 -42
- package/dist/Carousel/CarouselItem.js +55 -71
- package/dist/Carousel/hooks/useCarousel.js +263 -238
- package/dist/Carousel/hooks/useCarouselItem.js +136 -132
- package/dist/Carousel/index.js +2 -42
- package/dist/Carousel/typings.js +1 -17
- package/dist/Cascader/Cascader.js +693 -569
- package/dist/Cascader/CascaderContext.js +9 -45
- package/dist/Cascader/CascaderDropdown.js +90 -77
- package/dist/Cascader/CascaderMenu.js +101 -114
- package/dist/Cascader/Utils.js +6 -33
- package/dist/Cascader/index.js +1 -39
- package/dist/Cascader/typings.d.ts +1 -1
- package/dist/Cascader/typings.js +1 -17
- package/dist/Cascader/useCascader.js +648 -458
- package/dist/Checkbox/Checkbox.d.ts +3 -3
- package/dist/Checkbox/Checkbox.js +136 -161
- package/dist/Checkbox/CheckboxButton.js +132 -157
- package/dist/Checkbox/index.js +2 -42
- package/dist/Checkbox/typings.d.ts +1 -1
- package/dist/Checkbox/typings.js +1 -17
- package/dist/CheckboxGroup/CheckboxGroup.js +133 -112
- package/dist/CheckboxGroup/CheckboxGroupContext.js +2 -30
- package/dist/CheckboxGroup/index.js +2 -42
- package/dist/Col/Col.js +53 -72
- package/dist/Col/index.js +1 -39
- package/dist/Col/typings.js +1 -17
- package/dist/Collapse/Collapse.js +36 -45
- package/dist/Collapse/CollapseContext.js +3 -31
- package/dist/Collapse/CollapseItem.js +88 -73
- package/dist/Collapse/CollapseTransition.js +29 -67
- package/dist/Collapse/index.js +2 -42
- package/dist/Collapse/typings.js +1 -17
- package/dist/ColorPicker/AlphaSlider.js +117 -99
- package/dist/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/ColorPicker/ColorPicker.js +233 -189
- package/dist/ColorPicker/HueSlider.js +102 -96
- package/dist/ColorPicker/Predefine.js +65 -66
- package/dist/ColorPicker/SvPanel.js +95 -81
- package/dist/ColorPicker/color.js +301 -213
- package/dist/ColorPicker/draggable.js +30 -48
- package/dist/ColorPicker/index.js +1 -39
- package/dist/ColorPicker/typings.js +1 -17
- package/dist/ColorPicker/util.js +23 -60
- package/dist/ConfigProvider/ConfigProvider.js +4 -28
- package/dist/ConfigProvider/index.js +1 -39
- package/dist/DatePicker/DatePicker.d.ts +3 -3
- package/dist/DatePicker/DatePicker.js +251 -227
- package/dist/DatePicker/DateRangePicker.d.ts +3 -3
- package/dist/DatePicker/DateRangePicker.js +279 -276
- package/dist/DatePicker/index.js +2 -39
- package/dist/DatePicker/main.d.ts +2 -2
- package/dist/DatePicker/main.js +21 -44
- package/dist/DatePicker/typings.d.ts +24 -17
- package/dist/DatePicker/typings.js +1 -17
- package/dist/DateTimePicker/DateTimePicker.d.ts +3 -5
- package/dist/DateTimePicker/DateTimePicker.js +286 -215
- package/dist/DateTimePicker/index.js +1 -39
- package/dist/DateTimePicker/typings.d.ts +10 -13
- package/dist/DateTimePicker/typings.js +1 -17
- package/dist/DateTimePicker/util.js +5 -35
- package/dist/Descriptions/Descriptions.js +83 -63
- package/dist/Descriptions/DescriptionsCell.js +67 -79
- package/dist/Descriptions/DescriptionsContext.js +4 -32
- package/dist/Descriptions/DescriptionsItem.js +4 -27
- package/dist/Descriptions/DescriptionsRow.js +42 -44
- package/dist/Descriptions/index.js +2 -42
- package/dist/Descriptions/typings.js +1 -17
- package/dist/Dialog/Dialog.js +224 -176
- package/dist/Dialog/DialogBody.js +52 -59
- package/dist/Dialog/DialogContext.js +6 -44
- package/dist/Dialog/DialogFooter.js +21 -45
- package/dist/Dialog/DialogHeader.js +44 -50
- package/dist/Dialog/index.js +1 -39
- package/dist/Dialog/typings.d.ts +1 -1
- package/dist/Dialog/typings.js +1 -17
- package/dist/Dialog/useDraggable.js +52 -79
- package/dist/Divider/Divider.d.ts +3 -3
- package/dist/Divider/Divider.js +38 -44
- package/dist/Divider/index.js +1 -39
- package/dist/Drawer/Drawer.js +144 -136
- package/dist/Drawer/DrawerBody.js +35 -57
- package/dist/Drawer/DrawerContext.js +13 -44
- package/dist/Drawer/DrawerFooter.js +22 -43
- package/dist/Drawer/DrawerHeader.js +41 -48
- package/dist/Drawer/index.js +1 -39
- package/dist/Drawer/typings.js +1 -17
- package/dist/Dropdown/Dropdown.js +89 -107
- package/dist/Dropdown/DropdownContext.js +5 -43
- package/dist/Dropdown/DropdownItem.js +40 -60
- package/dist/Dropdown/DropdownMenu.js +28 -56
- package/dist/Dropdown/index.js +3 -45
- package/dist/Dropdown/typings.js +1 -17
- package/dist/Empty/Empty.js +32 -53
- package/dist/Empty/ImgEmpty.js +115 -117
- package/dist/Empty/index.js +1 -39
- package/dist/Form/FieldContext.js +8 -37
- package/dist/Form/Form.js +167 -162
- package/dist/Form/FormContext.js +58 -97
- package/dist/Form/FormItem.js +620 -352
- package/dist/Form/FormItemContext.js +3 -31
- package/dist/Form/List.js +121 -104
- package/dist/Form/ListContext.js +3 -27
- package/dist/Form/index.js +3 -45
- package/dist/Form/typings.d.ts +25 -4
- package/dist/Form/typings.js +1 -17
- package/dist/Form/useForm.js +830 -690
- package/dist/Form/useWatch.js +64 -79
- package/dist/Form/utils/NameMap.js +98 -69
- package/dist/Form/utils/asyncUtil.js +9 -37
- package/dist/Form/utils/classUtil.js +26 -48
- package/dist/Form/utils/cloneDeep.js +8 -29
- package/dist/Form/utils/get.js +6 -30
- package/dist/Form/utils/messages.js +25 -53
- package/dist/Form/utils/set.js +31 -44
- package/dist/Form/utils/typeUtil.js +3 -31
- package/dist/Form/utils/util.js +18 -55
- package/dist/Form/utils/validateUtil.js +284 -159
- package/dist/Form/utils/valueUtil.js +102 -107
- package/dist/Icon/Icon.js +39 -63
- package/dist/Icon/IconList/Check.js +25 -65
- package/dist/Icon/IconList/Close.js +23 -52
- package/dist/Icon/IconList/Delete.js +25 -65
- package/dist/Icon/IconList/Down.js +25 -65
- package/dist/Icon/IconList/Eye.js +25 -65
- package/dist/Icon/IconList/EyeClose.js +25 -65
- package/dist/Icon/IconList/Left.js +25 -65
- package/dist/Icon/IconList/Link.js +19 -55
- package/dist/Icon/IconList/More.js +25 -65
- package/dist/Icon/IconList/Question.js +25 -65
- package/dist/Icon/IconList/Right.js +25 -65
- package/dist/Icon/IconList/Search.js +25 -65
- package/dist/Icon/IconList/Up.js +25 -65
- package/dist/Icon/IconList/Upload.js +25 -65
- package/dist/Icon/IconList/index.js +14 -68
- package/dist/Icon/index.js +2 -42
- package/dist/Icon/typings.js +1 -17
- package/dist/Input/Input.js +334 -358
- package/dist/Input/InputGroup.js +27 -43
- package/dist/Input/InputRange.js +295 -308
- package/dist/Input/TextArea.js +129 -120
- package/dist/Input/index.js +3 -45
- package/dist/Input/typings.js +1 -17
- package/dist/InputNumber/InputNumber.js +219 -203
- package/dist/InputNumber/index.js +1 -39
- package/dist/InputNumber/typings.d.ts +1 -1
- package/dist/InputNumber/typings.js +1 -17
- package/dist/Link/Link.js +43 -60
- package/dist/Link/index.js +1 -39
- package/dist/Link/typings.js +1 -17
- package/dist/Loading/Loading.js +93 -66
- package/dist/Loading/index.js +1 -39
- package/dist/Loading/typings.js +1 -17
- package/dist/Message/Main.js +41 -66
- package/dist/Message/Message.js +167 -130
- package/dist/Message/index.js +68 -88
- package/dist/Message/typings.js +1 -17
- package/dist/MessageBox/Main.js +43 -68
- package/dist/MessageBox/MessageBox.js +253 -202
- package/dist/MessageBox/index.js +74 -79
- package/dist/MessageBox/typings.js +1 -17
- package/dist/Notification/Main.js +41 -66
- package/dist/Notification/Notification.js +148 -131
- package/dist/Notification/index.js +76 -92
- package/dist/Notification/typings.js +1 -17
- package/dist/Pagination/Options.js +104 -99
- package/dist/Pagination/Pager.js +30 -61
- package/dist/Pagination/Pagination.js +462 -380
- package/dist/Pagination/index.js +1 -39
- package/dist/Pagination/typings.js +1 -17
- package/dist/Pagination/util.js +10 -41
- package/dist/Popconfirm/Popconfirm.js +108 -116
- package/dist/Popconfirm/index.js +1 -39
- package/dist/Popconfirm/typings.js +1 -17
- package/dist/Popover/Popover.js +87 -89
- package/dist/Popover/index.js +1 -39
- package/dist/Popover/typings.js +1 -17
- package/dist/Popper/Popper.js +172 -149
- package/dist/Popper/index.js +1 -39
- package/dist/Popper/popperOptions.js +79 -90
- package/dist/Popper/typings.js +1 -17
- package/dist/Progress/Progress.js +186 -155
- package/dist/Progress/index.js +1 -39
- package/dist/Progress/typings.js +1 -17
- package/dist/Radio/Radio.js +158 -117
- package/dist/Radio/RadioButton.js +127 -117
- package/dist/Radio/index.js +1 -39
- package/dist/Radio/typings.js +1 -17
- package/dist/RadioGroup/RadioGroup.js +63 -78
- package/dist/RadioGroup/index.js +1 -39
- package/dist/RadioGroup/typings.js +1 -17
- package/dist/Row/Row.js +41 -62
- package/dist/Row/RowContext.js +3 -31
- package/dist/Row/index.js +2 -42
- package/dist/Row/typings.js +1 -17
- package/dist/Scrollbar/Scrollbar.js +172 -133
- package/dist/Scrollbar/Thumb.js +108 -96
- package/dist/Scrollbar/index.js +1 -39
- package/dist/Scrollbar/typings.d.ts +11 -2
- package/dist/Scrollbar/typings.js +1 -17
- package/dist/Scrollbar/util.js +24 -51
- package/dist/Select/Option.js +50 -75
- package/dist/Select/OptionGroup.js +31 -47
- package/dist/Select/Select.js +25 -48
- package/dist/Select/SelectContext.js +8 -46
- package/dist/Select/SelectCore.js +449 -377
- package/dist/Select/SelectDropdown.js +200 -160
- package/dist/Select/index.js +2 -42
- package/dist/Select/typings.d.ts +1 -1
- package/dist/Select/typings.js +1 -17
- package/dist/Skeleton/PlaceholderGraph.js +39 -45
- package/dist/Skeleton/PlaceholderGrid.js +55 -67
- package/dist/Skeleton/PlaceholderParagraph.js +51 -52
- package/dist/Skeleton/Skeleton.js +8 -42
- package/dist/Skeleton/index.js +1 -39
- package/dist/Switch/Switch.js +177 -154
- package/dist/Switch/index.js +1 -39
- package/dist/Switch/typings.js +1 -17
- package/dist/Table/Colgroup.js +17 -41
- package/dist/Table/Table.js +246 -188
- package/dist/Table/TableBody.js +265 -200
- package/dist/Table/TableCell.js +461 -320
- package/dist/Table/TableColumn.js +9 -43
- package/dist/Table/TableContext.js +44 -63
- package/dist/Table/TableHeader.js +112 -102
- package/dist/Table/TableHeaderCell.js +211 -158
- package/dist/Table/hooks/useResize.js +69 -83
- package/dist/Table/hooks/useScroll.js +88 -114
- package/dist/Table/hooks/useSelection.js +145 -110
- package/dist/Table/hooks/useTable.js +411 -309
- package/dist/Table/index.js +2 -42
- package/dist/Table/treeUtil.js +99 -77
- package/dist/Table/typings.js +1 -17
- package/dist/Table/util.js +168 -109
- package/dist/Tabs/TabPane.js +51 -53
- package/dist/Tabs/Tabs.js +277 -178
- package/dist/Tabs/TabsContext.js +4 -32
- package/dist/Tabs/index.js +2 -42
- package/dist/Tabs/typings.js +1 -17
- package/dist/Tag/Tag.js +75 -74
- package/dist/Tag/index.js +1 -39
- package/dist/Tag/typings.js +1 -17
- package/dist/TimeLine/TimeLine.js +13 -42
- package/dist/TimeLine/TimeLineItem.js +66 -54
- package/dist/TimeLine/index.js +2 -42
- package/dist/TimeLine/typings.js +1 -17
- package/dist/TimePicker/TimePicker.d.ts +1 -4
- package/dist/TimePicker/TimePicker.js +275 -215
- package/dist/TimePicker/TimePickerPanel.js +62 -71
- package/dist/TimePicker/TimePickerRange.d.ts +4 -4
- package/dist/TimePicker/TimePickerRange.js +371 -334
- package/dist/TimePicker/TimeRangePanel.js +182 -165
- package/dist/TimePicker/TimeSpinnerPanel.js +321 -267
- package/dist/TimePicker/index.d.ts +2 -3
- package/dist/TimePicker/index.js +1 -42
- package/dist/TimePicker/main.d.ts +9 -0
- package/dist/TimePicker/main.js +17 -0
- package/dist/TimePicker/typings.d.ts +29 -24
- package/dist/TimePicker/typings.js +1 -17
- package/dist/TimePicker/useTimePicker.js +62 -65
- package/dist/TimePicker/util.js +8 -40
- package/dist/Tooltip/Tooltip.js +172 -180
- package/dist/Tooltip/TooltipContext.js +8 -46
- package/dist/Tooltip/index.js +2 -42
- package/dist/Tooltip/typings.js +1 -17
- package/dist/Transfer/List.js +290 -241
- package/dist/Transfer/ListBody.js +92 -106
- package/dist/Transfer/ListItem.js +38 -51
- package/dist/Transfer/Transfer.js +323 -280
- package/dist/Transfer/index.js +1 -39
- package/dist/Transfer/interface.js +1 -17
- package/dist/Transfer/operation.js +35 -48
- package/dist/Transfer/search.js +30 -62
- package/dist/Transfer/typings/index.js +1 -17
- package/dist/Transfer/typings/list.js +1 -17
- package/dist/Transfer/typings/listBody.js +2 -30
- package/dist/Transition/Transition.js +271 -234
- package/dist/Transition/TransitionGroup.js +136 -88
- package/dist/Transition/TransitionGroupContext.js +2 -26
- package/dist/Transition/childMapping.js +84 -71
- package/dist/Transition/index.js +2 -42
- package/dist/Transition/util.d.ts +0 -1
- package/dist/Transition/util.js +6 -47
- package/dist/Tree/DirectoryTree.js +146 -118
- package/dist/Tree/DropIndicator.js +15 -45
- package/dist/Tree/Indent.js +23 -54
- package/dist/Tree/MotionTreeNode.js +94 -95
- package/dist/Tree/NodeList.js +228 -221
- package/dist/Tree/RCTree.js +969 -702
- package/dist/Tree/Tree.js +64 -79
- package/dist/Tree/TreeNode.js +254 -255
- package/dist/Tree/contextTypes.js +8 -42
- package/dist/Tree/index.js +4 -48
- package/dist/Tree/typings.js +1 -17
- package/dist/Tree/useUnmount.js +21 -41
- package/dist/Tree/util.js +156 -134
- package/dist/Tree/utils/conductUtil.js +113 -104
- package/dist/Tree/utils/dictUtil.js +50 -78
- package/dist/Tree/utils/diffUtil.js +26 -43
- package/dist/Tree/utils/dropIndicator.js +23 -51
- package/dist/Tree/utils/iconUtil.js +44 -51
- package/dist/Tree/utils/keyUtil.js +2 -26
- package/dist/Tree/utils/motion.js +34 -72
- package/dist/Tree/utils/pickAttrs.js +30 -58
- package/dist/Tree/utils/treeUtil.js +263 -203
- package/dist/TreeSelect/TreeSelect.js +521 -459
- package/dist/TreeSelect/Utils.js +15 -36
- package/dist/TreeSelect/index.js +1 -39
- package/dist/TreeSelect/typings.d.ts +1 -1
- package/dist/TreeSelect/typings.js +1 -17
- package/dist/Upload/Upload.js +106 -109
- package/dist/Upload/UploadContent.js +227 -182
- package/dist/Upload/UploadContext.js +5 -33
- package/dist/Upload/UploadDrag.js +77 -97
- package/dist/Upload/UploadList.js +104 -73
- package/dist/Upload/ajax.js +45 -71
- package/dist/Upload/index.js +1 -39
- package/dist/Upload/typings.js +34 -36
- package/dist/Upload/use-handlers.js +182 -126
- package/dist/Util/Math.js +81 -78
- package/dist/Util/PopupManager.js +5 -27
- package/dist/Util/base.js +101 -171
- package/dist/Util/genFileId.js +3 -29
- package/dist/Util/index.js +6 -51
- package/dist/Util/resize-event.js +31 -54
- package/dist/Util/shallowEqual.js +30 -28
- package/dist/Util/treeUtils.js +68 -64
- package/dist/config/Constants.js +17 -47
- package/dist/display.css +1 -0
- package/dist/hooks/animationPropsUtils.js +25 -49
- package/dist/hooks/htmlPropsUtils.js +54 -121
- package/dist/hooks/index.js +14 -73
- package/dist/hooks/popperPropsUtils.js +25 -67
- package/dist/hooks/prefix.js +22 -55
- package/dist/hooks/treePropsUtils.js +24 -103
- package/dist/hooks/useChildrenInstance.js +51 -60
- package/dist/hooks/useClassNames.d.ts +2 -0
- package/dist/hooks/useClassNames.js +279 -197
- package/dist/hooks/useClickOutside.js +37 -62
- package/dist/hooks/useCommonProps.js +17 -53
- package/dist/hooks/useComponentWillMount.js +4 -28
- package/dist/hooks/useControlled.js +31 -37
- package/dist/hooks/useForceUpdate.js +16 -34
- package/dist/hooks/useUpdateEffect.js +6 -29
- package/dist/index.css +1 -57810
- package/dist/index.d.ts +0 -2
- package/dist/index.js +69 -237
- package/dist/theme-chalk/common/index.js +1 -2
- package/dist/theme-chalk/common/index.scss +2 -2
- package/dist/theme-chalk/date-picker/index.scss +1 -1
- package/dist/theme-chalk/display.scss +46 -0
- package/dist/theme-chalk/form/index.scss +21 -2
- package/dist/types/common.js +1 -17
- package/dist/types/type.js +16 -28
- package/package.json +6 -1
- package/theme-chalk/common/index.scss +2 -2
- package/theme-chalk/date-picker/index.scss +1 -1
- package/theme-chalk/display.scss +46 -0
- package/theme-chalk/form/index.scss +21 -2
|
@@ -1,82 +1,106 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
10
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
18
|
+
import find from 'lodash/find';
|
|
19
|
+
import isEqual from 'lodash/isEqual';
|
|
20
|
+
import last from 'lodash/last';
|
|
21
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
22
|
+
import { isEmpty, isNotEmpty, randomCode } from "../Util";
|
|
23
|
+
export var useCascader = function useCascader(initialData, props, value) {
|
|
24
|
+
var menuProps = props.props,
|
|
25
|
+
showAllLevels = props.showAllLevels,
|
|
26
|
+
separator = props.separator;
|
|
27
|
+
var _menuProps$childrenKe = menuProps.childrenKey,
|
|
28
|
+
childrenKey = _menuProps$childrenKe === void 0 ? 'children' : _menuProps$childrenKe,
|
|
29
|
+
_menuProps$valueKey = menuProps.valueKey,
|
|
30
|
+
valueKey = _menuProps$valueKey === void 0 ? 'value' : _menuProps$valueKey,
|
|
31
|
+
_menuProps$labelKey = menuProps.labelKey,
|
|
32
|
+
labelKey = _menuProps$labelKey === void 0 ? 'label' : _menuProps$labelKey,
|
|
33
|
+
_menuProps$leafKey = menuProps.leafKey,
|
|
34
|
+
leafKey = _menuProps$leafKey === void 0 ? 'leaf' : _menuProps$leafKey,
|
|
35
|
+
lazy = menuProps.lazy;
|
|
36
|
+
// 展开层级数
|
|
37
|
+
var _useState = useState(0),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
allLevel = _useState2[0],
|
|
40
|
+
setAllLevel = _useState2[1];
|
|
41
|
+
// 缓存每层组件类型
|
|
42
|
+
var _useState3 = useState([]),
|
|
43
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
44
|
+
dataTypes = _useState4[0],
|
|
45
|
+
setDataTypes = _useState4[1];
|
|
46
|
+
// 缓存每层组件类型(同上)
|
|
47
|
+
var _dataTypes = useRef([]);
|
|
48
|
+
// 缓存每层平铺数据
|
|
49
|
+
var _useState5 = useState({}),
|
|
50
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
51
|
+
optionData = _useState6[0],
|
|
52
|
+
setOptionData = _useState6[1];
|
|
53
|
+
// 缓存每层平铺数据(同上)
|
|
54
|
+
var _optionData = useRef({});
|
|
55
|
+
// 选中的数据组
|
|
56
|
+
var selectedValue = useRef([]);
|
|
57
|
+
// 选中的数据标签组
|
|
58
|
+
var selectedLabel = useRef([]);
|
|
59
|
+
// 选中的节点组
|
|
60
|
+
var selectedNode = useRef([]);
|
|
61
|
+
// 选中的节点组(多选)
|
|
62
|
+
var checkedNodes = useRef([]);
|
|
63
|
+
// 树组件扩展keys
|
|
64
|
+
var expandKeys = useRef({});
|
|
28
65
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const init = (0, import_react.useCallback)(
|
|
55
|
-
(nodes = [], level, pid = "0") => {
|
|
56
|
-
nodes.forEach((item) => {
|
|
57
|
-
const __id = (0, import_Util.randomCode)(11);
|
|
58
|
-
if (Object.prototype.hasOwnProperty.call(item, childrenKey)) {
|
|
59
|
-
init(item[childrenKey], level + 1, __id);
|
|
60
|
-
}
|
|
61
|
-
if (_optionData.current[`level${level}`] === void 0) {
|
|
62
|
-
_optionData.current[`level${level}`] = [];
|
|
63
|
-
}
|
|
64
|
-
Object.assign(item, {
|
|
65
|
-
__level: level,
|
|
66
|
-
__id,
|
|
67
|
-
__pId: pid,
|
|
68
|
-
__leaf: item[leafKey] ?? !Object.prototype.hasOwnProperty.call(item, childrenKey) ?? false,
|
|
69
|
-
__checked: false,
|
|
70
|
-
__indeterminate: false
|
|
71
|
-
});
|
|
72
|
-
_optionData.current[`level${level}`].push(item);
|
|
66
|
+
/**
|
|
67
|
+
* 初始化时分离不同层级的数据
|
|
68
|
+
* @param nodes
|
|
69
|
+
* @param level 层级
|
|
70
|
+
*/
|
|
71
|
+
var init = useCallback(function () {
|
|
72
|
+
var nodes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
73
|
+
var level = arguments.length > 1 ? arguments[1] : undefined;
|
|
74
|
+
var pid = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
|
75
|
+
nodes.forEach(function (item) {
|
|
76
|
+
var _ref, _item$leafKey;
|
|
77
|
+
var __id = randomCode(11);
|
|
78
|
+
if (Object.prototype.hasOwnProperty.call(item, childrenKey)) {
|
|
79
|
+
init(item[childrenKey], level + 1, __id);
|
|
80
|
+
}
|
|
81
|
+
if (_optionData.current["level".concat(level)] === undefined) {
|
|
82
|
+
_optionData.current["level".concat(level)] = [];
|
|
83
|
+
}
|
|
84
|
+
Object.assign(item, {
|
|
85
|
+
__level: level,
|
|
86
|
+
__id: __id,
|
|
87
|
+
__pId: pid,
|
|
88
|
+
__leaf: (_ref = (_item$leafKey = item[leafKey]) !== null && _item$leafKey !== void 0 ? _item$leafKey : !Object.prototype.hasOwnProperty.call(item, childrenKey)) !== null && _ref !== void 0 ? _ref : false,
|
|
89
|
+
__checked: false,
|
|
90
|
+
__indeterminate: false
|
|
73
91
|
});
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
|
|
92
|
+
_optionData.current["level".concat(level)].push(item);
|
|
93
|
+
});
|
|
94
|
+
return _optionData.current;
|
|
95
|
+
}, [childrenKey, leafKey]);
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 设置任意层级节点的值
|
|
99
|
+
* @param level 层级
|
|
100
|
+
* @param value
|
|
101
|
+
*/
|
|
102
|
+
var setSelectedValue = useCallback(function (level, val) {
|
|
103
|
+
selectedValue.current = selectedValue.current.map(function (item, l) {
|
|
80
104
|
if (l < level) {
|
|
81
105
|
return item;
|
|
82
106
|
} else if (level === l) {
|
|
@@ -86,8 +110,14 @@ var useCascader = (initialData, props, value) => {
|
|
|
86
110
|
}
|
|
87
111
|
});
|
|
88
112
|
}, []);
|
|
89
|
-
|
|
90
|
-
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* 设置任意层级节点的标签
|
|
116
|
+
* @param level 层级
|
|
117
|
+
* @param value
|
|
118
|
+
*/
|
|
119
|
+
var setSelectedLabel = useCallback(function (level, val) {
|
|
120
|
+
selectedLabel.current = selectedLabel.current.map(function (item, l) {
|
|
91
121
|
if (l < level) {
|
|
92
122
|
return item;
|
|
93
123
|
} else if (level === l) {
|
|
@@ -97,388 +127,546 @@ var useCascader = (initialData, props, value) => {
|
|
|
97
127
|
}
|
|
98
128
|
});
|
|
99
129
|
}, []);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 设置任意层级节点的标签
|
|
133
|
+
* @param level 层级
|
|
134
|
+
* @param value
|
|
135
|
+
*/
|
|
136
|
+
var setSelectedNode = useCallback(function (level, node) {
|
|
137
|
+
selectedNode.current = selectedNode.current.map(function (item, l) {
|
|
138
|
+
if (l < level) {
|
|
139
|
+
return item;
|
|
140
|
+
} else if (level === l) {
|
|
141
|
+
return node;
|
|
142
|
+
} else {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
setSelectedValue(level, node[valueKey]);
|
|
147
|
+
setSelectedLabel(level, node[labelKey]);
|
|
148
|
+
}, [labelKey, setSelectedLabel, setSelectedValue, valueKey]);
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 获取选中的值
|
|
152
|
+
* @param level 层级
|
|
153
|
+
* @returns
|
|
154
|
+
*/
|
|
155
|
+
var getSelectedValue = useCallback(function () {
|
|
156
|
+
var res = selectedValue.current.filter(function (item) {
|
|
157
|
+
return isNotEmpty(item);
|
|
158
|
+
});
|
|
159
|
+
// if (showAllLevels) {
|
|
160
|
+
// return cloneDeep(res);
|
|
161
|
+
// } else {
|
|
162
|
+
// return last(res);
|
|
163
|
+
// }
|
|
164
|
+
return cloneDeep(res);
|
|
119
165
|
}, []);
|
|
120
|
-
|
|
121
|
-
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 获取任意层级选中的值
|
|
169
|
+
* @param level 层级
|
|
170
|
+
* @returns
|
|
171
|
+
*/
|
|
172
|
+
var getValueOfLevel = useCallback(function (level) {
|
|
173
|
+
if (isNotEmpty(level)) {
|
|
122
174
|
return selectedValue.current[level];
|
|
123
175
|
}
|
|
124
176
|
}, []);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* 获取选中的文本
|
|
180
|
+
* @param level 层级
|
|
181
|
+
* @returns
|
|
182
|
+
*/
|
|
183
|
+
var getSelectedLabel = useCallback(function (labelFormatter) {
|
|
184
|
+
var res = selectedLabel.current.filter(function (item) {
|
|
185
|
+
return isNotEmpty(item);
|
|
186
|
+
});
|
|
187
|
+
if (showAllLevels) {
|
|
188
|
+
return labelFormatter ? labelFormatter(selectedNode.current.filter(function (item) {
|
|
189
|
+
return isNotEmpty(item);
|
|
190
|
+
})) : res.join(separator);
|
|
191
|
+
} else {
|
|
192
|
+
return labelFormatter ? labelFormatter(selectedNode.current.slice(res.length - 1)) : last(res);
|
|
193
|
+
}
|
|
194
|
+
}, [separator, showAllLevels]);
|
|
195
|
+
var loopCheckedNodes = useCallback(function (level, node, checked) {
|
|
196
|
+
var _optionData$current, _optionData$current2, _node$children;
|
|
197
|
+
_optionData.current = _objectSpread(_objectSpread({}, _optionData.current), {}, _defineProperty({}, "level".concat(level), ((_optionData$current = (_optionData$current2 = _optionData.current) === null || _optionData$current2 === void 0 ? void 0 : _optionData$current2["level".concat(level)]) !== null && _optionData$current !== void 0 ? _optionData$current : []).map(function (item) {
|
|
198
|
+
// 当前节点选中状态变更
|
|
199
|
+
if (item.__id === node.__id) {
|
|
200
|
+
var _item$children;
|
|
201
|
+
if ((item === null || item === void 0 || (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) > 0) {
|
|
202
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
203
|
+
__checked: checked,
|
|
204
|
+
__indeterminate: false,
|
|
205
|
+
// 子节点状态同步
|
|
206
|
+
children: item.children.map(function (child) {
|
|
207
|
+
return _objectSpread(_objectSpread({}, child), {}, {
|
|
208
|
+
__checked: checked,
|
|
209
|
+
__indeterminate: false
|
|
210
|
+
});
|
|
211
|
+
})
|
|
212
|
+
});
|
|
153
213
|
}
|
|
154
|
-
return item
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
214
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
215
|
+
__checked: checked,
|
|
216
|
+
__indeterminate: false
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return item;
|
|
220
|
+
})));
|
|
221
|
+
// 递归将下一级节点列表同步成父级节点状态
|
|
222
|
+
if ((node === null || node === void 0 || (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.length) > 0) {
|
|
223
|
+
node.children.forEach(function (child) {
|
|
159
224
|
loopCheckedNodes(level + 1, child, checked);
|
|
160
225
|
});
|
|
161
226
|
}
|
|
162
227
|
}, []);
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
228
|
+
var getParent = useCallback(function (level, node) {
|
|
229
|
+
var _ref2;
|
|
230
|
+
var options = (_ref2 = isNotEmpty(optionData) ? optionData : _optionData.current) === null || _ref2 === void 0 ? void 0 : _ref2["level".concat(level - 1)];
|
|
231
|
+
if (options) {
|
|
232
|
+
var _parent = options.find(function (item) {
|
|
233
|
+
return item.__id === node.__pId;
|
|
234
|
+
});
|
|
235
|
+
return _parent;
|
|
236
|
+
}
|
|
237
|
+
return null;
|
|
238
|
+
// let parent;
|
|
239
|
+
// if (_parent.length > 1) {
|
|
240
|
+
// _parent.find(item => item?.children?.some(child => child.__id === node.__id));
|
|
241
|
+
// } else if (_parent.length > 0) {
|
|
242
|
+
// parent = _parent[0];
|
|
243
|
+
// }
|
|
244
|
+
}, [optionData]);
|
|
245
|
+
var loopGetParent = useCallback(function (level, node) {
|
|
246
|
+
var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
247
|
+
var _parent = getParent(level, node);
|
|
248
|
+
if (_parent) {
|
|
249
|
+
result.push(_parent);
|
|
250
|
+
loopGetParent(level - 1, _parent, result);
|
|
251
|
+
}
|
|
252
|
+
return result;
|
|
253
|
+
}, [getParent]);
|
|
254
|
+
|
|
255
|
+
/** 同步父级节点选中状态 */
|
|
256
|
+
var loopParentStatus = useCallback(function (level, node, checked, indeterminate) {
|
|
257
|
+
var val = selectedValue.current[level - 1];
|
|
258
|
+
var parentChecked = checked;
|
|
259
|
+
var parentInterminate = indeterminate;
|
|
260
|
+
if (val) {
|
|
261
|
+
var parent = getParent(level, node);
|
|
262
|
+
if (parent) {
|
|
263
|
+
var _optionData$current3, _optionData$current4;
|
|
264
|
+
_optionData.current = _objectSpread(_objectSpread({}, _optionData.current), {}, _defineProperty({}, "level".concat(level - 1), ((_optionData$current3 = (_optionData$current4 = _optionData.current) === null || _optionData$current4 === void 0 ? void 0 : _optionData$current4["level".concat(level - 1)]) !== null && _optionData$current3 !== void 0 ? _optionData$current3 : []).map(function (item) {
|
|
265
|
+
// 父级节点
|
|
266
|
+
if (item.__id === parent.__id) {
|
|
267
|
+
// 父级节点children里状态
|
|
268
|
+
var _children = item.children.map(function (child) {
|
|
269
|
+
if (child.__id === node.__id) {
|
|
270
|
+
return _objectSpread(_objectSpread({}, child), {}, {
|
|
271
|
+
__checked: checked,
|
|
272
|
+
__indeterminate: indeterminate
|
|
204
273
|
});
|
|
205
|
-
const checkCount = _children.filter((child) => child.__checked).length;
|
|
206
|
-
const indeterminateCount = _children.filter((child) => child.__indeterminate).length;
|
|
207
|
-
parentChecked = checkCount === _children.length;
|
|
208
|
-
parentInterminate = indeterminateCount > 0 || checkCount > 0 && checkCount < _children.length;
|
|
209
|
-
return {
|
|
210
|
-
...item,
|
|
211
|
-
__checked: parentChecked,
|
|
212
|
-
__indeterminate: parentInterminate,
|
|
213
|
-
children: _children
|
|
214
|
-
};
|
|
215
274
|
}
|
|
216
|
-
return
|
|
217
|
-
})
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
275
|
+
return child;
|
|
276
|
+
});
|
|
277
|
+
// 计算父级节点勾选和半选状态
|
|
278
|
+
var checkCount = _children.filter(function (child) {
|
|
279
|
+
return child.__checked;
|
|
280
|
+
}).length;
|
|
281
|
+
var indeterminateCount = _children.filter(function (child) {
|
|
282
|
+
return child.__indeterminate;
|
|
283
|
+
}).length;
|
|
284
|
+
parentChecked = checkCount === _children.length;
|
|
285
|
+
parentInterminate = indeterminateCount > 0 || checkCount > 0 && checkCount < _children.length;
|
|
286
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
287
|
+
__checked: parentChecked,
|
|
288
|
+
__indeterminate: parentInterminate,
|
|
289
|
+
children: _children
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return item;
|
|
293
|
+
})));
|
|
294
|
+
loopParentStatus(level - 1, parent, parentChecked, parentInterminate);
|
|
221
295
|
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
)
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (item.__checked && (!Object.prototype.hasOwnProperty.call(item,
|
|
228
|
-
result.push([
|
|
296
|
+
}
|
|
297
|
+
}, [getParent]);
|
|
298
|
+
var loopGetCheckedNodes = useCallback(function (level, nodes, path, result) {
|
|
299
|
+
nodes === null || nodes === void 0 || nodes.forEach(function (item) {
|
|
300
|
+
// 只有一级且选中
|
|
301
|
+
if (item.__checked && (!Object.prototype.hasOwnProperty.call(item, 'children') || item.children.length === 0)) {
|
|
302
|
+
result.push([].concat(_toConsumableArray(path), [item]));
|
|
229
303
|
} else if (item.__checked || item.__indeterminate) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
return
|
|
235
|
-
})
|
|
236
|
-
|
|
237
|
-
result
|
|
238
|
-
);
|
|
304
|
+
var _item$children$map;
|
|
305
|
+
loopGetCheckedNodes(level + 1, (_item$children$map = item.children.map(function (child) {
|
|
306
|
+
var _optionData$current5;
|
|
307
|
+
return (_optionData$current5 = _optionData.current) === null || _optionData$current5 === void 0 || (_optionData$current5 = _optionData$current5["level".concat(level + 1)]) === null || _optionData$current5 === void 0 ? void 0 : _optionData$current5.find(function (node) {
|
|
308
|
+
return node.__id === child.__id;
|
|
309
|
+
});
|
|
310
|
+
})) !== null && _item$children$map !== void 0 ? _item$children$map : [], [].concat(_toConsumableArray(path), [item]), result);
|
|
239
311
|
}
|
|
240
312
|
});
|
|
241
313
|
return result;
|
|
242
314
|
}, []);
|
|
243
|
-
|
|
244
|
-
var
|
|
245
|
-
|
|
246
|
-
(
|
|
247
|
-
|
|
315
|
+
var getCheckedNodes = useCallback(function () {
|
|
316
|
+
var _optionData$current6;
|
|
317
|
+
var result = [];
|
|
318
|
+
(_optionData$current6 = _optionData.current) === null || _optionData$current6 === void 0 || (_optionData$current6 = _optionData$current6['level0']) === null || _optionData$current6 === void 0 || _optionData$current6.forEach(function (item) {
|
|
319
|
+
// 只有一级且选中
|
|
320
|
+
if (item.__checked && (!Object.prototype.hasOwnProperty.call(item, 'children') || item.children.length === 0)) {
|
|
248
321
|
result.push([item]);
|
|
249
322
|
} else if (item.__checked || item.__indeterminate) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
323
|
+
var _item$children$map2;
|
|
324
|
+
loopGetCheckedNodes(1, (_item$children$map2 = item.children.map(function (child) {
|
|
325
|
+
var _optionData$current7;
|
|
326
|
+
return (_optionData$current7 = _optionData.current) === null || _optionData$current7 === void 0 || (_optionData$current7 = _optionData$current7['level1']) === null || _optionData$current7 === void 0 ? void 0 : _optionData$current7.find(function (node) {
|
|
327
|
+
return node.__id === child.__id;
|
|
328
|
+
});
|
|
329
|
+
})) !== null && _item$children$map2 !== void 0 ? _item$children$map2 : [], [item], result);
|
|
254
330
|
}
|
|
255
331
|
});
|
|
256
332
|
return result;
|
|
257
333
|
}, [loopGetCheckedNodes]);
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* 设置选中节点
|
|
337
|
+
* @param level 层级
|
|
338
|
+
* @param node 当前节点
|
|
339
|
+
* @param checked 是否选中
|
|
340
|
+
*/
|
|
341
|
+
var setCheckedNode = useCallback(function (level, node, checked) {
|
|
342
|
+
if (isEmpty(_optionData.current)) {
|
|
343
|
+
_optionData.current = optionData;
|
|
344
|
+
}
|
|
345
|
+
loopCheckedNodes(level, node, checked);
|
|
346
|
+
loopParentStatus(level, node, checked, false);
|
|
347
|
+
checkedNodes.current = getCheckedNodes();
|
|
348
|
+
setOptionData(_optionData.current);
|
|
349
|
+
}, [getCheckedNodes, loopCheckedNodes, loopParentStatus, optionData]);
|
|
350
|
+
var getCheckedValue = useCallback(function () {
|
|
351
|
+
return checkedNodes.current.map(function (nodes) {
|
|
352
|
+
return nodes.map(function (item) {
|
|
353
|
+
return item[valueKey];
|
|
354
|
+
});
|
|
355
|
+
});
|
|
272
356
|
}, [valueKey]);
|
|
273
|
-
|
|
274
|
-
return checkedNodes.current.map((nodes)
|
|
357
|
+
var getCheckedLabel = useCallback(function () {
|
|
358
|
+
return checkedNodes.current.map(function (nodes) {
|
|
359
|
+
return nodes.map(function (item) {
|
|
360
|
+
return item[labelKey];
|
|
361
|
+
});
|
|
362
|
+
});
|
|
275
363
|
}, [labelKey]);
|
|
276
|
-
|
|
364
|
+
|
|
365
|
+
/** 清空值 */
|
|
366
|
+
var clearSelected = useCallback(function () {
|
|
277
367
|
selectedValue.current = new Array(allLevel + 1).fill(null);
|
|
278
368
|
selectedLabel.current = new Array(allLevel + 1).fill(null);
|
|
279
369
|
selectedNode.current = new Array(allLevel + 1).fill(null);
|
|
280
370
|
checkedNodes.current = [];
|
|
281
|
-
for (
|
|
282
|
-
_optionData.current = {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
371
|
+
for (var i = 0; i <= allLevel; i++) {
|
|
372
|
+
_optionData.current = _objectSpread(_objectSpread({}, _optionData.current), {}, _defineProperty({}, "level".concat(i), _optionData.current["level".concat(i)].map(function (item) {
|
|
373
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
374
|
+
__checked: false,
|
|
375
|
+
__indeterminate: false
|
|
376
|
+
});
|
|
377
|
+
})));
|
|
286
378
|
}
|
|
287
379
|
setOptionData(_optionData.current);
|
|
288
380
|
}, [allLevel]);
|
|
289
|
-
|
|
290
|
-
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* 获取任意节点的option数据
|
|
384
|
+
* @param level 层级
|
|
385
|
+
* @returns
|
|
386
|
+
*/
|
|
387
|
+
var getOptions = useCallback(function (level) {
|
|
291
388
|
if (level === 0) {
|
|
292
|
-
return _optionData.current[
|
|
389
|
+
return _optionData.current["level".concat(level)];
|
|
293
390
|
} else {
|
|
294
|
-
|
|
391
|
+
var _selectedNode$current;
|
|
392
|
+
// const options = optionData[`level${level - 1}`];
|
|
393
|
+
var parent = (_selectedNode$current = selectedNode.current) === null || _selectedNode$current === void 0 ? void 0 : _selectedNode$current[level - 1];
|
|
295
394
|
if (parent) {
|
|
296
|
-
|
|
395
|
+
var _optionData$current8;
|
|
396
|
+
// console.log(_optionData.current[`level${level}`].filter(item => item.__pId === parent.__id));
|
|
397
|
+
return (_optionData$current8 = _optionData.current) === null || _optionData$current8 === void 0 || (_optionData$current8 = _optionData$current8["level".concat(level)]) === null || _optionData$current8 === void 0 ? void 0 : _optionData$current8.filter(function (item) {
|
|
398
|
+
return item.__pId === parent.__id;
|
|
399
|
+
});
|
|
400
|
+
// return (options.find(item => item.__id === parent.__id) ?? {})[childrenKey];
|
|
297
401
|
}
|
|
298
402
|
return null;
|
|
299
403
|
}
|
|
300
404
|
}, []);
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* 懒加载时存储option
|
|
408
|
+
* @param nodes
|
|
409
|
+
* @param level 层级
|
|
410
|
+
*/
|
|
411
|
+
var storeOptionData = useCallback(function (nodes, level, parent, _ref3) {
|
|
412
|
+
var isCover = _ref3.isCover;
|
|
413
|
+
var data = cloneDeep(_optionData.current);
|
|
414
|
+
var newNodes = [];
|
|
415
|
+
newNodes = nodes.map(function (node) {
|
|
416
|
+
var _parent$__id, _node$leafKey;
|
|
417
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
307
418
|
__level: level,
|
|
308
|
-
__id:
|
|
309
|
-
__pId: (parent
|
|
310
|
-
__leaf: node[leafKey]
|
|
419
|
+
__id: randomCode(11),
|
|
420
|
+
__pId: (_parent$__id = parent === null || parent === void 0 ? void 0 : parent.__id) !== null && _parent$__id !== void 0 ? _parent$__id : '0',
|
|
421
|
+
__leaf: (_node$leafKey = node[leafKey]) !== null && _node$leafKey !== void 0 ? _node$leafKey : false,
|
|
311
422
|
__checked: false,
|
|
312
423
|
__indeterminate: false
|
|
313
|
-
})
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
// 新的层级
|
|
428
|
+
if (isEmpty(data["level".concat(level)])) {
|
|
429
|
+
data = _objectSpread(_objectSpread({}, data), {}, _defineProperty({}, "level".concat(level), newNodes));
|
|
430
|
+
} else {
|
|
431
|
+
// 已存在的层级,扩充数组
|
|
432
|
+
data["level".concat(level)] = isCover ? newNodes : data["level".concat(level)].concat(newNodes);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// 给非叶子节点添加子节点
|
|
436
|
+
if (level > 0 && parent) {
|
|
437
|
+
var p = find(data["level".concat(level - 1)], {
|
|
438
|
+
__id: parent.__id
|
|
439
|
+
});
|
|
440
|
+
if (p) {
|
|
441
|
+
if (isEmpty(p === null || p === void 0 ? void 0 : p[childrenKey])) {
|
|
442
|
+
p[childrenKey] = newNodes;
|
|
443
|
+
if (newNodes.length === 0) {
|
|
444
|
+
p.__leaf = true;
|
|
332
445
|
}
|
|
446
|
+
} else {
|
|
447
|
+
p[childrenKey] = isCover ? newNodes : p[childrenKey].concat(newNodes);
|
|
333
448
|
}
|
|
334
449
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
} else {
|
|
346
|
-
selectedValue.current[level] = null;
|
|
347
|
-
selectedLabel.current[level] = null;
|
|
348
|
-
selectedNode.current[level] = null;
|
|
349
|
-
const _types = (0, import_cloneDeep.default)(_dataTypes.current);
|
|
350
|
-
_types[level] = false;
|
|
351
|
-
setDataTypes(_dataTypes.current = _types);
|
|
450
|
+
}
|
|
451
|
+
setOptionData(data);
|
|
452
|
+
_optionData.current = data;
|
|
453
|
+
if (level > allLevel) {
|
|
454
|
+
setAllLevel(level);
|
|
455
|
+
for (var i = 0; i < level - allLevel; i++) {
|
|
456
|
+
selectedValue.current.push(null);
|
|
457
|
+
selectedLabel.current.push(null);
|
|
458
|
+
selectedNode.current.push(null);
|
|
459
|
+
setDataTypes(_dataTypes.current);
|
|
352
460
|
}
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
[
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
461
|
+
} else {
|
|
462
|
+
selectedValue.current[level] = null;
|
|
463
|
+
selectedLabel.current[level] = null;
|
|
464
|
+
selectedNode.current[level] = null;
|
|
465
|
+
var _types = cloneDeep(_dataTypes.current);
|
|
466
|
+
_types[level] = false;
|
|
467
|
+
setDataTypes(_dataTypes.current = _types);
|
|
468
|
+
}
|
|
469
|
+
return data["level".concat(level)];
|
|
470
|
+
}, [allLevel, childrenKey, leafKey]);
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* 设置节点是否为叶子节点
|
|
474
|
+
* @param node
|
|
475
|
+
* @param isLeaf
|
|
476
|
+
*/
|
|
477
|
+
var setNodeLeaf = useCallback(function (node, isLeaf) {
|
|
478
|
+
var data = cloneDeep(optionData);
|
|
479
|
+
var _node = find(data["level".concat(node['__level'])], {
|
|
480
|
+
__id: node.__id
|
|
481
|
+
});
|
|
482
|
+
_node[leafKey] = isLeaf;
|
|
483
|
+
setOptionData(data);
|
|
484
|
+
_optionData.current = data;
|
|
485
|
+
}, [leafKey, optionData]);
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* 获取数据类型
|
|
489
|
+
* @param level 层级
|
|
490
|
+
* @returns
|
|
491
|
+
*/
|
|
492
|
+
var getDataType = useCallback(function (level) {
|
|
493
|
+
return lazy && dataTypes[level];
|
|
494
|
+
}, [dataTypes, lazy]);
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* 获取扩展key
|
|
498
|
+
* @param level 层级
|
|
499
|
+
* @returns
|
|
500
|
+
*/
|
|
501
|
+
var getExpandedKeys = useCallback(function (level) {
|
|
502
|
+
var _expandKeys$current;
|
|
503
|
+
return (_expandKeys$current = expandKeys.current["level".concat(level)]) !== null && _expandKeys$current !== void 0 ? _expandKeys$current : [];
|
|
375
504
|
}, []);
|
|
376
|
-
|
|
377
|
-
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* 设置扩展key
|
|
508
|
+
* @param level 层级
|
|
509
|
+
* @param keys
|
|
510
|
+
* @returns
|
|
511
|
+
*/
|
|
512
|
+
var setExpandedKeys = useCallback(function (level, keys) {
|
|
513
|
+
expandKeys.current["level".concat(level)] = keys;
|
|
378
514
|
}, []);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
515
|
+
|
|
516
|
+
/** 搜索 */
|
|
517
|
+
var handleSearch = useCallback(function (searchText) {
|
|
518
|
+
var result = [];
|
|
519
|
+
if (isNotEmpty(searchText)) {
|
|
520
|
+
var options = cloneDeep(_optionData.current);
|
|
521
|
+
var regex = new RegExp(searchText, 'gi');
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* 递归添加子节点
|
|
525
|
+
* @param level 层级
|
|
526
|
+
* @param nodes 子节点
|
|
527
|
+
* @param path 完整节点
|
|
528
|
+
* @returns
|
|
529
|
+
*/
|
|
530
|
+
var loopGetMatchNodes = function loopGetMatchNodes(level, nodes, path) {
|
|
531
|
+
var _loop = function _loop(_index) {
|
|
532
|
+
var item = nodes[_index];
|
|
533
|
+
// 最后一级,结束递归
|
|
534
|
+
if (!Object.prototype.hasOwnProperty.call(item, 'children') || item.children.length === 0) {
|
|
535
|
+
result.push([].concat(_toConsumableArray(path), [item]));
|
|
536
|
+
} else if (item.children.length > 0) {
|
|
537
|
+
var _item$children2;
|
|
538
|
+
loopGetMatchNodes(level + 1, (_item$children2 = item.children) !== null && _item$children2 !== void 0 ? _item$children2 : [], [].concat(_toConsumableArray(path), [item]));
|
|
399
539
|
}
|
|
400
|
-
|
|
540
|
+
nodes.splice(_index, 1);
|
|
541
|
+
options["level".concat(level)].splice(options["level".concat(level)].findIndex(function (node) {
|
|
542
|
+
return node.__id === item.__id;
|
|
543
|
+
}), 1);
|
|
544
|
+
_index--;
|
|
545
|
+
index = _index;
|
|
401
546
|
};
|
|
402
|
-
for (
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
547
|
+
for (var index = 0; index < nodes.length; index++) {
|
|
548
|
+
_loop(index);
|
|
549
|
+
}
|
|
550
|
+
return result;
|
|
551
|
+
};
|
|
552
|
+
for (var i = 0; i <= allLevel; i++) {
|
|
553
|
+
var _loop2 = function _loop2(_index2) {
|
|
554
|
+
var _item$labelKey;
|
|
555
|
+
var item = options["level".concat(i)][_index2];
|
|
556
|
+
var res = null !== ((_item$labelKey = item[labelKey]) !== null && _item$labelKey !== void 0 ? _item$labelKey : item[valueKey].toString()).match(regex);
|
|
557
|
+
if (res) {
|
|
558
|
+
var current = i > 0 ? loopGetParent(i, item, [item]).reverse() : [item];
|
|
559
|
+
options["level".concat(i)].splice(_index2, 1);
|
|
560
|
+
if (!Object.prototype.hasOwnProperty.call(item, 'children') || item.children.length === 0) {
|
|
561
|
+
result.push(current);
|
|
562
|
+
} else if (item.children.length > 0) {
|
|
563
|
+
var _item$children3;
|
|
564
|
+
loopGetMatchNodes(i + 1, (_item$children3 = item.children) !== null && _item$children3 !== void 0 ? _item$children3 : [], current);
|
|
420
565
|
}
|
|
566
|
+
options["level".concat(i)].splice(_index2, 1);
|
|
567
|
+
options["level".concat(i)].splice(options["level".concat(i)].findIndex(function (node) {
|
|
568
|
+
return node.__id === item.__id;
|
|
569
|
+
}), 1);
|
|
570
|
+
_index2--;
|
|
421
571
|
}
|
|
572
|
+
index = _index2;
|
|
573
|
+
};
|
|
574
|
+
for (var index = 0; index < options["level".concat(i)].length; index++) {
|
|
575
|
+
_loop2(index);
|
|
422
576
|
}
|
|
423
577
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
)
|
|
428
|
-
|
|
429
|
-
|
|
578
|
+
}
|
|
579
|
+
return result;
|
|
580
|
+
}, [allLevel, labelKey, loopGetParent, valueKey]);
|
|
581
|
+
var resetNodes = useCallback(function () {
|
|
582
|
+
_optionData.current = Object.keys(_optionData.current).reduce(function (prev, item) {
|
|
583
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, item, []));
|
|
584
|
+
}, {});
|
|
430
585
|
setOptionData(_optionData.current);
|
|
586
|
+
// clearSelected();
|
|
431
587
|
}, []);
|
|
432
|
-
(
|
|
433
|
-
|
|
588
|
+
useEffect(function () {
|
|
589
|
+
var data = init(cloneDeep(initialData), 0);
|
|
434
590
|
setOptionData(data);
|
|
435
|
-
|
|
591
|
+
var l = Object.keys(data).length;
|
|
436
592
|
if (l > 0) {
|
|
437
593
|
setAllLevel(l - 1);
|
|
438
594
|
}
|
|
595
|
+
// selectedValue.current = new Array(l).fill(null);
|
|
596
|
+
// selectedLabel.current = new Array(l).fill(null);
|
|
597
|
+
// selectedNode.current = new Array(l).fill(null);
|
|
598
|
+
|
|
599
|
+
// selectedNode.current.splice(
|
|
600
|
+
// 0,
|
|
601
|
+
// value.length,
|
|
602
|
+
// ...value.map((item, i) => {
|
|
603
|
+
// const res = find(data[`level${i}`], { [valueKey]: item });
|
|
604
|
+
// return res ?? null;
|
|
605
|
+
// }),
|
|
606
|
+
// );
|
|
607
|
+
// selectedValue.current.splice(0, value.length, ...value);
|
|
608
|
+
// selectedLabel.current.splice(
|
|
609
|
+
// 0,
|
|
610
|
+
// value.length,
|
|
611
|
+
// ...selectedNode.current.map(item => {
|
|
612
|
+
// return item && item[labelKey] ? item[labelKey] : null;
|
|
613
|
+
// }),
|
|
614
|
+
// );
|
|
439
615
|
setDataTypes(new Array(l).fill(null));
|
|
616
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
440
617
|
}, [props.options]);
|
|
441
|
-
|
|
442
|
-
var
|
|
618
|
+
var initSelectedValue = function initSelectedValue(_value) {
|
|
619
|
+
var _selectedValue$curren, _selectedLabel$curren;
|
|
443
620
|
selectedValue.current = new Array(allLevel + 1).fill(null);
|
|
444
621
|
selectedLabel.current = new Array(allLevel + 1).fill(null);
|
|
445
622
|
selectedNode.current = new Array(allLevel + 1).fill(null);
|
|
446
623
|
if (_value.length > 0) {
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
624
|
+
var _optionData$current9;
|
|
625
|
+
var _level = _value.length - 1;
|
|
626
|
+
var res = (_optionData$current9 = _optionData.current) === null || _optionData$current9 === void 0 || (_optionData$current9 = _optionData$current9["level".concat(_level)]) === null || _optionData$current9 === void 0 ? void 0 : _optionData$current9.filter(function (option) {
|
|
627
|
+
return option[valueKey] === _value[_level];
|
|
628
|
+
});
|
|
629
|
+
if ((res === null || res === void 0 ? void 0 : res.length) > 1) {
|
|
630
|
+
res.forEach(function (node) {
|
|
631
|
+
var parents = loopGetParent(node.__level, node, [node]);
|
|
632
|
+
var path = parents.reverse().map(function (pa) {
|
|
633
|
+
return pa[valueKey];
|
|
634
|
+
});
|
|
635
|
+
if (isEqual(path, _value)) {
|
|
454
636
|
selectedNode.current = parents;
|
|
455
637
|
}
|
|
456
638
|
});
|
|
457
|
-
} else if ((res
|
|
639
|
+
} else if ((res === null || res === void 0 ? void 0 : res.length) === 1) {
|
|
458
640
|
selectedNode.current = loopGetParent(_level, res[0], res).reverse();
|
|
459
641
|
}
|
|
460
642
|
}
|
|
461
|
-
selectedValue.current.splice(0, _value.length
|
|
462
|
-
selectedLabel.current.splice(0, _value.length
|
|
643
|
+
(_selectedValue$curren = selectedValue.current).splice.apply(_selectedValue$curren, [0, _value.length].concat(_toConsumableArray(_value)));
|
|
644
|
+
(_selectedLabel$curren = selectedLabel.current).splice.apply(_selectedLabel$curren, [0, _value.length].concat(_toConsumableArray(selectedNode.current.map(function (item) {
|
|
645
|
+
return item && item[labelKey] ? item[labelKey] : null;
|
|
646
|
+
}))));
|
|
463
647
|
};
|
|
464
|
-
(
|
|
465
|
-
var _a;
|
|
648
|
+
useEffect(function () {
|
|
466
649
|
if (!lazy && allLevel >= 0) {
|
|
467
|
-
|
|
468
|
-
|
|
650
|
+
var _props$props;
|
|
651
|
+
if (props !== null && props !== void 0 && (_props$props = props.props) !== null && _props$props !== void 0 && _props$props.multiple) {
|
|
652
|
+
var _value = value.length > 0 ? value[0] : [];
|
|
469
653
|
initSelectedValue(_value);
|
|
470
|
-
if (
|
|
471
|
-
_optionData.current = (
|
|
654
|
+
if (isEmpty(_optionData.current)) {
|
|
655
|
+
_optionData.current = cloneDeep(optionData);
|
|
472
656
|
}
|
|
473
|
-
value.forEach((item)
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
657
|
+
value.forEach(function (item) {
|
|
658
|
+
var length = item.length;
|
|
659
|
+
var _level = length - 1;
|
|
660
|
+
var res = _optionData.current["level".concat(_level)].filter(function (option) {
|
|
661
|
+
return option[valueKey] === item[_level];
|
|
662
|
+
});
|
|
477
663
|
if (res.length > 1) {
|
|
478
|
-
res.forEach((node)
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
664
|
+
res.forEach(function (node) {
|
|
665
|
+
var parents = loopGetParent(node.__level, node, [node]);
|
|
666
|
+
var path = parents.reverse().map(function (pa) {
|
|
667
|
+
return pa[valueKey];
|
|
668
|
+
});
|
|
669
|
+
if (isEqual(path, item)) {
|
|
482
670
|
loopCheckedNodes(_level, node, true);
|
|
483
671
|
loopParentStatus(_level, node, true, false);
|
|
484
672
|
}
|
|
@@ -494,94 +682,96 @@ var useCascader = (initialData, props, value) => {
|
|
|
494
682
|
initSelectedValue(value);
|
|
495
683
|
}
|
|
496
684
|
}
|
|
685
|
+
|
|
686
|
+
// setDataTypes(new Array(allLevel).fill(null));
|
|
687
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
497
688
|
}, [value, allLevel, props.options]);
|
|
498
689
|
return {
|
|
499
|
-
// eslint-disable-next-line lines-around-comment
|
|
500
690
|
/** 最高层级 */
|
|
501
|
-
allLevel,
|
|
691
|
+
allLevel: allLevel,
|
|
502
692
|
/** 选项数据 */
|
|
503
|
-
optionData,
|
|
504
|
-
/**
|
|
505
|
-
* 懒加载时存储option
|
|
506
|
-
* @param nodes
|
|
507
|
-
* @param level 层级
|
|
693
|
+
optionData: optionData,
|
|
694
|
+
/**
|
|
695
|
+
* 懒加载时存储option
|
|
696
|
+
* @param nodes
|
|
697
|
+
* @param level 层级
|
|
508
698
|
*/
|
|
509
|
-
storeOptionData,
|
|
510
|
-
/**
|
|
511
|
-
* 获取选中的值
|
|
512
|
-
* @param level 层级
|
|
513
|
-
* @returns
|
|
699
|
+
storeOptionData: storeOptionData,
|
|
700
|
+
/**
|
|
701
|
+
* 获取选中的值
|
|
702
|
+
* @param level 层级
|
|
703
|
+
* @returns
|
|
514
704
|
*/
|
|
515
|
-
getSelectedValue,
|
|
516
|
-
/**
|
|
517
|
-
* 获取任意层级选中的值
|
|
518
|
-
* @param level 层级
|
|
519
|
-
* @returns
|
|
705
|
+
getSelectedValue: getSelectedValue,
|
|
706
|
+
/**
|
|
707
|
+
* 获取任意层级选中的值
|
|
708
|
+
* @param level 层级
|
|
709
|
+
* @returns
|
|
520
710
|
*/
|
|
521
|
-
getValueOfLevel,
|
|
522
|
-
/**
|
|
523
|
-
* 获取选中的文本
|
|
524
|
-
* @param level 层级
|
|
525
|
-
* @returns
|
|
711
|
+
getValueOfLevel: getValueOfLevel,
|
|
712
|
+
/**
|
|
713
|
+
* 获取选中的文本
|
|
714
|
+
* @param level 层级
|
|
715
|
+
* @returns
|
|
526
716
|
*/
|
|
527
|
-
getSelectedLabel,
|
|
528
|
-
/**
|
|
529
|
-
* 设置任意层级节点的标签
|
|
530
|
-
* @param level 层级
|
|
531
|
-
* @param value
|
|
717
|
+
getSelectedLabel: getSelectedLabel,
|
|
718
|
+
/**
|
|
719
|
+
* 设置任意层级节点的标签
|
|
720
|
+
* @param level 层级
|
|
721
|
+
* @param value
|
|
532
722
|
*/
|
|
533
|
-
setSelectedNode,
|
|
534
|
-
setSelectedValue,
|
|
535
|
-
getSelectedNode: ()
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
*
|
|
540
|
-
* @param
|
|
723
|
+
setSelectedNode: setSelectedNode,
|
|
724
|
+
setSelectedValue: setSelectedValue,
|
|
725
|
+
getSelectedNode: function getSelectedNode() {
|
|
726
|
+
return selectedNode.current;
|
|
727
|
+
},
|
|
728
|
+
/**
|
|
729
|
+
* 设置选中节点
|
|
730
|
+
* @param level 层级
|
|
731
|
+
* @param node 当前节点
|
|
732
|
+
* @param checked 是否选中
|
|
541
733
|
*/
|
|
542
|
-
setCheckedNode,
|
|
543
|
-
getCheckedNodes: ()
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
*
|
|
734
|
+
setCheckedNode: setCheckedNode,
|
|
735
|
+
getCheckedNodes: function getCheckedNodes() {
|
|
736
|
+
return checkedNodes.current;
|
|
737
|
+
},
|
|
738
|
+
getCheckedValue: getCheckedValue,
|
|
739
|
+
getCheckedLabel: getCheckedLabel,
|
|
740
|
+
loopGetParent: loopGetParent,
|
|
741
|
+
/**
|
|
742
|
+
* 获取任意节点的option数据
|
|
743
|
+
* @param level 层级
|
|
744
|
+
* @returns
|
|
551
745
|
*/
|
|
552
|
-
getOptions,
|
|
746
|
+
getOptions: getOptions,
|
|
553
747
|
/** 清空值 */
|
|
554
|
-
clearSelected,
|
|
555
|
-
/**
|
|
556
|
-
* 设置节点是否为叶子节点
|
|
557
|
-
* @param node
|
|
558
|
-
* @param isLeaf
|
|
748
|
+
clearSelected: clearSelected,
|
|
749
|
+
/**
|
|
750
|
+
* 设置节点是否为叶子节点
|
|
751
|
+
* @param node
|
|
752
|
+
* @param isLeaf
|
|
559
753
|
*/
|
|
560
|
-
setNodeLeaf,
|
|
561
|
-
/**
|
|
562
|
-
* 获取数据类型
|
|
563
|
-
* @param level 层级
|
|
564
|
-
* @returns
|
|
754
|
+
setNodeLeaf: setNodeLeaf,
|
|
755
|
+
/**
|
|
756
|
+
* 获取数据类型
|
|
757
|
+
* @param level 层级
|
|
758
|
+
* @returns
|
|
565
759
|
*/
|
|
566
|
-
getDataType,
|
|
567
|
-
/**
|
|
568
|
-
* 获取扩展key
|
|
569
|
-
* @param level 层级
|
|
570
|
-
* @returns
|
|
760
|
+
getDataType: getDataType,
|
|
761
|
+
/**
|
|
762
|
+
* 获取扩展key
|
|
763
|
+
* @param level 层级
|
|
764
|
+
* @returns
|
|
571
765
|
*/
|
|
572
|
-
getExpandedKeys,
|
|
573
|
-
/**
|
|
574
|
-
* 设置扩展key
|
|
575
|
-
* @param level 层级
|
|
576
|
-
* @param keys
|
|
577
|
-
* @returns
|
|
766
|
+
getExpandedKeys: getExpandedKeys,
|
|
767
|
+
/**
|
|
768
|
+
* 设置扩展key
|
|
769
|
+
* @param level 层级
|
|
770
|
+
* @param keys
|
|
771
|
+
* @returns
|
|
578
772
|
*/
|
|
579
|
-
setExpandedKeys,
|
|
580
|
-
handleSearch,
|
|
581
|
-
resetNodes
|
|
773
|
+
setExpandedKeys: setExpandedKeys,
|
|
774
|
+
handleSearch: handleSearch,
|
|
775
|
+
resetNodes: resetNodes
|
|
582
776
|
};
|
|
583
|
-
};
|
|
584
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
585
|
-
0 && (module.exports = {
|
|
586
|
-
useCascader
|
|
587
|
-
});
|
|
777
|
+
};
|