@timeax/form-palette 0.0.4 → 0.0.6
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/dist/{schema/adapter.d.ts → adapters.d.mts} +116 -13
- package/dist/adapters.d.ts +292 -0
- package/dist/adapters.js +13283 -0
- package/dist/adapters.js.map +1 -0
- package/dist/adapters.mjs +13269 -0
- package/dist/adapters.mjs.map +1 -0
- package/dist/index.d.mts +3828 -0
- package/dist/index.d.ts +3828 -15
- package/dist/index.js +43013 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42965 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +22 -7
- package/dist/adapters/axios.d.ts +0 -21
- package/dist/adapters/axios.d.ts.map +0 -1
- package/dist/adapters/axios.js +0 -74
- package/dist/adapters/axios.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -35
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -74
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/inertia.d.ts +0 -24
- package/dist/adapters/inertia.d.ts.map +0 -1
- package/dist/adapters/inertia.js +0 -126
- package/dist/adapters/inertia.js.map +0 -1
- package/dist/core/adapter-registry.d.ts +0 -30
- package/dist/core/adapter-registry.d.ts.map +0 -1
- package/dist/core/adapter-registry.js +0 -69
- package/dist/core/adapter-registry.js.map +0 -1
- package/dist/core/bound/bind-host.d.ts +0 -13
- package/dist/core/bound/bind-host.d.ts.map +0 -1
- package/dist/core/bound/bind-host.js +0 -2
- package/dist/core/bound/bind-host.js.map +0 -1
- package/dist/core/bound/observe-bound-field.d.ts +0 -21
- package/dist/core/bound/observe-bound-field.d.ts.map +0 -1
- package/dist/core/bound/observe-bound-field.js +0 -116
- package/dist/core/bound/observe-bound-field.js.map +0 -1
- package/dist/core/bound/wait-for-bound-field.d.ts +0 -5
- package/dist/core/bound/wait-for-bound-field.d.ts.map +0 -1
- package/dist/core/bound/wait-for-bound-field.js +0 -35
- package/dist/core/bound/wait-for-bound-field.js.map +0 -1
- package/dist/core/context.d.ts +0 -19
- package/dist/core/context.d.ts.map +0 -1
- package/dist/core/context.js +0 -11
- package/dist/core/context.js.map +0 -1
- package/dist/core/core-provider.d.ts +0 -22
- package/dist/core/core-provider.d.ts.map +0 -1
- package/dist/core/core-provider.js +0 -663
- package/dist/core/core-provider.js.map +0 -1
- package/dist/core/core-root.d.ts +0 -26
- package/dist/core/core-root.d.ts.map +0 -1
- package/dist/core/core-root.js +0 -38
- package/dist/core/core-root.js.map +0 -1
- package/dist/core/core-shell.d.ts +0 -22
- package/dist/core/core-shell.d.ts.map +0 -1
- package/dist/core/core-shell.js +0 -8
- package/dist/core/core-shell.js.map +0 -1
- package/dist/core/errors/error-strip.d.ts +0 -34
- package/dist/core/errors/error-strip.d.ts.map +0 -1
- package/dist/core/errors/error-strip.js +0 -18
- package/dist/core/errors/error-strip.js.map +0 -1
- package/dist/core/errors/index.d.ts +0 -4
- package/dist/core/errors/index.d.ts.map +0 -1
- package/dist/core/errors/index.js +0 -4
- package/dist/core/errors/index.js.map +0 -1
- package/dist/core/errors/map-error-bag.d.ts +0 -24
- package/dist/core/errors/map-error-bag.d.ts.map +0 -1
- package/dist/core/errors/map-error-bag.js +0 -39
- package/dist/core/errors/map-error-bag.js.map +0 -1
- package/dist/core/errors/map-zod.d.ts +0 -18
- package/dist/core/errors/map-zod.d.ts.map +0 -1
- package/dist/core/errors/map-zod.js +0 -27
- package/dist/core/errors/map-zod.js.map +0 -1
- package/dist/core/hooks/use-button.d.ts +0 -73
- package/dist/core/hooks/use-button.d.ts.map +0 -1
- package/dist/core/hooks/use-button.js +0 -116
- package/dist/core/hooks/use-button.js.map +0 -1
- package/dist/core/hooks/use-core-context.d.ts +0 -9
- package/dist/core/hooks/use-core-context.d.ts.map +0 -1
- package/dist/core/hooks/use-core-context.js +0 -17
- package/dist/core/hooks/use-core-context.js.map +0 -1
- package/dist/core/hooks/use-core-utility.d.ts +0 -1
- package/dist/core/hooks/use-core-utility.d.ts.map +0 -1
- package/dist/core/hooks/use-core-utility.js +0 -2
- package/dist/core/hooks/use-core-utility.js.map +0 -1
- package/dist/core/hooks/use-core.d.ts +0 -9
- package/dist/core/hooks/use-core.d.ts.map +0 -1
- package/dist/core/hooks/use-core.js +0 -11
- package/dist/core/hooks/use-core.js.map +0 -1
- package/dist/core/hooks/use-field.d.ts +0 -141
- package/dist/core/hooks/use-field.d.ts.map +0 -1
- package/dist/core/hooks/use-field.js +0 -256
- package/dist/core/hooks/use-field.js.map +0 -1
- package/dist/core/hooks/use-optional-field.d.ts +0 -9
- package/dist/core/hooks/use-optional-field.d.ts.map +0 -1
- package/dist/core/hooks/use-optional-field.js +0 -146
- package/dist/core/hooks/use-optional-field.js.map +0 -1
- package/dist/core/index.d.ts +0 -11
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -11
- package/dist/core/index.js.map +0 -1
- package/dist/core/registry/binder-registry.d.ts +0 -38
- package/dist/core/registry/binder-registry.d.ts.map +0 -1
- package/dist/core/registry/binder-registry.js +0 -52
- package/dist/core/registry/binder-registry.js.map +0 -1
- package/dist/core/registry/field-registry.d.ts +0 -86
- package/dist/core/registry/field-registry.d.ts.map +0 -1
- package/dist/core/registry/field-registry.js +0 -173
- package/dist/core/registry/field-registry.js.map +0 -1
- package/dist/core/test.d.ts +0 -2
- package/dist/core/test.d.ts.map +0 -1
- package/dist/core/test.js +0 -9
- package/dist/core/test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/input/index.d.ts +0 -3
- package/dist/input/index.d.ts.map +0 -1
- package/dist/input/index.js +0 -3
- package/dist/input/index.js.map +0 -1
- package/dist/input/input-field.d.ts +0 -15
- package/dist/input/input-field.d.ts.map +0 -1
- package/dist/input/input-field.js +0 -413
- package/dist/input/input-field.js.map +0 -1
- package/dist/input/input-layout-graph.d.ts +0 -77
- package/dist/input/input-layout-graph.d.ts.map +0 -1
- package/dist/input/input-layout-graph.js +0 -108
- package/dist/input/input-layout-graph.js.map +0 -1
- package/dist/input/input-props.d.ts +0 -128
- package/dist/input/input-props.d.ts.map +0 -1
- package/dist/input/input-props.js +0 -4
- package/dist/input/input-props.js.map +0 -1
- package/dist/lib/get-global-countries.d.ts +0 -3
- package/dist/lib/get-global-countries.d.ts.map +0 -1
- package/dist/lib/get-global-countries.js +0 -70
- package/dist/lib/get-global-countries.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -6
- package/dist/lib/utils.js.map +0 -1
- package/dist/presets/index.d.ts +0 -1
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/index.js +0 -2
- package/dist/presets/index.js.map +0 -1
- package/dist/presets/shadcn-preset.d.ts +0 -1
- package/dist/presets/shadcn-preset.d.ts.map +0 -1
- package/dist/presets/shadcn-preset.js +0 -2
- package/dist/presets/shadcn-preset.js.map +0 -1
- package/dist/presets/shadcn-variants/checkbox.d.ts +0 -212
- package/dist/presets/shadcn-variants/checkbox.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/checkbox.js +0 -315
- package/dist/presets/shadcn-variants/checkbox.js.map +0 -1
- package/dist/presets/shadcn-variants/chips.d.ts +0 -154
- package/dist/presets/shadcn-variants/chips.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/chips.js +0 -266
- package/dist/presets/shadcn-variants/chips.js.map +0 -1
- package/dist/presets/shadcn-variants/color.d.ts +0 -63
- package/dist/presets/shadcn-variants/color.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/color.js +0 -96
- package/dist/presets/shadcn-variants/color.js.map +0 -1
- package/dist/presets/shadcn-variants/custom.d.ts +0 -94
- package/dist/presets/shadcn-variants/custom.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/custom.js +0 -80
- package/dist/presets/shadcn-variants/custom.js.map +0 -1
- package/dist/presets/shadcn-variants/date.d.ts +0 -114
- package/dist/presets/shadcn-variants/date.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/date.js +0 -414
- package/dist/presets/shadcn-variants/date.js.map +0 -1
- package/dist/presets/shadcn-variants/file.d.ts +0 -79
- package/dist/presets/shadcn-variants/file.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/file.js +0 -289
- package/dist/presets/shadcn-variants/file.js.map +0 -1
- package/dist/presets/shadcn-variants/keyvalue.d.ts +0 -35
- package/dist/presets/shadcn-variants/keyvalue.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/keyvalue.js +0 -215
- package/dist/presets/shadcn-variants/keyvalue.js.map +0 -1
- package/dist/presets/shadcn-variants/multiselect.d.ts +0 -210
- package/dist/presets/shadcn-variants/multiselect.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/multiselect.js +0 -352
- package/dist/presets/shadcn-variants/multiselect.js.map +0 -1
- package/dist/presets/shadcn-variants/number.d.ts +0 -31
- package/dist/presets/shadcn-variants/number.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/number.js +0 -64
- package/dist/presets/shadcn-variants/number.js.map +0 -1
- package/dist/presets/shadcn-variants/password.d.ts +0 -195
- package/dist/presets/shadcn-variants/password.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/password.js +0 -296
- package/dist/presets/shadcn-variants/password.js.map +0 -1
- package/dist/presets/shadcn-variants/phone.d.ts +0 -69
- package/dist/presets/shadcn-variants/phone.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/phone.js +0 -308
- package/dist/presets/shadcn-variants/phone.js.map +0 -1
- package/dist/presets/shadcn-variants/radio.d.ts +0 -172
- package/dist/presets/shadcn-variants/radio.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/radio.js +0 -192
- package/dist/presets/shadcn-variants/radio.js.map +0 -1
- package/dist/presets/shadcn-variants/select.d.ts +0 -203
- package/dist/presets/shadcn-variants/select.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/select.js +0 -285
- package/dist/presets/shadcn-variants/select.js.map +0 -1
- package/dist/presets/shadcn-variants/slider.d.ts +0 -131
- package/dist/presets/shadcn-variants/slider.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/slider.js +0 -151
- package/dist/presets/shadcn-variants/slider.js.map +0 -1
- package/dist/presets/shadcn-variants/text.d.ts +0 -155
- package/dist/presets/shadcn-variants/text.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/text.js +0 -98
- package/dist/presets/shadcn-variants/text.js.map +0 -1
- package/dist/presets/shadcn-variants/textarea.d.ts +0 -18
- package/dist/presets/shadcn-variants/textarea.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/textarea.js +0 -24
- package/dist/presets/shadcn-variants/textarea.js.map +0 -1
- package/dist/presets/shadcn-variants/toggle.d.ts +0 -61
- package/dist/presets/shadcn-variants/toggle.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/toggle.js +0 -67
- package/dist/presets/shadcn-variants/toggle.js.map +0 -1
- package/dist/presets/shadcn-variants/treeselect.d.ts +0 -81
- package/dist/presets/shadcn-variants/treeselect.d.ts.map +0 -1
- package/dist/presets/shadcn-variants/treeselect.js +0 -317
- package/dist/presets/shadcn-variants/treeselect.js.map +0 -1
- package/dist/presets/ui/badge.d.ts +0 -10
- package/dist/presets/ui/badge.d.ts.map +0 -1
- package/dist/presets/ui/badge.js +0 -23
- package/dist/presets/ui/badge.js.map +0 -1
- package/dist/presets/ui/button.d.ts +0 -11
- package/dist/presets/ui/button.d.ts.map +0 -1
- package/dist/presets/ui/button.js +0 -34
- package/dist/presets/ui/button.js.map +0 -1
- package/dist/presets/ui/calendar.d.ts +0 -9
- package/dist/presets/ui/calendar.d.ts.map +0 -1
- package/dist/presets/ui/calendar.js +0 -76
- package/dist/presets/ui/calendar.js.map +0 -1
- package/dist/presets/ui/checkbox.d.ts +0 -18
- package/dist/presets/ui/checkbox.d.ts.map +0 -1
- package/dist/presets/ui/checkbox.js +0 -61
- package/dist/presets/ui/checkbox.js.map +0 -1
- package/dist/presets/ui/custom.d.ts +0 -1
- package/dist/presets/ui/custom.d.ts.map +0 -1
- package/dist/presets/ui/custom.js +0 -2
- package/dist/presets/ui/custom.js.map +0 -1
- package/dist/presets/ui/dialog.d.ts +0 -16
- package/dist/presets/ui/dialog.d.ts.map +0 -1
- package/dist/presets/ui/dialog.js +0 -36
- package/dist/presets/ui/dialog.js.map +0 -1
- package/dist/presets/ui/field.d.ts +0 -25
- package/dist/presets/ui/field.d.ts.map +0 -1
- package/dist/presets/ui/field.js +0 -76
- package/dist/presets/ui/field.js.map +0 -1
- package/dist/presets/ui/input-mask.d.ts +0 -34
- package/dist/presets/ui/input-mask.d.ts.map +0 -1
- package/dist/presets/ui/input-mask.js +0 -561
- package/dist/presets/ui/input-mask.js.map +0 -1
- package/dist/presets/ui/input-otp.d.ts +0 -12
- package/dist/presets/ui/input-otp.d.ts.map +0 -1
- package/dist/presets/ui/input-otp.js +0 -22
- package/dist/presets/ui/input-otp.js.map +0 -1
- package/dist/presets/ui/input.d.ts +0 -83
- package/dist/presets/ui/input.d.ts.map +0 -1
- package/dist/presets/ui/input.js +0 -436
- package/dist/presets/ui/input.js.map +0 -1
- package/dist/presets/ui/label.d.ts +0 -5
- package/dist/presets/ui/label.d.ts.map +0 -1
- package/dist/presets/ui/label.js +0 -8
- package/dist/presets/ui/label.js.map +0 -1
- package/dist/presets/ui/number.d.ts +0 -60
- package/dist/presets/ui/number.d.ts.map +0 -1
- package/dist/presets/ui/number.js +0 -1078
- package/dist/presets/ui/number.js.map +0 -1
- package/dist/presets/ui/popover.d.ts +0 -8
- package/dist/presets/ui/popover.d.ts.map +0 -1
- package/dist/presets/ui/popover.js +0 -17
- package/dist/presets/ui/popover.js.map +0 -1
- package/dist/presets/ui/radio-group.d.ts +0 -6
- package/dist/presets/ui/radio-group.d.ts.map +0 -1
- package/dist/presets/ui/radio-group.js +0 -12
- package/dist/presets/ui/radio-group.js.map +0 -1
- package/dist/presets/ui/scroll-area.d.ts +0 -6
- package/dist/presets/ui/scroll-area.d.ts.map +0 -1
- package/dist/presets/ui/scroll-area.js +0 -13
- package/dist/presets/ui/scroll-area.js.map +0 -1
- package/dist/presets/ui/select.d.ts +0 -21
- package/dist/presets/ui/select.d.ts.map +0 -1
- package/dist/presets/ui/select.js +0 -38
- package/dist/presets/ui/select.js.map +0 -1
- package/dist/presets/ui/separator.d.ts +0 -5
- package/dist/presets/ui/separator.d.ts.map +0 -1
- package/dist/presets/ui/separator.js +0 -9
- package/dist/presets/ui/separator.js.map +0 -1
- package/dist/presets/ui/slider.d.ts +0 -5
- package/dist/presets/ui/slider.d.ts.map +0 -1
- package/dist/presets/ui/slider.js +0 -14
- package/dist/presets/ui/slider.js.map +0 -1
- package/dist/presets/ui/switch.d.ts +0 -7
- package/dist/presets/ui/switch.d.ts.map +0 -1
- package/dist/presets/ui/switch.js +0 -9
- package/dist/presets/ui/switch.js.map +0 -1
- package/dist/presets/ui/textarea.d.ts +0 -76
- package/dist/presets/ui/textarea.d.ts.map +0 -1
- package/dist/presets/ui/textarea.js +0 -291
- package/dist/presets/ui/textarea.js.map +0 -1
- package/dist/presets/ui/time-dropdowns.d.ts +0 -58
- package/dist/presets/ui/time-dropdowns.d.ts.map +0 -1
- package/dist/presets/ui/time-dropdowns.js +0 -133
- package/dist/presets/ui/time-dropdowns.js.map +0 -1
- package/dist/schema/adapter.d.ts.map +0 -1
- package/dist/schema/adapter.js +0 -3
- package/dist/schema/adapter.js.map +0 -1
- package/dist/schema/core.d.ts +0 -329
- package/dist/schema/core.d.ts.map +0 -1
- package/dist/schema/core.js +0 -4
- package/dist/schema/core.js.map +0 -1
- package/dist/schema/field-map.d.ts +0 -1
- package/dist/schema/field-map.d.ts.map +0 -1
- package/dist/schema/field-map.js +0 -2
- package/dist/schema/field-map.js.map +0 -1
- package/dist/schema/field.d.ts +0 -191
- package/dist/schema/field.d.ts.map +0 -1
- package/dist/schema/field.js +0 -4
- package/dist/schema/field.js.map +0 -1
- package/dist/schema/index.d.ts +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -2
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/input-field.d.ts +0 -223
- package/dist/schema/input-field.d.ts.map +0 -1
- package/dist/schema/input-field.js +0 -3
- package/dist/schema/input-field.js.map +0 -1
- package/dist/schema/presets.d.ts +0 -1
- package/dist/schema/presets.d.ts.map +0 -1
- package/dist/schema/presets.js +0 -2
- package/dist/schema/presets.js.map +0 -1
- package/dist/schema/variant.d.ts +0 -176
- package/dist/schema/variant.d.ts.map +0 -1
- package/dist/schema/variant.js +0 -3
- package/dist/schema/variant.js.map +0 -1
- package/dist/variants/core/checkbox.d.ts +0 -15
- package/dist/variants/core/checkbox.d.ts.map +0 -1
- package/dist/variants/core/checkbox.js +0 -27
- package/dist/variants/core/checkbox.js.map +0 -1
- package/dist/variants/core/chips.d.ts +0 -3
- package/dist/variants/core/chips.d.ts.map +0 -1
- package/dist/variants/core/chips.js +0 -20
- package/dist/variants/core/chips.js.map +0 -1
- package/dist/variants/core/color.d.ts +0 -3
- package/dist/variants/core/color.d.ts.map +0 -1
- package/dist/variants/core/color.js +0 -14
- package/dist/variants/core/color.js.map +0 -1
- package/dist/variants/core/custom.d.ts +0 -11
- package/dist/variants/core/custom.d.ts.map +0 -1
- package/dist/variants/core/custom.js +0 -15
- package/dist/variants/core/custom.js.map +0 -1
- package/dist/variants/core/date.d.ts +0 -3
- package/dist/variants/core/date.d.ts.map +0 -1
- package/dist/variants/core/date.js +0 -20
- package/dist/variants/core/date.js.map +0 -1
- package/dist/variants/core/file.d.ts +0 -3
- package/dist/variants/core/file.d.ts.map +0 -1
- package/dist/variants/core/file.js +0 -6
- package/dist/variants/core/file.js.map +0 -1
- package/dist/variants/core/keyvalue.d.ts +0 -3
- package/dist/variants/core/keyvalue.d.ts.map +0 -1
- package/dist/variants/core/keyvalue.js +0 -9
- package/dist/variants/core/keyvalue.js.map +0 -1
- package/dist/variants/core/multiselect.d.ts +0 -11
- package/dist/variants/core/multiselect.d.ts.map +0 -1
- package/dist/variants/core/multiselect.js +0 -15
- package/dist/variants/core/multiselect.js.map +0 -1
- package/dist/variants/core/number.d.ts +0 -38
- package/dist/variants/core/number.d.ts.map +0 -1
- package/dist/variants/core/number.js +0 -62
- package/dist/variants/core/number.js.map +0 -1
- package/dist/variants/core/password.d.ts +0 -11
- package/dist/variants/core/password.d.ts.map +0 -1
- package/dist/variants/core/password.js +0 -29
- package/dist/variants/core/password.js.map +0 -1
- package/dist/variants/core/phone.d.ts +0 -3
- package/dist/variants/core/phone.d.ts.map +0 -1
- package/dist/variants/core/phone.js +0 -14
- package/dist/variants/core/phone.js.map +0 -1
- package/dist/variants/core/radio.d.ts +0 -8
- package/dist/variants/core/radio.d.ts.map +0 -1
- package/dist/variants/core/radio.js +0 -34
- package/dist/variants/core/radio.js.map +0 -1
- package/dist/variants/core/select.d.ts +0 -5
- package/dist/variants/core/select.d.ts.map +0 -1
- package/dist/variants/core/select.js +0 -11
- package/dist/variants/core/select.js.map +0 -1
- package/dist/variants/core/slider.d.ts +0 -19
- package/dist/variants/core/slider.d.ts.map +0 -1
- package/dist/variants/core/slider.js +0 -36
- package/dist/variants/core/slider.js.map +0 -1
- package/dist/variants/core/text.d.ts +0 -38
- package/dist/variants/core/text.d.ts.map +0 -1
- package/dist/variants/core/text.js +0 -62
- package/dist/variants/core/text.js.map +0 -1
- package/dist/variants/core/textarea.d.ts +0 -3
- package/dist/variants/core/textarea.d.ts.map +0 -1
- package/dist/variants/core/textarea.js +0 -20
- package/dist/variants/core/textarea.js.map +0 -1
- package/dist/variants/core/toggle.d.ts +0 -6
- package/dist/variants/core/toggle.d.ts.map +0 -1
- package/dist/variants/core/toggle.js +0 -41
- package/dist/variants/core/toggle.js.map +0 -1
- package/dist/variants/core/treeselect.d.ts +0 -4
- package/dist/variants/core/treeselect.d.ts.map +0 -1
- package/dist/variants/core/treeselect.js +0 -7
- package/dist/variants/core/treeselect.js.map +0 -1
- package/dist/variants/helpers/selection-summary.d.ts +0 -24
- package/dist/variants/helpers/selection-summary.d.ts.map +0 -1
- package/dist/variants/helpers/selection-summary.js +0 -105
- package/dist/variants/helpers/selection-summary.js.map +0 -1
- package/dist/variants/index.d.ts +0 -16
- package/dist/variants/index.d.ts.map +0 -1
- package/dist/variants/index.js +0 -55
- package/dist/variants/index.js.map +0 -1
- package/dist/variants/registry.d.ts +0 -19
- package/dist/variants/registry.d.ts.map +0 -1
- package/dist/variants/registry.js +0 -29
- package/dist/variants/registry.js.map +0 -1
- package/dist/variants/select-shared.d.ts +0 -1
- package/dist/variants/select-shared.d.ts.map +0 -1
- package/dist/variants/select-shared.js +0 -2
- package/dist/variants/select-shared.js.map +0 -1
- package/dist/variants/shared.d.ts +0 -107
- package/dist/variants/shared.d.ts.map +0 -1
- package/dist/variants/shared.js +0 -3
- package/dist/variants/shared.js.map +0 -1
|
@@ -1,663 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
// src/core/core-provider.tsx
|
|
3
|
-
// noinspection JSConstantReassignment,JSUnusedGlobalSymbols,GrazieInspection
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
import { CoreContextReact } from "@/core/context";
|
|
6
|
-
import { mapZodError } from "@/core/errors/map-zod";
|
|
7
|
-
import { mapErrorBag } from "@/core/errors/map-error-bag";
|
|
8
|
-
import { getAdapter, localAdapter } from "@/core/adapter-registry";
|
|
9
|
-
import { FieldRegistry } from "@/core/registry/field-registry";
|
|
10
|
-
// ─────────────────────────────────────────────────────────────
|
|
11
|
-
// Internal helpers (generic utils)
|
|
12
|
-
// ─────────────────────────────────────────────────────────────
|
|
13
|
-
function isPlainObject(value) {
|
|
14
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
15
|
-
}
|
|
16
|
-
function deepEqual(a, b) {
|
|
17
|
-
if (a === b)
|
|
18
|
-
return true;
|
|
19
|
-
// NaN === NaN
|
|
20
|
-
if (typeof a === "number" && typeof b === "number") {
|
|
21
|
-
if (Number.isNaN(a) && Number.isNaN(b))
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
25
|
-
if (a.length !== b.length)
|
|
26
|
-
return false;
|
|
27
|
-
for (let i = 0; i < a.length; i++) {
|
|
28
|
-
if (!deepEqual(a[i], b[i]))
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
if (isPlainObject(a) && isPlainObject(b)) {
|
|
34
|
-
const aKeys = Object.keys(a);
|
|
35
|
-
const bKeys = Object.keys(b);
|
|
36
|
-
if (aKeys.length !== bKeys.length)
|
|
37
|
-
return false;
|
|
38
|
-
for (const key of aKeys) {
|
|
39
|
-
if (!Object.prototype.hasOwnProperty.call(b, key))
|
|
40
|
-
return false;
|
|
41
|
-
if (!deepEqual(a[key], b[key]))
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
// ─────────────────────────────────────────────────────────────
|
|
49
|
-
// CoreProvider
|
|
50
|
-
// ─────────────────────────────────────────────────────────────
|
|
51
|
-
/**
|
|
52
|
-
* CoreProvider: owns the form/core runtime state and implements CoreContext.
|
|
53
|
-
*
|
|
54
|
-
* - Tracks all inputs in a single store (inputsRef)
|
|
55
|
-
* - Supports:
|
|
56
|
-
* - named inputs via `name`
|
|
57
|
-
* - bound inputs via `bindId`
|
|
58
|
-
* - grouped inputs via `groupId`
|
|
59
|
-
* - Manages errors + uncaught messages
|
|
60
|
-
* - Builds values snapshots (including bucket values)
|
|
61
|
-
* - Orchestrates submission via the adapter registry
|
|
62
|
-
*/
|
|
63
|
-
export function CoreProvider(props) {
|
|
64
|
-
// Single input store: FieldRegistry
|
|
65
|
-
const registryRef = React.useRef(new FieldRegistry());
|
|
66
|
-
// bucket, errors, button
|
|
67
|
-
const bucketRef = React.useRef({});
|
|
68
|
-
const uncaughtRef = React.useRef([]);
|
|
69
|
-
const buttonRef = React.useRef(null);
|
|
70
|
-
const activeButtonNameRef = React.useRef(null);
|
|
71
|
-
/**
|
|
72
|
-
* Original snapshot used for "dirty" checks.
|
|
73
|
-
* Lazily captured on first dirty-check.
|
|
74
|
-
*/
|
|
75
|
-
const originalRef = React.useRef(null);
|
|
76
|
-
// latest props
|
|
77
|
-
const propsRef = React.useRef(props);
|
|
78
|
-
React.useEffect(() => {
|
|
79
|
-
propsRef.current = props;
|
|
80
|
-
}, [props]);
|
|
81
|
-
const adapterKey = (props.adapter ?? "local");
|
|
82
|
-
const schema = props.schema;
|
|
83
|
-
let context;
|
|
84
|
-
// ─────────────────────────────────────────────────────────
|
|
85
|
-
// Common helpers
|
|
86
|
-
// ─────────────────────────────────────────────────────────
|
|
87
|
-
function fetchAllNamedFields() {
|
|
88
|
-
return registryRef.current.getAllNamed();
|
|
89
|
-
}
|
|
90
|
-
function clearFieldErrors() {
|
|
91
|
-
for (const field of fetchAllNamedFields()) {
|
|
92
|
-
const anyField = field;
|
|
93
|
-
if (typeof anyField.setError === "function") {
|
|
94
|
-
anyField.setError(undefined);
|
|
95
|
-
}
|
|
96
|
-
else if ("error" in anyField) {
|
|
97
|
-
anyField.error = undefined;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function findFieldForErrorKey(key) {
|
|
102
|
-
if (!key)
|
|
103
|
-
return undefined;
|
|
104
|
-
return fetchAllNamedFields().find((f) => {
|
|
105
|
-
const raw = f.name;
|
|
106
|
-
if (!raw)
|
|
107
|
-
return false;
|
|
108
|
-
const trimmed = raw.trim();
|
|
109
|
-
if (!trimmed)
|
|
110
|
-
return false;
|
|
111
|
-
const base = trimmed.replace(/\[]$/, "");
|
|
112
|
-
if (key === base || key === trimmed)
|
|
113
|
-
return true;
|
|
114
|
-
const sharedKey = f.shared;
|
|
115
|
-
if (!sharedKey)
|
|
116
|
-
return false;
|
|
117
|
-
const sharedBase = `${sharedKey}.${base}`;
|
|
118
|
-
const sharedRaw = `${sharedKey}.${trimmed}`;
|
|
119
|
-
return key === sharedBase || key === sharedRaw;
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
function setFieldError(name, message) {
|
|
123
|
-
const field = findFieldForErrorKey(name);
|
|
124
|
-
if (field) {
|
|
125
|
-
const anyField = field;
|
|
126
|
-
if (typeof anyField.setError === "function") {
|
|
127
|
-
anyField.setError(message);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
anyField.error = message;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
uncaughtRef.current.push(message);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Collect values from inputs into a Values object.
|
|
139
|
-
*
|
|
140
|
-
* Semantics:
|
|
141
|
-
* - `name="tags[]"` ⇒ `values.tags: unknown[]`
|
|
142
|
-
* - `shared="profile", name="first_name"` ⇒ `values.profile.first_name`
|
|
143
|
-
* - bucketRef.current is merged in and overridden by live field values.
|
|
144
|
-
* - `exceptions` can hide keys (e.g. ["password", "profile.ssn"])
|
|
145
|
-
*/
|
|
146
|
-
function collectValues() {
|
|
147
|
-
const exceptions = propsRef.current.exceptions ?? [];
|
|
148
|
-
const list = {};
|
|
149
|
-
const shared = {};
|
|
150
|
-
for (const item of fetchAllNamedFields()) {
|
|
151
|
-
const rawName = item.name;
|
|
152
|
-
if (!rawName)
|
|
153
|
-
continue;
|
|
154
|
-
const trimmed = rawName.trim();
|
|
155
|
-
if (!trimmed)
|
|
156
|
-
continue;
|
|
157
|
-
const isArray = trimmed.endsWith("[]");
|
|
158
|
-
const base = trimmed.replace(/\[]$/, "");
|
|
159
|
-
const sharedKey = item.shared;
|
|
160
|
-
const target = sharedKey
|
|
161
|
-
? (shared[sharedKey] ?? (shared[sharedKey] = {}))
|
|
162
|
-
: list;
|
|
163
|
-
const fullPath = sharedKey ? `${sharedKey}.${base}` : base;
|
|
164
|
-
if (exceptions.includes(trimmed) ||
|
|
165
|
-
exceptions.includes(base) ||
|
|
166
|
-
exceptions.includes(fullPath)) {
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
const anyField = item;
|
|
170
|
-
const val = typeof anyField.getValue === "function"
|
|
171
|
-
? anyField.getValue()
|
|
172
|
-
: anyField.value;
|
|
173
|
-
if (isArray) {
|
|
174
|
-
const existing = target[base];
|
|
175
|
-
if (Array.isArray(existing)) {
|
|
176
|
-
target[base] = [...existing, val];
|
|
177
|
-
}
|
|
178
|
-
else if (typeof existing === "undefined") {
|
|
179
|
-
target[base] = [val];
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
target[base] = [existing, val];
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
target[base] = val;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
const fromFields = { ...list, ...shared };
|
|
190
|
-
const merged = {
|
|
191
|
-
...bucketRef.current,
|
|
192
|
-
...fromFields,
|
|
193
|
-
};
|
|
194
|
-
return merged;
|
|
195
|
-
}
|
|
196
|
-
function validateInternal(report = false) {
|
|
197
|
-
let valid = true;
|
|
198
|
-
if (report) {
|
|
199
|
-
uncaughtRef.current = [];
|
|
200
|
-
clearFieldErrors();
|
|
201
|
-
}
|
|
202
|
-
// field-level
|
|
203
|
-
for (const field of fetchAllNamedFields()) {
|
|
204
|
-
const anyField = field;
|
|
205
|
-
if (typeof anyField.validate === "function") {
|
|
206
|
-
const ok = anyField.validate(report);
|
|
207
|
-
if (!ok)
|
|
208
|
-
valid = false;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
// schema-level
|
|
212
|
-
if (schema) {
|
|
213
|
-
try {
|
|
214
|
-
schema.parse(collectValues());
|
|
215
|
-
}
|
|
216
|
-
catch (err) {
|
|
217
|
-
valid = false;
|
|
218
|
-
if (report && err && typeof err === "object") {
|
|
219
|
-
const anyErr = err;
|
|
220
|
-
if (anyErr.issues) {
|
|
221
|
-
const { fieldErrors, uncaught } = mapZodError(anyErr);
|
|
222
|
-
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
223
|
-
setFieldError(name, message);
|
|
224
|
-
}
|
|
225
|
-
if (uncaught.length) {
|
|
226
|
-
uncaughtRef.current.push(...uncaught);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
return valid;
|
|
233
|
-
}
|
|
234
|
-
// ─────────────────────────────────────────────────────────
|
|
235
|
-
// Submission
|
|
236
|
-
// ─────────────────────────────────────────────────────────
|
|
237
|
-
async function submitWithAdapter(method, route, extra, ignoreForm, autoErr = true, autoRun = true) {
|
|
238
|
-
const currentProps = propsRef.current;
|
|
239
|
-
// active button + loading
|
|
240
|
-
const btn = buttonRef.current;
|
|
241
|
-
const activeName = activeButtonNameRef.current;
|
|
242
|
-
const isActiveButton = !!btn && typeof btn === "object" && btn.name === activeName;
|
|
243
|
-
const setButtonLoading = (loading) => {
|
|
244
|
-
if (!isActiveButton)
|
|
245
|
-
return;
|
|
246
|
-
if (typeof btn.setLoading === "function") {
|
|
247
|
-
btn.setLoading(loading);
|
|
248
|
-
}
|
|
249
|
-
else if ("loading" in btn) {
|
|
250
|
-
btn.loading = loading;
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
setButtonLoading(true);
|
|
254
|
-
let finished = false;
|
|
255
|
-
const finish = () => {
|
|
256
|
-
if (finished)
|
|
257
|
-
return;
|
|
258
|
-
finished = true;
|
|
259
|
-
setButtonLoading(false);
|
|
260
|
-
};
|
|
261
|
-
if (!ignoreForm) {
|
|
262
|
-
const ok = validateInternal(true);
|
|
263
|
-
if (!ok) {
|
|
264
|
-
finish();
|
|
265
|
-
return undefined;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
let submissionValues = {
|
|
269
|
-
...collectValues(),
|
|
270
|
-
...(extra ?? {}),
|
|
271
|
-
};
|
|
272
|
-
const event = {
|
|
273
|
-
preventDefault() {
|
|
274
|
-
this.continue = false;
|
|
275
|
-
},
|
|
276
|
-
editData(cb) {
|
|
277
|
-
const result = cb(submissionValues);
|
|
278
|
-
if (result) {
|
|
279
|
-
submissionValues = result;
|
|
280
|
-
}
|
|
281
|
-
},
|
|
282
|
-
setRoute(newRoute) {
|
|
283
|
-
route = newRoute;
|
|
284
|
-
},
|
|
285
|
-
setMethod(newMethod) {
|
|
286
|
-
method = newMethod;
|
|
287
|
-
},
|
|
288
|
-
button: buttonRef.current ?? undefined,
|
|
289
|
-
get formData() {
|
|
290
|
-
return submissionValues;
|
|
291
|
-
},
|
|
292
|
-
form: context,
|
|
293
|
-
continue: true,
|
|
294
|
-
};
|
|
295
|
-
if (currentProps.onSubmit) {
|
|
296
|
-
try {
|
|
297
|
-
await currentProps.onSubmit(event);
|
|
298
|
-
}
|
|
299
|
-
catch (err) {
|
|
300
|
-
// host blew up: end this submit cycle
|
|
301
|
-
finish();
|
|
302
|
-
throw err;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
if (!event.continue) {
|
|
306
|
-
finish();
|
|
307
|
-
return undefined;
|
|
308
|
-
}
|
|
309
|
-
const factory = getAdapter(adapterKey) ??
|
|
310
|
-
localAdapter;
|
|
311
|
-
const adapter = factory({
|
|
312
|
-
method,
|
|
313
|
-
url: route,
|
|
314
|
-
data: submissionValues,
|
|
315
|
-
callbacks: {
|
|
316
|
-
onSuccess(ok) {
|
|
317
|
-
const maybe = propsRef.current.onSubmitted;
|
|
318
|
-
if (maybe) {
|
|
319
|
-
void maybe(context, ok, () => {
|
|
320
|
-
finish();
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
},
|
|
324
|
-
onError(err) {
|
|
325
|
-
if (!autoErr || !err || typeof err !== "object") {
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
const anyErr = err;
|
|
329
|
-
if (anyErr.errors && typeof anyErr.errors === "object") {
|
|
330
|
-
const { fieldErrors, uncaught } = mapErrorBag(anyErr.errors);
|
|
331
|
-
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
332
|
-
setFieldError(name, message);
|
|
333
|
-
}
|
|
334
|
-
if (uncaught.length) {
|
|
335
|
-
uncaughtRef.current.push(...uncaught);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
onFinish() {
|
|
340
|
-
const maybe = propsRef.current.onFinish;
|
|
341
|
-
if (maybe) {
|
|
342
|
-
maybe(context);
|
|
343
|
-
}
|
|
344
|
-
finish();
|
|
345
|
-
},
|
|
346
|
-
},
|
|
347
|
-
});
|
|
348
|
-
if (autoRun) {
|
|
349
|
-
try {
|
|
350
|
-
await adapter.send();
|
|
351
|
-
}
|
|
352
|
-
catch {
|
|
353
|
-
// errors flow via callbacks; adapter may still call onFinish
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
return adapter;
|
|
357
|
-
}
|
|
358
|
-
// No separate inputs view: expose registry directly via context.inputs
|
|
359
|
-
// ─────────────────────────────────────────────────────────
|
|
360
|
-
// CoreContext implementation
|
|
361
|
-
// ─────────────────────────────────────────────────────────
|
|
362
|
-
context = {
|
|
363
|
-
values() {
|
|
364
|
-
return collectValues();
|
|
365
|
-
},
|
|
366
|
-
submit() {
|
|
367
|
-
const valid = validateInternal(true);
|
|
368
|
-
const vals = collectValues();
|
|
369
|
-
return { values: vals, valid };
|
|
370
|
-
},
|
|
371
|
-
getBind(id) {
|
|
372
|
-
return registryRef.current.getByBind(id);
|
|
373
|
-
},
|
|
374
|
-
validate(report) {
|
|
375
|
-
return validateInternal(report);
|
|
376
|
-
},
|
|
377
|
-
addField(field) {
|
|
378
|
-
// Normalise name
|
|
379
|
-
const rawName = field.name ?? "";
|
|
380
|
-
field.name = rawName.trim();
|
|
381
|
-
// hydrate from valueBag before registering
|
|
382
|
-
const { valueBag, valueFeed } = propsRef.current;
|
|
383
|
-
const trimmed = (field.name ?? "").trim();
|
|
384
|
-
const hasName = !!trimmed;
|
|
385
|
-
const isArray = hasName && trimmed.endsWith("[]");
|
|
386
|
-
const base = hasName ? trimmed.replace(/\[]$/, "") : "";
|
|
387
|
-
const sharedKey = field.shared;
|
|
388
|
-
if (valueBag && !field.ignore && hasName) {
|
|
389
|
-
const sourceRoot = sharedKey && valueBag[sharedKey]
|
|
390
|
-
? valueBag[sharedKey]
|
|
391
|
-
: valueBag;
|
|
392
|
-
let value = undefined;
|
|
393
|
-
if (sourceRoot && typeof sourceRoot === "object") {
|
|
394
|
-
if (isArray && Array.isArray(sourceRoot[base])) {
|
|
395
|
-
const siblings = fetchAllNamedFields().filter((f) => {
|
|
396
|
-
const rn = (f.name ?? "").trim();
|
|
397
|
-
return (rn === trimmed &&
|
|
398
|
-
f.shared ===
|
|
399
|
-
sharedKey);
|
|
400
|
-
});
|
|
401
|
-
const idx = siblings.length;
|
|
402
|
-
value = sourceRoot[base][idx];
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
value = sourceRoot[base];
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
let hydrated = value;
|
|
409
|
-
if (valueFeed) {
|
|
410
|
-
const maybe = valueFeed(base, value, context);
|
|
411
|
-
if (typeof maybe !== "undefined") {
|
|
412
|
-
hydrated = maybe;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
if (typeof hydrated !== "undefined") {
|
|
416
|
-
const anyField = field;
|
|
417
|
-
if (typeof anyField.setValue === "function") {
|
|
418
|
-
anyField.setValue(hydrated);
|
|
419
|
-
}
|
|
420
|
-
else {
|
|
421
|
-
anyField.value = hydrated;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
// finally register into the single store (name/bindId/groupId)
|
|
426
|
-
registryRef.current.add(field);
|
|
427
|
-
},
|
|
428
|
-
// Expose registry view as inputs (delegates to FieldRegistry instance)
|
|
429
|
-
inputs: registryRef.current,
|
|
430
|
-
// Also expose raw list of fields for compatibility is defined later as a getter
|
|
431
|
-
bucket: bucketRef.current,
|
|
432
|
-
error(nameOrBag, maybeMsg) {
|
|
433
|
-
if (typeof nameOrBag === "string") {
|
|
434
|
-
if (!maybeMsg)
|
|
435
|
-
return;
|
|
436
|
-
setFieldError(nameOrBag, maybeMsg);
|
|
437
|
-
return;
|
|
438
|
-
}
|
|
439
|
-
const { fieldErrors, uncaught } = mapErrorBag(nameOrBag);
|
|
440
|
-
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
441
|
-
setFieldError(name, message);
|
|
442
|
-
}
|
|
443
|
-
if (uncaught.length) {
|
|
444
|
-
uncaughtRef.current.push(...uncaught);
|
|
445
|
-
}
|
|
446
|
-
},
|
|
447
|
-
controlButton() {
|
|
448
|
-
const { activateButtonOnChange } = propsRef.current;
|
|
449
|
-
if (!activateButtonOnChange)
|
|
450
|
-
return;
|
|
451
|
-
const btn = buttonRef.current;
|
|
452
|
-
const activeName = activeButtonNameRef.current;
|
|
453
|
-
// If there is no active button or it doesn't match, nothing to control.
|
|
454
|
-
if (!btn || btn.name !== activeName) {
|
|
455
|
-
return;
|
|
456
|
-
}
|
|
457
|
-
// Capture original snapshot lazily.
|
|
458
|
-
if (!originalRef.current) {
|
|
459
|
-
originalRef.current = collectValues();
|
|
460
|
-
}
|
|
461
|
-
const current = collectValues();
|
|
462
|
-
const original = originalRef.current;
|
|
463
|
-
const dirty = !deepEqual(original, current);
|
|
464
|
-
const setDisabled = (disabled) => {
|
|
465
|
-
if (typeof btn.setDisabled === "function") {
|
|
466
|
-
btn.setDisabled(disabled);
|
|
467
|
-
}
|
|
468
|
-
else if ("disabled" in btn) {
|
|
469
|
-
btn.disabled = disabled;
|
|
470
|
-
}
|
|
471
|
-
};
|
|
472
|
-
// Dirty ⇒ enable button, clean ⇒ disable button
|
|
473
|
-
setDisabled(!dirty);
|
|
474
|
-
},
|
|
475
|
-
isDirty() {
|
|
476
|
-
if (!originalRef.current) {
|
|
477
|
-
originalRef.current = collectValues();
|
|
478
|
-
}
|
|
479
|
-
const current = collectValues();
|
|
480
|
-
const original = originalRef.current;
|
|
481
|
-
return !deepEqual(original, current);
|
|
482
|
-
},
|
|
483
|
-
async prepare(type, route, extra, ignoreForm, autoErr) {
|
|
484
|
-
return submitWithAdapter(type, route, extra, ignoreForm, autoErr, false);
|
|
485
|
-
},
|
|
486
|
-
persist(data, feed) {
|
|
487
|
-
const seen = {};
|
|
488
|
-
const root = data;
|
|
489
|
-
const useFeed = feed ||
|
|
490
|
-
(propsRef.current.valueFeed
|
|
491
|
-
? (name, value, original) => {
|
|
492
|
-
const vf = propsRef.current.valueFeed;
|
|
493
|
-
const maybe = vf(name, value, context);
|
|
494
|
-
return typeof maybe === "undefined"
|
|
495
|
-
? original
|
|
496
|
-
: maybe;
|
|
497
|
-
}
|
|
498
|
-
: undefined);
|
|
499
|
-
for (const field of fetchAllNamedFields()) {
|
|
500
|
-
const rawName = field.name;
|
|
501
|
-
if (!rawName)
|
|
502
|
-
continue;
|
|
503
|
-
if (field.ignore)
|
|
504
|
-
continue;
|
|
505
|
-
const trimmed = rawName.trim();
|
|
506
|
-
if (!trimmed)
|
|
507
|
-
continue;
|
|
508
|
-
const isArray = trimmed.endsWith("[]");
|
|
509
|
-
const base = trimmed.replace(/\[]$/, "");
|
|
510
|
-
const sharedKey = field.shared;
|
|
511
|
-
const key = sharedKey ? `${sharedKey}.${base}` : base;
|
|
512
|
-
let value = undefined;
|
|
513
|
-
if (sharedKey) {
|
|
514
|
-
const group = root[sharedKey];
|
|
515
|
-
if (group && typeof group === "object") {
|
|
516
|
-
if (isArray && Array.isArray(group[base])) {
|
|
517
|
-
const idx = seen[key] ?? 0;
|
|
518
|
-
value = group[base][idx];
|
|
519
|
-
seen[key] = idx + 1;
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
value = group[base];
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
else {
|
|
527
|
-
if (isArray && Array.isArray(root[base])) {
|
|
528
|
-
const idx = seen[key] ?? 0;
|
|
529
|
-
value = root[base][idx];
|
|
530
|
-
seen[key] = idx + 1;
|
|
531
|
-
}
|
|
532
|
-
else {
|
|
533
|
-
value = root[base];
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
const anyField = field;
|
|
537
|
-
const original = typeof anyField.getValue === "function"
|
|
538
|
-
? anyField.getValue()
|
|
539
|
-
: anyField.value;
|
|
540
|
-
let next = value;
|
|
541
|
-
if (useFeed) {
|
|
542
|
-
const maybe = useFeed(base, value, original);
|
|
543
|
-
if (typeof maybe === "undefined") {
|
|
544
|
-
continue;
|
|
545
|
-
}
|
|
546
|
-
next = maybe;
|
|
547
|
-
}
|
|
548
|
-
if (typeof anyField.setValue === "function") {
|
|
549
|
-
anyField.setValue(next);
|
|
550
|
-
}
|
|
551
|
-
else {
|
|
552
|
-
anyField.value = next;
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
if (propsRef.current.onUpdate) {
|
|
556
|
-
propsRef.current.onUpdate(collectValues());
|
|
557
|
-
}
|
|
558
|
-
},
|
|
559
|
-
setValue(name, value) {
|
|
560
|
-
if (!name)
|
|
561
|
-
return;
|
|
562
|
-
let sharedKey;
|
|
563
|
-
let base = name;
|
|
564
|
-
if (name.includes(".")) {
|
|
565
|
-
const [group, field] = name.split(".", 2);
|
|
566
|
-
sharedKey = group;
|
|
567
|
-
base = field;
|
|
568
|
-
}
|
|
569
|
-
const targetField = fetchAllNamedFields().find((f) => {
|
|
570
|
-
const raw = (f.name ?? "").trim();
|
|
571
|
-
if (!raw)
|
|
572
|
-
return false;
|
|
573
|
-
const isArray = raw.endsWith("[]");
|
|
574
|
-
const rawBase = raw.replace(/\[]$/, "");
|
|
575
|
-
const fShared = f.shared;
|
|
576
|
-
const sameGroup = fShared === sharedKey;
|
|
577
|
-
const sameName = raw === name ||
|
|
578
|
-
rawBase === base ||
|
|
579
|
-
`${fShared}.${rawBase}` === name;
|
|
580
|
-
return (!sharedKey || sameGroup) && sameName && !isArray;
|
|
581
|
-
});
|
|
582
|
-
if (targetField) {
|
|
583
|
-
const anyField = targetField;
|
|
584
|
-
if (typeof anyField.setValue === "function") {
|
|
585
|
-
anyField.setValue(value);
|
|
586
|
-
}
|
|
587
|
-
else {
|
|
588
|
-
anyField.value = value;
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
else {
|
|
592
|
-
bucketRef.current[name] = value;
|
|
593
|
-
}
|
|
594
|
-
if (propsRef.current.onUpdate) {
|
|
595
|
-
propsRef.current.onUpdate(collectValues());
|
|
596
|
-
}
|
|
597
|
-
},
|
|
598
|
-
go(data, ignoreForm) {
|
|
599
|
-
void submitWithAdapter("post", "", data, ignoreForm, true, true);
|
|
600
|
-
},
|
|
601
|
-
reset(inputs) {
|
|
602
|
-
if (!inputs.length)
|
|
603
|
-
return;
|
|
604
|
-
for (const field of fetchAllNamedFields()) {
|
|
605
|
-
const raw = field.name;
|
|
606
|
-
if (!raw)
|
|
607
|
-
continue;
|
|
608
|
-
if (!inputs.includes(raw))
|
|
609
|
-
continue;
|
|
610
|
-
const anyField = field;
|
|
611
|
-
if (typeof anyField.reset === "function") {
|
|
612
|
-
anyField.reset();
|
|
613
|
-
}
|
|
614
|
-
else if (typeof anyField.setValue === "function") {
|
|
615
|
-
anyField.setValue(undefined);
|
|
616
|
-
}
|
|
617
|
-
else {
|
|
618
|
-
anyField.value = undefined;
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
},
|
|
622
|
-
set button(btn) {
|
|
623
|
-
buttonRef.current = btn;
|
|
624
|
-
},
|
|
625
|
-
async forceSubmit() {
|
|
626
|
-
await submitWithAdapter("post", "", undefined, false, true, true);
|
|
627
|
-
},
|
|
628
|
-
get fields() {
|
|
629
|
-
return fetchAllNamedFields();
|
|
630
|
-
},
|
|
631
|
-
get props() {
|
|
632
|
-
const { formRef, valueBag, ...rest } = propsRef.current;
|
|
633
|
-
return rest;
|
|
634
|
-
},
|
|
635
|
-
setActiveButton(name) {
|
|
636
|
-
activeButtonNameRef.current = name;
|
|
637
|
-
},
|
|
638
|
-
getUncaught() {
|
|
639
|
-
return uncaughtRef.current;
|
|
640
|
-
},
|
|
641
|
-
};
|
|
642
|
-
// formRef exposure
|
|
643
|
-
React.useEffect(() => {
|
|
644
|
-
if (!props.formRef)
|
|
645
|
-
return;
|
|
646
|
-
props.formRef.current = context;
|
|
647
|
-
return () => {
|
|
648
|
-
if (props.formRef) {
|
|
649
|
-
props.formRef.current = null;
|
|
650
|
-
}
|
|
651
|
-
};
|
|
652
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
653
|
-
}, [context]);
|
|
654
|
-
// init hook once
|
|
655
|
-
React.useEffect(() => {
|
|
656
|
-
if (props.init) {
|
|
657
|
-
props.init(context);
|
|
658
|
-
}
|
|
659
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
660
|
-
}, []);
|
|
661
|
-
return (_jsx(CoreContextReact.Provider, { value: context, children: props.children }));
|
|
662
|
-
}
|
|
663
|
-
//# sourceMappingURL=core-provider.js.map
|