@zat-design/sisyphus-react 4.0.0-beta.3 → 4.0.0-beta.4

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 (243) hide show
  1. package/babel.config.js +7 -30
  2. package/dist/esm/index.d.ts +5 -0
  3. package/dist/esm/index.js +5 -0
  4. package/dist/esm/regExp/index.d.ts +19 -0
  5. package/dist/esm/regExp/index.js +73 -0
  6. package/dist/esm/tools/calc/index.d.ts +4 -0
  7. package/dist/esm/tools/calc/index.js +67 -0
  8. package/dist/esm/tools/dateUtils.d.ts +7 -0
  9. package/dist/esm/tools/dateUtils.js +23 -0
  10. package/dist/esm/tools/disableDate/index.d.ts +9 -0
  11. package/dist/esm/tools/disableDate/index.js +43 -0
  12. package/dist/esm/tools/disableTimeRange/index.d.ts +9 -0
  13. package/dist/esm/tools/disableTimeRange/index.js +121 -0
  14. package/dist/esm/tools/formatAmount/index.d.ts +7 -0
  15. package/dist/esm/tools/formatAmount/index.js +14 -0
  16. package/dist/esm/tools/formatPerMill/index.d.ts +7 -0
  17. package/dist/esm/tools/formatPerMill/index.js +11 -0
  18. package/dist/esm/tools/formatPercent/index.d.ts +7 -0
  19. package/dist/esm/tools/formatPercent/index.js +11 -0
  20. package/dist/esm/tools/getDataByIdCard/index.d.ts +16 -0
  21. package/dist/esm/tools/getDataByIdCard/index.js +65 -0
  22. package/dist/esm/tools/index.d.ts +12 -0
  23. package/dist/esm/tools/index.js +14 -0
  24. package/dist/esm/tools/sumAmount/index.d.ts +16 -0
  25. package/dist/esm/tools/sumAmount/index.js +40 -0
  26. package/dist/esm/tools/toChineseNum/index.d.ts +7 -0
  27. package/dist/esm/tools/toChineseNum/index.js +103 -0
  28. package/dist/esm/tools/toFixed/index.d.ts +2 -0
  29. package/dist/esm/tools/toFixed/index.js +5 -0
  30. package/dist/esm/tools/transformDataName/index.d.ts +12 -0
  31. package/dist/esm/tools/transformDataName/index.js +37 -0
  32. package/dist/esm/transforms/dateTransformer/index.d.ts +24 -0
  33. package/dist/esm/transforms/dateTransformer/index.js +67 -0
  34. package/dist/esm/transforms/index.d.ts +6 -0
  35. package/dist/esm/transforms/index.js +6 -0
  36. package/dist/esm/transforms/propTypes.d.ts +7 -0
  37. package/dist/esm/transforms/propTypes.js +1 -0
  38. package/dist/esm/transforms/transformDate/index.d.ts +21 -0
  39. package/dist/esm/transforms/transformDate/index.js +141 -0
  40. package/dist/esm/transforms/transformDatePicker/index.d.ts +12 -0
  41. package/dist/esm/transforms/transformDatePicker/index.js +24 -0
  42. package/dist/esm/transforms/transformRangePicker/index.d.ts +29 -0
  43. package/dist/esm/transforms/transformRangePicker/index.js +61 -0
  44. package/dist/esm/transforms/transformSwitch/index.d.ts +13 -0
  45. package/dist/esm/transforms/transformSwitch/index.js +35 -0
  46. package/dist/esm/transforms/utils.d.ts +2 -0
  47. package/dist/esm/transforms/utils.js +8 -0
  48. package/dist/esm/validate/index.d.ts +107 -0
  49. package/dist/esm/validate/index.js +284 -0
  50. package/es/ProAction/index.less +0 -2
  51. package/es/ProConfigProvider/index.d.ts +1 -0
  52. package/es/ProConfigProvider/index.js +4 -5
  53. package/es/ProDownload/style/index.less +0 -2
  54. package/es/ProDrawerForm/index.js +33 -29
  55. package/es/ProDrawerForm/style/index.less +0 -2
  56. package/es/ProEditLabel/style/index.less +0 -2
  57. package/es/ProEditTable/components/RcTable/DraggableTable.js +1 -1
  58. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +14 -2
  59. package/es/ProEditTable/propsType.d.ts +1 -1
  60. package/es/ProEditTable/style/index.less +2 -4
  61. package/es/ProEditTable/utils/diffOriginal.d.ts +1 -0
  62. package/es/ProEditTable/utils/diffOriginal.js +68 -1
  63. package/es/ProEnum/hooks/useEnum.js +5 -0
  64. package/es/ProEnum/style/index.less +0 -2
  65. package/es/ProForm/components/FormFooter/index.js +6 -6
  66. package/es/ProForm/components/base/DatePicker/index.js +19 -34
  67. package/es/ProForm/components/base/SwitchCheckbox/style/index.less +0 -2
  68. package/es/ProForm/components/base/TextArea/index.less +0 -2
  69. package/es/ProForm/components/base/TimePicker/style/index.less +0 -2
  70. package/es/ProForm/components/combination/Container/style/index.less +0 -2
  71. package/es/ProForm/components/combination/FormList/style/index.less +0 -2
  72. package/es/ProForm/components/combination/Group/component/ComRender.js +9 -8
  73. package/es/ProForm/components/combination/Group/hooks/index.js +17 -4
  74. package/es/ProForm/components/combination/Group/index.d.ts +8 -2
  75. package/es/ProForm/components/combination/Group/index.js +10 -16
  76. package/es/ProForm/components/combination/ProCascader/index.js +106 -52
  77. package/es/ProForm/components/combination/ProCascader/propsType.d.ts +12 -4
  78. package/es/ProForm/components/combination/ProCascader/style/index.less +1 -3
  79. package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +2 -4
  80. package/es/ProForm/components/combination/ProModalSelect/index.js +38 -64
  81. package/es/ProForm/components/combination/ProModalSelect/propsType.d.ts +7 -3
  82. package/es/ProForm/components/combination/ProModalSelect/style/index.less +1 -4
  83. package/es/ProForm/components/combination/ProNumberRange/style/index.less +4 -3
  84. package/es/ProForm/components/combination/ProTimeLimit/style/index.less +0 -2
  85. package/es/ProForm/components/render/ChangedWrapper.js +2 -2
  86. package/es/ProForm/components/render/Render.js +17 -5
  87. package/es/ProForm/components/render/RenderFields.d.ts +1 -0
  88. package/es/ProForm/components/render/RenderFields.js +4 -2
  89. package/es/ProForm/components/render/propsType.d.ts +1 -0
  90. package/es/ProForm/index.d.ts +2 -2
  91. package/es/ProForm/index.js +5 -2
  92. package/es/ProForm/propsType.d.ts +2 -0
  93. package/es/ProForm/style/index.less +0 -2
  94. package/es/ProForm/utils/diffOriginal.d.ts +1 -0
  95. package/es/ProForm/utils/diffOriginal.js +66 -1
  96. package/es/ProForm/utils/index.js +1 -1
  97. package/es/ProForm/utils/useShouldUpdate.d.ts +1 -0
  98. package/es/ProForm/utils/useShouldUpdate.js +89 -3
  99. package/es/ProIcon/style/index.less +0 -2
  100. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +60 -8
  101. package/es/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +0 -2
  102. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +25 -3
  103. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +3 -1
  104. package/es/ProLayout/components/Layout/Menu/SideMenu/style/index.less +0 -2
  105. package/es/ProLayout/components/Layout/Menu/index.js +4 -1
  106. package/es/ProLayout/components/Layout/Menu/style/index.less +0 -2
  107. package/es/ProLayout/components/Layout/Notice/style/index.less +0 -2
  108. package/es/ProLayout/components/ProCollapse/PropTypes.d.ts +8 -3
  109. package/es/ProLayout/components/ProCollapse/index.js +27 -3
  110. package/es/ProLayout/components/ProCollapse/style/index.less +148 -4
  111. package/es/ProLayout/components/ProFooter/style/index.less +0 -2
  112. package/es/ProLayout/components/ProHeader/components/ProBackBtn/style/index.less +0 -2
  113. package/es/ProLayout/components/ProHeader/style/index.less +0 -2
  114. package/es/ProLayout/index.d.ts +0 -11
  115. package/es/ProLayout/index.js +60 -32
  116. package/es/ProLayout/propTypes.d.ts +9 -0
  117. package/es/ProLayout/style/index.less +0 -2
  118. package/es/ProLayout/utils/index.d.ts +7 -0
  119. package/es/ProLayout/utils/index.js +30 -0
  120. package/es/ProSelect/index.less +0 -2
  121. package/es/ProSelect/utils/index.js +62 -1
  122. package/es/ProStep/components/Item/index.js +1 -2
  123. package/es/ProStep/style/index.less +0 -2
  124. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +1 -1
  125. package/es/ProTable/hooks/useAntdTable.d.ts +3 -0
  126. package/es/ProTable/hooks/useAntdTable.js +92 -64
  127. package/es/ProTable/index.d.ts +3 -7
  128. package/es/ProTable/index.js +14 -14
  129. package/es/ProTable/propsType.d.ts +3 -2
  130. package/es/ProTable/style/index.less +4 -6
  131. package/es/ProTabs/style/index.less +0 -2
  132. package/es/ProThemeTools/index.d.ts +0 -7
  133. package/es/ProThemeTools/index.js +10 -12
  134. package/es/ProThemeTools/style/index.less +0 -2
  135. package/es/ProTooltip/style/index.less +0 -2
  136. package/es/ProTree/components/ProTreeSelect/style/index.less +0 -2
  137. package/es/ProTree/style/index.less +0 -2
  138. package/es/ProTreeModal/style/index.less +0 -2
  139. package/es/ProUpload/style/index.less +0 -2
  140. package/es/ProViewer/style/index.less +0 -2
  141. package/es/style/theme/antd.less +0 -2
  142. package/jest.config.js +46 -4
  143. package/lib/ProAction/index.less +0 -2
  144. package/lib/ProConfigProvider/index.d.ts +1 -0
  145. package/lib/ProConfigProvider/index.js +4 -3
  146. package/lib/ProDownload/style/index.less +0 -2
  147. package/lib/ProDrawerForm/index.js +25 -28
  148. package/lib/ProDrawerForm/style/index.less +0 -2
  149. package/lib/ProEditLabel/style/index.less +0 -2
  150. package/lib/ProEditTable/components/RcTable/DraggableTable.js +1 -1
  151. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +10 -2
  152. package/lib/ProEditTable/propsType.d.ts +1 -1
  153. package/lib/ProEditTable/style/index.less +2 -4
  154. package/lib/ProEditTable/utils/diffOriginal.d.ts +1 -0
  155. package/lib/ProEditTable/utils/diffOriginal.js +48 -1
  156. package/lib/ProEnum/hooks/useEnum.js +3 -0
  157. package/lib/ProEnum/style/index.less +0 -2
  158. package/lib/ProForm/components/FormFooter/index.js +6 -5
  159. package/lib/ProForm/components/base/DatePicker/index.js +21 -33
  160. package/lib/ProForm/components/base/SwitchCheckbox/style/index.less +0 -2
  161. package/lib/ProForm/components/base/TextArea/index.less +0 -2
  162. package/lib/ProForm/components/base/TimePicker/style/index.less +0 -2
  163. package/lib/ProForm/components/combination/Container/style/index.less +0 -2
  164. package/lib/ProForm/components/combination/FormList/style/index.less +0 -2
  165. package/lib/ProForm/components/combination/Group/component/ComRender.js +8 -7
  166. package/lib/ProForm/components/combination/Group/hooks/index.js +8 -2
  167. package/lib/ProForm/components/combination/Group/index.d.ts +8 -2
  168. package/lib/ProForm/components/combination/Group/index.js +8 -13
  169. package/lib/ProForm/components/combination/ProCascader/index.js +73 -16
  170. package/lib/ProForm/components/combination/ProCascader/propsType.d.ts +12 -4
  171. package/lib/ProForm/components/combination/ProCascader/style/index.less +1 -3
  172. package/lib/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +2 -2
  173. package/lib/ProForm/components/combination/ProModalSelect/index.js +26 -52
  174. package/lib/ProForm/components/combination/ProModalSelect/propsType.d.ts +7 -3
  175. package/lib/ProForm/components/combination/ProModalSelect/style/index.less +1 -4
  176. package/lib/ProForm/components/combination/ProNumberRange/style/index.less +4 -3
  177. package/lib/ProForm/components/combination/ProTimeLimit/style/index.less +0 -2
  178. package/lib/ProForm/components/render/ChangedWrapper.js +2 -2
  179. package/lib/ProForm/components/render/Render.js +11 -3
  180. package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
  181. package/lib/ProForm/components/render/RenderFields.js +4 -2
  182. package/lib/ProForm/components/render/propsType.d.ts +1 -0
  183. package/lib/ProForm/index.d.ts +2 -2
  184. package/lib/ProForm/index.js +3 -1
  185. package/lib/ProForm/propsType.d.ts +2 -0
  186. package/lib/ProForm/style/index.less +0 -2
  187. package/lib/ProForm/utils/diffOriginal.d.ts +1 -0
  188. package/lib/ProForm/utils/diffOriginal.js +48 -1
  189. package/lib/ProForm/utils/index.js +1 -1
  190. package/lib/ProForm/utils/useShouldUpdate.d.ts +1 -0
  191. package/lib/ProForm/utils/useShouldUpdate.js +50 -1
  192. package/lib/ProIcon/style/index.less +0 -2
  193. package/lib/ProLayout/components/Layout/Menu/FoldMenu/index.js +33 -4
  194. package/lib/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +0 -2
  195. package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +7 -2
  196. package/lib/ProLayout/components/Layout/Menu/SideMenu/index.js +2 -1
  197. package/lib/ProLayout/components/Layout/Menu/SideMenu/style/index.less +0 -2
  198. package/lib/ProLayout/components/Layout/Menu/index.js +4 -1
  199. package/lib/ProLayout/components/Layout/Menu/style/index.less +0 -2
  200. package/lib/ProLayout/components/Layout/Notice/style/index.less +0 -2
  201. package/lib/ProLayout/components/ProCollapse/PropTypes.d.ts +8 -3
  202. package/lib/ProLayout/components/ProCollapse/index.js +27 -3
  203. package/lib/ProLayout/components/ProCollapse/style/index.less +148 -4
  204. package/lib/ProLayout/components/ProFooter/style/index.less +0 -2
  205. package/lib/ProLayout/components/ProHeader/components/ProBackBtn/style/index.less +0 -2
  206. package/lib/ProLayout/components/ProHeader/style/index.less +0 -2
  207. package/lib/ProLayout/index.d.ts +0 -11
  208. package/lib/ProLayout/index.js +51 -32
  209. package/lib/ProLayout/propTypes.d.ts +9 -0
  210. package/lib/ProLayout/style/index.less +0 -2
  211. package/lib/ProLayout/utils/index.d.ts +7 -0
  212. package/lib/ProLayout/utils/index.js +15 -0
  213. package/lib/ProSelect/index.less +0 -2
  214. package/lib/ProSelect/utils/index.js +34 -5
  215. package/lib/ProStep/components/Item/index.js +1 -2
  216. package/lib/ProStep/style/index.less +0 -2
  217. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +1 -1
  218. package/lib/ProTable/hooks/useAntdTable.d.ts +3 -0
  219. package/lib/ProTable/hooks/useAntdTable.js +71 -36
  220. package/lib/ProTable/index.d.ts +3 -7
  221. package/lib/ProTable/index.js +8 -13
  222. package/lib/ProTable/propsType.d.ts +3 -2
  223. package/lib/ProTable/style/index.less +4 -6
  224. package/lib/ProTabs/style/index.less +0 -2
  225. package/lib/ProThemeTools/index.d.ts +0 -7
  226. package/lib/ProThemeTools/index.js +5 -12
  227. package/lib/ProThemeTools/style/index.less +0 -2
  228. package/lib/ProTooltip/style/index.less +0 -2
  229. package/lib/ProTree/components/ProTreeSelect/style/index.less +0 -2
  230. package/lib/ProTree/style/index.less +0 -2
  231. package/lib/ProTreeModal/style/index.less +0 -2
  232. package/lib/ProUpload/style/index.less +0 -2
  233. package/lib/ProViewer/style/index.less +0 -2
  234. package/lib/style/theme/antd.less +0 -2
  235. package/package.json +7 -6
  236. package/tests/__mocks__/fileMock.js +1 -0
  237. package/tests/__mocks__/zatUtils.js +27 -0
  238. package/tests/setup.ts +484 -0
  239. package/tests/test-utils.tsx +81 -0
  240. package/dist/index.esm.css +0 -6445
  241. package/dist/index.esm.js +0 -3
  242. package/dist/less.esm.css +0 -5871
  243. package/dist/less.esm.js +0 -3
package/babel.config.js CHANGED
@@ -1,36 +1,13 @@
1
1
  module.exports = {
2
2
  presets: [
3
- [
4
- '@babel/preset-env',
5
- {
6
- loose: true,
7
- },
8
- ],
9
- [
10
- '@babel/preset-react',
11
- {
12
- runtime: 'automatic',
13
- },
14
- ],
3
+ ['@babel/preset-env', { loose: true }],
4
+ ['@babel/preset-react', { runtime: 'automatic' }],
5
+ '@babel/preset-typescript',
15
6
  ],
16
7
  plugins: [
17
- [
18
- '@babel/plugin-transform-class-properties',
19
- {
20
- loose: true,
21
- },
22
- ],
23
- [
24
- '@babel/plugin-transform-private-methods',
25
- {
26
- loose: true,
27
- },
28
- ],
29
- [
30
- '@babel/plugin-transform-private-property-in-object',
31
- {
32
- loose: true,
33
- },
34
- ],
8
+ ['@babel/plugin-proposal-decorators', { legacy: true }],
9
+ ['@babel/plugin-proposal-class-properties', { loose: true }],
10
+ ['@babel/plugin-transform-private-methods', { loose: true }],
11
+ ['@babel/plugin-transform-private-property-in-object', { loose: true }],
35
12
  ],
36
13
  };
@@ -0,0 +1,5 @@
1
+ import validate, { validateNameMap } from './validate';
2
+ import * as transforms from './transforms';
3
+ import * as tools from './tools';
4
+ export { default as regExp } from './regExp';
5
+ export { transforms, tools, validate, validateNameMap };
@@ -0,0 +1,5 @@
1
+ import validate, { validateNameMap } from "./validate";
2
+ import * as transforms from "./transforms";
3
+ import * as tools from "./tools";
4
+ export { default as regExp } from "./regExp";
5
+ export { transforms, tools, validate, validateNameMap };
@@ -0,0 +1,19 @@
1
+ declare const _default: {
2
+ isPhone: RegExp;
3
+ isEmail: RegExp;
4
+ isUrl: RegExp;
5
+ isTel: RegExp;
6
+ isPassword: RegExp;
7
+ isUSCC: RegExp;
8
+ isIdCardNo: RegExp;
9
+ isBirthType: RegExp;
10
+ isPassportType: RegExp;
11
+ isMilitaryID: RegExp;
12
+ isBandCard: RegExp;
13
+ isBankCard: RegExp;
14
+ isBusinessLicense: RegExp;
15
+ isOCC: RegExp;
16
+ isHouseholdRegister: RegExp;
17
+ isIPv4: RegExp;
18
+ };
19
+ export default _default;
@@ -0,0 +1,73 @@
1
+ var isPhone = /^1(3|4|5|6|7|8|9)\d{9}$/;
2
+ var isEmail = /^[A-Za-z0-9]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
3
+ var isUrl = /http(s)?:\/\/[\w.]+[\w/]*[\w.]*\??[\w=&+%]*/;
4
+ var isTel = /0\d{2,3}-\d{7,8}/;
5
+ var isPassword = /^(?![A-Za-z]+$)(?![A-Z\d]+$)(?![A-Z\W]+$)(?![a-z\d]+$)(?![a-z\W]+$)(?![\d\W]+$)\S{8,20}$/;
6
+ var isUSCC = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/;
7
+ var isIdCardNo = /^(11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\d{4}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
8
+ var isBirthType = /^[A-Z]{1}(11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{7}$/;
9
+ var isPassportType = /^[0-9A-Za-z]{5,18}$/;
10
+ var isMilitaryID = /^[\u4e00-\u9fa5][0-9A-Z]{6,8}$/;
11
+ var isBandCard = /^\d{11,23}$/;
12
+ var isBusinessLicense = /(^\d{15}$)|(^[A-Z0-9]{18}$)/;
13
+ var isOCC = /^[A-Z0-9]{8}-[A-Z0-9]{1}$/;
14
+ var isIPv4 = /^(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/;
15
+
16
+ // const 台湾大陆通行证 = /^[0-9]{8}$/; // 8个阿拉伯数字
17
+ // const 港澳通行证 = /^[H,M]{1}[0-9]{10}$/; // H或M+ 10位阿拉伯数字香港:H/澳门:M
18
+
19
+ // 地区:(81/82/83)
20
+ // 年的前两位:(18|19|([23]\d)) 1800-2399
21
+ // 年的后两位:\d{2}
22
+ // 月份:((0[1-9])|(10|11|12))
23
+ // 天数:(([0-2][1-9])|10|20|30|31) 闰年不能禁止29+
24
+ // 三位顺序码:\d{3}
25
+ // 校验码: [0-9X]
26
+ // const 港澳台居住证 =
27
+ // /^8[123](0000)(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9X]$/;
28
+
29
+ // 3位字母表达式国家代号
30
+ // 1到4位数字表示办证机关代码
31
+ // 5到10位数字表示出生年月日:
32
+ // 年的前两位:(18|19|([23]\d)) 1800-2399
33
+ // 年的后两位:\d{2}
34
+ // 月份:((0[1-9])|(10|11|12))
35
+ // 天数:(([0-2][1-9])|10|20|30|31) 闰年不能禁止29+
36
+
37
+ // 11到12位数字
38
+ // const 外国人永久居留证 =
39
+ // // /^[A-Z]{3}\d{4}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$/;
40
+
41
+ export default {
42
+ isPhone: isPhone,
43
+ // 手机号
44
+ isEmail: isEmail,
45
+ // 邮箱
46
+ isUrl: isUrl,
47
+ // 地址
48
+ isTel: isTel,
49
+ // 固定电话
50
+ isPassword: isPassword,
51
+ // 数字、小写字母、大写字母、符号 4种里面必须包含三种
52
+ isUSCC: isUSCC,
53
+ // 社会统一信用代码
54
+ isIdCardNo: isIdCardNo,
55
+ // 身份证号
56
+ isBirthType: isBirthType,
57
+ // 出生证
58
+ isPassportType: isPassportType,
59
+ // 护照
60
+ isMilitaryID: isMilitaryID,
61
+ // 军官证
62
+ isBandCard: isBandCard,
63
+ // 银行卡
64
+ isBankCard: isBandCard,
65
+ // 银行卡
66
+ isBusinessLicense: isBusinessLicense,
67
+ // 营业执照
68
+ isOCC: isOCC,
69
+ // 组织机构代码
70
+ isHouseholdRegister: isIdCardNo,
71
+ // 户口本号 同身份证
72
+ isIPv4: isIPv4
73
+ };
@@ -0,0 +1,4 @@
1
+ type Operator = '+' | '-' | '*' | '/' | '%';
2
+ type NumberItem = string | number | null | undefined;
3
+ declare const calc: (...rest: (NumberItem | Operator)[]) => number;
4
+ export default calc;
@@ -0,0 +1,67 @@
1
+ import Big from 'big.js';
2
+ import isNumber from 'lodash/isNumber';
3
+ var funMap = {
4
+ '+': 'plus',
5
+ '-': 'minus',
6
+ '*': 'times',
7
+ '/': 'div',
8
+ '%': 'mod'
9
+ };
10
+ var calcMap = {
11
+ '+': function _(num1, num2) {
12
+ return Number(new Big(num1).plus(num2));
13
+ },
14
+ '-': function _(num1, num2) {
15
+ return Number(new Big(num1).minus(num2));
16
+ },
17
+ '*': function _(num1, num2) {
18
+ return Number(new Big(num1).times(num2));
19
+ },
20
+ '/': function _(num1, num2) {
21
+ return Number(new Big(num1).div(num2));
22
+ },
23
+ '%': function _(num1, num2) {
24
+ return Number(new Big(num1).mod(num2));
25
+ }
26
+ };
27
+ var calc = function calc() {
28
+ var flag = true;
29
+ for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ rest[_key] = arguments[_key];
31
+ }
32
+ if (rest.length < 3 || rest.length % 2 !== 1) {
33
+ console.warn("calc\u53C2\u6570\u4E0D\u6B63\u786E");
34
+ return NaN;
35
+ }
36
+ var args = rest.map(function (item, index) {
37
+ if (index % 2 === 0) {
38
+ if (!isNumber(item)) {
39
+ if (item === undefined) return 0;
40
+
41
+ // 尝试强转为Number
42
+ if (!Number.isNaN(Number(item))) {
43
+ return Number(item);
44
+ }
45
+ flag = false;
46
+ console.warn("calc\u6267\u884C\u5F02\u5E38, \u7B2C".concat(index + 1, "\u4E2A\u53C2\u6570`").concat(item, "`\u4E0D\u6B63\u786E, \u5947\u6570\u4F4D\u53C2\u6570\u53EA\u63A5\u6536\u6570\u5B57\u7C7B\u578B"));
47
+ return NaN;
48
+ }
49
+ } else {
50
+ if (!Object.keys(funMap).includes(item)) {
51
+ flag = false;
52
+ console.warn("\u4E0D\u652F\u6301\u7684\u8FD0\u7B97\u7B26 `".concat(item, "`"));
53
+ return NaN;
54
+ }
55
+ }
56
+ return item;
57
+ });
58
+ if (!flag) return NaN;
59
+ var result = new Big(args[0]);
60
+ for (var _index = 1; _index < args.length; _index += 2) {
61
+ var operator = args[_index];
62
+ var num = args[_index + 1];
63
+ result = result[funMap[operator]](num);
64
+ }
65
+ return Number(result);
66
+ };
67
+ export default calc;
@@ -0,0 +1,7 @@
1
+ import { Dayjs } from 'dayjs';
2
+ /**
3
+ * @description: 兼容性函数:安全地将moment或dayjs对象转换为dayjs
4
+ * @param {any} value - 可能是moment对象、dayjs对象、字符串或其他日期值
5
+ * @returns {Dayjs | null} - 返回有效的dayjs对象或null
6
+ */
7
+ export declare const safeToDate: (value: any) => Dayjs | null;
@@ -0,0 +1,23 @@
1
+ import dayjs from 'dayjs';
2
+
3
+ /**
4
+ * @description: 兼容性函数:安全地将moment或dayjs对象转换为dayjs
5
+ * @param {any} value - 可能是moment对象、dayjs对象、字符串或其他日期值
6
+ * @returns {Dayjs | null} - 返回有效的dayjs对象或null
7
+ */
8
+ export var safeToDate = function safeToDate(value) {
9
+ if (!value) return null;
10
+
11
+ // 如果已经是dayjs对象
12
+ if (value.constructor && value.constructor.name === 'Dayjs') {
13
+ return value;
14
+ }
15
+
16
+ // 如果是moment对象或者其他日期对象,尝试转换
17
+ try {
18
+ var converted = dayjs(value);
19
+ return converted.isValid() ? converted : null;
20
+ } catch (error) {
21
+ return null;
22
+ }
23
+ };
@@ -0,0 +1,9 @@
1
+ import { Dayjs } from 'dayjs';
2
+ type DisabledDateListProps = Array<Dayjs | any | null | undefined>;
3
+ /**
4
+ * @description: 支持传入多组日期范围, 每组中包含的日期会被禁用
5
+ * @param {DisabledDateListProps} disabledDateList
6
+ * @return {Boolean}
7
+ */
8
+ declare const disableDate: (...disabledDateList: DisabledDateListProps[]) => (currentDate: Dayjs | any) => boolean;
9
+ export default disableDate;
@@ -0,0 +1,43 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { safeToDate } from "../dateUtils";
8
+ /**
9
+ * @description: 支持传入多组日期范围, 每组中包含的日期会被禁用
10
+ * @param {DisabledDateListProps} disabledDateList
11
+ * @return {Boolean}
12
+ */
13
+ var disableDate = function disableDate() {
14
+ for (var _len = arguments.length, disabledDateList = new Array(_len), _key = 0; _key < _len; _key++) {
15
+ disabledDateList[_key] = arguments[_key];
16
+ }
17
+ return function (currentDate) {
18
+ var safeCurrentDate = safeToDate(currentDate);
19
+ if (!safeCurrentDate) return false;
20
+ return disabledDateList.some(function (disabledDate) {
21
+ var _safeToDate, _safeToDate2;
22
+ var _disabledDate = _slicedToArray(disabledDate, 2),
23
+ beforeDate = _disabledDate[0],
24
+ afterDate = _disabledDate[1];
25
+ if (!beforeDate && !afterDate) {
26
+ return false;
27
+ }
28
+ var _beforeDate = beforeDate ? (_safeToDate = safeToDate(beforeDate)) === null || _safeToDate === void 0 ? void 0 : _safeToDate.endOf('day') : null;
29
+ var _afterDate = afterDate ? (_safeToDate2 = safeToDate(afterDate)) === null || _safeToDate2 === void 0 ? void 0 : _safeToDate2.startOf('day') : null;
30
+ if (beforeDate && !afterDate) {
31
+ return _beforeDate ? safeCurrentDate.isAfter(_beforeDate) : false;
32
+ }
33
+ if (!beforeDate && afterDate) {
34
+ return _afterDate ? safeCurrentDate.isBefore(_afterDate) : false;
35
+ }
36
+ if (beforeDate && afterDate) {
37
+ return (_beforeDate ? safeCurrentDate.isAfter(_beforeDate) : false) && (_afterDate ? safeCurrentDate.isBefore(_afterDate) : false);
38
+ }
39
+ return false;
40
+ });
41
+ };
42
+ };
43
+ export default disableDate;
@@ -0,0 +1,9 @@
1
+ import { Dayjs } from 'dayjs';
2
+ export type DateType = Dayjs | any | undefined;
3
+ type DisabledTimeProps = [DateType?, DateType?];
4
+ declare const disableTimeRange: (dateRange: DisabledTimeProps) => (date: Dayjs | any | null) => {
5
+ disabledHours: () => number[];
6
+ disabledMinutes: () => number[];
7
+ disabledSeconds: () => number[];
8
+ };
9
+ export default disableTimeRange;
@@ -0,0 +1,121 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { safeToDate } from "../dateUtils";
8
+
9
+ // start和end之间所有整数数组
10
+ var range = function range(start, end) {
11
+ var result = [];
12
+ if (typeof start !== 'number' || typeof end !== 'number') return [];
13
+ for (var i = start; i < end; i++) {
14
+ result.push(i);
15
+ }
16
+ return result;
17
+ };
18
+ var disableTimeRange = function disableTimeRange(dateRange) {
19
+ // 没有传入日期范围 不限制时间
20
+ if (!Array.isArray(dateRange) || !dateRange[0] && !dateRange[1]) {
21
+ return function () {
22
+ return {
23
+ disabledHours: function disabledHours() {
24
+ return [];
25
+ },
26
+ disabledMinutes: function disabledMinutes() {
27
+ return [];
28
+ },
29
+ disabledSeconds: function disabledSeconds() {
30
+ return [];
31
+ }
32
+ };
33
+ };
34
+ }
35
+ return function (date) {
36
+ // 安全转换输入的日期
37
+ var safeDate = safeToDate(date);
38
+ var _dateRange = _slicedToArray(dateRange, 2),
39
+ startTimeInput = _dateRange[0],
40
+ endTimeInput = _dateRange[1];
41
+ var startTime = safeToDate(startTimeInput);
42
+ var endTime = safeToDate(endTimeInput);
43
+
44
+ // 没有选中日期 不限制时间
45
+ if (!safeDate || !endTime && safeDate.isAfter(startTime, 'day') || !startTime && safeDate.isBefore(endTime, 'day')) {
46
+ // 日期符合范围 不做时分秒禁用
47
+ return {
48
+ disabledHours: function disabledHours() {
49
+ return [];
50
+ },
51
+ disabledMinutes: function disabledMinutes() {
52
+ return [];
53
+ },
54
+ disabledSeconds: function disabledSeconds() {
55
+ return [];
56
+ }
57
+ };
58
+ }
59
+ var _disabledHours = [];
60
+ var _disabledMinutes = [];
61
+ var _disabledSeconds = [];
62
+ if (startTime !== null && startTime !== void 0 && startTime.isSame(safeDate, 'day')) {
63
+ // 起始当日 时分秒禁用逻辑
64
+
65
+ var hour = startTime.hour();
66
+ var minute = startTime.minute();
67
+ var second = startTime.second();
68
+ var startHour = hour;
69
+ var startMinute = minute;
70
+ var startSecond = second;
71
+ if (safeDate.hour() > hour) {
72
+ startMinute = 0;
73
+ startSecond = 0;
74
+ } else if (safeDate.minute() > minute) {
75
+ startSecond = 0;
76
+ }
77
+ _disabledHours = _disabledHours.concat(range(0, startHour));
78
+ _disabledMinutes = _disabledMinutes.concat(range(0, startMinute));
79
+ _disabledSeconds = _disabledSeconds.concat(range(0, startSecond));
80
+ }
81
+ if (endTime !== null && endTime !== void 0 && endTime.isSame(safeDate, 'day')) {
82
+ // 结束当日 时分秒禁用逻辑
83
+
84
+ var _hour = endTime.hour();
85
+ var _minute = endTime.minute();
86
+ var _second = endTime.second();
87
+ var endHour = _hour;
88
+ var endMinute = _minute;
89
+ var endSecond = _second;
90
+ if (safeDate.hour() < _hour) {
91
+ endMinute = 60;
92
+ endSecond = 60;
93
+ } else if (safeDate.minute() < _minute) {
94
+ endSecond = 60;
95
+ }
96
+ _disabledHours = _disabledHours.concat(range(endHour + 1, 24));
97
+ _disabledMinutes = _disabledMinutes.concat(range(endMinute + 1, 60));
98
+ _disabledSeconds = _disabledSeconds.concat(range(endSecond, 60));
99
+ }
100
+ if (startTime !== null && startTime !== void 0 && startTime.isAfter(safeDate, 'day') || endTime !== null && endTime !== void 0 && endTime.isBefore(safeDate, 'day')) {
101
+ // 日期不在可选范围内
102
+ _disabledHours = _disabledHours.concat(range(0, 24));
103
+ _disabledMinutes = _disabledMinutes.concat(range(0, 60));
104
+ _disabledSeconds = _disabledSeconds.concat(range(0, 60));
105
+ }
106
+
107
+ // 当前日期不在起止时间范围内
108
+ return {
109
+ disabledHours: function disabledHours() {
110
+ return _disabledHours;
111
+ },
112
+ disabledMinutes: function disabledMinutes() {
113
+ return _disabledMinutes;
114
+ },
115
+ disabledSeconds: function disabledSeconds() {
116
+ return _disabledSeconds;
117
+ }
118
+ };
119
+ };
120
+ };
121
+ export default disableTimeRange;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 将数值转换成千分位, precision表示保留的小数位
3
+ * @param {number} number
4
+ * @param {number} precision
5
+ */
6
+ declare const formatAmount: (number: any, precision?: number) => string;
7
+ export default formatAmount;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 将数值转换成千分位, precision表示保留的小数位
3
+ * @param {number} number
4
+ * @param {number} precision
5
+ */
6
+ var formatAmount = function formatAmount(number) {
7
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
8
+ if (isNaN(Number(number))) return '';
9
+ return Number(number).toLocaleString('zh-CN', {
10
+ minimumFractionDigits: precision,
11
+ maximumFractionDigits: precision
12
+ });
13
+ };
14
+ export default formatAmount;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 将数值转换成千分比
3
+ * @param {numberr} number
4
+ * @param {number} precision
5
+ */
6
+ declare const formatPerMill: (value: any, precision?: number) => string;
7
+ export default formatPerMill;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 将数值转换成千分比
3
+ * @param {numberr} number
4
+ * @param {number} precision
5
+ */
6
+ var formatPerMill = function formatPerMill(value) {
7
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
8
+ if (isNaN(Number(value))) return '';
9
+ return (value * 1000).toFixed(precision);
10
+ };
11
+ export default formatPerMill;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 将数值转换成百分比
3
+ * @param {numberr} number
4
+ * @param {number} precision
5
+ */
6
+ declare const formatPercent: (value: any, precision?: number) => string;
7
+ export default formatPercent;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 将数值转换成百分比
3
+ * @param {numberr} number
4
+ * @param {number} precision
5
+ */
6
+ var formatPercent = function formatPercent(value) {
7
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
8
+ if (isNaN(Number(value))) return '';
9
+ return (value * 100).toFixed(precision);
10
+ };
11
+ export default formatPercent;
@@ -0,0 +1,16 @@
1
+ interface Options {
2
+ fieldNames?: {
3
+ male: any;
4
+ female: any;
5
+ };
6
+ }
7
+ /**
8
+ * @description: 根据身份证号返回生日和性别
9
+ * @param {string} card 只支持18位身份证号
10
+ */
11
+ declare const getDataByIdCard: (card: string, option?: Options) => false | {
12
+ birthday: string;
13
+ gender: string;
14
+ age: number;
15
+ };
16
+ export default getDataByIdCard;
@@ -0,0 +1,65 @@
1
+ import dayjs from 'dayjs';
2
+ import { safeToDate } from "../dateUtils";
3
+ /**
4
+ * @description: 根据身份证号返回生日和性别
5
+ * @param {string} card 只支持18位身份证号
6
+ */
7
+ var getDataByIdCard = function getDataByIdCard(card, option) {
8
+ var result = {
9
+ birthday: '',
10
+ gender: '',
11
+ age: NaN
12
+ };
13
+ if (!card) return false;
14
+ var _ref = option || {},
15
+ _ref$fieldNames = _ref.fieldNames,
16
+ fieldNames = _ref$fieldNames === void 0 ? {
17
+ male: '1',
18
+ female: '2'
19
+ } : _ref$fieldNames;
20
+ var num = card.toUpperCase();
21
+ // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
22
+ if (!/^\d{17}([0-9]|X)$/.test(num)) {
23
+ return false;
24
+ }
25
+ // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
26
+ // 下面分别分析出生日期和校验位
27
+ var len = num.length;
28
+ if (len === 18) {
29
+ // 获取出生日期
30
+ result.birthday = "".concat(card.substring(6, 10), "-").concat(card.substring(10, 12), "-").concat(card.substring(12, 14));
31
+ // 获取性别 1男
32
+ result.gender = parseInt(card.substr(16, 1), 10) % 2 === 1 ? fieldNames.male : fieldNames.female;
33
+ var reg = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
34
+ var arrSplit = num.match(reg);
35
+ if (!arrSplit) return false;
36
+
37
+ // 检查生日日期是否正确
38
+ var dtmBirth = new Date("".concat(arrSplit[2], "/").concat(arrSplit[3], "/").concat(arrSplit[4]));
39
+ var bGoodDay = dtmBirth.getFullYear() === Number(arrSplit[2]) && dtmBirth.getMonth() + 1 === Number(arrSplit[3]) && dtmBirth.getDate() === Number(arrSplit[4]);
40
+ if (!bGoodDay) return false;
41
+
42
+ // 检验18位身份证的校验码是否正确。
43
+ // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
44
+ var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
45
+ var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
46
+ var nTemp = 0;
47
+ var i;
48
+ for (i = 0; i < 17; i++) {
49
+ // @ts-ignore
50
+ nTemp += num.substr(i, 1) * arrInt[i];
51
+ }
52
+ var valueNum = arrCh[nTemp % 11];
53
+ if (valueNum !== num.substr(17, 1)) {
54
+ return false;
55
+ }
56
+ }
57
+
58
+ // 添加兼容性安全检查
59
+ if (result.birthday) {
60
+ var birthdayDatejs = safeToDate(result.birthday);
61
+ result.age = birthdayDatejs ? dayjs().diff(birthdayDatejs, 'year') : NaN;
62
+ }
63
+ return result;
64
+ };
65
+ export default getDataByIdCard;
@@ -0,0 +1,12 @@
1
+ export { default as calc } from './calc';
2
+ export { default as disableDate } from './disableDate';
3
+ export { default as disableTimeRange } from './disableTimeRange';
4
+ export { default as formatAmount } from './formatAmount';
5
+ export { default as formatPercent } from './formatPercent';
6
+ export { default as formatPerMill } from './formatPerMill';
7
+ export { default as getDataByIdCard } from './getDataByIdCard';
8
+ export { default as sumAmount } from './sumAmount';
9
+ export { default as transformDataName } from './transformDataName';
10
+ export { default as toChineseNum } from './toChineseNum';
11
+ export { default as toFixed } from './toFixed';
12
+ export * from './dateUtils';
@@ -0,0 +1,14 @@
1
+ export { default as calc } from "./calc";
2
+ export { default as disableDate } from "./disableDate";
3
+ export { default as disableTimeRange } from "./disableTimeRange";
4
+ export { default as formatAmount } from "./formatAmount";
5
+ export { default as formatPercent } from "./formatPercent";
6
+ export { default as formatPerMill } from "./formatPerMill";
7
+ export { default as getDataByIdCard } from "./getDataByIdCard";
8
+ export { default as sumAmount } from "./sumAmount";
9
+ export { default as transformDataName } from "./transformDataName";
10
+ export { default as toChineseNum } from "./toChineseNum";
11
+ export { default as toFixed } from "./toFixed";
12
+
13
+ // 导出日期工具函数
14
+ export * from "./dateUtils";
@@ -0,0 +1,16 @@
1
+ export interface SumOptions<T> {
2
+ precision?: number;
3
+ type?: 'amount' | 'percent' | 'perMill' | 'number' | 'percentage' | 'permillage' | 'thousandth';
4
+ key?: keyof T;
5
+ }
6
+ export interface Item {
7
+ [name: string]: any;
8
+ }
9
+ /**
10
+ * @description: 数组内数据求和 并转为 百分位|千分位|百分比
11
+ * @param {Array} list
12
+ * @param {*} precision
13
+ * @return {*}
14
+ */
15
+ declare const sumAmount: <T extends Item>(list: Array<number | string | T>, options: SumOptions<T>) => string | number;
16
+ export default sumAmount;