@sheinx/hooks 3.5.2 → 3.5.3-beta.1

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 (135) hide show
  1. package/cjs/common/use-list-select/use-list-select-multiple.js +1 -1
  2. package/cjs/components/use-datepicker/use-datepicker-format.d.ts +1 -1
  3. package/cjs/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
  4. package/cjs/components/use-datepicker/use-datepicker-format.js +6 -3
  5. package/cjs/components/use-datepicker/use-datepicker-range.d.ts +2 -0
  6. package/cjs/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  7. package/cjs/components/use-datepicker/use-datepicker-range.js +15 -0
  8. package/cjs/components/use-datepicker/use-time.d.ts +1 -1
  9. package/cjs/components/use-datepicker/use-time.d.ts.map +1 -1
  10. package/cjs/components/use-datepicker/use-time.js +20 -4
  11. package/cjs/components/use-datepicker/use-time.type.d.ts +2 -0
  12. package/cjs/components/use-datepicker/use-time.type.d.ts.map +1 -1
  13. package/cjs/components/use-datepicker/util.d.ts.map +1 -1
  14. package/cjs/components/use-datepicker/util.js +5 -2
  15. package/cjs/components/use-form/form-func-context.d.ts +2 -2
  16. package/cjs/components/use-form/form-func-context.d.ts.map +1 -1
  17. package/cjs/components/use-form/use-form-context.type.d.ts +12 -2
  18. package/cjs/components/use-form/use-form-context.type.d.ts.map +1 -1
  19. package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  20. package/cjs/components/use-form/use-form-control/use-form-control.js +6 -6
  21. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +4 -0
  22. package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  23. package/cjs/components/use-form/use-form-fieldset/use-form-fieldset.d.ts.map +1 -1
  24. package/cjs/components/use-form/use-form-fieldset/use-form-fieldset.js +2 -1
  25. package/cjs/components/use-form/use-form.d.ts +5 -3
  26. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  27. package/cjs/components/use-form/use-form.js +109 -38
  28. package/cjs/components/use-form/use-form.type.d.ts +27 -7
  29. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  30. package/cjs/components/use-table/use-table-expand.d.ts.map +1 -1
  31. package/cjs/components/use-table/use-table-expand.js +3 -2
  32. package/cjs/components/use-tabs/context.d.ts +3 -3
  33. package/cjs/components/use-tabs/context.d.ts.map +1 -1
  34. package/cjs/components/use-tabs/context.js +4 -1
  35. package/cjs/components/use-tabs/context.type.d.ts +15 -3
  36. package/cjs/components/use-tabs/context.type.d.ts.map +1 -1
  37. package/cjs/components/use-tabs/use-tabs.d.ts +4 -2
  38. package/cjs/components/use-tabs/use-tabs.d.ts.map +1 -1
  39. package/cjs/components/use-tabs/use-tabs.js +6 -0
  40. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  41. package/cjs/components/use-tree/use-tree.js +2 -1
  42. package/cjs/components/use-upload/xhr.d.ts.map +1 -1
  43. package/cjs/components/use-upload/xhr.js +2 -1
  44. package/cjs/utils/dom/element.d.ts +1 -0
  45. package/cjs/utils/dom/element.d.ts.map +1 -1
  46. package/cjs/utils/dom/element.js +5 -0
  47. package/cjs/utils/index.d.ts +1 -0
  48. package/cjs/utils/index.d.ts.map +1 -1
  49. package/cjs/utils/index.js +12 -0
  50. package/cjs/utils/lazyload.d.ts.map +1 -1
  51. package/cjs/utils/lazyload.js +4 -1
  52. package/cjs/utils/number.d.ts.map +1 -1
  53. package/cjs/utils/number.js +2 -1
  54. package/cjs/utils/render.d.ts.map +1 -1
  55. package/cjs/utils/render.js +2 -1
  56. package/cjs/utils/rule/length.d.ts.map +1 -1
  57. package/cjs/utils/rule/length.js +2 -1
  58. package/cjs/utils/rule/regexp.d.ts.map +1 -1
  59. package/cjs/utils/rule/regexp.js +2 -1
  60. package/cjs/utils/rule/rule.d.ts.map +1 -1
  61. package/cjs/utils/rule/rule.js +3 -2
  62. package/cjs/utils/validate/get-rule.js +1 -1
  63. package/cjs/utils/validate/type.d.ts.map +1 -1
  64. package/cjs/utils/validate/type.js +2 -1
  65. package/cjs/utils/warning.d.ts +8 -0
  66. package/cjs/utils/warning.d.ts.map +1 -0
  67. package/cjs/utils/warning.js +36 -0
  68. package/esm/common/use-list-select/use-list-select-multiple.js +1 -1
  69. package/esm/components/use-datepicker/use-datepicker-format.d.ts +1 -1
  70. package/esm/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
  71. package/esm/components/use-datepicker/use-datepicker-format.js +6 -3
  72. package/esm/components/use-datepicker/use-datepicker-range.d.ts +2 -0
  73. package/esm/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  74. package/esm/components/use-datepicker/use-datepicker-range.js +15 -0
  75. package/esm/components/use-datepicker/use-time.d.ts +1 -1
  76. package/esm/components/use-datepicker/use-time.d.ts.map +1 -1
  77. package/esm/components/use-datepicker/use-time.js +20 -4
  78. package/esm/components/use-datepicker/use-time.type.d.ts +2 -0
  79. package/esm/components/use-datepicker/use-time.type.d.ts.map +1 -1
  80. package/esm/components/use-datepicker/util.d.ts.map +1 -1
  81. package/esm/components/use-datepicker/util.js +4 -2
  82. package/esm/components/use-form/form-func-context.d.ts +2 -2
  83. package/esm/components/use-form/form-func-context.d.ts.map +1 -1
  84. package/esm/components/use-form/use-form-context.type.d.ts +12 -2
  85. package/esm/components/use-form/use-form-context.type.d.ts.map +1 -1
  86. package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  87. package/esm/components/use-form/use-form-control/use-form-control.js +6 -6
  88. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +4 -0
  89. package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
  90. package/esm/components/use-form/use-form-fieldset/use-form-fieldset.d.ts.map +1 -1
  91. package/esm/components/use-form/use-form-fieldset/use-form-fieldset.js +2 -1
  92. package/esm/components/use-form/use-form.d.ts +5 -3
  93. package/esm/components/use-form/use-form.d.ts.map +1 -1
  94. package/esm/components/use-form/use-form.js +109 -38
  95. package/esm/components/use-form/use-form.type.d.ts +27 -7
  96. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  97. package/esm/components/use-table/use-table-expand.d.ts.map +1 -1
  98. package/esm/components/use-table/use-table-expand.js +3 -2
  99. package/esm/components/use-tabs/context.d.ts +3 -3
  100. package/esm/components/use-tabs/context.d.ts.map +1 -1
  101. package/esm/components/use-tabs/context.js +4 -1
  102. package/esm/components/use-tabs/context.type.d.ts +15 -3
  103. package/esm/components/use-tabs/context.type.d.ts.map +1 -1
  104. package/esm/components/use-tabs/use-tabs.d.ts +4 -2
  105. package/esm/components/use-tabs/use-tabs.d.ts.map +1 -1
  106. package/esm/components/use-tabs/use-tabs.js +6 -0
  107. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  108. package/esm/components/use-tree/use-tree.js +2 -1
  109. package/esm/components/use-upload/xhr.d.ts.map +1 -1
  110. package/esm/components/use-upload/xhr.js +2 -1
  111. package/esm/utils/dom/element.d.ts +1 -0
  112. package/esm/utils/dom/element.d.ts.map +1 -1
  113. package/esm/utils/dom/element.js +4 -0
  114. package/esm/utils/index.d.ts +1 -0
  115. package/esm/utils/index.d.ts.map +1 -1
  116. package/esm/utils/index.js +1 -0
  117. package/esm/utils/lazyload.d.ts.map +1 -1
  118. package/esm/utils/lazyload.js +5 -2
  119. package/esm/utils/number.d.ts.map +1 -1
  120. package/esm/utils/number.js +2 -1
  121. package/esm/utils/render.d.ts.map +1 -1
  122. package/esm/utils/render.js +2 -1
  123. package/esm/utils/rule/length.d.ts.map +1 -1
  124. package/esm/utils/rule/length.js +2 -1
  125. package/esm/utils/rule/regexp.d.ts.map +1 -1
  126. package/esm/utils/rule/regexp.js +2 -1
  127. package/esm/utils/rule/rule.d.ts.map +1 -1
  128. package/esm/utils/rule/rule.js +3 -2
  129. package/esm/utils/validate/get-rule.js +1 -1
  130. package/esm/utils/validate/type.d.ts.map +1 -1
  131. package/esm/utils/validate/type.js +2 -1
  132. package/esm/utils/warning.d.ts +8 -0
  133. package/esm/utils/warning.d.ts.map +1 -0
  134. package/esm/utils/warning.js +30 -0
  135. package/package.json +1 -1
@@ -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;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;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 +1 @@
1
- {"version":3,"file":"use-form-fieldset.d.ts","sourceRoot":"","sources":["use-form-fieldset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAKjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;CA4B3B,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-form-fieldset.d.ts","sourceRoot":"","sources":["use-form-fieldset.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;CA4B3B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import FieldsetContext from "./fieldset-context";
2
2
  import { useFormControl } from "../use-form-control";
3
+ import { devUseWarning } from "../../../utils";
3
4
  var emptyFunc = function emptyFunc() {};
4
5
  var emptyArr = [];
5
6
  export var useFormFieldSet = function useFormFieldSet(props) {
@@ -19,7 +20,7 @@ export var useFormFieldSet = function useFormFieldSet(props) {
19
20
  onChange = _useFormControl.onChange,
20
21
  name = _useFormControl.name;
21
22
  if (!inForm) {
22
- console.error('[FieldSet] should render in Form');
23
+ devUseWarning.error('[FieldSet] should render in Form');
23
24
  }
24
25
  var ProviderValue = {
25
26
  path: name,
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ProviderProps, UseFormProps, UseFormSlotProps } from './use-form.type';
2
+ import { ProviderProps, UseFormProps, UseFormSlotProps, ValidateFnConfig } from './use-form.type';
3
3
  import { ObjectType } from '../../common/type';
4
4
  declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
5
5
  getFormProps: <TOther extends ObjectType = ObjectType>(externalProps?: TOther) => UseFormSlotProps<TOther>;
@@ -20,10 +20,11 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
20
20
  setError: (name: string, e: Error | undefined) => void;
21
21
  getErrors: () => ObjectType<Error | undefined>;
22
22
  clearValidate: (names?: string[]) => void;
23
- validateFields: (fields?: string | string[], config?: any) => Promise<true>;
23
+ validateFields: (fields?: string | string[], config?: ValidateFnConfig) => Promise<T>;
24
24
  validateFieldset: (name: string) => void;
25
25
  insertError: (name: string, index: number, error?: Error) => void;
26
26
  spliceError: (name: string, index: number) => void;
27
+ scrollToField: (name: string, scrollIntoViewOptions?: ScrollIntoViewOptions) => void;
27
28
  };
28
29
  };
29
30
  formFunc: {
@@ -39,10 +40,11 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
39
40
  setError: (name: string, e: Error | undefined) => void;
40
41
  getErrors: () => ObjectType<Error | undefined>;
41
42
  clearValidate: (names?: string[]) => void;
42
- validateFields: (fields?: string | string[], config?: any) => Promise<true>;
43
+ validateFields: (fields?: string | string[], config?: ValidateFnConfig) => Promise<T>;
43
44
  validateFieldset: (name: string) => void;
44
45
  insertError: (name: string, index: number, error?: Error) => void;
45
46
  spliceError: (name: string, index: number) => void;
47
+ scrollToField: (name: string, scrollIntoViewOptions?: ScrollIntoViewOptions) => void;
46
48
  };
47
49
  };
48
50
  export default useForm;
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":";AA0BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAyKC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BAVd,MAAM;oCAkED,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAlFN,MAAM,GAAG,MAAM,EAAE,mBAAgB,QAAQ,IAAI,CAAC;qCAgJ5D,MAAM;gCA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;;;;;;oBAnDjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BAVd,MAAM;gCAkED,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAlFN,MAAM,GAAG,MAAM,EAAE,mBAAgB,QAAQ,IAAI,CAAC;iCAgJ5D,MAAM;4BA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;;CA6Q9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":";AA8BA,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;;;;;;;;;wBAuPC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BApId,MAAM;oCA4LD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAvJxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAqNvB,MAAM;gCA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCA9GpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2DjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BApId,MAAM;gCA4LD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAvJxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAqNvB,MAAM;4BA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BA9GpD,MAAM,0BAAyB,qBAAqB;;CA8X9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,12 +1,12 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
2
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
7
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
9
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
8
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10
10
  import * as React from 'react';
11
11
  import { Provider } from "./Provider";
12
12
  import useLatestObj from "../../common/use-latest-obj";
@@ -16,7 +16,7 @@ import { insertValue, spliceValue } from "../../utils/flat";
16
16
  import { usePrevious } from "../../common/use-default-value";
17
17
  var globalKey = '__global__&&@@';
18
18
  import { current, produce } from "../../utils/immer";
19
- import { deepGet, deepRemove, deepSet, docScroll, extractEventHandlers, isArray, isObject, shallowEqual, wrapFormError, deepClone, getAllKeyPaths } from "../../utils";
19
+ import { deepGet, deepRemove, deepSet, docScroll, extractEventHandlers, isArray, isObject, shallowEqual, wrapFormError, deepClone, getAllKeyPaths, devUseWarning, getFieldId, getClosestScrollContainer } from "../../utils";
20
20
  var emptyObj = {};
21
21
  var useForm = function useForm(props) {
22
22
  var _props$defaultValue = props.defaultValue,
@@ -36,6 +36,7 @@ var useForm = function useForm(props) {
36
36
  _props$throttle = props.throttle,
37
37
  throttle = _props$throttle === void 0 ? 1000 : _props$throttle,
38
38
  size = props.size,
39
+ formName = props.name,
39
40
  reserveAble = props.reserveAble,
40
41
  scrollParent = props.scrollParent;
41
42
  var deepSetOptions = {
@@ -43,7 +44,7 @@ var useForm = function useForm(props) {
43
44
  forceSet: true
44
45
  };
45
46
  var preValue = usePrevious(props.value);
46
- var formRef = React.useRef();
47
+ var formDomRef = React.useRef();
47
48
  var _React$useRef = React.useRef({
48
49
  defaultValues: {},
49
50
  validateMap: {},
@@ -105,9 +106,9 @@ var useForm = function useForm(props) {
105
106
  onError === null || onError === void 0 || onError(err);
106
107
  if (!props.scrollToError) return;
107
108
  setTimeout(function () {
108
- var _formRef$current;
109
+ var _formDomRef$current;
109
110
  var selector = "[".concat(getDataAttributeName('status'), "=\"error\"]");
110
- var el = (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.querySelector(selector);
111
+ var el = (_formDomRef$current = formDomRef.current) === null || _formDomRef$current === void 0 ? void 0 : _formDomRef$current.querySelector(selector);
111
112
  if (el) {
112
113
  el.scrollIntoView();
113
114
  var focusableSelectors = 'textarea, input,[tabindex]:not([tabindex="-1"])';
@@ -130,32 +131,106 @@ var useForm = function useForm(props) {
130
131
  context.value = newValue;
131
132
  (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, context.value);
132
133
  });
134
+ var getValue = usePersistFn(function (name) {
135
+ if (name) {
136
+ return deepGet(context.value, name);
137
+ }
138
+ return context.value;
139
+ });
133
140
  var validateFields = usePersistFn(function (fields) {
134
141
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
135
142
  return new Promise(function (resolve, reject) {
136
- var files2 = fields ? (isArray(fields) ? fields : [fields]).filter(function (key) {
143
+ var finalFields = fields ? (isArray(fields) ? fields : [fields]).filter(function (key) {
137
144
  return context.validateMap[key];
138
145
  }) : Object.keys(context.validateMap);
139
- var validates = files2.map(function (key) {
146
+ var validates = finalFields.map(function (key) {
140
147
  var validateField = context.validateMap[key];
141
148
  return Array.from(validateField).map(function (validate) {
142
149
  return validate(key, deepGet(context.value, key), context.value, config);
143
150
  });
144
151
  });
145
- Promise.all(validates.flat()).then(function (results) {
146
- var error = results.find(function (n) {
147
- return n !== true;
148
- });
149
- if (error !== undefined) {
150
- reject(error);
151
- } else {
152
- resolve(true);
152
+ if (config.type === 'withValue') {
153
+ var validatorValue = context.value;
154
+ if (fields) {
155
+ var fieldArray = isArray(fields) ? fields : [fields];
156
+ validatorValue = fieldArray.reduce(function (prev, cur) {
157
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, cur, getValue(cur)));
158
+ }, {});
153
159
  }
154
- }).catch(function (e) {
155
- reject(wrapFormError(e));
156
- });
160
+ Promise.all(validates.flat()).then(function (results) {
161
+ var errors = results.filter(function (n) {
162
+ return n !== true;
163
+ });
164
+ if (errors.length > 0) {
165
+ var errorFields = [];
166
+ for (var _key in context.errors) {
167
+ if (context.errors[_key]) {
168
+ var _context$errors$_key;
169
+ errorFields.push({
170
+ name: _key,
171
+ errors: [((_context$errors$_key = context.errors[_key]) === null || _context$errors$_key === void 0 ? void 0 : _context$errors$_key.message) || '']
172
+ });
173
+ }
174
+ }
175
+ reject({
176
+ values: validatorValue,
177
+ errorFields: errorFields
178
+ });
179
+ } else {
180
+ resolve(validatorValue);
181
+ }
182
+ });
183
+ } else {
184
+ Promise.all(validates.flat()).then(function (results) {
185
+ var error = results.find(function (n) {
186
+ return n !== true;
187
+ });
188
+ if (error !== undefined) {
189
+ reject(error);
190
+ } else {
191
+ resolve(true);
192
+ }
193
+ }).catch(function (e) {
194
+ reject(wrapFormError(e));
195
+ });
196
+ }
157
197
  });
158
198
  });
199
+ var scrollToField = usePersistFn(function (name) {
200
+ var _document;
201
+ var scrollIntoViewOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
202
+ if (!name) return;
203
+ var fieldId = getFieldId(name, formName);
204
+ if (!fieldId) return;
205
+ var element = (_document = document) === null || _document === void 0 ? void 0 : _document.getElementById(fieldId);
206
+ if (element) {
207
+ // 查找可滚动的父元素
208
+ var parentEl = getClosestScrollContainer(element);
209
+ if (parentEl) {
210
+ var parentRect = parentEl.getBoundingClientRect();
211
+ var elementRect = element.getBoundingClientRect();
212
+
213
+ // 判断父元素是否在可见范围内
214
+ var isVisibleY = elementRect.top >= parentRect.top && elementRect.bottom <= parentRect.bottom;
215
+ var isVisibleX = elementRect.left >= parentRect.left && elementRect.right <= parentRect.right;
216
+ if (!isVisibleY || !isVisibleX) {
217
+ // 计算元素相对于父元素的偏移量
218
+ var offsetTop = element.offsetTop - parentEl.offsetTop;
219
+ var offsetLeft = element.offsetLeft - parentEl.offsetLeft;
220
+ parentEl.scrollTop = offsetTop;
221
+ parentEl.scrollLeft = offsetLeft;
222
+ }
223
+ } else {
224
+ // 如果没有找到可滚动的父元素,使用默认行为
225
+ element.scrollIntoView(_objectSpread({
226
+ behavior: 'smooth'
227
+ }, scrollIntoViewOptions));
228
+ }
229
+ } else {
230
+ // todo: 统一警告|错误信息(by Tom)
231
+ console.warn("[shineout] fieldId: ".concat(fieldId, " not found"));
232
+ }
233
+ });
159
234
  var remove = function remove() {
160
235
  if (!context.removeArr.size) return;
161
236
  if (context.unmounted) return;
@@ -173,12 +248,6 @@ var useForm = function useForm(props) {
173
248
  }
174
249
  context.removeTimer = setTimeout(remove);
175
250
  };
176
- var getValue = usePersistFn(function (name) {
177
- if (name) {
178
- return deepGet(context.value, name);
179
- }
180
- return context.value;
181
- });
182
251
  var setValue = usePersistFn(function (vals) {
183
252
  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
184
253
  validate: false
@@ -247,7 +316,7 @@ var useForm = function useForm(props) {
247
316
  context.submitLock = false;
248
317
  }, throttle);
249
318
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
250
- var _props$onSubmit, _ref2, result, _props$onSubmit2, _ref3;
319
+ var _props$onSubmit, _context$value, result, _props$onSubmit2, _context$value2;
251
320
  return _regeneratorRuntime().wrap(function _callee$(_context) {
252
321
  while (1) switch (_context.prev = _context.next) {
253
322
  case 0:
@@ -255,7 +324,7 @@ var useForm = function useForm(props) {
255
324
  _context.next = 3;
256
325
  break;
257
326
  }
258
- (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_ref2 = context.value) !== null && _ref2 !== void 0 ? _ref2 : {});
327
+ (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
259
328
  return _context.abrupt("return");
260
329
  case 3:
261
330
  _context.next = 5;
@@ -270,7 +339,7 @@ var useForm = function useForm(props) {
270
339
  _context.next = 10;
271
340
  break;
272
341
  }
273
- (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_ref3 = context.value) !== null && _ref3 !== void 0 ? _ref3 : {});
342
+ (_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
274
343
  _context.next = 12;
275
344
  break;
276
345
  case 10:
@@ -329,7 +398,7 @@ var useForm = function useForm(props) {
329
398
  var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
330
399
  var externalEventHandlers = extractEventHandlers(externalProps);
331
400
  return _objectSpread(_objectSpread(_objectSpread({}, externalProps), externalEventHandlers), {}, {
332
- ref: formRef,
401
+ ref: formDomRef,
333
402
  disabled: !!disabled,
334
403
  onSubmit: handleSubmit(externalEventHandlers),
335
404
  onReset: handleReset(externalEventHandlers)
@@ -340,8 +409,8 @@ var useForm = function useForm(props) {
340
409
  });
341
410
  var controlFunc = useLatestObj({
342
411
  bind: function bind(n, df, validate, updateFn) {
343
- if (context.names.has(n)) {
344
- console.warn("name \"".concat(n, "\" already exist"));
412
+ if (process.env.NODE_ENV !== 'production' && context.names.has(n)) {
413
+ devUseWarning.warn("name \"".concat(n, "\" already exist in Form component"));
345
414
  }
346
415
  context.names.add(n);
347
416
  if (!context.validateMap[n]) {
@@ -363,10 +432,10 @@ var useForm = function useForm(props) {
363
432
  });
364
433
  }
365
434
  },
366
- unbind: function unbind(n, reserveAble, validateFiled, update) {
435
+ unbind: function unbind(n, reserveAble, validateField, update) {
367
436
  var validateFieldSet = context.validateMap[n];
368
- if (validateFiled && validateFieldSet.has(validateFiled)) {
369
- validateFieldSet.delete(validateFiled);
437
+ if (validateField && validateFieldSet.has(validateField)) {
438
+ validateFieldSet.delete(validateField);
370
439
  }
371
440
  var updateFieldSet = context.updateMap[n];
372
441
  if (update && updateFieldSet.has(update)) {
@@ -427,7 +496,8 @@ var useForm = function useForm(props) {
427
496
  validateFields: validateFields,
428
497
  validateFieldset: validateFieldset,
429
498
  insertError: insertError,
430
- spliceError: spliceError
499
+ spliceError: spliceError,
500
+ scrollToField: scrollToField
431
501
  });
432
502
  var formConfig = React.useMemo(function () {
433
503
  return {
@@ -438,9 +508,10 @@ var useForm = function useForm(props) {
438
508
  inline: inline,
439
509
  disabled: disabled,
440
510
  size: size,
441
- reserveAble: reserveAble
511
+ reserveAble: reserveAble,
512
+ formName: formName
442
513
  };
443
- }, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, reserveAble]);
514
+ }, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, reserveAble, formName]);
444
515
  var updateValue = function updateValue() {
445
516
  if (props.value !== context.lastValue && props.value !== context.value) {
446
517
  context.value = deepClone(props.value) || emptyObj;
@@ -3,9 +3,19 @@ import { ReactNode } from 'react';
3
3
  import { AddNoProps, ObjectType } from '../../common/type';
4
4
  import { FormItemRule } from '../../utils/rule/rule.type';
5
5
  import { FormError } from '../../utils';
6
- export type ValidateFn = (name: string, value: any, formData: ObjectType, config?: {
6
+ export type KeyType = string | number | symbol;
7
+ export interface ValidationError<T> {
8
+ values: T;
9
+ errorFields: {
10
+ name: string;
11
+ errors: string[];
12
+ }[];
13
+ }
14
+ export type ValidateFnConfig = {
15
+ type?: 'forcePass' | 'withValue';
7
16
  ignoreBind?: boolean;
8
- }) => Promise<boolean | FormError>;
17
+ };
18
+ export type ValidateFn = (name: string, value: any, formData: ObjectType, config?: ValidateFnConfig) => Promise<true | FormError>;
9
19
  export type UpdateFn = (formValue: ObjectType, errors: ObjectType<Error | undefined>, serverErrors: ObjectType<Error | undefined>) => void;
10
20
  export interface FormContextValueType {
11
21
  func?: {
@@ -74,8 +84,14 @@ export interface FormCommonConfig extends FormLabelConfig {
74
84
  * @version 3.5.0
75
85
  */
76
86
  reserveAble?: boolean;
87
+ /**
88
+ * @en The name of the form, will be used as the prefix of the form field id, and can enable the <label for="id" /> function after setting
89
+ * @cn 表单名称,会作为表单字段 id 的前缀,设置后可开启 <label for="id" /> 功能
90
+ * @version 3.5.2
91
+ */
92
+ formName?: string;
77
93
  }
78
- export interface FormFunc {
94
+ export interface FormFunc<T = any> {
79
95
  setValue: (vals: {
80
96
  [key: string]: any;
81
97
  }, option?: {
@@ -87,9 +103,7 @@ export interface FormFunc {
87
103
  setError: (name: string, e: Error | undefined) => void;
88
104
  getErrors: () => ObjectType<Error | undefined>;
89
105
  clearValidate: (names?: string[]) => void;
90
- validateFields: (fields?: string | string[], config?: {
91
- ignoreBind?: boolean;
92
- }) => Promise<true>;
106
+ validateFields: (fields?: string | string[], config?: ValidateFnConfig) => Promise<Partial<T>>;
93
107
  validateFieldset: (name: string) => void;
94
108
  insertError: (name: string, index: number, error?: Error) => void;
95
109
  spliceError: (name: string, index: number) => void;
@@ -155,13 +169,19 @@ export interface BaseFormProps<T> extends FormCommonConfig {
155
169
  * @private 内部属性
156
170
  */
157
171
  error?: ObjectType<string | Error>;
172
+ /**
173
+ * @en The name of the form, will be used as the prefix of the form field id, and can enable the <label for="id" /> function after setting
174
+ * @cn 表单名称,会作为表单字段 id 的前缀,设置后可使用 formRef 的 scrollToField 方法
175
+ * @version 3.5.3
176
+ */
177
+ name?: string;
158
178
  }
159
179
  export type UseFormProps<T> = BaseFormProps<T>;
160
180
  export type FormContext = {
161
181
  defaultValues: ObjectType;
162
182
  validateMap: ObjectType<Set<(name: string, v: any, formValue: ObjectType, config?: {
163
183
  ignoreBind?: boolean;
164
- }) => Promise<boolean | FormError>>>;
184
+ }) => Promise<true | FormError>>>;
165
185
  removeArr: Set<string>;
166
186
  removeTimer?: number | NodeJS.Timeout;
167
187
  names: Set<string>;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-expand.d.ts","sourceRoot":"","sources":["use-table-expand.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIrE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC7F,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,cAAc,UAAW,mBAAmB;6BAa/C,kBAAkB,GAAG,CAAC,QAAQ,GAAG,SAAS,MAAM;wBAThB,GAAG,SAAS,MAAM;CA2C3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-expand.d.ts","sourceRoot":"","sources":["use-table-expand.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKrE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC7F,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,cAAc,UAAW,mBAAmB;6BAa/C,kBAAkB,GAAG,CAAC,QAAQ,GAAG,SAAS,MAAM;wBAThB,GAAG,SAAS,MAAM;CA2C3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -10,7 +10,8 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
10
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
11
  import React, { useEffect } from 'react';
12
12
  import usePersistFn from "../../common/use-persist-fn";
13
- import { getKey } from "../..//utils/render";
13
+ import { getKey } from "../../utils/render";
14
+ import { devUseWarning } from "../../utils";
14
15
  export var useTableExpand = function useTableExpand(props) {
15
16
  var columns = props.columns,
16
17
  expandKeys = props.expandKeys;
@@ -52,7 +53,7 @@ export var useTableExpand = function useTableExpand(props) {
52
53
  return col.type === 'expand' || col.type === 'row-expand';
53
54
  }).length;
54
55
  if (expandNum > 1) {
55
- console.error('columns should not have more than one expand column');
56
+ devUseWarning.error('columns should not have more than one expand column');
56
57
  }
57
58
  });
58
59
  return {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { TabsProviderProps, TabsContextProps } from './context.type';
3
- export declare const TabsContext: React.Context<TabsContextProps>;
4
- export declare const Provider: (props: TabsProviderProps) => JSX.Element;
5
- export declare const useTabsContext: () => TabsContextProps;
3
+ export declare const TabsContext: React.Context<TabsContextProps<any>>;
4
+ export declare const Provider: <TabData>(props: TabsProviderProps<TabData>) => JSX.Element;
5
+ export declare const useTabsContext: <TabData>() => TabsContextProps<TabData>;
6
6
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,eAAO,MAAM,WAAW,iCAA4C,CAAC;AAErE,eAAO,MAAM,QAAQ,UAAW,iBAAiB,gBAGhD,CAAC;AAEF,eAAO,MAAM,cAAc,wBAAsC,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,eAAO,MAAM,WAAW,sCAA8E,CAAC;AAEvG,eAAO,MAAM,QAAQ,6DAGpB,CAAC;AAEF,eAAO,MAAM,cAAc,0CAA8E,CAAC"}
@@ -2,7 +2,10 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- export var TabsContext = /*#__PURE__*/React.createContext({});
5
+ export var TabsContext = /*#__PURE__*/React.createContext({
6
+ tabs: [],
7
+ setTabs: function setTabs() {}
8
+ });
6
9
  export var Provider = function Provider(props) {
7
10
  var children = props.children,
8
11
  value = props.value;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TabsShapeType } from './use-tabs.type';
3
- export interface TabsContextProps {
3
+ export interface TabsContextProps<TabData = any> {
4
4
  /**
5
5
  * @private 内部属性
6
6
  */
@@ -34,9 +34,21 @@ export interface TabsContextProps {
34
34
  * @private 内部属性
35
35
  */
36
36
  onCollapsible?: () => void;
37
+ /**
38
+ * @private 内部属性
39
+ */
40
+ tabs: TabData[];
41
+ /**
42
+ * @private 内部属性
43
+ */
44
+ setTabs: React.Dispatch<React.SetStateAction<TabData[]>>;
45
+ /**
46
+ * @private 内部属性
47
+ */
48
+ color?: string;
37
49
  }
38
- export interface TabsProviderProps {
39
- value: TabsContextProps;
50
+ export interface TabsProviderProps<TabData> {
51
+ value: TabsContextProps<TabData>;
40
52
  children?: React.ReactNode;
41
53
  }
42
54
  //# sourceMappingURL=context.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.type.d.ts","sourceRoot":"","sources":["context.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
1
+ {"version":3,"file":"context.type.d.ts","sourceRoot":"","sources":["context.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB,CAAC,OAAO,GAAG,GAAG;IAC7C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO;IACxC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -1,9 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { BaseTabsProps } from './use-tabs.type';
3
- declare const useTabs: (props: BaseTabsProps) => {
3
+ declare const useTabs: <TabData = any>(props: BaseTabsProps) => {
4
4
  active: string | number | undefined;
5
5
  onChange: (key: string | number) => void;
6
- Provider: (props: import("./context.type").TabsProviderProps) => JSX.Element;
6
+ tabs: TabData[];
7
+ setTabs: import("react").Dispatch<import("react").SetStateAction<TabData[]>>;
8
+ Provider: <TabData_1>(props: import("./context.type").TabsProviderProps<TabData_1>) => JSX.Element;
7
9
  };
8
10
  export default useTabs;
9
11
  //# sourceMappingURL=use-tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tabs.d.ts","sourceRoot":"","sources":["use-tabs.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAA,MAAM,OAAO,UAAW,aAAa;;oBAWR,MAAM,GAAG,MAAM;;CAU3C,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-tabs.d.ts","sourceRoot":"","sources":["use-tabs.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAA,MAAM,OAAO,yBAA0B,aAAa;;oBAYvB,MAAM,GAAG,MAAM;;;;CAY3C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -15,6 +15,10 @@ var useTabs = function useTabs(props) {
15
15
  _useState2 = _slicedToArray(_useState, 2),
16
16
  activeTabs = _useState2[0],
17
17
  setActiveTabs = _useState2[1];
18
+ var _useState3 = useState([]),
19
+ _useState4 = _slicedToArray(_useState3, 2),
20
+ tabs = _useState4[0],
21
+ setTabs = _useState4[1];
18
22
  var getActive = function getActive() {
19
23
  if (props.active === undefined) {
20
24
  return activeTabs;
@@ -28,6 +32,8 @@ var useTabs = function useTabs(props) {
28
32
  return {
29
33
  active: getActive(),
30
34
  onChange: handleChange,
35
+ tabs: tabs,
36
+ setTabs: setTabs,
31
37
  Provider: Provider
32
38
  };
33
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CA4bZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CA4bZ,CAAC;AAEF,eAAe,OAAO,CAAC"}