@sheinx/hooks 3.5.2 → 3.5.3-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/common/use-list-select/use-list-select-multiple.js +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.js +6 -3
- package/cjs/components/use-datepicker/use-datepicker-range.d.ts +2 -0
- package/cjs/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-range.js +15 -0
- package/cjs/components/use-datepicker/use-time.d.ts +1 -1
- package/cjs/components/use-datepicker/use-time.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-time.js +20 -4
- package/cjs/components/use-datepicker/use-time.type.d.ts +2 -0
- package/cjs/components/use-datepicker/use-time.type.d.ts.map +1 -1
- package/cjs/components/use-datepicker/util.d.ts.map +1 -1
- package/cjs/components/use-datepicker/util.js +5 -2
- package/cjs/components/use-form/form-func-context.d.ts +2 -2
- package/cjs/components/use-form/form-func-context.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-context.type.d.ts +12 -2
- package/cjs/components/use-form/use-form-context.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.js +6 -6
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +4 -0
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-fieldset/use-form-fieldset.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-fieldset/use-form-fieldset.js +2 -1
- package/cjs/components/use-form/use-form.d.ts +5 -3
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +113 -40
- package/cjs/components/use-form/use-form.type.d.ts +27 -7
- package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-expand.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-expand.js +3 -2
- package/cjs/components/use-tabs/context.d.ts +3 -3
- package/cjs/components/use-tabs/context.d.ts.map +1 -1
- package/cjs/components/use-tabs/context.js +4 -1
- package/cjs/components/use-tabs/context.type.d.ts +15 -3
- package/cjs/components/use-tabs/context.type.d.ts.map +1 -1
- package/cjs/components/use-tabs/use-tabs.d.ts +4 -2
- package/cjs/components/use-tabs/use-tabs.d.ts.map +1 -1
- package/cjs/components/use-tabs/use-tabs.js +6 -0
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +2 -1
- package/cjs/components/use-upload/xhr.d.ts.map +1 -1
- package/cjs/components/use-upload/xhr.js +2 -1
- package/cjs/utils/dom/element.d.ts +1 -0
- package/cjs/utils/dom/element.d.ts.map +1 -1
- package/cjs/utils/dom/element.js +5 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.d.ts.map +1 -1
- package/cjs/utils/index.js +12 -0
- package/cjs/utils/lazyload.d.ts.map +1 -1
- package/cjs/utils/lazyload.js +4 -1
- package/cjs/utils/number.d.ts.map +1 -1
- package/cjs/utils/number.js +2 -1
- package/cjs/utils/render.d.ts.map +1 -1
- package/cjs/utils/render.js +2 -1
- package/cjs/utils/rule/length.d.ts.map +1 -1
- package/cjs/utils/rule/length.js +2 -1
- package/cjs/utils/rule/regexp.d.ts.map +1 -1
- package/cjs/utils/rule/regexp.js +2 -1
- package/cjs/utils/rule/rule.d.ts.map +1 -1
- package/cjs/utils/rule/rule.js +3 -2
- package/cjs/utils/validate/get-rule.js +1 -1
- package/cjs/utils/validate/type.d.ts.map +1 -1
- package/cjs/utils/validate/type.js +2 -1
- package/cjs/utils/warning.d.ts +8 -0
- package/cjs/utils/warning.d.ts.map +1 -0
- package/cjs/utils/warning.js +36 -0
- package/esm/common/use-list-select/use-list-select-multiple.js +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.d.ts +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.js +6 -3
- package/esm/components/use-datepicker/use-datepicker-range.d.ts +2 -0
- package/esm/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-range.js +15 -0
- package/esm/components/use-datepicker/use-time.d.ts +1 -1
- package/esm/components/use-datepicker/use-time.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-time.js +20 -4
- package/esm/components/use-datepicker/use-time.type.d.ts +2 -0
- package/esm/components/use-datepicker/use-time.type.d.ts.map +1 -1
- package/esm/components/use-datepicker/util.d.ts.map +1 -1
- package/esm/components/use-datepicker/util.js +4 -2
- package/esm/components/use-form/form-func-context.d.ts +2 -2
- package/esm/components/use-form/form-func-context.d.ts.map +1 -1
- package/esm/components/use-form/use-form-context.type.d.ts +12 -2
- package/esm/components/use-form/use-form-context.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.js +6 -6
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +4 -0
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form-fieldset/use-form-fieldset.d.ts.map +1 -1
- package/esm/components/use-form/use-form-fieldset/use-form-fieldset.js +2 -1
- package/esm/components/use-form/use-form.d.ts +5 -3
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +113 -40
- package/esm/components/use-form/use-form.type.d.ts +27 -7
- package/esm/components/use-form/use-form.type.d.ts.map +1 -1
- package/esm/components/use-table/use-table-expand.d.ts.map +1 -1
- package/esm/components/use-table/use-table-expand.js +3 -2
- package/esm/components/use-tabs/context.d.ts +3 -3
- package/esm/components/use-tabs/context.d.ts.map +1 -1
- package/esm/components/use-tabs/context.js +4 -1
- package/esm/components/use-tabs/context.type.d.ts +15 -3
- package/esm/components/use-tabs/context.type.d.ts.map +1 -1
- package/esm/components/use-tabs/use-tabs.d.ts +4 -2
- package/esm/components/use-tabs/use-tabs.d.ts.map +1 -1
- package/esm/components/use-tabs/use-tabs.js +6 -0
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +2 -1
- package/esm/components/use-upload/xhr.d.ts.map +1 -1
- package/esm/components/use-upload/xhr.js +2 -1
- package/esm/utils/dom/element.d.ts +1 -0
- package/esm/utils/dom/element.d.ts.map +1 -1
- package/esm/utils/dom/element.js +4 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/lazyload.d.ts.map +1 -1
- package/esm/utils/lazyload.js +5 -2
- package/esm/utils/number.d.ts.map +1 -1
- package/esm/utils/number.js +2 -1
- package/esm/utils/render.d.ts.map +1 -1
- package/esm/utils/render.js +2 -1
- package/esm/utils/rule/length.d.ts.map +1 -1
- package/esm/utils/rule/length.js +2 -1
- package/esm/utils/rule/regexp.d.ts.map +1 -1
- package/esm/utils/rule/regexp.js +2 -1
- package/esm/utils/rule/rule.d.ts.map +1 -1
- package/esm/utils/rule/rule.js +3 -2
- package/esm/utils/validate/get-rule.js +1 -1
- package/esm/utils/validate/type.d.ts.map +1 -1
- package/esm/utils/validate/type.js +2 -1
- package/esm/utils/warning.d.ts +8 -0
- package/esm/utils/warning.d.ts.map +1 -0
- package/esm/utils/warning.js +30 -0
- package/package.json +1 -1
|
@@ -2,6 +2,10 @@ import { ObjectType } from '../../../common/type';
|
|
|
2
2
|
import { FormItemRule } from '../../../utils/rule/rule.type';
|
|
3
3
|
export interface BaseFormControlProps<T> {
|
|
4
4
|
name: string | string[];
|
|
5
|
+
/**
|
|
6
|
+
* @private 内部属性 for validate
|
|
7
|
+
*/
|
|
8
|
+
formName?: string;
|
|
5
9
|
/**
|
|
6
10
|
* @en default Value
|
|
7
11
|
* @cn 默认值
|
|
@@ -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;
|
|
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
|
-
|
|
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?:
|
|
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?:
|
|
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":";
|
|
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;;;;;;;;;wBAsPC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE;8BAnId,MAAM;oCA6LD,OAAO;;6BAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAxJxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAsNvB,MAAM;gCA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCAhHpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2DjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;0BAnId,MAAM;gCA6LD,OAAO;;yBAfb,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAxJxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAsNvB,MAAM;4BA3CE,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BAhHpD,MAAM,0BAAyB,qBAAqB;;CAgY9D,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
|
|
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
|
|
109
|
+
var _formDomRef$current;
|
|
109
110
|
var selector = "[".concat(getDataAttributeName('status'), "=\"error\"]");
|
|
110
|
-
var el = (
|
|
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
|
|
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 =
|
|
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
|
-
|
|
146
|
-
var
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
155
|
-
|
|
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
|
|
@@ -186,9 +255,11 @@ var useForm = function useForm(props) {
|
|
|
186
255
|
onChange(function (draft) {
|
|
187
256
|
var values = Object.keys(vals);
|
|
188
257
|
// 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
|
|
189
|
-
var nextDraft =
|
|
258
|
+
var nextDraft = current(draft);
|
|
259
|
+
values.forEach(function (key) {
|
|
260
|
+
deepSet(nextDraft, key, vals[key], deepSetOptions);
|
|
261
|
+
});
|
|
190
262
|
values.forEach(function (key) {
|
|
191
|
-
deepSet(draft, key, vals[key], deepSetOptions);
|
|
192
263
|
if (option.validate) {
|
|
193
264
|
var _context$validateMap$;
|
|
194
265
|
(_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
|
|
@@ -247,7 +318,7 @@ var useForm = function useForm(props) {
|
|
|
247
318
|
context.submitLock = false;
|
|
248
319
|
}, throttle);
|
|
249
320
|
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
250
|
-
var _props$onSubmit,
|
|
321
|
+
var _props$onSubmit, _context$value, result, _props$onSubmit2, _context$value2;
|
|
251
322
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
252
323
|
while (1) switch (_context.prev = _context.next) {
|
|
253
324
|
case 0:
|
|
@@ -255,7 +326,7 @@ var useForm = function useForm(props) {
|
|
|
255
326
|
_context.next = 3;
|
|
256
327
|
break;
|
|
257
328
|
}
|
|
258
|
-
(_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (
|
|
329
|
+
(_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
330
|
return _context.abrupt("return");
|
|
260
331
|
case 3:
|
|
261
332
|
_context.next = 5;
|
|
@@ -270,7 +341,7 @@ var useForm = function useForm(props) {
|
|
|
270
341
|
_context.next = 10;
|
|
271
342
|
break;
|
|
272
343
|
}
|
|
273
|
-
(_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (
|
|
344
|
+
(_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
345
|
_context.next = 12;
|
|
275
346
|
break;
|
|
276
347
|
case 10:
|
|
@@ -329,7 +400,7 @@ var useForm = function useForm(props) {
|
|
|
329
400
|
var externalProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
330
401
|
var externalEventHandlers = extractEventHandlers(externalProps);
|
|
331
402
|
return _objectSpread(_objectSpread(_objectSpread({}, externalProps), externalEventHandlers), {}, {
|
|
332
|
-
ref:
|
|
403
|
+
ref: formDomRef,
|
|
333
404
|
disabled: !!disabled,
|
|
334
405
|
onSubmit: handleSubmit(externalEventHandlers),
|
|
335
406
|
onReset: handleReset(externalEventHandlers)
|
|
@@ -340,8 +411,8 @@ var useForm = function useForm(props) {
|
|
|
340
411
|
});
|
|
341
412
|
var controlFunc = useLatestObj({
|
|
342
413
|
bind: function bind(n, df, validate, updateFn) {
|
|
343
|
-
if (context.names.has(n)) {
|
|
344
|
-
|
|
414
|
+
if (process.env.NODE_ENV !== 'production' && context.names.has(n)) {
|
|
415
|
+
devUseWarning.warn("name \"".concat(n, "\" already exist in Form component"));
|
|
345
416
|
}
|
|
346
417
|
context.names.add(n);
|
|
347
418
|
if (!context.validateMap[n]) {
|
|
@@ -363,10 +434,10 @@ var useForm = function useForm(props) {
|
|
|
363
434
|
});
|
|
364
435
|
}
|
|
365
436
|
},
|
|
366
|
-
unbind: function unbind(n, reserveAble,
|
|
437
|
+
unbind: function unbind(n, reserveAble, validateField, update) {
|
|
367
438
|
var validateFieldSet = context.validateMap[n];
|
|
368
|
-
if (
|
|
369
|
-
validateFieldSet.delete(
|
|
439
|
+
if (validateField && validateFieldSet.has(validateField)) {
|
|
440
|
+
validateFieldSet.delete(validateField);
|
|
370
441
|
}
|
|
371
442
|
var updateFieldSet = context.updateMap[n];
|
|
372
443
|
if (update && updateFieldSet.has(update)) {
|
|
@@ -427,7 +498,8 @@ var useForm = function useForm(props) {
|
|
|
427
498
|
validateFields: validateFields,
|
|
428
499
|
validateFieldset: validateFieldset,
|
|
429
500
|
insertError: insertError,
|
|
430
|
-
spliceError: spliceError
|
|
501
|
+
spliceError: spliceError,
|
|
502
|
+
scrollToField: scrollToField
|
|
431
503
|
});
|
|
432
504
|
var formConfig = React.useMemo(function () {
|
|
433
505
|
return {
|
|
@@ -438,9 +510,10 @@ var useForm = function useForm(props) {
|
|
|
438
510
|
inline: inline,
|
|
439
511
|
disabled: disabled,
|
|
440
512
|
size: size,
|
|
441
|
-
reserveAble: reserveAble
|
|
513
|
+
reserveAble: reserveAble,
|
|
514
|
+
formName: formName
|
|
442
515
|
};
|
|
443
|
-
}, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, reserveAble]);
|
|
516
|
+
}, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, reserveAble, formName]);
|
|
444
517
|
var updateValue = function updateValue() {
|
|
445
518
|
if (props.value !== context.lastValue && props.value !== context.value) {
|
|
446
519
|
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
|
|
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
|
-
}
|
|
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<
|
|
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":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,
|
|
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;
|
|
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 "
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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"}
|