@tendaui/react 1.1.1 → 1.1.2

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.
Files changed (664) hide show
  1. package/es/_chunks/{dep-D7LanWes.js → dep-4LYjB3c6.js} +3 -18
  2. package/es/_chunks/dep-4LYjB3c6.js.map +1 -0
  3. package/es/_chunks/dep-5U9UjDaf.js +345 -0
  4. package/es/_chunks/dep-5U9UjDaf.js.map +1 -0
  5. package/es/_chunks/{dep-B7HmDtze.js → dep-B4_O1Vgv.js} +2 -2
  6. package/es/_chunks/{dep-B7HmDtze.js.map → dep-B4_O1Vgv.js.map} +1 -1
  7. package/es/_chunks/dep-BP0-apUT.js.map +1 -1
  8. package/es/_chunks/dep-BRbJGDI9.js +7 -0
  9. package/es/_chunks/dep-BRbJGDI9.js.map +1 -0
  10. package/es/_chunks/{dep-EcrDKDlu.js → dep-BYlJzn45.js} +10 -9
  11. package/es/_chunks/dep-BYlJzn45.js.map +1 -0
  12. package/es/_chunks/dep-BbeHB7S3.js +116 -0
  13. package/es/_chunks/dep-BbeHB7S3.js.map +1 -0
  14. package/es/_chunks/{dep-DB5wmwh1.js → dep-Bjfn7Zv_.js} +2 -2
  15. package/es/_chunks/{dep-DB5wmwh1.js.map → dep-Bjfn7Zv_.js.map} +1 -1
  16. package/es/_chunks/{dep-C36au4Ip.js → dep-BuIAffJt.js} +2 -2
  17. package/es/_chunks/{dep-C36au4Ip.js.map → dep-BuIAffJt.js.map} +1 -1
  18. package/es/_chunks/{dep-bWaVq_y3.js → dep-ByzdZjUR.js} +2 -2
  19. package/es/_chunks/dep-ByzdZjUR.js.map +1 -0
  20. package/es/_chunks/dep-CD_4-1Xb.js +103 -0
  21. package/es/_chunks/dep-CD_4-1Xb.js.map +1 -0
  22. package/es/_chunks/{dep-Dk2xX8lh.js → dep-CJCt0IS0.js} +5 -212
  23. package/es/_chunks/dep-CJCt0IS0.js.map +1 -0
  24. package/es/_chunks/dep-CMPsNAXF.js +52 -0
  25. package/es/_chunks/dep-CMPsNAXF.js.map +1 -0
  26. package/es/_chunks/dep-COy5g3FT.js +512 -0
  27. package/es/_chunks/dep-COy5g3FT.js.map +1 -0
  28. package/es/_chunks/{dep-CoIiHOgo.js → dep-CRURwzDj.js} +3 -3
  29. package/es/_chunks/{dep-CoIiHOgo.js.map → dep-CRURwzDj.js.map} +1 -1
  30. package/es/_chunks/dep-C_wPqvpm.js +36 -0
  31. package/es/_chunks/dep-C_wPqvpm.js.map +1 -0
  32. package/es/_chunks/dep-Ccktr_jk.js +33 -0
  33. package/es/_chunks/dep-Ccktr_jk.js.map +1 -0
  34. package/es/_chunks/dep-Chz4ZJCb.js +20 -0
  35. package/es/_chunks/dep-Chz4ZJCb.js.map +1 -0
  36. package/es/_chunks/dep-CkmtEv0Y.js +55 -0
  37. package/es/_chunks/dep-CkmtEv0Y.js.map +1 -0
  38. package/es/_chunks/dep-DJmE940f.js +764 -0
  39. package/es/_chunks/dep-DJmE940f.js.map +1 -0
  40. package/es/_chunks/{dep-DHWwZ2Nj.js → dep-DQ6kXoi8.js} +2 -2
  41. package/es/_chunks/{dep-DHWwZ2Nj.js.map → dep-DQ6kXoi8.js.map} +1 -1
  42. package/es/_chunks/{dep-0QH2Ee4R.js → dep-DRwijJcv.js} +5 -5
  43. package/es/_chunks/dep-DRwijJcv.js.map +1 -0
  44. package/es/_chunks/dep-DTlQ2dCA.js +46 -0
  45. package/es/_chunks/dep-DTlQ2dCA.js.map +1 -0
  46. package/es/_chunks/dep-DURB9x8g.js +170 -0
  47. package/es/_chunks/dep-DURB9x8g.js.map +1 -0
  48. package/es/_chunks/{dep-DZ_0EvBk.js → dep-DX65P8M9.js} +4 -45
  49. package/es/_chunks/dep-DX65P8M9.js.map +1 -0
  50. package/es/_chunks/{dep-BH5n5r1M.js → dep-DbVHGoUC.js} +2 -2
  51. package/es/_chunks/dep-DbVHGoUC.js.map +1 -0
  52. package/es/_chunks/dep-Dlppf0JU.js +214 -0
  53. package/es/_chunks/dep-Dlppf0JU.js.map +1 -0
  54. package/es/_chunks/dep-Dr5wkz0z.js +266 -0
  55. package/es/_chunks/dep-Dr5wkz0z.js.map +1 -0
  56. package/es/_chunks/dep-DwWrhxkd.js.map +1 -1
  57. package/es/_chunks/dep-Tshfumgl.js +31 -0
  58. package/es/_chunks/dep-Tshfumgl.js.map +1 -0
  59. package/es/_chunks/{dep-u1x3x6MJ.js → dep-gy8uvBaS.js} +2 -2
  60. package/es/_chunks/{dep-u1x3x6MJ.js.map → dep-gy8uvBaS.js.map} +1 -1
  61. package/es/_chunks/dep-oUgTcXgm.js +11 -0
  62. package/es/_chunks/dep-oUgTcXgm.js.map +1 -0
  63. package/es/_chunks/dep-zOZQ0R9g.js +1181 -0
  64. package/es/_chunks/dep-zOZQ0R9g.js.map +1 -0
  65. package/es/alert/Alert.d.ts +7 -0
  66. package/es/alert/Alert.js +4 -3
  67. package/es/alert/Alert.js.map +1 -1
  68. package/es/alert/defaultProps.d.ts +2 -0
  69. package/es/alert/index.d.ts +5 -0
  70. package/es/alert/index.js +4 -3
  71. package/es/alert/index.js.map +1 -1
  72. package/es/alert/style/css.d.ts +1 -0
  73. package/es/alert/style/index.d.ts +1 -0
  74. package/es/alert/type.d.ts +45 -0
  75. package/es/badge/Badge.d.ts +7 -0
  76. package/es/badge/Badge.js +3 -2
  77. package/es/badge/Badge.js.map +1 -1
  78. package/es/badge/defaultProps.d.ts +2 -0
  79. package/es/badge/index.d.ts +5 -0
  80. package/es/badge/index.js +3 -2
  81. package/es/badge/index.js.map +1 -1
  82. package/es/badge/style/css.d.ts +1 -0
  83. package/es/badge/style/index.d.ts +1 -0
  84. package/es/badge/type.d.ts +50 -0
  85. package/es/button/Button.d.ts +6 -0
  86. package/es/button/Button.js +7 -5
  87. package/es/button/Button.js.map +1 -1
  88. package/es/button/_example/base.js +171 -0
  89. package/es/button/_example/base.js.map +1 -0
  90. package/es/button/_example/icon.js +181 -0
  91. package/es/button/_example/icon.js.map +1 -0
  92. package/es/button/defaultProps.d.ts +2 -0
  93. package/es/button/index.d.ts +5 -0
  94. package/es/button/index.js +7 -5
  95. package/es/button/index.js.map +1 -1
  96. package/es/button/style/css.d.ts +1 -0
  97. package/es/button/style/index.d.ts +1 -0
  98. package/es/button/type.d.ts +81 -0
  99. package/es/checkbox/Checkbox.d.ts +10 -0
  100. package/es/checkbox/Checkbox.js +5 -4
  101. package/es/checkbox/Checkbox.js.map +1 -1
  102. package/es/checkbox/CheckboxGroup.d.ts +14 -0
  103. package/es/checkbox/CheckboxGroup.js +5 -4
  104. package/es/checkbox/CheckboxGroup.js.map +1 -1
  105. package/es/checkbox/defaultProps.d.ts +3 -0
  106. package/es/checkbox/index.d.ts +11 -0
  107. package/es/checkbox/index.js +5 -4
  108. package/es/checkbox/index.js.map +1 -1
  109. package/es/checkbox/style/css.d.ts +1 -0
  110. package/es/checkbox/style/index.d.ts +1 -0
  111. package/es/checkbox/type.d.ts +115 -0
  112. package/es/color-picker/ColorPickPanel.d.ts +4 -0
  113. package/es/color-picker/ColorPickPanel.js +44 -0
  114. package/es/color-picker/ColorPickPanel.js.map +1 -0
  115. package/es/color-picker/ColorPicker.d.ts +4 -0
  116. package/es/color-picker/ColorPicker.js +118 -0
  117. package/es/color-picker/ColorPicker.js.map +1 -0
  118. package/es/color-picker/components/panel/alpha.d.ts +4 -0
  119. package/es/color-picker/components/panel/alpha.js +44 -0
  120. package/es/color-picker/components/panel/alpha.js.map +1 -0
  121. package/es/color-picker/components/panel/format/index.d.ts +10 -0
  122. package/es/color-picker/components/panel/format/index.js +128 -0
  123. package/es/color-picker/components/panel/format/index.js.map +1 -0
  124. package/es/color-picker/components/panel/format/inputs.d.ts +4 -0
  125. package/es/color-picker/components/panel/format/inputs.js +147 -0
  126. package/es/color-picker/components/panel/format/inputs.js.map +1 -0
  127. package/es/color-picker/components/panel/header.d.ts +13 -0
  128. package/es/color-picker/components/panel/header.js +60 -0
  129. package/es/color-picker/components/panel/header.js.map +1 -0
  130. package/es/color-picker/components/panel/hue.d.ts +4 -0
  131. package/es/color-picker/components/panel/hue.js +33 -0
  132. package/es/color-picker/components/panel/hue.js.map +1 -0
  133. package/es/color-picker/components/panel/index.d.ts +4 -0
  134. package/es/color-picker/components/panel/index.js +32 -0
  135. package/es/color-picker/components/panel/index.js.map +1 -0
  136. package/es/color-picker/components/panel/saturation.d.ts +4 -0
  137. package/es/color-picker/components/panel/saturation.js +101 -0
  138. package/es/color-picker/components/panel/saturation.js.map +1 -0
  139. package/es/color-picker/components/panel/slider.d.ts +11 -0
  140. package/es/color-picker/components/panel/slider.js +121 -0
  141. package/es/color-picker/components/panel/slider.js.map +1 -0
  142. package/es/color-picker/components/panel/swatches.d.ts +11 -0
  143. package/es/color-picker/components/panel/swatches.js +100 -0
  144. package/es/color-picker/components/panel/swatches.js.map +1 -0
  145. package/es/color-picker/components/trigger.d.ts +9 -0
  146. package/es/color-picker/components/trigger.js +73 -0
  147. package/es/color-picker/components/trigger.js.map +1 -0
  148. package/es/color-picker/defaultProps.d.ts +2 -0
  149. package/es/color-picker/helpers.d.ts +5 -0
  150. package/es/color-picker/hooks/useClassNames.d.ts +2 -0
  151. package/es/color-picker/hooks/useStyles.d.ts +14 -0
  152. package/es/color-picker/index.d.ts +6 -0
  153. package/es/color-picker/index.js +62 -0
  154. package/es/color-picker/index.js.map +1 -0
  155. package/es/color-picker/style/index.css +597 -0
  156. package/es/color-picker/style/index.d.ts +1 -0
  157. package/es/color-picker/style/index.js +2 -0
  158. package/es/color-picker/style/index.js.map +1 -0
  159. package/es/color-picker/type.d.ts +135 -0
  160. package/es/color-picker/utils/color-picker/cmyk.d.ts +27 -0
  161. package/es/color-picker/utils/color-picker/color.d.ts +144 -0
  162. package/es/color-picker/utils/color-picker/constants.d.ts +30 -0
  163. package/es/color-picker/utils/color-picker/draggable.d.ts +23 -0
  164. package/es/color-picker/utils/color-picker/format.d.ts +64 -0
  165. package/es/color-picker/utils/color-picker/gradient.d.ts +22 -0
  166. package/es/color-picker/utils/color-picker/index.d.ts +7 -0
  167. package/es/color-picker/utils/color-picker/index.js +147 -0
  168. package/es/color-picker/utils/color-picker/index.js.map +1 -0
  169. package/es/color-picker/utils/color-picker/types.d.ts +28 -0
  170. package/es/common/Check.d.ts +22 -0
  171. package/es/common/Check.js +4 -3
  172. package/es/common/Check.js.map +1 -1
  173. package/es/common/FakeArrow.d.ts +9 -0
  174. package/es/common/FakeArrow.js +3 -2
  175. package/es/common/FakeArrow.js.map +1 -1
  176. package/es/common/PluginContainer.d.ts +9 -0
  177. package/es/common/PluginContainer.js +2 -1
  178. package/es/common/PluginContainer.js.map +1 -1
  179. package/es/common/Portal.d.ts +16 -0
  180. package/es/common/Portal.js +6 -3
  181. package/es/common/Portal.js.map +1 -1
  182. package/es/common/observe.d.ts +1 -0
  183. package/es/common.d.ts +81 -0
  184. package/es/config-provider/ConfigContext.d.ts +13 -0
  185. package/es/config-provider/ConfigContext.js +5 -16
  186. package/es/config-provider/ConfigContext.js.map +1 -1
  187. package/es/config-provider/ConfigProvider.d.ts +25 -0
  188. package/es/config-provider/ConfigProvider.js +2 -1
  189. package/es/config-provider/ConfigProvider.js.map +1 -1
  190. package/es/config-provider/index.d.ts +7 -0
  191. package/es/config-provider/index.js +2 -1
  192. package/es/config-provider/index.js.map +1 -1
  193. package/es/config-provider/type.d.ts +1029 -0
  194. package/es/dialog/Dialog.d.ts +8 -0
  195. package/es/dialog/Dialog.js +12 -149
  196. package/es/dialog/Dialog.js.map +1 -1
  197. package/es/dialog/DialogCard.d.ts +8 -0
  198. package/es/dialog/DialogCard.js +9 -7
  199. package/es/dialog/DialogCard.js.map +1 -1
  200. package/es/dialog/defaultProps.d.ts +6 -0
  201. package/es/dialog/hooks/useDialogDrag.d.ts +7 -0
  202. package/es/dialog/hooks/useDialogEsc.d.ts +3 -0
  203. package/es/dialog/hooks/useDialogPosition.d.ts +2 -0
  204. package/es/dialog/hooks/useLockStyle.d.ts +2 -0
  205. package/es/dialog/index.d.ts +8 -0
  206. package/es/dialog/index.js +12 -8
  207. package/es/dialog/index.js.map +1 -1
  208. package/es/dialog/plugin.d.ts +6 -0
  209. package/es/dialog/plugin.js +15 -10
  210. package/es/dialog/plugin.js.map +1 -1
  211. package/es/dialog/style/css.d.ts +1 -0
  212. package/es/dialog/style/index.d.ts +1 -0
  213. package/es/dialog/type.d.ts +227 -0
  214. package/es/dialog/utils.d.ts +1 -0
  215. package/es/drawer/Drawer.d.ts +11 -0
  216. package/es/drawer/Drawer.js +458 -0
  217. package/es/drawer/Drawer.js.map +1 -0
  218. package/es/drawer/defaultProps.d.ts +2 -0
  219. package/es/drawer/hooks/useDrag.d.ts +8 -0
  220. package/es/drawer/hooks/useLockStyle.d.ts +1 -0
  221. package/es/drawer/index.d.ts +4 -0
  222. package/es/drawer/index.js +39 -0
  223. package/es/drawer/index.js.map +1 -0
  224. package/es/drawer/style/css.d.ts +1 -0
  225. package/es/drawer/style/css.js +1 -0
  226. package/es/drawer/style/index.css +231 -0
  227. package/es/drawer/style/index.d.ts +1 -0
  228. package/es/drawer/style/index.js +2 -0
  229. package/es/drawer/style/index.js.map +1 -0
  230. package/es/drawer/type.d.ts +199 -0
  231. package/es/drawer/utils/index.d.ts +23 -0
  232. package/es/drawer/utils/index.js +46 -0
  233. package/es/drawer/utils/index.js.map +1 -0
  234. package/es/fireworks/Fireworks.d.ts +7 -0
  235. package/es/fireworks/Fireworks.js +139 -0
  236. package/es/fireworks/Fireworks.js.map +1 -0
  237. package/es/fireworks/index.d.ts +5 -0
  238. package/es/fireworks/index.js +16 -0
  239. package/es/fireworks/index.js.map +1 -0
  240. package/es/fireworks/style/css.d.ts +1 -0
  241. package/es/fireworks/style/css.js +2 -0
  242. package/es/fireworks/style/index.css +121 -0
  243. package/es/fireworks/style/index.d.ts +1 -0
  244. package/es/fireworks/style/index.js +2 -0
  245. package/es/fireworks/style/index.js.map +1 -0
  246. package/es/fireworks/type.d.ts +69 -0
  247. package/es/form/Form.d.ts +8 -0
  248. package/es/form/Form.js +14 -10
  249. package/es/form/Form.js.map +1 -1
  250. package/es/form/FormContext.d.ts +59 -0
  251. package/es/form/FormItem.d.ts +23 -0
  252. package/es/form/FormItem.js +14 -10
  253. package/es/form/FormItem.js.map +1 -1
  254. package/es/form/FormList.d.ts +4 -0
  255. package/es/form/FormList.js +2 -1
  256. package/es/form/FormList.js.map +1 -1
  257. package/es/form/const.d.ts +6 -0
  258. package/es/form/defaultProps.d.ts +3 -0
  259. package/es/form/easing.d.ts +2 -0
  260. package/es/form/formModel.d.ts +37 -0
  261. package/es/form/hooks/interface.d.ts +16 -0
  262. package/es/form/hooks/useForm.d.ts +3 -0
  263. package/es/form/hooks/useFormItemInitialData.d.ts +9 -0
  264. package/es/form/hooks/useFormItemStyle.d.ts +10 -0
  265. package/es/form/hooks/useFormItemStyle.js +4 -3
  266. package/es/form/hooks/useFormItemStyle.js.map +1 -1
  267. package/es/form/hooks/useInstance.d.ts +16 -0
  268. package/es/form/hooks/useInstance.js +5 -4
  269. package/es/form/hooks/useInstance.js.map +1 -1
  270. package/es/form/hooks/useWatch.d.ts +3 -0
  271. package/es/form/index.d.ts +7 -0
  272. package/es/form/index.js +14 -10
  273. package/es/form/index.js.map +1 -1
  274. package/es/form/scroll.d.ts +39 -0
  275. package/es/form/style/css.d.ts +1 -0
  276. package/es/form/style/index.d.ts +1 -0
  277. package/es/form/type.d.ts +486 -0
  278. package/es/form/utils/index.d.ts +5 -0
  279. package/es/global-config/default-config.d.ts +84 -0
  280. package/es/global-config/locale/ar_KW.d.ts +239 -0
  281. package/es/global-config/locale/en_US.d.ts +263 -0
  282. package/es/global-config/locale/it_IT.d.ts +263 -0
  283. package/es/global-config/locale/ja_JP.d.ts +263 -0
  284. package/es/global-config/locale/ko_KR.d.ts +263 -0
  285. package/es/global-config/locale/ru_RU.d.ts +263 -0
  286. package/es/global-config/locale/zh_CN.d.ts +263 -0
  287. package/es/global-config/locale/zh_TW.d.ts +263 -0
  288. package/es/global-config/mobile/default-config.d.ts +7 -0
  289. package/es/global-config/mobile/locale/ar_KW.d.ts +98 -0
  290. package/es/global-config/mobile/locale/en_US.d.ts +99 -0
  291. package/es/global-config/mobile/locale/it_IT.d.ts +99 -0
  292. package/es/global-config/mobile/locale/ja_JP.d.ts +99 -0
  293. package/es/global-config/mobile/locale/ko_KR.d.ts +99 -0
  294. package/es/global-config/mobile/locale/ru_RU.d.ts +99 -0
  295. package/es/global-config/mobile/locale/zh_CN.d.ts +99 -0
  296. package/es/global-config/mobile/locale/zh_TW.d.ts +99 -0
  297. package/es/global-config/t.d.ts +25 -0
  298. package/es/hooks/useAttach.d.ts +10 -0
  299. package/es/hooks/useCommonClassName.d.ts +54 -0
  300. package/es/hooks/useConfig.d.ts +2 -0
  301. package/es/hooks/useControlled.d.ts +9 -0
  302. package/es/hooks/useDeepEffect.d.ts +7 -0
  303. package/es/hooks/useDefaultProps.d.ts +1 -0
  304. package/es/hooks/useDomCallback.d.ts +1 -0
  305. package/es/hooks/useDomRefCallback.d.ts +1 -0
  306. package/es/hooks/useDragSorter.d.ts +28 -0
  307. package/es/hooks/useEventCallback.d.ts +9 -0
  308. package/es/hooks/useGlobalConfig.d.ts +1 -0
  309. package/es/hooks/useGlobalIcon.d.ts +5 -0
  310. package/es/hooks/useLastest.d.ts +2 -0
  311. package/es/hooks/useLayoutEffect.d.ts +3 -0
  312. package/es/hooks/useMouseEvent.d.ts +25 -0
  313. package/es/hooks/useMutationObserver.d.ts +4 -0
  314. package/es/hooks/usePopper.d.ts +19 -0
  315. package/es/hooks/useResizeObserve.d.ts +1 -0
  316. package/es/hooks/useRipple.d.ts +0 -0
  317. package/es/hooks/useSetState.d.ts +7 -0
  318. package/es/hooks/useVirtualScroll.d.ts +30 -0
  319. package/es/hooks/useWindowSize.d.ts +6 -0
  320. package/es/index.d.ts +25 -0
  321. package/es/index.js +68 -14
  322. package/es/index.js.map +1 -1
  323. package/es/input/Input.d.ts +16 -0
  324. package/es/input/Input.js +5 -5
  325. package/es/input/Input.js.map +1 -1
  326. package/es/input/InputGroup.d.ts +10 -0
  327. package/es/input/defaultProps.d.ts +17 -0
  328. package/es/input/index.d.ts +6 -0
  329. package/es/input/index.js +5 -3
  330. package/es/input/index.js.map +1 -1
  331. package/es/input/style/css.d.ts +1 -0
  332. package/es/input/style/index.d.ts +1 -0
  333. package/es/input/type.d.ts +237 -0
  334. package/es/input-number/InputNumber.d.ts +17 -0
  335. package/es/input-number/InputNumber.js +139 -0
  336. package/es/input-number/InputNumber.js.map +1 -0
  337. package/es/input-number/defaultProps.d.ts +2 -0
  338. package/es/input-number/index.d.ts +5 -0
  339. package/es/input-number/index.js +43 -0
  340. package/es/input-number/index.js.map +1 -0
  341. package/es/input-number/style/css.d.ts +1 -0
  342. package/es/input-number/style/css.js +1 -0
  343. package/es/input-number/style/index.css +331 -0
  344. package/es/input-number/style/index.d.ts +1 -0
  345. package/es/input-number/style/index.js +2 -0
  346. package/es/input-number/style/index.js.map +1 -0
  347. package/es/input-number/type.d.ts +156 -0
  348. package/es/input-number/useInputNumber.d.ts +51 -0
  349. package/es/input-number/useInputNumber.js +809 -0
  350. package/es/input-number/useInputNumber.js.map +1 -0
  351. package/es/ip-input/IPInput.d.ts +5 -0
  352. package/es/ip-input/IPInput.js +16 -0
  353. package/es/ip-input/IPInput.js.map +1 -0
  354. package/es/ip-input/defaultProps.d.ts +2 -0
  355. package/es/ip-input/index.d.ts +3 -0
  356. package/es/ip-input/index.js +16 -0
  357. package/es/ip-input/index.js.map +1 -0
  358. package/es/ip-input/style/index.css +323 -0
  359. package/es/ip-input/style/index.d.ts +1 -0
  360. package/es/ip-input/style/index.js +2 -0
  361. package/es/ip-input/style/index.js.map +1 -0
  362. package/es/ip-input/type.d.ts +113 -0
  363. package/es/ip-input/utils.d.ts +35 -0
  364. package/es/layout/Aside.d.ts +11 -0
  365. package/es/layout/Aside.js +41 -0
  366. package/es/layout/Aside.js.map +1 -0
  367. package/es/layout/Layout.d.ts +26 -0
  368. package/es/layout/Layout.js +106 -0
  369. package/es/layout/Layout.js.map +1 -0
  370. package/es/layout/defaultProps.d.ts +5 -0
  371. package/es/layout/index.d.ts +10 -0
  372. package/es/layout/index.js +19 -0
  373. package/es/layout/index.js.map +1 -0
  374. package/es/layout/style/index.css +56 -0
  375. package/es/layout/style/index.d.ts +1 -0
  376. package/es/layout/style/index.js +2 -0
  377. package/es/layout/style/index.js.map +1 -0
  378. package/es/layout/type.d.ts +38 -0
  379. package/es/list/List.d.ts +17 -0
  380. package/es/list/List.js +217 -0
  381. package/es/list/List.js.map +1 -0
  382. package/es/list/ListItem.d.ts +15 -0
  383. package/es/list/ListItem.js +31 -0
  384. package/es/list/ListItem.js.map +1 -0
  385. package/es/list/ListItemMeta.d.ts +10 -0
  386. package/es/list/ListItemMeta.js +45 -0
  387. package/es/list/ListItemMeta.js.map +1 -0
  388. package/es/list/defaultProps.d.ts +7 -0
  389. package/es/list/hooks/useListVirtualScroll.d.ts +24 -0
  390. package/es/list/index.d.ts +10 -0
  391. package/es/list/index.js +40 -0
  392. package/es/list/index.js.map +1 -0
  393. package/es/list/style/css.d.ts +1 -0
  394. package/es/list/style/css.js +1 -0
  395. package/es/list/style/index.css +172 -0
  396. package/es/list/style/index.d.ts +1 -0
  397. package/es/list/style/index.js +2 -0
  398. package/es/list/style/index.js.map +1 -0
  399. package/es/list/type.d.ts +92 -0
  400. package/es/loading/Gradient.d.ts +6 -0
  401. package/es/loading/Gradient.js +4 -3
  402. package/es/loading/Gradient.js.map +1 -1
  403. package/es/loading/Loading.d.ts +7 -0
  404. package/es/loading/Loading.js +7 -5
  405. package/es/loading/Loading.js.map +1 -1
  406. package/es/loading/circleAdapter.d.ts +1 -0
  407. package/es/loading/defaultProps.d.ts +2 -0
  408. package/es/loading/index.d.ts +5 -0
  409. package/es/loading/index.js +7 -5
  410. package/es/loading/index.js.map +1 -1
  411. package/es/loading/style/css.d.ts +1 -0
  412. package/es/loading/style/index.d.ts +1 -0
  413. package/es/loading/type.d.ts +68 -0
  414. package/es/loading/utils/setStyle.d.ts +7 -0
  415. package/es/locale/LocalReceiver.d.ts +6 -0
  416. package/es/locale/ar_KW.d.ts +3 -0
  417. package/es/locale/en_US.d.ts +3 -0
  418. package/es/locale/it_IT.d.ts +3 -0
  419. package/es/locale/ja_JP.d.ts +3 -0
  420. package/es/locale/ko_KR.d.ts +3 -0
  421. package/es/locale/ru_RU.d.ts +3 -0
  422. package/es/locale/zh_CN.d.ts +3 -0
  423. package/es/locale/zh_TW.d.ts +3 -0
  424. package/es/myform/index.d.ts +0 -0
  425. package/es/notification/Notify.d.ts +11 -0
  426. package/es/notification/NotifyContainer.d.ts +13 -0
  427. package/es/notification/NotifyContainer.js +3 -2
  428. package/es/notification/NotifyContainer.js.map +1 -1
  429. package/es/notification/NotifyContext.d.ts +23 -0
  430. package/es/notification/NotifyContext.js +3 -2
  431. package/es/notification/NotifyContext.js.map +1 -1
  432. package/es/notification/NotifyItem.d.ts +4 -0
  433. package/es/notification/NotifyItem.js +3 -2
  434. package/es/notification/NotifyItem.js.map +1 -1
  435. package/es/notification/index.d.ts +3 -0
  436. package/es/notification/index.js +3 -2
  437. package/es/notification/index.js.map +1 -1
  438. package/es/notification/style/css.d.ts +1 -0
  439. package/es/notification/style/index.d.ts +1 -0
  440. package/es/notification/type.d.ts +22 -0
  441. package/es/popup/Popup.d.ts +21 -0
  442. package/es/popup/Popup.js +36 -100
  443. package/es/popup/Popup.js.map +1 -1
  444. package/es/popup/defaultProps.d.ts +5 -0
  445. package/es/popup/hooks/useTrigger.d.ts +20 -0
  446. package/es/popup/index.d.ts +5 -0
  447. package/es/popup/index.js +8 -4
  448. package/es/popup/index.js.map +1 -1
  449. package/es/popup/style/css.d.ts +1 -0
  450. package/es/popup/style/index.d.ts +1 -0
  451. package/es/popup/type.d.ts +109 -0
  452. package/es/portal/Portal.d.ts +16 -0
  453. package/es/portal/Portal.js +2 -1
  454. package/es/portal/Portal.js.map +1 -1
  455. package/es/portal/index.d.ts +1 -0
  456. package/es/portal/index.js +2 -1
  457. package/es/portal/index.js.map +1 -1
  458. package/es/radio/Radio.d.ts +8 -0
  459. package/es/radio/Radio.js +22 -0
  460. package/es/radio/Radio.js.map +1 -0
  461. package/es/radio/RadioGroup.d.ts +14 -0
  462. package/es/radio/RadioGroup.js +22 -0
  463. package/es/radio/RadioGroup.js.map +1 -0
  464. package/es/radio/defaultProps.d.ts +3 -0
  465. package/es/radio/index.d.ts +10 -0
  466. package/es/radio/index.js +28 -0
  467. package/es/radio/index.js.map +1 -0
  468. package/es/radio/style/css.d.ts +0 -0
  469. package/es/radio/style/css.js +0 -0
  470. package/es/radio/style/index.css +333 -0
  471. package/es/radio/style/index.d.ts +1 -0
  472. package/es/radio/style/index.js +2 -0
  473. package/es/radio/style/index.js.map +1 -0
  474. package/es/radio/type.d.ts +117 -0
  475. package/es/radio/useKeyboard.d.ts +4 -0
  476. package/es/select/Option.d.ts +24 -0
  477. package/es/select/Option.js +3 -2
  478. package/es/select/Option.js.map +1 -1
  479. package/es/select/OptionGroup.d.ts +7 -0
  480. package/es/select/OptionGroup.js +4 -3
  481. package/es/select/OptionGroup.js.map +1 -1
  482. package/es/select/PopupContent.d.ts +24 -0
  483. package/es/select/PopupContent.js +6 -4
  484. package/es/select/PopupContent.js.map +1 -1
  485. package/es/select/Select.d.ts +13 -0
  486. package/es/select/Select.js +21 -12
  487. package/es/select/Select.js.map +1 -1
  488. package/es/select/defaultProps.d.ts +4 -0
  489. package/es/select/hooks/useOptions.d.ts +16 -0
  490. package/es/select/hooks/usePanelVirtualScroll.d.ts +24 -0
  491. package/es/select/index.d.ts +8 -0
  492. package/es/select/index.js +14 -8
  493. package/es/select/index.js.map +1 -1
  494. package/es/select/style/css.d.ts +1 -0
  495. package/es/select/style/index.d.ts +1 -0
  496. package/es/select/type.d.ts +344 -0
  497. package/es/select/utils/helper.d.ts +18 -0
  498. package/es/select-input/SelectInput.d.ts +11 -0
  499. package/es/select-input/SelectInput.js +10 -5
  500. package/es/select-input/SelectInput.js.map +1 -1
  501. package/es/select-input/defaultProps.d.ts +2 -0
  502. package/es/select-input/hook/useMultiple.d.ts +23 -0
  503. package/es/select-input/hook/useMultiple.js +7 -4
  504. package/es/select-input/hook/useMultiple.js.map +1 -1
  505. package/es/select-input/hook/useOverlayInnerStyle.d.ts +11 -0
  506. package/es/select-input/hook/useSingle.d.ts +16 -0
  507. package/es/select-input/hook/useSingle.js +5 -3
  508. package/es/select-input/hook/useSingle.js.map +1 -1
  509. package/es/select-input/index.d.ts +5 -0
  510. package/es/select-input/index.js +10 -5
  511. package/es/select-input/index.js.map +1 -1
  512. package/es/select-input/interface.d.ts +17 -0
  513. package/es/select-input/style/css.d.ts +1 -0
  514. package/es/select-input/style/index.d.ts +1 -0
  515. package/es/select-input/type.d.ts +243 -0
  516. package/es/slider/Slider.d.ts +7 -0
  517. package/es/slider/Slider.js +668 -0
  518. package/es/slider/Slider.js.map +1 -0
  519. package/es/slider/SliderHandleButton.d.ts +11 -0
  520. package/es/slider/SliderHandleButton.js +48 -0
  521. package/es/slider/SliderHandleButton.js.map +1 -0
  522. package/es/slider/defaultProps.d.ts +5 -0
  523. package/es/slider/index.d.ts +5 -0
  524. package/es/slider/index.js +46 -0
  525. package/es/slider/index.js.map +1 -0
  526. package/es/slider/style/css.d.ts +1 -0
  527. package/es/slider/style/css.js +1 -0
  528. package/es/slider/style/index.css +252 -0
  529. package/es/slider/style/index.d.ts +1 -0
  530. package/es/slider/style/index.js +2 -0
  531. package/es/slider/style/index.js.map +1 -0
  532. package/es/slider/type.d.ts +78 -0
  533. package/es/space/defaultProps.d.ts +0 -0
  534. package/es/space/index.d.ts +0 -0
  535. package/es/space/type.d.ts +0 -0
  536. package/es/style/index.css +24 -34
  537. package/es/style/index.d.ts +1 -0
  538. package/es/switch/Switch.d.ts +9 -0
  539. package/es/switch/Switch.js +9 -47
  540. package/es/switch/Switch.js.map +1 -1
  541. package/es/switch/defaultProps.d.ts +2 -0
  542. package/es/switch/index.d.ts +4 -0
  543. package/es/switch/index.js +8 -5
  544. package/es/switch/index.js.map +1 -1
  545. package/es/switch/style/css.d.ts +1 -0
  546. package/es/switch/style/index.d.ts +1 -0
  547. package/es/switch/type.d.ts +48 -0
  548. package/es/tab/TabBar.d.ts +9 -0
  549. package/es/tab/TabBar.js +109 -0
  550. package/es/tab/TabBar.js.map +1 -0
  551. package/es/tab/TabNav.d.ts +10 -0
  552. package/es/tab/TabNav.js +123 -0
  553. package/es/tab/TabNav.js.map +1 -0
  554. package/es/tab/TabNavItem.d.ts +15 -0
  555. package/es/tab/TabNavItem.js +65 -0
  556. package/es/tab/TabNavItem.js.map +1 -0
  557. package/es/tab/TabPanel.d.ts +9 -0
  558. package/es/tab/TabPanel.js +11 -0
  559. package/es/tab/TabPanel.js.map +1 -0
  560. package/es/tab/Tabs.d.ts +10 -0
  561. package/es/tab/Tabs.js +95 -0
  562. package/es/tab/Tabs.js.map +1 -0
  563. package/es/tab/defaultProps.d.ts +3 -0
  564. package/es/tab/index.d.ts +8 -0
  565. package/es/tab/index.js +31 -0
  566. package/es/tab/index.js.map +1 -0
  567. package/es/tab/style/index.css +159 -0
  568. package/es/tab/style/index.d.ts +1 -0
  569. package/es/tab/style/index.js +2 -0
  570. package/es/tab/style/index.js.map +1 -0
  571. package/es/tab/type.d.ts +130 -0
  572. package/es/tab/useTabClass.d.ts +8 -0
  573. package/es/table/Cell.d.ts +18 -0
  574. package/es/table/Cell.js +73 -0
  575. package/es/table/Cell.js.map +1 -0
  576. package/es/table/TBody.d.ts +28 -0
  577. package/es/table/TBody.js +70 -0
  578. package/es/table/TBody.js.map +1 -0
  579. package/es/table/THead.d.ts +10 -0
  580. package/es/table/THead.js +56 -0
  581. package/es/table/THead.js.map +1 -0
  582. package/es/table/TR.d.ts +28 -0
  583. package/es/table/TR.js +76 -0
  584. package/es/table/TR.js.map +1 -0
  585. package/es/table/Table.d.ts +6 -0
  586. package/es/table/Table.js +98 -0
  587. package/es/table/Table.js.map +1 -0
  588. package/es/table/defaultProps.d.ts +2 -0
  589. package/es/table/hooks/index.d.ts +4 -0
  590. package/es/table/hooks/index.js +98 -0
  591. package/es/table/hooks/index.js.map +1 -0
  592. package/es/table/hooks/useTableClassName.d.ts +26 -0
  593. package/es/table/hooks/useTableStyle.d.ts +11 -0
  594. package/es/table/index.d.ts +5 -0
  595. package/es/table/index.js +22 -0
  596. package/es/table/index.js.map +1 -0
  597. package/es/table/style/css.d.ts +1 -0
  598. package/es/table/style/css.js +1 -0
  599. package/es/table/style/index.css +139 -0
  600. package/es/table/style/index.d.ts +1 -0
  601. package/es/table/style/index.js +2 -0
  602. package/es/table/style/index.js.map +1 -0
  603. package/es/table/type.d.ts +195 -0
  604. package/es/tag/Tag.d.ts +14 -0
  605. package/es/tag/Tag.js +5 -1182
  606. package/es/tag/Tag.js.map +1 -1
  607. package/es/tag/defaultProps.d.ts +7 -0
  608. package/es/tag/index.d.ts +4 -0
  609. package/es/tag/index.js +5 -3
  610. package/es/tag/index.js.map +1 -1
  611. package/es/tag/style/css.d.ts +1 -0
  612. package/es/tag/style/index.d.ts +1 -0
  613. package/es/tag/type.d.ts +169 -0
  614. package/es/tag-input/TagInput.d.ts +9 -0
  615. package/es/tag-input/TagInput.js +7 -4
  616. package/es/tag-input/TagInput.js.map +1 -1
  617. package/es/tag-input/defaultProps.d.ts +2 -0
  618. package/es/tag-input/hooks/useHover.d.ts +17 -0
  619. package/es/tag-input/hooks/useTagList.d.ts +30 -0
  620. package/es/tag-input/hooks/useTagList.js +5 -3
  621. package/es/tag-input/hooks/useTagList.js.map +1 -1
  622. package/es/tag-input/hooks/useTagScroll.d.ts +25 -0
  623. package/es/tag-input/index.d.ts +5 -0
  624. package/es/tag-input/index.js +7 -4
  625. package/es/tag-input/index.js.map +1 -1
  626. package/es/tag-input/style/css.d.ts +1 -0
  627. package/es/tag-input/style/index.d.ts +1 -0
  628. package/es/tag-input/type.d.ts +235 -0
  629. package/es/tag-input/useTagList.d.ts +30 -0
  630. package/es/tag-input/useTagList.js +5 -3
  631. package/es/tag-input/useTagList.js.map +1 -1
  632. package/es/utils/composeRefs.d.ts +2 -0
  633. package/es/utils/dom.d.ts +7 -0
  634. package/es/utils/forwardRefWithStatics.d.ts +2 -0
  635. package/es/utils/getScrollbarWidth.d.ts +6 -0
  636. package/es/utils/helper.d.ts +46 -0
  637. package/es/utils/input-number/large-number.d.ts +85 -0
  638. package/es/utils/input-number/number.d.ts +81 -0
  639. package/es/utils/isFragment.d.ts +4 -0
  640. package/es/utils/listener.d.ts +4 -0
  641. package/es/utils/log/index.d.ts +2 -0
  642. package/es/utils/log/index.js +27 -0
  643. package/es/utils/log/index.js.map +1 -0
  644. package/es/utils/log/log.d.ts +3 -0
  645. package/es/utils/log/types.d.ts +8 -0
  646. package/es/utils/noop.d.ts +2 -0
  647. package/es/utils/number.d.ts +7 -0
  648. package/es/utils/parentTNode.d.ts +10 -0
  649. package/es/utils/parseTNode.d.ts +10 -0
  650. package/es/utils/react-render.d.ts +16 -0
  651. package/es/utils/ref.d.ts +1 -0
  652. package/es/utils/refs.d.ts +13 -0
  653. package/es/utils/scroll.d.ts +3 -0
  654. package/es/utils/style.d.ts +4 -0
  655. package/es/utils/transition.d.ts +20 -0
  656. package/package.json +60 -59
  657. package/LICENSE +0 -21
  658. package/es/_chunks/dep-0QH2Ee4R.js.map +0 -1
  659. package/es/_chunks/dep-BH5n5r1M.js.map +0 -1
  660. package/es/_chunks/dep-D7LanWes.js.map +0 -1
  661. package/es/_chunks/dep-DZ_0EvBk.js.map +0 -1
  662. package/es/_chunks/dep-Dk2xX8lh.js.map +0 -1
  663. package/es/_chunks/dep-EcrDKDlu.js.map +0 -1
  664. package/es/_chunks/dep-bWaVq_y3.js.map +0 -1
@@ -0,0 +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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"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { IPInputProps, IPInputRef } from "./type";
3
+ import "./style/index.js";
4
+ declare const IPInput: React.ForwardRefExoticComponent<IPInputProps & React.RefAttributes<IPInputRef>>;
5
+ export default IPInput;
@@ -0,0 +1,16 @@
1
+ import '../_chunks/dep-Cwish4GD.js';
2
+ import '../_chunks/dep-CgyDw_YI.js';
3
+ import '../_chunks/dep-CzLhKWCf.js';
4
+ import 'react';
5
+ import 'classnames';
6
+ import '@tendaui/icons';
7
+ import '../_chunks/dep-DGvfel3I.js';
8
+ import '../_chunks/dep-DwWrhxkd.js';
9
+ import '../_chunks/dep-gy8uvBaS.js';
10
+ export { I as default } from '../_chunks/dep-COy5g3FT.js';
11
+ import '../_chunks/dep-D-UKOauR.js';
12
+ import 'lodash-es';
13
+ import '../_chunks/dep-5U9UjDaf.js';
14
+ import 'dayjs';
15
+ import './css.js';
16
+ //# sourceMappingURL=IPInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ import { TdIPInputProps } from "./type";
2
+ export declare const ipInputDefaultProps: Partial<TdIPInputProps>;
@@ -0,0 +1,3 @@
1
+ export { default as IPInput } from "./IPInput";
2
+ export type { IPInputProps, IPInputRef, TdIPInputProps } from "./type";
3
+ export * from "./utils";
@@ -0,0 +1,16 @@
1
+ export { I as IPInput, e as extractIPFromText, b as isValidCIDRMask, a as isValidIPv4, i as isValidIPv4Segment, c as isValidIPv6, p as parseIPv4ToSegments, s as segmentsToIPv4 } from '../_chunks/dep-COy5g3FT.js';
2
+ import '../_chunks/dep-Cwish4GD.js';
3
+ import '../_chunks/dep-D-UKOauR.js';
4
+ import '../_chunks/dep-CgyDw_YI.js';
5
+ import '../_chunks/dep-CzLhKWCf.js';
6
+ import 'react';
7
+ import 'classnames';
8
+ import '@tendaui/icons';
9
+ import '../_chunks/dep-DGvfel3I.js';
10
+ import '../_chunks/dep-DwWrhxkd.js';
11
+ import 'lodash-es';
12
+ import '../_chunks/dep-gy8uvBaS.js';
13
+ import '../_chunks/dep-5U9UjDaf.js';
14
+ import 'dayjs';
15
+ import './css.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,323 @@
1
+ .t-tips {
2
+ font-size: var(--td-font-size-body-small);
3
+ }
4
+
5
+ .t-tips.t-is-default {
6
+ color: #000;
7
+ }
8
+
9
+ .t-tips.t-is-error {
10
+ color: #000;
11
+ }
12
+
13
+ .t-tips.t-is-warning {
14
+ color: #000;
15
+ }
16
+
17
+ .t-tips.t-is-success {
18
+ color: #000;
19
+ }
20
+
21
+ .t-ip-input {
22
+ font: var(--td-font-body-medium);
23
+ color: var(--td-text-color-primary);
24
+ -webkit-box-sizing: border-box;
25
+ box-sizing: border-box;
26
+ margin: 0;
27
+ padding: 0;
28
+ list-style: none;
29
+ width: auto;
30
+ display: inline-block;
31
+ position: relative;
32
+ box-sizing: border-box;
33
+ }
34
+ .t-ip-input__wrapper {
35
+ display: -webkit-inline-box;
36
+ display: -ms-inline-flexbox;
37
+ display: inline-flex;
38
+ -webkit-box-align: center;
39
+ -ms-flex-align: center;
40
+ align-items: center;
41
+ width: auto;
42
+ min-width: -webkit-fit-content;
43
+ min-width: -moz-fit-content;
44
+ min-width: fit-content;
45
+ position: relative;
46
+ }
47
+ .t-ip-input__segments {
48
+ display: -webkit-inline-box;
49
+ display: -ms-inline-flexbox;
50
+ display: inline-flex;
51
+ -webkit-box-align: center;
52
+ -ms-flex-align: center;
53
+ align-items: center;
54
+ gap: 0;
55
+ }
56
+ .t-ip-input__segment {
57
+ width: 50px;
58
+ min-width: 50px;
59
+ max-width: 50px;
60
+ height: var(--td-comp-size-m);
61
+ padding: 0 6px;
62
+ border: 1px solid var(--td-border-level-2-color);
63
+ border-radius: var(--td-radius-default);
64
+ background-color: var(--td-bg-color-specialcomponent);
65
+ color: var(--td-text-color-primary);
66
+ font: var(--td-font-body-medium);
67
+ text-align: center;
68
+ outline: none;
69
+ -webkit-box-sizing: border-box;
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;
73
+ 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
+ margin: 0;
76
+ }
77
+ .t-ip-input__segment:focus {
78
+ border-color: var(--td-brand-color);
79
+ -webkit-box-shadow: 0 0 0 1px var(--td-brand-color);
80
+ box-shadow: 0 0 0 1px var(--td-brand-color);
81
+ z-index: 1;
82
+ position: relative;
83
+ outline: none;
84
+ }
85
+ .t-ip-input__segment--focused {
86
+ border-color: var(--td-brand-color);
87
+ -webkit-box-shadow: 0 0 0 1px var(--td-brand-color);
88
+ box-shadow: 0 0 0 1px var(--td-brand-color);
89
+ z-index: 1;
90
+ position: relative;
91
+ }
92
+ .t-ip-input__segment--error {
93
+ border-color: var(--td-error-color);
94
+ }
95
+ .t-ip-input__segment--error:focus {
96
+ border-color: var(--td-error-color) !important;
97
+ -webkit-box-shadow: 0 0 0 1px var(--td-error-color) !important;
98
+ box-shadow: 0 0 0 1px var(--td-error-color) !important;
99
+ }
100
+ .t-ip-input__segment--error.t-ip-input__segment--focused {
101
+ border-color: var(--td-error-color) !important;
102
+ -webkit-box-shadow: 0 0 0 1px var(--td-error-color) !important;
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);
107
+ }
108
+ .t-ip-input__segment::-moz-placeholder {
109
+ color: var(--td-text-color-placeholder);
110
+ }
111
+ .t-ip-input__segment::-ms-input-placeholder {
112
+ color: var(--td-text-color-placeholder);
113
+ }
114
+ .t-ip-input__segment::placeholder {
115
+ color: var(--td-text-color-placeholder);
116
+ }
117
+ .t-ip-input__segment:disabled {
118
+ background-color: var(--td-bg-color-component-disabled);
119
+ color: var(--td-text-color-disabled);
120
+ cursor: not-allowed;
121
+ }
122
+ .t-ip-input__segment[readonly] {
123
+ background-color: var(--td-bg-color-specialcomponent);
124
+ color: var(--td-text-color-primary);
125
+ cursor: pointer;
126
+ }
127
+ .t-ip-input__separator {
128
+ padding: 0 4px;
129
+ margin: 0 2px;
130
+ color: var(--td-text-color-primary);
131
+ font: var(--td-font-body-medium);
132
+ font-weight: 500;
133
+ -webkit-user-select: none;
134
+ -moz-user-select: none;
135
+ -ms-user-select: none;
136
+ user-select: none;
137
+ -ms-flex-negative: 0;
138
+ flex-shrink: 0;
139
+ line-height: var(--td-comp-size-m);
140
+ display: -webkit-inline-box;
141
+ display: -ms-inline-flexbox;
142
+ display: inline-flex;
143
+ -webkit-box-align: center;
144
+ -ms-flex-align: center;
145
+ align-items: center;
146
+ -webkit-box-pack: center;
147
+ -ms-flex-pack: center;
148
+ justify-content: center;
149
+ }
150
+ .t-ip-input__cidr {
151
+ width: 50px;
152
+ min-width: 50px;
153
+ max-width: 50px;
154
+ height: var(--td-comp-size-m);
155
+ padding: 0 6px;
156
+ border: 1px solid var(--td-border-level-2-color);
157
+ border-radius: var(--td-radius-default);
158
+ background-color: var(--td-bg-color-specialcomponent);
159
+ color: var(--td-text-color-primary);
160
+ font: var(--td-font-body-medium);
161
+ text-align: center;
162
+ outline: none;
163
+ -webkit-box-sizing: border-box;
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;
167
+ 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
+ margin-left: 8px;
170
+ }
171
+ .t-ip-input__cidr:focus {
172
+ border-color: var(--td-brand-color);
173
+ -webkit-box-shadow: 0 0 0 1px var(--td-brand-color);
174
+ box-shadow: 0 0 0 1px var(--td-brand-color);
175
+ z-index: 1;
176
+ position: relative;
177
+ outline: none;
178
+ }
179
+ .t-ip-input__cidr--error {
180
+ border-color: var(--td-error-color);
181
+ }
182
+ .t-ip-input__cidr--error:focus {
183
+ border-color: var(--td-error-color);
184
+ -webkit-box-shadow: 0 0 0 1px var(--td-error-color);
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);
189
+ }
190
+ .t-ip-input__cidr::-moz-placeholder {
191
+ color: var(--td-text-color-placeholder);
192
+ }
193
+ .t-ip-input__cidr::-ms-input-placeholder {
194
+ color: var(--td-text-color-placeholder);
195
+ }
196
+ .t-ip-input__cidr::placeholder {
197
+ color: var(--td-text-color-placeholder);
198
+ }
199
+ .t-ip-input__cidr:disabled {
200
+ background-color: var(--td-bg-color-component-disabled);
201
+ color: var(--td-text-color-disabled);
202
+ cursor: not-allowed;
203
+ }
204
+ .t-ip-input__cidr[readonly] {
205
+ background-color: var(--td-bg-color-specialcomponent);
206
+ color: var(--td-text-color-primary);
207
+ cursor: pointer;
208
+ }
209
+ .t-ip-input__ipv6-wrapper {
210
+ display: -webkit-inline-box;
211
+ display: -ms-inline-flexbox;
212
+ display: inline-flex;
213
+ -webkit-box-align: center;
214
+ -ms-flex-align: center;
215
+ align-items: center;
216
+ -webkit-box-flex: 1;
217
+ -ms-flex: 1;
218
+ flex: 1;
219
+ gap: 0;
220
+ }
221
+ .t-ip-input__ipv6 {
222
+ -webkit-box-flex: 1;
223
+ -ms-flex: 1;
224
+ flex: 1;
225
+ min-width: 0;
226
+ height: var(--td-comp-size-m);
227
+ padding: 0 var(--td-comp-paddingLR-s);
228
+ border: 1px solid var(--td-border-level-2-color);
229
+ border-radius: var(--td-radius-default);
230
+ background-color: var(--td-bg-color-specialcomponent);
231
+ color: var(--td-text-color-primary);
232
+ font: var(--td-font-body-medium);
233
+ outline: none;
234
+ -webkit-box-sizing: border-box;
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;
238
+ 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
+ }
241
+ .t-ip-input__ipv6:focus {
242
+ border-color: var(--td-brand-color);
243
+ -webkit-box-shadow: 0 0 0 2px var(--td-brand-color-focus);
244
+ box-shadow: 0 0 0 2px var(--td-brand-color-focus);
245
+ z-index: 1;
246
+ position: relative;
247
+ }
248
+ .t-ip-input__ipv6--error {
249
+ border-color: var(--td-error-color);
250
+ }
251
+ .t-ip-input__ipv6--error:focus {
252
+ border-color: var(--td-error-color);
253
+ -webkit-box-shadow: 0 0 0 2px var(--td-error-color-focus);
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);
258
+ }
259
+ .t-ip-input__ipv6::-moz-placeholder {
260
+ color: var(--td-text-color-placeholder);
261
+ }
262
+ .t-ip-input__ipv6::-ms-input-placeholder {
263
+ color: var(--td-text-color-placeholder);
264
+ }
265
+ .t-ip-input__ipv6::placeholder {
266
+ color: var(--td-text-color-placeholder);
267
+ }
268
+ .t-ip-input__ipv6:disabled {
269
+ background-color: var(--td-bg-color-component-disabled);
270
+ color: var(--td-text-color-disabled);
271
+ cursor: not-allowed;
272
+ }
273
+ .t-ip-input__ipv6[readonly] {
274
+ background-color: var(--td-bg-color-specialcomponent);
275
+ color: var(--td-text-color-primary);
276
+ cursor: pointer;
277
+ }
278
+ .t-ip-input__clear {
279
+ position: absolute;
280
+ right: var(--td-comp-paddingLR-s);
281
+ top: 50%;
282
+ -webkit-transform: translateY(-50%);
283
+ transform: translateY(-50%);
284
+ cursor: pointer;
285
+ color: var(--td-text-color-placeholder);
286
+ -webkit-transition: all 0.2s linear;
287
+ transition: all 0.2s linear;
288
+ z-index: 2;
289
+ }
290
+ .t-ip-input__clear:hover {
291
+ color: var(--td-text-color-secondary);
292
+ }
293
+ .t-ip-input__error {
294
+ margin-top: var(--td-comp-margin-xs);
295
+ font: var(--td-font-body-small);
296
+ color: var(--td-error-color);
297
+ min-height: var(--td-line-height-body-small);
298
+ }
299
+ .t-ip-input__tips {
300
+ margin-top: var(--td-comp-margin-xs);
301
+ font: var(--td-font-body-small);
302
+ color: var(--td-text-color-placeholder);
303
+ min-height: var(--td-line-height-body-small);
304
+ }
305
+ .t-ip-input.t-is-disabled .t-ip-input__segment,
306
+ .t-ip-input.t-is-disabled .t-ip-input__cidr,
307
+ .t-ip-input.t-is-disabled .t-ip-input__ipv6 {
308
+ background-color: var(--td-bg-color-component-disabled);
309
+ color: var(--td-text-color-disabled);
310
+ cursor: not-allowed;
311
+ }
312
+ .t-ip-input.t-is-readonly .t-ip-input__segment,
313
+ .t-ip-input.t-is-readonly .t-ip-input__cidr,
314
+ .t-ip-input.t-is-readonly .t-ip-input__ipv6 {
315
+ background-color: var(--td-bg-color-specialcomponent);
316
+ color: var(--td-text-color-primary);
317
+ cursor: pointer;
318
+ }
319
+ .t-ip-input.t-is-focused .t-ip-input__segment,
320
+ .t-ip-input.t-is-focused .t-ip-input__cidr,
321
+ .t-ip-input.t-is-focused .t-ip-input__ipv6 {
322
+ border-color: var(--td-brand-color);
323
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}