@unicom-cloud/ui 0.8.44 → 0.8.46
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/Affix.js +54 -51
- package/Alert.js +46 -43
- package/Anchor.js +5 -4
- package/AutoComplete.js +60 -55
- package/Avatar.js +10 -155
- package/BackTop.js +41 -38
- package/Badge.js +63 -93
- package/Breadcrumb.js +63 -118
- package/Button.js +105 -109
- package/Calendar.js +139 -536
- package/Card.js +65 -101
- package/Carousel.js +169 -270
- package/Cascader.js +9 -8
- package/Checkbox.js +4 -3
- package/Collapse.js +4 -3
- package/ColorPicker.js +95 -546
- package/Comment.js +14 -12
- package/ConfigProvider.js +6 -5
- package/Copy.js +33 -31
- package/DatePicker.js +35 -1993
- package/Descriptions.js +30 -28
- package/Divider.js +8 -6
- package/Draggable.js +28 -85
- package/Drawer.js +5 -4
- package/Dropdown.js +107 -167
- package/Empty.js +28 -8
- package/Form.js +30 -1418
- package/Grid.js +13 -250
- package/Icon.js +19 -45
- package/IconHover.js +39 -6
- package/Image.js +3 -3
- package/Input.js +4 -4
- package/InputNumber.js +213 -17
- package/InputTag.js +5 -4
- package/Layout.js +35 -48
- package/Link.js +16 -14
- package/List.js +191 -228
- package/Loading.js +18 -17
- package/Mentions.js +99 -115
- package/Menu.js +8 -7
- package/Message.js +147 -10
- package/Modal.js +5 -4
- package/Notice.js +196 -13
- package/Notification.js +136 -11
- package/NotificationBase.js +5 -4
- package/OverflowEllipsis.js +48 -71
- package/PageHeader.js +52 -52
- package/Pagination.js +12 -11
- package/Picker.js +6 -4
- package/Popconfirm.js +47 -44
- package/Popover.js +25 -23
- package/Portal.js +12 -32
- package/Progress.js +65 -328
- package/Radio.js +6 -5
- package/Rate.js +48 -45
- package/ResizeBox.js +127 -505
- package/Result.js +60 -1417
- package/Select.js +9 -8
- package/SelectView.js +49 -328
- package/Skeleton.js +41 -78
- package/Slider.js +228 -702
- package/Space.js +53 -57
- package/Spin.js +57 -72
- package/Statistic.js +84 -153
- package/Steps.js +64 -123
- package/SuspenseFallbackTest.js +4 -3
- package/Switch.js +41 -38
- package/Table.js +20 -1999
- package/Tabs.js +9 -8
- package/Tag.js +24 -21
- package/TimePicker.js +19 -272
- package/Timeline.js +4 -3
- package/Tooltip.js +79 -72
- package/Transfer.js +138 -402
- package/Tree.js +5 -4
- package/TreeSelect.js +8 -7
- package/Trigger.js +407 -571
- package/Typography.js +11 -722
- package/Upload.js +9 -8
- package/VerificationCode.js +6 -5
- package/Version.js +1 -1
- package/VirtualList.js +4 -3
- package/Watermark.js +3 -2
- package/anchor/Anchor.js +193 -0
- package/anchor/Link.js +54 -0
- package/anchor/context.js +14 -0
- package/anchor/util.js +41 -0
- package/avatar/Avatar.js +85 -0
- package/avatar/Group.js +84 -0
- package/avatar/context.js +5 -0
- package/badge/Count.js +35 -0
- package/breadcrumb/Item.js +67 -0
- package/button/Group.js +15 -0
- package/calendar/Month.js +142 -0
- package/calendar/WeekList.js +24 -0
- package/calendar/Year.js +75 -0
- package/calendar/header/Panel.js +57 -0
- package/calendar/header/index.js +118 -0
- package/calendar/hook/useCellClassName.js +41 -0
- package/card/Grid.js +27 -0
- package/card/Meta.js +32 -0
- package/carousel/Arrow.js +57 -0
- package/carousel/Indicator.js +68 -0
- package/cascader/Cascader.js +300 -0
- package/cascader/base/node.js +142 -0
- package/cascader/base/store.js +93 -0
- package/cascader/hook/useRefCurrent.js +12 -0
- package/cascader/panel/List.js +275 -0
- package/cascader/panel/Option.js +35 -0
- package/cascader/panel/Search.js +171 -0
- package/cascader/util.js +66 -0
- package/checkbox/Checkbox.js +111 -0
- package/checkbox/Group.js +97 -0
- package/checkbox/useCheckbox.js +45 -0
- package/collapse/Collapse.js +90 -0
- package/collapse/Item.js +165 -0
- package/color-picker/ControlBar.js +64 -0
- package/color-picker/InputAlpha.js +24 -0
- package/color-picker/InputHex.js +59 -0
- package/color-picker/InputRgb.js +66 -0
- package/color-picker/Palette.js +36 -0
- package/color-picker/Panel.js +165 -0
- package/color-picker/colors.js +37 -0
- package/color-picker/hooks/useColorPicker.js +63 -0
- package/color-picker/hooks/useControlBlock.js +40 -0
- package/config-provider/ConfigProvider.js +94 -0
- package/config-provider/context.js +24 -0
- package/date-picker/Picker.js +399 -0
- package/date-picker/PickerRange.js +568 -0
- package/date-picker/context.js +5 -0
- package/date-picker/hook/useCellClassName.js +58 -0
- package/date-picker/panel/Body.js +78 -0
- package/date-picker/panel/Footer.js +71 -0
- package/date-picker/panel/Header.js +74 -0
- package/date-picker/panel/Shortcut.js +45 -0
- package/date-picker/panel/WeekList.js +19 -0
- package/date-picker/panel/date/index.js +194 -0
- package/date-picker/panel/month/index.js +113 -0
- package/date-picker/panel/quarter/index.js +93 -0
- package/date-picker/panel/range/index.js +251 -0
- package/date-picker/panel/week/index.js +35 -0
- package/date-picker/panel/year/index.js +74 -0
- package/date-picker/util.js +69 -0
- package/draggable/Item.js +66 -0
- package/drawer/Drawer.js +226 -0
- package/dropdown/Button.js +91 -0
- package/form/Control.js +264 -0
- package/form/Form.js +156 -0
- package/form/FormItem.js +241 -0
- package/form/FormLabel.js +54 -0
- package/form/FormList.js +96 -0
- package/form/FormProvider.js +48 -0
- package/form/IconSymbol.js +20 -0
- package/form/context.js +43 -0
- package/form/hook/useContext.js +32 -0
- package/form/hook/useState.js +31 -0
- package/form/hook/useWatch.js +36 -0
- package/form/interface.js +11 -0
- package/form/promisify.js +23 -0
- package/form/store.js +354 -0
- package/form/useForm.js +53 -0
- package/form/util.js +72 -0
- package/grid/Col.js +87 -0
- package/grid/Row.js +88 -0
- package/grid/context.js +9 -0
- package/grid/grid-item.js +77 -0
- package/grid/grid.js +104 -0
- package/grid/hook/useResponsiveState.js +38 -0
- package/grid/util.js +51 -0
- package/{chunk/I4RV9SKZ.js → hooks/factory/createHTMLMediaHook.js} +35 -43
- package/hooks/index.js +246 -4
- package/{chunk/BdYAMaw9.js → hooks/misc/hookState.js} +1 -1
- package/hooks/misc/parseTimeRanges.js +12 -0
- package/{chunk/TXCrI0jN.js → hooks/misc/util.js} +6 -6
- package/hooks/use-watermark/utils.js +8 -0
- package/hooks/use-watermark.js +71 -76
- package/hooks/useAudio.js +3 -3
- package/hooks/useBeforeUnload.js +2 -2
- package/hooks/useClickAway.js +10 -10
- package/hooks/useCounter.js +1 -1
- package/hooks/useCreation.js +2 -4
- package/hooks/useDrop.js +12 -12
- package/hooks/useDropArea.js +5 -5
- package/hooks/useEvent.js +6 -6
- package/hooks/useEventListener.js +2 -4
- package/hooks/useFavicon.js +1 -2
- package/hooks/useFullscreen.js +11 -13
- package/hooks/useGetSet.js +5 -5
- package/hooks/useHash.js +6 -6
- package/hooks/useHover.js +6 -6
- package/hooks/useHoverDirty.js +7 -7
- package/hooks/useIdle.js +17 -17
- package/hooks/useIsomorphicLayoutEffect2.js +3 -3
- package/hooks/useKey.js +5 -5
- package/hooks/useList.js +1 -1
- package/hooks/useLocalStorage.js +2 -3
- package/hooks/useLocation.js +1 -1
- package/hooks/useLockBodyScroll.js +13 -14
- package/hooks/useLongPress.js +7 -7
- package/hooks/useMeasure.js +3 -3
- package/hooks/useMedia.js +4 -4
- package/hooks/useMediaDevices.js +10 -10
- package/hooks/useMotion.js +11 -11
- package/hooks/useMouse.js +9 -9
- package/hooks/useMouseWheel.js +7 -7
- package/hooks/useNetworkState.js +7 -7
- package/hooks/useOrientation.js +10 -11
- package/hooks/useOverrideRef.js +14 -0
- package/hooks/usePageLeave.js +4 -4
- package/hooks/usePermission.js +9 -9
- package/hooks/usePersistCallback.js +15 -0
- package/hooks/useScroll.js +6 -6
- package/hooks/useScrolling.js +7 -7
- package/hooks/useSearchParam.js +5 -5
- package/hooks/useSessionStorage.js +9 -9
- package/hooks/useSize.js +1 -1
- package/hooks/useSlider.js +6 -6
- package/hooks/useStartTyping.js +4 -4
- package/hooks/useStateList.js +4 -5
- package/hooks/useStateWithHistory.js +1 -1
- package/hooks/useTimeout.js +1 -2
- package/hooks/useVibrate.js +5 -5
- package/hooks/useVideo.js +3 -3
- package/hooks/useWindowScroll.js +13 -13
- package/hooks/useWindowSize.js +6 -6
- package/icon/addFromIconFontCn.js +33 -0
- package/image/Image.js +189 -0
- package/image/ImageFooter.js +45 -0
- package/image/ImagePreview.js +473 -0
- package/image/ImagePreviewArrow.js +40 -0
- package/image/ImagePreviewGroup.js +125 -0
- package/image/ImagePreviewToolbar.js +98 -0
- package/image/TriggerForToolbar.js +10 -0
- package/image/previewGroupContext.js +17 -0
- package/image/util/getFixTranslate.js +7 -0
- package/image/util/getScale.js +72 -0
- package/image/util/hook/useImageStatus.js +16 -0
- package/image/util/hook/useShowFooter.js +7 -0
- package/index.js +440 -398
- package/input/Group.js +20 -0
- package/input/Input.js +185 -0
- package/input/InputElement.js +233 -0
- package/input/Number.js +4 -0
- package/input/Password.js +72 -0
- package/input/Search.js +80 -0
- package/input/Tag.js +7 -0
- package/input/Textarea.js +168 -0
- package/input/autoSizeTextAreaHeight.js +65 -0
- package/input/useComposition.js +39 -0
- package/input-number/decimal.js +154 -0
- package/input-number/useSelectionRange.js +26 -0
- package/input-number/util.js +57 -0
- package/input-tag/InputTag.js +381 -0
- package/layout/Content.js +15 -0
- package/layout/Footer.js +15 -0
- package/layout/Header.js +15 -0
- package/{chunk/B9asjXwm.js → layout/Sider.js} +23 -22
- package/list/Item.js +46 -0
- package/list/Meta.js +21 -0
- package/loading/style/index.module.less.js +4 -0
- package/mentions/util.js +26 -0
- package/menu/Indent.js +17 -0
- package/menu/Item.js +125 -0
- package/menu/ItemGroup.js +39 -0
- package/menu/Menu.js +181 -0
- package/menu/OverflowWrap.js +85 -0
- package/menu/context.js +5 -0
- package/menu/sub-menu/Inline.js +111 -0
- package/menu/sub-menu/Pop.js +126 -0
- package/menu/sub-menu/index.js +17 -0
- package/menu/util.js +80 -0
- package/message/useMessage.js +53 -0
- package/modal/Confirm.js +98 -0
- package/modal/Modal.js +419 -0
- package/modal/config.js +25 -0
- package/modal/use-modal/Hook.js +55 -0
- package/modal/use-modal/index.js +68 -0
- package/notification/useNotification.js +55 -0
- package/overflow-ellipsis/OverflowItem.js +34 -0
- package/package.json +1 -1
- package/pagination/PageItem.js +121 -0
- package/pagination/PageJumper.js +64 -0
- package/pagination/PageOption.js +55 -0
- package/pagination/Pagination.js +245 -0
- package/picker/Input.js +124 -0
- package/picker/InputRange.js +155 -0
- package/portal/Portal.js +25 -0
- package/progress/CircleProgress.js +117 -0
- package/progress/LineProgess.js +103 -0
- package/progress/StepProgress.js +74 -0
- package/radio/Group.js +91 -0
- package/radio/Radio.js +90 -0
- package/resize-box/ResizeTrigger.js +78 -0
- package/resize-box/Split.js +132 -0
- package/resize-box/SplitGroup.js +204 -0
- package/result/403.js +695 -0
- package/result/404.js +513 -0
- package/result/500.js +166 -0
- package/select/OptGroup.js +20 -0
- package/select/Option.js +97 -0
- package/select/Select.js +544 -0
- package/select/util.js +140 -0
- package/select-view/Core.js +309 -0
- package/skeleton/Image.js +24 -0
- package/skeleton/Text.js +27 -0
- package/slider/Button.js +159 -0
- package/slider/Dot.js +43 -0
- package/slider/Input.js +75 -0
- package/slider/Mark.js +28 -0
- package/slider/Tick.js +44 -0
- package/slider/hook/useInterval.js +73 -0
- package/slider/hook/useLegalValue.js +70 -0
- package/slider/util.js +63 -0
- package/space/toArray.js +11 -0
- package/spin/DotLoading.js +26 -0
- package/statistic/Countdown.js +57 -0
- package/statistic/util.js +33 -0
- package/steps/Step.js +68 -0
- package/style.css +1 -1
- package/table/ColGroup.js +59 -0
- package/table/Table.js +634 -0
- package/table/constant.js +5 -0
- package/table/hook/useColumns.js +141 -0
- package/table/hook/useComponent.js +64 -0
- package/table/hook/useExpand.js +36 -0
- package/table/hook/useRowSelection.js +92 -0
- package/table/hook/useSorter.js +54 -0
- package/table/hook/useStickyClassNames.js +30 -0
- package/table/hook/useStickyOffsets.js +30 -0
- package/table/summary/Cell.js +10 -0
- package/table/summary/Row.js +26 -0
- package/table/summary/context.js +5 -0
- package/table/summary/index.js +10 -0
- package/table/tbody/Td.js +168 -0
- package/table/tbody/Tr.js +168 -0
- package/table/tbody/index.js +156 -0
- package/table/tfoot/index.js +16 -0
- package/table/thead/Column.js +250 -0
- package/table/thead/index.js +131 -0
- package/table/util.js +121 -0
- package/tabs/Tab.js +170 -0
- package/tabs/TabContent.js +54 -0
- package/tabs/TabPane.js +26 -0
- package/tabs/hook/useDomSize.js +17 -0
- package/tabs/hook/useHeaderScroll.js +64 -0
- package/tabs/tab-header/DropdownIcon.js +71 -0
- package/tabs/tab-header/TabInk.js +65 -0
- package/tabs/tab-header/TabNavIcon.js +65 -0
- package/tabs/tab-header/TabTitle.js +78 -0
- package/tabs/tab-header/index.js +335 -0
- package/tabs/util.js +22 -0
- package/time-picker/Picker.js +221 -0
- package/time-picker/RangePicker.js +56 -0
- package/time-picker/TimeColumn.js +65 -0
- package/time-picker/TimePicker.js +242 -0
- package/time-picker/context.js +5 -0
- package/time-picker/util.js +43 -0
- package/timeline/Item.js +94 -0
- package/timeline/Timeline.js +80 -0
- package/transfer/Item.js +107 -0
- package/transfer/List.js +192 -0
- package/tree/Animation.js +104 -0
- package/tree/Context.js +5 -0
- package/tree/Node.js +215 -0
- package/tree/NodeList.js +84 -0
- package/tree/Tree.js +549 -0
- package/tree/util.js +76 -0
- package/tree-select/List.js +127 -0
- package/tree-select/Select.js +260 -0
- package/tree-select/hook/useKeyCache.js +56 -0
- package/tree-select/hook/useStateValue.js +98 -0
- package/tree-select/hook/useTreeData.js +13 -0
- package/tree-select/interface.js +13 -0
- package/tree-select/util.js +9 -0
- package/trigger/Portal.js +14 -0
- package/trigger/getPopupStyle.js +190 -0
- package/types/badge/Count.d.ts +2 -1
- package/types/badge/index.d.ts +2 -2
- package/types/button/index.d.ts +2 -2
- package/types/carousel/index.d.ts +1 -1
- package/types/color-picker/colors.d.ts +1 -1
- package/types/color-picker/style/index.d.ts +1 -1
- package/types/drawer/Drawer.d.ts +1 -1
- package/types/dropdown/interface.d.ts +1 -0
- package/types/hooks/index.d.ts +122 -0
- package/types/hooks/use-verification-code/interface.d.ts +1 -1
- package/types/hooks/useAsync.d.ts +1 -1
- package/types/hooks/useDropArea.d.ts +1 -0
- package/types/hooks/useOverrideRef.d.ts +5 -0
- package/types/hooks/usePersistCallback.d.ts +1 -0
- package/types/hooks/useUpsert.d.ts +1 -1
- package/types/icon-hover/index.d.ts +5 -3
- package/types/index.d.ts +2 -120
- package/types/input-tag/InputTag.d.ts +1 -1
- package/types/link/interface.d.ts +1 -1
- package/types/list/index.d.ts +1 -1
- package/types/modal/interface.d.ts +1 -0
- package/types/notice/index.d.ts +3 -0
- package/types/notification/index.d.ts +1 -1
- package/types/page-header/index.d.ts +1 -1
- package/types/select/Select.d.ts +1 -1
- package/types/select-view/Core.d.ts +3 -2
- package/types/select-view/index.d.ts +1 -0
- package/types/statistic/index.d.ts +1 -1
- package/types/switch/index.d.ts +1 -1
- package/types/switch/interface.d.ts +1 -1
- package/types/table/interface.d.ts +2 -1
- package/types/tooltip/index.d.ts +1 -1
- package/types/trigger/index.d.ts +12 -8
- package/types/trigger/interface.d.ts +1 -0
- package/types/typography/Base.d.ts +8 -7
- package/types/typography/EditContent.d.ts +3 -2
- package/types/typography/Paragraph.d.ts +2 -5
- package/types/typography/Text.d.ts +1 -5
- package/types/typography/Title.d.ts +2 -5
- package/types/upload/TriggerNode.d.ts +5 -3
- package/types/upload/list/PictureItem.d.ts +3 -3
- package/types/upload/list/TextItem.d.ts +3 -3
- package/types/utils/CSSTransition.d.ts +2 -0
- package/types/utils/constant.d.ts +1 -1
- package/types/utils/is.d.ts +4 -0
- package/types/utils/reactDOM.d.ts +3 -1
- package/types/utils/warning.d.ts +1 -1
- package/types/version/index.d.ts +1 -1
- package/typography/Base.js +184 -0
- package/typography/EditContent.js +49 -0
- package/typography/Ellipsis.js +293 -0
- package/typography/Operations.js +78 -0
- package/typography/Paragraph.js +26 -0
- package/typography/Text.js +11 -0
- package/typography/Title.js +12 -0
- package/typography/Typography.js +15 -0
- package/typography/useCssEllipsis.js +37 -0
- package/typography/useEllipsis.js +150 -0
- package/upload/TriggerNode.js +118 -0
- package/upload/Upload.js +205 -0
- package/upload/Uploader.js +205 -0
- package/upload/interface.js +9 -0
- package/upload/list/PictureItem.js +91 -0
- package/upload/list/TextItem.js +99 -0
- package/upload/list/UploadProgress.js +97 -0
- package/upload/list/index.js +120 -0
- package/upload/request.js +51 -0
- package/upload/util.js +61 -0
- package/utils/CSSTransition.js +27 -0
- package/utils/contextHolder.js +29 -4
- package/utils/getHighlightText.js +1 -2
- package/utils/is.js +81 -68
- package/utils/reactDOM.js +33 -22
- package/utils/style.js +1 -2
- package/utils/warning.js +7 -3
- package/verification-code/VerificationCode.js +83 -0
- package/virtual-list/Filler.js +31 -0
- package/virtual-list/VirtualList.js +378 -0
- package/virtual-list/util/algorithm.js +32 -0
- package/virtual-list/util/item.js +99 -0
- package/{chunk/BCEX3Acw.js → watermark/Watermark.js} +13 -11
- package/chunk/B1P8u7kB.js +0 -798
- package/chunk/B2ufZjjd.js +0 -1000
- package/chunk/B7QOJqps.js +0 -162
- package/chunk/BBz3S3zo.js +0 -966
- package/chunk/BGzBxiWE.js +0 -517
- package/chunk/BNRfcEHj.js +0 -984
- package/chunk/BSs6uXmc.js +0 -946
- package/chunk/BTjUAV8T.js +0 -277
- package/chunk/BYQeEcKe.js +0 -375
- package/chunk/Ba4UXIST.js +0 -605
- package/chunk/BfaXVcik.js +0 -271
- package/chunk/Bs11tCU6.js +0 -240
- package/chunk/C7FC7dzS.js +0 -516
- package/chunk/CLzbve11.js +0 -694
- package/chunk/CN4zXU4b.js +0 -877
- package/chunk/CYTPZUHD.js +0 -769
- package/chunk/CcCo_dK0.js +0 -335
- package/chunk/CoCXcpQd.js +0 -261
- package/chunk/D4yH4UKK.js +0 -80
- package/chunk/DiSLYN2-.js +0 -167
- package/chunk/Dr0iXIXO.js +0 -736
- package/chunk/G3-2uJao.js +0 -229
- package/chunk/RnTpOC5-.js +0 -1
- package/chunk/Z-mtdHUQ.js +0 -226
- package/chunk/ZISxNnaR.js +0 -165
- package/chunk/aPJXnDSb.js +0 -450
- package/chunk/i605JRmI.js +0 -232
- package/chunk/l0sNRNKZ.js +0 -1
- package/types/form/FormItemTip.d.ts +0 -8
- /package/{chunk/C6Kfwj0f.js → loading/style/index.less.js} +0 -0
- /package/{chunk/DP2rzg_V.js → suspense-fallback-test/style/index.less.js} +0 -0
- /package/{chunk/K6Dvbx-E.js → virtual-list/style/index.less.js} +0 -0
package/tree/Tree.js
ADDED
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
var O = Object.defineProperty;
|
|
2
|
+
var M = (P, u, e) => u in P ? O(P, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : P[u] = e;
|
|
3
|
+
var n = (P, u, e) => M(P, typeof u != "symbol" ? u + "" : u, e);
|
|
4
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
5
|
+
import { Component as v, createElement as I } from "react";
|
|
6
|
+
import { isEmptyObject as A } from "@unicom-cloud/utils/is";
|
|
7
|
+
import N from "lodash/get";
|
|
8
|
+
import T from "lodash/has";
|
|
9
|
+
import $ from "lodash/isArray";
|
|
10
|
+
import x from "lodash/isEqualWith";
|
|
11
|
+
import F from "lodash/isFunction";
|
|
12
|
+
import _ from "lodash/isUndefined";
|
|
13
|
+
/* empty css */
|
|
14
|
+
import "../config-provider/ConfigProvider.js";
|
|
15
|
+
import E from "@unicom-cloud/utils/class-name";
|
|
16
|
+
import { pickDataAttributes as H } from "../utils/pick.js";
|
|
17
|
+
import { TreeContext as R } from "./Context.js";
|
|
18
|
+
import L from "./Node.js";
|
|
19
|
+
import j from "./NodeList.js";
|
|
20
|
+
import { getTreeDataFromTreeChildren as W, getCheckedKeysByInitKeys as U, getAllCheckedKeysByCheck as z } from "./util.js";
|
|
21
|
+
import { ConfigContext as q } from "../config-provider/context.js";
|
|
22
|
+
const w = {
|
|
23
|
+
key: "key",
|
|
24
|
+
title: "title",
|
|
25
|
+
children: "children",
|
|
26
|
+
selectable: "selectable",
|
|
27
|
+
disabled: "disabled",
|
|
28
|
+
disableCheckbox: "disableCheckbox",
|
|
29
|
+
checkable: "checkable",
|
|
30
|
+
isLeaf: "isLeaf"
|
|
31
|
+
}, B = {
|
|
32
|
+
selectable: !0,
|
|
33
|
+
autoExpandParent: !0,
|
|
34
|
+
checkedStrategy: "all",
|
|
35
|
+
actionOnClick: "select",
|
|
36
|
+
allowDrop: () => !0,
|
|
37
|
+
fieldNames: w
|
|
38
|
+
}, V = [
|
|
39
|
+
"style",
|
|
40
|
+
"className",
|
|
41
|
+
"height",
|
|
42
|
+
"size",
|
|
43
|
+
"blockNode",
|
|
44
|
+
"autoExpandParent",
|
|
45
|
+
"checkedStrategy",
|
|
46
|
+
"fieldNames",
|
|
47
|
+
"icons",
|
|
48
|
+
"virtualListProps",
|
|
49
|
+
"showLine",
|
|
50
|
+
"selectable",
|
|
51
|
+
"allowDrop",
|
|
52
|
+
"actionOnClick"
|
|
53
|
+
], k = class k extends v {
|
|
54
|
+
constructor(e, i) {
|
|
55
|
+
super(e, i);
|
|
56
|
+
n(this, "context");
|
|
57
|
+
n(this, "key2nodeProps", {});
|
|
58
|
+
n(this, "dragNode");
|
|
59
|
+
n(this, "nodeListRef");
|
|
60
|
+
n(this, "dropPosition");
|
|
61
|
+
n(this, "getMergedProps", (e) => {
|
|
62
|
+
const { componentConfig: i } = this.context ?? {}, s = e || this.props, t = (i == null ? void 0 : i.Tree) || {}, r = {};
|
|
63
|
+
return V.forEach((o) => {
|
|
64
|
+
_(s[o]) ? _(t[o]) ? r[o] = B[o] : r[o] = t[o] : r[o] = s[o];
|
|
65
|
+
}), r;
|
|
66
|
+
});
|
|
67
|
+
// index: 第几个dom元素, 如果传入的是字符串,会作为 node 的 key去查找。
|
|
68
|
+
// nodeProps 参数似乎咩有什么用。。。但是不知道外部有没有调用,就当key用吧。。
|
|
69
|
+
n(this, "scrollIntoView", (e, i) => {
|
|
70
|
+
let s = e;
|
|
71
|
+
i && (s = i._key), this.nodeListRef && this.nodeListRef.scrollIntoView(
|
|
72
|
+
s,
|
|
73
|
+
i || this.key2nodeProps[s]
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
n(this, "getTreeData", () => "treeData" in this.props ? this.props.treeData : W(this.props.children));
|
|
77
|
+
// 以下外部传入的属性改变时,需要更新nodeList
|
|
78
|
+
n(this, "needUpdateTreeData", (e, i) => {
|
|
79
|
+
const s = [
|
|
80
|
+
"fieldNames",
|
|
81
|
+
"selectable",
|
|
82
|
+
"draggable",
|
|
83
|
+
"checkStrictly",
|
|
84
|
+
"showLine",
|
|
85
|
+
"blockNode",
|
|
86
|
+
"checkable",
|
|
87
|
+
"treeData",
|
|
88
|
+
"children"
|
|
89
|
+
];
|
|
90
|
+
return e.treeData !== i.treeData || e.children !== i.children || s.some((t) => x(e[t], i[t]));
|
|
91
|
+
});
|
|
92
|
+
// 根据 fieldNames 获取节点数据
|
|
93
|
+
n(this, "getFieldInfo", (e) => {
|
|
94
|
+
const i = this.getMergedProps(), { selectable: s } = i, t = {
|
|
95
|
+
...w,
|
|
96
|
+
..."treeData" in this.props ? i.fieldNames : {}
|
|
97
|
+
}, r = {
|
|
98
|
+
children: N(e, t.children) || e[t.children],
|
|
99
|
+
selectable: (N(e, t.selectable) || e[t.selectable]) ?? s,
|
|
100
|
+
checkable: (N(e, t.checkable) || e[t.checkable]) ?? this.props.checkable,
|
|
101
|
+
title: N(e, t.title) || e[t.title],
|
|
102
|
+
disabled: N(e, t.disabled) || e[t.disabled],
|
|
103
|
+
disableCheckbox: N(e, t.disableCheckbox) || e[t.disableCheckbox],
|
|
104
|
+
isLeaf: N(e, t.isLeaf) || e[t.isLeaf],
|
|
105
|
+
key: N(e, t.key) || e[t.key]
|
|
106
|
+
};
|
|
107
|
+
return (!T(e, t.key) || !(t.key in e)) && delete r.key, r;
|
|
108
|
+
});
|
|
109
|
+
n(this, "getNodeList", (e, i) => {
|
|
110
|
+
this.key2nodeProps = {};
|
|
111
|
+
const s = i || this.context.getPrefixCls("tree"), t = [];
|
|
112
|
+
let r = 0;
|
|
113
|
+
const { showLine: o, blockNode: c } = this.getMergedProps(), d = (l, h) => {
|
|
114
|
+
const f = l.length;
|
|
115
|
+
return l.map((K, y) => {
|
|
116
|
+
const {
|
|
117
|
+
children: p,
|
|
118
|
+
selectable: a,
|
|
119
|
+
checkable: m,
|
|
120
|
+
key: g = `${(h == null ? void 0 : h._key) || ""}-${y}`,
|
|
121
|
+
...D
|
|
122
|
+
} = this.getFieldInfo(K), C = {
|
|
123
|
+
// data 中含有dataRef时,优先级较高
|
|
124
|
+
dataRef: K,
|
|
125
|
+
draggable: this.props.draggable,
|
|
126
|
+
selectable: a,
|
|
127
|
+
checkable: m,
|
|
128
|
+
showLine: o,
|
|
129
|
+
blockNode: c,
|
|
130
|
+
...K,
|
|
131
|
+
...D,
|
|
132
|
+
key: g,
|
|
133
|
+
children: p,
|
|
134
|
+
_key: g,
|
|
135
|
+
_index: r++,
|
|
136
|
+
parentKey: h ? h._key : void 0,
|
|
137
|
+
pathParentKeys: h && h.pathParentKeys || [],
|
|
138
|
+
_level: h._level || 0,
|
|
139
|
+
// 保存node在sowLine模式下是否显示缩进线。如果父节点是其所在层级的最后一个节点,那么所有的子节点(包括孙子节点等)在父节点所在层级的缩进格都不显示缩进线。
|
|
140
|
+
_lineless: h && h._lineless ? [...h._lineless || [], h._isTail] : []
|
|
141
|
+
};
|
|
142
|
+
return f === y + 1 && (C.className = E(
|
|
143
|
+
`${s}-node-is-tail`,
|
|
144
|
+
C.className
|
|
145
|
+
)), t.push(C), this.key2nodeProps[g] = C, p && p.length && (this.key2nodeProps[g].children = d(p, {
|
|
146
|
+
_key: g,
|
|
147
|
+
_level: C._level + 1,
|
|
148
|
+
_lineless: C._lineless,
|
|
149
|
+
_isTail: f === y + 1,
|
|
150
|
+
pathParentKeys: [...(h == null ? void 0 : h.pathParentKeys) || [], g]
|
|
151
|
+
})), C;
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
return d(e || [], {}), t;
|
|
155
|
+
});
|
|
156
|
+
n(this, "getInitExpandedKeys", (e) => {
|
|
157
|
+
if (!this.getMergedProps().autoExpandParent)
|
|
158
|
+
return e || [];
|
|
159
|
+
if (!e)
|
|
160
|
+
return Object.keys(this.key2nodeProps).filter((s) => {
|
|
161
|
+
const t = this.key2nodeProps[s];
|
|
162
|
+
return t.children && t.children.length;
|
|
163
|
+
});
|
|
164
|
+
const i = {};
|
|
165
|
+
return e.forEach((s) => {
|
|
166
|
+
const t = this.key2nodeProps[s];
|
|
167
|
+
t && (i[s] = 1, t.pathParentKeys && t.pathParentKeys.forEach((r) => {
|
|
168
|
+
i[r] = 1;
|
|
169
|
+
}));
|
|
170
|
+
}), Object.keys(i);
|
|
171
|
+
});
|
|
172
|
+
n(this, "getInitCheckedKeys", (e) => {
|
|
173
|
+
if (!this.props.checkStrictly) {
|
|
174
|
+
const { checkedKeys: i, indeterminateKeys: s } = U(
|
|
175
|
+
e,
|
|
176
|
+
this.key2nodeProps
|
|
177
|
+
);
|
|
178
|
+
return {
|
|
179
|
+
checkedKeys: i,
|
|
180
|
+
halfCheckedKeys: s
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
checkedKeys: e,
|
|
185
|
+
halfCheckedKeys: this.props.halfCheckedKeys || []
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
n(this, "handleSelect", (e, i) => {
|
|
189
|
+
const { onSelect: s } = this.props, t = { e: i, node: this.getCacheNode([e])[0] };
|
|
190
|
+
if (this.props.multiple) {
|
|
191
|
+
const r = [...this.state.selectedKeys], o = r.indexOf(e);
|
|
192
|
+
o > -1 ? (r.splice(o, 1), t.selected = !1) : (t.selected = !0, r.push(e)), t.selectedNodes = this.getCacheNode(r), "selectedKeys" in this.props || this.setState({ selectedKeys: r }), s == null || s(r, t);
|
|
193
|
+
} else
|
|
194
|
+
t.selected = !0, t.selectedNodes = this.getCacheNode([e]), "selectedKeys" in this.props || this.setState({ selectedKeys: [e] }), s == null || s([e], t);
|
|
195
|
+
});
|
|
196
|
+
n(this, "handleCheck", (e, i, s) => {
|
|
197
|
+
const { checkedStrategy: t } = this.getMergedProps(), { onCheck: r, checkStrictly: o } = this.props, c = { e: s, node: this.getCacheNode([i])[0] };
|
|
198
|
+
let d = this.state.checkedKeys, l = this.state.halfCheckedKeys;
|
|
199
|
+
if (o) {
|
|
200
|
+
e ? d = d.concat(i) : d = d.filter((f) => f !== i);
|
|
201
|
+
const h = {};
|
|
202
|
+
"checkedKeys" in this.props || (h.checkedKeys = d), "halfCheckedKeys" in this.props || (h.halfCheckedKeys = l), A(h) || this.setState({ ...h });
|
|
203
|
+
} else {
|
|
204
|
+
const { checkedKeys: h, indeterminateKeys: f } = z(
|
|
205
|
+
i,
|
|
206
|
+
e,
|
|
207
|
+
d,
|
|
208
|
+
this.key2nodeProps,
|
|
209
|
+
l
|
|
210
|
+
);
|
|
211
|
+
d = h, l = f, "checkedKeys" in this.props ? this.setState({ halfCheckedKeys: l }) : this.setState({ checkedKeys: d, halfCheckedKeys: l }), t === k.SHOW_PARENT ? d = d.filter((K) => {
|
|
212
|
+
const y = this.key2nodeProps[K];
|
|
213
|
+
if (!y || d.indexOf(y.parentKey) === -1)
|
|
214
|
+
return !0;
|
|
215
|
+
}) : t === k.SHOW_CHILD && (d = d.filter((K) => {
|
|
216
|
+
var p, a;
|
|
217
|
+
const y = this.key2nodeProps[K];
|
|
218
|
+
if (!y || !((p = y.children) != null && p.length) || (a = y.children) != null && a.every((m) => d.indexOf(m._key) === -1))
|
|
219
|
+
return !0;
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
r == null || r(d, {
|
|
223
|
+
checkedNodes: this.getCacheNode(d),
|
|
224
|
+
checked: e,
|
|
225
|
+
halfCheckedKeys: l,
|
|
226
|
+
halfCheckedNodes: this.getCacheNode(l),
|
|
227
|
+
...c
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
n(this, "handleLoadMore", (e) => {
|
|
231
|
+
const { loadMore: i } = this.props;
|
|
232
|
+
if (F(i)) {
|
|
233
|
+
const { loadingKeys: s = [], loadedKeys: t } = this.state;
|
|
234
|
+
this.setState(
|
|
235
|
+
{
|
|
236
|
+
loadingKeys: Array.from(/* @__PURE__ */ new Set([...s, e._key])),
|
|
237
|
+
loadedKeys: t.filter((r) => r !== e._key)
|
|
238
|
+
},
|
|
239
|
+
async () => {
|
|
240
|
+
try {
|
|
241
|
+
await i(this.getCacheNode([e._key])[0]), this.setState({
|
|
242
|
+
loadedKeys: Array.from(
|
|
243
|
+
/* @__PURE__ */ new Set([...this.state.loadedKeys, e._key])
|
|
244
|
+
),
|
|
245
|
+
loadingKeys: this.state.loadingKeys.filter(
|
|
246
|
+
(r) => r !== e._key
|
|
247
|
+
)
|
|
248
|
+
}), this.handleExpand(!e.expanded, e._key);
|
|
249
|
+
} catch (r) {
|
|
250
|
+
console.error("[tree]load data error: ", r), this.setState({
|
|
251
|
+
loadingKeys: this.state.loadingKeys.filter(
|
|
252
|
+
(o) => o !== e._key
|
|
253
|
+
)
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
n(this, "handleNodeDragStart", (e, i) => {
|
|
261
|
+
this.dragNode = this.getCacheNode([i._key])[0], this.dropPosition = 0;
|
|
262
|
+
const { onDragStart: s } = this.props;
|
|
263
|
+
s == null || s(e, this.getCacheNode([i._key])[0]);
|
|
264
|
+
});
|
|
265
|
+
n(this, "handleNodeDragEnd", (e, i) => {
|
|
266
|
+
this.dragNode = null, this.dropPosition = 0;
|
|
267
|
+
const { onDragEnd: s } = this.props;
|
|
268
|
+
s == null || s(e, this.getCacheNode([i._key])[0]);
|
|
269
|
+
});
|
|
270
|
+
n(this, "handleNodeDragOver", (e, i, s) => {
|
|
271
|
+
this.dropPosition = s;
|
|
272
|
+
const { onDragOver: t } = this.props;
|
|
273
|
+
t == null || t(e, this.getCacheNode([i._key])[0]);
|
|
274
|
+
});
|
|
275
|
+
n(this, "handleNodeDragLeave", (e, i) => {
|
|
276
|
+
this.dropPosition = 0;
|
|
277
|
+
const { onDragLeave: s } = this.props;
|
|
278
|
+
s == null || s(e, this.getCacheNode([i._key])[0]);
|
|
279
|
+
});
|
|
280
|
+
n(this, "isChildOfNode", (e, i) => {
|
|
281
|
+
let s = this.key2nodeProps[e.parentKey];
|
|
282
|
+
for (; s; ) {
|
|
283
|
+
const { _key: t, parentKey: r } = s;
|
|
284
|
+
if (t === i.props._key)
|
|
285
|
+
return !0;
|
|
286
|
+
if (r === t) return;
|
|
287
|
+
s = this.key2nodeProps[r];
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
n(this, "isSameNode", (e, i) => {
|
|
291
|
+
if (e === void 0 || i === void 0) return !1;
|
|
292
|
+
if (e === i) return !0;
|
|
293
|
+
const s = e.key, t = i.key;
|
|
294
|
+
if (s !== void 0 || t !== void 0) return s === t;
|
|
295
|
+
const r = e.props._key, o = i.props._key;
|
|
296
|
+
return r === void 0 && o === void 0 ? !1 : r === o;
|
|
297
|
+
});
|
|
298
|
+
n(this, "handleNodeDrop", (e, i, s) => {
|
|
299
|
+
if (this.dragNode) {
|
|
300
|
+
const { allowDrop: t } = this.getMergedProps(), { onDrop: r } = this.props, o = this.getCacheNode([i._key])[0];
|
|
301
|
+
if (r && !this.isChildOfNode(i, this.dragNode) && !this.isSameNode(this.dragNode, o)) {
|
|
302
|
+
if (t && !t({
|
|
303
|
+
dropNode: o,
|
|
304
|
+
dragNode: this.dragNode,
|
|
305
|
+
dropPosition: s
|
|
306
|
+
}))
|
|
307
|
+
return;
|
|
308
|
+
r({
|
|
309
|
+
dragNode: this.dragNode,
|
|
310
|
+
dropNode: o,
|
|
311
|
+
dropPosition: s,
|
|
312
|
+
e
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
n(this, "handleAllowDrop", (e, i) => {
|
|
318
|
+
const { allowDrop: s } = this.getMergedProps();
|
|
319
|
+
let t = !0;
|
|
320
|
+
return typeof s == "function" && (t = s({
|
|
321
|
+
dropNode: this.getCacheNode([e._key])[0],
|
|
322
|
+
dragNode: this.dragNode,
|
|
323
|
+
dropPosition: i
|
|
324
|
+
})), t;
|
|
325
|
+
});
|
|
326
|
+
n(this, "handleExpand", (e, i) => {
|
|
327
|
+
const { currentExpandKeys: s, expandedKeys: t = [] } = this.state, { onExpand: r } = this.props;
|
|
328
|
+
if (s.indexOf(i) > -1)
|
|
329
|
+
return;
|
|
330
|
+
let o = [];
|
|
331
|
+
e ? o = Array.from(/* @__PURE__ */ new Set([...t, i])) : o = t.filter((c) => c !== i), "expandedKeys" in this.props || this.setState({
|
|
332
|
+
expandedKeys: o,
|
|
333
|
+
currentExpandKeys: [...s, i]
|
|
334
|
+
}), r == null || r(o, {
|
|
335
|
+
expanded: e,
|
|
336
|
+
node: this.getCacheNode([i])[0],
|
|
337
|
+
expandedNodes: this.getCacheNode(o)
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
n(this, "getCacheNode", (e) => {
|
|
341
|
+
const { __PqbAdapterMode__: i } = this.props, s = [];
|
|
342
|
+
return [].concat(e).forEach((r) => {
|
|
343
|
+
const o = this.key2nodeProps[r];
|
|
344
|
+
o && s.push(o);
|
|
345
|
+
}), this.getNodeProps(s).map((r) => i ? {
|
|
346
|
+
props: r,
|
|
347
|
+
key: e
|
|
348
|
+
} : /* @__PURE__ */ I(L, { ...r, key: r.key }));
|
|
349
|
+
});
|
|
350
|
+
// 转换为 set 类型,便于查找。主要是传递给node-list使用
|
|
351
|
+
n(this, "getDataSet", (e) => {
|
|
352
|
+
var i, s, t, r;
|
|
353
|
+
return {
|
|
354
|
+
expandedKeysSet: (e == null ? void 0 : e.expandedKeysSet) || new Set(((i = this.state) == null ? void 0 : i.expandedKeys) || []),
|
|
355
|
+
checkedKeysSet: (e == null ? void 0 : e.checkedKeysSet) || new Set(((s = this.state) == null ? void 0 : s.checkedKeys) || []),
|
|
356
|
+
selectedKeysSet: (e == null ? void 0 : e.selectedKeysSet) || new Set(((t = this.state) == null ? void 0 : t.selectedKeys) || []),
|
|
357
|
+
halfCheckedKeysSet: (e == null ? void 0 : e.halfCheckedKeysSet) || new Set(((r = this.state) == null ? void 0 : r.halfCheckedKeys) || [])
|
|
358
|
+
};
|
|
359
|
+
});
|
|
360
|
+
// dataSet:传入构建好的expandedKeysSet,, checkedKeysSet, halfCheckedKeysSet ,性能优化
|
|
361
|
+
n(this, "getNodeProps", (e, i) => {
|
|
362
|
+
const { autoExpandParent: s } = this.getMergedProps(), { loadMore: t } = this.props, {
|
|
363
|
+
selectedKeys: r,
|
|
364
|
+
expandedKeys: o,
|
|
365
|
+
checkedKeys: c,
|
|
366
|
+
loadingKeys: d = [],
|
|
367
|
+
loadedKeys: l = []
|
|
368
|
+
} = this.state, {
|
|
369
|
+
expandedKeysSet: h,
|
|
370
|
+
checkedKeysSet: f,
|
|
371
|
+
selectedKeysSet: K,
|
|
372
|
+
halfCheckedKeysSet: y
|
|
373
|
+
} = this.getDataSet(i), p = (a) => {
|
|
374
|
+
const m = a.children && a.children.length, g = {
|
|
375
|
+
isLeaf: !m,
|
|
376
|
+
autoExpandParent: m ? s : !1,
|
|
377
|
+
expanded: h ? h.has(a._key) : o.indexOf(a._key) > -1
|
|
378
|
+
};
|
|
379
|
+
if (t) {
|
|
380
|
+
const D = l.indexOf(a._key) > -1;
|
|
381
|
+
g.loaded = D, g.isLeaf = m ? !1 : a.isLeaf;
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
...a,
|
|
385
|
+
...g,
|
|
386
|
+
selected: K.has(a._key),
|
|
387
|
+
indeterminated: y.has(a._key),
|
|
388
|
+
loading: d.indexOf(a._key) > -1,
|
|
389
|
+
checked: f.has(a._key),
|
|
390
|
+
selectedKeys: r,
|
|
391
|
+
checkedKeys: c,
|
|
392
|
+
loadingKeys: d,
|
|
393
|
+
loadedKeys: l,
|
|
394
|
+
expandedKeys: o,
|
|
395
|
+
childrenData: a.children || [],
|
|
396
|
+
children: null
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
return $(e) ? e.map((a) => p(a)) : p(e);
|
|
400
|
+
});
|
|
401
|
+
n(this, "handleExpandEnd", (e) => {
|
|
402
|
+
this.setState((i) => {
|
|
403
|
+
const { currentExpandKeys: s } = i;
|
|
404
|
+
return s.indexOf(e) > -1 ? {
|
|
405
|
+
currentExpandKeys: s.filter((t) => t !== e)
|
|
406
|
+
} : {};
|
|
407
|
+
});
|
|
408
|
+
});
|
|
409
|
+
// 获取tree的state数据,在子组件里使用。
|
|
410
|
+
n(this, "getTreeState", () => this.state);
|
|
411
|
+
this.state = {};
|
|
412
|
+
const s = this.getTreeData(), t = this.getNodeList(s, i.getPrefixCls("tree")), { checkedKeys: r, halfCheckedKeys: o } = this.getInitCheckedKeys(
|
|
413
|
+
e.checkedKeys || e.defaultCheckedKeys || []
|
|
414
|
+
);
|
|
415
|
+
this.state = {
|
|
416
|
+
selectedKeys: e.selectedKeys || e.defaultSelectedKeys || [],
|
|
417
|
+
checkedKeys: r,
|
|
418
|
+
halfCheckedKeys: o,
|
|
419
|
+
expandedKeys: this.getInitExpandedKeys(
|
|
420
|
+
e.expandedKeys || e.defaultExpandedKeys
|
|
421
|
+
),
|
|
422
|
+
loadedKeys: [],
|
|
423
|
+
loadingKeys: [],
|
|
424
|
+
currentExpandKeys: [],
|
|
425
|
+
nodeList: t
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
static getDerivedStateFromProps(e, i) {
|
|
429
|
+
const s = {};
|
|
430
|
+
return "selectedKeys" in e && !x(e.selectedKeys, i.selectedKeys) && (s.selectedKeys = e.selectedKeys || []), Object.keys(s).length ? s : null;
|
|
431
|
+
}
|
|
432
|
+
componentDidUpdate(e) {
|
|
433
|
+
const i = this.getMergedProps(e), s = this.getMergedProps();
|
|
434
|
+
if (e !== this.props || !x(i, s)) {
|
|
435
|
+
const t = {};
|
|
436
|
+
if (this.needUpdateTreeData(
|
|
437
|
+
{ prevMergedProps: i, ...e },
|
|
438
|
+
{ ...s, ...this.props }
|
|
439
|
+
)) {
|
|
440
|
+
const o = this.getTreeData(), c = this.getNodeList(o);
|
|
441
|
+
t.treeData = o, t.nodeList = c;
|
|
442
|
+
}
|
|
443
|
+
if (t.treeData || "checkedKeys" in this.props && !x(e.checkedKeys, this.props.checkedKeys)) {
|
|
444
|
+
const o = "checkedKeys" in this.props ? this.props.checkedKeys : this.state.checkedKeys, { halfCheckedKeys: c, checkedKeys: d } = this.getInitCheckedKeys(
|
|
445
|
+
o || []
|
|
446
|
+
);
|
|
447
|
+
x(d, this.state.checkedKeys) || (t.checkedKeys = d), x(c, this.state.halfCheckedKeys) || (t.halfCheckedKeys = c);
|
|
448
|
+
}
|
|
449
|
+
this.props.checkStrictly && "halfCheckedKeys" in this.props && !x(e.halfCheckedKeys, this.props.halfCheckedKeys) && (t.halfCheckedKeys = this.props.halfCheckedKeys), "expandedKeys" in this.props && !x(this.props.expandedKeys, e.expandedKeys) && (t.expandedKeys = this.props.expandedKeys, t.currentExpandKeys = [
|
|
450
|
+
...t.expandedKeys,
|
|
451
|
+
...this.state.expandedKeys
|
|
452
|
+
].reduce((o, c) => {
|
|
453
|
+
const d = o.indexOf(c);
|
|
454
|
+
return d === -1 ? o.push(c) : o.splice(d, 1), o;
|
|
455
|
+
}, []).filter((o, c, d) => {
|
|
456
|
+
var l;
|
|
457
|
+
if (this.key2nodeProps[o])
|
|
458
|
+
return this.key2nodeProps[o].pathParentKeys.some((f) => d.indexOf(f) > -1) ? !1 : (l = this.key2nodeProps[o].children) == null ? void 0 : l.length;
|
|
459
|
+
}));
|
|
460
|
+
const r = t.currentExpandKeys || this.state.currentExpandKeys;
|
|
461
|
+
t.treeData && r && (t.currentExpandKeys = r.filter((o) => {
|
|
462
|
+
const c = t.treeData.find((d) => d.key === o);
|
|
463
|
+
return c && c.children && c.children.length;
|
|
464
|
+
})), Object.keys(t).length && this.setState(t);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
render() {
|
|
468
|
+
const {
|
|
469
|
+
className: e,
|
|
470
|
+
showLine: i,
|
|
471
|
+
size: s,
|
|
472
|
+
virtualListProps: t,
|
|
473
|
+
height: r,
|
|
474
|
+
style: o,
|
|
475
|
+
icons: c,
|
|
476
|
+
actionOnClick: d
|
|
477
|
+
} = this.getMergedProps(), { loadMore: l, checkable: h } = this.props, f = t ? {
|
|
478
|
+
threshold: 100,
|
|
479
|
+
...t
|
|
480
|
+
} : r ? { height: r, threshold: 100 } : {
|
|
481
|
+
threshold: null
|
|
482
|
+
}, { getPrefixCls: K, rtl: y } = this.context, p = K("tree");
|
|
483
|
+
return /* @__PURE__ */ b(
|
|
484
|
+
R.Provider,
|
|
485
|
+
{
|
|
486
|
+
value: {
|
|
487
|
+
icons: c,
|
|
488
|
+
key2nodeProps: this.key2nodeProps,
|
|
489
|
+
getFieldInfo: this.getFieldInfo,
|
|
490
|
+
getTreeState: this.getTreeState,
|
|
491
|
+
getNodeProps: this.getNodeProps,
|
|
492
|
+
onExpandEnd: this.handleExpandEnd,
|
|
493
|
+
onSelect: this.handleSelect,
|
|
494
|
+
onCheck: this.handleCheck,
|
|
495
|
+
onNodeDragStart: this.handleNodeDragStart,
|
|
496
|
+
onNodeDragEnd: this.handleNodeDragEnd,
|
|
497
|
+
onNodeDragLeave: this.handleNodeDragLeave,
|
|
498
|
+
onNodeDragOver: this.handleNodeDragOver,
|
|
499
|
+
onNodeDrop: this.handleNodeDrop,
|
|
500
|
+
onExpand: this.handleExpand,
|
|
501
|
+
renderExtra: this.props.renderExtra,
|
|
502
|
+
renderTitle: this.props.renderTitle,
|
|
503
|
+
loadMore: l && this.handleLoadMore,
|
|
504
|
+
allowDrop: this.handleAllowDrop,
|
|
505
|
+
actionOnClick: d,
|
|
506
|
+
virtualListProps: f
|
|
507
|
+
},
|
|
508
|
+
children: /* @__PURE__ */ b(
|
|
509
|
+
j,
|
|
510
|
+
{
|
|
511
|
+
ref: (a) => {
|
|
512
|
+
this.nodeListRef = a;
|
|
513
|
+
},
|
|
514
|
+
className: E(
|
|
515
|
+
p,
|
|
516
|
+
{
|
|
517
|
+
[`${p}-checkable`]: h,
|
|
518
|
+
[`${p}-show-line`]: i,
|
|
519
|
+
[`${p}-size-${s}`]: s,
|
|
520
|
+
[`${p}-rtl`]: y
|
|
521
|
+
},
|
|
522
|
+
e
|
|
523
|
+
),
|
|
524
|
+
style: o,
|
|
525
|
+
filterNode: this.props.filterNode,
|
|
526
|
+
virtualListProps: f,
|
|
527
|
+
expandedKeys: this.state.expandedKeys,
|
|
528
|
+
currentExpandKeys: this.state.currentExpandKeys,
|
|
529
|
+
getNodeProps: this.getNodeProps,
|
|
530
|
+
getDataSet: this.getDataSet,
|
|
531
|
+
nodeList: this.state.nodeList,
|
|
532
|
+
onMouseDown: this.props.onMouseDown,
|
|
533
|
+
ariaProps: {
|
|
534
|
+
role: "tree",
|
|
535
|
+
"aria-multiselectable": this.props.multiple,
|
|
536
|
+
tabIndex: 0,
|
|
537
|
+
...H(this.props)
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
)
|
|
541
|
+
}
|
|
542
|
+
);
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
n(k, "displayName", "Tree"), n(k, "SHOW_PARENT", "parent"), n(k, "SHOW_ALL", "all"), n(k, "SHOW_CHILD", "child"), n(k, "Node", L), n(k, "contextType", q);
|
|
546
|
+
let S = k;
|
|
547
|
+
export {
|
|
548
|
+
S as default
|
|
549
|
+
};
|
package/tree/util.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import o from "react";
|
|
2
|
+
const C = (t) => {
|
|
3
|
+
const n = (r) => o.Children.map(r, (e) => {
|
|
4
|
+
if (!o.isValidElement(e))
|
|
5
|
+
return;
|
|
6
|
+
const d = e.key;
|
|
7
|
+
return {
|
|
8
|
+
...e.props,
|
|
9
|
+
key: d,
|
|
10
|
+
children: n(e.props.children)
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
return n(t);
|
|
14
|
+
};
|
|
15
|
+
function f(t, n) {
|
|
16
|
+
const r = /* @__PURE__ */ new Set(), e = (d) => {
|
|
17
|
+
d.map((s) => {
|
|
18
|
+
const c = s.key, a = n[c];
|
|
19
|
+
!a || a.disabled || a.disableCheckbox || a.checkable === !1 || (r.add(c), e(a.children || []));
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
return t && e(t.children || []), r;
|
|
23
|
+
}
|
|
24
|
+
const u = (t, n, r, e) => {
|
|
25
|
+
[...n[t].pathParentKeys].reverse().some((s) => {
|
|
26
|
+
const c = n[s];
|
|
27
|
+
if (c && !c.disabled && !c.disableCheckbox && c.checkable !== !1) {
|
|
28
|
+
let a = 0, l = 0;
|
|
29
|
+
c.children.some(({ key: i }) => {
|
|
30
|
+
const h = n[i];
|
|
31
|
+
if (!h || h.disabled || h.disableCheckbox || h.checkable === !1)
|
|
32
|
+
return !1;
|
|
33
|
+
if (a++, r.has(i))
|
|
34
|
+
l++;
|
|
35
|
+
else if (e.has(i))
|
|
36
|
+
return l += 0.5, !0;
|
|
37
|
+
}), !l || l === a ? e.delete(s) : e.add(s), l && l === a ? r.add(s) : r.delete(s);
|
|
38
|
+
} else
|
|
39
|
+
return !0;
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
function K(t, n) {
|
|
43
|
+
const r = new Set(t || []), e = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set();
|
|
44
|
+
return t.forEach((s) => {
|
|
45
|
+
d.has(s) || f(n[s], n).forEach((a) => {
|
|
46
|
+
d.add(a);
|
|
47
|
+
}), n[s] && !n[s].pathParentKeys.some(
|
|
48
|
+
(c) => r.has(c)
|
|
49
|
+
) && u(s, n, r, e);
|
|
50
|
+
}), {
|
|
51
|
+
checkedKeys: [.../* @__PURE__ */ new Set([...r, ...d])],
|
|
52
|
+
indeterminateKeys: [...e]
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function S(t, n, r, e, d) {
|
|
56
|
+
if (!e[t])
|
|
57
|
+
return {
|
|
58
|
+
checkedKeys: r,
|
|
59
|
+
indeterminateKeys: d
|
|
60
|
+
};
|
|
61
|
+
const s = new Set(r), c = new Set(d), a = f(e[t], e), l = s;
|
|
62
|
+
return n ? (l.add(t), c.delete(t), a.forEach((i) => {
|
|
63
|
+
l.add(i);
|
|
64
|
+
})) : (c.delete(t), l.delete(t), a.forEach((i) => {
|
|
65
|
+
l.delete(i);
|
|
66
|
+
})), u(t, e, s, c), {
|
|
67
|
+
checkedKeys: [...l],
|
|
68
|
+
indeterminateKeys: [...c]
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
S as getAllCheckedKeysByCheck,
|
|
73
|
+
K as getCheckedKeysByInitKeys,
|
|
74
|
+
f as getChildNodeKeys,
|
|
75
|
+
C as getTreeDataFromTreeChildren
|
|
76
|
+
};
|