@qsxy/element-plus-react 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Affix/Affix.d.ts +4 -0
- package/dist/Affix/Affix.js +301 -0
- package/dist/Affix/index.d.ts +2 -0
- package/dist/Affix/index.js +1 -0
- package/dist/Affix/typings.d.ts +50 -0
- package/dist/Affix/typings.js +1 -0
- package/dist/Alert/Alert.d.ts +7 -0
- package/dist/Alert/Alert.js +98 -0
- package/dist/Alert/index.d.ts +2 -0
- package/dist/Alert/index.js +1 -0
- package/dist/Alert/typings.d.ts +45 -0
- package/dist/Alert/typings.js +1 -0
- package/dist/Anchor/Anchor.d.ts +6 -0
- package/dist/Anchor/Anchor.js +258 -0
- package/dist/Anchor/AnchorLink.d.ts +4 -0
- package/dist/Anchor/AnchorLink.js +77 -0
- package/dist/Anchor/element.d.ts +4 -0
- package/dist/Anchor/element.js +17 -0
- package/dist/Anchor/index.d.ts +3 -0
- package/dist/Anchor/index.js +2 -0
- package/dist/Anchor/typings.d.ts +101 -0
- package/dist/Anchor/typings.js +1 -0
- package/dist/Backtop/Backtop.d.ts +7 -0
- package/dist/Backtop/Backtop.js +153 -0
- package/dist/Backtop/index.d.ts +2 -0
- package/dist/Backtop/index.js +1 -0
- package/dist/Backtop/typings.d.ts +31 -0
- package/dist/Backtop/typings.js +1 -0
- package/dist/Button/Button.d.ts +2 -11
- package/dist/Button/Button.js +2 -6
- package/dist/Button/index.d.ts +1 -1
- package/dist/Calendar/Calendar.js +12 -8
- package/dist/Calendar/YearRangePanel.js +1 -1
- package/dist/Card/Card.js +5 -3
- package/dist/Carousel/typings.d.ts +1 -1
- package/dist/Cascader/Cascader.d.ts +3 -3
- package/dist/Cascader/Cascader.js +238 -166
- package/dist/Cascader/CascaderContext.d.ts +9 -3
- package/dist/Cascader/CascaderContext.js +3 -1
- package/dist/Cascader/CascaderDropdown.d.ts +4 -3
- package/dist/Cascader/CascaderDropdown.js +21 -10
- package/dist/Cascader/CascaderMenu.d.ts +2 -2
- package/dist/Cascader/CascaderMenu.js +56 -14
- package/dist/Cascader/CascaderPanel.d.ts +4 -0
- package/dist/Cascader/CascaderPanel.js +11 -0
- package/dist/Cascader/index.d.ts +4 -1
- package/dist/Cascader/index.js +2 -1
- package/dist/Cascader/typings.d.ts +45 -31
- package/dist/Cascader/useCascader.d.ts +14 -27
- package/dist/Cascader/useCascader.js +153 -59
- package/dist/Checkbox/Checkbox.js +3 -2
- package/dist/CheckboxGroup/CheckboxGroup.d.ts +11 -1
- package/dist/CheckboxGroup/CheckboxGroup.js +78 -19
- package/dist/Collapse/Collapse.d.ts +3 -3
- package/dist/Collapse/Collapse.js +71 -16
- package/dist/Collapse/CollapseContext.d.ts +3 -6
- package/dist/Collapse/CollapseContext.js +2 -4
- package/dist/Collapse/CollapseItem.d.ts +3 -3
- package/dist/Collapse/CollapseItem.js +93 -51
- package/dist/Collapse/CollapseTransition.js +11 -7
- package/dist/Collapse/index.d.ts +1 -1
- package/dist/Collapse/typings.d.ts +20 -5
- package/dist/ColorPicker/typings.d.ts +1 -1
- package/dist/ConfigProvider/ConfigProvider.js +2 -24
- package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
- package/dist/ConfigProvider/typings.d.ts +1 -1
- package/dist/Container/Main.d.ts +1 -1
- package/dist/Container/typings.d.ts +1 -1
- package/dist/Countdown/Countdown.d.ts +4 -0
- package/dist/Countdown/Countdown.js +121 -0
- package/dist/Countdown/index.d.ts +2 -0
- package/dist/Countdown/index.js +1 -0
- package/dist/Countdown/typings.d.ts +52 -0
- package/dist/Countdown/typings.js +1 -0
- package/dist/Countdown/util.d.ts +14 -0
- package/dist/Countdown/util.js +58 -0
- package/dist/DatePicker/DatePicker.js +9 -6
- package/dist/DatePicker/DateRangePicker.js +7 -6
- package/dist/DatePicker/typings.d.ts +0 -13
- package/dist/DateTimePicker/DateTimePicker.js +29 -19
- package/dist/Dialog/Dialog.d.ts +2 -13
- package/dist/Dialog/Dialog.js +143 -160
- package/dist/Dialog/DialogBody.js +3 -38
- package/dist/Dialog/DialogContext.d.ts +0 -7
- package/dist/Dialog/DialogContext.js +1 -5
- package/dist/Dialog/DialogHeader.js +2 -2
- package/dist/Dialog/typings.d.ts +43 -28
- package/dist/Dialog/useDraggable.d.ts +2 -1
- package/dist/Dialog/useDraggable.js +34 -9
- package/dist/Drawer/Drawer.d.ts +2 -13
- package/dist/Drawer/Drawer.js +115 -137
- package/dist/Drawer/DrawerBody.js +7 -8
- package/dist/Drawer/DrawerFooter.js +7 -7
- package/dist/Drawer/DrawerHeader.js +11 -8
- package/dist/Drawer/typings.d.ts +22 -6
- package/dist/Dropdown/Dropdown.js +5 -3
- package/dist/Dropdown/typings.d.ts +2 -1
- package/dist/Empty/Empty.js +16 -4
- package/dist/Form/Form.d.ts +4 -21
- package/dist/Form/Form.js +53 -25
- package/dist/Form/FormItem.d.ts +4 -52
- package/dist/Form/FormItem.js +633 -650
- package/dist/Form/FormItemContext.d.ts +10 -1
- package/dist/Form/FormItemContext.js +9 -1
- package/dist/Form/FormLabelWrap.d.ts +8 -0
- package/dist/Form/FormLabelWrap.js +103 -0
- package/dist/Form/{FieldContext.d.ts → InternalFormContext.d.ts} +2 -2
- package/dist/Form/{FieldContext.js → InternalFormContext.js} +5 -2
- package/dist/Form/List.d.ts +3 -3
- package/dist/Form/List.js +4 -4
- package/dist/Form/index.d.ts +4 -2
- package/dist/Form/index.js +4 -1
- package/dist/Form/typings.d.ts +61 -9
- package/dist/Form/typings.js +15 -1
- package/dist/Form/useForm.js +3 -3
- package/dist/Form/useWatch.js +1 -1
- package/dist/Input/Input.d.ts +2 -14
- package/dist/Input/Input.js +187 -140
- package/dist/Input/InputGroup.js +1 -1
- package/dist/Input/InputRange.js +7 -11
- package/dist/Input/TextArea.d.ts +1 -1
- package/dist/Input/TextArea.js +85 -30
- package/dist/Input/index.d.ts +1 -0
- package/dist/Input/index.js +2 -1
- package/dist/Input/typings.d.ts +38 -19
- package/dist/Input/utils.d.ts +1 -0
- package/dist/Input/utils.js +5 -1
- package/dist/InputNumber/InputNumber.js +408 -147
- package/dist/InputNumber/typings.d.ts +15 -5
- package/dist/Loading/Loading.js +5 -2
- package/dist/Menu/Menu.js +26 -2
- package/dist/Menu/MenuItem.js +4 -2
- package/dist/Menu/SubMenu.js +2 -2
- package/dist/Menu/SubMenuCollapseTransition.js +14 -9
- package/dist/Menu/typings.d.ts +5 -14
- package/dist/Message/Message.js +51 -23
- package/dist/Message/index.js +13 -13
- package/dist/Message/typings.d.ts +8 -5
- package/dist/MessageBox/MessageBox.js +75 -57
- package/dist/MessageBox/index.d.ts +2 -1
- package/dist/MessageBox/index.js +4 -2
- package/dist/MessageBox/typings.d.ts +3 -1
- package/dist/Notification/Notification.js +26 -19
- package/dist/Notification/typings.d.ts +1 -1
- package/dist/PageHeader/PageHeader.d.ts +8 -0
- package/dist/PageHeader/PageHeader.js +91 -0
- package/dist/PageHeader/index.d.ts +2 -0
- package/dist/PageHeader/index.js +1 -0
- package/dist/PageHeader/typings.d.ts +34 -0
- package/dist/PageHeader/typings.js +1 -0
- package/dist/Pagination/typings.d.ts +1 -1
- package/dist/Popover/Popover.js +7 -7
- package/dist/Popover/typings.d.ts +3 -3
- package/dist/Popper/Popper.js +49 -28
- package/dist/Popper/popperOptions.js +1 -0
- package/dist/Popper/typings.d.ts +2 -0
- package/dist/Radio/Radio.d.ts +2 -12
- package/dist/Radio/Radio.js +2 -6
- package/dist/Radio/RadioButton.d.ts +1 -1
- package/dist/Radio/RadioButton.js +4 -4
- package/dist/Radio/index.d.ts +1 -0
- package/dist/Radio/index.js +2 -1
- package/dist/Radio/typings.d.ts +1 -1
- package/dist/RadioGroup/RadioGroup.js +44 -16
- package/dist/RadioGroup/typings.d.ts +10 -0
- package/dist/Segmented/Segmented.d.ts +4 -0
- package/dist/Segmented/Segmented.js +208 -0
- package/dist/Segmented/index.d.ts +2 -0
- package/dist/Segmented/index.js +1 -0
- package/dist/Segmented/typings.d.ts +20 -0
- package/dist/Segmented/typings.js +5 -0
- package/dist/Select/SelectContext.d.ts +2 -1
- package/dist/Select/SelectContext.js +2 -1
- package/dist/Select/SelectCore.js +64 -15
- package/dist/Select/SelectDropdown.js +23 -15
- package/dist/Select/index.d.ts +1 -1
- package/dist/Select/typings.d.ts +26 -17
- package/dist/Select/useSelect.d.ts +35 -18
- package/dist/Select/useSelect.js +88 -33
- package/dist/Skeleton/typings.d.ts +1 -1
- package/dist/Slider/Button.d.ts +4 -0
- package/dist/Slider/Button.js +96 -0
- package/dist/Slider/Marker.d.ts +4 -0
- package/dist/Slider/Marker.js +31 -0
- package/dist/Slider/Slider.d.ts +4 -0
- package/dist/Slider/Slider.js +263 -0
- package/dist/Slider/SliderContext.d.ts +3 -0
- package/dist/Slider/SliderContext.js +2 -0
- package/dist/Slider/hooks/index.d.ts +5 -0
- package/dist/Slider/hooks/index.js +5 -0
- package/dist/Slider/hooks/useLifecycle.d.ts +5 -0
- package/dist/Slider/hooks/useLifecycle.js +50 -0
- package/dist/Slider/hooks/useMarks.d.ts +2 -0
- package/dist/Slider/hooks/useMarks.js +49 -0
- package/dist/Slider/hooks/useSlider.d.ts +38 -0
- package/dist/Slider/hooks/useSlider.js +227 -0
- package/dist/Slider/hooks/useSliderButton.d.ts +28 -0
- package/dist/Slider/hooks/useSliderButton.js +454 -0
- package/dist/Slider/hooks/useStops.d.ts +6 -0
- package/dist/Slider/hooks/useStops.js +47 -0
- package/dist/Slider/hooks/useWatch.d.ts +3 -0
- package/dist/Slider/hooks/useWatch.js +119 -0
- package/dist/Slider/index.d.ts +2 -0
- package/dist/Slider/index.js +1 -0
- package/dist/Slider/style/css.d.ts +1 -0
- package/dist/Slider/style/css.js +1 -0
- package/dist/Slider/style/index.d.ts +1 -0
- package/dist/Slider/style/index.js +1 -0
- package/dist/Slider/typings.d.ts +122 -0
- package/dist/Slider/typings.js +1 -0
- package/dist/Space/Space.d.ts +4 -0
- package/dist/Space/Space.js +125 -0
- package/dist/Space/SpaceItem.d.ts +7 -0
- package/dist/Space/SpaceItem.js +14 -0
- package/dist/Space/index.d.ts +3 -0
- package/dist/Space/index.js +2 -0
- package/dist/Space/typings.d.ts +26 -0
- package/dist/Space/typings.js +1 -0
- package/dist/Space/useSpace.d.ts +7 -0
- package/dist/Space/useSpace.js +105 -0
- package/dist/Statistic/Statistic.d.ts +4 -0
- package/dist/Statistic/Statistic.js +91 -0
- package/dist/Statistic/index.d.ts +2 -0
- package/dist/Statistic/index.js +1 -0
- package/dist/Statistic/typings.d.ts +28 -0
- package/dist/Statistic/typings.js +1 -0
- package/dist/Steps/Step.d.ts +4 -0
- package/dist/Steps/Step.js +247 -0
- package/dist/Steps/Steps.d.ts +5 -0
- package/dist/Steps/Steps.js +116 -0
- package/dist/Steps/index.d.ts +3 -0
- package/dist/Steps/index.js +2 -0
- package/dist/Steps/typings.d.ts +119 -0
- package/dist/Steps/typings.js +1 -0
- package/dist/Switch/Switch.js +2 -2
- package/dist/Switch/typings.d.ts +0 -1
- package/dist/Table/Table.js +17 -14
- package/dist/Table/TableBody.js +4 -4
- package/dist/Table/TableCell.js +53 -28
- package/dist/Table/TableColumn.d.ts +2 -2
- package/dist/Table/TableHeader.js +2 -2
- package/dist/Table/TableHeaderCell.js +2 -2
- package/dist/Table/hooks/useResize.js +0 -2
- package/dist/Table/hooks/useTable.d.ts +1 -1
- package/dist/Table/hooks/useTable.js +15 -10
- package/dist/Table/typings.d.ts +28 -12
- package/dist/Table/util.d.ts +1 -1
- package/dist/Table/util.js +8 -65
- package/dist/TableV2/index.d.ts +10 -0
- package/dist/TableV2/index.js +7 -0
- package/dist/TableV2/src/auto-resizer.d.ts +14 -0
- package/dist/TableV2/src/auto-resizer.js +1 -0
- package/dist/TableV2/src/cell.d.ts +21 -0
- package/dist/TableV2/src/cell.js +1 -0
- package/dist/TableV2/src/components/auto-resizer.d.ts +4 -0
- package/dist/TableV2/src/components/auto-resizer.js +32 -0
- package/dist/TableV2/src/components/cell.d.ts +4 -0
- package/dist/TableV2/src/components/cell.js +22 -0
- package/dist/TableV2/src/components/expand-icon.d.ts +12 -0
- package/dist/TableV2/src/components/expand-icon.js +29 -0
- package/dist/TableV2/src/components/header-cell.d.ts +4 -0
- package/dist/TableV2/src/components/header-cell.js +23 -0
- package/dist/TableV2/src/components/header-row.d.ts +17 -0
- package/dist/TableV2/src/components/header-row.js +41 -0
- package/dist/TableV2/src/components/header.d.ts +20 -0
- package/dist/TableV2/src/components/header.js +103 -0
- package/dist/TableV2/src/components/index.d.ts +10 -0
- package/dist/TableV2/src/components/index.js +7 -0
- package/dist/TableV2/src/components/row.d.ts +19 -0
- package/dist/TableV2/src/components/row.js +206 -0
- package/dist/TableV2/src/components/sort-icon.d.ts +9 -0
- package/dist/TableV2/src/components/sort-icon.js +14 -0
- package/dist/TableV2/src/composables/index.d.ts +6 -0
- package/dist/TableV2/src/composables/index.js +6 -0
- package/dist/TableV2/src/composables/use-auto-resize.d.ts +7 -0
- package/dist/TableV2/src/composables/use-auto-resize.js +55 -0
- package/dist/TableV2/src/composables/use-columns.d.ts +21 -0
- package/dist/TableV2/src/composables/use-columns.js +119 -0
- package/dist/TableV2/src/composables/use-data.d.ts +15 -0
- package/dist/TableV2/src/composables/use-data.js +62 -0
- package/dist/TableV2/src/composables/use-row.d.ts +34 -0
- package/dist/TableV2/src/composables/use-row.js +191 -0
- package/dist/TableV2/src/composables/use-scrollbar.d.ts +25 -0
- package/dist/TableV2/src/composables/use-scrollbar.js +117 -0
- package/dist/TableV2/src/composables/use-styles.d.ts +23 -0
- package/dist/TableV2/src/composables/use-styles.js +90 -0
- package/dist/TableV2/src/composables/utils.d.ts +3 -0
- package/dist/TableV2/src/composables/utils.js +29 -0
- package/dist/TableV2/src/constants.d.ts +18 -0
- package/dist/{Tree/Indent.js → TableV2/src/constants.js} +18 -21
- package/dist/TableV2/src/grid.d.ts +52 -0
- package/dist/TableV2/src/grid.js +1 -0
- package/dist/TableV2/src/header-cell.d.ts +13 -0
- package/dist/TableV2/src/header-cell.js +1 -0
- package/dist/TableV2/src/header-row.d.ts +10 -0
- package/dist/TableV2/src/header-row.js +1 -0
- package/dist/TableV2/src/header.d.ts +15 -0
- package/dist/TableV2/src/header.js +1 -0
- package/dist/TableV2/src/private.d.ts +1 -0
- package/dist/TableV2/src/private.js +1 -0
- package/dist/TableV2/src/renderers/cell.d.ts +14 -0
- package/dist/TableV2/src/renderers/cell.js +120 -0
- package/dist/TableV2/src/renderers/empty.d.ts +7 -0
- package/dist/TableV2/src/renderers/empty.js +11 -0
- package/dist/TableV2/src/renderers/footer.d.ts +7 -0
- package/dist/TableV2/src/renderers/footer.js +9 -0
- package/dist/TableV2/src/renderers/header-cell.d.ts +13 -0
- package/dist/TableV2/src/renderers/header-cell.js +92 -0
- package/dist/TableV2/src/renderers/header.d.ts +9 -0
- package/dist/TableV2/src/renderers/header.js +39 -0
- package/dist/TableV2/src/renderers/left-table.d.ts +32 -0
- package/dist/TableV2/src/renderers/left-table.js +15 -0
- package/dist/TableV2/src/renderers/main-table.d.ts +31 -0
- package/dist/TableV2/src/renderers/main-table.js +12 -0
- package/dist/TableV2/src/renderers/overlay.d.ts +3 -0
- package/dist/TableV2/src/renderers/overlay.js +9 -0
- package/dist/TableV2/src/renderers/right-table.d.ts +31 -0
- package/dist/TableV2/src/renderers/right-table.js +15 -0
- package/dist/TableV2/src/renderers/row.d.ts +11 -0
- package/dist/TableV2/src/renderers/row.js +96 -0
- package/dist/TableV2/src/row.d.ts +51 -0
- package/dist/TableV2/src/row.js +1 -0
- package/dist/TableV2/src/table-grid.d.ts +43 -0
- package/dist/TableV2/src/table-grid.js +283 -0
- package/dist/TableV2/src/table-v2.d.ts +31 -0
- package/dist/TableV2/src/table-v2.js +311 -0
- package/dist/TableV2/src/table.d.ts +196 -0
- package/dist/TableV2/src/table.js +1 -0
- package/dist/TableV2/src/tokens.d.ts +11 -0
- package/dist/TableV2/src/tokens.js +6 -0
- package/dist/TableV2/src/types.d.ts +94 -0
- package/dist/TableV2/src/types.js +1 -0
- package/dist/TableV2/src/use-table.d.ts +48 -0
- package/dist/TableV2/src/use-table.js +197 -0
- package/dist/TableV2/src/utils.d.ts +5 -0
- package/dist/TableV2/src/utils.js +47 -0
- package/dist/Tabs/Tabs.js +1 -1
- package/dist/Tabs/typings.d.ts +1 -3
- package/dist/Tag/Tag.js +1 -1
- package/dist/Tag/typings.d.ts +1 -1
- package/dist/Text/Text.d.ts +4 -0
- package/dist/Text/Text.js +84 -0
- package/dist/Text/index.d.ts +2 -0
- package/dist/Text/index.js +1 -0
- package/dist/Text/typings.d.ts +15 -0
- package/dist/Text/typings.js +1 -0
- package/dist/TimePicker/TimePicker.js +6 -7
- package/dist/TimePicker/TimePickerPanel.js +12 -2
- package/dist/TimePicker/TimePickerRange.js +19 -8
- package/dist/Tooltip/Tooltip.js +31 -8
- package/dist/Tooltip/typings.d.ts +4 -0
- package/dist/Tour/Content.d.ts +9 -0
- package/dist/Tour/Content.js +81 -0
- package/dist/Tour/Mask.d.ts +12 -0
- package/dist/Tour/Mask.js +100 -0
- package/dist/Tour/Step.d.ts +7 -0
- package/dist/Tour/Step.js +119 -0
- package/dist/Tour/Tour.d.ts +6 -0
- package/dist/Tour/Tour.js +237 -0
- package/dist/Tour/context.d.ts +4 -0
- package/dist/Tour/context.js +9 -0
- package/dist/Tour/helper.d.ts +39 -0
- package/dist/Tour/helper.js +286 -0
- package/dist/Tour/index.d.ts +3 -0
- package/dist/Tour/index.js +2 -0
- package/dist/Tour/typings.d.ts +318 -0
- package/dist/Tour/typings.js +38 -0
- package/dist/Transfer/List.js +58 -59
- package/dist/Transfer/ListItem.d.ts +2 -2
- package/dist/Transfer/Transfer.d.ts +2 -2
- package/dist/Transfer/Transfer.js +84 -70
- package/dist/Transfer/index.d.ts +1 -1
- package/dist/Transfer/operation.js +8 -10
- package/dist/Transfer/typings/index.d.ts +49 -38
- package/dist/Transfer/typings/list.d.ts +11 -11
- package/dist/Transfer/typings/listBody.d.ts +2 -2
- package/dist/Transition/Transition.d.ts +1 -0
- package/dist/Transition/Transition.js +8 -7
- package/dist/Tree/CollapseTransition.d.ts +7 -0
- package/dist/Tree/CollapseTransition.js +60 -0
- package/dist/Tree/Tree.d.ts +3 -140
- package/dist/Tree/Tree.js +351 -77
- package/dist/Tree/TreeContext.d.ts +9 -0
- package/dist/Tree/TreeContext.js +14 -0
- package/dist/Tree/TreeNode.d.ts +5 -3
- package/dist/Tree/TreeNode.js +321 -331
- package/dist/Tree/TreeNodeContent.d.ts +9 -0
- package/dist/Tree/TreeNodeContent.js +22 -0
- package/dist/Tree/index.d.ts +3 -8
- package/dist/Tree/index.js +1 -4
- package/dist/Tree/model/node.d.ts +62 -0
- package/dist/Tree/model/node.js +601 -0
- package/dist/Tree/model/tree-store.d.ts +52 -0
- package/dist/Tree/model/tree-store.js +510 -0
- package/dist/Tree/model/useDragNode.d.ts +30 -0
- package/dist/Tree/model/useDragNode.js +293 -0
- package/dist/Tree/model/useKeydown.d.ts +0 -0
- package/dist/Tree/model/useKeydown.js +104 -0
- package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
- package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
- package/dist/Tree/model/util.d.ts +7 -0
- package/dist/Tree/model/util.js +24 -0
- package/dist/Tree/typings.d.ts +227 -114
- package/dist/TreeSelect/TreeSelect.d.ts +2 -10
- package/dist/TreeSelect/TreeSelect.js +90 -566
- package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
- package/dist/TreeSelect/TreeSelectOption.js +62 -0
- package/dist/TreeSelect/Utils.d.ts +10 -3
- package/dist/TreeSelect/Utils.js +37 -19
- package/dist/TreeSelect/cacheOptions.d.ts +9 -0
- package/dist/TreeSelect/cacheOptions.js +22 -0
- package/dist/TreeSelect/index.d.ts +0 -1
- package/dist/TreeSelect/typings.d.ts +11 -63
- package/dist/TreeSelect/useSelect.d.ts +78 -0
- package/dist/TreeSelect/useSelect.js +104 -0
- package/dist/TreeSelect/useTree.d.ts +125 -0
- package/dist/TreeSelect/useTree.js +285 -0
- package/dist/Upload/UploadContent.js +3 -1
- package/dist/Upload/ajax.js +3 -0
- package/dist/Upload/typings.d.ts +5 -1
- package/dist/Util/PopupManager.js +1 -1
- package/dist/Util/aria.d.ts +1 -1
- package/dist/Util/aria.js +12 -12
- package/dist/Util/base.d.ts +36 -6
- package/dist/Util/base.js +180 -13
- package/dist/Util/easings.d.ts +1 -0
- package/dist/Util/easings.js +8 -0
- package/dist/Util/error.d.ts +3 -0
- package/dist/Util/error.js +39 -0
- package/dist/Util/icons.d.ts +2 -0
- package/dist/Util/icons.js +15 -0
- package/dist/Util/index.d.ts +6 -2
- package/dist/Util/index.js +6 -2
- package/dist/Util/position.d.ts +9 -0
- package/dist/Util/position.js +53 -0
- package/dist/Util/raf.d.ts +4 -0
- package/dist/Util/raf.js +10 -0
- package/dist/Util/scroll.d.ts +9 -0
- package/dist/Util/scroll.js +72 -0
- package/dist/Util/throttleByRaf.d.ts +4 -0
- package/dist/Util/throttleByRaf.js +21 -0
- package/dist/VirtualList/builders/build-grid.d.ts +5 -0
- package/dist/VirtualList/builders/build-grid.js +561 -0
- package/dist/VirtualList/builders/build-list.d.ts +7 -0
- package/dist/VirtualList/builders/build-list.js +408 -0
- package/dist/VirtualList/components/dynamic-size-grid.d.ts +15 -0
- package/dist/VirtualList/components/dynamic-size-grid.js +242 -0
- package/dist/VirtualList/components/dynamic-size-list.d.ts +7 -0
- package/dist/VirtualList/components/dynamic-size-list.js +186 -0
- package/dist/VirtualList/components/fixed-size-grid.d.ts +4 -0
- package/dist/VirtualList/components/fixed-size-grid.js +161 -0
- package/dist/VirtualList/components/fixed-size-list.d.ts +7 -0
- package/dist/VirtualList/components/fixed-size-list.js +103 -0
- package/dist/VirtualList/components/scrollbar.d.ts +5 -0
- package/dist/VirtualList/components/scrollbar.js +272 -0
- package/dist/VirtualList/defaults.d.ts +26 -0
- package/dist/VirtualList/defaults.js +24 -0
- package/dist/VirtualList/hooks/use-cache.d.ts +1 -0
- package/dist/VirtualList/hooks/use-cache.js +16 -0
- package/dist/VirtualList/hooks/use-grid-touch.d.ts +8 -0
- package/dist/VirtualList/hooks/use-grid-touch.js +58 -0
- package/dist/VirtualList/hooks/use-grid-wheel.d.ts +12 -0
- package/dist/VirtualList/hooks/use-grid-wheel.js +48 -0
- package/dist/VirtualList/hooks/use-wheel.d.ts +12 -0
- package/dist/VirtualList/hooks/use-wheel.js +41 -0
- package/dist/VirtualList/index.d.ts +9 -0
- package/dist/VirtualList/index.js +6 -0
- package/dist/VirtualList/props.d.ts +95 -0
- package/dist/VirtualList/props.js +42 -0
- package/dist/VirtualList/types.d.ts +151 -0
- package/dist/VirtualList/types.js +1 -0
- package/dist/VirtualList/utils.d.ts +11 -0
- package/dist/VirtualList/utils.js +56 -0
- package/dist/Watermark/Watermark.d.ts +4 -0
- package/dist/Watermark/Watermark.js +257 -0
- package/dist/Watermark/helper.d.ts +50 -0
- package/dist/Watermark/helper.js +253 -0
- package/dist/Watermark/index.d.ts +2 -0
- package/dist/Watermark/index.js +1 -0
- package/dist/Watermark/typings.d.ts +93 -0
- package/dist/Watermark/typings.js +1 -0
- package/dist/config/Constants.d.ts +3 -0
- package/dist/config/Constants.js +8 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/popperPropsUtils.js +1 -1
- package/dist/hooks/treePropsUtils.d.ts +3 -3
- package/dist/hooks/treePropsUtils.js +2 -2
- package/dist/hooks/useClassNames.d.ts +1 -0
- package/dist/hooks/useClickOutside.js +25 -9
- package/dist/hooks/useCommonProps.d.ts +4 -0
- package/dist/hooks/useCommonProps.js +12 -3
- package/dist/hooks/useConfigProvider.d.ts +27 -0
- package/dist/hooks/useConfigProvider.js +78 -0
- package/dist/hooks/useLockscreen.d.ts +6 -0
- package/dist/hooks/useLockscreen.js +45 -0
- package/dist/hooks/useResizeObserver.d.ts +1 -1
- package/dist/hooks/useResizeObserver.js +7 -7
- package/dist/index.css +1 -1
- package/dist/index.d.ts +50 -22
- package/dist/index.js +27 -10
- package/dist/locale/en.d.ts +4 -1
- package/dist/locale/en.js +4 -1
- package/dist/locale/zhCn.d.ts +4 -1
- package/dist/locale/zhCn.js +4 -1
- package/package.json +5 -3
- package/theme-chalk/affix.scss +7 -0
- package/theme-chalk/alert.scss +115 -0
- package/theme-chalk/anchor-link.scss +45 -0
- package/theme-chalk/anchor.scss +93 -0
- package/theme-chalk/aside.scss +8 -8
- package/theme-chalk/backtop.scss +29 -0
- package/theme-chalk/breadcrumb-item.scss +58 -0
- package/theme-chalk/breadcrumb.scss +5 -61
- package/theme-chalk/button-group.scss +80 -80
- package/theme-chalk/button.scss +304 -304
- package/theme-chalk/calendar/date-table.scss +164 -164
- package/theme-chalk/cascader-panel.scss +57 -82
- package/theme-chalk/cascader.scss +206 -160
- package/theme-chalk/checkbox.scss +38 -0
- package/theme-chalk/collapse-item.scss +72 -0
- package/theme-chalk/collapse.scss +21 -76
- package/theme-chalk/color/index.scss +20 -20
- package/theme-chalk/common/popup.scss +47 -0
- package/theme-chalk/common/transition.scss +142 -142
- package/theme-chalk/common/var.scss +62 -6
- package/theme-chalk/container.scss +14 -14
- package/theme-chalk/dark/css-vars.scss +39 -39
- package/theme-chalk/dark/var.scss +225 -225
- package/theme-chalk/date-picker.scss +12 -12
- package/theme-chalk/dialog.scss +145 -137
- package/theme-chalk/drawer.scss +252 -246
- package/theme-chalk/footer.scss +12 -12
- package/theme-chalk/form-item.scss +437 -0
- package/theme-chalk/form.scss +23 -361
- package/theme-chalk/header.scss +12 -12
- package/theme-chalk/index.scss +21 -1
- package/theme-chalk/input/input-range.scss +2 -1
- package/theme-chalk/input/input.scss +458 -424
- package/theme-chalk/input-number.scss +82 -75
- package/theme-chalk/link.scss +87 -87
- package/theme-chalk/main.scss +14 -14
- package/theme-chalk/menu.scss +353 -353
- package/theme-chalk/message-box.scss +160 -133
- package/theme-chalk/message.scss +54 -128
- package/theme-chalk/mixins/_button.scss +224 -224
- package/theme-chalk/mixins/_col.scss +33 -33
- package/theme-chalk/mixins/_var.scss +67 -67
- package/theme-chalk/mixins/config.scss +5 -5
- package/theme-chalk/mixins/function.scss +99 -99
- package/theme-chalk/mixins/mixins.scss +237 -240
- package/theme-chalk/mixins/utils.scss +39 -39
- package/theme-chalk/notification.scss +96 -143
- package/theme-chalk/overlay.scss +17 -0
- package/theme-chalk/page-header.scss +60 -0
- package/theme-chalk/popper.scss +104 -104
- package/theme-chalk/radio-button.scss +169 -169
- package/theme-chalk/radio.scss +3 -3
- package/theme-chalk/segmented.scss +186 -0
- package/theme-chalk/select/index.scss +278 -272
- package/theme-chalk/slider.scss +212 -0
- package/theme-chalk/space.scss +20 -0
- package/theme-chalk/statistic.scss +35 -0
- package/theme-chalk/step.scss +320 -0
- package/theme-chalk/steps.scss +22 -0
- package/theme-chalk/switch.scss +300 -300
- package/theme-chalk/table-v2.scss +237 -0
- package/theme-chalk/table.scss +461 -482
- package/theme-chalk/tag.scss +181 -181
- package/theme-chalk/text.scss +48 -0
- package/theme-chalk/time-range-picker.scss +1 -1
- package/theme-chalk/tooltip.scss +2 -2
- package/theme-chalk/tour.scss +170 -0
- package/theme-chalk/transfer.scss +38 -12
- package/theme-chalk/transition.scss +34 -4
- package/theme-chalk/tree-select.scss +35 -19
- package/theme-chalk/tree.scss +136 -0
- package/theme-chalk/var.scss +83 -83
- package/theme-chalk/virtual-list.scss +40 -0
- package/dist/Input/Input.1.d.ts +0 -16
- package/dist/Input/Input.1.js +0 -376
- package/dist/Tree/DirectoryTree.d.ts +0 -15
- package/dist/Tree/DirectoryTree.js +0 -183
- package/dist/Tree/DropIndicator.d.ts +0 -8
- package/dist/Tree/DropIndicator.js +0 -34
- package/dist/Tree/Indent.d.ts +0 -9
- package/dist/Tree/MotionTreeNode.d.ts +0 -14
- package/dist/Tree/MotionTreeNode.js +0 -125
- package/dist/Tree/NodeList.d.ts +0 -50
- package/dist/Tree/NodeList.js +0 -301
- package/dist/Tree/RCTree.d.ts +0 -248
- package/dist/Tree/RCTree.js +0 -1216
- package/dist/Tree/contextTypes.d.ts +0 -69
- package/dist/Tree/contextTypes.js +0 -9
- package/dist/Tree/typings.tsx--bak +0 -245
- package/dist/Tree/useUnmount.d.ts +0 -5
- package/dist/Tree/useUnmount.js +0 -34
- package/dist/Tree/util.d.ts +0 -51
- package/dist/Tree/util.js +0 -303
- package/dist/Tree/utils/conductUtil.d.ts +0 -17
- package/dist/Tree/utils/conductUtil.js +0 -209
- package/dist/Tree/utils/dictUtil.d.ts +0 -13
- package/dist/Tree/utils/dictUtil.js +0 -75
- package/dist/Tree/utils/diffUtil.d.ts +0 -7
- package/dist/Tree/utils/diffUtil.js +0 -48
- package/dist/Tree/utils/dropIndicator.d.ts +0 -11
- package/dist/Tree/utils/dropIndicator.js +0 -36
- package/dist/Tree/utils/iconUtil.d.ts +0 -5
- package/dist/Tree/utils/iconUtil.js +0 -62
- package/dist/Tree/utils/keyUtil.d.ts +0 -2
- package/dist/Tree/utils/keyUtil.js +0 -3
- package/dist/Tree/utils/motion.d.ts +0 -10
- package/dist/Tree/utils/motion.js +0 -54
- package/dist/Tree/utils/pickAttrs.d.ts +0 -11
- package/dist/Tree/utils/pickAttrs.js +0 -51
- package/dist/Tree/utils/treeUtil.d.ts +0 -86
- package/dist/Tree/utils/treeUtil.js +0 -364
- package/theme-chalk/button/_mixins.scss +0 -317
- package/theme-chalk/button/button-group.scss +0 -83
- package/theme-chalk/button/button.scss +0 -382
- package/theme-chalk/button/index.scss +0 -2
- package/theme-chalk/button--bak/_mixins.scss +0 -317
- package/theme-chalk/button--bak/button-group.scss +0 -83
- package/theme-chalk/button--bak/button.scss +0 -382
- package/theme-chalk/button--bak/index.scss +0 -2
- package/theme-chalk/calendar/date-table.scss--bak +0 -156
- package/theme-chalk/input/input.scss--bak +0 -578
- package/theme-chalk/link.scss--bak +0 -99
- package/theme-chalk/popper.scss--bak +0 -86
- package/theme-chalk/radio-button.scss--bak +0 -128
- package/theme-chalk/select/index.scss--bak +0 -247
- package/theme-chalk/switch.scss--bak +0 -273
- package/theme-chalk/tag.scss--bak +0 -203
- package/theme-chalk/tree/_directory.scss +0 -73
- package/theme-chalk/tree/_tree.scss +0 -401
- package/theme-chalk/tree/index.scss +0 -2
|
@@ -0,0 +1,285 @@
|
|
|
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 _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); }
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
+
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; }
|
|
8
|
+
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; }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
12
|
+
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); }
|
|
13
|
+
import isEqual from 'lodash/isEqual';
|
|
14
|
+
import isNil from 'lodash/isNil';
|
|
15
|
+
import pick from 'lodash/pick';
|
|
16
|
+
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
17
|
+
import { treeAllProps } from "../hooks/treePropsUtils";
|
|
18
|
+
import { escapeStringRegexp, isEmpty, isFunction, nextTick } from "../Util";
|
|
19
|
+
import TreeSelectOption from "./TreeSelectOption";
|
|
20
|
+
import { isValidArray, isValidValue, toValidArray, treeEach, treeFind } from "./Utils"; // 假设工具函数已存在
|
|
21
|
+
|
|
22
|
+
var useTree = function useTree(props, _ref) {
|
|
23
|
+
var selectRef = _ref.selectRef,
|
|
24
|
+
treeRef = _ref.treeRef,
|
|
25
|
+
key = _ref.key,
|
|
26
|
+
value = _ref.value,
|
|
27
|
+
setValue = _ref.setValue;
|
|
28
|
+
var isEffect = useRef(true);
|
|
29
|
+
|
|
30
|
+
// 监听 value 变化并同步树的选中状态
|
|
31
|
+
useEffect(function () {
|
|
32
|
+
if (props.showCheckbox && treeRef.current) {
|
|
33
|
+
var treeInstance = treeRef.current;
|
|
34
|
+
var currentKeys = treeInstance.getCheckedKeys();
|
|
35
|
+
if (!isEqual(currentKeys, toValidArray(value))) {
|
|
36
|
+
treeInstance.setCheckedKeys(toValidArray(value));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, [value]);
|
|
40
|
+
|
|
41
|
+
// 计算 propsMap
|
|
42
|
+
var propsMap = useMemo(function () {
|
|
43
|
+
return _objectSpread({
|
|
44
|
+
value: key,
|
|
45
|
+
label: 'label',
|
|
46
|
+
children: 'children',
|
|
47
|
+
disabled: 'disabled',
|
|
48
|
+
isLeaf: 'isLeaf'
|
|
49
|
+
}, props.props);
|
|
50
|
+
}, [key, props.props]);
|
|
51
|
+
|
|
52
|
+
// 获取节点属性值
|
|
53
|
+
var getNodeValByProp = useCallback(function (prop, data) {
|
|
54
|
+
var propVal = propsMap[prop];
|
|
55
|
+
if (isFunction(propVal)) {
|
|
56
|
+
var _treeRef$current;
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
return propVal(data, (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.getNode(getNodeValByProp('value', data)));
|
|
59
|
+
}
|
|
60
|
+
return data[propVal];
|
|
61
|
+
}, [propsMap, treeRef]);
|
|
62
|
+
|
|
63
|
+
// 默认展开父节点的 Key
|
|
64
|
+
var defaultExpandedParentKeys = useMemo(function () {
|
|
65
|
+
return toValidArray(value).map(function (val) {
|
|
66
|
+
return treeFind(props.data || [], function (data) {
|
|
67
|
+
return getNodeValByProp('value', data) === val;
|
|
68
|
+
}, function (data) {
|
|
69
|
+
return getNodeValByProp('children', data);
|
|
70
|
+
}, function (data, index, array, parent) {
|
|
71
|
+
return parent && getNodeValByProp('value', parent);
|
|
72
|
+
});
|
|
73
|
+
}).filter(isValidValue);
|
|
74
|
+
}, [value, props.data, getNodeValByProp]);
|
|
75
|
+
|
|
76
|
+
// 缓存选项
|
|
77
|
+
var cacheOptions = useMemo(function () {
|
|
78
|
+
// if (!props.renderAfterExpand && !props.lazy) {
|
|
79
|
+
// return [];
|
|
80
|
+
// }
|
|
81
|
+
|
|
82
|
+
var options = [];
|
|
83
|
+
treeEach([].concat(_toConsumableArray(props.data || []), _toConsumableArray(props.cacheData || [])), function (node) {
|
|
84
|
+
var val = getNodeValByProp('value', node);
|
|
85
|
+
options.push({
|
|
86
|
+
value: val,
|
|
87
|
+
currentLabel: getNodeValByProp('label', node),
|
|
88
|
+
label: getNodeValByProp('label', node),
|
|
89
|
+
isDisabled: getNodeValByProp('disabled', node)
|
|
90
|
+
});
|
|
91
|
+
}, function (data) {
|
|
92
|
+
return getNodeValByProp('children', data);
|
|
93
|
+
});
|
|
94
|
+
return options;
|
|
95
|
+
}, [props.data, props.cacheData, getNodeValByProp]);
|
|
96
|
+
useEffect(function () {
|
|
97
|
+
if (isEffect.current) {
|
|
98
|
+
if (!props.multiple) {
|
|
99
|
+
var optionData = cacheOptions.find(function (item) {
|
|
100
|
+
return item.value === value;
|
|
101
|
+
});
|
|
102
|
+
if (optionData) {
|
|
103
|
+
if (treeRef.current.getNode(value)) {
|
|
104
|
+
var _treeRef$current2;
|
|
105
|
+
(_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 || _treeRef$current2.setCurrentNode(treeRef.current.getNode(value));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
isEffect.current = true;
|
|
111
|
+
}
|
|
112
|
+
}, [value]);
|
|
113
|
+
|
|
114
|
+
// 获取子节点选中的 Key
|
|
115
|
+
var getChildCheckedKeys = useCallback(function () {
|
|
116
|
+
var _treeRef$current3;
|
|
117
|
+
return (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.getCheckedKeys().filter(function (item) {
|
|
118
|
+
var _treeRef$current4;
|
|
119
|
+
var node = (_treeRef$current4 = treeRef.current) === null || _treeRef$current4 === void 0 ? void 0 : _treeRef$current4.getNode(item);
|
|
120
|
+
return !isNil(node) && isEmpty(node.childNodes);
|
|
121
|
+
});
|
|
122
|
+
}, [treeRef]);
|
|
123
|
+
var expandOnClickNode = useMemo(function () {
|
|
124
|
+
return !props.checkStrictly && props.expandOnClickNode;
|
|
125
|
+
}, [props.checkStrictly, props.expandOnClickNode]);
|
|
126
|
+
var defaultExpandedKeys = useMemo(function () {
|
|
127
|
+
return props.defaultExpandedKeys ? [].concat(_toConsumableArray(props.defaultExpandedKeys), _toConsumableArray(defaultExpandedParentKeys)) : defaultExpandedParentKeys;
|
|
128
|
+
}, [props.defaultExpandedKeys, defaultExpandedParentKeys]);
|
|
129
|
+
|
|
130
|
+
// 渲染内容
|
|
131
|
+
var renderContent = useCallback(function (_ref2) {
|
|
132
|
+
var node = _ref2.node,
|
|
133
|
+
data = _ref2.data,
|
|
134
|
+
store = _ref2.store;
|
|
135
|
+
return /*#__PURE__*/React.createElement(TreeSelectOption, {
|
|
136
|
+
value: getNodeValByProp('value', data),
|
|
137
|
+
label: getNodeValByProp('label', data),
|
|
138
|
+
disabled: getNodeValByProp('disabled', data),
|
|
139
|
+
visible: node.visible
|
|
140
|
+
}, props.renderContent ? props.renderContent({
|
|
141
|
+
node: node,
|
|
142
|
+
data: data,
|
|
143
|
+
store: store
|
|
144
|
+
}) : props.children);
|
|
145
|
+
}, [getNodeValByProp, props]);
|
|
146
|
+
|
|
147
|
+
// 过滤节点方法
|
|
148
|
+
var filterNodeMethod = useCallback(function (val, data, node) {
|
|
149
|
+
if (props.filterNodeMethod) {
|
|
150
|
+
return props.filterNodeMethod(val, data, node);
|
|
151
|
+
}
|
|
152
|
+
if (!val) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
var regexp = new RegExp(escapeStringRegexp(val), 'i');
|
|
156
|
+
return regexp.test(getNodeValByProp('label', data) || '');
|
|
157
|
+
}, [props, getNodeValByProp]);
|
|
158
|
+
|
|
159
|
+
// 节点点击事件
|
|
160
|
+
var onNodeClick = useCallback(function (data, node, treeNodeRef, e) {
|
|
161
|
+
var _props$onNodeClick;
|
|
162
|
+
(_props$onNodeClick = props.onNodeClick) === null || _props$onNodeClick === void 0 || _props$onNodeClick.call(props, data, node, treeNodeRef, e);
|
|
163
|
+
if (props.showCheckbox && props.checkOnClickNode) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {
|
|
167
|
+
if (!getNodeValByProp('disabled', data)) {
|
|
168
|
+
var _selectRef$current;
|
|
169
|
+
var val = (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.onChoose(getNodeValByProp('value', data), data, e);
|
|
170
|
+
isEffect.current = false;
|
|
171
|
+
setValue(val);
|
|
172
|
+
}
|
|
173
|
+
} else if (props.expandOnClickNode) {
|
|
174
|
+
// treeNodeRef.current.handleExpandIconClick();
|
|
175
|
+
}
|
|
176
|
+
}, [props, getNodeValByProp, selectRef, setValue]);
|
|
177
|
+
|
|
178
|
+
// 节点勾选事件
|
|
179
|
+
var onCheck = useCallback(function (data, params) {
|
|
180
|
+
var _treeRef$current5;
|
|
181
|
+
if (!props.showCheckbox) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
var controlledValue = null;
|
|
185
|
+
var dataValue = getNodeValByProp('value', data);
|
|
186
|
+
var dataMap = {};
|
|
187
|
+
treeEach([(_treeRef$current5 = treeRef.current) === null || _treeRef$current5 === void 0 ? void 0 : _treeRef$current5.store.root], function (node) {
|
|
188
|
+
return dataMap[node.key] = node;
|
|
189
|
+
}, function (node) {
|
|
190
|
+
return node.childNodes;
|
|
191
|
+
});
|
|
192
|
+
var uncachedCheckedKeys = params.checkedKeys;
|
|
193
|
+
var cachedKeys = props.multiple ? toValidArray(value).filter(function (item) {
|
|
194
|
+
return !(item in dataMap) && !uncachedCheckedKeys.includes(item);
|
|
195
|
+
}) : [];
|
|
196
|
+
var newCheckedKeys = cachedKeys.concat(uncachedCheckedKeys);
|
|
197
|
+
if (props.checkStrictly) {
|
|
198
|
+
var _selectRef$current2;
|
|
199
|
+
var res = null;
|
|
200
|
+
if (props.multiple) {
|
|
201
|
+
res = newCheckedKeys;
|
|
202
|
+
} else {
|
|
203
|
+
res = newCheckedKeys.includes(dataValue) ? dataValue : undefined;
|
|
204
|
+
}
|
|
205
|
+
isEffect.current = false;
|
|
206
|
+
var val = (_selectRef$current2 = selectRef.current) === null || _selectRef$current2 === void 0 ? void 0 : _selectRef$current2.onChoose(dataValue, cacheOptions.find(function (cache) {
|
|
207
|
+
return cache.value === dataValue;
|
|
208
|
+
}));
|
|
209
|
+
controlledValue = val;
|
|
210
|
+
} else {
|
|
211
|
+
if (props.multiple) {
|
|
212
|
+
var _selectRef$current3;
|
|
213
|
+
// const childKeys = getChildCheckedKeys();
|
|
214
|
+
isEffect.current = false;
|
|
215
|
+
var _val = (_selectRef$current3 = selectRef.current) === null || _selectRef$current3 === void 0 ? void 0 : _selectRef$current3.onChoose(dataValue, cacheOptions.find(function (cache) {
|
|
216
|
+
return cache.value === dataValue;
|
|
217
|
+
}));
|
|
218
|
+
controlledValue = _val;
|
|
219
|
+
} else {
|
|
220
|
+
var _selectRef$current4;
|
|
221
|
+
var firstLeaf = treeFind([data], function (item) {
|
|
222
|
+
return !isValidArray(getNodeValByProp('children', item)) && !getNodeValByProp('disabled', item);
|
|
223
|
+
}, function (item) {
|
|
224
|
+
return getNodeValByProp('children', item);
|
|
225
|
+
});
|
|
226
|
+
var firstLeafKey = firstLeaf ? getNodeValByProp('value', firstLeaf) : undefined;
|
|
227
|
+
var hasCheckedChild = isValidValue(value) && !!treeFind([data], function (item) {
|
|
228
|
+
return getNodeValByProp('value', item) === value;
|
|
229
|
+
}, function (item) {
|
|
230
|
+
return getNodeValByProp('children', item);
|
|
231
|
+
});
|
|
232
|
+
(_selectRef$current4 = selectRef.current) === null || _selectRef$current4 === void 0 || _selectRef$current4.onChoose(firstLeafKey === value || hasCheckedChild ? undefined : firstLeafKey, firstLeaf);
|
|
233
|
+
controlledValue = firstLeafKey === value || hasCheckedChild ? undefined : firstLeafKey;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
setValue(controlledValue);
|
|
237
|
+
nextTick(function () {
|
|
238
|
+
var _props$onCheck;
|
|
239
|
+
var _checkedKeys = toValidArray(controlledValue);
|
|
240
|
+
treeRef.current.setCheckedKeys(_checkedKeys);
|
|
241
|
+
(_props$onCheck = props.onCheck) === null || _props$onCheck === void 0 || _props$onCheck.call(props, data, {
|
|
242
|
+
checkedKeys: treeRef.current.getCheckedKeys(),
|
|
243
|
+
checkedNodes: treeRef.current.getCheckedNodes(),
|
|
244
|
+
halfCheckedKeys: treeRef.current.getHalfCheckedKeys(),
|
|
245
|
+
halfCheckedNodes: treeRef.current.getHalfCheckedNodes()
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
// selectRef.current?.focus();
|
|
249
|
+
}, [props, getNodeValByProp, treeRef, value, setValue, selectRef, cacheOptions]);
|
|
250
|
+
|
|
251
|
+
// 节点展开事件
|
|
252
|
+
var onNodeExpand = useCallback(function (data, node, treeNodeRef) {
|
|
253
|
+
var _props$onNodeExpand;
|
|
254
|
+
(_props$onNodeExpand = props.onNodeExpand) === null || _props$onNodeExpand === void 0 || _props$onNodeExpand.call(props, data, node, treeNodeRef);
|
|
255
|
+
nextTick(function () {
|
|
256
|
+
if (!props.checkStrictly && props.lazy && props.multiple && node.checked) {
|
|
257
|
+
var _treeRef$current6, _treeRef$current7, _props$onChange;
|
|
258
|
+
var dataMap = {};
|
|
259
|
+
var uncachedCheckedKeys = (_treeRef$current6 = treeRef.current) === null || _treeRef$current6 === void 0 ? void 0 : _treeRef$current6.getCheckedKeys();
|
|
260
|
+
treeEach([(_treeRef$current7 = treeRef.current) === null || _treeRef$current7 === void 0 ? void 0 : _treeRef$current7.store.root], function (item) {
|
|
261
|
+
return dataMap[item.key] = item;
|
|
262
|
+
}, function (item) {
|
|
263
|
+
return item.childNodes;
|
|
264
|
+
});
|
|
265
|
+
var cachedKeys = toValidArray(value).filter(function (item) {
|
|
266
|
+
return !(item in dataMap) && !uncachedCheckedKeys.includes(item);
|
|
267
|
+
});
|
|
268
|
+
var childKeys = getChildCheckedKeys();
|
|
269
|
+
(_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, cachedKeys.concat(childKeys));
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
}, [props, treeRef, value, getChildCheckedKeys]);
|
|
273
|
+
return _objectSpread(_objectSpread({}, pick(props, treeAllProps)), {}, {
|
|
274
|
+
nodeKey: key,
|
|
275
|
+
expandOnClickNode: expandOnClickNode,
|
|
276
|
+
defaultExpandedKeys: defaultExpandedKeys,
|
|
277
|
+
renderContent: renderContent,
|
|
278
|
+
filterNodeMethod: filterNodeMethod,
|
|
279
|
+
onNodeClick: onNodeClick,
|
|
280
|
+
onCheck: onCheck,
|
|
281
|
+
onNodeExpand: onNodeExpand,
|
|
282
|
+
cacheOptions: cacheOptions
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
export default useTree;
|
|
@@ -32,6 +32,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
32
32
|
data = props.data,
|
|
33
33
|
method = props.method,
|
|
34
34
|
withCredentials = props.withCredentials,
|
|
35
|
+
errorStatus = props.errorStatus,
|
|
35
36
|
filename = props.name,
|
|
36
37
|
action = props.action,
|
|
37
38
|
_onProgress = props.onProgress,
|
|
@@ -56,6 +57,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
56
57
|
var options = {
|
|
57
58
|
headers: headers || {},
|
|
58
59
|
withCredentials: withCredentials,
|
|
60
|
+
errorStatus: errorStatus,
|
|
59
61
|
file: rawFile,
|
|
60
62
|
data: data,
|
|
61
63
|
method: method,
|
|
@@ -99,7 +101,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
99
101
|
_request.then(options.onSuccess, options.onError);
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
|
-
}, [action, data, filename, headers, httpRequest, method, _onError, _onProgress, _onSuccess, withCredentials]);
|
|
104
|
+
}, [action, data, errorStatus, filename, headers, httpRequest, method, _onError, _onProgress, _onSuccess, withCredentials]);
|
|
103
105
|
var upload = useCallback( /*#__PURE__*/function () {
|
|
104
106
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(rawFile) {
|
|
105
107
|
var hookResult, file;
|
package/dist/Upload/ajax.js
CHANGED
|
@@ -59,6 +59,9 @@ export var ajaxUpload = function ajaxUpload(option) {
|
|
|
59
59
|
option.onError(getError(action, option, xhr));
|
|
60
60
|
});
|
|
61
61
|
xhr.addEventListener('load', function () {
|
|
62
|
+
if (option.errorStatus && option.errorStatus(xhr)) {
|
|
63
|
+
return option.onError(getError(action, option, xhr));
|
|
64
|
+
}
|
|
62
65
|
if (xhr.status < 200 || xhr.status >= 300) {
|
|
63
66
|
return option.onError(getError(action, option, xhr));
|
|
64
67
|
}
|
package/dist/Upload/typings.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface UploadBaseProps {
|
|
|
17
17
|
drag?: boolean;
|
|
18
18
|
/** 支持发送 cookie 凭证信息 */
|
|
19
19
|
withCredentials?: boolean;
|
|
20
|
+
/** 自定义上传请求的错误判断 */
|
|
21
|
+
errorStatus?: (xhr: XMLHttpRequest) => boolean;
|
|
20
22
|
/** 是否显示已上传文件列表 */
|
|
21
23
|
showFileList?: boolean;
|
|
22
24
|
/** 接受上传的文件类型 */
|
|
@@ -81,7 +83,7 @@ export interface UploadRef {
|
|
|
81
83
|
/** 手动移除文件。 file 和rawFile 已被合并。 rawFile 将在 v2.2.0 中移除 */
|
|
82
84
|
handleRemove: (file: UploadFile | UploadRawFile) => void;
|
|
83
85
|
}
|
|
84
|
-
export interface UploadProps extends UploadBaseProps, UploadHooks, BaseProps, NativeProps {
|
|
86
|
+
export interface UploadProps extends UploadBaseProps, UploadHooks, BaseProps, NativeProps<'--el-upload-dragger-padding-horizontal' | '--el-upload-dragger-padding-vertical'> {
|
|
85
87
|
/** 缩略图模板的内容 */
|
|
86
88
|
formatter?: (file: UploadFile) => React.ReactElement;
|
|
87
89
|
/** 触发文件选择框的内容 */
|
|
@@ -113,6 +115,8 @@ export interface UploadRequestOptions {
|
|
|
113
115
|
onError: (evt: UploadAjaxError) => void;
|
|
114
116
|
onProgress: (evt: UploadProgressEvent) => void;
|
|
115
117
|
onSuccess: (response: any) => void;
|
|
118
|
+
/** 自定义上传请求的错误判断 */
|
|
119
|
+
errorStatus?: (xhr: XMLHttpRequest) => boolean;
|
|
116
120
|
withCredentials: boolean;
|
|
117
121
|
}
|
|
118
122
|
export interface UploadProgressEvent extends ProgressEvent {
|
package/dist/Util/aria.d.ts
CHANGED
|
@@ -21,5 +21,5 @@ export declare const isLeaf: (el: HTMLElement) => boolean;
|
|
|
21
21
|
export declare const getSibling: (el: HTMLElement, distance: number, elClass: string) => Element;
|
|
22
22
|
export declare const focusElement: (el?: HTMLElement | {
|
|
23
23
|
focus: () => void;
|
|
24
|
-
} | null, options?:
|
|
24
|
+
} | null, options?: any) => void;
|
|
25
25
|
export declare const focusNode: (el: HTMLElement) => void;
|
package/dist/Util/aria.js
CHANGED
|
@@ -6,8 +6,8 @@ var isHTMLElement = function isHTMLElement(e) {
|
|
|
6
6
|
return e instanceof Element;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Determine if the testing element is visible on screen no matter if its on the viewport or not
|
|
9
|
+
/**
|
|
10
|
+
* Determine if the testing element is visible on screen no matter if its on the viewport or not
|
|
11
11
|
*/
|
|
12
12
|
export var isVisible = function isVisible(element) {
|
|
13
13
|
if (process.env.NODE_ENV === 'test') {
|
|
@@ -24,10 +24,10 @@ export var obtainAllFocusableElements = function obtainAllFocusableElements(elem
|
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* @desc Determine if target element is focusable
|
|
29
|
-
* @param element {HTMLElement}
|
|
30
|
-
* @returns {Boolean} true if it is focusable
|
|
27
|
+
/**
|
|
28
|
+
* @desc Determine if target element is focusable
|
|
29
|
+
* @param element {HTMLElement}
|
|
30
|
+
* @returns {Boolean} true if it is focusable
|
|
31
31
|
*/
|
|
32
32
|
export var isFocusable = function isFocusable(element) {
|
|
33
33
|
if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute('tabIndex') !== null) {
|
|
@@ -59,12 +59,12 @@ export var isFocusable = function isFocusable(element) {
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
-
/**
|
|
63
|
-
* Trigger an event
|
|
64
|
-
* mouseenter, mouseleave, mouseover, keyup, change, click, etc.
|
|
65
|
-
* @param {HTMLElement} elm
|
|
66
|
-
* @param {String} name
|
|
67
|
-
* @param {*} opts
|
|
62
|
+
/**
|
|
63
|
+
* Trigger an event
|
|
64
|
+
* mouseenter, mouseleave, mouseover, keyup, change, click, etc.
|
|
65
|
+
* @param {HTMLElement} elm
|
|
66
|
+
* @param {String} name
|
|
67
|
+
* @param {*} opts
|
|
68
68
|
*/
|
|
69
69
|
export var triggerEvent = function triggerEvent(elm, name) {
|
|
70
70
|
var eventName;
|
package/dist/Util/base.d.ts
CHANGED
|
@@ -31,11 +31,41 @@ export declare const download: (url: string, params: {
|
|
|
31
31
|
method?: 'post' | 'get';
|
|
32
32
|
target?: string;
|
|
33
33
|
}) => void;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export declare
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
/**
|
|
35
|
+
* @description 判断值是否为对象类型
|
|
36
|
+
*/
|
|
37
|
+
export declare function isObject(val: unknown): val is Record<any, any>;
|
|
38
|
+
/**
|
|
39
|
+
* @description 判断值是否为undefined类型
|
|
40
|
+
*/
|
|
41
|
+
export declare function isUndefined(val: unknown): val is undefined;
|
|
42
|
+
/**
|
|
43
|
+
* @description 判断值是否为布尔类型
|
|
44
|
+
*/
|
|
45
|
+
export declare function isBoolean(val: unknown): val is boolean;
|
|
46
|
+
/**
|
|
47
|
+
* @description 判断值是否为数字类型
|
|
48
|
+
*/
|
|
49
|
+
export declare function isNumber(val: unknown): val is number;
|
|
50
|
+
/**
|
|
51
|
+
* @description 判断值是否为字符串类型
|
|
52
|
+
*/
|
|
53
|
+
export declare function isString(val: unknown): val is string;
|
|
54
|
+
/**
|
|
55
|
+
* @description 判断值是否为函数类型
|
|
56
|
+
*/
|
|
57
|
+
export declare function isFunction(val: unknown): val is Function;
|
|
58
|
+
/**
|
|
59
|
+
* @description 判断值是否为字符串或数字类型
|
|
60
|
+
*/
|
|
61
|
+
export declare function isPropAbsent(prop: unknown): prop is null | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* @description 判断值是否为字符串类型
|
|
64
|
+
*/
|
|
65
|
+
export declare function isStringNumber(val: string): boolean;
|
|
66
|
+
export declare function isPromise<T = any>(val: unknown): val is Promise<T>;
|
|
40
67
|
export declare function addUnit(value?: string | number, defaultUnit?: string): string;
|
|
41
68
|
export declare function mergeDefaultProps<T>(defaultProps: Partial<T>, target: T): T;
|
|
69
|
+
export declare let isUsingMicroTask: boolean;
|
|
70
|
+
export declare function nextTick(cb?: Function, ctx?: Object): Promise<unknown>;
|
|
71
|
+
export declare const escapeStringRegexp: (string?: string) => string;
|
package/dist/Util/base.js
CHANGED
|
@@ -5,6 +5,8 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
5
5
|
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); }
|
|
6
6
|
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); }
|
|
7
7
|
import is_empty from 'lodash/isEmpty';
|
|
8
|
+
import isNil from 'lodash/isNil';
|
|
9
|
+
import noop from 'lodash/noop';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* 判断对象是否为空
|
|
@@ -115,27 +117,61 @@ export var download = function download(url, params) {
|
|
|
115
117
|
$tempForm.submit();
|
|
116
118
|
document.body.removeChild($tempForm);
|
|
117
119
|
};
|
|
118
|
-
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @description 判断值是否为对象类型
|
|
123
|
+
*/
|
|
124
|
+
export function isObject(val) {
|
|
119
125
|
return val !== null && _typeof(val) === 'object';
|
|
120
|
-
}
|
|
121
|
-
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @description 判断值是否为undefined类型
|
|
129
|
+
*/
|
|
130
|
+
export function isUndefined(val) {
|
|
122
131
|
return val === undefined;
|
|
123
|
-
}
|
|
124
|
-
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* @description 判断值是否为布尔类型
|
|
135
|
+
*/
|
|
136
|
+
export function isBoolean(val) {
|
|
125
137
|
return typeof val === 'boolean';
|
|
126
|
-
}
|
|
127
|
-
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @description 判断值是否为数字类型
|
|
141
|
+
*/
|
|
142
|
+
export function isNumber(val) {
|
|
128
143
|
return typeof val === 'number';
|
|
129
|
-
}
|
|
130
|
-
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @description 判断值是否为字符串类型
|
|
147
|
+
*/
|
|
148
|
+
export function isString(val) {
|
|
131
149
|
return typeof val === 'string';
|
|
132
|
-
}
|
|
133
|
-
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @description 判断值是否为函数类型
|
|
153
|
+
*/
|
|
154
|
+
export function isFunction(val) {
|
|
155
|
+
return typeof val === 'function';
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @description 判断值是否为字符串或数字类型
|
|
159
|
+
*/
|
|
160
|
+
export function isPropAbsent(prop) {
|
|
161
|
+
return isNil(prop);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* @description 判断值是否为字符串类型
|
|
165
|
+
*/
|
|
166
|
+
export function isStringNumber(val) {
|
|
134
167
|
if (!isString(val)) {
|
|
135
168
|
return false;
|
|
136
169
|
}
|
|
137
170
|
return !Number.isNaN(Number(val));
|
|
138
|
-
}
|
|
171
|
+
}
|
|
172
|
+
export function isPromise(val) {
|
|
173
|
+
return !isNil(val) && isFunction(val.then) && isFunction(val.catch);
|
|
174
|
+
}
|
|
139
175
|
export function addUnit(value) {
|
|
140
176
|
var defaultUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
|
|
141
177
|
if (!value) {
|
|
@@ -165,4 +201,135 @@ export function mergeDefaultProps() {
|
|
|
165
201
|
}
|
|
166
202
|
}
|
|
167
203
|
return props;
|
|
168
|
-
}
|
|
204
|
+
}
|
|
205
|
+
var isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
|
|
206
|
+
function isNative(Ctor) {
|
|
207
|
+
return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
|
|
208
|
+
}
|
|
209
|
+
// 上面三行与核心代码关系不大,了解即可
|
|
210
|
+
// noop 表示一个无操作空函数,用作函数默认值,防止传入 undefined 导致报错
|
|
211
|
+
// handleError 错误处理函数
|
|
212
|
+
// isIE, isIOS, isNative 环境判断函数,
|
|
213
|
+
// isNative 判断某个属性或方法是否原生支持,如果不支持或通过第三方实现支持都会返回 false
|
|
214
|
+
|
|
215
|
+
export var isUsingMicroTask = false; // 标记 nextTick 最终是否以微任务执行
|
|
216
|
+
|
|
217
|
+
var callbacks = []; // 存放调用 nextTick 时传入的回调函数
|
|
218
|
+
var pending = false; // 标记是否已经向任务队列中添加了一个任务,如果已经添加了就不能再添加了
|
|
219
|
+
// 当向任务队列中添加了任务时,将 pending 置为 true,当任务被执行时将 pending 置为 false
|
|
220
|
+
//
|
|
221
|
+
|
|
222
|
+
// 声明 nextTick 函数,接收一个回调函数和一个执行上下文作为参数
|
|
223
|
+
// 回调的 this 自动绑定到调用它的实例上
|
|
224
|
+
export function nextTick(cb, ctx) {
|
|
225
|
+
var _resolve;
|
|
226
|
+
// 将传入的回调函数存放到数组中,后面会遍历执行其中的回调
|
|
227
|
+
callbacks.push(function () {
|
|
228
|
+
if (cb) {
|
|
229
|
+
// 对传入的回调进行 try catch 错误捕获
|
|
230
|
+
try {
|
|
231
|
+
cb.call(ctx);
|
|
232
|
+
} catch (e) {
|
|
233
|
+
// 进行统一的错误处理
|
|
234
|
+
// handleError(e, ctx, 'nextTick');
|
|
235
|
+
}
|
|
236
|
+
} else if (_resolve) {
|
|
237
|
+
_resolve(ctx);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
// 如果当前没有在 pending 的回调,
|
|
242
|
+
// 就执行 timeFunc 函数选择当前环境优先支持的异步方法
|
|
243
|
+
if (!pending) {
|
|
244
|
+
pending = true;
|
|
245
|
+
timerFunc();
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// 如果没有传入回调,并且当前环境支持 promise,就返回一个 promise
|
|
249
|
+
// 在返回的这个 promise.then 中 DOM 已经更新好了,
|
|
250
|
+
if (!cb && typeof Promise !== 'undefined') {
|
|
251
|
+
return new Promise(function (resolve) {
|
|
252
|
+
_resolve = resolve;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// 判断当前环境优先支持的异步方法,优先选择微任务
|
|
258
|
+
// 优先级:Promise---> MutationObserver---> setImmediate---> setTimeout
|
|
259
|
+
// setTimeout 可能产生一个 4ms 的延迟,而 setImmediate 会在主线程执行完后立刻执行
|
|
260
|
+
// setImmediate 在 IE10 和 node 中支持
|
|
261
|
+
|
|
262
|
+
// 当在同一轮事件循环中多次调用 nextTick 时 ,timerFunc 只会执行一次
|
|
263
|
+
|
|
264
|
+
var timerFunc;
|
|
265
|
+
// 判断当前环境是否原生支持 promise
|
|
266
|
+
if (typeof Promise !== 'undefined' && isNative(Promise)) {
|
|
267
|
+
// 支持 promise
|
|
268
|
+
var p = Promise.resolve();
|
|
269
|
+
timerFunc = function timerFunc() {
|
|
270
|
+
// 用 promise.then 把 flushCallbacks 函数包裹成一个异步微任务
|
|
271
|
+
p.then(flushCallbacks);
|
|
272
|
+
if (isIOS) {
|
|
273
|
+
setTimeout(noop);
|
|
274
|
+
}
|
|
275
|
+
// 这里的 setTimeout 是用来强制刷新微任务队列的
|
|
276
|
+
// 因为在 ios 下 promise.then 后面没有宏任务的话,微任务队列不会刷新
|
|
277
|
+
};
|
|
278
|
+
// 标记当前 nextTick 使用的微任务
|
|
279
|
+
isUsingMicroTask = true;
|
|
280
|
+
|
|
281
|
+
// 如果不支持 promise,就判断是否支持 MutationObserver
|
|
282
|
+
// 不是IE环境,并且原生支持 MutationObserver,那也是一个微任务
|
|
283
|
+
} else if (typeof MutationObserver !== 'undefined' && (isNative(MutationObserver) || MutationObserver.toString() === '[object MutationObserverConstructor]')) {
|
|
284
|
+
var counter = 1;
|
|
285
|
+
// new 一个 MutationObserver 类
|
|
286
|
+
var observer = new MutationObserver(flushCallbacks);
|
|
287
|
+
// 创建一个文本节点
|
|
288
|
+
var textNode = document.createTextNode(String(counter));
|
|
289
|
+
// 监听这个文本节点,当数据发生变化就执行 flushCallbacks
|
|
290
|
+
observer.observe(textNode, {
|
|
291
|
+
characterData: true
|
|
292
|
+
});
|
|
293
|
+
timerFunc = function timerFunc() {
|
|
294
|
+
counter = (counter + 1) % 2;
|
|
295
|
+
textNode.data = String(counter); // 数据更新
|
|
296
|
+
};
|
|
297
|
+
isUsingMicroTask = true; // 标记当前 nextTick 使用的微任务
|
|
298
|
+
|
|
299
|
+
// 判断当前环境是否原生支持 setImmediate
|
|
300
|
+
} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
|
|
301
|
+
timerFunc = function timerFunc() {
|
|
302
|
+
setImmediate(flushCallbacks);
|
|
303
|
+
};
|
|
304
|
+
} else {
|
|
305
|
+
// 以上三种都不支持就选择 setTimeout
|
|
306
|
+
timerFunc = function timerFunc() {
|
|
307
|
+
setTimeout(flushCallbacks, 0);
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// 如果多次调用 nextTick,会依次执行上面的方法,将 nextTick 的回调放在 callbacks 数组中
|
|
312
|
+
// 最后通过 flushCallbacks 函数遍历 callbacks 数组的拷贝并执行其中的回调
|
|
313
|
+
function flushCallbacks() {
|
|
314
|
+
pending = false;
|
|
315
|
+
var copies = callbacks.slice(0); // 拷贝一份 callbacks
|
|
316
|
+
callbacks.length = 0; // 清空 callbacks
|
|
317
|
+
for (var i = 0; i < copies.length; i++) {
|
|
318
|
+
// 遍历执行传入的回调
|
|
319
|
+
copies[i]();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// 为什么要拷贝一份 callbacks
|
|
324
|
+
|
|
325
|
+
// 用 callbacks.slice(0) 将 callbacks 拷贝出来一份,
|
|
326
|
+
// 是因为考虑到在 nextTick 回调中可能还会调用 nextTick 的情况,
|
|
327
|
+
// 如果在 nextTick 回调中又调用了一次 nextTick,则又会向 callbacks 中添加回调,
|
|
328
|
+
// 而 nextTick 回调中的 nextTick 应该放在下一轮执行,
|
|
329
|
+
// 否则就可能出现一直循环的情况,
|
|
330
|
+
// 所以需要将 callbacks 复制一份出来然后清空,再遍历备份列表执行回调
|
|
331
|
+
|
|
332
|
+
export var escapeStringRegexp = function escapeStringRegexp() {
|
|
333
|
+
var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
334
|
+
return string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
|
|
335
|
+
};
|