@sheinx/hooks 3.7.0-beta.3 → 3.7.0-beta.31

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 (155) hide show
  1. package/cjs/common/use-component-memo/index.d.ts +2 -0
  2. package/cjs/common/use-component-memo/index.d.ts.map +1 -0
  3. package/cjs/common/use-component-memo/index.js +13 -0
  4. package/cjs/common/use-component-memo/use-memo.d.ts +2 -0
  5. package/cjs/common/use-component-memo/use-memo.d.ts.map +1 -0
  6. package/cjs/common/{use-memo → use-component-memo}/use-memo.js +2 -2
  7. package/cjs/common/use-filter/index.d.ts +1 -0
  8. package/cjs/common/use-filter/index.d.ts.map +1 -1
  9. package/cjs/common/use-filter/index.js +7 -0
  10. package/cjs/common/use-filter/use-filter-context.d.ts +7 -0
  11. package/cjs/common/use-filter/use-filter-context.d.ts.map +1 -0
  12. package/cjs/common/use-filter/use-filter-context.js +10 -0
  13. package/cjs/common/use-filter/use-filter.d.ts +1 -0
  14. package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
  15. package/cjs/common/use-filter/use-filter.js +2 -0
  16. package/cjs/common/use-position-style/check-element-size.d.ts +10 -0
  17. package/cjs/common/use-position-style/check-element-size.d.ts.map +1 -0
  18. package/cjs/common/use-position-style/check-element-size.js +65 -0
  19. package/cjs/common/use-position-style/index.d.ts.map +1 -1
  20. package/cjs/common/use-position-style/index.js +5 -8
  21. package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  22. package/cjs/components/use-form/use-form-control/use-form-control.js +15 -2
  23. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
  24. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  25. package/cjs/components/use-form/use-form.d.ts +4 -4
  26. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  27. package/cjs/components/use-form/use-form.js +38 -29
  28. package/cjs/components/use-form/use-form.type.d.ts +1 -0
  29. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  30. package/cjs/components/use-image/use-image.d.ts +2 -0
  31. package/cjs/components/use-image/use-image.d.ts.map +1 -1
  32. package/cjs/components/use-image/use-image.js +40 -2
  33. package/cjs/components/use-popup/popup-context.d.ts +2 -0
  34. package/cjs/components/use-popup/popup-context.d.ts.map +1 -1
  35. package/cjs/components/use-popup/popup-context.js +2 -0
  36. package/cjs/components/use-popup/use-popup.d.ts +4 -0
  37. package/cjs/components/use-popup/use-popup.d.ts.map +1 -1
  38. package/cjs/components/use-popup/use-popup.js +33 -13
  39. package/cjs/components/use-table/index.d.ts +1 -1
  40. package/cjs/components/use-table/index.d.ts.map +1 -1
  41. package/cjs/components/use-table/use-table-group.d.ts.map +1 -1
  42. package/cjs/components/use-table/use-table-group.js +3 -1
  43. package/cjs/components/use-table/use-table-layout.d.ts.map +1 -1
  44. package/cjs/components/use-table/use-table-layout.js +29 -2
  45. package/cjs/components/use-table/use-table-row.d.ts +0 -1
  46. package/cjs/components/use-table/use-table-row.d.ts.map +1 -1
  47. package/cjs/components/use-table/use-table-row.js +0 -11
  48. package/cjs/components/use-table/use-table-virtual.d.ts +2 -2
  49. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  50. package/cjs/components/use-table/use-table-virtual.js +16 -14
  51. package/cjs/components/use-table/use-table.type.d.ts +13 -10
  52. package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
  53. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  54. package/cjs/components/use-tree/use-tree.js +25 -7
  55. package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
  56. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  57. package/cjs/components/use-upload/use-upload.d.ts.map +1 -1
  58. package/cjs/components/use-upload/use-upload.js +54 -34
  59. package/cjs/components/use-upload/use-upload.type.d.ts +7 -0
  60. package/cjs/components/use-upload/use-upload.type.d.ts.map +1 -1
  61. package/cjs/index.d.ts +1 -1
  62. package/cjs/index.d.ts.map +1 -1
  63. package/cjs/index.js +4 -4
  64. package/cjs/utils/highlight.d.ts +7 -0
  65. package/cjs/utils/highlight.d.ts.map +1 -0
  66. package/cjs/utils/highlight.js +67 -0
  67. package/cjs/utils/index.d.ts +1 -0
  68. package/cjs/utils/index.d.ts.map +1 -1
  69. package/cjs/utils/index.js +12 -0
  70. package/cjs/utils/string.d.ts +1 -0
  71. package/cjs/utils/string.d.ts.map +1 -1
  72. package/cjs/utils/string.js +13 -0
  73. package/esm/common/use-component-memo/index.d.ts +2 -0
  74. package/esm/common/use-component-memo/index.d.ts.map +1 -0
  75. package/esm/common/use-component-memo/index.js +2 -0
  76. package/esm/common/use-component-memo/use-memo.d.ts +2 -0
  77. package/esm/common/use-component-memo/use-memo.d.ts.map +1 -0
  78. package/esm/common/{use-memo → use-component-memo}/use-memo.js +1 -1
  79. package/esm/common/use-filter/index.d.ts +1 -0
  80. package/esm/common/use-filter/index.d.ts.map +1 -1
  81. package/esm/common/use-filter/index.js +2 -1
  82. package/esm/common/use-filter/use-filter-context.d.ts +7 -0
  83. package/esm/common/use-filter/use-filter-context.d.ts.map +1 -0
  84. package/esm/common/use-filter/use-filter-context.js +3 -0
  85. package/esm/common/use-filter/use-filter.d.ts +1 -0
  86. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  87. package/esm/common/use-filter/use-filter.js +2 -0
  88. package/esm/common/use-position-style/check-element-size.d.ts +10 -0
  89. package/esm/common/use-position-style/check-element-size.d.ts.map +1 -0
  90. package/esm/common/use-position-style/check-element-size.js +59 -0
  91. package/esm/common/use-position-style/index.d.ts.map +1 -1
  92. package/esm/common/use-position-style/index.js +5 -8
  93. package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  94. package/esm/components/use-form/use-form-control/use-form-control.js +15 -2
  95. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
  96. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  97. package/esm/components/use-form/use-form.d.ts +4 -4
  98. package/esm/components/use-form/use-form.d.ts.map +1 -1
  99. package/esm/components/use-form/use-form.js +38 -29
  100. package/esm/components/use-form/use-form.type.d.ts +1 -0
  101. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  102. package/esm/components/use-image/use-image.d.ts +2 -0
  103. package/esm/components/use-image/use-image.d.ts.map +1 -1
  104. package/esm/components/use-image/use-image.js +40 -2
  105. package/esm/components/use-popup/popup-context.d.ts +2 -0
  106. package/esm/components/use-popup/popup-context.d.ts.map +1 -1
  107. package/esm/components/use-popup/popup-context.js +2 -0
  108. package/esm/components/use-popup/use-popup.d.ts +4 -0
  109. package/esm/components/use-popup/use-popup.d.ts.map +1 -1
  110. package/esm/components/use-popup/use-popup.js +34 -14
  111. package/esm/components/use-table/index.d.ts +1 -1
  112. package/esm/components/use-table/index.d.ts.map +1 -1
  113. package/esm/components/use-table/use-table-group.d.ts.map +1 -1
  114. package/esm/components/use-table/use-table-group.js +3 -1
  115. package/esm/components/use-table/use-table-layout.d.ts.map +1 -1
  116. package/esm/components/use-table/use-table-layout.js +29 -2
  117. package/esm/components/use-table/use-table-row.d.ts +0 -1
  118. package/esm/components/use-table/use-table-row.d.ts.map +1 -1
  119. package/esm/components/use-table/use-table-row.js +0 -11
  120. package/esm/components/use-table/use-table-virtual.d.ts +2 -2
  121. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  122. package/esm/components/use-table/use-table-virtual.js +16 -14
  123. package/esm/components/use-table/use-table.type.d.ts +13 -10
  124. package/esm/components/use-table/use-table.type.d.ts.map +1 -1
  125. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  126. package/esm/components/use-tree/use-tree.js +26 -8
  127. package/esm/components/use-tree/use-tree.type.d.ts +1 -0
  128. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  129. package/esm/components/use-upload/use-upload.d.ts.map +1 -1
  130. package/esm/components/use-upload/use-upload.js +54 -34
  131. package/esm/components/use-upload/use-upload.type.d.ts +7 -0
  132. package/esm/components/use-upload/use-upload.type.d.ts.map +1 -1
  133. package/esm/index.d.ts +1 -1
  134. package/esm/index.d.ts.map +1 -1
  135. package/esm/index.js +1 -1
  136. package/esm/utils/highlight.d.ts +7 -0
  137. package/esm/utils/highlight.d.ts.map +1 -0
  138. package/esm/utils/highlight.js +59 -0
  139. package/esm/utils/index.d.ts +1 -0
  140. package/esm/utils/index.d.ts.map +1 -1
  141. package/esm/utils/index.js +1 -0
  142. package/esm/utils/string.d.ts +1 -0
  143. package/esm/utils/string.d.ts.map +1 -1
  144. package/esm/utils/string.js +12 -0
  145. package/package.json +1 -1
  146. package/cjs/common/use-memo/index.d.ts +0 -2
  147. package/cjs/common/use-memo/index.d.ts.map +0 -1
  148. package/cjs/common/use-memo/index.js +0 -20
  149. package/cjs/common/use-memo/use-memo.d.ts +0 -2
  150. package/cjs/common/use-memo/use-memo.d.ts.map +0 -1
  151. package/esm/common/use-memo/index.d.ts +0 -2
  152. package/esm/common/use-memo/index.d.ts.map +0 -1
  153. package/esm/common/use-memo/index.js +0 -2
  154. package/esm/common/use-memo/use-memo.d.ts +0 -2
  155. package/esm/common/use-memo/use-memo.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA0B/D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;;kBA6IpC,CAAC,YAAY,GAAG,EAAE;;;;;EAkDrD"}
1
+ {"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,yBAAyB,CAAC;AA2BnF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;;kBAiJpC,CAAC,YAAY,GAAG,EAAE;;;;;EA4DrD"}
@@ -19,6 +19,7 @@ import { deepGet } from "../../../utils/object";
19
19
  import { shallowEqual } from "../../../utils/shallow-equal";
20
20
  import usePersistFn from "../../../common/use-persist-fn";
21
21
  import useLatestObj from "../../../common/use-latest-obj";
22
+ import { devUseWarning } from "../../../utils/warning";
22
23
  var getValue = function getValue(name, formValue) {
23
24
  if (!name) return undefined;
24
25
  if (isArray(name)) {
@@ -58,6 +59,10 @@ export default function useFormControl(props) {
58
59
  _React$useState2 = _slicedToArray(_React$useState, 2),
59
60
  errorState = _React$useState2[0],
60
61
  setErrorState = _React$useState2[1];
62
+ var _React$useRef = React.useRef({
63
+ mounted: false
64
+ }),
65
+ context = _React$useRef.current;
61
66
  var value;
62
67
  var error = errorState;
63
68
  var inForm = false;
@@ -212,12 +217,20 @@ export default function useFormControl(props) {
212
217
  if (isArray(name)) {
213
218
  var dv = isArray(defaultValue) ? defaultValue : [];
214
219
  name.forEach(function (n, index) {
215
- controlFunc.bind(n, dv[index], validateField, update);
220
+ var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(n);
221
+ var bindedValue = v === undefined ? dv[index] : v;
222
+ controlFunc.bind(n, context.mounted ? bindedValue : dv[index], validateField, update);
216
223
  });
217
224
  } else {
218
- controlFunc.bind(name, defaultValue, validateField, update);
225
+ var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(name);
226
+ var bindedValue = v === undefined ? defaultValue : v;
227
+ controlFunc.bind(name, context.mounted ? bindedValue : defaultValue, validateField, update);
228
+ }
229
+ if (context.mounted) {
230
+ devUseWarning.warn('Please avoid modifying the name property after the component has mounted, as this may result in unintended behavior or errors.');
219
231
  }
220
232
  }
233
+ context.mounted = true;
221
234
  return function () {
222
235
  if (inForm && controlFunc) {
223
236
  if (isArray(name)) {
@@ -33,4 +33,7 @@ export interface BaseFormControlProps<T> {
33
33
  */
34
34
  getValidateProps: (() => ObjectType) | undefined;
35
35
  }
36
+ export interface FormControlContext {
37
+ mounted: boolean;
38
+ }
36
39
  //# sourceMappingURL=use-form-control.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD"}
1
+ {"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -11,10 +11,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
11
11
  [key: string]: any;
12
12
  }, option?: {
13
13
  validate?: boolean;
14
- names?: string[];
14
+ forceUpdate?: boolean;
15
15
  }) => void;
16
16
  getValue: (name?: string) => unknown;
17
- submit: (withValidate?: boolean) => void;
17
+ submit: (withValidate?: boolean, callback?: () => void) => void;
18
18
  reset: () => void;
19
19
  setError: (name: string, e: Error | undefined) => void;
20
20
  getErrors: () => ObjectType<Error | undefined>;
@@ -31,10 +31,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
31
31
  [key: string]: any;
32
32
  }, option?: {
33
33
  validate?: boolean;
34
- names?: string[];
34
+ forceUpdate?: boolean;
35
35
  }) => void;
36
36
  getValue: (name?: string) => unknown;
37
- submit: (withValidate?: boolean) => void;
37
+ submit: (withValidate?: boolean, callback?: () => void) => void;
38
38
  reset: () => void;
39
39
  setError: (name: string, e: Error | undefined) => void;
40
40
  getErrors: () => ObjectType<Error | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAyRC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BA9Jd,MAAM;oCAiOD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCA5LxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCA8PvB,MAAM,WAAW,gBAAgB;gCA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAnIpD,MAAM,0BAAyB,qBAAqB;;;;;;oBAqEjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BA9Jd,MAAM;gCAiOD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCA5LxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCA8PvB,MAAM,WAAW,gBAAgB;4BA/CzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAnIpD,MAAM,0BAAyB,qBAAqB;;CAma9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAgSC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,WAAW,CAAC,EAAE,OAAO,CAAA;aAAE;8BApKnB,MAAM;oCA+OD,OAAO,aAAoB,MAAM,IAAI;;6BAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCA1MxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCA6QvB,MAAM,WAAW,gBAAgB;gCAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAjJpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,OAAO,CAAA;SAAE;0BApKnB,MAAM;gCA+OD,OAAO,aAAoB,MAAM,IAAI;;yBAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCA1MxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCA6QvB,MAAM,WAAW,gBAAgB;4BAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAjJpD,MAAM,0BAAyB,qBAAqB;;CAsb9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -38,7 +38,8 @@ var useForm = function useForm(props) {
38
38
  size = props.size,
39
39
  colon = props.colon,
40
40
  formName = props.name,
41
- scrollParent = props.scrollParent;
41
+ scrollParent = props.scrollParent,
42
+ isControl = props.isControl;
42
43
  var deepSetOptions = {
43
44
  removeUndefined: removeUndefined,
44
45
  forceSet: true
@@ -192,7 +193,7 @@ var useForm = function useForm(props) {
192
193
  if (errors.length > 0) {
193
194
  var errorFields = [];
194
195
  for (var _key in context.errors) {
195
- if (context.errors[_key]) {
196
+ if (context.errors[_key] && context.names.has(_key)) {
196
197
  var _context$errors$_key;
197
198
  errorFields.push({
198
199
  name: _key,
@@ -294,13 +295,16 @@ var useForm = function useForm(props) {
294
295
  var values = Object.keys(vals);
295
296
  // 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
296
297
  values.forEach(function (key) {
297
- deepSet(draft, key, vals[key], deepSetOptions);
298
+ // upload组件返回的可能是函数: (prev) => [...prev, file]
299
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
300
+ deepSet(draft, key, valueOfKey, deepSetOptions);
298
301
  });
299
302
  values.forEach(function (key) {
300
303
  if (option.validate) {
301
304
  var _context$validateMap$;
302
305
  (_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
303
- validate(key, vals[key], current(draft));
306
+ var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
307
+ validate(key, valueOfKey, current(draft));
304
308
  });
305
309
  }
306
310
  });
@@ -311,7 +315,11 @@ var useForm = function useForm(props) {
311
315
  fullKeyPaths.forEach(function (key) {
312
316
  delete context.serverErrors[key];
313
317
  });
314
- update(fullKeyPaths);
318
+ if (option.forceUpdate) {
319
+ update();
320
+ } else {
321
+ update(fullKeyPaths);
322
+ }
315
323
  });
316
324
  var updateDefaultValue = function updateDefaultValue() {
317
325
  if (!context.mounted) return;
@@ -356,6 +364,7 @@ var useForm = function useForm(props) {
356
364
  });
357
365
  var submit = usePersistFn(function () {
358
366
  var withValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
367
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
359
368
  if (disabled) return;
360
369
  if (context.submitLock) {
361
370
  return;
@@ -373,32 +382,29 @@ var useForm = function useForm(props) {
373
382
  while (1) switch (_context.prev = _context.next) {
374
383
  case 0:
375
384
  if (withValidate) {
376
- _context.next = 3;
385
+ _context.next = 4;
377
386
  break;
378
387
  }
379
388
  (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
389
+ callback === null || callback === void 0 || callback();
380
390
  return _context.abrupt("return");
381
- case 3:
382
- _context.next = 5;
391
+ case 4:
392
+ _context.next = 6;
383
393
  return validateFields(undefined, {
384
394
  ignoreBind: true
385
395
  }).catch(function (e) {
386
396
  return e;
387
397
  });
388
- case 5:
398
+ case 6:
389
399
  result = _context.sent;
390
- if (!(result === true)) {
391
- _context.next = 11;
392
- break;
400
+ if (result === true) {
401
+ (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
402
+ if (activeEl) activeEl.focus();
403
+ } else {
404
+ handleSubmitError(result);
393
405
  }
394
- (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
395
- if (activeEl) activeEl.focus();
396
- _context.next = 13;
397
- break;
398
- case 11:
399
- handleSubmitError(result);
400
- return _context.abrupt("return");
401
- case 13:
406
+ callback === null || callback === void 0 || callback();
407
+ case 9:
402
408
  case "end":
403
409
  return _context.stop();
404
410
  }
@@ -482,15 +488,15 @@ var useForm = function useForm(props) {
482
488
  context.updateMap[n] = new Set();
483
489
  }
484
490
  context.updateMap[n].add(updateFn);
491
+ var shouldTriggerResetChange = context.removeArr.has(n);
485
492
  context.removeArr.delete(n);
486
- if (df !== undefined && deepGet(context.value, n) === undefined) {
493
+ var shouldTriggerDefaultChange = df !== undefined && deepGet(context.value, n) === undefined;
494
+ if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
487
495
  if (!context.mounted) context.defaultValues[n] = df;
488
- setTimeout(function () {
489
- onChange(function (v) {
490
- deepSet(v, n, df, deepSetOptions);
491
- });
492
- update(n);
496
+ onChange(function (v) {
497
+ deepSet(v, n, df, deepSetOptions);
493
498
  });
499
+ update(n);
494
500
  }
495
501
  },
496
502
  unbind: function unbind(n, reserveAble, validateField, update) {
@@ -505,7 +511,6 @@ var useForm = function useForm(props) {
505
511
  }
506
512
  if (validateFieldSet.size === 0 && updateFieldSet.size === 0) {
507
513
  context.names.delete(n);
508
- delete context.errors[n];
509
514
  delete context.defaultValues[n];
510
515
  }
511
516
  var finalReserveAble = (_props$reserveAble = props.reserveAble) !== null && _props$reserveAble !== void 0 ? _props$reserveAble : reserveAble;
@@ -600,7 +605,10 @@ var useForm = function useForm(props) {
600
605
  React.useEffect(function () {
601
606
  context.removeLock = false;
602
607
  // 内部 onChange 改的 value, 不需要更新
603
- if (props.value === context.value) return;
608
+ if (props.value === context.value) {
609
+ if (!isControl) update();
610
+ return;
611
+ }
604
612
  if (initValidate && !context.resetTime) {
605
613
  var keys = Object.keys(context.validateMap).filter(function (key) {
606
614
  var oldValue = deepGet(preValue || emptyObj, key);
@@ -610,7 +618,8 @@ var useForm = function useForm(props) {
610
618
  validateFields(keys).catch(function () {});
611
619
  }
612
620
  update();
613
- updateDefaultValue();
621
+ // 默认值上位时会提前触发外部的onChange, 导致外部的多次setFormValue不能合并后生效的问题(ReactDOM.render方式渲染)
622
+ setTimeout(updateDefaultValue);
614
623
  context.resetTime = 0;
615
624
  }, [props.value]);
616
625
  React.useEffect(function () {
@@ -187,6 +187,7 @@ export interface BaseFormProps<T> extends Omit<FormCommonConfig, 'formName'> {
187
187
  }
188
188
  export type UseFormProps<T> = BaseFormProps<T> & {
189
189
  formElRef: React.RefObject<HTMLFormElement>;
190
+ isControl: boolean;
190
191
  };
191
192
  export type FormContext = {
192
193
  defaultValues: ObjectType;
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ declare const useImage: (props?: BaseImageProps) => {
14
14
  onClick: (event: React.MouseEvent<HTMLImageElement | HTMLDivElement>) => void;
15
15
  };
16
16
  getImageProps: <TOther_1 extends ObjectType = ObjectType>(externalProps?: TOther_1) => {
17
+ style: React.CSSProperties;
18
+ } & {
17
19
  [x: string]: (event: any) => void;
18
20
  } & TOther_1 & {
19
21
  alt: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"use-image.d.ts","sourceRoot":"","sources":["use-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,QAAA,MAAM,QAAQ,WAAW,cAAc;;;;;;;;;;yBA6D3B,gBAAgB,CAAC,gBAAgB,GAAG,cAAc,CAAC;;;;;;;;;;;CAmF9D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"use-image.d.ts","sourceRoot":"","sources":["use-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,QAAA,MAAM,QAAQ,WAAW,cAAc;;;;;;;;;;yBAiG3B,gBAAgB,CAAC,gBAAgB,GAAG,cAAc,CAAC;;;;;;;;;;;;;CAoF9D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -36,6 +36,10 @@ var useImage = function useImage() {
36
36
  _React$useState2 = _slicedToArray(_React$useState, 2),
37
37
  status = _React$useState2[0],
38
38
  setStatus = _React$useState2[1];
39
+ var _React$useState3 = React.useState({}),
40
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
41
+ imgCoverStyle = _React$useState4[0],
42
+ setImgCoverStyle = _React$useState4[1];
39
43
  var elementRef = React.useRef(null);
40
44
  var getUrl = function getUrl(url) {
41
45
  var auto = 'autoSSL' in props ? autoSSL : config.autoSSL;
@@ -70,6 +74,35 @@ var useImage = function useImage() {
70
74
  };
71
75
  img.src = getUrl(alt);
72
76
  };
77
+ var handleCoverStyle = function handleCoverStyle(img) {
78
+ var container = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
79
+ if (!container) return;
80
+
81
+ // 根据容器的宽高获取宽高比
82
+ var containerWidth = container.clientWidth;
83
+ var containerHeight = container.clientHeight;
84
+ var containerRatio = containerWidth / containerHeight;
85
+
86
+ // 根据图片的自然尺寸获取宽高比
87
+ var imageWidth = img.naturalWidth;
88
+ var imageHeight = img.naturalHeight;
89
+ var imageRatio = imageWidth / imageHeight;
90
+
91
+ // 判断宽高比,决定图片填充策略
92
+ if (imageRatio > containerRatio) {
93
+ // 图片更宽,宽度占满容器,高度自适应
94
+ setImgCoverStyle({
95
+ height: '100%',
96
+ width: 'auto'
97
+ });
98
+ } else {
99
+ // 图片更高,填满容器高度
100
+ setImgCoverStyle({
101
+ width: '100%',
102
+ height: 'auto'
103
+ });
104
+ }
105
+ };
73
106
  var markToRender = function markToRender() {
74
107
  if (!src) {
75
108
  handleAlt();
@@ -77,7 +110,10 @@ var useImage = function useImage() {
77
110
  }
78
111
  var img = new window.Image();
79
112
  img.onload = function () {
80
- return setStatus(SRC);
113
+ setStatus(SRC);
114
+ if (props.fit === 'fill') {
115
+ handleCoverStyle(img);
116
+ }
81
117
  };
82
118
  img.onerror = function (e) {
83
119
  return handleError(SRC, e);
@@ -106,7 +142,9 @@ var useImage = function useImage() {
106
142
  alt: alt,
107
143
  draggable: !noImgDrag
108
144
  });
109
- return _objectSpread({}, mergedEventHandlers);
145
+ return _objectSpread({
146
+ style: imgCoverStyle
147
+ }, mergedEventHandlers);
110
148
  };
111
149
  var getImageDivProps = function getImageDivProps() {
112
150
  var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
2
  declare const context: React.Context<{
3
+ addParent: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
4
+ removeParent: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
3
5
  bindChild: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
4
6
  removeChild: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
5
7
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"popup-context.d.ts","sourceRoot":"","sources":["popup-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAO7C,QAAA,MAAM,OAAO;sBAJO,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;EAGnB,CAAC;AAE9C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"popup-context.d.ts","sourceRoot":"","sources":["popup-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAS7C,QAAA,MAAM,OAAO;sBANO,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;yBACvC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;sBAC7C,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;EAGnB,CAAC;AAE9C,eAAe,OAAO,CAAC"}
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { createContext } from 'react';
4
4
  var defaultContext = {
5
+ addParent: function addParent(_ref) {},
6
+ removeParent: function removeParent(_ref) {},
5
7
  bindChild: function bindChild(_ref) {},
6
8
  removeChild: function removeChild(_ref) {}
7
9
  };
@@ -39,10 +39,14 @@ declare const usePopup: (props: BasePopupProps) => {
39
39
  openPop: () => void;
40
40
  closePop: () => void;
41
41
  Provider: React.Provider<{
42
+ addParent: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
43
+ removeParent: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
42
44
  bindChild: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
43
45
  removeChild: (_ref: React.MutableRefObject<HTMLElement | null>) => void;
44
46
  }>;
45
47
  providerValue: {
48
+ addParent: (elRef: React.MutableRefObject<HTMLElement | null>) => void;
49
+ removeParent: (elRef: React.MutableRefObject<HTMLElement | null>) => void;
46
50
  bindChild: (elRef: React.MutableRefObject<HTMLElement | null>) => void;
47
51
  removeChild: (elRef: React.MutableRefObject<HTMLElement | null>) => void;
48
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-popup.d.ts","sourceRoot":"","sources":["use-popup.ts"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOhE,QAAA,MAAM,QAAQ,UAAW,cAAc;;;;;;0BA6HK;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;0BAM9B;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;;;;;qBA5B7B;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;2BA6ElD,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;6BAGxC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;;CAqBpE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"use-popup.d.ts","sourceRoot":"","sources":["use-popup.ts"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOhE,QAAA,MAAM,QAAQ,UAAW,cAAc;;;;;;0BAkIK;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;0BAM9B;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;;;;;qBA5B7B;YAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;2BApFzC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;8BAOvC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;2BA2JxD,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;6BAMxC,MAAM,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;;CA8BlE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
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
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
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useContext, useEffect, useMemo, useRef, useState } from 'react';
7
+ import { useContext, useLayoutEffect, useEffect, useRef, useState, useMemo } from 'react';
8
8
  import useClickAway from "../../common/use-click-away";
9
9
  import { getPosition } from "../../utils/position";
10
10
  import usePersistFn from "../../common/use-persist-fn";
@@ -27,21 +27,32 @@ var usePopup = function usePopup(props) {
27
27
  setOpenState = _useState2[1];
28
28
  var _useContext = useContext(popupContext),
29
29
  bindChild = _useContext.bindChild,
30
- removeChild = _useContext.removeChild;
30
+ removeChild = _useContext.removeChild,
31
+ addParent = _useContext.addParent,
32
+ removeParent = _useContext.removeParent;
31
33
  var targetRef = useRef(null);
32
34
  var popupRef = useRef(null);
33
- useEffect(function () {
34
- bindChild(popupRef);
35
- return function () {
36
- removeChild(popupRef);
37
- };
38
- }, []);
39
35
  var _useRef = useRef({
40
36
  triggerTimer: null,
41
37
  // 记录所有的子popup 点击子 popup 不关闭弹窗
42
38
  chain: [targetRef, popupRef]
43
39
  }),
44
40
  context = _useRef.current;
41
+ var handleAddParent = function handleAddParent(elRef) {
42
+ context.chain.push(elRef);
43
+
44
+ // 继续向上添加当前的 popupRef 到父级
45
+ addParent(elRef);
46
+ };
47
+ var handleRemoveParent = function handleRemoveParent(elRef) {
48
+ var index = context.chain.findIndex(function (item) {
49
+ return item === elRef;
50
+ });
51
+ if (index > -1) {
52
+ context.chain.splice(index, 1);
53
+ removeParent(elRef);
54
+ }
55
+ };
45
56
  var open = openState;
46
57
  var changeOpen = function changeOpen(openIn, delay) {
47
58
  if (context.triggerTimer) clearTimeout(context.triggerTimer);
@@ -71,11 +82,6 @@ var usePopup = function usePopup(props) {
71
82
  updatePosition();
72
83
  }
73
84
  setOpenState(!!props.open);
74
-
75
- // 外部传了open时,需要正常的触发onCollapse;触发了onCollapse才能让组件内部的edit状态正确,否则可能会出现弹出层打开了但是用户却无法选择的情况
76
- if (props.open !== undefined) {
77
- changeOpen(!!props.open);
78
- }
79
85
  }, [props.open]);
80
86
 
81
87
  // const getPopUpHeight = () => {
@@ -180,8 +186,13 @@ var usePopup = function usePopup(props) {
180
186
  });
181
187
  var providerValue = useMemo(function () {
182
188
  return {
189
+ addParent: handleAddParent,
190
+ removeParent: handleRemoveParent,
183
191
  bindChild: function bindChild(elRef) {
184
- context.chain.push(elRef);
192
+ if (elRef.current) {
193
+ addParent(elRef);
194
+ context.chain.push(elRef);
195
+ }
185
196
  },
186
197
  removeChild: function removeChild(elRef) {
187
198
  var index = context.chain.findIndex(function (item) {
@@ -189,10 +200,19 @@ var usePopup = function usePopup(props) {
189
200
  });
190
201
  if (index > -1) {
191
202
  context.chain.splice(index, 1);
203
+ removeParent(elRef);
192
204
  }
193
205
  }
194
206
  };
195
207
  }, []);
208
+ useLayoutEffect(function () {
209
+ if (open) {
210
+ bindChild(popupRef);
211
+ }
212
+ return function () {
213
+ removeChild(popupRef);
214
+ };
215
+ }, [open]);
196
216
  return {
197
217
  open: open,
198
218
  position: position,
@@ -7,5 +7,5 @@ export { default as useTableRow } from './use-table-row';
7
7
  export { default as useTableExpand } from './use-table-expand';
8
8
  export { default as useTableTree } from './use-table-tree';
9
9
  export { default as useTableVirtual } from './use-table-virtual';
10
- export type { TableFormatColumn, TableColumnItem, TableHeadColumn, TableGroupColumn, TableSorterInfo, BaseTableProps, TableColumnFilter, TableFilterData, ShouldUpdate, } from './use-table.type';
10
+ export type { TableFormatColumn, TableColumnItem, TableHeadColumn, TableGroupColumn, TableSorterInfo, BaseTableProps, TableColumnFilter, TableFilterData, } from './use-table.type';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEjE,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEjE,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-group.d.ts","sourceRoot":"","sources":["use-table-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAoB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,QAAA,MAAM,aAAa,UAAW,kBAAkB;;;CAsE/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"use-table-group.d.ts","sourceRoot":"","sources":["use-table-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAoB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,QAAA,MAAM,aAAa,UAAW,kBAAkB;;;CAwE/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -27,6 +27,7 @@ var useTableGroup = function useTableGroup(props) {
27
27
  last.colSpan += colSpan;
28
28
  if (col.fixed) last.fixed = col.fixed;
29
29
  if (col.lastFixed) last.lastFixed = true;
30
+ if (col.groupProps) last.groupProps = col.groupProps;
30
31
  } else {
31
32
  var sub = [];
32
33
  colSpan = setColumns(sub, col, level + 1, index);
@@ -39,7 +40,8 @@ var useTableGroup = function useTableGroup(props) {
39
40
  fixed: col.fixed,
40
41
  firstFixed: col.firstFixed,
41
42
  index: index,
42
- columns: sub
43
+ columns: sub,
44
+ groupProps: col.groupProps
43
45
  };
44
46
  columns.push(groupCol);
45
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAerE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA+CX,MAAM,UAAU,MAAM;;;;;;;CA+O5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-layout.d.ts","sourceRoot":"","sources":["use-table-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA0CrE,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAC7E;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,cAAc,UAAW,mBAAmB;;;;;;;;;;;yBA+CX,MAAM,UAAU,MAAM;;;;;;;CA8O5D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -21,6 +21,34 @@ import usePrevious from "../../common/use-previous";
21
21
  import { addResizeObserver } from "../../utils/dom/element";
22
22
  import { isFunc, isNumber } from "../../utils/is";
23
23
  import { toNum } from "../../utils/number";
24
+ function getDecimalAndIntegerPart(num) {
25
+ if (!num) return [0, 0];
26
+ var str = num.toString();
27
+ var dotIndex = str.indexOf('.');
28
+ if (dotIndex === -1) return [parseInt(str), 0];
29
+ var integerPart = parseInt(str.slice(0, dotIndex));
30
+ var decimalPart = parseFloat("0.".concat(str.slice(dotIndex + 1)));
31
+ return [integerPart, decimalPart];
32
+ }
33
+
34
+ // 将所有的小数部分转移到最后一列
35
+ function shiftDecimalToLastColumn(cols) {
36
+ var decimalSum = 0;
37
+ cols.forEach(function (v, i) {
38
+ var _getDecimalAndInteger = getDecimalAndIntegerPart(v),
39
+ _getDecimalAndInteger2 = _slicedToArray(_getDecimalAndInteger, 2),
40
+ inter = _getDecimalAndInteger2[0],
41
+ decimal = _getDecimalAndInteger2[1];
42
+ if (decimal > 0) {
43
+ decimalSum += decimal;
44
+ cols[i] = inter;
45
+ }
46
+ });
47
+ if (decimalSum > 0) {
48
+ cols[cols.length - 1] = Number(cols[cols.length - 1]) + decimalSum;
49
+ }
50
+ return cols;
51
+ }
24
52
  var MIN_RESIZABLE_WIDTH = 20;
25
53
  function compareColumnWidth(curCols, preCols) {
26
54
  if (curCols.length !== preCols.length) return false;
@@ -142,7 +170,7 @@ var useTableLayout = function useTableLayout(props) {
142
170
  if (cols && cols.every(function (v) {
143
171
  return v === 0;
144
172
  })) return;
145
- setColgroup(cols);
173
+ setColgroup(shiftDecimalToLastColumn(cols));
146
174
  setAdjust(adjust);
147
175
  if (!adjust) {
148
176
  updateResizeFlag();
@@ -359,7 +387,6 @@ var useTableLayout = function useTableLayout(props) {
359
387
  width: tableWidth,
360
388
  shouldLastColAuto: props.columnResizable && !adjust,
361
389
  scrollWidth: scrollWidth,
362
- // maxScrollLeft: scrollWidth - context.clientWidth,
363
390
  resizeFlag: resizeFlag
364
391
  };
365
392
  };
@@ -24,7 +24,6 @@ export interface Row {
24
24
  declare const useTableRow: (props: TableRowProps) => {
25
25
  rowData: Row[][];
26
26
  handleCellHover: (rowIndex: number, colSpan?: any) => void;
27
- isCellHover: (rowIndex: number, colSpan?: any) => boolean;
28
27
  hoverIndex: Set<number>;
29
28
  rowSelectMergeStartData: any[];
30
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-row.d.ts","sourceRoot":"","sources":["use-table-row.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtE,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4CD;;;;GAIG;AACH,QAAA,MAAM,WAAW,UAAW,aAAa;;gCASS,MAAM;4BASV,MAAM;;;CAiDnD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"use-table-row.d.ts","sourceRoot":"","sources":["use-table-row.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtE,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4CD;;;;GAIG;AACH,QAAA,MAAM,WAAW,UAAW,aAAa;;gCASS,MAAM;;;CAgDvD,CAAC;AAEF,eAAe,WAAW,CAAC"}