@tendaui/react 1.1.5 → 1.2.3
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/LICENSE +21 -0
- package/README.md +1 -1
- package/es/_chunks/dep-5U9UjDaf.js.map +1 -1
- package/es/_chunks/dep-CD_4-1Xb.js.map +1 -1
- package/es/_chunks/{dep-CRURwzDj.js → dep-CsSvR9wN.js} +9 -3
- package/es/_chunks/dep-CsSvR9wN.js.map +1 -0
- package/es/_chunks/dep-DJmE940f.js.map +1 -1
- package/es/_chunks/dep-DbVHGoUC.js.map +1 -1
- package/es/_chunks/{dep-D8jki30S.js → dep-aX8qrQpB.js} +2 -2
- package/es/_chunks/{dep-D8jki30S.js.map → dep-aX8qrQpB.js.map} +1 -1
- package/es/alert/Alert.js +9 -2
- package/es/alert/Alert.js.map +1 -1
- package/es/alert/index.js +4 -1
- package/es/alert/index.js.map +1 -1
- package/es/alert/style/index.css +7 -30
- package/es/badge/style/index.css +5 -10
- package/es/button/_example/base.js +1 -158
- package/es/button/_example/base.js.map +1 -1
- package/es/button/_example/icon.js +1 -157
- package/es/button/_example/icon.js.map +1 -1
- package/es/button/style/index.css +4 -19
- package/es/checkbox/style/index.css +9 -26
- package/es/color-picker/ColorPicker.js +3 -3
- package/es/color-picker/components/panel/format/index.js +4 -1
- package/es/color-picker/components/panel/format/index.js.map +1 -1
- package/es/color-picker/components/panel/format/inputs.js +3 -0
- package/es/color-picker/components/panel/format/inputs.js.map +1 -1
- package/es/color-picker/components/trigger.js +3 -0
- package/es/color-picker/components/trigger.js.map +1 -1
- package/es/color-picker/style/index.css +43 -138
- package/es/color-picker/utils/color-picker/index.js.map +1 -1
- package/es/dialog/Dialog.js +4 -1
- package/es/dialog/Dialog.js.map +1 -1
- package/es/dialog/DialogCard.js +5 -2
- package/es/dialog/DialogCard.js.map +1 -1
- package/es/dialog/index.js +4 -3
- package/es/dialog/index.js.map +1 -1
- package/es/dialog/plugin.js +3 -2
- package/es/dialog/plugin.js.map +1 -1
- package/es/dialog/style/index.css +51 -188
- package/es/drawer/Drawer.js +15 -8
- package/es/drawer/Drawer.js.map +1 -1
- package/es/drawer/index.js +5 -2
- package/es/drawer/index.js.map +1 -1
- package/es/drawer/style/index.css +12 -41
- package/es/form/Form.js +3 -0
- package/es/form/Form.js.map +1 -1
- package/es/form/FormItem.js +3 -0
- package/es/form/FormItem.js.map +1 -1
- package/es/form/index.js +3 -0
- package/es/form/index.js.map +1 -1
- package/es/form/style/index.css +13 -33
- package/es/index.js +3 -3
- package/es/input/Input.js +10 -2
- package/es/input/Input.js.map +1 -1
- package/es/input/index.js +4 -1
- package/es/input/index.js.map +1 -1
- package/es/input/style/index.css +17 -63
- package/es/input-number/InputNumber.js +4 -1
- package/es/input-number/InputNumber.js.map +1 -1
- package/es/input-number/index.js +4 -1
- package/es/input-number/index.js.map +1 -1
- package/es/input-number/style/css.js +1 -1
- package/es/input-number/style/index.css +7 -39
- package/es/input-number/useInputNumber.js.map +1 -1
- package/es/ip-input/style/index.css +21 -87
- package/es/layout/style/index.css +5 -19
- package/es/list/List.js.map +1 -1
- package/es/list/ListItem.js.map +1 -1
- package/es/list/ListItemMeta.js.map +1 -1
- package/es/list/style/css.js +1 -1
- package/es/list/style/index.css +11 -39
- package/es/loading/style/index.css +10 -65
- package/es/notification/style/index.css +6 -24
- package/es/popup/style/index.css +9 -20
- package/es/radio/style/index.css +11 -36
- package/es/select/Select.js +4 -1
- package/es/select/Select.js.map +1 -1
- package/es/select/index.js +4 -1
- package/es/select/index.js.map +1 -1
- package/es/select/style/index.css +17 -52
- package/es/select-input/SelectInput.js +3 -0
- package/es/select-input/SelectInput.js.map +1 -1
- package/es/select-input/hook/useMultiple.js +3 -0
- package/es/select-input/hook/useMultiple.js.map +1 -1
- package/es/select-input/hook/useSingle.js +3 -0
- package/es/select-input/hook/useSingle.js.map +1 -1
- package/es/select-input/index.js +3 -0
- package/es/select-input/index.js.map +1 -1
- package/es/slider/Slider.js +3 -0
- package/es/slider/Slider.js.map +1 -1
- package/es/slider/SliderHandleButton.js.map +1 -1
- package/es/slider/index.js +3 -0
- package/es/slider/index.js.map +1 -1
- package/es/slider/style/css.js +1 -1
- package/es/slider/style/index.css +18 -59
- package/es/style/index.css +0 -2
- package/es/switch/Switch.js +1 -1
- package/es/switch/index.js +1 -1
- package/es/switch/style/index.css +10 -37
- package/es/tab/style/index.css +6 -31
- package/es/table/TBody.js +10 -1
- package/es/table/TBody.js.map +1 -1
- package/es/table/Table.js +4 -0
- package/es/table/Table.js.map +1 -1
- package/es/table/index.js +4 -0
- package/es/table/index.js.map +1 -1
- package/es/table/style/index.css +5 -15
- package/es/tag/style/index.css +4 -16
- package/es/tag-input/TagInput.js +3 -0
- package/es/tag-input/TagInput.js.map +1 -1
- package/es/tag-input/index.js +3 -0
- package/es/tag-input/index.js.map +1 -1
- package/es/tag-input/style/index.css +7 -53
- package/es/utils/log/index.js.map +1 -1
- package/package.json +3 -3
- package/es/_chunks/dep-CRURwzDj.js.map +0 -1
- package/es/alert/Alert.d.ts +0 -7
- package/es/alert/defaultProps.d.ts +0 -2
- package/es/alert/index.d.ts +0 -5
- package/es/alert/style/css.d.ts +0 -1
- package/es/alert/style/index.d.ts +0 -1
- package/es/alert/type.d.ts +0 -45
- package/es/badge/Badge.d.ts +0 -7
- package/es/badge/defaultProps.d.ts +0 -2
- package/es/badge/index.d.ts +0 -5
- package/es/badge/style/css.d.ts +0 -1
- package/es/badge/style/index.d.ts +0 -1
- package/es/badge/type.d.ts +0 -50
- package/es/button/Button.d.ts +0 -6
- package/es/button/defaultProps.d.ts +0 -2
- package/es/button/index.d.ts +0 -5
- package/es/button/style/css.d.ts +0 -1
- package/es/button/style/index.d.ts +0 -1
- package/es/button/type.d.ts +0 -81
- package/es/checkbox/Checkbox.d.ts +0 -10
- package/es/checkbox/CheckboxGroup.d.ts +0 -14
- package/es/checkbox/defaultProps.d.ts +0 -3
- package/es/checkbox/index.d.ts +0 -11
- package/es/checkbox/style/css.d.ts +0 -1
- package/es/checkbox/style/index.d.ts +0 -1
- package/es/checkbox/type.d.ts +0 -115
- package/es/color-picker/ColorPickPanel.d.ts +0 -4
- package/es/color-picker/ColorPicker.d.ts +0 -4
- package/es/color-picker/components/panel/alpha.d.ts +0 -4
- package/es/color-picker/components/panel/format/index.d.ts +0 -10
- package/es/color-picker/components/panel/format/inputs.d.ts +0 -4
- package/es/color-picker/components/panel/header.d.ts +0 -13
- package/es/color-picker/components/panel/hue.d.ts +0 -4
- package/es/color-picker/components/panel/index.d.ts +0 -4
- package/es/color-picker/components/panel/saturation.d.ts +0 -4
- package/es/color-picker/components/panel/slider.d.ts +0 -11
- package/es/color-picker/components/panel/swatches.d.ts +0 -11
- package/es/color-picker/components/trigger.d.ts +0 -9
- package/es/color-picker/defaultProps.d.ts +0 -2
- package/es/color-picker/helpers.d.ts +0 -5
- package/es/color-picker/hooks/useClassNames.d.ts +0 -2
- package/es/color-picker/hooks/useStyles.d.ts +0 -14
- package/es/color-picker/index.d.ts +0 -6
- package/es/color-picker/style/css.d.ts +0 -1
- package/es/color-picker/style/index.d.ts +0 -1
- package/es/color-picker/type.d.ts +0 -135
- package/es/color-picker/utils/color-picker/cmyk.d.ts +0 -27
- package/es/color-picker/utils/color-picker/color.d.ts +0 -144
- package/es/color-picker/utils/color-picker/constants.d.ts +0 -30
- package/es/color-picker/utils/color-picker/draggable.d.ts +0 -23
- package/es/color-picker/utils/color-picker/format.d.ts +0 -64
- package/es/color-picker/utils/color-picker/gradient.d.ts +0 -22
- package/es/color-picker/utils/color-picker/index.d.ts +0 -7
- package/es/color-picker/utils/color-picker/types.d.ts +0 -28
- package/es/common/Check.d.ts +0 -22
- package/es/common/FakeArrow.d.ts +0 -9
- package/es/common/PluginContainer.d.ts +0 -9
- package/es/common/Portal.d.ts +0 -16
- package/es/common/observe.d.ts +0 -1
- package/es/common.d.ts +0 -81
- package/es/config-provider/ConfigContext.d.ts +0 -13
- package/es/config-provider/ConfigProvider.d.ts +0 -25
- package/es/config-provider/index.d.ts +0 -7
- package/es/config-provider/type.d.ts +0 -1029
- package/es/dialog/Dialog.d.ts +0 -8
- package/es/dialog/DialogCard.d.ts +0 -8
- package/es/dialog/defaultProps.d.ts +0 -6
- package/es/dialog/hooks/useDialogDrag.d.ts +0 -7
- package/es/dialog/hooks/useDialogEsc.d.ts +0 -3
- package/es/dialog/hooks/useDialogPosition.d.ts +0 -2
- package/es/dialog/hooks/useLockStyle.d.ts +0 -2
- package/es/dialog/index.d.ts +0 -8
- package/es/dialog/plugin.d.ts +0 -6
- package/es/dialog/style/css.d.ts +0 -1
- package/es/dialog/style/index.d.ts +0 -1
- package/es/dialog/type.d.ts +0 -227
- package/es/dialog/utils.d.ts +0 -1
- package/es/drawer/Drawer.d.ts +0 -11
- package/es/drawer/defaultProps.d.ts +0 -2
- package/es/drawer/hooks/useDrag.d.ts +0 -8
- package/es/drawer/hooks/useLockStyle.d.ts +0 -1
- package/es/drawer/index.d.ts +0 -4
- package/es/drawer/style/css.d.ts +0 -1
- package/es/drawer/style/index.d.ts +0 -1
- package/es/drawer/type.d.ts +0 -199
- package/es/drawer/utils/index.d.ts +0 -23
- package/es/fireworks/Fireworks.d.ts +0 -7
- package/es/fireworks/index.d.ts +0 -5
- package/es/fireworks/style/css.d.ts +0 -0
- package/es/fireworks/style/index.d.ts +0 -0
- package/es/fireworks/type.d.ts +0 -69
- package/es/form/Form.d.ts +0 -8
- package/es/form/FormContext.d.ts +0 -59
- package/es/form/FormItem.d.ts +0 -23
- package/es/form/FormList.d.ts +0 -4
- package/es/form/const.d.ts +0 -6
- package/es/form/defaultProps.d.ts +0 -3
- package/es/form/easing.d.ts +0 -2
- package/es/form/formModel.d.ts +0 -37
- package/es/form/hooks/interface.d.ts +0 -16
- package/es/form/hooks/useForm.d.ts +0 -3
- package/es/form/hooks/useFormItemInitialData.d.ts +0 -9
- package/es/form/hooks/useFormItemStyle.d.ts +0 -10
- package/es/form/hooks/useInstance.d.ts +0 -16
- package/es/form/hooks/useWatch.d.ts +0 -3
- package/es/form/index.d.ts +0 -7
- package/es/form/scroll.d.ts +0 -39
- package/es/form/style/css.d.ts +0 -1
- package/es/form/style/index.d.ts +0 -1
- package/es/form/type.d.ts +0 -486
- package/es/form/utils/index.d.ts +0 -5
- package/es/global-config/default-config.d.ts +0 -84
- package/es/global-config/locale/ar_KW.d.ts +0 -239
- package/es/global-config/locale/en_US.d.ts +0 -263
- package/es/global-config/locale/it_IT.d.ts +0 -263
- package/es/global-config/locale/ja_JP.d.ts +0 -263
- package/es/global-config/locale/ko_KR.d.ts +0 -263
- package/es/global-config/locale/ru_RU.d.ts +0 -263
- package/es/global-config/locale/zh_CN.d.ts +0 -263
- package/es/global-config/locale/zh_TW.d.ts +0 -263
- package/es/global-config/mobile/default-config.d.ts +0 -7
- package/es/global-config/mobile/locale/ar_KW.d.ts +0 -98
- package/es/global-config/mobile/locale/en_US.d.ts +0 -99
- package/es/global-config/mobile/locale/it_IT.d.ts +0 -99
- package/es/global-config/mobile/locale/ja_JP.d.ts +0 -99
- package/es/global-config/mobile/locale/ko_KR.d.ts +0 -99
- package/es/global-config/mobile/locale/ru_RU.d.ts +0 -99
- package/es/global-config/mobile/locale/zh_CN.d.ts +0 -99
- package/es/global-config/mobile/locale/zh_TW.d.ts +0 -99
- package/es/global-config/t.d.ts +0 -25
- package/es/hooks/useAttach.d.ts +0 -10
- package/es/hooks/useCommonClassName.d.ts +0 -54
- package/es/hooks/useConfig.d.ts +0 -2
- package/es/hooks/useControlled.d.ts +0 -9
- package/es/hooks/useDeepEffect.d.ts +0 -7
- package/es/hooks/useDefaultProps.d.ts +0 -1
- package/es/hooks/useDomCallback.d.ts +0 -1
- package/es/hooks/useDomRefCallback.d.ts +0 -1
- package/es/hooks/useDragSorter.d.ts +0 -28
- package/es/hooks/useEventCallback.d.ts +0 -9
- package/es/hooks/useGlobalConfig.d.ts +0 -1
- package/es/hooks/useGlobalIcon.d.ts +0 -5
- package/es/hooks/useLastest.d.ts +0 -2
- package/es/hooks/useLayoutEffect.d.ts +0 -3
- package/es/hooks/useMouseEvent.d.ts +0 -25
- package/es/hooks/useMutationObserver.d.ts +0 -4
- package/es/hooks/usePopper.d.ts +0 -19
- package/es/hooks/useResizeObserve.d.ts +0 -1
- package/es/hooks/useRipple.d.ts +0 -0
- package/es/hooks/useSetState.d.ts +0 -7
- package/es/hooks/useVirtualScroll.d.ts +0 -30
- package/es/hooks/useWindowSize.d.ts +0 -6
- package/es/index.d.ts +0 -25
- package/es/input/Input.d.ts +0 -16
- package/es/input/InputGroup.d.ts +0 -10
- package/es/input/defaultProps.d.ts +0 -17
- package/es/input/index.d.ts +0 -6
- package/es/input/style/css.d.ts +0 -1
- package/es/input/style/index.d.ts +0 -1
- package/es/input/type.d.ts +0 -237
- package/es/input-number/InputNumber.d.ts +0 -17
- package/es/input-number/defaultProps.d.ts +0 -2
- package/es/input-number/index.d.ts +0 -5
- package/es/input-number/style/css.d.ts +0 -1
- package/es/input-number/style/index.d.ts +0 -1
- package/es/input-number/type.d.ts +0 -156
- package/es/input-number/useInputNumber.d.ts +0 -51
- package/es/ip-input/IPInput.d.ts +0 -5
- package/es/ip-input/defaultProps.d.ts +0 -2
- package/es/ip-input/index.d.ts +0 -3
- package/es/ip-input/style/css.d.ts +0 -1
- package/es/ip-input/style/index.d.ts +0 -1
- package/es/ip-input/type.d.ts +0 -113
- package/es/ip-input/utils.d.ts +0 -35
- package/es/layout/Aside.d.ts +0 -11
- package/es/layout/Layout.d.ts +0 -26
- package/es/layout/defaultProps.d.ts +0 -5
- package/es/layout/index.d.ts +0 -10
- package/es/layout/style/css.d.ts +0 -1
- package/es/layout/style/index.d.ts +0 -1
- package/es/layout/type.d.ts +0 -38
- package/es/list/List.d.ts +0 -17
- package/es/list/ListItem.d.ts +0 -15
- package/es/list/ListItemMeta.d.ts +0 -10
- package/es/list/defaultProps.d.ts +0 -7
- package/es/list/hooks/useListVirtualScroll.d.ts +0 -24
- package/es/list/index.d.ts +0 -10
- package/es/list/style/css.d.ts +0 -1
- package/es/list/style/index.d.ts +0 -1
- package/es/list/type.d.ts +0 -92
- package/es/loading/Gradient.d.ts +0 -6
- package/es/loading/Loading.d.ts +0 -7
- package/es/loading/circleAdapter.d.ts +0 -1
- package/es/loading/defaultProps.d.ts +0 -2
- package/es/loading/index.d.ts +0 -5
- package/es/loading/style/css.d.ts +0 -1
- package/es/loading/style/index.d.ts +0 -1
- package/es/loading/type.d.ts +0 -68
- package/es/loading/utils/setStyle.d.ts +0 -7
- package/es/locale/LocalReceiver.d.ts +0 -6
- package/es/locale/ar_KW.d.ts +0 -3
- package/es/locale/en_US.d.ts +0 -3
- package/es/locale/it_IT.d.ts +0 -3
- package/es/locale/ja_JP.d.ts +0 -3
- package/es/locale/ko_KR.d.ts +0 -3
- package/es/locale/ru_RU.d.ts +0 -3
- package/es/locale/zh_CN.d.ts +0 -3
- package/es/locale/zh_TW.d.ts +0 -3
- package/es/myform/index.d.ts +0 -0
- package/es/notification/Notify.d.ts +0 -11
- package/es/notification/NotifyContainer.d.ts +0 -13
- package/es/notification/NotifyContext.d.ts +0 -23
- package/es/notification/NotifyItem.d.ts +0 -4
- package/es/notification/index.d.ts +0 -3
- package/es/notification/style/css.d.ts +0 -1
- package/es/notification/style/index.d.ts +0 -1
- package/es/notification/type.d.ts +0 -22
- package/es/popup/Popup.d.ts +0 -21
- package/es/popup/defaultProps.d.ts +0 -5
- package/es/popup/hooks/useTrigger.d.ts +0 -20
- package/es/popup/index.d.ts +0 -5
- package/es/popup/style/css.d.ts +0 -1
- package/es/popup/style/index.d.ts +0 -1
- package/es/popup/type.d.ts +0 -109
- package/es/portal/Portal.d.ts +0 -16
- package/es/portal/index.d.ts +0 -1
- package/es/radio/Radio.d.ts +0 -8
- package/es/radio/RadioGroup.d.ts +0 -14
- package/es/radio/defaultProps.d.ts +0 -3
- package/es/radio/index.d.ts +0 -10
- package/es/radio/style/css.d.ts +0 -0
- package/es/radio/style/index.d.ts +0 -1
- package/es/radio/type.d.ts +0 -117
- package/es/radio/useKeyboard.d.ts +0 -4
- package/es/select/Option.d.ts +0 -24
- package/es/select/OptionGroup.d.ts +0 -7
- package/es/select/PopupContent.d.ts +0 -24
- package/es/select/Select.d.ts +0 -13
- package/es/select/defaultProps.d.ts +0 -4
- package/es/select/hooks/useOptions.d.ts +0 -16
- package/es/select/hooks/usePanelVirtualScroll.d.ts +0 -24
- package/es/select/index.d.ts +0 -8
- package/es/select/style/css.d.ts +0 -1
- package/es/select/style/index.d.ts +0 -1
- package/es/select/type.d.ts +0 -344
- package/es/select/utils/helper.d.ts +0 -18
- package/es/select-input/SelectInput.d.ts +0 -11
- package/es/select-input/defaultProps.d.ts +0 -2
- package/es/select-input/hook/useMultiple.d.ts +0 -23
- package/es/select-input/hook/useOverlayInnerStyle.d.ts +0 -11
- package/es/select-input/hook/useSingle.d.ts +0 -16
- package/es/select-input/index.d.ts +0 -5
- package/es/select-input/interface.d.ts +0 -17
- package/es/select-input/style/css.d.ts +0 -1
- package/es/select-input/style/index.d.ts +0 -1
- package/es/select-input/type.d.ts +0 -243
- package/es/slider/Slider.d.ts +0 -7
- package/es/slider/SliderHandleButton.d.ts +0 -11
- package/es/slider/defaultProps.d.ts +0 -5
- package/es/slider/index.d.ts +0 -5
- package/es/slider/style/css.d.ts +0 -1
- package/es/slider/style/index.d.ts +0 -1
- package/es/slider/type.d.ts +0 -78
- package/es/space/defaultProps.d.ts +0 -0
- package/es/space/index.d.ts +0 -0
- package/es/space/type.d.ts +0 -0
- package/es/style/index.d.ts +0 -1
- package/es/switch/Switch.d.ts +0 -9
- package/es/switch/defaultProps.d.ts +0 -2
- package/es/switch/index.d.ts +0 -4
- package/es/switch/style/css.d.ts +0 -1
- package/es/switch/style/index.d.ts +0 -1
- package/es/switch/type.d.ts +0 -48
- package/es/tab/TabBar.d.ts +0 -9
- package/es/tab/TabNav.d.ts +0 -10
- package/es/tab/TabNavItem.d.ts +0 -15
- package/es/tab/TabPanel.d.ts +0 -9
- package/es/tab/Tabs.d.ts +0 -10
- package/es/tab/defaultProps.d.ts +0 -3
- package/es/tab/index.d.ts +0 -8
- package/es/tab/style/index.d.ts +0 -1
- package/es/tab/type.d.ts +0 -130
- package/es/tab/useTabClass.d.ts +0 -8
- package/es/table/Cell.d.ts +0 -18
- package/es/table/TBody.d.ts +0 -28
- package/es/table/THead.d.ts +0 -10
- package/es/table/TR.d.ts +0 -28
- package/es/table/Table.d.ts +0 -6
- package/es/table/defaultProps.d.ts +0 -2
- package/es/table/hooks/index.d.ts +0 -4
- package/es/table/hooks/useTableClassName.d.ts +0 -26
- package/es/table/hooks/useTableStyle.d.ts +0 -11
- package/es/table/index.d.ts +0 -5
- package/es/table/style/css.d.ts +0 -1
- package/es/table/style/index.d.ts +0 -1
- package/es/table/type.d.ts +0 -195
- package/es/tag/Tag.d.ts +0 -14
- package/es/tag/defaultProps.d.ts +0 -7
- package/es/tag/index.d.ts +0 -4
- package/es/tag/style/css.d.ts +0 -1
- package/es/tag/style/index.d.ts +0 -1
- package/es/tag/type.d.ts +0 -169
- package/es/tag-input/TagInput.d.ts +0 -9
- package/es/tag-input/defaultProps.d.ts +0 -2
- package/es/tag-input/hooks/useHover.d.ts +0 -17
- package/es/tag-input/hooks/useTagList.d.ts +0 -30
- package/es/tag-input/hooks/useTagScroll.d.ts +0 -25
- package/es/tag-input/index.d.ts +0 -5
- package/es/tag-input/style/css.d.ts +0 -1
- package/es/tag-input/style/index.d.ts +0 -1
- package/es/tag-input/type.d.ts +0 -235
- package/es/tag-input/useTagList.d.ts +0 -30
- package/es/utils/composeRefs.d.ts +0 -2
- package/es/utils/dom.d.ts +0 -7
- package/es/utils/forwardRefWithStatics.d.ts +0 -2
- package/es/utils/getScrollbarWidth.d.ts +0 -6
- package/es/utils/helper.d.ts +0 -46
- package/es/utils/input-number/large-number.d.ts +0 -85
- package/es/utils/input-number/number.d.ts +0 -81
- package/es/utils/isFragment.d.ts +0 -4
- package/es/utils/listener.d.ts +0 -4
- package/es/utils/log/index.d.ts +0 -2
- package/es/utils/log/log.d.ts +0 -3
- package/es/utils/log/types.d.ts +0 -8
- package/es/utils/noop.d.ts +0 -2
- package/es/utils/number.d.ts +0 -7
- package/es/utils/parentTNode.d.ts +0 -10
- package/es/utils/parseTNode.d.ts +0 -10
- package/es/utils/react-render.d.ts +0 -16
- package/es/utils/ref.d.ts +0 -1
- package/es/utils/refs.d.ts +0 -13
- package/es/utils/scroll.d.ts +0 -3
- package/es/utils/style.d.ts +0 -4
- package/es/utils/transition.d.ts +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputNumber.js","sources":["../../../components/utils/input-number/large-number.ts","../../../components/utils/input-number/number.ts","../../../components/input-number/useInputNumber.tsx"],"sourcesContent":["import { isString, isNumber, isObject } from \"lodash-es\";\r\nimport log from \"../log/log\";\r\n\r\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean; places: number };\r\n\r\nexport function fillZero(length: number) {\r\n return new Array(length).fill(0).join(\"\");\r\n}\r\n\r\n/**\r\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\r\n */\r\nexport function isInputNumber(num: number | string): boolean {\r\n if (!num) return true;\r\n if (isNumber(num)) return !Number.isNaN(num);\r\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\r\n if (!r) return false;\r\n // only allow one [.e] and two [-]\r\n let eCount = 0;\r\n let negativeCount = 0;\r\n let dotCount = 0;\r\n for (let i = 0, len = num.length; i < len; i++) {\r\n if (num[i] === \".\") {\r\n dotCount += 1;\r\n if (dotCount > 1) return false;\r\n }\r\n if (/(e|E)+/.test(num[i])) {\r\n eCount += 1;\r\n if (eCount > 1) return false;\r\n }\r\n if (num[i] === \"-\") {\r\n negativeCount += 1;\r\n if (negativeCount > 2) return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\r\nexport function removeInvalidZero(num: string, decimal = false) {\r\n if (num.indexOf(\".\") !== -1) {\r\n log.error(\"InputNumber\", \"num is not a integer number.\");\r\n return num;\r\n }\r\n if (!num || (num === \"0\" && decimal)) return \"\";\r\n if (num === \"0\") return num;\r\n return (decimal ? num.replace(/0+$/, \"\") : num.replace(/^0+/, \"\")) || \"0\";\r\n}\r\n\r\n/**\r\n * 大数加法,仅支持正整数(没有精度问题)\r\n * @param num1 被加数\r\n * @param num2 加数\r\n */\r\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\r\n const number1 = removeInvalidZero(num1, decimal);\r\n const number2 = removeInvalidZero(num2, decimal);\r\n const isFirstLarger = number1.length > number2.length;\r\n const maxNumber = isFirstLarger ? number1 : number2;\r\n const minNumber = isFirstLarger ? number2 : number1;\r\n const newNumber: string[] = [];\r\n const step = [];\r\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\r\n const len = decimal ? minNumber.length : maxNumber.length;\r\n for (let i = len - 1; i >= 0; i--) {\r\n const minIndex = i - diff;\r\n // 第一个数,加第二个数,加进位\r\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\r\n if (count >= 10) {\r\n step[i - 1] = 1;\r\n }\r\n newNumber.unshift(String(count % 10));\r\n }\r\n // 999 + 1 = 1000,之类的进位\r\n if (step[-1]) {\r\n newNumber.unshift(\"1\");\r\n }\r\n if (decimal) {\r\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join(\"\");\r\n }\r\n return newNumber.join(\"\");\r\n}\r\n\r\n/**\r\n * 大数加法,支持小数和整数(没有精度问题)\r\n * @param num1 被加数\r\n * @param num2 加数\r\n */\r\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\r\n const [intNumber1 = \"0\", decimalNumber1 = \"0\"] = num1.split(\".\");\r\n const [intNumber2 = \"0\", decimalNumber2 = \"0\"] = num2.split(\".\");\r\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\r\n // 如果不存在小数,则直接返回整数相加结果\r\n if (decimalNumber1 === \"0\" && decimalNumber2 === \"0\") return integerSum;\r\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\r\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\r\n // 小数点相加\r\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\r\n // 组合整数部分和小数部分\r\n const decimalLength = decimalNumberSum.length;\r\n // 如果小数相加进位\r\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\r\n return [removeInvalidZero(largeIntNumberAdd(integerSum, \"1\")), removeInvalidZero(decimalNumberSum.slice(1), true)]\r\n .filter((v: string) => v)\r\n .join(\".\");\r\n }\r\n return [removeInvalidZero(integerSum), removeInvalidZero(decimalNumberSum, true)].filter((v: string) => v).join(\".\");\r\n}\r\n\r\n/**\r\n * 比较两个大数的大小,仅正整数有效\r\n */\r\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\r\n const number1 = removeInvalidZero(num1);\r\n const number2 = removeInvalidZero(num2);\r\n if (number1.length === number2.length) {\r\n for (let i = 0, len = number1.length; i < len; i++) {\r\n if (number1[i] > number2[i]) return 1;\r\n if (number1[i] < number2[i]) return -1;\r\n }\r\n return 0;\r\n }\r\n return number1.length > number2.length ? 1 : -1;\r\n}\r\n\r\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\r\n const number1 = num1 && num1 !== \"0\" ? num1.replace(/0+$/, \"\") : \"0\";\r\n const number2 = num2 && num2 !== \"0\" ? num2.replace(/0+$/, \"\") : \"0\";\r\n const maxLength = Math.max(number1.length, number2.length);\r\n for (let i = 0, len = maxLength; i < len; i++) {\r\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\r\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\r\n }\r\n return 0;\r\n}\r\n\r\n/**\r\n * 2e3 => 2000\r\n * 0.2e3 => 200\r\n */\r\nexport function formatENumber(num: string): string {\r\n const [num1, num2] = num.split(\"e\");\r\n if (!num2) return num;\r\n const [integer, initDecimal = \"\"] = num.split(\".\");\r\n const zeroCount = Number(num2);\r\n const [decimal] = initDecimal.split(\"e\");\r\n if (zeroCount > decimal.length) {\r\n const multipleZero = fillZero(zeroCount - decimal.length);\r\n return num1.replace(/(^0+|\\.)/g, \"\") + multipleZero;\r\n }\r\n const n1 = integer.replace(/^0+/, \"\") + decimal.slice(0, zeroCount);\r\n const d2 = decimal.slice(zeroCount);\r\n return d2 ? [n1, d2].join(\".\") : n1;\r\n}\r\n\r\n/**\r\n * 比较两个大数的大小\r\n */\r\nexport function compareLargeNumber(num1: string, num2: string): 1 | -1 | 0 {\r\n const [integer1, decimal1] = formatENumber(num1).split(\".\");\r\n const [integer2, decimal2] = formatENumber(num2).split(\".\");\r\n const result = compareLargeIntegerNumber(integer1.replace(\"-\", \"\"), integer2.replace(\"-\", \"\"));\r\n const integer1IsNegative = integer1.includes(\"-\");\r\n const integer2IsNegative = integer2.includes(\"-\");\r\n if (integer1IsNegative && !integer2IsNegative) return -1;\r\n if (!integer1IsNegative && integer2IsNegative) return 1;\r\n if (integer1IsNegative && integer2IsNegative) {\r\n if (result === 0) return 0;\r\n return result > 0 ? -1 : 1;\r\n }\r\n if (result === 0) {\r\n return compareLargeDecimalNumber(decimal1, decimal2);\r\n }\r\n return result;\r\n}\r\n\r\n// 确认是否为无限大/小\r\nexport function isInfinity(num: number | string) {\r\n return [-Infinity, Infinity].includes(Number(num));\r\n}\r\n\r\n// 确认是否是大数\r\nexport function isSafeNumber(num: string | number) {\r\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\r\n}\r\n\r\n/**\r\n * 比较两个数的大小\r\n */\r\nexport function compareNumber(num1: string | number, num2: string | number, largeNumber?: boolean) {\r\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\r\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\r\n if (isSafeNumberCompare || isInfinityCompare) {\r\n // 比较两个非大数或涉及无穷的大小\r\n if (Number(num1) === Number(num2)) return 0;\r\n return Number(num1) > Number(num2) ? 1 : -1;\r\n }\r\n // 比较两个大数的大小\r\n return compareLargeNumber(String(num1), String(num2));\r\n}\r\n\r\n/**\r\n * 大数减法,仅支持整数\r\n * @param num1 被减数\r\n * @param num2 减数\r\n * @param decimal 是否为小数位相减\r\n */\r\nexport function largeIntegerNumberSubtract(\r\n num1: string,\r\n num2: string,\r\n p?: { decimal?: boolean; stayZero?: boolean }\r\n): string {\r\n if (num1 === num2) return \"0\";\r\n const { decimal, stayZero } = p || {};\r\n const number1 = removeInvalidZero(num1);\r\n const number2 = removeInvalidZero(num2);\r\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\r\n const maxNumber = isFirstLarger ? number1 : number2;\r\n const minNumber = isFirstLarger ? number2 : number1;\r\n const newNumber: string[] = [];\r\n // step 存储借位信息\r\n const step = [];\r\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\r\n const len = decimal ? minNumber.length : maxNumber.length;\r\n for (let i = len - 1; i >= 0; i--) {\r\n const minIndex = i - diff;\r\n // 第一个数,减第二个数,减借位\r\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\r\n if (count < 0) {\r\n step[i - 1] = 1;\r\n count += 10;\r\n }\r\n newNumber.unshift(String(count));\r\n }\r\n if (decimal) {\r\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join(\"\");\r\n }\r\n let finalNumber = newNumber.join(\"\");\r\n if (!stayZero) {\r\n finalNumber = finalNumber.replace(/^0+/, \"\");\r\n }\r\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\r\n}\r\n\r\n/**\r\n * 大数减法,支持整数和小数(无精度问题)\r\n * @param num1 被减数\r\n * @param num2 减数\r\n * @param decimal 是否为小数位相减\r\n */\r\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\r\n if (num1 === num2) return \"0\";\r\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\r\n const maxNumber = isFirstLarger ? num1 : num2;\r\n const minNumber = isFirstLarger ? num2 : num1;\r\n // 整数部分和小数部分分开处理\r\n const [intNumber1, decimalNumber1 = \"0\"] = maxNumber.split(\".\");\r\n const [intNumber2, decimalNumber2 = \"0\"] = minNumber.split(\".\");\r\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\r\n // 如果不存在小数,则直接返回整数相加结果\r\n if (decimalNumber1 === \"0\" && decimalNumber2 === \"0\") {\r\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\r\n }\r\n // 小数点相减\r\n let decimalNumber = \"\";\r\n let addOneNumber = decimalNumber1;\r\n // 第一个数字的小数位数比第二个少,需补足 0\r\n if (decimalNumber1.length < decimalNumber2.length) {\r\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\r\n }\r\n // 第一个小数位更小,是否需要借位\r\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\r\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\r\n } else {\r\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === \"0\") {\r\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\r\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\r\n } else {\r\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\r\n }\r\n integerNumber = largeIntegerNumberSubtract(integerNumber, \"1\");\r\n }\r\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join(\".\") : integerNumber;\r\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\r\n}\r\n\r\n/**\r\n * -0.6 - 0.8 => -(0.6 + 0.8)\r\n * -0.6 - (-0.8) => 0.8 - 0.6\r\n * 0.6 - (-0.8) => 0.6 + 0.8\r\n * 0.6 - 0.8 => 0.6 - 0.8\r\n */\r\nexport function largeNumberSubtract(num1: string, num2: string): string {\r\n const isFirstNegative = num1[0] === \"-\";\r\n const isSecondNegative = num2[0] === \"-\";\r\n if (isFirstNegative && !isSecondNegative) {\r\n const r = largePositiveNumberAdd(num1.slice(1), num2);\r\n return `-${r}`;\r\n }\r\n if (isFirstNegative && isSecondNegative) {\r\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\r\n }\r\n if (!isFirstNegative && isSecondNegative) {\r\n return largePositiveNumberAdd(num1, num2.slice(1));\r\n }\r\n return largePositiveNumberSubtract(num1, num2);\r\n}\r\n\r\n/**\r\n * -0.6 + 0.8 => 0.8 - 0.6\r\n * -0.6 + (-0.8) => -(0.6 + 0.8)\r\n * 0.6 + (-0.8) => 0.6 - 0.8\r\n * 0.6 + 0.8 => 0.6 + 0.8\r\n */\r\nexport function largeNumberAdd(num1: string, num2: string): string {\r\n const isFirstNegative = num1[0] === \"-\";\r\n const isSecondNegative = num2[0] === \"-\";\r\n if (isFirstNegative && !isSecondNegative) {\r\n return largePositiveNumberSubtract(num2, num1.slice(1));\r\n }\r\n if (isFirstNegative && isSecondNegative) {\r\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\r\n return `-${r}`;\r\n }\r\n if (!isFirstNegative && isSecondNegative) {\r\n return largePositiveNumberSubtract(num1, num2.slice(1));\r\n }\r\n return largePositiveNumberAdd(num1, num2);\r\n}\r\n\r\n/**\r\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\r\n *\r\n * @param {number} num - 要格式化的数字。\r\n * @param {number} places - 小数点后的位数。\r\n * @param {boolean} rounding - 是否进行四舍五入。\r\n * @returns {string} 格式化后的数字字符串。\r\n */\r\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\r\n // 开启四舍五入 直接用 toFixed\r\n if (enableRound) {\r\n return num.toFixed(places);\r\n }\r\n\r\n const [integer, decimal] = num.toString().split(\".\");\r\n // 保留 0 位小数\r\n if (places === 0) {\r\n return integer;\r\n }\r\n // 补足小数位数\r\n if (decimal) {\r\n let decimalNumber = decimal.slice(0, places);\r\n if (decimal.length < places) {\r\n decimalNumber += fillZero(places - decimal.length);\r\n }\r\n return [integer, decimalNumber].join(\".\");\r\n }\r\n\r\n return [integer, fillZero(places)].join(\".\");\r\n}\r\n\r\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\r\n if (isObject(decimalPlaces)) {\r\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\r\n }\r\n return formatDecimal(num, decimalPlaces, true);\r\n}\r\n\r\n/**\r\n * 大数保留 N 位小数(没有精度问题)\r\n * @param {String} number 大数(只能使用字符串表示)\r\n * @param {Number} decimalPlaces 保留的小数位数\r\n * @param {Boolean} largeNumber 是否为大数\r\n */\r\nexport function largeNumberToFixed(\r\n number: string | number,\r\n decimalPlaces: InputNumberDecimalPlaces = 0,\r\n largeNumber: boolean = true\r\n): string {\r\n if (Number.isNaN(Number(number))) return \"\";\r\n if (!largeNumber) {\r\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\r\n }\r\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\r\n const enableRound = isObject(decimalPlaces) ? decimalPlaces.enableRound ?? true : true;\r\n if (!isString(number)) return String(number);\r\n\r\n let [num1, num2] = number.split(\".\");\r\n // 如果不存在小数点,则补足位数\r\n if (!num2) {\r\n return places > 0 && enableRound ? [number, fillZero(places)].join(\".\") : number;\r\n }\r\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\r\n if (places === 0) {\r\n return enableRound && Number(num2[0]) >= 5 ? largePositiveNumberAdd(num1, \"1\") : num1;\r\n }\r\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\r\n let decimalNumber = num2.slice(0, places);\r\n if (num2.length < places) {\r\n decimalNumber += fillZero(places - num2.length);\r\n } else if (enableRound) {\r\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\r\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\r\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\r\n const leadNineNum = decimalNumber.match(/^9+/);\r\n // 决定是否需要四舍五入\r\n const needAdded = Number(num2[places]) >= 5;\r\n\r\n // 四舍五入后的结果\r\n decimalNumber = needAdded ? largePositiveNumberAdd(decimalNumber, \"1\") : decimalNumber;\r\n\r\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\r\n if (leadZeroNum && needAdded && leadZeroNum + decimalNumber.length >= places) {\r\n decimalNumber = `${fillZero(places - decimalNumber.length)}${decimalNumber}`;\r\n }\r\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\r\n if (leadNineNum && decimalNumber.length > places) {\r\n num1 = (Number(num1) + 1).toString();\r\n decimalNumber = fillZero(places);\r\n }\r\n }\r\n return [num1, decimalNumber].join(\".\");\r\n}\r\n","import { isUndefined, isString, isNumber } from \"lodash-es\";\r\n/** 普通数相关方法 */\r\nimport {\r\n compareNumber,\r\n formatENumber,\r\n largeNumberToFixed,\r\n isInputNumber,\r\n largeNumberAdd,\r\n largeNumberSubtract\r\n} from \"./large-number\";\r\nimport log from \"../log\";\r\nimport type { InputNumberDecimalPlaces } from \"./large-number\";\r\n\r\nexport * from \"./large-number\";\r\n\r\nexport type NumberType = number | string;\r\n\r\n// 小于最大值,才允许继续添加\r\nexport function canAddNumber(num: NumberType, max: NumberType, largeNumber = false): boolean {\r\n if (!num && num !== 0) return true;\r\n if (largeNumber && isString(num)) {\r\n return compareNumber(num, max, largeNumber) < 0;\r\n }\r\n return num < max;\r\n}\r\n\r\n// 大于最小值,才允许继续减少\r\nexport function canReduceNumber(num: NumberType, min: NumberType, largeNumber = false): boolean {\r\n if (!num && num !== 0) return true;\r\n if (largeNumber && isString(num)) {\r\n return compareNumber(num, min, largeNumber) > 0;\r\n }\r\n return num > min;\r\n}\r\n\r\n/**\r\n * 将数字控制在 max 和 min 之间\r\n */\r\nexport function putInRangeNumber(\r\n val: NumberType,\r\n params: {\r\n max?: NumberType;\r\n min?: NumberType;\r\n lastValue?: NumberType;\r\n largeNumber?: boolean;\r\n }\r\n) {\r\n if (val === \"\") return undefined;\r\n const { max, min, lastValue, largeNumber } = params;\r\n if (!isInputNumber(val)) return lastValue;\r\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\r\n if (compareNumber(max, val, largeNumber) < 0) return max;\r\n if (compareNumber(min, val, largeNumber) > 0) return min;\r\n return val;\r\n }\r\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\r\n}\r\n\r\n/**\r\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\r\n */\r\nexport function positiveAdd(num1: number, num2: number): number {\r\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\r\n const r1 = num1.toString().split(\".\")[1]?.length || 0;\r\n const r2 = num2.toString().split(\".\")[1]?.length || 0;\r\n // 整数不存在精度问题,直接返回\r\n if (!r1 && !r2) return num1 + num2;\r\n let newNumber1 = num1;\r\n let newNumber2 = num2;\r\n const diff = Math.abs(r1 - r2);\r\n const digit = 10 ** Math.max(r1, r2);\r\n if (diff > 0) {\r\n const cm = 10 ** diff;\r\n if (r1 > r2) {\r\n newNumber1 = Number(num1.toString().replace(\".\", \"\"));\r\n newNumber2 = Number(num2.toString().replace(\".\", \"\")) * cm;\r\n } else {\r\n newNumber1 = Number(num1.toString().replace(\".\", \"\")) * cm;\r\n newNumber2 = Number(num2.toString().replace(\".\", \"\"));\r\n }\r\n } else {\r\n newNumber1 = Number(num1.toString().replace(\".\", \"\"));\r\n newNumber2 = Number(num2.toString().replace(\".\", \"\"));\r\n }\r\n return (newNumber1 + newNumber2) / digit;\r\n}\r\n\r\n/**\r\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\r\n */\r\nexport function positiveSubtract(num1: number, num2: number): number {\r\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\r\n const r1 = num1.toString().split(\".\")[1]?.length || 0;\r\n const r2 = num2.toString().split(\".\")[1]?.length || 0;\r\n const digit = 10 ** Math.max(r1, r2);\r\n const n = r1 >= r2 ? r1 : r2;\r\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\r\n}\r\n\r\n/**\r\n * 支持正数、负数、小数等全部数字的加法\r\n * -0.766 + 1 => 1 - 0.766\r\n * -1 + (-0.766) => - (1 + 0.766)\r\n * 1 + (-0.766) => 1 - 0.766\r\n * 1 + 0.766 => 1 + 0.766\r\n */\r\nexport function add(num1: number, num2: number): number {\r\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\r\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\r\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\r\n return positiveAdd(num1, num2);\r\n}\r\n\r\n/**\r\n * 支持正数、负数、小数等全部数字的减法\r\n * -0.766 - 1 => - (1 + 0.766)\r\n * -1 - (-0.766) => 0.766 - 1\r\n * 1 - (-0.766) => 1 + 0.766\r\n * 1 - 0.766 => 1 - 0.766\r\n */\r\nexport function subtract(num1: number, num2: number): number {\r\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\r\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\r\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\r\n return positiveSubtract(num1, num2);\r\n}\r\n\r\nexport function getStepValue(p: {\r\n op: \"add\" | \"reduce\";\r\n step: NumberType;\r\n max?: NumberType;\r\n min?: NumberType;\r\n lastValue?: NumberType;\r\n largeNumber?: boolean;\r\n}) {\r\n const { op, step, lastValue, max, min, largeNumber } = p;\r\n if (Number(step) <= 0) {\r\n log.error(\"InputNumber\", \"step must be larger than 0.\");\r\n return lastValue;\r\n }\r\n const tStep = isNumber(step) ? String(step) : step;\r\n let newVal;\r\n if (op === \"add\") {\r\n if (largeNumber && isString(lastValue)) {\r\n newVal = largeNumberAdd(String(lastValue), String(tStep));\r\n } else {\r\n newVal = add(Number(lastValue || 0), Number(step));\r\n }\r\n } else if (op === \"reduce\") {\r\n if (largeNumber && isString(lastValue)) {\r\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\r\n } else {\r\n newVal = subtract(Number(lastValue || 0), Number(step));\r\n }\r\n }\r\n if (isUndefined(lastValue)) {\r\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\r\n }\r\n return largeNumber ? newVal : Number(newVal);\r\n}\r\n\r\nexport type InputNumberErrorType = \"exceed-maximum\" | \"below-minimum\" | undefined;\r\n\r\n/**\r\n * 最大值和最小值校验\r\n */\r\nexport function getMaxOrMinValidateResult(p: {\r\n largeNumber: boolean;\r\n value: NumberType;\r\n max: NumberType;\r\n min: NumberType;\r\n}): InputNumberErrorType {\r\n const { largeNumber, value, max, min } = p;\r\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\r\n if (largeNumber && isNumber(value)) {\r\n log.warn(\"InputNumber\", \"largeNumber value must be a string.\");\r\n }\r\n let error: InputNumberErrorType;\r\n if (compareNumber(value, max, largeNumber) > 0) {\r\n error = \"exceed-maximum\";\r\n } else if (compareNumber(value, min, largeNumber) < 0) {\r\n error = \"below-minimum\";\r\n } else {\r\n error = undefined;\r\n }\r\n return error;\r\n}\r\n\r\nexport const specialCode = [\"-\", \".\", \"e\", \"E\", \"+\"];\r\n\r\n/**\r\n * 是否允许输入当前字符,输入字符校验\r\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\r\n * 2e3 表示 2 乘 10 的 3 次方\r\n */\r\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\r\n if ([\"\", null, undefined].includes(number)) return true;\r\n // 数字最前方不允许出现连续的两个 0\r\n if (number.slice(0, 2) === \"00\") return false;\r\n // 不能出现空格\r\n if (number.match(/\\s/g)) return false;\r\n // 只能出现一个点(.)\r\n if (number.match(/\\./g)?.length > 1) return false;\r\n // 只能出现一个e(e)\r\n if (number.match(/e/g)?.length > 1) return false;\r\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\r\n const tmpNumber = number.slice(1);\r\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\r\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\r\n // 允许输入数字字符\r\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\r\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\r\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\r\n return true;\r\n}\r\n\r\n/**\r\n * 是否允许设置组件新值,触发 onChange 事件\r\n */\r\nexport function canSetValue(number: string, lastNumber: number) {\r\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\r\n}\r\n\r\n/**\r\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\r\n * 2. 处理小数点 decimalPlaces\r\n * 3. 格式化大数字 formatENumber\r\n */\r\nexport function formatUnCompleteNumber(\r\n number: string,\r\n extra: {\r\n decimalPlaces?: InputNumberDecimalPlaces;\r\n largeNumber?: boolean;\r\n isToFixed?: boolean;\r\n } = {}\r\n): number | string {\r\n if ([\"\", null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\r\n const { decimalPlaces, largeNumber, isToFixed } = extra;\r\n let newNumber = number.replace(/[.|+|\\-|e]$/, \"\");\r\n if (largeNumber) {\r\n newNumber = formatENumber(newNumber);\r\n }\r\n if (decimalPlaces !== undefined) {\r\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\r\n }\r\n if (largeNumber) return newNumber;\r\n return isToFixed ? newNumber : parseFloat(newNumber);\r\n}\r\n\r\n/**\r\n * 对千分位进行处理 111,111,222 -> 111111222\r\n */\r\nexport function formatThousandths(number: string) {\r\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\r\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, \"\");\r\n return number;\r\n}\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport {\r\n canAddNumber,\r\n canInputNumber,\r\n canReduceNumber,\r\n formatUnCompleteNumber,\r\n canSetValue,\r\n getMaxOrMinValidateResult,\r\n getStepValue,\r\n formatThousandths,\r\n largeNumberToFixed\r\n} from \"../utils/input-number/number\";\r\nimport useConfig from \"../hooks/useConfig\";\r\nimport useControlled from \"../hooks/useControlled\";\r\nimport useCommonClassName from \"../hooks/useCommonClassName\";\r\nimport { InputNumberValue, TdInputNumberProps } from \"./type\";\r\nimport { InputProps } from \"../input\";\r\n\r\nexport const specialCode = [\"-\", \".\", \"e\", \"E\"];\r\n\r\n/**\r\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\r\n */\r\nexport default function useInputNumber<T extends InputNumberValue = InputNumberValue>(props: TdInputNumberProps<T>) {\r\n const { SIZE, STATUS } = useCommonClassName();\r\n const { classPrefix } = useConfig();\r\n const [tValue, onChange] = useControlled(props, \"value\", props.onChange);\r\n const [userInput, setUserInput] = useState(\"\");\r\n const [isError, setIsError] = useState<\"exceed-maximum\" | \"below-minimum\">();\r\n\r\n const inputRef = useRef(null);\r\n\r\n const { max, min, largeNumber, decimalPlaces, allowInputOverLimit, onValidate } = props;\r\n\r\n const disabledReduce = props.disabled || !canReduceNumber(tValue, props.min, props.largeNumber);\r\n const disabledAdd = props.disabled || !canAddNumber(tValue, props.max, props.largeNumber);\r\n\r\n const wrapClasses = classNames(`${classPrefix}-input-number`, SIZE[props.size], {\r\n [STATUS.disabled]: props.disabled,\r\n [`${classPrefix}-is-controls-right`]: props.theme === \"column\",\r\n [`${classPrefix}-input-number--${props.theme}`]: props.theme,\r\n [`${classPrefix}-input-number--auto-width`]: props.autoWidth\r\n });\r\n\r\n const reduceClasses = classNames(`${classPrefix}-input-number__decrease`, { [STATUS.disabled]: disabledReduce });\r\n const addClasses = classNames(`${classPrefix}-input-number__increase`, { [STATUS.disabled]: disabledAdd });\r\n\r\n const getUserInput = (value: InputNumberValue) => {\r\n if (!value && value !== 0) return \"\";\r\n let inputStr = value || value === 0 ? String(value) : \"\";\r\n if (!inputRef.current.currentElement.contains?.(document.activeElement)) {\r\n const num = formatUnCompleteNumber(inputStr, {\r\n decimalPlaces,\r\n largeNumber,\r\n isToFixed: true\r\n });\r\n inputStr = num || num === 0 ? String(num) : \"\";\r\n if (props.format) {\r\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\r\n }\r\n }\r\n return inputStr;\r\n };\r\n\r\n useEffect(() => {\r\n const inputValue = [undefined, null].includes(tValue) ? \"\" : String(tValue);\r\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\r\n if (!largeNumber && !Number.isNaN(userInput)) {\r\n if (parseFloat(userInput) !== tValue) {\r\n setUserInput(getUserInput(inputValue));\r\n }\r\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\r\n if (\r\n decimalPlaces !== undefined &&\r\n ![undefined, null].includes(tValue) &&\r\n Number(fixedNumber) !== Number(tValue)\r\n ) {\r\n onChange(fixedNumber as T, { type: \"props\", e: undefined });\r\n }\r\n }\r\n if (largeNumber) {\r\n const tmpUserInput = getUserInput(inputValue);\r\n setUserInput(tmpUserInput);\r\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== tValue) {\r\n onChange(tmpUserInput as T, { type: \"props\", e: undefined });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [tValue]);\r\n\r\n useEffect(() => {\r\n // @ts-ignore\r\n if ([undefined, \"\", null].includes(tValue)) return;\r\n const error = getMaxOrMinValidateResult({\r\n value: tValue as InputNumberValue,\r\n max,\r\n min,\r\n largeNumber\r\n });\r\n setIsError(error);\r\n onValidate?.({ error });\r\n }, [tValue, max, min, largeNumber, onValidate]);\r\n\r\n const handleStepValue = (op: \"add\" | \"reduce\") => {\r\n const newValue = getStepValue({\r\n op,\r\n step: props.step,\r\n max: props.max,\r\n min: props.min,\r\n lastValue: tValue,\r\n largeNumber: props.largeNumber\r\n });\r\n const { largeNumber, max, min } = props;\r\n const overLimit = getMaxOrMinValidateResult({\r\n value: newValue,\r\n largeNumber,\r\n max,\r\n min\r\n });\r\n return {\r\n overLimit,\r\n newValue\r\n };\r\n };\r\n\r\n const handleReduce = (e: any) => {\r\n if (disabledReduce || props.readonly) return;\r\n const r = handleStepValue(\"reduce\");\r\n if (r.overLimit && !allowInputOverLimit) return;\r\n onChange(r.newValue, { type: \"reduce\", e });\r\n };\r\n\r\n const handleAdd = (e: any) => {\r\n if (disabledAdd || props.readonly) return;\r\n const r = handleStepValue(\"add\");\r\n if (r.overLimit && !allowInputOverLimit) return;\r\n onChange(r.newValue, { type: \"add\", e });\r\n };\r\n\r\n // 1.2 -> 1. -> 1\r\n const onInnerInputChange: InputProps[\"onChange\"] = (inputValue, { e }) => {\r\n // 处理千分位\r\n const val = formatThousandths(inputValue);\r\n if (!canInputNumber(val, largeNumber)) return;\r\n\r\n setUserInput(val);\r\n\r\n if (largeNumber) {\r\n onChange(val as T, { type: \"input\", e: e as any });\r\n return;\r\n }\r\n\r\n if (canSetValue(String(val), Number(tValue))) {\r\n const newVal = val === \"\" ? undefined : Number(val);\r\n onChange(newVal as T, { type: \"input\", e: e as any });\r\n }\r\n };\r\n\r\n const handleBlur = (value: string, ctx: { e: React.FocusEvent<HTMLDivElement, Element> }) => {\r\n if (!props.allowInputOverLimit && value !== undefined) {\r\n const r = getMaxOrMinValidateResult({\r\n value: tValue,\r\n largeNumber,\r\n max,\r\n min\r\n });\r\n if (r === \"below-minimum\") {\r\n onChange(min as T, { type: \"blur\", e: ctx.e });\r\n return;\r\n }\r\n if (r === \"exceed-maximum\") {\r\n onChange(max as T, { type: \"blur\", e: ctx.e });\r\n return;\r\n }\r\n }\r\n const newValue = formatUnCompleteNumber(value, {\r\n decimalPlaces,\r\n largeNumber\r\n });\r\n setUserInput(getUserInput(newValue));\r\n if (newValue !== tValue) {\r\n setUserInput(tValue as string);\r\n onChange(newValue as T, { type: \"blur\", e: ctx.e });\r\n }\r\n props.onBlur?.(newValue, ctx);\r\n };\r\n\r\n const handleFocus = (_: string, ctx: { e: React.FocusEvent<HTMLDivElement, Element> }) => {\r\n setUserInput(tValue as string);\r\n props.onFocus?.(tValue as string, ctx);\r\n };\r\n\r\n const handleKeydown = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\r\n const { e } = ctx;\r\n const keyEvent = {\r\n ArrowUp: handleAdd,\r\n ArrowDown: handleReduce\r\n };\r\n\r\n if (keyEvent[e.key] !== undefined) {\r\n keyEvent[e.key](e);\r\n }\r\n props.onKeydown?.(value, ctx);\r\n };\r\n\r\n const handleKeyup = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\r\n props.onKeyup?.(value, ctx);\r\n };\r\n\r\n const handleKeypress = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\r\n props.onKeypress?.(value, ctx);\r\n };\r\n\r\n const handleEnter = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\r\n setUserInput(getUserInput(value));\r\n const newValue = formatUnCompleteNumber(value, {\r\n decimalPlaces: props.decimalPlaces,\r\n largeNumber: props.largeNumber\r\n });\r\n if (newValue !== value && String(newValue) !== value) {\r\n onChange(newValue as T, { type: \"enter\", e: ctx.e });\r\n }\r\n props.onEnter?.(newValue, ctx);\r\n };\r\n\r\n const handleClear: InputProps[\"onClear\"] = ({ e }) => {\r\n onChange(undefined, { type: \"clear\", e });\r\n setUserInput(\"\");\r\n };\r\n\r\n const focus = () => {\r\n inputRef.current.focus();\r\n };\r\n\r\n const blur = () => {\r\n inputRef.current.blur();\r\n };\r\n\r\n const listeners = {\r\n onBlur: handleBlur,\r\n onFocus: handleFocus,\r\n onKeydown: handleKeydown,\r\n onKeyup: handleKeyup,\r\n onKeypress: handleKeypress,\r\n onEnter: handleEnter,\r\n onClick: focus,\r\n onClear: handleClear\r\n };\r\n\r\n return {\r\n classPrefix,\r\n wrapClasses,\r\n reduceClasses,\r\n addClasses,\r\n inputRef,\r\n listeners,\r\n isError,\r\n setIsError,\r\n userInput,\r\n setUserInput,\r\n tValue,\r\n focus,\r\n blur,\r\n onChange,\r\n handleReduce,\r\n handleAdd,\r\n onInnerInputChange\r\n };\r\n}\r\n"],"names":["fillZero","length","Array","fill","join","isInputNumber","num","isNumber","Number","isNaN","r","test","eCount","negativeCount","dotCount","i","len","removeInvalidZero","decimal","arguments","undefined","indexOf","log","error","replace","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","step","diff","minIndex","count","unshift","String","concat","slice","largePositiveNumberAdd","_num1$split","split","_num1$split2","_slicedToArray","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","filter","v","compareLargeIntegerNumber","compareLargeDecimalNumber","maxLength","Math","max","formatENumber","_num$split","_num$split2","_num$split3","_num$split4","integer","_num$split4$","initDecimal","zeroCount","_initDecimal$split","_initDecimal$split2","multipleZero","n1","d2","compareLargeNumber","_formatENumber$split","_formatENumber$split2","integer1","decimal1","_formatENumber$split3","_formatENumber$split4","integer2","decimal2","result","integer1IsNegative","includes","integer2IsNegative","isInfinity","Infinity","isSafeNumber","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","compareNumber","largeNumber","isSafeNumberCompare","isInfinityCompare","largeIntegerNumberSubtract","p","_ref","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split","_maxNumber$split2","_maxNumber$split2$","_minNumber$split","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","largeNumberSubtract","isFirstNegative","isSecondNegative","largeNumberAdd","formatDecimal","places","enableRound","toFixed","_num$toString$split","toString","_num$toString$split2","decimalPlacesToFixedNum","decimalPlaces","isObject","_decimalPlaces$enable","largeNumberToFixed","number","_decimalPlaces$enable2","isString","_number$split","_number$split2","_decimalNumber$match","leadZeroNum","match","leadNineNum","needAdded","canAddNumber","canReduceNumber","min","putInRangeNumber","val","params","lastValue","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","abs","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","n","add","subtract","getStepValue","op","tStep","newVal","isUndefined","getMaxOrMinValidateResult","value","warn","specialCode","canInputNumber","_number$match","_number$match2","tmpNumber","tmpMatched","canSetValue","lastNumber","parseFloat","formatUnCompleteNumber","extra","isToFixed","formatThousandths","thousandthsRegExp","useInputNumber","props","_useCommonClassName","useCommonClassName","SIZE","STATUS","_useConfig","useConfig","classPrefix","_useControlled","useControlled","onChange","_useControlled2","tValue","_useState","useState","_useState2","userInput","setUserInput","_useState3","_useState4","isError","setIsError","inputRef","useRef","allowInputOverLimit","onValidate","disabledReduce","disabled","disabledAdd","wrapClasses","classNames","size","_defineProperty","theme","autoWidth","reduceClasses","addClasses","getUserInput","_inputRef$current$cur","_inputRef$current$cur2","inputStr","current","currentElement","contains","call","document","activeElement","format","fixedNumber","useEffect","inputValue","type","e","tmpUserInput","handleStepValue","newValue","overLimit","handleReduce","readonly","handleAdd","onInnerInputChange","handleBlur","ctx","_props$onBlur","onBlur","handleFocus","_","_props$onFocus","onFocus","handleKeydown","_props$onKeydown","keyEvent","ArrowUp","ArrowDown","key","onKeydown","handleKeyup","_props$onKeyup","onKeyup","handleKeypress","_props$onKeypress","onKeypress","handleEnter","_props$onEnter","onEnter","handleClear","_ref2","focus","blur","listeners","onClick","onClear"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useInputNumber.js","sources":["../../../components/utils/input-number/large-number.ts","../../../components/utils/input-number/number.ts","../../../components/input-number/useInputNumber.tsx"],"sourcesContent":["import { isString, isNumber, isObject } from \"lodash-es\";\nimport log from \"../log/log\";\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean; places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join(\"\");\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === \".\") {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === \"-\") {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf(\".\") !== -1) {\n log.error(\"InputNumber\", \"num is not a integer number.\");\n return num;\n }\n if (!num || (num === \"0\" && decimal)) return \"\";\n if (num === \"0\") return num;\n return (decimal ? num.replace(/0+$/, \"\") : num.replace(/^0+/, \"\")) || \"0\";\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift(\"1\");\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join(\"\");\n }\n return newNumber.join(\"\");\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = \"0\", decimalNumber1 = \"0\"] = num1.split(\".\");\n const [intNumber2 = \"0\", decimalNumber2 = \"0\"] = num2.split(\".\");\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === \"0\" && decimalNumber2 === \"0\") return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [removeInvalidZero(largeIntNumberAdd(integerSum, \"1\")), removeInvalidZero(decimalNumberSum.slice(1), true)]\n .filter((v: string) => v)\n .join(\".\");\n }\n return [removeInvalidZero(integerSum), removeInvalidZero(decimalNumberSum, true)].filter((v: string) => v).join(\".\");\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== \"0\" ? num1.replace(/0+$/, \"\") : \"0\";\n const number2 = num2 && num2 !== \"0\" ? num2.replace(/0+$/, \"\") : \"0\";\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split(\"e\");\n if (!num2) return num;\n const [integer, initDecimal = \"\"] = num.split(\".\");\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split(\"e\");\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, \"\") + multipleZero;\n }\n const n1 = integer.replace(/^0+/, \"\") + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join(\".\") : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(num1: string, num2: string): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split(\".\");\n const [integer2, decimal2] = formatENumber(num2).split(\".\");\n const result = compareLargeIntegerNumber(integer1.replace(\"-\", \"\"), integer2.replace(\"-\", \"\"));\n const integer1IsNegative = integer1.includes(\"-\");\n const integer2IsNegative = integer2.includes(\"-\");\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number | string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(num1: string | number, num2: string | number, largeNumber?: boolean) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string,\n num2: string,\n p?: { decimal?: boolean; stayZero?: boolean }\n): string {\n if (num1 === num2) return \"0\";\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join(\"\");\n }\n let finalNumber = newNumber.join(\"\");\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, \"\");\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return \"0\";\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = \"0\"] = maxNumber.split(\".\");\n const [intNumber2, decimalNumber2 = \"0\"] = minNumber.split(\".\");\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === \"0\" && decimalNumber2 === \"0\") {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = \"\";\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === \"0\") {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, \"1\");\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join(\".\") : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === \"-\";\n const isSecondNegative = num2[0] === \"-\";\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === \"-\";\n const isSecondNegative = num2[0] === \"-\";\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split(\".\");\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join(\".\");\n }\n\n return [integer, fillZero(places)].join(\".\");\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true\n): string {\n if (Number.isNaN(Number(number))) return \"\";\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? decimalPlaces.enableRound ?? true : true;\n if (!isString(number)) return String(number);\n\n let [num1, num2] = number.split(\".\");\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return places > 0 && enableRound ? [number, fillZero(places)].join(\".\") : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return enableRound && Number(num2[0]) >= 5 ? largePositiveNumberAdd(num1, \"1\") : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += fillZero(places - num2.length);\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded ? largePositiveNumberAdd(decimalNumber, \"1\") : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (leadZeroNum && needAdded && leadZeroNum + decimalNumber.length >= places) {\n decimalNumber = `${fillZero(places - decimalNumber.length)}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join(\".\");\n}\n","import { isUndefined, isString, isNumber } from \"lodash-es\";\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract\n} from \"./large-number\";\nimport log from \"../log\";\nimport type { InputNumberDecimalPlaces } from \"./large-number\";\n\nexport * from \"./large-number\";\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(num: NumberType, max: NumberType, largeNumber = false): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(num: NumberType, min: NumberType, largeNumber = false): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === \"\") return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split(\".\")[1]?.length || 0;\n const r2 = num2.toString().split(\".\")[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace(\".\", \"\"));\n newNumber2 = Number(num2.toString().replace(\".\", \"\")) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace(\".\", \"\")) * cm;\n newNumber2 = Number(num2.toString().replace(\".\", \"\"));\n }\n } else {\n newNumber1 = Number(num1.toString().replace(\".\", \"\"));\n newNumber2 = Number(num2.toString().replace(\".\", \"\"));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split(\".\")[1]?.length || 0;\n const r2 = num2.toString().split(\".\")[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: \"add\" | \"reduce\";\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error(\"InputNumber\", \"step must be larger than 0.\");\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === \"add\") {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === \"reduce\") {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType = \"exceed-maximum\" | \"below-minimum\" | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn(\"InputNumber\", \"largeNumber value must be a string.\");\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = \"exceed-maximum\";\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = \"below-minimum\";\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = [\"-\", \".\", \"e\", \"E\", \"+\"];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string | undefined | null, largeNumber?: boolean) {\n if ([\"\", null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === \"00\") return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n const tmpMatched = tmpNumber.match(/(\\+|-)/g);\n if (tmpMatched && (!/e(\\+|-)/i.test(tmpNumber) || tmpMatched.length > 1)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && (!/\\de/i.test(number) || /e\\./.test(number))) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if ([\"\", null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, \"\");\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, \"\");\n return number;\n}\n","import React, { useState, useRef, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n formatUnCompleteNumber,\n canSetValue,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n largeNumberToFixed\n} from \"../utils/input-number/number\";\nimport useConfig from \"../hooks/useConfig\";\nimport useControlled from \"../hooks/useControlled\";\nimport useCommonClassName from \"../hooks/useCommonClassName\";\nimport { InputNumberValue, TdInputNumberProps } from \"./type\";\nimport { InputProps } from \"../input\";\n\nexport const specialCode = [\"-\", \".\", \"e\", \"E\"];\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber<T extends InputNumberValue = InputNumberValue>(props: TdInputNumberProps<T>) {\n const { SIZE, STATUS } = useCommonClassName();\n const { classPrefix } = useConfig();\n const [tValue, onChange] = useControlled(props, \"value\", props.onChange);\n const [userInput, setUserInput] = useState(\"\");\n const [isError, setIsError] = useState<\"exceed-maximum\" | \"below-minimum\">();\n\n const inputRef = useRef(null);\n\n const { max, min, largeNumber, decimalPlaces, allowInputOverLimit, onValidate } = props;\n\n const disabledReduce = props.disabled || !canReduceNumber(tValue, props.min, props.largeNumber);\n const disabledAdd = props.disabled || !canAddNumber(tValue, props.max, props.largeNumber);\n\n const wrapClasses = classNames(`${classPrefix}-input-number`, SIZE[props.size], {\n [STATUS.disabled]: props.disabled,\n [`${classPrefix}-is-controls-right`]: props.theme === \"column\",\n [`${classPrefix}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix}-input-number--auto-width`]: props.autoWidth\n });\n\n const reduceClasses = classNames(`${classPrefix}-input-number__decrease`, { [STATUS.disabled]: disabledReduce });\n const addClasses = classNames(`${classPrefix}-input-number__increase`, { [STATUS.disabled]: disabledAdd });\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return \"\";\n let inputStr = value || value === 0 ? String(value) : \"\";\n if (!inputRef.current.currentElement.contains?.(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces,\n largeNumber,\n isToFixed: true\n });\n inputStr = num || num === 0 ? String(num) : \"\";\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n useEffect(() => {\n const inputValue = [undefined, null].includes(tValue) ? \"\" : String(tValue);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput)) {\n if (parseFloat(userInput) !== tValue) {\n setUserInput(getUserInput(inputValue));\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(tValue) &&\n Number(fixedNumber) !== Number(tValue)\n ) {\n onChange(fixedNumber as T, { type: \"props\", e: undefined });\n }\n }\n if (largeNumber) {\n const tmpUserInput = getUserInput(inputValue);\n setUserInput(tmpUserInput);\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== tValue) {\n onChange(tmpUserInput as T, { type: \"props\", e: undefined });\n }\n }\n // eslint-disable-next-line\n }, [tValue]);\n\n useEffect(() => {\n // @ts-ignore\n if ([undefined, \"\", null].includes(tValue)) return;\n const error = getMaxOrMinValidateResult({\n value: tValue as InputNumberValue,\n max,\n min,\n largeNumber\n });\n setIsError(error);\n onValidate?.({ error });\n }, [tValue, max, min, largeNumber, onValidate]);\n\n const handleStepValue = (op: \"add\" | \"reduce\") => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue,\n largeNumber: props.largeNumber\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min\n });\n return {\n overLimit,\n newValue\n };\n };\n\n const handleReduce = (e: any) => {\n if (disabledReduce || props.readonly) return;\n const r = handleStepValue(\"reduce\");\n if (r.overLimit && !allowInputOverLimit) return;\n onChange(r.newValue, { type: \"reduce\", e });\n };\n\n const handleAdd = (e: any) => {\n if (disabledAdd || props.readonly) return;\n const r = handleStepValue(\"add\");\n if (r.overLimit && !allowInputOverLimit) return;\n onChange(r.newValue, { type: \"add\", e });\n };\n\n // 1.2 -> 1. -> 1\n const onInnerInputChange: InputProps[\"onChange\"] = (inputValue, { e }) => {\n // 处理千分位\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, largeNumber)) return;\n\n setUserInput(val);\n\n if (largeNumber) {\n onChange(val as T, { type: \"input\", e: e as any });\n return;\n }\n\n if (canSetValue(String(val), Number(tValue))) {\n const newVal = val === \"\" ? undefined : Number(val);\n onChange(newVal as T, { type: \"input\", e: e as any });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: React.FocusEvent<HTMLDivElement, Element> }) => {\n if (!props.allowInputOverLimit && value !== undefined) {\n const r = getMaxOrMinValidateResult({\n value: tValue,\n largeNumber,\n max,\n min\n });\n if (r === \"below-minimum\") {\n onChange(min as T, { type: \"blur\", e: ctx.e });\n return;\n }\n if (r === \"exceed-maximum\") {\n onChange(max as T, { type: \"blur\", e: ctx.e });\n return;\n }\n }\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces,\n largeNumber\n });\n setUserInput(getUserInput(newValue));\n if (newValue !== tValue) {\n setUserInput(tValue as string);\n onChange(newValue as T, { type: \"blur\", e: ctx.e });\n }\n props.onBlur?.(newValue, ctx);\n };\n\n const handleFocus = (_: string, ctx: { e: React.FocusEvent<HTMLDivElement, Element> }) => {\n setUserInput(tValue as string);\n props.onFocus?.(tValue as string, ctx);\n };\n\n const handleKeydown = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\n const { e } = ctx;\n const keyEvent = {\n ArrowUp: handleAdd,\n ArrowDown: handleReduce\n };\n\n if (keyEvent[e.key] !== undefined) {\n keyEvent[e.key](e);\n }\n props.onKeydown?.(value, ctx);\n };\n\n const handleKeyup = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\n props.onKeyup?.(value, ctx);\n };\n\n const handleKeypress = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\n props.onKeypress?.(value, ctx);\n };\n\n const handleEnter = (value: string, ctx: { e: React.KeyboardEvent<HTMLDivElement> }) => {\n setUserInput(getUserInput(value));\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber\n });\n if (newValue !== value && String(newValue) !== value) {\n onChange(newValue as T, { type: \"enter\", e: ctx.e });\n }\n props.onEnter?.(newValue, ctx);\n };\n\n const handleClear: InputProps[\"onClear\"] = ({ e }) => {\n onChange(undefined, { type: \"clear\", e });\n setUserInput(\"\");\n };\n\n const focus = () => {\n inputRef.current.focus();\n };\n\n const blur = () => {\n inputRef.current.blur();\n };\n\n const listeners = {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n onKeyup: handleKeyup,\n onKeypress: handleKeypress,\n onEnter: handleEnter,\n onClick: focus,\n onClear: handleClear\n };\n\n return {\n classPrefix,\n wrapClasses,\n reduceClasses,\n addClasses,\n inputRef,\n listeners,\n isError,\n setIsError,\n userInput,\n setUserInput,\n tValue,\n focus,\n blur,\n onChange,\n handleReduce,\n handleAdd,\n onInnerInputChange\n };\n}\n"],"names":["fillZero","length","Array","fill","join","isInputNumber","num","isNumber","Number","isNaN","r","test","eCount","negativeCount","dotCount","i","len","removeInvalidZero","decimal","arguments","undefined","indexOf","log","error","replace","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","step","diff","minIndex","count","unshift","String","concat","slice","largePositiveNumberAdd","_num1$split","split","_num1$split2","_slicedToArray","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","filter","v","compareLargeIntegerNumber","compareLargeDecimalNumber","maxLength","Math","max","formatENumber","_num$split","_num$split2","_num$split3","_num$split4","integer","_num$split4$","initDecimal","zeroCount","_initDecimal$split","_initDecimal$split2","multipleZero","n1","d2","compareLargeNumber","_formatENumber$split","_formatENumber$split2","integer1","decimal1","_formatENumber$split3","_formatENumber$split4","integer2","decimal2","result","integer1IsNegative","includes","integer2IsNegative","isInfinity","Infinity","isSafeNumber","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","compareNumber","largeNumber","isSafeNumberCompare","isInfinityCompare","largeIntegerNumberSubtract","p","_ref","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split","_maxNumber$split2","_maxNumber$split2$","_minNumber$split","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","largeNumberSubtract","isFirstNegative","isSecondNegative","largeNumberAdd","formatDecimal","places","enableRound","toFixed","_num$toString$split","toString","_num$toString$split2","decimalPlacesToFixedNum","decimalPlaces","isObject","_decimalPlaces$enable","largeNumberToFixed","number","_decimalPlaces$enable2","isString","_number$split","_number$split2","_decimalNumber$match","leadZeroNum","match","leadNineNum","needAdded","canAddNumber","canReduceNumber","min","putInRangeNumber","val","params","lastValue","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","abs","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","n","add","subtract","getStepValue","op","tStep","newVal","isUndefined","getMaxOrMinValidateResult","value","warn","specialCode","canInputNumber","_number$match","_number$match2","tmpNumber","tmpMatched","canSetValue","lastNumber","parseFloat","formatUnCompleteNumber","extra","isToFixed","formatThousandths","thousandthsRegExp","useInputNumber","props","_useCommonClassName","useCommonClassName","SIZE","STATUS","_useConfig","useConfig","classPrefix","_useControlled","useControlled","onChange","_useControlled2","tValue","_useState","useState","_useState2","userInput","setUserInput","_useState3","_useState4","isError","setIsError","inputRef","useRef","allowInputOverLimit","onValidate","disabledReduce","disabled","disabledAdd","wrapClasses","classNames","size","_defineProperty","theme","autoWidth","reduceClasses","addClasses","getUserInput","_inputRef$current$cur","_inputRef$current$cur2","inputStr","current","currentElement","contains","call","document","activeElement","format","fixedNumber","useEffect","inputValue","type","e","tmpUserInput","handleStepValue","newValue","overLimit","handleReduce","readonly","handleAdd","onInnerInputChange","handleBlur","ctx","_props$onBlur","onBlur","handleFocus","_","_props$onFocus","onFocus","handleKeydown","_props$onKeydown","keyEvent","ArrowUp","ArrowDown","key","onKeydown","handleKeyup","_props$onKeyup","onKeyup","handleKeypress","_props$onKeypress","onKeypress","handleEnter","_props$onEnter","onEnter","handleClear","_ref2","focus","blur","listeners","onClick","onClear"],"mappings":"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"}
|
|
@@ -21,8 +21,7 @@
|
|
|
21
21
|
.t-ip-input {
|
|
22
22
|
font: var(--td-font-body-medium);
|
|
23
23
|
color: var(--td-text-color-primary);
|
|
24
|
-
|
|
25
|
-
box-sizing: border-box;
|
|
24
|
+
box-sizing: border-box;
|
|
26
25
|
margin: 0;
|
|
27
26
|
padding: 0;
|
|
28
27
|
list-style: none;
|
|
@@ -32,25 +31,16 @@
|
|
|
32
31
|
box-sizing: border-box;
|
|
33
32
|
}
|
|
34
33
|
.t-ip-input__wrapper {
|
|
35
|
-
display: -webkit-inline-box;
|
|
36
|
-
display: -ms-inline-flexbox;
|
|
37
34
|
display: inline-flex;
|
|
38
|
-
-
|
|
39
|
-
-ms-flex-align: center;
|
|
40
|
-
align-items: center;
|
|
35
|
+
align-items: center;
|
|
41
36
|
width: auto;
|
|
42
|
-
min-width: -webkit-fit-content;
|
|
43
37
|
min-width: -moz-fit-content;
|
|
44
38
|
min-width: fit-content;
|
|
45
39
|
position: relative;
|
|
46
40
|
}
|
|
47
41
|
.t-ip-input__segments {
|
|
48
|
-
display: -webkit-inline-box;
|
|
49
|
-
display: -ms-inline-flexbox;
|
|
50
42
|
display: inline-flex;
|
|
51
|
-
-
|
|
52
|
-
-ms-flex-align: center;
|
|
53
|
-
align-items: center;
|
|
43
|
+
align-items: center;
|
|
54
44
|
gap: 0;
|
|
55
45
|
}
|
|
56
46
|
.t-ip-input__segment {
|
|
@@ -66,26 +56,20 @@
|
|
|
66
56
|
font: var(--td-font-body-medium);
|
|
67
57
|
text-align: center;
|
|
68
58
|
outline: none;
|
|
69
|
-
|
|
70
|
-
box-sizing: border-box;
|
|
71
|
-
-webkit-transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
72
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
59
|
+
box-sizing: border-box;
|
|
73
60
|
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
74
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
75
61
|
margin: 0;
|
|
76
62
|
}
|
|
77
63
|
.t-ip-input__segment:focus {
|
|
78
64
|
border-color: var(--td-brand-color);
|
|
79
|
-
|
|
80
|
-
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
65
|
+
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
81
66
|
z-index: 1;
|
|
82
67
|
position: relative;
|
|
83
68
|
outline: none;
|
|
84
69
|
}
|
|
85
70
|
.t-ip-input__segment--focused {
|
|
86
71
|
border-color: var(--td-brand-color);
|
|
87
|
-
|
|
88
|
-
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
72
|
+
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
89
73
|
z-index: 1;
|
|
90
74
|
position: relative;
|
|
91
75
|
}
|
|
@@ -94,23 +78,15 @@
|
|
|
94
78
|
}
|
|
95
79
|
.t-ip-input__segment--error:focus {
|
|
96
80
|
border-color: var(--td-error-color) !important;
|
|
97
|
-
|
|
98
|
-
box-shadow: 0 0 0 1px var(--td-error-color) !important;
|
|
81
|
+
box-shadow: 0 0 0 1px var(--td-error-color) !important;
|
|
99
82
|
}
|
|
100
83
|
.t-ip-input__segment--error.t-ip-input__segment--focused {
|
|
101
84
|
border-color: var(--td-error-color) !important;
|
|
102
|
-
|
|
103
|
-
box-shadow: 0 0 0 1px var(--td-error-color) !important;
|
|
104
|
-
}
|
|
105
|
-
.t-ip-input__segment::-webkit-input-placeholder {
|
|
106
|
-
color: var(--td-text-color-placeholder);
|
|
85
|
+
box-shadow: 0 0 0 1px var(--td-error-color) !important;
|
|
107
86
|
}
|
|
108
87
|
.t-ip-input__segment::-moz-placeholder {
|
|
109
88
|
color: var(--td-text-color-placeholder);
|
|
110
89
|
}
|
|
111
|
-
.t-ip-input__segment::-ms-input-placeholder {
|
|
112
|
-
color: var(--td-text-color-placeholder);
|
|
113
|
-
}
|
|
114
90
|
.t-ip-input__segment::placeholder {
|
|
115
91
|
color: var(--td-text-color-placeholder);
|
|
116
92
|
}
|
|
@@ -132,20 +108,12 @@
|
|
|
132
108
|
font-weight: 500;
|
|
133
109
|
-webkit-user-select: none;
|
|
134
110
|
-moz-user-select: none;
|
|
135
|
-
-ms-user-select: none;
|
|
136
111
|
user-select: none;
|
|
137
|
-
|
|
138
|
-
flex-shrink: 0;
|
|
112
|
+
flex-shrink: 0;
|
|
139
113
|
line-height: var(--td-comp-size-m);
|
|
140
|
-
display: -webkit-inline-box;
|
|
141
|
-
display: -ms-inline-flexbox;
|
|
142
114
|
display: inline-flex;
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
align-items: center;
|
|
146
|
-
-webkit-box-pack: center;
|
|
147
|
-
-ms-flex-pack: center;
|
|
148
|
-
justify-content: center;
|
|
115
|
+
align-items: center;
|
|
116
|
+
justify-content: center;
|
|
149
117
|
}
|
|
150
118
|
.t-ip-input__cidr {
|
|
151
119
|
width: 50px;
|
|
@@ -160,18 +128,13 @@
|
|
|
160
128
|
font: var(--td-font-body-medium);
|
|
161
129
|
text-align: center;
|
|
162
130
|
outline: none;
|
|
163
|
-
|
|
164
|
-
box-sizing: border-box;
|
|
165
|
-
-webkit-transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
166
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
131
|
+
box-sizing: border-box;
|
|
167
132
|
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
168
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
169
133
|
margin-left: 8px;
|
|
170
134
|
}
|
|
171
135
|
.t-ip-input__cidr:focus {
|
|
172
136
|
border-color: var(--td-brand-color);
|
|
173
|
-
|
|
174
|
-
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
137
|
+
box-shadow: 0 0 0 1px var(--td-brand-color);
|
|
175
138
|
z-index: 1;
|
|
176
139
|
position: relative;
|
|
177
140
|
outline: none;
|
|
@@ -181,18 +144,11 @@
|
|
|
181
144
|
}
|
|
182
145
|
.t-ip-input__cidr--error:focus {
|
|
183
146
|
border-color: var(--td-error-color);
|
|
184
|
-
|
|
185
|
-
box-shadow: 0 0 0 1px var(--td-error-color);
|
|
186
|
-
}
|
|
187
|
-
.t-ip-input__cidr::-webkit-input-placeholder {
|
|
188
|
-
color: var(--td-text-color-placeholder);
|
|
147
|
+
box-shadow: 0 0 0 1px var(--td-error-color);
|
|
189
148
|
}
|
|
190
149
|
.t-ip-input__cidr::-moz-placeholder {
|
|
191
150
|
color: var(--td-text-color-placeholder);
|
|
192
151
|
}
|
|
193
|
-
.t-ip-input__cidr::-ms-input-placeholder {
|
|
194
|
-
color: var(--td-text-color-placeholder);
|
|
195
|
-
}
|
|
196
152
|
.t-ip-input__cidr::placeholder {
|
|
197
153
|
color: var(--td-text-color-placeholder);
|
|
198
154
|
}
|
|
@@ -207,21 +163,13 @@
|
|
|
207
163
|
cursor: pointer;
|
|
208
164
|
}
|
|
209
165
|
.t-ip-input__ipv6-wrapper {
|
|
210
|
-
display: -webkit-inline-box;
|
|
211
|
-
display: -ms-inline-flexbox;
|
|
212
166
|
display: inline-flex;
|
|
213
|
-
-
|
|
214
|
-
|
|
215
|
-
align-items: center;
|
|
216
|
-
-webkit-box-flex: 1;
|
|
217
|
-
-ms-flex: 1;
|
|
218
|
-
flex: 1;
|
|
167
|
+
align-items: center;
|
|
168
|
+
flex: 1;
|
|
219
169
|
gap: 0;
|
|
220
170
|
}
|
|
221
171
|
.t-ip-input__ipv6 {
|
|
222
|
-
|
|
223
|
-
-ms-flex: 1;
|
|
224
|
-
flex: 1;
|
|
172
|
+
flex: 1;
|
|
225
173
|
min-width: 0;
|
|
226
174
|
height: var(--td-comp-size-m);
|
|
227
175
|
padding: 0 var(--td-comp-paddingLR-s);
|
|
@@ -231,17 +179,12 @@
|
|
|
231
179
|
color: var(--td-text-color-primary);
|
|
232
180
|
font: var(--td-font-body-medium);
|
|
233
181
|
outline: none;
|
|
234
|
-
|
|
235
|
-
box-sizing: border-box;
|
|
236
|
-
-webkit-transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
237
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
182
|
+
box-sizing: border-box;
|
|
238
183
|
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
239
|
-
transition: border cubic-bezier(0.38, 0, 0.24, 1) 0.2s, box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s, background-color cubic-bezier(0.38, 0, 0.24, 1) 0.2s, -webkit-box-shadow cubic-bezier(0.38, 0, 0.24, 1) 0.2s;
|
|
240
184
|
}
|
|
241
185
|
.t-ip-input__ipv6:focus {
|
|
242
186
|
border-color: var(--td-brand-color);
|
|
243
|
-
|
|
244
|
-
box-shadow: 0 0 0 2px var(--td-brand-color-focus);
|
|
187
|
+
box-shadow: 0 0 0 2px var(--td-brand-color-focus);
|
|
245
188
|
z-index: 1;
|
|
246
189
|
position: relative;
|
|
247
190
|
}
|
|
@@ -250,18 +193,11 @@
|
|
|
250
193
|
}
|
|
251
194
|
.t-ip-input__ipv6--error:focus {
|
|
252
195
|
border-color: var(--td-error-color);
|
|
253
|
-
|
|
254
|
-
box-shadow: 0 0 0 2px var(--td-error-color-focus);
|
|
255
|
-
}
|
|
256
|
-
.t-ip-input__ipv6::-webkit-input-placeholder {
|
|
257
|
-
color: var(--td-text-color-placeholder);
|
|
196
|
+
box-shadow: 0 0 0 2px var(--td-error-color-focus);
|
|
258
197
|
}
|
|
259
198
|
.t-ip-input__ipv6::-moz-placeholder {
|
|
260
199
|
color: var(--td-text-color-placeholder);
|
|
261
200
|
}
|
|
262
|
-
.t-ip-input__ipv6::-ms-input-placeholder {
|
|
263
|
-
color: var(--td-text-color-placeholder);
|
|
264
|
-
}
|
|
265
201
|
.t-ip-input__ipv6::placeholder {
|
|
266
202
|
color: var(--td-text-color-placeholder);
|
|
267
203
|
}
|
|
@@ -279,11 +215,9 @@
|
|
|
279
215
|
position: absolute;
|
|
280
216
|
right: var(--td-comp-paddingLR-s);
|
|
281
217
|
top: 50%;
|
|
282
|
-
|
|
283
|
-
transform: translateY(-50%);
|
|
218
|
+
transform: translateY(-50%);
|
|
284
219
|
cursor: pointer;
|
|
285
220
|
color: var(--td-text-color-placeholder);
|
|
286
|
-
-webkit-transition: all 0.2s linear;
|
|
287
221
|
transition: all 0.2s linear;
|
|
288
222
|
z-index: 2;
|
|
289
223
|
}
|