taro-form-react 0.3.1 → 0.4.0
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/README.md +413 -12
- package/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/src/context/FormContext.d.ts +10 -0
- package/dist/types/src/index.d.ts +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
# Taro 3 表单组件
|
|
1
|
+
# Taro 3/4 表单组件
|
|
2
2
|
|
|
3
|
-
适用于 Taro 3.x 的简单表单组件,不包含任何输入组件,只提供简单的表单布局/数据收集/联动/校验功能。**仅支持 React。**
|
|
3
|
+
适用于 Taro 3.x/4.x 的简单表单组件,不包含任何输入组件,只提供简单的表单布局/数据收集/联动/校验功能。**仅支持 React。**
|
|
4
4
|
|
|
5
5
|
# 特点
|
|
6
6
|
|
|
7
7
|
- [x] 完全响应式。你说用户体验?用户体验有我开发体验重要吗。
|
|
8
8
|
- [x] 强劲的动态表单支持,支持动态增删 Form.Item,暴打 @antmjs/vantui 的表单组件。
|
|
9
|
+
- [x] 表单快照,随时 capture / restore,缓存用户编辑状态不求人。
|
|
9
10
|
- [x] 性能跟屎一样,但是我肯定不会爆炸。
|
|
10
11
|
|
|
11
12
|
# 安装
|
|
@@ -16,8 +17,10 @@ yarn add taro-form-react
|
|
|
16
17
|
|
|
17
18
|
# 使用
|
|
18
19
|
|
|
20
|
+
## 基础用法
|
|
21
|
+
|
|
19
22
|
```tsx
|
|
20
|
-
import
|
|
23
|
+
import Form from "taro-form-react";
|
|
21
24
|
// 样式只需要在入口文件引入一次
|
|
22
25
|
// 包含 Label 和一些简单布局样式
|
|
23
26
|
import "taro-form-react/dist/styles/index.scss";
|
|
@@ -65,7 +68,7 @@ const Component = () => {
|
|
|
65
68
|
{/* 基础控件 */}
|
|
66
69
|
<Form.Item
|
|
67
70
|
// Form.Item 必须存在 name 属性
|
|
68
|
-
// 仅支持数组形式,如 ["field", "array" 0, "name"]
|
|
71
|
+
// 仅支持数组形式,如 ["field", "array", 0, "name"]
|
|
69
72
|
name={["name"]}
|
|
70
73
|
// Form.Item 应该劫持的输入事件,默认为 onChange
|
|
71
74
|
trigger="onInput"
|
|
@@ -93,19 +96,16 @@ const Component = () => {
|
|
|
93
96
|
|
|
94
97
|
{/* 上下文控件 */}
|
|
95
98
|
{/* 用于实现复杂的表单联动 */}
|
|
96
|
-
{/*
|
|
97
|
-
{/*
|
|
99
|
+
{/* Form.Provider 只暴露只读方法(data / getFieldValue 等) */}
|
|
100
|
+
{/* 如果需要写入表单数据,请通过 formRef 调用 */}
|
|
98
101
|
<Form.Provider>
|
|
99
|
-
{({
|
|
100
|
-
data,
|
|
101
|
-
setFieldValue,
|
|
102
|
-
}) => {
|
|
102
|
+
{({ data }) => {
|
|
103
103
|
return (
|
|
104
104
|
<>
|
|
105
105
|
<Text>你好,{data.name}</Text>
|
|
106
106
|
<Button
|
|
107
107
|
onClick={() => {
|
|
108
|
-
setFieldValue(["name"], "");
|
|
108
|
+
formRef.current?.setFieldValue(["name"], "");
|
|
109
109
|
}}
|
|
110
110
|
>
|
|
111
111
|
清空姓名
|
|
@@ -121,6 +121,407 @@ const Component = () => {
|
|
|
121
121
|
}
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
+
## 校验
|
|
125
|
+
|
|
126
|
+
```tsx
|
|
127
|
+
<Form.Item
|
|
128
|
+
name={["phone"]}
|
|
129
|
+
label="手机号"
|
|
130
|
+
// 设置 required 会自动添加必填校验规则
|
|
131
|
+
// 错误文案默认为 "{label} is required"
|
|
132
|
+
// 可通过 Form 的 getRequiredMessage 自定义
|
|
133
|
+
required
|
|
134
|
+
rules={[
|
|
135
|
+
// 正则校验,值非空时才触发
|
|
136
|
+
{ pattern: /^1\d{10}$/, message: "请输入正确的手机号" },
|
|
137
|
+
]}
|
|
138
|
+
// 在哪些事件上触发校验,默认跟随 trigger
|
|
139
|
+
validateTrigger={["onInput", "onBlur"]}
|
|
140
|
+
trigger="onInput"
|
|
141
|
+
getValueFromEvent={e => e.detail.value}
|
|
142
|
+
>
|
|
143
|
+
<Input placeholder="请输入手机号" />
|
|
144
|
+
</Form.Item>
|
|
145
|
+
|
|
146
|
+
<Form.Item
|
|
147
|
+
name={["password"]}
|
|
148
|
+
label="密码"
|
|
149
|
+
rules={[
|
|
150
|
+
// 长度校验
|
|
151
|
+
{ min: 6, max: 20, message: "密码长度 6-20 位" },
|
|
152
|
+
// 自定义异步校验
|
|
153
|
+
{
|
|
154
|
+
validator: async (value) => {
|
|
155
|
+
if (value?.includes(" ")) {
|
|
156
|
+
return "密码不能包含空格";
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
]}
|
|
161
|
+
trigger="onInput"
|
|
162
|
+
getValueFromEvent={e => e.detail.value}
|
|
163
|
+
>
|
|
164
|
+
<Input password placeholder="请输入密码" />
|
|
165
|
+
</Form.Item>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 字段联动
|
|
169
|
+
|
|
170
|
+
```tsx
|
|
171
|
+
<Form
|
|
172
|
+
initialValues={{ type: "personal" }}
|
|
173
|
+
>
|
|
174
|
+
<Form.Item
|
|
175
|
+
name={["type"]}
|
|
176
|
+
label="类型"
|
|
177
|
+
trigger="onChange"
|
|
178
|
+
>
|
|
179
|
+
<Radio.Group>
|
|
180
|
+
<Radio value="personal">个人</Radio>
|
|
181
|
+
<Radio value="company">企业</Radio>
|
|
182
|
+
</Radio.Group>
|
|
183
|
+
</Form.Item>
|
|
184
|
+
|
|
185
|
+
{/* 通过 Form.Provider 实现条件渲染 */}
|
|
186
|
+
{/* data 是响应式的,type 变化时会自动重渲染 */}
|
|
187
|
+
<Form.Provider>
|
|
188
|
+
{({ data }) => {
|
|
189
|
+
if (data.type === "company") {
|
|
190
|
+
return (
|
|
191
|
+
<Form.Item
|
|
192
|
+
name={["companyName"]}
|
|
193
|
+
label="企业名称"
|
|
194
|
+
required
|
|
195
|
+
trigger="onInput"
|
|
196
|
+
getValueFromEvent={e => e.detail.value}
|
|
197
|
+
>
|
|
198
|
+
<Input placeholder="请输入企业名称" />
|
|
199
|
+
</Form.Item>
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
return null;
|
|
203
|
+
}}
|
|
204
|
+
</Form.Provider>
|
|
205
|
+
|
|
206
|
+
{/* 使用 dependencies 实现依赖校验 */}
|
|
207
|
+
{/* 当 password 变化时,confirmPassword 会自动重新校验 */}
|
|
208
|
+
<Form.Item
|
|
209
|
+
name={["confirmPassword"]}
|
|
210
|
+
label="确认密码"
|
|
211
|
+
dependencies={[["password"]]}
|
|
212
|
+
rules={[{
|
|
213
|
+
validator: async (value) => {
|
|
214
|
+
const password = formRef.current?.getFieldValue(["password"]);
|
|
215
|
+
if (value && value !== password) {
|
|
216
|
+
return "两次输入的密码不一致";
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
}]}
|
|
220
|
+
trigger="onInput"
|
|
221
|
+
getValueFromEvent={e => e.detail.value}
|
|
222
|
+
>
|
|
223
|
+
<Input password placeholder="请再次输入密码" />
|
|
224
|
+
</Form.Item>
|
|
225
|
+
</Form>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## 字段同步
|
|
229
|
+
|
|
230
|
+
```tsx
|
|
231
|
+
<Form>
|
|
232
|
+
{/* 单源同步:province 变化时,自动将值同步到 city 和 district */}
|
|
233
|
+
<Form.Sync source={["province"]} target={[["city"], ["district"]]} />
|
|
234
|
+
|
|
235
|
+
{/* 多字段互相同步:任一字段变化时,其值同步到其余字段 */}
|
|
236
|
+
<Form.Sync fields={[["startDate"], ["endDate"]]} />
|
|
237
|
+
</Form>
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## 值转换
|
|
241
|
+
|
|
242
|
+
```tsx
|
|
243
|
+
<Form.Item
|
|
244
|
+
name={["date"]}
|
|
245
|
+
label="日期"
|
|
246
|
+
// transform 在 getFieldsFormattedValue / submit 时生效
|
|
247
|
+
// 可以将组件值转换为需要的格式
|
|
248
|
+
transform={(value) => value?.format("YYYY-MM-DD")}
|
|
249
|
+
>
|
|
250
|
+
<DatePicker />
|
|
251
|
+
</Form.Item>
|
|
252
|
+
|
|
253
|
+
<Form.Item
|
|
254
|
+
name={["address"]}
|
|
255
|
+
label="地址"
|
|
256
|
+
// 当 transformBehavior 为 "merge" 时
|
|
257
|
+
// transform 返回的对象会被 merge 到整个表单数据中
|
|
258
|
+
// 此时 name 会被忽略
|
|
259
|
+
transform={(value) => ({
|
|
260
|
+
province: value?.[0],
|
|
261
|
+
city: value?.[1],
|
|
262
|
+
district: value?.[2],
|
|
263
|
+
})}
|
|
264
|
+
>
|
|
265
|
+
<RegionPicker />
|
|
266
|
+
</Form.Item>
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## 快照与恢复
|
|
270
|
+
|
|
271
|
+
```tsx
|
|
272
|
+
import type { FormActions, FormSnapshot } from "taro-form-react";
|
|
273
|
+
|
|
274
|
+
const EditPage = () => {
|
|
275
|
+
const formRef = useRef<FormActions>();
|
|
276
|
+
|
|
277
|
+
// 页面进入时恢复草稿
|
|
278
|
+
useEffect(() => {
|
|
279
|
+
const saved = localStorage.getItem("draft");
|
|
280
|
+
if (saved) {
|
|
281
|
+
formRef.current?.restore(JSON.parse(saved));
|
|
282
|
+
}
|
|
283
|
+
}, []);
|
|
284
|
+
|
|
285
|
+
// 页面离开时保存草稿
|
|
286
|
+
const handleSaveDraft = () => {
|
|
287
|
+
const snapshot = formRef.current?.capture();
|
|
288
|
+
if (snapshot) {
|
|
289
|
+
localStorage.setItem("draft", JSON.stringify(snapshot));
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
return (
|
|
294
|
+
<Form ref={formRef} onFinish={handleSubmit}>
|
|
295
|
+
{/* ... */}
|
|
296
|
+
<Button onClick={handleSaveDraft}>保存草稿</Button>
|
|
297
|
+
</Form>
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## 在子组件中访问表单
|
|
303
|
+
|
|
304
|
+
```tsx
|
|
305
|
+
import { useFormContext } from "taro-form-react";
|
|
306
|
+
|
|
307
|
+
// 在 Form 内部的任意子组件中使用
|
|
308
|
+
const SubmitButton = () => {
|
|
309
|
+
// useFormContext 返回完整的表单上下文
|
|
310
|
+
// 包含所有数据和操作方法
|
|
311
|
+
const { data, validateFields, isFieldsTouched } = useFormContext();
|
|
312
|
+
|
|
313
|
+
const disabled = !isFieldsTouched();
|
|
314
|
+
|
|
315
|
+
return (
|
|
316
|
+
<Button
|
|
317
|
+
disabled={disabled}
|
|
318
|
+
onClick={async () => {
|
|
319
|
+
const errors = await validateFields();
|
|
320
|
+
if (!errors) {
|
|
321
|
+
console.log("提交数据:", data);
|
|
322
|
+
}
|
|
323
|
+
}}
|
|
324
|
+
>
|
|
325
|
+
提交
|
|
326
|
+
</Button>
|
|
327
|
+
);
|
|
328
|
+
};
|
|
329
|
+
```
|
|
330
|
+
|
|
124
331
|
# API
|
|
125
332
|
|
|
126
|
-
|
|
333
|
+
`NamePath` = `(string | number)[]`,所有字段名均使用数组形式,如 `["user", "address", 0, "city"]`。
|
|
334
|
+
|
|
335
|
+
## Form Props
|
|
336
|
+
|
|
337
|
+
- `initialValues?: Record<string, any>` — 表单初始值
|
|
338
|
+
- `omitNil?: boolean`(默认 `true`)— 提交时是否丢弃值为 `undefined` / `null` 的字段
|
|
339
|
+
- `onFinish?: (values: Record<string, any>) => void` — 提交成功(校验通过)回调
|
|
340
|
+
- `onFinishFailed?: (errors: { name: NamePath; errors: string[] }[]) => void` — 提交失败(校验未通过)回调
|
|
341
|
+
- `onFieldsChange?: (changedFields, allFields) => void` — 字段注册/卸载时触发
|
|
342
|
+
- `onValuesChange?: (changedValues, allValues) => void` — 字段值变更时触发
|
|
343
|
+
|
|
344
|
+
### 全局配置项
|
|
345
|
+
|
|
346
|
+
以下配置作用于所有子 Form.Item,也可在每个 Form.Item 上单独覆盖:
|
|
347
|
+
|
|
348
|
+
- `colon?: boolean` — Label 是否显示冒号
|
|
349
|
+
- `labelProps?: FormLabelProps` — 传递给 Label 的 props
|
|
350
|
+
- `layout?: "horizontal" | "vertical"` — 布局方向
|
|
351
|
+
- `validateFirst?: boolean | "parallel"`(默认 `false`)— `true` 遇到第一个校验错误即停止;`"parallel"` 并行执行所有规则
|
|
352
|
+
- `showErrors?: boolean` — 是否在 Form.Item 下方显示错误文本
|
|
353
|
+
- `passthroughErrors?: boolean` — 是否将 `hasError` 和 `errors` 透传给子组件 props
|
|
354
|
+
- `transformBehavior?: "merge" | "replace"` — 当 Form.Item 设置了 `transform` 时,`"merge"` 将转换结果合并到表单数据,`"replace"` 直接替换对应字段
|
|
355
|
+
- `updateTickLimit?: number`(默认 `50`)— onChange 节流间隔(ms),过小可能导致数据异常
|
|
356
|
+
- `getRequiredMessage?: (label: string) => string` — 自定义 required 规则的默认错误文案
|
|
357
|
+
|
|
358
|
+
## Form.Item Props
|
|
359
|
+
|
|
360
|
+
- `name: NamePath` — **必填**,字段路径
|
|
361
|
+
- `label?: ReactNode`(默认 `null`)— 标签文本,传 `null` 不渲染标签
|
|
362
|
+
- `required?: boolean` — 是否必填,会自动添加 required 规则(如果 `rules` 中没有)
|
|
363
|
+
- `rules?: Rule[]` — 校验规则,见下方「校验规则」
|
|
364
|
+
- `trigger?: string`(默认 `"onChange"`)— 劫持子组件的哪个事件来收集值
|
|
365
|
+
- `valuePropName?: string`(默认 `"value"`)— 劫持子组件的哪个 prop 来注入值
|
|
366
|
+
- `getValueFromEvent?: (...args) => any`(默认 `(...args) => args[0]`)— 从事件参数中提取值
|
|
367
|
+
- `initialValue?: any` — 字段初始值(优先级高于 Form 的 `initialValues`)
|
|
368
|
+
- `dependencies?: NamePath[]` — 依赖字段,依赖变化时自动重新校验
|
|
369
|
+
- `noStyle?: boolean` — 不渲染外层容器,直接返回子组件
|
|
370
|
+
- `hidden?: boolean` — 隐藏模式,不渲染子组件但保留字段注册(`Form.Keep` 内部使用)
|
|
371
|
+
- `validateTrigger?: string[]`(默认 `[trigger]`)— 触发校验的事件
|
|
372
|
+
- `transform?: (value: any) => any` — 提交时对值进行转换
|
|
373
|
+
- `className?: classNames.Argument` — 外层容器 className
|
|
374
|
+
- `innerClassName?: classNames.Argument` — 内层容器 className
|
|
375
|
+
|
|
376
|
+
Form.Item 要求有且仅有一个子元素(不能是 Fragment),会劫持该元素的输入事件和 value prop。
|
|
377
|
+
|
|
378
|
+
## Form.Keep
|
|
379
|
+
|
|
380
|
+
保留不需要展示给用户的字段值。Form 默认在字段对应的 Form.Item 卸载后会清除该字段的数据,如果需要保留某些字段的值,使用 Form.Keep。
|
|
381
|
+
|
|
382
|
+
- `fields: NamePath[]` — 需要保留的字段列表
|
|
383
|
+
|
|
384
|
+
```tsx
|
|
385
|
+
<Form.Keep fields={[["hiddenField"], ["nested", "value"]]} />
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Form.Sync
|
|
389
|
+
|
|
390
|
+
字段同步组件,当源字段值变化时自动同步到目标字段。两种用法:
|
|
391
|
+
|
|
392
|
+
**单源多目标**
|
|
393
|
+
|
|
394
|
+
```tsx
|
|
395
|
+
<Form.Sync source={["province"]} target={[["city"], ["district"]]} />
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
`source` 变化时,将其值同步到所有 `target` 字段。
|
|
399
|
+
|
|
400
|
+
**多字段互相同步**
|
|
401
|
+
|
|
402
|
+
```tsx
|
|
403
|
+
<Form.Sync fields={[["fieldA"], ["fieldB"], ["fieldC"]]} />
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
`fields` 中任一字段变化时,其值同步到其余所有字段。
|
|
407
|
+
|
|
408
|
+
## Form.Label
|
|
409
|
+
|
|
410
|
+
Label 组件,通常由 Form.Item 自动渲染,也可独立使用。
|
|
411
|
+
|
|
412
|
+
- `label?: ReactNode` — 标签文本
|
|
413
|
+
- `required?: boolean` — 是否显示必填星号
|
|
414
|
+
- `size?: "normal" | "small"`(默认 `"normal"`)
|
|
415
|
+
- `colon?: boolean`(默认 `true`)— 是否显示冒号
|
|
416
|
+
- `addonAfter?: ReactNode` — 标签后附加内容
|
|
417
|
+
- `asteriskTookSpace?: boolean`(默认 `true`)— 星号是否占据空间(不必填时保留占位)
|
|
418
|
+
- `className?: classNames.Argument`
|
|
419
|
+
- `labelClassName?: classNames.Argument`
|
|
420
|
+
- `colonClassName?: classNames.Argument`
|
|
421
|
+
- `containerClassName?: classNames.Argument`
|
|
422
|
+
|
|
423
|
+
## Form.Provider
|
|
424
|
+
|
|
425
|
+
Render Props 模式的上下文访问组件,用于实现复杂的表单联动。
|
|
426
|
+
|
|
427
|
+
```tsx
|
|
428
|
+
<Form.Provider>
|
|
429
|
+
{({ data, getFieldValue, getFieldsValue, getFields, getFieldError, getFieldsFormattedValue, validateFields, isFieldsTouched, capture, restore, submit, reset }) => {
|
|
430
|
+
return <Text>{data.name}</Text>;
|
|
431
|
+
}}
|
|
432
|
+
</Form.Provider>
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
回调参数是**只读**的表单上下文(不包含 `setFieldValue`、`setFields`、`resetFields`、`setFieldError`、`setData` 等写入方法),加上 `submit` 和 `reset`。如果需要在 Provider 内写入表单数据,请通过 `formRef` 调用对应方法。
|
|
436
|
+
|
|
437
|
+
## FormActions(ref 方法)
|
|
438
|
+
|
|
439
|
+
通过 `ref` 获取表单实例,调用以下方法:
|
|
440
|
+
|
|
441
|
+
```tsx
|
|
442
|
+
const formRef = useRef<FormActions>();
|
|
443
|
+
// ...
|
|
444
|
+
<Form ref={formRef}>
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### 数据操作
|
|
448
|
+
|
|
449
|
+
- `setData(data: Record<string, any>)` — 直接替换整个表单数据
|
|
450
|
+
- `setFieldValue(name: NamePath, value: any)` — 设置单个字段的值
|
|
451
|
+
- `getFieldValue(name: NamePath): any` — 获取单个字段的值
|
|
452
|
+
- `getFieldsValue(nameList?: NamePath[]): Record<string, any>` — 获取多个字段的值,不传参返回所有
|
|
453
|
+
- `getFieldsFormattedValue(nameList?: NamePath[]): Promise<Record<string, any>>` — 获取经过 `transform` 处理后的值
|
|
454
|
+
|
|
455
|
+
### 字段操作
|
|
456
|
+
|
|
457
|
+
- `setFields(fields: { name: NamePath; value?: any; touched?: boolean }[])` — 批量设置字段值和 touched 状态
|
|
458
|
+
- `getFields(nameList?: NamePath[]): { name: NamePath; value: any; touched: boolean; errors: string[] }[]` — 获取字段完整信息
|
|
459
|
+
- `resetFields(nameList?: NamePath[])` — 重置字段到初始值并清除 touched 状态,不传参重置所有
|
|
460
|
+
|
|
461
|
+
### 校验
|
|
462
|
+
|
|
463
|
+
- `validateFields(nameList?: NamePath[]): Promise<void | { name: NamePath; errors: string[] }[]>` — 校验字段,通过返回 `undefined`,失败返回错误数组
|
|
464
|
+
- `setFieldError(name: NamePath, errors: string[])` — 手动设置字段错误
|
|
465
|
+
- `getFieldError(name: NamePath): string[]` — 获取字段错误
|
|
466
|
+
- `isFieldsTouched(nameList?: NamePath[], options?: { allTouched?: boolean }): boolean` — 检查字段是否被修改过,`allTouched` 为 `true` 时要求全部被修改
|
|
467
|
+
|
|
468
|
+
### 提交与重置
|
|
469
|
+
|
|
470
|
+
- `submit(): Promise<Record<string, any> | undefined>` — 触发校验并提交,校验通过返回表单值并触发 `onFinish`,失败返回 `undefined` 并触发 `onFinishFailed`
|
|
471
|
+
- `reset()` — 重置所有字段
|
|
472
|
+
|
|
473
|
+
### 快照
|
|
474
|
+
|
|
475
|
+
- `capture(): FormSnapshot` — 捕获当前表单完整状态(数据 + touched + errors),返回一个可序列化的对象
|
|
476
|
+
- `restore(snapshot: FormSnapshot)` — 从快照恢复表单状态
|
|
477
|
+
|
|
478
|
+
`capture` 返回的对象可以用 `JSON.stringify` 序列化后存入 localStorage 等持久化存储,也可以直接保存在变量中。`restore` 会自动处理字段集合不一致的情况(快照中有但当前未注册的字段会在后续注册时自动恢复)。
|
|
479
|
+
|
|
480
|
+
## 校验规则(Rule)
|
|
481
|
+
|
|
482
|
+
Form.Item 的 `rules` 接受以下四种规则,可混合使用:
|
|
483
|
+
|
|
484
|
+
**必填**
|
|
485
|
+
|
|
486
|
+
```typescript
|
|
487
|
+
{ required: boolean; message: string }
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
**正则**
|
|
491
|
+
|
|
492
|
+
```typescript
|
|
493
|
+
{ pattern: RegExp; message: string }
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
值非空时校验,空值不触发。
|
|
497
|
+
|
|
498
|
+
**长度/大小**
|
|
499
|
+
|
|
500
|
+
```typescript
|
|
501
|
+
{ min?: number; max?: number; message: string }
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
对 `number` 类型比较数值大小,其他类型比较 `.length`。值非空时校验。
|
|
505
|
+
|
|
506
|
+
**自定义**
|
|
507
|
+
|
|
508
|
+
```typescript
|
|
509
|
+
{ validator: (value: any) => Promise<void | string> }
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
返回 `string` 表示错误信息,返回 `void` / `undefined` 表示通过。
|
|
513
|
+
|
|
514
|
+
## useFormContext
|
|
515
|
+
|
|
516
|
+
在 Form 内部的任意组件中获取表单上下文:
|
|
517
|
+
|
|
518
|
+
```tsx
|
|
519
|
+
import { useFormContext } from "taro-form-react";
|
|
520
|
+
|
|
521
|
+
const MyComponent = () => {
|
|
522
|
+
const { data, setFieldValue, getFieldValue } = useFormContext();
|
|
523
|
+
// ...
|
|
524
|
+
};
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
返回值同 `FormContextProps`,包含所有表单操作方法。必须在 `<Form>` 内部使用,否则会抛出异常。
|
package/dist/index.esm.js
CHANGED
|
@@ -12,10 +12,10 @@ import e,{useRef as t,useEffect as r,useState as n,useCallback as o,useMemo as a
|
|
|
12
12
|
Copyright (c) 2018 Jed Watson.
|
|
13
13
|
Licensed under the MIT License (MIT), see
|
|
14
14
|
http://jedwatson.github.io/classnames
|
|
15
|
-
*/var _e=(me||(me=1,function(e){!function(){var t={}.hasOwnProperty;function r(){for(var e="",t=0;t<arguments.length;t++){var r=arguments[t];r&&(e=o(e,n(r)))}return e}function n(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var n="";for(var a in e)t.call(e,a)&&e[a]&&(n=o(n,a));return n}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(r.default=r,e.exports=r):window.classNames=r}()}(je)),je.exports),we=d(_e),Oe="object"==typeof global&&global&&global.Object===Object&&global,Fe="object"==typeof self&&self&&self.Object===Object&&self,Se=Oe||Fe||Function("return this")(),xe=Se.Symbol,Ae=Object.prototype,Ee=Ae.hasOwnProperty,ke=Ae.toString,Te=xe?xe.toStringTag:void 0;var Pe=Object.prototype.toString;var Ne=xe?xe.toStringTag:void 0;function $e(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ne&&Ne in Object(e)?function(e){var t=Ee.call(e,Te),r=e[Te];try{e[Te]=void 0;var n=!0}catch(e){}var o=ke.call(e);return n&&(t?e[Te]=r:delete e[Te]),o}(e):function(e){return Pe.call(e)}(e)}function Re(e){return null!=e&&"object"==typeof e}function Ve(e){return"symbol"==typeof e||Re(e)&&"[object Symbol]"==$e(e)}function Ce(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}var ze=Array.isArray,De=xe?xe.prototype:void 0,Ie=De?De.toString:void 0;function Me(e){if("string"==typeof e)return e;if(ze(e))return Ce(e,Me)+"";if(Ve(e))return Ie?Ie.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Ue(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Be(e){return e}function Le(e){if(!Ue(e))return!1;var t=$e(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var qe,We=Se["__core-js_shared__"],Ke=(qe=/[^.]+$/.exec(We&&We.keys&&We.keys.IE_PROTO||""))?"Symbol(src)_1."+qe:"";var Ye=Function.prototype.toString;function Je(e){if(null!=e){try{return Ye.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Xe=/^\[object .+?Constructor\]$/,Ge=Function.prototype,He=Object.prototype,Qe=Ge.toString,Ze=He.hasOwnProperty,et=RegExp("^"+Qe.call(Ze).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tt(e){return!(!Ue(e)||(t=e,Ke&&Ke in t))&&(Le(e)?et:Xe).test(Je(e));var t}function rt(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return tt(r)?r:void 0}var nt=rt(Se,"WeakMap"),ot=Object.create,at=function(){function e(){}return function(t){if(!Ue(t))return{};if(ot)return ot(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function it(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}var ut=Date.now;var ct,st,lt,ft=function(){try{var e=rt(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),pt=ft?function(e,t){return ft(e,"toString",{configurable:!0,enumerable:!1,value:(r=t,function(){return r}),writable:!0});var r}:Be,dt=(ct=pt,st=0,lt=0,function(){var e=ut(),t=16-(e-lt);if(lt=e,t>0){if(++st>=800)return arguments[0]}else st=0;return ct.apply(void 0,arguments)});var vt=/^(?:0|[1-9]\d*)$/;function yt(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&vt.test(e))&&e>-1&&e%1==0&&e<t}function ht(e,t,r){"__proto__"==t&&ft?ft(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function bt(e,t){return e===t||e!=e&&t!=t}var gt=Object.prototype.hasOwnProperty;function mt(e,t,r){var n=e[t];gt.call(e,t)&&bt(n,r)&&(void 0!==r||t in e)||ht(e,t,r)}function jt(e,t,r,n){var o=!r;r||(r={});for(var a=-1,i=t.length;++a<i;){var u=t[a],c=void 0;void 0===c&&(c=e[u]),o?ht(r,u,c):mt(r,u,c)}return r}var _t=Math.max;function wt(e,t,r){return t=_t(void 0===t?e.length-1:t,0),function(){for(var n=arguments,o=-1,a=_t(n.length-t,0),i=Array(a);++o<a;)i[o]=n[t+o];o=-1;for(var u=Array(t+1);++o<t;)u[o]=n[o];return u[t]=r(i),function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}(e,this,u)}}function Ot(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ft(e){return null!=e&&Ot(e.length)&&!Le(e)}var St=Object.prototype;function xt(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||St)}function At(e){return Re(e)&&"[object Arguments]"==$e(e)}var Et=Object.prototype,kt=Et.hasOwnProperty,Tt=Et.propertyIsEnumerable,Pt=At(function(){return arguments}())?At:function(e){return Re(e)&&kt.call(e,"callee")&&!Tt.call(e,"callee")};var Nt="object"==typeof exports&&exports&&!exports.nodeType&&exports,$t=Nt&&"object"==typeof module&&module&&!module.nodeType&&module,Rt=$t&&$t.exports===Nt?Se.Buffer:void 0,Vt=(Rt?Rt.isBuffer:void 0)||function(){return!1},Ct={};function zt(e){return function(t){return e(t)}}Ct["[object Float32Array]"]=Ct["[object Float64Array]"]=Ct["[object Int8Array]"]=Ct["[object Int16Array]"]=Ct["[object Int32Array]"]=Ct["[object Uint8Array]"]=Ct["[object Uint8ClampedArray]"]=Ct["[object Uint16Array]"]=Ct["[object Uint32Array]"]=!0,Ct["[object Arguments]"]=Ct["[object Array]"]=Ct["[object ArrayBuffer]"]=Ct["[object Boolean]"]=Ct["[object DataView]"]=Ct["[object Date]"]=Ct["[object Error]"]=Ct["[object Function]"]=Ct["[object Map]"]=Ct["[object Number]"]=Ct["[object Object]"]=Ct["[object RegExp]"]=Ct["[object Set]"]=Ct["[object String]"]=Ct["[object WeakMap]"]=!1;var Dt="object"==typeof exports&&exports&&!exports.nodeType&&exports,It=Dt&&"object"==typeof module&&module&&!module.nodeType&&module,Mt=It&&It.exports===Dt&&Oe.process,Ut=function(){try{var e=It&&It.require&&It.require("util").types;return e||Mt&&Mt.binding&&Mt.binding("util")}catch(e){}}(),Bt=Ut&&Ut.isTypedArray,Lt=Bt?zt(Bt):function(e){return Re(e)&&Ot(e.length)&&!!Ct[$e(e)]},qt=Object.prototype.hasOwnProperty;function Wt(e,t){var r=ze(e),n=!r&&Pt(e),o=!r&&!n&&Vt(e),a=!r&&!n&&!o&&Lt(e),i=r||n||o||a,u=i?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],c=u.length;for(var s in e)!t&&!qt.call(e,s)||i&&("length"==s||o&&("offset"==s||"parent"==s)||a&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||yt(s,c))||u.push(s);return u}function Kt(e,t){return function(r){return e(t(r))}}var Yt=Kt(Object.keys,Object),Jt=Object.prototype.hasOwnProperty;function Xt(e){return Ft(e)?Wt(e):function(e){if(!xt(e))return Yt(e);var t=[];for(var r in Object(e))Jt.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}var Gt=Object.prototype.hasOwnProperty;function Ht(e){if(!Ue(e))return function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}(e);var t=xt(e),r=[];for(var n in e)("constructor"!=n||!t&&Gt.call(e,n))&&r.push(n);return r}function Qt(e){return Ft(e)?Wt(e,!0):Ht(e)}var Zt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,er=/^\w*$/;var tr=rt(Object,"create");var rr=Object.prototype.hasOwnProperty;var nr=Object.prototype.hasOwnProperty;function or(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ar(e,t){for(var r=e.length;r--;)if(bt(e[r][0],t))return r;return-1}or.prototype.clear=function(){this.__data__=tr?tr(null):{},this.size=0},or.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},or.prototype.get=function(e){var t=this.__data__;if(tr){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return rr.call(t,e)?t[e]:void 0},or.prototype.has=function(e){var t=this.__data__;return tr?void 0!==t[e]:nr.call(t,e)},or.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tr&&void 0===t?"__lodash_hash_undefined__":t,this};var ir=Array.prototype.splice;function ur(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ur.prototype.clear=function(){this.__data__=[],this.size=0},ur.prototype.delete=function(e){var t=this.__data__,r=ar(t,e);return!(r<0)&&(r==t.length-1?t.pop():ir.call(t,r,1),--this.size,!0)},ur.prototype.get=function(e){var t=this.__data__,r=ar(t,e);return r<0?void 0:t[r][1]},ur.prototype.has=function(e){return ar(this.__data__,e)>-1},ur.prototype.set=function(e,t){var r=this.__data__,n=ar(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};var cr=rt(Se,"Map");function sr(e,t){var r,n,o=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof t?"string":"hash"]:o.map}function lr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}lr.prototype.clear=function(){this.size=0,this.__data__={hash:new or,map:new(cr||ur),string:new or}},lr.prototype.delete=function(e){var t=sr(this,e).delete(e);return this.size-=t?1:0,t},lr.prototype.get=function(e){return sr(this,e).get(e)},lr.prototype.has=function(e){return sr(this,e).has(e)},lr.prototype.set=function(e,t){var r=sr(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};function fr(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(fr.Cache||lr),r}fr.Cache=lr;var pr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dr=/\\(\\)?/g,vr=function(e){var t=fr(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(pr,(function(e,r,n,o){t.push(n?o.replace(dr,"$1"):r||e)})),t}));function yr(e,t){return ze(e)?e:function(e,t){if(ze(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!Ve(e))||er.test(e)||!Zt.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:vr(function(e){return null==e?"":Me(e)}(e))}function hr(e){if("string"==typeof e||Ve(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function br(e,t){for(var r=0,n=(t=yr(t,e)).length;null!=e&&r<n;)e=e[hr(t[r++])];return r&&r==n?e:void 0}function gr(e,t,r){var n=null==e?void 0:br(e,t);return void 0===n?r:n}function mr(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}var jr=xe?xe.isConcatSpreadable:void 0;function _r(e){return ze(e)||Pt(e)||!!(jr&&e&&e[jr])}function wr(e){return(null==e?0:e.length)?function(e,t,r,n,o){var a=-1,i=e.length;for(r||(r=_r),o||(o=[]);++a<i;){var u=e[a];r(u)?mr(o,u):o[o.length]=u}return o}(e):[]}var Or=Kt(Object.getPrototypeOf,Object),Fr=Function.prototype,Sr=Object.prototype,xr=Fr.toString,Ar=Sr.hasOwnProperty,Er=xr.call(Object);function kr(e){if(!Re(e)||"[object Object]"!=$e(e))return!1;var t=Or(e);if(null===t)return!0;var r=Ar.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&xr.call(r)==Er}function Tr(e){var t=this.__data__=new ur(e);this.size=t.size}Tr.prototype.clear=function(){this.__data__=new ur,this.size=0},Tr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Tr.prototype.get=function(e){return this.__data__.get(e)},Tr.prototype.has=function(e){return this.__data__.has(e)},Tr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ur){var n=r.__data__;if(!cr||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new lr(n)}return r.set(e,t),this.size=r.size,this};var Pr="object"==typeof exports&&exports&&!exports.nodeType&&exports,Nr=Pr&&"object"==typeof module&&module&&!module.nodeType&&module,$r=Nr&&Nr.exports===Pr?Se.Buffer:void 0,Rr=$r?$r.allocUnsafe:void 0;function Vr(e,t){if(t)return e.slice();var r=e.length,n=Rr?Rr(r):new e.constructor(r);return e.copy(n),n}function Cr(){return[]}var zr=Object.prototype.propertyIsEnumerable,Dr=Object.getOwnPropertySymbols,Ir=Dr?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}(Dr(e),(function(t){return zr.call(e,t)})))}:Cr;var Mr=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)mr(t,Ir(e)),e=Or(e);return t}:Cr;function Ur(e,t,r){var n=t(e);return ze(e)?n:mr(n,r(e))}function Br(e){return Ur(e,Xt,Ir)}function Lr(e){return Ur(e,Qt,Mr)}var qr=rt(Se,"DataView"),Wr=rt(Se,"Promise"),Kr=rt(Se,"Set"),Yr="[object Map]",Jr="[object Promise]",Xr="[object Set]",Gr="[object WeakMap]",Hr="[object DataView]",Qr=Je(qr),Zr=Je(cr),en=Je(Wr),tn=Je(Kr),rn=Je(nt),nn=$e;(qr&&nn(new qr(new ArrayBuffer(1)))!=Hr||cr&&nn(new cr)!=Yr||Wr&&nn(Wr.resolve())!=Jr||Kr&&nn(new Kr)!=Xr||nt&&nn(new nt)!=Gr)&&(nn=function(e){var t=$e(e),r="[object Object]"==t?e.constructor:void 0,n=r?Je(r):"";if(n)switch(n){case Qr:return Hr;case Zr:return Yr;case en:return Jr;case tn:return Xr;case rn:return Gr}return t});var on=Object.prototype.hasOwnProperty;var an=Se.Uint8Array;function un(e){var t=new e.constructor(e.byteLength);return new an(t).set(new an(e)),t}var cn=/\w*$/;var sn=xe?xe.prototype:void 0,ln=sn?sn.valueOf:void 0;function fn(e,t){var r=t?un(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function pn(e,t,r){var n,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return un(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var r=t?un(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return fn(e,r);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,cn.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return n=e,ln?Object(ln.call(n)):{}}}function dn(e){return"function"!=typeof e.constructor||xt(e)?{}:at(Or(e))}var vn=Ut&&Ut.isMap,yn=vn?zt(vn):function(e){return Re(e)&&"[object Map]"==nn(e)};var hn=Ut&&Ut.isSet,bn=hn?zt(hn):function(e){return Re(e)&&"[object Set]"==nn(e)},gn="[object Arguments]",mn="[object Function]",jn="[object Object]",_n={};function wn(e,t,r,n,o,a){var i,u=1&t,c=2&t,s=4&t;if(r&&(i=o?r(e,n,o,a):r(e)),void 0!==i)return i;if(!Ue(e))return e;var l=ze(e);if(l){if(i=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&on.call(e,"index")&&(r.index=e.index,r.input=e.input),r}(e),!u)return it(e,i)}else{var f=nn(e),p=f==mn||"[object GeneratorFunction]"==f;if(Vt(e))return Vr(e,u);if(f==jn||f==gn||p&&!o){if(i=c||p?{}:dn(e),!u)return c?function(e,t){return jt(e,Mr(e),t)}(e,function(e,t){return e&&jt(t,Qt(t),e)}(i,e)):function(e,t){return jt(e,Ir(e),t)}(e,function(e,t){return e&&jt(t,Xt(t),e)}(i,e))}else{if(!_n[f])return o?e:{};i=pn(e,f,u)}}a||(a=new Tr);var d=a.get(e);if(d)return d;a.set(e,i),bn(e)?e.forEach((function(n){i.add(wn(n,t,r,n,e,a))})):yn(e)&&e.forEach((function(n,o){i.set(o,wn(n,t,r,o,e,a))}));var v=l?void 0:(s?c?Lr:Br:c?Qt:Xt)(e);return function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););}(v||e,(function(n,o){v&&(n=e[o=n]),mt(i,o,wn(n,t,r,o,e,a))})),i}_n[gn]=_n["[object Array]"]=_n["[object ArrayBuffer]"]=_n["[object DataView]"]=_n["[object Boolean]"]=_n["[object Date]"]=_n["[object Float32Array]"]=_n["[object Float64Array]"]=_n["[object Int8Array]"]=_n["[object Int16Array]"]=_n["[object Int32Array]"]=_n["[object Map]"]=_n["[object Number]"]=_n[jn]=_n["[object RegExp]"]=_n["[object Set]"]=_n["[object String]"]=_n["[object Symbol]"]=_n["[object Uint8Array]"]=_n["[object Uint8ClampedArray]"]=_n["[object Uint16Array]"]=_n["[object Uint32Array]"]=!0,_n["[object Error]"]=_n[mn]=_n["[object WeakMap]"]=!1;function On(e){return wn(e,5)}function Fn(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new lr;++t<r;)this.add(e[t])}function Sn(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}Fn.prototype.add=Fn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Fn.prototype.has=function(e){return this.__data__.has(e)};function xn(e,t,r,n,o,a){var i=1&r,u=e.length,c=t.length;if(u!=c&&!(i&&c>u))return!1;var s=a.get(e),l=a.get(t);if(s&&l)return s==t&&l==e;var f=-1,p=!0,d=2&r?new Fn:void 0;for(a.set(e,t),a.set(t,e);++f<u;){var v=e[f],y=t[f];if(n)var h=i?n(y,v,f,t,e,a):n(v,y,f,e,t,a);if(void 0!==h){if(h)continue;p=!1;break}if(d){if(!Sn(t,(function(e,t){if(i=t,!d.has(i)&&(v===e||o(v,e,r,n,a)))return d.push(t);var i}))){p=!1;break}}else if(v!==y&&!o(v,y,r,n,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function An(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function En(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var kn=xe?xe.prototype:void 0,Tn=kn?kn.valueOf:void 0;var Pn=Object.prototype.hasOwnProperty;var Nn="[object Arguments]",$n="[object Array]",Rn="[object Object]",Vn=Object.prototype.hasOwnProperty;function Cn(e,t,r,n,o,a){var i=ze(e),u=ze(t),c=i?$n:nn(e),s=u?$n:nn(t),l=(c=c==Nn?Rn:c)==Rn,f=(s=s==Nn?Rn:s)==Rn,p=c==s;if(p&&Vt(e)){if(!Vt(t))return!1;i=!0,l=!1}if(p&&!l)return a||(a=new Tr),i||Lt(e)?xn(e,t,r,n,o,a):function(e,t,r,n,o,a,i){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new an(e),new an(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return bt(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var u=An;case"[object Set]":var c=1&n;if(u||(u=En),e.size!=t.size&&!c)return!1;var s=i.get(e);if(s)return s==t;n|=2,i.set(e,t);var l=xn(u(e),u(t),n,o,a,i);return i.delete(e),l;case"[object Symbol]":if(Tn)return Tn.call(e)==Tn.call(t)}return!1}(e,t,c,r,n,o,a);if(!(1&r)){var d=l&&Vn.call(e,"__wrapped__"),v=f&&Vn.call(t,"__wrapped__");if(d||v){var y=d?e.value():e,h=v?t.value():t;return a||(a=new Tr),o(y,h,r,n,a)}}return!!p&&(a||(a=new Tr),function(e,t,r,n,o,a){var i=1&r,u=Br(e),c=u.length;if(c!=Br(t).length&&!i)return!1;for(var s=c;s--;){var l=u[s];if(!(i?l in t:Pn.call(t,l)))return!1}var f=a.get(e),p=a.get(t);if(f&&p)return f==t&&p==e;var d=!0;a.set(e,t),a.set(t,e);for(var v=i;++s<c;){var y=e[l=u[s]],h=t[l];if(n)var b=i?n(h,y,l,t,e,a):n(y,h,l,e,t,a);if(!(void 0===b?y===h||o(y,h,r,n,a):b)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(d=!1)}return a.delete(e),a.delete(t),d}(e,t,r,n,o,a))}function zn(e,t,r,n,o){return e===t||(null==e||null==t||!Re(e)&&!Re(t)?e!=e&&t!=t:Cn(e,t,r,n,zn,o))}var Dn=function(e,t,r){for(var n=-1,o=Object(e),a=r(e),i=a.length;i--;){var u=a[++n];if(!1===t(o[u],u,o))break}return e};function In(e,t,r){(void 0!==r&&!bt(e[t],r)||void 0===r&&!(t in e))&&ht(e,t,r)}function Mn(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Un(e,t,r,n,o,a,i){var u=Mn(e,r),c=Mn(t,r),s=i.get(c);if(s)In(e,r,s);else{var l,f=a?a(u,c,r+"",e,t,i):void 0,p=void 0===f;if(p){var d=ze(c),v=!d&&Vt(c),y=!d&&!v&&Lt(c);f=c,d||v||y?ze(u)?f=u:Re(l=u)&&Ft(l)?f=it(u):v?(p=!1,f=Vr(c,!0)):y?(p=!1,f=fn(c,!0)):f=[]:kr(c)||Pt(c)?(f=u,Pt(u)?f=function(e){return jt(e,Qt(e))}(u):Ue(u)&&!Le(u)||(f=dn(c))):p=!1}p&&(i.set(c,f),o(f,c,n,a,i),i.delete(c)),In(e,r,f)}}function Bn(e,t,r,n,o){e!==t&&Dn(t,(function(a,i){if(o||(o=new Tr),Ue(a))Un(e,t,i,r,Bn,n,o);else{var u=n?n(Mn(e,i),a,i+"",e,t,o):void 0;void 0===u&&(u=a),In(e,i,u)}}),Qt)}function Ln(e,t){return t.length<2?e:br(e,function(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(o);++n<o;)a[n]=e[n+t];return a}(t,0,-1))}function qn(e,t){return zn(e,t)}function Wn(e){return null===e}var Kn,Yn=(Kn=function(e,t,r){Bn(e,t,r)},function(e,t){return dt(wt(e,t,Be),e+"")}((function(e,t){var r=-1,n=t.length,o=n>1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(o=Kn.length>3&&"function"==typeof o?(n--,o):void 0,a&&function(e,t,r){if(!Ue(r))return!1;var n=typeof t;return!!("number"==n?Ft(r)&&yt(t,r.length):"string"==n&&t in r)&&bt(r[t],e)}(t[0],t[1],a)&&(o=n<3?void 0:o,n=1),e=Object(e);++r<n;){var i=t[r];i&&Kn(e,i,r,o)}return e})));function Jn(e,t){return null==(e=Ln(e,t=yr(t,e)))||delete e[hr((r=t,n=null==r?0:r.length,n?r[n-1]:void 0))];var r,n}function Xn(e){return kr(e)?void 0:e}var Gn=function(e){return dt(wt(e,void 0,wr),e+"")}((function(e,t){var r={};if(null==e)return r;var n=!1;t=Ce(t,(function(t){return t=yr(t,e),n||(n=t.length>1),t})),jt(e,Lr(e),r),n&&(r=wn(r,7,Xn));for(var o=t.length;o--;)Jn(r,t[o]);return r}));function Hn(e,t,r){return null==e?e:function(e,t,r){if(!Ue(e))return e;for(var n=-1,o=(t=yr(t,e)).length,a=o-1,i=e;null!=i&&++n<o;){var u=hr(t[n]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(n!=a){var s=i[u];void 0===(c=void 0)&&(c=Ue(s)?s:yt(t[n+1])?[]:{})}mt(i,u,c),i=i[u]}return e}(e,t,r)}function Qn(){const e=t(new Map),r=(a=O(n({}),2)[1],o((function(){return a({})}),[]));var a;const i=o(((t,n)=>{e.current.set(t,n),r()}),[r]),u=o((t=>{e.current=new Map(t),r()}),[r]),c=o((t=>{e.current.delete(t),r()}),[r]),s=o((()=>{e.current.clear(),r()}),[r]),l=o((t=>e.current.get(t)),[]);return[e.current,{set:i,setAll:u,remove:c,reset:s,get:l}]}const Zn=e=>e.map((e=>"number"==typeof e?`[${e}]`:`.${e}`)).join(""),eo=i(void 0),to=()=>{const e=u(eo);if(!e)throw new Error("useFormContext must be used within a FormProvider");return e},ro=e=>{var{initialValues:t,onFieldsChange:r,onValuesChange:a,children:i}=e,u=w(e,["initialValues","onFieldsChange","onValuesChange","children"]);const[c,{set:s,get:l,remove:f}]=Qn(),[p,d]=n(t||{}),v=o(((e,n,o)=>{const a=Zn(e),i=gr(p,e),u=i||(null!=o?o:gr(t,e));d((t=>{const r=On(t);return Hn(r,e,u),r}));const f=l(a);f&&console.warn(`[taro-form-react] Field "${a}" is already registered, register multiple times may cause unexpected behavior.`);const v=f?Object.assign(Object.assign({},f),{refs:[...f.refs,n],initialValue:o,count:f.count+1}):{refs:[n],name:e,touched:!1,errors:[],initialValue:o,count:1};s(a,v),null==r||r([{name:e,value:u}],Array.from(c.values()).map((e=>({name:e.name,value:gr(p,e.name)}))).concat([{name:e,value:u}]))}),[p,c,l,t,r,s]),y=o(((e,t)=>{const n=Zn(e),o=l(n);o?1===o.count?(f(n),d((t=>{const r=On(t);var n,o;return o=e,null==(n=r)||Jn(n,o),r})),null==r||r([{name:e,value:gr(p,e)}],Array.from(c.values()).map((e=>({name:e.name,value:gr(p,e.name)}))).filter((t=>t.name!==e)))):s(n,Object.assign(Object.assign({},o),{count:o.count-1,refs:o.refs.filter((e=>e!==t))})):console.warn(`[taro-form-react] Attempted to unregister field "${n}" that was never registered. Nothing will happen.`)}),[p,c,l,r,f,s]),h=o(((e,t)=>{const r=Zn(e),n=l(r);if(d((r=>{const n=On(r);return Hn(n,e,t),n})),n?s(r,Object.assign(Object.assign({},n),{touched:!0})):console.warn(`[taro-form-react] Attempted to set value for field "${r}" that was never registered.\nForm data will still be updated but may not present while submit.\nUse Form.Keep to keep the field in sync with the form data.`),a){const r={};Hn(r,e,t);const n=On(p);Hn(n,e,t),a(r,n)}}),[p,l,a,s]),b=o((e=>gr(p,e)),[p]),g=o((e=>{if(!e)return p;const t={};for(const r of e){Hn(t,r,gr(p,r))}return t}),[p]),m=o((async e=>{const t=null!=e?e:Array.from(c.values()).map((e=>e.name)),r={};for(const e of t){const t=l(Zn(e));if(!t){console.warn(`[taro-form-react] Attempted to get formatted value for field "${Zn(e)}" that was never registered. This field's value will not present in the result.`);continue}if(t.refs.some((e=>!e.current))){console.warn(`[taro-form-react] Attempted to get formatted value for field "${Zn(e)}" that has no or missing ref. This may cause unexpected behavior.`);continue}const n=t.refs[t.refs.length-1].current.transform;if(n){const t=await n();t.__form_internals_should_merge?Yn(r,t.value):Hn(r,e,t.value)}else Hn(r,e,gr(p,e))}return r}),[p,c,l]),j=o((e=>{d((t=>{const r={},n=On(t);for(const t of e){const e=Zn(t.name),o=l(Zn(t.name));o||console.warn(`[taro-form-react] Attempted to set field "${e}" that was never registered.\nForm data will still be updated but may not present while submit.\nUse Form.Keep to keep the field in sync with the form data.`),o&&void 0!==t.touched&&s(e,Object.assign(Object.assign({},o),{touched:t.touched})),Hn(n,t.name,t.value),Hn(r,t.name,t.value)}return setTimeout((()=>{null==a||a(r,Yn(On(t),n))}),0),n}))}),[l,a,s]),O=o((e=>{if(!e)return Array.from(c.values()).map((e=>Object.assign(Object.assign({},e),{value:gr(p,e.name)})));const t=[];for(const r of e){const e=l(Zn(r));if(!e){console.warn(`[taro-form-react] Attempted to get field "${Zn(r)}" that was never registered. This field will not present in the result.`);continue}const n=gr(p,r);t.push(Object.assign(Object.assign({},e),{value:n}))}return t}),[p,c,l]),F=o((e=>{var r;const n=null!==(r=null==e?void 0:e.map((e=>{const t=Zn(e),r=l(t);if(r)return r;console.warn(`[taro-form-react] Attempted to reset field "${t}" that was never registered. This field will not be reset.`)})).filter((e=>void 0!==e)))&&void 0!==r?r:Array.from(c.values());for(const e of n)d((r=>{var n;const o=On(r);return Hn(o,e.name,null!==(n=e.initialValue)&&void 0!==n?n:gr(t,e.name)),o})),s(Zn(e.name),Object.assign(Object.assign({},e),{touched:!1}))}),[c,l,t,s]),S=o(((e,t)=>{const r=Zn(e),n=l(r);n?s(r,Object.assign(Object.assign({},n),{errors:t})):console.warn(`[taro-form-react] Attempted to set errors for field "${r}" that was never registered. Nothing will happen.`)}),[l,s]),x=o((e=>{const t=l(Zn(e));return t?t.errors:(console.warn(`[taro-form-react] Attempted to get errors for field "${Zn(e)}" that was never registered. Returning empty array.`),[])}),[l]),A=o((async e=>{var t;const r=null!==(t=null==e?void 0:e.map((e=>{const t=Zn(e),r=l(t);if(r)return r;console.warn(`[taro-form-react] Attempted to validate field "${t}" that was never registered. This field will not be validated.`)})).filter((e=>void 0!==e)))&&void 0!==t?t:Array.from(c.values()),n=[];for(const e of r){if(e.refs.some((e=>!e.current))){console.warn(`[taro-form-react] Attempted to validate field "${Zn(e.name)}" that has no or missing ref. This field will not be validated.`);continue}const t=await Promise.all(e.refs.map((e=>e.current.validate()))),r=Array.from(new Set(t.flat().filter(Boolean)));r.length>0&&n.push({name:e.name,errors:r})}return n.length>0?n:void 0}),[c,l]),E=o(((e,t)=>{var r;const{allTouched:n=!1}=null!=t?t:{},o=null!==(r=null==e?void 0:e.map((e=>{const t=Zn(e),r=l(t);if(r)return r;console.warn(`[taro-form-react] Attempted to check if field "${t}" is touched but it was never registered. This field will not be considered.`)})).filter((e=>void 0!==e)))&&void 0!==r?r:Array.from(c.values());return n?o.every((e=>e.touched)):o.some((e=>e.touched))}),[c,l]);return _.jsx(eo.Provider,{value:Object.assign(Object.assign({initialValues:t},u),{data:p,setData:d,fields:c,registerField:v,unregisterField:y,setFieldValue:h,getFieldValue:b,getFieldsValue:g,getFieldsFormattedValue:m,setFields:j,getFields:O,resetFields:F,setFieldError:S,getFieldError:x,validateFields:A,isFieldsTouched:E}),children:i})},no=(e,t)=>void 0===e?t:e;const oo=e=>null==e||""===e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length;var ao,io={exports:{}};
|
|
15
|
+
*/var _e=(me||(me=1,function(e){!function(){var t={}.hasOwnProperty;function r(){for(var e="",t=0;t<arguments.length;t++){var r=arguments[t];r&&(e=o(e,n(r)))}return e}function n(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var n="";for(var a in e)t.call(e,a)&&e[a]&&(n=o(n,a));return n}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(r.default=r,e.exports=r):window.classNames=r}()}(je)),je.exports),we=d(_e),Oe="object"==typeof global&&global&&global.Object===Object&&global,Fe="object"==typeof self&&self&&self.Object===Object&&self,Se=Oe||Fe||Function("return this")(),xe=Se.Symbol,Ae=Object.prototype,Ee=Ae.hasOwnProperty,ke=Ae.toString,Te=xe?xe.toStringTag:void 0;var Pe=Object.prototype.toString;var Ne=xe?xe.toStringTag:void 0;function $e(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ne&&Ne in Object(e)?function(e){var t=Ee.call(e,Te),r=e[Te];try{e[Te]=void 0;var n=!0}catch(e){}var o=ke.call(e);return n&&(t?e[Te]=r:delete e[Te]),o}(e):function(e){return Pe.call(e)}(e)}function Re(e){return null!=e&&"object"==typeof e}function Ve(e){return"symbol"==typeof e||Re(e)&&"[object Symbol]"==$e(e)}function Ce(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}var ze=Array.isArray,De=xe?xe.prototype:void 0,Ie=De?De.toString:void 0;function Me(e){if("string"==typeof e)return e;if(ze(e))return Ce(e,Me)+"";if(Ve(e))return Ie?Ie.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Ue(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Be(e){return e}function Le(e){if(!Ue(e))return!1;var t=$e(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var qe,We=Se["__core-js_shared__"],Ke=(qe=/[^.]+$/.exec(We&&We.keys&&We.keys.IE_PROTO||""))?"Symbol(src)_1."+qe:"";var Ye=Function.prototype.toString;function Je(e){if(null!=e){try{return Ye.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Xe=/^\[object .+?Constructor\]$/,Ge=Function.prototype,He=Object.prototype,Qe=Ge.toString,Ze=He.hasOwnProperty,et=RegExp("^"+Qe.call(Ze).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tt(e){return!(!Ue(e)||(t=e,Ke&&Ke in t))&&(Le(e)?et:Xe).test(Je(e));var t}function rt(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return tt(r)?r:void 0}var nt=rt(Se,"WeakMap"),ot=Object.create,at=function(){function e(){}return function(t){if(!Ue(t))return{};if(ot)return ot(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function it(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}var ut=Date.now;var ct,st,lt,ft=function(){try{var e=rt(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),pt=ft?function(e,t){return ft(e,"toString",{configurable:!0,enumerable:!1,value:(r=t,function(){return r}),writable:!0});var r}:Be,dt=(ct=pt,st=0,lt=0,function(){var e=ut(),t=16-(e-lt);if(lt=e,t>0){if(++st>=800)return arguments[0]}else st=0;return ct.apply(void 0,arguments)});var vt=/^(?:0|[1-9]\d*)$/;function yt(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&vt.test(e))&&e>-1&&e%1==0&&e<t}function ht(e,t,r){"__proto__"==t&&ft?ft(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function bt(e,t){return e===t||e!=e&&t!=t}var gt=Object.prototype.hasOwnProperty;function mt(e,t,r){var n=e[t];gt.call(e,t)&&bt(n,r)&&(void 0!==r||t in e)||ht(e,t,r)}function jt(e,t,r,n){var o=!r;r||(r={});for(var a=-1,i=t.length;++a<i;){var u=t[a],c=void 0;void 0===c&&(c=e[u]),o?ht(r,u,c):mt(r,u,c)}return r}var _t=Math.max;function wt(e,t,r){return t=_t(void 0===t?e.length-1:t,0),function(){for(var n=arguments,o=-1,a=_t(n.length-t,0),i=Array(a);++o<a;)i[o]=n[t+o];o=-1;for(var u=Array(t+1);++o<t;)u[o]=n[o];return u[t]=r(i),function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}(e,this,u)}}function Ot(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ft(e){return null!=e&&Ot(e.length)&&!Le(e)}var St=Object.prototype;function xt(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||St)}function At(e){return Re(e)&&"[object Arguments]"==$e(e)}var Et=Object.prototype,kt=Et.hasOwnProperty,Tt=Et.propertyIsEnumerable,Pt=At(function(){return arguments}())?At:function(e){return Re(e)&&kt.call(e,"callee")&&!Tt.call(e,"callee")};var Nt="object"==typeof exports&&exports&&!exports.nodeType&&exports,$t=Nt&&"object"==typeof module&&module&&!module.nodeType&&module,Rt=$t&&$t.exports===Nt?Se.Buffer:void 0,Vt=(Rt?Rt.isBuffer:void 0)||function(){return!1},Ct={};function zt(e){return function(t){return e(t)}}Ct["[object Float32Array]"]=Ct["[object Float64Array]"]=Ct["[object Int8Array]"]=Ct["[object Int16Array]"]=Ct["[object Int32Array]"]=Ct["[object Uint8Array]"]=Ct["[object Uint8ClampedArray]"]=Ct["[object Uint16Array]"]=Ct["[object Uint32Array]"]=!0,Ct["[object Arguments]"]=Ct["[object Array]"]=Ct["[object ArrayBuffer]"]=Ct["[object Boolean]"]=Ct["[object DataView]"]=Ct["[object Date]"]=Ct["[object Error]"]=Ct["[object Function]"]=Ct["[object Map]"]=Ct["[object Number]"]=Ct["[object Object]"]=Ct["[object RegExp]"]=Ct["[object Set]"]=Ct["[object String]"]=Ct["[object WeakMap]"]=!1;var Dt="object"==typeof exports&&exports&&!exports.nodeType&&exports,It=Dt&&"object"==typeof module&&module&&!module.nodeType&&module,Mt=It&&It.exports===Dt&&Oe.process,Ut=function(){try{var e=It&&It.require&&It.require("util").types;return e||Mt&&Mt.binding&&Mt.binding("util")}catch(e){}}(),Bt=Ut&&Ut.isTypedArray,Lt=Bt?zt(Bt):function(e){return Re(e)&&Ot(e.length)&&!!Ct[$e(e)]},qt=Object.prototype.hasOwnProperty;function Wt(e,t){var r=ze(e),n=!r&&Pt(e),o=!r&&!n&&Vt(e),a=!r&&!n&&!o&&Lt(e),i=r||n||o||a,u=i?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}(e.length,String):[],c=u.length;for(var s in e)!t&&!qt.call(e,s)||i&&("length"==s||o&&("offset"==s||"parent"==s)||a&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||yt(s,c))||u.push(s);return u}function Kt(e,t){return function(r){return e(t(r))}}var Yt=Kt(Object.keys,Object),Jt=Object.prototype.hasOwnProperty;function Xt(e){return Ft(e)?Wt(e):function(e){if(!xt(e))return Yt(e);var t=[];for(var r in Object(e))Jt.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}var Gt=Object.prototype.hasOwnProperty;function Ht(e){if(!Ue(e))return function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}(e);var t=xt(e),r=[];for(var n in e)("constructor"!=n||!t&&Gt.call(e,n))&&r.push(n);return r}function Qt(e){return Ft(e)?Wt(e,!0):Ht(e)}var Zt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,er=/^\w*$/;var tr=rt(Object,"create");var rr=Object.prototype.hasOwnProperty;var nr=Object.prototype.hasOwnProperty;function or(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ar(e,t){for(var r=e.length;r--;)if(bt(e[r][0],t))return r;return-1}or.prototype.clear=function(){this.__data__=tr?tr(null):{},this.size=0},or.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},or.prototype.get=function(e){var t=this.__data__;if(tr){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return rr.call(t,e)?t[e]:void 0},or.prototype.has=function(e){var t=this.__data__;return tr?void 0!==t[e]:nr.call(t,e)},or.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=tr&&void 0===t?"__lodash_hash_undefined__":t,this};var ir=Array.prototype.splice;function ur(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}ur.prototype.clear=function(){this.__data__=[],this.size=0},ur.prototype.delete=function(e){var t=this.__data__,r=ar(t,e);return!(r<0)&&(r==t.length-1?t.pop():ir.call(t,r,1),--this.size,!0)},ur.prototype.get=function(e){var t=this.__data__,r=ar(t,e);return r<0?void 0:t[r][1]},ur.prototype.has=function(e){return ar(this.__data__,e)>-1},ur.prototype.set=function(e,t){var r=this.__data__,n=ar(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};var cr=rt(Se,"Map");function sr(e,t){var r,n,o=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof t?"string":"hash"]:o.map}function lr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}lr.prototype.clear=function(){this.size=0,this.__data__={hash:new or,map:new(cr||ur),string:new or}},lr.prototype.delete=function(e){var t=sr(this,e).delete(e);return this.size-=t?1:0,t},lr.prototype.get=function(e){return sr(this,e).get(e)},lr.prototype.has=function(e){return sr(this,e).has(e)},lr.prototype.set=function(e,t){var r=sr(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};function fr(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(fr.Cache||lr),r}fr.Cache=lr;var pr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dr=/\\(\\)?/g,vr=function(e){var t=fr(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(pr,(function(e,r,n,o){t.push(n?o.replace(dr,"$1"):r||e)})),t}));function yr(e,t){return ze(e)?e:function(e,t){if(ze(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!Ve(e))||er.test(e)||!Zt.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:vr(function(e){return null==e?"":Me(e)}(e))}function hr(e){if("string"==typeof e||Ve(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function br(e,t){for(var r=0,n=(t=yr(t,e)).length;null!=e&&r<n;)e=e[hr(t[r++])];return r&&r==n?e:void 0}function gr(e,t,r){var n=null==e?void 0:br(e,t);return void 0===n?r:n}function mr(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}var jr=xe?xe.isConcatSpreadable:void 0;function _r(e){return ze(e)||Pt(e)||!!(jr&&e&&e[jr])}function wr(e){return(null==e?0:e.length)?function(e,t,r,n,o){var a=-1,i=e.length;for(r||(r=_r),o||(o=[]);++a<i;){var u=e[a];r(u)?mr(o,u):o[o.length]=u}return o}(e):[]}var Or=Kt(Object.getPrototypeOf,Object),Fr=Function.prototype,Sr=Object.prototype,xr=Fr.toString,Ar=Sr.hasOwnProperty,Er=xr.call(Object);function kr(e){if(!Re(e)||"[object Object]"!=$e(e))return!1;var t=Or(e);if(null===t)return!0;var r=Ar.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&xr.call(r)==Er}function Tr(e){var t=this.__data__=new ur(e);this.size=t.size}Tr.prototype.clear=function(){this.__data__=new ur,this.size=0},Tr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Tr.prototype.get=function(e){return this.__data__.get(e)},Tr.prototype.has=function(e){return this.__data__.has(e)},Tr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ur){var n=r.__data__;if(!cr||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new lr(n)}return r.set(e,t),this.size=r.size,this};var Pr="object"==typeof exports&&exports&&!exports.nodeType&&exports,Nr=Pr&&"object"==typeof module&&module&&!module.nodeType&&module,$r=Nr&&Nr.exports===Pr?Se.Buffer:void 0,Rr=$r?$r.allocUnsafe:void 0;function Vr(e,t){if(t)return e.slice();var r=e.length,n=Rr?Rr(r):new e.constructor(r);return e.copy(n),n}function Cr(){return[]}var zr=Object.prototype.propertyIsEnumerable,Dr=Object.getOwnPropertySymbols,Ir=Dr?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}(Dr(e),(function(t){return zr.call(e,t)})))}:Cr;var Mr=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)mr(t,Ir(e)),e=Or(e);return t}:Cr;function Ur(e,t,r){var n=t(e);return ze(e)?n:mr(n,r(e))}function Br(e){return Ur(e,Xt,Ir)}function Lr(e){return Ur(e,Qt,Mr)}var qr=rt(Se,"DataView"),Wr=rt(Se,"Promise"),Kr=rt(Se,"Set"),Yr="[object Map]",Jr="[object Promise]",Xr="[object Set]",Gr="[object WeakMap]",Hr="[object DataView]",Qr=Je(qr),Zr=Je(cr),en=Je(Wr),tn=Je(Kr),rn=Je(nt),nn=$e;(qr&&nn(new qr(new ArrayBuffer(1)))!=Hr||cr&&nn(new cr)!=Yr||Wr&&nn(Wr.resolve())!=Jr||Kr&&nn(new Kr)!=Xr||nt&&nn(new nt)!=Gr)&&(nn=function(e){var t=$e(e),r="[object Object]"==t?e.constructor:void 0,n=r?Je(r):"";if(n)switch(n){case Qr:return Hr;case Zr:return Yr;case en:return Jr;case tn:return Xr;case rn:return Gr}return t});var on=Object.prototype.hasOwnProperty;var an=Se.Uint8Array;function un(e){var t=new e.constructor(e.byteLength);return new an(t).set(new an(e)),t}var cn=/\w*$/;var sn=xe?xe.prototype:void 0,ln=sn?sn.valueOf:void 0;function fn(e,t){var r=t?un(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function pn(e,t,r){var n,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return un(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var r=t?un(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return fn(e,r);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,cn.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return n=e,ln?Object(ln.call(n)):{}}}function dn(e){return"function"!=typeof e.constructor||xt(e)?{}:at(Or(e))}var vn=Ut&&Ut.isMap,yn=vn?zt(vn):function(e){return Re(e)&&"[object Map]"==nn(e)};var hn=Ut&&Ut.isSet,bn=hn?zt(hn):function(e){return Re(e)&&"[object Set]"==nn(e)},gn="[object Arguments]",mn="[object Function]",jn="[object Object]",_n={};function wn(e,t,r,n,o,a){var i,u=1&t,c=2&t,s=4&t;if(r&&(i=o?r(e,n,o,a):r(e)),void 0!==i)return i;if(!Ue(e))return e;var l=ze(e);if(l){if(i=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&on.call(e,"index")&&(r.index=e.index,r.input=e.input),r}(e),!u)return it(e,i)}else{var f=nn(e),p=f==mn||"[object GeneratorFunction]"==f;if(Vt(e))return Vr(e,u);if(f==jn||f==gn||p&&!o){if(i=c||p?{}:dn(e),!u)return c?function(e,t){return jt(e,Mr(e),t)}(e,function(e,t){return e&&jt(t,Qt(t),e)}(i,e)):function(e,t){return jt(e,Ir(e),t)}(e,function(e,t){return e&&jt(t,Xt(t),e)}(i,e))}else{if(!_n[f])return o?e:{};i=pn(e,f,u)}}a||(a=new Tr);var d=a.get(e);if(d)return d;a.set(e,i),bn(e)?e.forEach((function(n){i.add(wn(n,t,r,n,e,a))})):yn(e)&&e.forEach((function(n,o){i.set(o,wn(n,t,r,o,e,a))}));var v=l?void 0:(s?c?Lr:Br:c?Qt:Xt)(e);return function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););}(v||e,(function(n,o){v&&(n=e[o=n]),mt(i,o,wn(n,t,r,o,e,a))})),i}_n[gn]=_n["[object Array]"]=_n["[object ArrayBuffer]"]=_n["[object DataView]"]=_n["[object Boolean]"]=_n["[object Date]"]=_n["[object Float32Array]"]=_n["[object Float64Array]"]=_n["[object Int8Array]"]=_n["[object Int16Array]"]=_n["[object Int32Array]"]=_n["[object Map]"]=_n["[object Number]"]=_n[jn]=_n["[object RegExp]"]=_n["[object Set]"]=_n["[object String]"]=_n["[object Symbol]"]=_n["[object Uint8Array]"]=_n["[object Uint8ClampedArray]"]=_n["[object Uint16Array]"]=_n["[object Uint32Array]"]=!0,_n["[object Error]"]=_n[mn]=_n["[object WeakMap]"]=!1;function On(e){return wn(e,5)}function Fn(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new lr;++t<r;)this.add(e[t])}function Sn(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}Fn.prototype.add=Fn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Fn.prototype.has=function(e){return this.__data__.has(e)};function xn(e,t,r,n,o,a){var i=1&r,u=e.length,c=t.length;if(u!=c&&!(i&&c>u))return!1;var s=a.get(e),l=a.get(t);if(s&&l)return s==t&&l==e;var f=-1,p=!0,d=2&r?new Fn:void 0;for(a.set(e,t),a.set(t,e);++f<u;){var v=e[f],y=t[f];if(n)var h=i?n(y,v,f,t,e,a):n(v,y,f,e,t,a);if(void 0!==h){if(h)continue;p=!1;break}if(d){if(!Sn(t,(function(e,t){if(i=t,!d.has(i)&&(v===e||o(v,e,r,n,a)))return d.push(t);var i}))){p=!1;break}}else if(v!==y&&!o(v,y,r,n,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function An(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function En(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var kn=xe?xe.prototype:void 0,Tn=kn?kn.valueOf:void 0;var Pn=Object.prototype.hasOwnProperty;var Nn="[object Arguments]",$n="[object Array]",Rn="[object Object]",Vn=Object.prototype.hasOwnProperty;function Cn(e,t,r,n,o,a){var i=ze(e),u=ze(t),c=i?$n:nn(e),s=u?$n:nn(t),l=(c=c==Nn?Rn:c)==Rn,f=(s=s==Nn?Rn:s)==Rn,p=c==s;if(p&&Vt(e)){if(!Vt(t))return!1;i=!0,l=!1}if(p&&!l)return a||(a=new Tr),i||Lt(e)?xn(e,t,r,n,o,a):function(e,t,r,n,o,a,i){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new an(e),new an(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return bt(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var u=An;case"[object Set]":var c=1&n;if(u||(u=En),e.size!=t.size&&!c)return!1;var s=i.get(e);if(s)return s==t;n|=2,i.set(e,t);var l=xn(u(e),u(t),n,o,a,i);return i.delete(e),l;case"[object Symbol]":if(Tn)return Tn.call(e)==Tn.call(t)}return!1}(e,t,c,r,n,o,a);if(!(1&r)){var d=l&&Vn.call(e,"__wrapped__"),v=f&&Vn.call(t,"__wrapped__");if(d||v){var y=d?e.value():e,h=v?t.value():t;return a||(a=new Tr),o(y,h,r,n,a)}}return!!p&&(a||(a=new Tr),function(e,t,r,n,o,a){var i=1&r,u=Br(e),c=u.length;if(c!=Br(t).length&&!i)return!1;for(var s=c;s--;){var l=u[s];if(!(i?l in t:Pn.call(t,l)))return!1}var f=a.get(e),p=a.get(t);if(f&&p)return f==t&&p==e;var d=!0;a.set(e,t),a.set(t,e);for(var v=i;++s<c;){var y=e[l=u[s]],h=t[l];if(n)var b=i?n(h,y,l,t,e,a):n(y,h,l,e,t,a);if(!(void 0===b?y===h||o(y,h,r,n,a):b)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(d=!1)}return a.delete(e),a.delete(t),d}(e,t,r,n,o,a))}function zn(e,t,r,n,o){return e===t||(null==e||null==t||!Re(e)&&!Re(t)?e!=e&&t!=t:Cn(e,t,r,n,zn,o))}var Dn=function(e,t,r){for(var n=-1,o=Object(e),a=r(e),i=a.length;i--;){var u=a[++n];if(!1===t(o[u],u,o))break}return e};function In(e,t,r){(void 0!==r&&!bt(e[t],r)||void 0===r&&!(t in e))&&ht(e,t,r)}function Mn(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function Un(e,t,r,n,o,a,i){var u=Mn(e,r),c=Mn(t,r),s=i.get(c);if(s)In(e,r,s);else{var l,f=a?a(u,c,r+"",e,t,i):void 0,p=void 0===f;if(p){var d=ze(c),v=!d&&Vt(c),y=!d&&!v&&Lt(c);f=c,d||v||y?ze(u)?f=u:Re(l=u)&&Ft(l)?f=it(u):v?(p=!1,f=Vr(c,!0)):y?(p=!1,f=fn(c,!0)):f=[]:kr(c)||Pt(c)?(f=u,Pt(u)?f=function(e){return jt(e,Qt(e))}(u):Ue(u)&&!Le(u)||(f=dn(c))):p=!1}p&&(i.set(c,f),o(f,c,n,a,i),i.delete(c)),In(e,r,f)}}function Bn(e,t,r,n,o){e!==t&&Dn(t,(function(a,i){if(o||(o=new Tr),Ue(a))Un(e,t,i,r,Bn,n,o);else{var u=n?n(Mn(e,i),a,i+"",e,t,o):void 0;void 0===u&&(u=a),In(e,i,u)}}),Qt)}function Ln(e,t){return t.length<2?e:br(e,function(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(o);++n<o;)a[n]=e[n+t];return a}(t,0,-1))}function qn(e,t){return zn(e,t)}function Wn(e){return null===e}var Kn,Yn=(Kn=function(e,t,r){Bn(e,t,r)},function(e,t){return dt(wt(e,t,Be),e+"")}((function(e,t){var r=-1,n=t.length,o=n>1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(o=Kn.length>3&&"function"==typeof o?(n--,o):void 0,a&&function(e,t,r){if(!Ue(r))return!1;var n=typeof t;return!!("number"==n?Ft(r)&&yt(t,r.length):"string"==n&&t in r)&&bt(r[t],e)}(t[0],t[1],a)&&(o=n<3?void 0:o,n=1),e=Object(e);++r<n;){var i=t[r];i&&Kn(e,i,r,o)}return e})));function Jn(e,t){return null==(e=Ln(e,t=yr(t,e)))||delete e[hr((r=t,n=null==r?0:r.length,n?r[n-1]:void 0))];var r,n}function Xn(e){return kr(e)?void 0:e}var Gn=function(e){return dt(wt(e,void 0,wr),e+"")}((function(e,t){var r={};if(null==e)return r;var n=!1;t=Ce(t,(function(t){return t=yr(t,e),n||(n=t.length>1),t})),jt(e,Lr(e),r),n&&(r=wn(r,7,Xn));for(var o=t.length;o--;)Jn(r,t[o]);return r}));function Hn(e,t,r){return null==e?e:function(e,t,r){if(!Ue(e))return e;for(var n=-1,o=(t=yr(t,e)).length,a=o-1,i=e;null!=i&&++n<o;){var u=hr(t[n]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(n!=a){var s=i[u];void 0===(c=void 0)&&(c=Ue(s)?s:yt(t[n+1])?[]:{})}mt(i,u,c),i=i[u]}return e}(e,t,r)}function Qn(){const e=t(new Map),r=(a=O(n({}),2)[1],o((function(){return a({})}),[]));var a;const i=o(((t,n)=>{e.current.set(t,n),r()}),[r]),u=o((t=>{e.current=new Map(t),r()}),[r]),c=o((t=>{e.current.delete(t),r()}),[r]),s=o((()=>{e.current.clear(),r()}),[r]),l=o((t=>e.current.get(t)),[]);return[e.current,{set:i,setAll:u,remove:c,reset:s,get:l}]}const Zn=e=>e.map((e=>"number"==typeof e?`[${e}]`:`.${e}`)).join(""),eo=i(void 0),to=()=>{const e=u(eo);if(!e)throw new Error("useFormContext must be used within a FormProvider");return e},ro=e=>{var{initialValues:r,onFieldsChange:a,onValuesChange:i,children:u}=e,c=w(e,["initialValues","onFieldsChange","onValuesChange","children"]);const[s,{set:l,get:f,remove:p}]=Qn(),[d,v]=n(r||{}),y=t(null),h=o(((e,t,n)=>{var o,i,u;const c=Zn(e),p=gr(d,e),h=p||(null!=n?n:gr(r,e));v((t=>{const r=On(t);return Hn(r,e,h),r}));const b=f(c);b&&console.warn(`[taro-form-react] Field "${c}" is already registered, register multiple times may cause unexpected behavior.`);const g=null===(o=y.current)||void 0===o?void 0:o[c],m=b?Object.assign(Object.assign({},b),{refs:[...b.refs,t],initialValue:n,count:b.count+1}):{refs:[t],name:e,touched:null!==(i=null==g?void 0:g.touched)&&void 0!==i&&i,errors:null!==(u=null==g?void 0:g.errors)&&void 0!==u?u:[],initialValue:n,count:1};g&&delete y.current[c],l(c,m),null==a||a([{name:e,value:h}],Array.from(s.values()).map((e=>({name:e.name,value:gr(d,e.name)}))).concat([{name:e,value:h}]))}),[d,s,f,r,a,l]),b=o(((e,t)=>{const r=Zn(e),n=f(r);n?1===n.count?(p(r),v((t=>{const r=On(t);var n,o;return o=e,null==(n=r)||Jn(n,o),r})),null==a||a([{name:e,value:gr(d,e)}],Array.from(s.values()).map((e=>({name:e.name,value:gr(d,e.name)}))).filter((t=>t.name!==e)))):l(r,Object.assign(Object.assign({},n),{count:n.count-1,refs:n.refs.filter((e=>e!==t))})):console.warn(`[taro-form-react] Attempted to unregister field "${r}" that was never registered. Nothing will happen.`)}),[d,s,f,a,p,l]),g=o(((e,t)=>{y.current=null;const r=Zn(e),n=f(r);if(v((r=>{const n=On(r);return Hn(n,e,t),n})),n?l(r,Object.assign(Object.assign({},n),{touched:!0})):console.warn(`[taro-form-react] Attempted to set value for field "${r}" that was never registered.\nForm data will still be updated but may not present while submit.\nUse Form.Keep to keep the field in sync with the form data.`),i){const r={};Hn(r,e,t);const n=On(d);Hn(n,e,t),i(r,n)}}),[d,f,i,l]),m=o((e=>gr(d,e)),[d]),j=o((e=>{if(!e)return d;const t={};for(const r of e){Hn(t,r,gr(d,r))}return t}),[d]),O=o((async e=>{const t=null!=e?e:Array.from(s.values()).map((e=>e.name)),r={};for(const e of t){const t=f(Zn(e));if(!t){console.warn(`[taro-form-react] Attempted to get formatted value for field "${Zn(e)}" that was never registered. This field's value will not present in the result.`);continue}if(t.refs.some((e=>!e.current))){console.warn(`[taro-form-react] Attempted to get formatted value for field "${Zn(e)}" that has no or missing ref. This may cause unexpected behavior.`);continue}const n=t.refs[t.refs.length-1].current.transform;if(n){const t=await n();t.__form_internals_should_merge?Yn(r,t.value):Hn(r,e,t.value)}else Hn(r,e,gr(d,e))}return r}),[d,s,f]),F=o((e=>{v((t=>{const r={},n=On(t);for(const t of e){const e=Zn(t.name),o=f(Zn(t.name));o||console.warn(`[taro-form-react] Attempted to set field "${e}" that was never registered.\nForm data will still be updated but may not present while submit.\nUse Form.Keep to keep the field in sync with the form data.`),o&&void 0!==t.touched&&l(e,Object.assign(Object.assign({},o),{touched:t.touched})),Hn(n,t.name,t.value),Hn(r,t.name,t.value)}return setTimeout((()=>{null==i||i(r,Yn(On(t),n))}),0),n}))}),[f,i,l]),S=o((e=>{if(!e)return Array.from(s.values()).map((e=>Object.assign(Object.assign({},e),{value:gr(d,e.name)})));const t=[];for(const r of e){const e=f(Zn(r));if(!e){console.warn(`[taro-form-react] Attempted to get field "${Zn(r)}" that was never registered. This field will not present in the result.`);continue}const n=gr(d,r);t.push(Object.assign(Object.assign({},e),{value:n}))}return t}),[d,s,f]),x=o((e=>{var t;y.current=null;const n=null!==(t=null==e?void 0:e.map((e=>{const t=Zn(e),r=f(t);if(r)return r;console.warn(`[taro-form-react] Attempted to reset field "${t}" that was never registered. This field will not be reset.`)})).filter((e=>void 0!==e)))&&void 0!==t?t:Array.from(s.values());for(const e of n)v((t=>{var n;const o=On(t);return Hn(o,e.name,null!==(n=e.initialValue)&&void 0!==n?n:gr(r,e.name)),o})),l(Zn(e.name),Object.assign(Object.assign({},e),{touched:!1}))}),[s,f,r,l]),A=o(((e,t)=>{const r=Zn(e),n=f(r);n?l(r,Object.assign(Object.assign({},n),{errors:t})):console.warn(`[taro-form-react] Attempted to set errors for field "${r}" that was never registered. Nothing will happen.`)}),[f,l]),E=o((e=>{const t=f(Zn(e));return t?t.errors:(console.warn(`[taro-form-react] Attempted to get errors for field "${Zn(e)}" that was never registered. Returning empty array.`),[])}),[f]),k=o((async e=>{var t;const r=null!==(t=null==e?void 0:e.map((e=>{const t=Zn(e),r=f(t);if(r)return r;console.warn(`[taro-form-react] Attempted to validate field "${t}" that was never registered. This field will not be validated.`)})).filter((e=>void 0!==e)))&&void 0!==t?t:Array.from(s.values()),n=[];for(const e of r){if(e.refs.some((e=>!e.current))){console.warn(`[taro-form-react] Attempted to validate field "${Zn(e.name)}" that has no or missing ref. This field will not be validated.`);continue}const t=await Promise.all(e.refs.map((e=>e.current.validate()))),r=Array.from(new Set(t.flat().filter(Boolean)));r.length>0&&n.push({name:e.name,errors:r})}return n.length>0?n:void 0}),[s,f]),T=o(((e,t)=>{var r;const{allTouched:n=!1}=null!=t?t:{},o=null!==(r=null==e?void 0:e.map((e=>{const t=Zn(e),r=f(t);if(r)return r;console.warn(`[taro-form-react] Attempted to check if field "${t}" is touched but it was never registered. This field will not be considered.`)})).filter((e=>void 0!==e)))&&void 0!==r?r:Array.from(s.values());return n?o.every((e=>e.touched)):o.some((e=>e.touched))}),[s,f]),P=o((()=>{const e={};for(const[t,r]of s.entries())e[t]={touched:r.touched,errors:[...r.errors]};return{data:On(d),fields:e}}),[d,s]),N=o((e=>{v(On(e.data));const t=On(e.fields);for(const[e,r]of s.entries()){const n=t[e];n&&(l(e,Object.assign(Object.assign({},r),{touched:n.touched,errors:n.errors})),delete t[e])}y.current=Object.keys(t).length>0?t:null}),[s,l]);return _.jsx(eo.Provider,{value:Object.assign(Object.assign({initialValues:r},c),{data:d,setData:v,fields:s,registerField:h,unregisterField:b,setFieldValue:g,getFieldValue:m,getFieldsValue:j,getFieldsFormattedValue:O,setFields:F,getFields:S,resetFields:x,setFieldError:A,getFieldError:E,validateFields:k,isFieldsTouched:T,capture:P,restore:N}),children:u})},no=(e,t)=>void 0===e?t:e;const oo=e=>null==e||""===e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length;var ao,io={exports:{}};
|
|
16
16
|
/*!
|
|
17
17
|
Copyright (c) 2018 Jed Watson.
|
|
18
18
|
Licensed under the MIT License (MIT), see
|
|
19
19
|
http://jedwatson.github.io/classnames
|
|
20
|
-
*/var uo=(ao||(ao=1,function(e){!function(){var t=function(){function e(){}function t(e,t){for(var r=t.length,n=0;n<r;++n)o(e,t[n])}e.prototype=Object.create(null);var r={}.hasOwnProperty,n=/\s+/;function o(e,o){if(o){var a=typeof o;"string"===a?function(e,t){for(var r=t.split(n),o=r.length,a=0;a<o;++a)e[r[a]]=!0}(e,o):Array.isArray(o)?t(e,o):"object"===a?function(e,t){if(t.toString===Object.prototype.toString||t.toString.toString().includes("[native code]"))for(var n in t)r.call(t,n)&&(e[n]=!!t[n]);else e[t.toString()]=!0}(e,o):"number"===a&&function(e,t){e[t]=!0}(e,o)}}return function(){for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];var a=new e;t(a,n);var i=[];for(var u in a)a[u]&&i.push(u);return i.join(" ")}}();e.exports?(t.default=t,e.exports=t):window.classNames=t}()}(io)),io.exports),co=d(uo);const so=({size:e,required:t,labelClassName:r,label:n})=>{const o="small"===e?"tfr-small tfr-hide-asterisk":"tfr-normal tfr-hide-asterisk",a="small"===e?"tfr-small tfr-show-asterisk":"tfr-normal tfr-show-asterisk";return _.jsx(f,{className:co("tfr-form-label-label",t?a:o,r),children:n})},lo=({colon:e=!0,colonClassName:t})=>e&&_.jsx(f,{className:co("tfr-form-label-colon",t),children:":"}),fo=({label:e,required:t,size:r="normal",colon:n=!0,colonClassName:o,labelClassName:a,className:i,addonAfter:u,asteriskTookSpace:c=!0})=>_.jsxs(l,{className:co("tfr-form-label",!c&&"normal"===r&&"tfr-form-label-no-asterisk-space",i),children:[e&&_.jsx(so,{size:r,label:e,required:t,labelClassName:a}),_.jsx(lo,{colon:n,colonClassName:o}),u]}),po=n=>{var{hidden:i,name:u,required:c,trigger:s="onChange",valuePropName:f="value",getValueFromEvent:p=(...e)=>e[0],dependencies:d,label:v=null,noStyle:y,initialValue:h,rules:b,validateTrigger:g,className:m,innerClassName:j,transform:O,children:F}=n,S=w(n,["hidden","name","required","trigger","valuePropName","getValueFromEvent","dependencies","label","noStyle","initialValue","rules","validateTrigger","className","innerClassName","transform","children"]);const x=t({validate:()=>Promise.resolve()}),{value:A,errors:E,isTouched:k,dependencyValues:T,onChange:P,onErrorsChange:N}=function({ref:e,name:r,initialValue:n,dependencies:i}){const u=t(!1),{data:c,registerField:s,unregisterField:l,setFieldValue:f,setFieldError:p,getFieldError:d,isFieldsTouched:v}=to();be((()=>{const t=r,o=e;return s(t,o,n),u.current=!0,()=>{l(t,o),u.current=!1}}),[r]);const y=a((()=>gr(c,r)),[c,r]),h=u.current?d(r):[],b=!!u.current&&v([r]),g=o((e=>{f(r,e)}),[r,f]),m=o((e=>{p(r,e)}),[r,p]);return{value:y,errors:h,isTouched:b,onChange:g,onErrorsChange:m,dependencyValues:a((()=>(i||[]).map((e=>gr(c,e)))),[c,i])}}({ref:x,name:u,initialValue:h,dependencies:d}),{colon:$,labelProps:R,layout:V,validateFirst:C,showErrors:z,passthroughErrors:D,transformBehavior:I,updateTickLimit:M,getRequiredMessage:U}=function({colon:e,labelProps:t,layout:r,validateFirst:n,passthroughErrors:o,showErrors:a,transformBehavior:i,updateTickLimit:u,getRequiredMessage:c}={}){const{colon:s=!0,labelProps:l={},layout:f="vertical",validateFirst:p=!1,passthroughErrors:d=!1,showErrors:v=!0,transformBehavior:y="replace",updateTickLimit:h=50,getRequiredMessage:b=e=>`${e}不能为空`}=to();return{colon:no(e,s),labelProps:no(t,l),layout:no(r,f),validateFirst:no(n,p),passthroughErrors:no(o,d),showErrors:no(a,v),transformBehavior:no(i,y),updateTickLimit:no(u,h),getRequiredMessage:no(c,b)}}(S),B=a((()=>c&&!(null==b?void 0:b.some((e=>"required"in e)))?[{required:!0,message:U(String(v))},...null!=b?b:[]]:b),[U,v,c,b]),L=o((async(e={})=>{const t=await(async(e,t,r=!1)=>{const n=[],o=async t=>{var r,n,o,a,i,u,c;switch(!0){case"required"in t:if(oo(e))return t.message;break;case"pattern"in t:if(!oo(e)&&!t.pattern.test(e))return t.message;break;case"max"in t:if(!oo(e)&&e.length>(null!==(r=t.max)&&void 0!==r?r:1/0)){if("number"==typeof e&&e>(null!==(n=t.max)&&void 0!==n?n:1/0))return t.message;if((null!==(o=null==e?void 0:e.length)&&void 0!==o?o:0)>(null!==(a=t.max)&&void 0!==a?a:1/0))return t.message}break;case"min"in t:if(!oo(e)){if("number"==typeof e&&e<(null!==(i=t.min)&&void 0!==i?i:-1/0))return t.message;if((null!==(u=null==e?void 0:e.length)&&void 0!==u?u:0)<(null!==(c=t.min)&&void 0!==c?c:-1/0))return t.message}break;case"validator"in t:return await t.validator(e)}};if("parallel"===r){const e=await Promise.all(t.map((e=>o(e))));for(const t of e)t&&n.push(t)}else for(const e of t){const t=await o(e);if(t&&(n.push(t),r))return n}return n.length?n:void 0})("value"in e?e.value:A,null!=B?B:[],C);return N(null!=t?t:[]),t}),[A,B,C,N]);r((()=>{const e={validate:L};O&&(e.transform=async()=>{const e=await O(A);return{__form_internals_should_merge:"merge"===I,value:e}}),x.current=e}),[L,O,I,A]),r((()=>{k&&L()}),T);const q=a((()=>null!=g?g:[s]),[g,s]),W=o(((...e)=>{var t,r;const n=p(...e);P(n),q.includes(s)&&L({value:n}),null===(r=null===(t=null==F?void 0:F.props)||void 0===t?void 0:t[s])||void 0===r||r.call(t,...e)}),[null==F?void 0:F.props,p,L,P,s,q]),{run:K}=ge(W,{wait:M,trailing:!0});if(i)return null;const Y=E.length>0,J=e.cloneElement(F,Object.assign(Object.assign(Object.assign({[s]:K,[f]:A},q.filter((e=>e!==s)).reduce(((e,t)=>{return Object.assign(Object.assign({},e),{[t]:(r=F.props[t],(...e)=>{L(),null==r||r(...e)})});var r}),{})),{className:we(F.props.className)}),D&&{hasError:Y,errors:E}));return y?J:_.jsxs(l,{className:we("tfr-form-item-container","horizontal"===V&&"tfr-form-item-container-horizontal",m),children:[_.jsxs(l,{className:we("tfr-form-item-inner","horizontal"===V&&"tfr-form-item-inner-horizontal","vertical"===V&&"tfr-form-item-inner-vertical",j),children:[!Wn(v)&&_.jsx(fo,Object.assign({label:v,required:c,colon:$},R)),J]}),Y&&z&&E.map(((e,t)=>_.jsx(l,{className:"tfr-form-item-error-text",children:e},t)))]})},vo=i(void 0),yo=c((({omitNil:e=!0,onFinish:t,onFinishFailed:r,children:n},a)=>{const i=to(),u=o((async()=>{const n=await i.validateFields();if(n)return void(null==r||r(n));const o=e?function(e,t=!1){return Object.entries(e).reduce(((e,[r,n])=>(void 0===n||t&&null===n||(e[r]=n),e)),{})}(await i.getFieldsFormattedValue(),!0):await i.getFieldsFormattedValue();try{null==t||t(o)}catch(e){console.log("[taro-form-react] onFinish method errored: ",e)}return o}),[i,e,t,r]);return s(a,(()=>({submit:u,setData:i.setData,reset:i.resetFields,setFieldValue:i.setFieldValue,getFieldValue:i.getFieldValue,getFieldsValue:i.getFieldsValue,getFieldsFormattedValue:i.getFieldsFormattedValue,setFields:i.setFields,getFields:i.getFields,resetFields:i.resetFields,setFieldError:i.setFieldError,getFieldError:i.getFieldError,validateFields:i.validateFields,isFieldsTouched:i.isFieldsTouched})),[i.getFieldError,i.getFieldValue,i.getFields,i.getFieldsFormattedValue,i.getFieldsValue,i.isFieldsTouched,i.resetFields,i.setData,i.setFieldError,i.setFieldValue,i.setFields,i.validateFields,u]),_.jsx(vo.Provider,{value:{submit:u,reset:i.resetFields},children:n})})),ho=c(((e,t)=>_.jsx(ro,Object.assign({},e,{children:_.jsx(yo,Object.assign({ref:t},e))}))));ho.Item=po,ho.Provider=({children:e})=>{const t=Gn(to(),["registerField","unregisterField","setFieldValue","setFields","resetFields","setFieldError","setData"]),r=(()=>{const e=u(vo);if(!e)throw new Error("useInnerFormContext must be used within a InnerFormContextProvider");return e})();return _.jsx(_.Fragment,{children:e(Object.assign(Object.assign({},t),r))})},ho.Label=fo,ho.Keep=({fields:e})=>{const t=a((()=>{const t=new Map;for(const r of e)t.set(Zn(r),r);return Array.from(t.values())}),[e]);return t.length>0?t.map((e=>_.jsx(po,{name:e,hidden:!0},Zn(e)))):null},ho.Sync=e=>{const{data:n,setFields:o}=to(),i=a((()=>{const t=new Map;if("fields"in e)for(const r of e.fields)t.set(Zn(r),r);else{t.set(Zn(e.source),e.source);for(const r of e.target)t.set(Zn(r),r)}return Array.from(t.values())}),[e]),u=t(new Map);return r((()=>{const t=[];if("fields"in e)for(const e of i){const r=Zn(e),o=gr(n,e);let a=!1;if(!qn(u.current.get(r),o)){a=!0;for(const e of i){const n=Zn(e);n!==r&&(t.push({name:e,value:o}),u.current.set(n,o))}}if(u.current.set(r,o),a)break}else{const r=Zn(e.source),o=gr(n,e.source);if(!qn(u.current.get(r),o))for(const r of e.target)t.push({name:r,value:o});u.current.set(r,o)}oo(t)||o(t)}),[e,n,i,o]),null};export{ho as default,to as useFormContext};
|
|
20
|
+
*/var uo=(ao||(ao=1,function(e){!function(){var t=function(){function e(){}function t(e,t){for(var r=t.length,n=0;n<r;++n)o(e,t[n])}e.prototype=Object.create(null);var r={}.hasOwnProperty,n=/\s+/;function o(e,o){if(o){var a=typeof o;"string"===a?function(e,t){for(var r=t.split(n),o=r.length,a=0;a<o;++a)e[r[a]]=!0}(e,o):Array.isArray(o)?t(e,o):"object"===a?function(e,t){if(t.toString===Object.prototype.toString||t.toString.toString().includes("[native code]"))for(var n in t)r.call(t,n)&&(e[n]=!!t[n]);else e[t.toString()]=!0}(e,o):"number"===a&&function(e,t){e[t]=!0}(e,o)}}return function(){for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];var a=new e;t(a,n);var i=[];for(var u in a)a[u]&&i.push(u);return i.join(" ")}}();e.exports?(t.default=t,e.exports=t):window.classNames=t}()}(io)),io.exports),co=d(uo);const so=({size:e,required:t,labelClassName:r,label:n})=>{const o="small"===e?"tfr-small tfr-hide-asterisk":"tfr-normal tfr-hide-asterisk",a="small"===e?"tfr-small tfr-show-asterisk":"tfr-normal tfr-show-asterisk";return _.jsx(f,{className:co("tfr-form-label-label",t?a:o,r),children:n})},lo=({colon:e=!0,colonClassName:t})=>e&&_.jsx(f,{className:co("tfr-form-label-colon",t),children:":"}),fo=({label:e,required:t,size:r="normal",colon:n=!0,colonClassName:o,labelClassName:a,className:i,addonAfter:u,asteriskTookSpace:c=!0})=>_.jsxs(l,{className:co("tfr-form-label",!c&&"normal"===r&&"tfr-form-label-no-asterisk-space",i),children:[e&&_.jsx(so,{size:r,label:e,required:t,labelClassName:a}),_.jsx(lo,{colon:n,colonClassName:o}),u]}),po=n=>{var{hidden:i,name:u,required:c,trigger:s="onChange",valuePropName:f="value",getValueFromEvent:p=(...e)=>e[0],dependencies:d,label:v=null,noStyle:y,initialValue:h,rules:b,validateTrigger:g,className:m,innerClassName:j,transform:O,children:F}=n,S=w(n,["hidden","name","required","trigger","valuePropName","getValueFromEvent","dependencies","label","noStyle","initialValue","rules","validateTrigger","className","innerClassName","transform","children"]);const x=t({validate:()=>Promise.resolve()}),{value:A,errors:E,isTouched:k,dependencyValues:T,onChange:P,onErrorsChange:N}=function({ref:e,name:r,initialValue:n,dependencies:i}){const u=t(!1),{data:c,registerField:s,unregisterField:l,setFieldValue:f,setFieldError:p,getFieldError:d,isFieldsTouched:v}=to();be((()=>{const t=r,o=e;return s(t,o,n),u.current=!0,()=>{l(t,o),u.current=!1}}),[r]);const y=a((()=>gr(c,r)),[c,r]),h=u.current?d(r):[],b=!!u.current&&v([r]),g=o((e=>{f(r,e)}),[r,f]),m=o((e=>{p(r,e)}),[r,p]);return{value:y,errors:h,isTouched:b,onChange:g,onErrorsChange:m,dependencyValues:a((()=>(i||[]).map((e=>gr(c,e)))),[c,i])}}({ref:x,name:u,initialValue:h,dependencies:d}),{colon:$,labelProps:R,layout:V,validateFirst:C,showErrors:z,passthroughErrors:D,transformBehavior:I,updateTickLimit:M,getRequiredMessage:U}=function({colon:e,labelProps:t,layout:r,validateFirst:n,passthroughErrors:o,showErrors:a,transformBehavior:i,updateTickLimit:u,getRequiredMessage:c}={}){const{colon:s=!0,labelProps:l={},layout:f="vertical",validateFirst:p=!1,passthroughErrors:d=!1,showErrors:v=!0,transformBehavior:y="replace",updateTickLimit:h=50,getRequiredMessage:b=e=>`${e}不能为空`}=to();return{colon:no(e,s),labelProps:no(t,l),layout:no(r,f),validateFirst:no(n,p),passthroughErrors:no(o,d),showErrors:no(a,v),transformBehavior:no(i,y),updateTickLimit:no(u,h),getRequiredMessage:no(c,b)}}(S),B=a((()=>c&&!(null==b?void 0:b.some((e=>"required"in e)))?[{required:!0,message:U(String(v))},...null!=b?b:[]]:b),[U,v,c,b]),L=o((async(e={})=>{const t=await(async(e,t,r=!1)=>{const n=[],o=async t=>{var r,n,o,a,i,u,c;switch(!0){case"required"in t:if(oo(e))return t.message;break;case"pattern"in t:if(!oo(e)&&!t.pattern.test(e))return t.message;break;case"max"in t:if(!oo(e)&&e.length>(null!==(r=t.max)&&void 0!==r?r:1/0)){if("number"==typeof e&&e>(null!==(n=t.max)&&void 0!==n?n:1/0))return t.message;if((null!==(o=null==e?void 0:e.length)&&void 0!==o?o:0)>(null!==(a=t.max)&&void 0!==a?a:1/0))return t.message}break;case"min"in t:if(!oo(e)){if("number"==typeof e&&e<(null!==(i=t.min)&&void 0!==i?i:-1/0))return t.message;if((null!==(u=null==e?void 0:e.length)&&void 0!==u?u:0)<(null!==(c=t.min)&&void 0!==c?c:-1/0))return t.message}break;case"validator"in t:return await t.validator(e)}};if("parallel"===r){const e=await Promise.all(t.map((e=>o(e))));for(const t of e)t&&n.push(t)}else for(const e of t){const t=await o(e);if(t&&(n.push(t),r))return n}return n.length?n:void 0})("value"in e?e.value:A,null!=B?B:[],C);return N(null!=t?t:[]),t}),[A,B,C,N]);r((()=>{const e={validate:L};O&&(e.transform=async()=>{const e=await O(A);return{__form_internals_should_merge:"merge"===I,value:e}}),x.current=e}),[L,O,I,A]),r((()=>{k&&L()}),T);const q=a((()=>null!=g?g:[s]),[g,s]),W=o(((...e)=>{var t,r;const n=p(...e);P(n),q.includes(s)&&L({value:n}),null===(r=null===(t=null==F?void 0:F.props)||void 0===t?void 0:t[s])||void 0===r||r.call(t,...e)}),[null==F?void 0:F.props,p,L,P,s,q]),{run:K}=ge(W,{wait:M,trailing:!0});if(i)return null;const Y=E.length>0,J=e.cloneElement(F,Object.assign(Object.assign(Object.assign({[s]:K,[f]:A},q.filter((e=>e!==s)).reduce(((e,t)=>{return Object.assign(Object.assign({},e),{[t]:(r=F.props[t],(...e)=>{L(),null==r||r(...e)})});var r}),{})),{className:we(F.props.className)}),D&&{hasError:Y,errors:E}));return y?J:_.jsxs(l,{className:we("tfr-form-item-container","horizontal"===V&&"tfr-form-item-container-horizontal",m),children:[_.jsxs(l,{className:we("tfr-form-item-inner","horizontal"===V&&"tfr-form-item-inner-horizontal","vertical"===V&&"tfr-form-item-inner-vertical",j),children:[!Wn(v)&&_.jsx(fo,Object.assign({label:v,required:c,colon:$},R)),J]}),Y&&z&&E.map(((e,t)=>_.jsx(l,{className:"tfr-form-item-error-text",children:e},t)))]})},vo=i(void 0),yo=c((({omitNil:e=!0,onFinish:t,onFinishFailed:r,children:n},a)=>{const i=to(),u=o((async()=>{const n=await i.validateFields();if(n)return void(null==r||r(n));const o=e?function(e,t=!1){return Object.entries(e).reduce(((e,[r,n])=>(void 0===n||t&&null===n||(e[r]=n),e)),{})}(await i.getFieldsFormattedValue(),!0):await i.getFieldsFormattedValue();try{null==t||t(o)}catch(e){console.log("[taro-form-react] onFinish method errored: ",e)}return o}),[i,e,t,r]);return s(a,(()=>({submit:u,setData:i.setData,reset:i.resetFields,setFieldValue:i.setFieldValue,getFieldValue:i.getFieldValue,getFieldsValue:i.getFieldsValue,getFieldsFormattedValue:i.getFieldsFormattedValue,setFields:i.setFields,getFields:i.getFields,resetFields:i.resetFields,setFieldError:i.setFieldError,getFieldError:i.getFieldError,validateFields:i.validateFields,isFieldsTouched:i.isFieldsTouched,capture:i.capture,restore:i.restore})),[i.capture,i.getFieldError,i.getFieldValue,i.getFields,i.getFieldsFormattedValue,i.getFieldsValue,i.isFieldsTouched,i.resetFields,i.restore,i.setData,i.setFieldError,i.setFieldValue,i.setFields,i.validateFields,u]),_.jsx(vo.Provider,{value:{submit:u,reset:i.resetFields},children:n})})),ho=c(((e,t)=>_.jsx(ro,Object.assign({},e,{children:_.jsx(yo,Object.assign({ref:t},e))}))));ho.Item=po,ho.Provider=({children:e})=>{const t=Gn(to(),["registerField","unregisterField","setFieldValue","setFields","resetFields","setFieldError","setData"]),r=(()=>{const e=u(vo);if(!e)throw new Error("useInnerFormContext must be used within a InnerFormContextProvider");return e})();return _.jsx(_.Fragment,{children:e(Object.assign(Object.assign({},t),r))})},ho.Label=fo,ho.Keep=({fields:e})=>{const t=a((()=>{const t=new Map;for(const r of e)t.set(Zn(r),r);return Array.from(t.values())}),[e]);return t.length>0?t.map((e=>_.jsx(po,{name:e,hidden:!0},Zn(e)))):null},ho.Sync=e=>{const{data:n,setFields:o}=to(),i=a((()=>{const t=new Map;if("fields"in e)for(const r of e.fields)t.set(Zn(r),r);else{t.set(Zn(e.source),e.source);for(const r of e.target)t.set(Zn(r),r)}return Array.from(t.values())}),[e]),u=t(new Map);return r((()=>{const t=[];if("fields"in e)for(const e of i){const r=Zn(e),o=gr(n,e);let a=!1;if(!qn(u.current.get(r),o)){a=!0;for(const e of i){const n=Zn(e);n!==r&&(t.push({name:e,value:o}),u.current.set(n,o))}}if(u.current.set(r,o),a)break}else{const r=Zn(e.source),o=gr(n,e.source);if(!qn(u.current.get(r),o))for(const r of e.target)t.push({name:r,value:o});u.current.set(r,o)}oo(t)||o(t)}),[e,n,i,o]),null};export{ho as default,to as useFormContext};
|
|
21
21
|
//# sourceMappingURL=index.esm.js.map
|