New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mobx-react-form

Package Overview
Dependencies
Maintainers
1
Versions
249
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mobx-react-form - npm Package Compare versions

Comparing version 6.0.0 to 6.1.0

2

lib/Base.d.ts

@@ -92,3 +92,3 @@ import { ObservableMap } from "mobx";

*/
deepGet(prop: any, fields: any): any;
deepGet(prop: any, fields: any, strict?: boolean): any;
/**

@@ -95,0 +95,0 @@ Set Fields Props

@@ -440,2 +440,3 @@ "use strict";

$field.value = (0, parser_1.parseInput)($field.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: lodash_1.default.get(raw, $path),

@@ -448,2 +449,3 @@ });

$field.value = (0, parser_1.parseInput)($field.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: field,

@@ -480,14 +482,15 @@ });

if (lodash_1.default.isNil(prop)) {
return this.deepGet([...utils_1.props.computed, ...utils_1.props.editable, ...utils_1.props.validation], this.fields);
return this.deepGet([...utils_1.props.computed, ...utils_1.props.editable, ...utils_1.props.validation], this.fields, strict);
}
(0, utils_1.allowedProps)(FieldProps_1.AllowedFieldPropsTypes.all, lodash_1.default.isArray(prop) ? prop : [prop]);
if (lodash_1.default.isString(prop)) {
if (strict && this.fields.size === 0) {
return (0, parser_1.parseCheckOutput)(this, prop);
if (this.fields.size === 0) {
const retrieveNullifiedEmptyStrings = this.state.options.get(OptionsModel_1.OptionsEnum.retrieveNullifiedEmptyStrings, this);
return (0, parser_1.parseCheckOutput)(this, prop, strict ? retrieveNullifiedEmptyStrings : false);
}
const value = this.deepGet(prop, this.fields);
const value = this.deepGet(prop, this.fields, strict);
const removeNullishValuesInArrays = this.state.options.get(OptionsModel_1.OptionsEnum.removeNullishValuesInArrays, this);
return (0, parser_1.parseCheckArray)(this, value, prop, removeNullishValuesInArrays);
return (0, parser_1.parseCheckArray)(this, value, prop, strict ? removeNullishValuesInArrays : false);
}
return this.deepGet(prop, this.fields);
return this.deepGet(prop, this.fields, strict);
}

@@ -497,6 +500,6 @@ /**

*/
deepGet(prop, fields) {
deepGet(prop, fields, strict = true) {
return lodash_1.default.transform((0, utils_1.getObservableMapValues)(fields), (obj, field) => {
const $nested = ($fields) => $fields.size !== 0
? this.deepGet(prop, $fields)
? this.deepGet(prop, $fields, strict)
: undefined;

@@ -513,10 +516,11 @@ Object.assign(obj, {

if (field.fields.size === 0) {
delete obj[field.key]; // eslint-disable-line
delete obj[field.key];
if (removeProp)
return obj;
const retrieveNullifiedEmptyStrings = this.state.options.get(OptionsModel_1.OptionsEnum.retrieveNullifiedEmptyStrings, this);
return Object.assign(obj, {
[field.key]: (0, parser_1.parseCheckOutput)(field, prop),
[field.key]: (0, parser_1.parseCheckOutput)(field, prop, strict ? retrieveNullifiedEmptyStrings : false),
});
}
let value = this.deepGet(prop, field.fields);
let value = this.deepGet(prop, field.fields, strict);
if (prop === FieldProps_1.FieldPropsEnum.value)

@@ -529,3 +533,3 @@ value = field.$output(value);

return Object.assign(obj, {
[field.key]: (0, parser_1.parseCheckArray)(field, value, prop, removeNullishValuesInArrays),
[field.key]: (0, parser_1.parseCheckArray)(field, value, prop, strict ? removeNullishValuesInArrays : false),
});

@@ -555,2 +559,3 @@ }

this[prop] = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: data,

@@ -580,2 +585,3 @@ });

this.each((field) => field.$value = (0, parser_1.defaultValue)({
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
value: field.$value,

@@ -630,4 +636,5 @@ type: field.type,

if (!lodash_1.default.has(obj, FieldProps_1.FieldPropsEnum.value) && !this.state.options.get(OptionsModel_1.OptionsEnum.preserveDeletedFieldsValues, this)) {
field.$value = (0, parser_1.defaultValue)({ value: field.$value, type: field.type });
field.each((field) => field.$value = (0, parser_1.defaultValue)({ value: field.$value, type: field.type }));
const fallbackValueOption = this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this);
field.$value = (0, parser_1.defaultValue)({ fallbackValueOption, value: field.$value, type: field.type });
field.each((field) => field.$value = (0, parser_1.defaultValue)({ fallbackValueOption, value: field.$value, type: field.type }));
}

@@ -634,0 +641,0 @@ this.$changed++;

@@ -33,3 +33,4 @@ "use strict";

});
const setupDefaultProp = (instance, data, props, update, { isEmptyArray }) => (0, parser_1.parseInput)(instance.$input, {
const setupDefaultProp = (instance, data, props, update, { isEmptyArray, fallbackValueOption }) => (0, parser_1.parseInput)(instance.$input, {
defaultValue: parser_1.defaultValue,
nullable: true,

@@ -40,2 +41,3 @@ isEmptyArray,

? (0, parser_1.defaultValue)({
fallbackValueOption,
type: instance.type,

@@ -491,3 +493,3 @@ value: instance.value

this.$changed++;
if (!this.resetting && !this.clearing) {
if (!this.actionRunning) {
this.state.form.$changed++;

@@ -508,6 +510,12 @@ }

set initial(val) {
this.$initial = (0, parser_1.parseInput)(this.$input, { separated: val });
this.$initial = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: val,
});
}
set default(val) {
this.$default = (0, parser_1.parseInput)(this.$input, { separated: val });
this.$default = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: val,
});
}

@@ -609,2 +617,3 @@ get actionRunning() {

this.id = (_a = this.state.options.get(OptionsModel_1.OptionsEnum.uniqueId)) === null || _a === void 0 ? void 0 : _a.apply(this, [this]);
const fallbackValueOption = this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this);
const struct = this.state.struct();

@@ -618,4 +627,2 @@ const structPath = (0, utils_1.pathToStruct)(this.path);

const { $type, $input, $output } = $props;
// eslint-disable-next-line
// if (_.isNil($data)) $data = '';
if (lodash_1.default.isPlainObject($data)) {

@@ -628,2 +635,3 @@ const { type, input, output } = $data;

this.$value = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption,
isEmptyArray,

@@ -636,2 +644,3 @@ type: this.type,

this.$initial = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption,
nullable: true,

@@ -645,2 +654,3 @@ isEmptyArray,

this.$default = setupDefaultProp(this, $data, $props, update, {
fallbackValueOption,
isEmptyArray,

@@ -657,2 +667,3 @@ });

this.$value = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption,
isEmptyArray,

@@ -664,2 +675,3 @@ type: this.type,

this.$initial = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption,
nullable: true,

@@ -673,2 +685,3 @@ isEmptyArray,

this.$default = setupDefaultProp(this, $data, $props, update, {
fallbackValueOption,
isEmptyArray,

@@ -742,3 +755,3 @@ });

if (deep)
this.each((field) => field.resetValidation());
this.each((field) => field.resetValidation(deep));
}

@@ -753,2 +766,3 @@ clear(deep = true, execHook = true) {

this.$value = (0, parser_1.defaultValue)({
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue),
value: this.$value,

@@ -758,3 +772,3 @@ type: this.type,

if (deep)
this.each((field) => field.clear(true));
this.each((field) => field.clear(deep));
this.state.options.get(OptionsModel_1.OptionsEnum.validateOnClear, this)

@@ -778,3 +792,3 @@ ? this.validate({

if (deep)
this.each((field) => field.reset(true));
this.each((field) => field.reset(deep));
this.state.options.get(OptionsModel_1.OptionsEnum.validateOnReset, this)

@@ -845,3 +859,2 @@ ? this.validate({

initMOBXEvent(type) {
// @ts-ignore
if (!lodash_1.default.isArray(this[`$${type}`]))

@@ -854,3 +867,2 @@ return;

fn = this.intercept;
// @ts-ignore
this[`$${type}`].map((obj) => fn(lodash_1.default.omit(obj, FieldProps_1.FieldPropsEnum.path)));

@@ -869,2 +881,3 @@ }

this.value = (0, parser_1.parseInput)(this.$input, {
fallbackValueOption: this.state.options.get(OptionsModel_1.OptionsEnum.fallbackValue, this),
separated: fields,

@@ -871,0 +884,0 @@ });

export declare enum OptionsEnum {
uniqueId = "uniqueId",
fallback = "fallback",
fallbackValue = "fallbackValue",
defaultGenericError = "defaultGenericError",

@@ -30,2 +31,3 @@ submitThrowsError = "submitThrowsError",

retrieveOnlyEnabledFieldsErrors = "retrieveOnlyEnabledFieldsErrors",
retrieveNullifiedEmptyStrings = "retrieveNullifiedEmptyStrings",
removeNullishValuesInArrays = "removeNullishValuesInArrays",

@@ -44,2 +46,3 @@ preserveDeletedFieldsValues = "preserveDeletedFieldsValues",

[OptionsEnum.fallback]?: boolean;
[OptionsEnum.fallbackValue]?: any;
[OptionsEnum.defaultGenericError]?: null | string;

@@ -71,2 +74,3 @@ [OptionsEnum.submitThrowsError]?: boolean;

[OptionsEnum.retrieveOnlyEnabledFieldsErrors]?: boolean;
[OptionsEnum.retrieveNullifiedEmptyStrings]?: boolean;
[OptionsEnum.removeNullishValuesInArrays]?: boolean;

@@ -73,0 +77,0 @@ [OptionsEnum.preserveDeletedFieldsValues]?: boolean;

@@ -8,2 +8,3 @@ "use strict";

OptionsEnum["fallback"] = "fallback";
OptionsEnum["fallbackValue"] = "fallbackValue";
OptionsEnum["defaultGenericError"] = "defaultGenericError";

@@ -35,2 +36,3 @@ OptionsEnum["submitThrowsError"] = "submitThrowsError";

OptionsEnum["retrieveOnlyEnabledFieldsErrors"] = "retrieveOnlyEnabledFieldsErrors";
OptionsEnum["retrieveNullifiedEmptyStrings"] = "retrieveNullifiedEmptyStrings";
OptionsEnum["removeNullishValuesInArrays"] = "removeNullishValuesInArrays";

@@ -37,0 +39,0 @@ OptionsEnum["preserveDeletedFieldsValues"] = "preserveDeletedFieldsValues";

@@ -18,2 +18,3 @@ "use strict";

fallback: true,
fallbackValue: "",
defaultGenericError: null,

@@ -44,2 +45,3 @@ submitThrowsError: true,

retrieveOnlyEnabledFieldsErrors: false,
retrieveNullifiedEmptyStrings: false,
autoTrimValue: false,

@@ -46,0 +48,0 @@ autoParseNumbers: false,

@@ -1,8 +0,8 @@

declare const defaultValue: ({ type, value, nullable, isEmptyArray, }: any) => null | false | 0 | [
declare const defaultValue: ({ type, value, nullable, isEmptyArray, fallbackValueOption, }: any) => null | false | 0 | [
] | "";
declare const parsePath: (path: string) => string;
declare const parseInput: (input: any, { type, isEmptyArray, nullable, separated, unified, fallback }: any) => any;
declare const parseInput: (input: any, { fallbackValueOption, type, isEmptyArray, nullable, separated, unified, fallback }: any) => any;
declare const parseArrayProp: (val: any, prop: string, removeNullishValuesInArrays: boolean) => any;
declare const parseCheckArray: (field: any, value: any, prop: string, removeNullishValuesInArrays: boolean) => any;
declare const parseCheckOutput: (field: any, prop: string) => any;
declare const parseCheckOutput: (field: any, prop: string, retrieveNullifiedEmptyStrings?: boolean) => any;
declare const handleFieldsArrayOfStrings: ($fields: any, add?: boolean) => any;

@@ -9,0 +9,0 @@ declare const handleFieldsNested: (fields: any, strictProps?: boolean) => any;

@@ -10,5 +10,5 @@ "use strict";

const utils_1 = require("./utils");
const defaultValue = ({ type = undefined, value = undefined, nullable = false, isEmptyArray = false, }) => {
const defaultValue = ({ type = undefined, value = undefined, nullable = false, isEmptyArray = false, fallbackValueOption = "", }) => {
if (type === "file")
return null;
return "";
if (type === "nullable")

@@ -32,3 +32,3 @@ return null;

return [];
return "";
return fallbackValueOption;
};

@@ -43,3 +43,4 @@ exports.defaultValue = defaultValue;

exports.parsePath = parsePath;
const parseInput = (input, { type, isEmptyArray, nullable, separated, unified, fallback }) => input((0, utils_1.$try)(separated, unified, fallback, defaultValue({
const parseInput = (input, { fallbackValueOption = "", type, isEmptyArray, nullable, separated, unified, fallback }) => input((0, utils_1.$try)(separated, unified, fallback, defaultValue({
fallbackValueOption,
type,

@@ -63,6 +64,9 @@ isEmptyArray,

exports.parseCheckArray = parseCheckArray;
const parseCheckOutput = (field, prop) => {
const parseCheckOutput = (field, prop, retrieveNullifiedEmptyStrings = false) => {
if (prop === FieldProps_1.FieldPropsEnum.value || prop.startsWith("value.")) {
const base = field.$output ? field.$output(field[FieldProps_1.FieldPropsEnum.value]) : field[FieldProps_1.FieldPropsEnum.value];
return prop.startsWith("value.") ? lodash_1.default.get(base, prop.substring(6)) : base;
const value = prop.startsWith("value.") ? lodash_1.default.get(base, prop.substring(6)) : base;
if (lodash_1.default.isString(value) && lodash_1.default.isEmpty(value) && retrieveNullifiedEmptyStrings)
return null;
return value;
}

@@ -69,0 +73,0 @@ return field[prop];

{
"name": "mobx-react-form",
"license": "MIT",
"version": "6.0.0",
"version": "6.1.0",
"author": "Claudio Savino <claudio.savino@me.com> (https://twitter.com/foxhound87)",

@@ -6,0 +6,0 @@ "description": "Automagically manage React forms state and automatic validation with MobX.",

@@ -8,12 +8,17 @@

[![NPM](https://nodei.co/npm/mobx-react-form.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/mobx-react-form/)
![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/foxhound87/mobx-react-form/ci.yml?branch=next)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/foxhound87/mobx-react-form)
![npm bundle size](https://img.shields.io/bundlephobia/min/mobx-react-form)
[![Codecov Coverage](https://img.shields.io/codecov/c/github/foxhound87/mobx-react-form/master.svg)](https://codecov.io/gh/foxhound87/mobx-react-form)
[![npm](https://img.shields.io/npm/v/mobx-react-form.svg)]()
[![node](https://img.shields.io/node/v/mobx-react-form.svg)]()
[![GitHub license](https://img.shields.io/github/license/foxhound87/mobx-react-form.svg)]()
![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/foxhound87/mobx-react-form)
![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/foxhound87/mobx-react-form)
[![Downloads](https://img.shields.io/npm/dt/mobx-react-form.svg)]()
[![Downloads](https://img.shields.io/npm/dm/mobx-react-form.svg)]()
[![Backers on Open Collective](https://opencollective.com/mobx-react-form/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/mobx-react-form/sponsors/badge.svg)](#sponsors)
[![Backers on Open Collective](https://opencollective.com/mobx-react-form/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/mobx-react-form/sponsors/badge.svg)](#sponsors)
[![NPM](https://nodei.co/npm/mobx-react-form.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/mobx-react-form/)

@@ -47,4 +52,2 @@ <br>

> See [Validation Plugins](https://foxhound87.github.io/mobx-react-form/docs/validation/plugins.html) for more info on supported packages.
Below we are creating a `plugins` object using the `validatorjs` package to enable `DVR` functionalities (Declarative Validation Rules).

@@ -61,2 +64,4 @@

> See [Validation Plugins](https://foxhound87.github.io/mobx-react-form/docs/validation/plugins.html) for more info on supported packages.
#### Define the Form Fields

@@ -77,2 +82,3 @@

rules: 'required|string|between:5,25',
type: 'password',
}, {

@@ -83,6 +89,7 @@ name: 'passwordConfirm',

rules: 'required|string|same:password',
type: 'password',
}];
```
> You can also define `fields` as an `object`.
> See all available [Field Props](https://foxhound87.github.io/mobx-react-form/docs/api-reference/fields-properties.html) on the docs.

@@ -106,2 +113,4 @@ #### Define the Validation Hooks

> See more on the docs about the [Validation Hooks](https://foxhound87.github.io/mobx-react-form/docs/events/validation-hooks.html)
#### Initialize the Form

@@ -117,2 +126,4 @@

> Learn about more on the docs about the [Form Instance](https://foxhound87.github.io/mobx-react-form/docs/form/)
#### Pass the myForm to a react component

@@ -130,3 +141,3 @@

<form onSubmit={myForm.onSubmit}>
<label htmlFor={myForm.$('email').id}>
<label for={myForm.$('email').id}>
{myForm.$('email').label}

@@ -148,3 +159,3 @@ </label>

> Other Field Props are available. See the [docs](https://foxhound87.github.io/mobx-react-form/docs/api-reference/fields-properties.html) for more details.
> See more on the docs about the [Event Handlers](https://foxhound87.github.io/mobx-react-form/docs/events/event-handlers.html) and the [Event Hooks](https://foxhound87.github.io/mobx-react-form/docs/events/event-hooks.html).

@@ -151,0 +162,0 @@ ###### Extending the Form class

@@ -444,2 +444,3 @@ import {

$field.value = parseInput($field.$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: _.get(raw, $path),

@@ -452,2 +453,3 @@ });

$field.value = parseInput($field.$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: field,

@@ -486,3 +488,4 @@ });

[...props.computed, ...props.editable, ...props.validation],
this.fields
this.fields,
strict,
);

@@ -494,13 +497,14 @@ }

if (_.isString(prop)) {
if (strict && this.fields.size === 0) {
return parseCheckOutput(this, prop);
if (this.fields.size === 0) {
const retrieveNullifiedEmptyStrings = this.state.options.get(OptionsEnum.retrieveNullifiedEmptyStrings, this);
return parseCheckOutput(this, prop, strict ? retrieveNullifiedEmptyStrings : false);
}
const value = this.deepGet(prop, this.fields);
const value = this.deepGet(prop, this.fields, strict);
const removeNullishValuesInArrays = this.state.options.get(OptionsEnum.removeNullishValuesInArrays, this);
return parseCheckArray(this, value, prop, removeNullishValuesInArrays);
return parseCheckArray(this, value, prop, strict ? removeNullishValuesInArrays : false);
}
return this.deepGet(prop, this.fields);
return this.deepGet(prop, this.fields, strict);
}

@@ -511,3 +515,3 @@

*/
deepGet(prop: any, fields: any): any {
deepGet(prop: any, fields: any, strict = true): any {
return _.transform(

@@ -517,3 +521,3 @@ getObservableMapValues(fields),

const $nested = ($fields: any) => $fields.size !== 0
? this.deepGet(prop, $fields)
? this.deepGet(prop, $fields, strict)
: undefined;

@@ -534,10 +538,11 @@

if (field.fields.size === 0) {
delete obj[field.key]; // eslint-disable-line
delete obj[field.key];
if (removeProp) return obj;
const retrieveNullifiedEmptyStrings = this.state.options.get(OptionsEnum.retrieveNullifiedEmptyStrings, this);
return Object.assign(obj, {
[field.key]: parseCheckOutput(field, prop),
[field.key]: parseCheckOutput(field, prop, strict ? retrieveNullifiedEmptyStrings : false),
});
}
let value = this.deepGet(prop, field.fields);
let value = this.deepGet(prop, field.fields, strict);
if (prop === FieldPropsEnum.value) value = field.$output(value);

@@ -550,3 +555,3 @@

return Object.assign(obj, {
[field.key]: parseCheckArray(field, value, prop, removeNullishValuesInArrays),
[field.key]: parseCheckArray(field, value, prop, strict ? removeNullishValuesInArrays : false),
});

@@ -583,2 +588,3 @@ }

(this as any)[prop] = parseInput((this as any).$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: data,

@@ -614,2 +620,3 @@ });

this.each((field: any) => field.$value = defaultValue({
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
value: field.$value,

@@ -668,4 +675,5 @@ type: field.type,

if(!_.has(obj, FieldPropsEnum.value) && !this.state.options.get(OptionsEnum.preserveDeletedFieldsValues, this)) {
field.$value = defaultValue({ value: field.$value, type: field.type });
field.each((field: any) => field.$value = defaultValue({ value: field.$value, type: field.type }));
const fallbackValueOption = this.state.options.get(OptionsEnum.fallbackValue, this);
field.$value = defaultValue({ fallbackValueOption, value: field.$value, type: field.type });
field.each((field: any) => field.$value = defaultValue({ fallbackValueOption, value: field.$value, type: field.type }));
}

@@ -672,0 +680,0 @@

@@ -54,5 +54,7 @@ import {

update: boolean,
{ isEmptyArray }: { isEmptyArray: boolean }
{ isEmptyArray, fallbackValueOption }:
{ isEmptyArray: boolean, fallbackValueOption: any }
) =>
parseInput(instance.$input, {
defaultValue,
nullable: true,

@@ -63,2 +65,3 @@ isEmptyArray,

? defaultValue({
fallbackValueOption,
type: instance.type,

@@ -275,3 +278,3 @@ value: instance.value

this.$changed ++;
if (!this.resetting && !this.clearing) {
if (!this.actionRunning) {
this.state.form.$changed ++;

@@ -294,7 +297,13 @@ };

set initial(val) {
this.$initial = parseInput(this.$input, { separated: val });
this.$initial = parseInput(this.$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: val,
});
}
set default(val) {
this.$default = parseInput(this.$input, { separated: val });
this.$default = parseInput(this.$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: val,
});
}

@@ -506,2 +515,3 @@

this.id = this.state.options.get(OptionsEnum.uniqueId)?.apply(this, [this]);
const fallbackValueOption = this.state.options.get(OptionsEnum.fallbackValue, this);
const struct = this.state.struct();

@@ -517,5 +527,2 @@ const structPath = pathToStruct(this.path);

// eslint-disable-next-line
// if (_.isNil($data)) $data = '';
if (_.isPlainObject($data)) {

@@ -530,2 +537,3 @@ const { type, input, output } = $data;

this.$value = parseInput(this.$input, {
fallbackValueOption,
isEmptyArray,

@@ -539,2 +547,3 @@ type: this.type,

this.$initial = parseInput(this.$input, {
fallbackValueOption,
nullable: true,

@@ -549,2 +558,3 @@ isEmptyArray,

this.$default = setupDefaultProp(this, $data, $props, update, {
fallbackValueOption,
isEmptyArray,

@@ -564,2 +574,3 @@ });

this.$value = parseInput(this.$input, {
fallbackValueOption,
isEmptyArray,

@@ -572,2 +583,3 @@ type: this.type,

this.$initial = parseInput(this.$input, {
fallbackValueOption,
nullable: true,

@@ -582,2 +594,3 @@ isEmptyArray,

this.$default = setupDefaultProp(this, $data, $props, update, {
fallbackValueOption,
isEmptyArray,

@@ -675,3 +688,3 @@ });

}))
if (deep) this.each((field: any) => field.resetValidation());
if (deep) this.each((field: any) => field.resetValidation(deep));
}

@@ -687,2 +700,3 @@

this.$value = defaultValue({
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue),
value: this.$value,

@@ -692,3 +706,3 @@ type: this.type,

if (deep) this.each((field: FieldInterface) => field.clear(true));
if (deep) this.each((field: FieldInterface) => field.clear(deep));

@@ -713,3 +727,3 @@ this.state.options.get(OptionsEnum.validateOnClear, this)

if (deep) this.each((field: FieldInterface) => field.reset(true));
if (deep) this.each((field: FieldInterface) => field.reset(deep));

@@ -801,3 +815,2 @@ this.state.options.get(OptionsEnum.validateOnReset, this)

initMOBXEvent(type: string): void {
// @ts-ignore
if (!_.isArray(this[`$${type}`])) return;

@@ -808,3 +821,2 @@

if (type === FieldPropsEnum.interceptors) fn = this.intercept;
// @ts-ignore
this[`$${type}`].map((obj: any) => fn(_.omit(obj, FieldPropsEnum.path)));

@@ -828,2 +840,3 @@ }

this.value = parseInput(this.$input, {
fallbackValueOption: this.state.options.get(OptionsEnum.fallbackValue, this),
separated: fields,

@@ -830,0 +843,0 @@ });

export enum OptionsEnum {
uniqueId = 'uniqueId',
fallback = 'fallback',
fallbackValue = 'fallbackValue',
defaultGenericError = 'defaultGenericError',

@@ -30,2 +31,3 @@ submitThrowsError = 'submitThrowsError',

retrieveOnlyEnabledFieldsErrors = 'retrieveOnlyEnabledFieldsErrors',
retrieveNullifiedEmptyStrings = 'retrieveNullifiedEmptyStrings',
removeNullishValuesInArrays = 'removeNullishValuesInArrays',

@@ -46,2 +48,3 @@ preserveDeletedFieldsValues = 'preserveDeletedFieldsValues',

[OptionsEnum.fallback]?: boolean;
[OptionsEnum.fallbackValue]?: any;
[OptionsEnum.defaultGenericError]?: null | string;

@@ -73,2 +76,3 @@ [OptionsEnum.submitThrowsError]?: boolean;

[OptionsEnum.retrieveOnlyEnabledFieldsErrors]?: boolean;
[OptionsEnum.retrieveNullifiedEmptyStrings]?: boolean;
[OptionsEnum.removeNullishValuesInArrays]?: boolean;

@@ -75,0 +79,0 @@ [OptionsEnum.preserveDeletedFieldsValues]?: boolean;

@@ -21,2 +21,3 @@ import {

fallback: true,
fallbackValue: "",
defaultGenericError: null,

@@ -47,2 +48,3 @@ submitThrowsError: true,

retrieveOnlyEnabledFieldsErrors: false,
retrieveNullifiedEmptyStrings: false,
autoTrimValue: false,

@@ -49,0 +51,0 @@ autoParseNumbers: false,

@@ -18,4 +18,5 @@ import _ from "lodash";

isEmptyArray = false,
fallbackValueOption = "",
}: any): null | false | 0 | [] | "" => {
if (type === "file") return null;
if (type === "file") return "";
if (type === "nullable") return null;

@@ -30,3 +31,3 @@ if (type === "datetime-local") return null;

if (isEmptyArray) return [];
return "";
return fallbackValueOption;
};

@@ -43,3 +44,3 @@

input: any,
{ type, isEmptyArray, nullable, separated, unified, fallback }: any
{ fallbackValueOption = "", type, isEmptyArray, nullable, separated, unified, fallback }: any
) =>

@@ -52,2 +53,3 @@ input(

defaultValue({
fallbackValueOption,
type,

@@ -76,6 +78,8 @@ isEmptyArray,

const parseCheckOutput = (field: any, prop: string) => {
const parseCheckOutput = (field: any, prop: string, retrieveNullifiedEmptyStrings = false) => {
if (prop === FieldPropsEnum.value || prop.startsWith("value.")) {
const base = field.$output ? field.$output(field[FieldPropsEnum.value]) : field[FieldPropsEnum.value]
return prop.startsWith("value.") ? _.get(base, prop.substring(6)) : base
const value = prop.startsWith("value.") ? _.get(base, prop.substring(6)) : base
if (_.isString(value) && _.isEmpty(value) && retrieveNullifiedEmptyStrings) return null
return value;
}

@@ -82,0 +86,0 @@ return field[prop];

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("_"),require("mobx")):"function"==typeof define&&define.amd?define(["_","mobx"],t):"object"==typeof exports?exports.MobxReactForm=t(require("_"),require("mobx")):e.MobxReactForm=t(e._,e.mobx)}(self,((e,t)=>(()=>{"use strict";var i={311:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593),n=i(215),o=i(561),d=i(93),u=i(951);t.default=class{constructor(){Object.defineProperty(this,"noop",{enumerable:!0,configurable:!0,writable:!0,value:()=>{}}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:r.observable.map({})}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$submitted",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$submitting",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$validated",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$validating",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$clearing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$resetting",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$touched",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$changed",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$hooks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"$handlers",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"execHook",{enumerable:!0,configurable:!0,writable:!0,value:(e,t={})=>(0,l.$try)(t[e],this.$hooks[e],this.hooks&&this.hooks.apply(this,[this])[e],this.noop).apply(this,[this])}),Object.defineProperty(this,"execHandler",{enumerable:!0,configurable:!0,writable:!0,value:(e,t,i=null,s=null)=>[(0,l.$try)(this.$handlers[e]&&this.$handlers[e].apply(this,[this]),this.handlers&&this.handlers.apply(this,[this])[e]&&this.handlers.apply(this,[this])[e].apply(this,[this]),i,this.noop).apply(this,[...t]),this.execHook(s||e)]}),Object.defineProperty(this,"intercept",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.MOBXEvent(a.default.isFunction(e)?{type:"interceptor",call:e}:Object.assign({type:"interceptor"},e))}),Object.defineProperty(this,"observe",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.MOBXEvent(a.default.isFunction(e)?{type:"observer",call:e}:Object.assign({type:"observer"},e))}),Object.defineProperty(this,"onClear",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onClear,e,(e=>{e.preventDefault(),this.clear(!0,!1)}))}),Object.defineProperty(this,"onReset",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onReset,e,(e=>{e.preventDefault(),this.reset(!0,!1)}))}),Object.defineProperty(this,"onSubmit",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onSubmit,e,((e,t={})=>{e.preventDefault(),this.submit(t,!1)}))}),Object.defineProperty(this,"onAdd",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onAdd,e,((e,t)=>{e.preventDefault(),this.add((0,l.$isEvent)(t)?null:t,!1)}))}),Object.defineProperty(this,"onDel",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onDel,e,((e,t)=>{e.preventDefault(),this.del((0,l.$isEvent)(t)?this.path:t,!1)}))}),(0,r.makeObservable)(this,{$submitted:r.observable,$submitting:r.observable,$validated:r.observable,$validating:r.observable,$clearing:r.observable,$resetting:r.observable,$touched:r.observable,$changed:r.observable,changed:r.computed,submitted:r.computed,submitting:r.computed,validated:r.computed,validating:r.computed,clearing:r.computed,resetting:r.computed,hasIncrementalKeys:r.computed,hasNestedFields:r.computed,size:r.computed,initField:r.action,submit:r.action,deepUpdate:r.action,set:r.action,add:r.action,del:r.action})}get resetting(){return this.hasNestedFields?this.check(o.FieldPropsEnum.resetting,!0):this.$resetting}get clearing(){return this.hasNestedFields?this.check(o.FieldPropsEnum.clearing,!0):this.$clearing}get submitted(){return(0,r.toJS)(this.$submitted)}get submitting(){return(0,r.toJS)(this.$submitting)}get validated(){return(0,r.toJS)(this.$validated)}get validating(){return(0,r.toJS)(this.$validating)}get hasIncrementalKeys(){return!!this.fields.size&&(0,l.hasIntKeys)(this.fields)}get hasNestedFields(){return 0!==this.fields.size}get size(){return this.fields.size}get changed(){return!a.default.isNil(this.path)&&this.hasNestedFields?this.reduce(((e,t)=>e+t.changed),0)+this.$changed:this.$changed}initFields(e,t=!1){const i=this.state.options.get(d.OptionsEnum.fallback),s=e=>a.default.trimStart([this.path,e].join("."),".");let r;r=(0,n.prepareFieldsData)(e,this.state.strict,i),r=(0,n.mergeSchemaDefaults)(r,this.validator),a.default.forIn(r,((e,r)=>{const n=s(r),o=this.select(n,null,!1);if(a.default.isNil(o))if(i)this.initField(r,n,e,t);else{const i=(0,l.pathToStruct)(n);this.state.struct().filter((e=>e.startsWith(i))).find((e=>"."===e.charAt(i.length)||"[]"===e.substring(i.length,i.length+2)||e===i))&&this.initField(r,n,e,t)}}))}initField(e,t,i,s=!1){const r=this.state.get("current","props"),n=(0,l.pathToStruct)(t),d=e=>{const t=a.default.get(r[e],n);if(e!==o.FieldPropsEnum.input&&e!==o.FieldPropsEnum.output||"function"==typeof t)return t},u={$value:a.default.get(r[o.SeparatedPropsMode.values],t),$label:d(o.SeparatedPropsMode.labels),$placeholder:d(o.SeparatedPropsMode.placeholders),$default:d(o.SeparatedPropsMode.defaults),$initial:d(o.SeparatedPropsMode.initials),$disabled:d(o.SeparatedPropsMode.disabled),$deleted:d(o.SeparatedPropsMode.deleted),$type:d(o.SeparatedPropsMode.types),$related:d(o.SeparatedPropsMode.related),$rules:d(o.SeparatedPropsMode.rules),$options:d(o.SeparatedPropsMode.options),$bindings:d(o.SeparatedPropsMode.bindings),$extra:d(o.SeparatedPropsMode.extra),$hooks:d(o.SeparatedPropsMode.hooks),$handlers:d(o.SeparatedPropsMode.handlers),$validatedWith:d(o.SeparatedPropsMode.validatedWith),$validators:d(o.SeparatedPropsMode.validators),$observers:d(o.SeparatedPropsMode.observers),$interceptors:d(o.SeparatedPropsMode.interceptors),$input:d(o.SeparatedPropsMode.input),$output:d(o.SeparatedPropsMode.output),$autoFocus:d(o.SeparatedPropsMode.autoFocus),$ref:d(o.SeparatedPropsMode.refs)},p=this.state.form.makeField({key:e,path:t,data:i,props:u,update:s,state:this.state});return this.fields.merge({[e]:p}),p}validate(e={},t={}){const i=a.default.merge(e,{path:this.path});return this.state.form.validator.validate(i,t)}submit(e={},t=!0){if(t&&this.execHook(o.FieldPropsEnum.onSubmit,e),this.$submitting=!0,this.$submitted+=1,!this.state.options.get(d.OptionsEnum.validateOnSubmit,this))return Promise.resolve(this).then((0,r.action)((()=>this.$submitting=!1))).then((()=>this));const i=t=>t?this.execHook(u.ValidationHooks.onSuccess,e):this.execHook(u.ValidationHooks.onError,e);return this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnSubmit,this)}).then((({isValid:e})=>{const t=i(e);if(e)return t;const s=this.state.options.get(d.OptionsEnum.defaultGenericError,this);return this.state.options.get(d.OptionsEnum.submitThrowsError,this)&&s&&this.invalidate(),t})).then((0,r.action)((()=>this.$submitting=!1))).catch((0,r.action)((e=>{throw this.$submitting=!1,e}))).then((()=>this))}check(e,t=!1){return(0,l.allowedProps)(o.AllowedFieldPropsTypes.computed,[e]),t?(0,l.checkPropOccurrence)({type:l.props.occurrences[e],data:this.deepCheck(l.props.occurrences[e],e,this.fields)}):this[e]}deepCheck(e,t,i){const s=(0,l.getObservableMapValues)(i);return a.default.transform(s,((i,s)=>(s.fields.size&&a.default.isArray(s.initial)||i.push(s[t]),i.push((0,l.checkPropOccurrence)({data:this.deepCheck(e,t,s.fields),type:e})),i)),[])}update(e){if(!a.default.isPlainObject(e))throw new Error("The update() method accepts only plain objects.");this.deepUpdate((0,n.prepareFieldsData)({fields:e},this.state.strict),void 0,void 0,e)}deepUpdate(e,t="",i=!0,s){a.default.each(e,((e,r)=>{var u;const p=a.default.has(e,o.FieldPropsEnum.name)?e.name:r,h=a.default.trimStart(`${t}.${p}`,"."),c=this.select(h,null,!1),f=this.select(t,null,!1)||this.state.form.select(this.path,null,!1);if(!a.default.isNil(c)&&!a.default.isUndefined(e)){if(a.default.isArray(c.values())){const t=null!==(u=a.default.max(a.default.map(e.fields,((e,t)=>Number(t)))))&&void 0!==u?u:-1;a.default.each((0,l.getObservableMapValues)(c.fields),(e=>{Number(e.name)>t&&(c.$changed++,c.state.form.$changed++,c.fields.delete(e.name))}))}if(null==e?void 0:e.fields){const e=this.state.options.get(d.OptionsEnum.fallback),t=this.state.struct().findIndex((e=>e.startsWith(c.path.replace(/\.\d+\./,"[].")+"[]")));if(!e&&0===c.fields.size&&t<0)return void(c.value=(0,n.parseInput)(c.$input,{separated:a.default.get(s,h)}))}if(a.default.isNull(e)||a.default.isNil(e.fields))return void(c.value=(0,n.parseInput)(c.$input,{separated:e}))}if(!a.default.isNil(f)&&a.default.isNil(c)){const t=a.default.trimStart([this.path,h].join("."),".");f.$changed++,f.state.form.$changed++,f.initField(p,t,e,!0)}else if(i)if(a.default.has(e,o.FieldPropsEnum.fields)&&!a.default.isNil(e.fields))this.deepUpdate(e.fields,h);else{const e=(0,n.pathToFieldsTree)(this.state.struct(),h);this.deepUpdate(e,h,!1)}}))}get(e=null,t=!0){if(a.default.isNil(e))return this.deepGet([...l.props.computed,...l.props.editable,...l.props.validation],this.fields);if((0,l.allowedProps)(o.AllowedFieldPropsTypes.all,a.default.isArray(e)?e:[e]),a.default.isString(e)){if(t&&0===this.fields.size)return(0,n.parseCheckOutput)(this,e);const i=this.deepGet(e,this.fields),s=this.state.options.get(d.OptionsEnum.removeNullishValuesInArrays,this);return(0,n.parseCheckArray)(this,i,e,s)}return this.deepGet(e,this.fields)}deepGet(e,t){return a.default.transform((0,l.getObservableMapValues)(t),((t,i)=>{if(Object.assign(t,{[i.key]:{fields:(t=>0!==t.size?this.deepGet(e,t):void 0)(i.fields)}}),a.default.isString(e)){const s=this.state.options,r=s.get(d.OptionsEnum.retrieveOnlyDirtyFieldsValues,this)&&e===o.FieldPropsEnum.value&&i.isPristine||s.get(d.OptionsEnum.retrieveOnlyEnabledFieldsValues,this)&&e===o.FieldPropsEnum.value&&i.disabled||s.get(d.OptionsEnum.retrieveOnlyEnabledFieldsErrors,this)&&e===o.FieldPropsEnum.error&&i.disabled&&i.isValid&&(!i.error||!i.hasError)||s.get(d.OptionsEnum.softDelete,this)&&e===o.FieldPropsEnum.value&&i.deleted;if(0===i.fields.size)return delete t[i.key],r?t:Object.assign(t,{[i.key]:(0,n.parseCheckOutput)(i,e)});let a=this.deepGet(e,i.fields);if(e===o.FieldPropsEnum.value&&(a=i.$output(a)),delete t[i.key],r)return t;const l=this.state.options.get(d.OptionsEnum.removeNullishValuesInArrays,this);return Object.assign(t,{[i.key]:(0,n.parseCheckArray)(i,a,e,l)})}return a.default.each(e,(e=>Object.assign(t[i.key],{[e]:i[e]}))),t}),{})}set(e,t){if(a.default.isString(e)&&!a.default.isUndefined(t))return(0,l.allowedProps)(o.AllowedFieldPropsTypes.editable,[e]),(a.default.isObject(t)&&e===o.FieldPropsEnum.value||a.default.isPlainObject(t))&&this.hasNestedFields?this.deepSet(e,t,"",!0):void([o.FieldPropsEnum.value,o.FieldPropsEnum.initial,o.FieldPropsEnum.default].includes(e)?this[e]=(0,n.parseInput)(this.$input,{separated:t}):a.default.set(this,`$${e}`,t));a.default.isNil(t)&&(this.hasNestedFields?this.deepSet(o.FieldPropsEnum.value,e,"",!0):this.set(o.FieldPropsEnum.value,e))}deepSet(e,t,i="",s=!1){const r=this.state.options.get(d.OptionsEnum.strictUpdate,this);a.default.isNil(t)?this.each((e=>e.$value=(0,n.defaultValue)({value:e.$value,type:e.type}))):a.default.each(t,((t,n)=>{const o=a.default.trimStart(`${i}.${n}`,"."),d=this.select(o,null,r);r&&(0,l.throwError)(o,d,"You are updating a not existent field:"),a.default.isUndefined(d)||(a.default.isUndefined(t)||d.set(e,t,s),d.fields.size&&a.default.isObject(t)&&this.deepSet(e,t,o,s))}))}add(e,t=!0){if((0,l.isArrayOfObjects)(e))return a.default.each(e,(e=>this.update({[(0,l.maxKey)(this.fields)]:e}))),this.$changed++,this.state.form.$changed++,void(t&&this.execHook(o.FieldPropsEnum.onAdd));let i;a.default.has(e,o.FieldPropsEnum.key)&&(i=e.key),a.default.has(e,o.FieldPropsEnum.name)&&(i=e.name),i||(i=(0,l.maxKey)(this.fields));const s=(0,n.pathToFieldsTree)(this.state.struct(),this.path,0,!0),r=this.initField(i,(e=>a.default.trimStart([this.path,e].join("."),"."))(i),a.default.merge(s[0],e));return a.default.has(e,o.FieldPropsEnum.value)||this.state.options.get(d.OptionsEnum.preserveDeletedFieldsValues,this)||(r.$value=(0,n.defaultValue)({value:r.$value,type:r.type}),r.each((e=>e.$value=(0,n.defaultValue)({value:e.$value,type:e.type})))),this.$changed++,this.state.form.$changed++,t&&this.execHook(o.FieldPropsEnum.onAdd),r}del(e=null,t=!0){const i=this.state.options.get(d.OptionsEnum.strictDelete,this),s=(0,n.parsePath)(null!=e?e:this.path),r=a.default.trim([this.path,s].join("."),"."),u=this.container(e),p=a.default.split(s,"."),h=a.default.last(p);if(i&&!u.fields.has(h)){const e=`Key "${h}" not found when trying to delete field`;(0,l.throwError)(r,null,e)}return u.$changed++,u.state.form.$changed++,this.state.options.get(d.OptionsEnum.softDelete,this)?this.select(r).set(o.FieldPropsEnum.deleted,!0):(u.each((e=>e.debouncedValidation.cancel())),t&&this.execHook(o.FieldPropsEnum.onDel),u.fields.delete(h))}MOBXEvent({prop:e=o.FieldPropsEnum.value,key:t=null,path:i=null,call:s,type:n}){let d=t||e;(0,l.allowedProps)(o.AllowedFieldPropsTypes.observable,[d]);const u=this.select(i||this.path,null,null)||this,p=e=>s.apply(null,[{change:e,form:this.state.form,path:u.path||null,field:u.path?u:null}]);let h,c;"observer"===n&&(h=r.observe,c=e=>(0,r.observe)(u.fields,e)),"interceptor"===n&&(d=`$${e}`,h=r.intercept,c=u.fields.intercept);const f=u.path?`${d}@${u.path}`:d;a.default.merge(this.state.disposers[n],{[f]:d===o.FieldPropsEnum.fields?c.apply((e=>p(e))):h(u,d,(e=>p(e)))})}dispose(e=null){return this.path&&e?this.disposeSingle(e):this.disposeAll()}disposeAll(){const e=e=>e.apply();return a.default.each(this.state.disposers.interceptor,e),a.default.each(this.state.disposers.observer,e),this.state.disposers={interceptor:{},observer:{}},null}disposeSingle({type:e,key:t=o.FieldPropsEnum.value,path:i=null}){const s=(0,n.parsePath)(null!=i?i:this.path);"interceptor"===e&&(t=`$${t}`),this.state.disposers[e][`${t}@${s}`].apply(),delete this.state.disposers[e][`${t}@${s}`]}select(e,t=null,i=!0){const s=(0,n.parsePath)(e),r=a.default.split(s,"."),o=a.default.head(r);r.shift();let d=a.default.isNil(t)?this.fields.get(o):t.get(o),u=!1;return a.default.each(r,(e=>{u||(a.default.isNil(d)?(d=void 0,u=!0):d=d.fields.get(e))})),i&&(0,l.throwError)(e,d),d}container(e){const t=(0,n.parsePath)(null!=e?e:this.path),i=a.default.trim(t.replace(new RegExp("[^./]+$"),""),".");return this.path&&a.default.isNil(e)?""!==i?this.state.form.select(i,null,!1):this.state.form:""!==i?this.select(i,null,!1):this}has(e){return this.fields.has(e)}map(e){return(0,l.getObservableMapValues)(this.fields).map(e)}each(e,t=null,i=0){const s=t||this.fields;a.default.each((0,l.getObservableMapValues)(s),((t,s)=>{e(t,s,i),0!==t.fields.size&&this.each(e,t.fields,i+1)}))}reduce(e,t){return a.default.reduce((0,l.getObservableMapValues)(this.fields),e,t)}$(e){return this.select(e)}values(){return this.get(o.FieldPropsEnum.value)}errors(){return this.get(o.FieldPropsEnum.error)}labels(){return this.get(o.FieldPropsEnum.label)}placeholders(){return this.get(o.FieldPropsEnum.placeholder)}defaults(){return this.get(o.FieldPropsEnum.placeholder)}initials(){return this.get(o.FieldPropsEnum.initial)}types(){return this.get(o.FieldPropsEnum.type)}}},169:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(479)),a=i(593),l=i(561);t.default=class{constructor(){Object.defineProperty(this,"templates",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"rewriters",{enumerable:!0,configurable:!0,writable:!0,value:{default:{id:l.FieldPropsEnum.id,name:l.FieldPropsEnum.name,type:l.FieldPropsEnum.type,value:l.FieldPropsEnum.value,checked:l.FieldPropsEnum.checked,label:l.FieldPropsEnum.label,placeholder:l.FieldPropsEnum.placeholder,disabled:l.FieldPropsEnum.disabled,onChange:l.FieldPropsEnum.onChange,onBlur:l.FieldPropsEnum.onBlur,onFocus:l.FieldPropsEnum.onFocus,autoFocus:l.FieldPropsEnum.autoFocus,inputMode:l.FieldPropsEnum.inputMode,onKeyUp:l.FieldPropsEnum.onKeyUp,onKeyDown:l.FieldPropsEnum.onKeyDown}}})}register(e){return r.default.each(e,((e,t)=>{r.default.isFunction(e)&&r.default.merge(this.templates,{[t]:e}),r.default.isPlainObject(e)&&r.default.merge(this.rewriters,{[t]:e})})),this}load(e,t=l.FieldPropsEnum.default,i){const s={keys:r.default.get(this.rewriters,l.FieldPropsEnum.default),form:e.state.form,field:e,props:i,$try:a.$try};if(r.default.has(this.templates,l.FieldPropsEnum.default))return r.default.get(this.templates,t)(s);if(r.default.has(this.rewriters,t)){const s={};return r.default.each(r.default.get(this.rewriters,t),((t,l)=>r.default.merge(s,{[t]:(0,a.$try)(i[l],e[l])}))),s}return r.default.get(this.templates,t)(s)}}},506:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(311)),n=i(593),o=i(215),d=i(93),u=i(561),p=(e,t,i)=>Object.assign(e,{$label:t.$label||i&&i.label||"",$placeholder:t.$placeholder||i&&i.placeholder||"",$disabled:t.$disabled||i&&i.disabled||!1,$rules:t.$rules||i&&i.rules||null,$related:t.$related||i&&i.related||[],$deleted:t.$deleted||i&&i.deleted||!1,$validators:(0,r.toJS)(t.$validators||i&&i.validators||null),$validatedWith:t.$validatedWith||i&&i.validatedWith||u.FieldPropsEnum.value,$bindings:t.$bindings||i&&i.bindings||u.FieldPropsEnum.default,$observers:t.$observers||i&&i.observers||null,$interceptors:t.$interceptors||i&&i.interceptors||null,$extra:t.$extra||i&&i.extra||null,$options:t.$options||i&&i.options||{},$hooks:t.$hooks||i&&i.hooks||{},$handlers:t.$handlers||i&&i.handlers||{},$autoFocus:t.$autoFocus||i&&i.autoFocus||!1,$inputMode:t.$inputMode||i&&i.inputMode||void 0,$ref:t.$ref||i&&i.ref||void 0}),h=(e,t,i,s,{isEmptyArray:r})=>(0,o.parseInput)(e.$input,{nullable:!0,isEmptyArray:r,type:e.type,unified:s?(0,o.defaultValue)({type:e.type,value:e.value}):t&&t.default,separated:i.$default,fallback:e.$initial});class c extends l.default{constructor({key:e,path:t,data:i={},props:s={},update:l=!1,state:o}){super(),Object.defineProperty(this,"hasInitialNestedFields",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"incremental",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"key",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$observers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$interceptors",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$input",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"$output",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"$options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$label",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$placeholder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$initial",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$bindings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$related",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$validatedWith",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$validators",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$rules",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$focused",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$blurred",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$deleted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$autoFocus",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$inputMode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$ref",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showError",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"errorSync",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"errorAsync",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"validationErrorStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"validationFunctionsData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"validationAsyncData",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncedValidation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposeValidationOnBlur",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposeValidationOnChange",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"files",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sync",{enumerable:!0,configurable:!0,writable:!0,value:(0,r.action)(((e,t=null)=>{const i=e=>(0,n.$isBool)(e,this.value)?e.target.checked:e.target.value;if(a.default.isNil(e)||a.default.isNil(e.target))return a.default.isNil(t)||a.default.isNil(t.target)||(t=i(t)),void(this.value=(0,n.$try)(e,t));a.default.isNil(e.target)?this.value=e:this.value=i(e)}))}),Object.defineProperty(this,"onSync",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>"file"===this.type?this.onDrop(...e):this.execHandler(u.FieldPropsEnum.onChange,e,this.sync,u.FieldPropsEnum.onSync)}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:this.onSync}),Object.defineProperty(this,"onToggle",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onToggle,e,this.sync)}),Object.defineProperty(this,"onBlur",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onBlur,e,(0,r.action)((()=>{this.$focused=!1,this.$blurred=!0})))}),Object.defineProperty(this,"onFocus",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onFocus,e,(0,r.action)((()=>{this.$focused=!0,this.$touched=!0})))}),Object.defineProperty(this,"onDrop",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onDrop,e,(0,r.action)((()=>{const t=e[0];let i=null;(0,n.$isEvent)(t)&&(0,n.$hasFiles)(t)&&(i=a.default.map(t.target.files)),this.files=i||e})))}),Object.defineProperty(this,"onKeyDown",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onKeyDown,e)}),Object.defineProperty(this,"onKeyUp",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onKeyUp,e)}),(0,r.makeObservable)(this,{$options:r.observable,$value:r.observable,$type:r.observable,$label:r.observable,$placeholder:r.observable,$default:r.observable,$initial:r.observable,$bindings:r.observable,$extra:r.observable,$related:r.observable,$validatedWith:r.observable,$validators:r.observable,$rules:r.observable,$disabled:r.observable,$focused:r.observable,$blurred:r.observable,$deleted:r.observable,showError:r.observable,errorSync:r.observable,errorAsync:r.observable,validationErrorStack:r.observable,validationFunctionsData:r.observable,validationAsyncData:r.observable,files:r.observable,autoFocus:r.computed,inputMode:r.computed,ref:r.computed,checkValidationErrors:r.computed,checked:r.computed,value:r.computed,initial:r.computed,default:r.computed,actionRunning:r.computed,type:r.computed,label:r.computed,placeholder:r.computed,extra:r.computed,options:r.computed,bindings:r.computed,related:r.computed,disabled:r.computed,rules:r.computed,validators:r.computed,validatedValue:r.computed,error:r.computed,hasError:r.computed,isValid:r.computed,isDefault:r.computed,isDirty:r.computed,isPristine:r.computed,isEmpty:r.computed,blurred:r.computed,touched:r.computed,deleted:r.computed,setupField:r.action,initNestedFields:r.action,invalidate:r.action,setValidationAsyncData:r.action,resetValidation:r.action,clear:r.action,reset:r.action,focus:r.action,blur:r.action,showErrors:r.action,showAsyncErrors:r.action,update:r.action}),this.state=o,this.setupField(e,t,i,s,l),this.checkValidationPlugins(),this.initNestedFields(i,l),this.incremental=this.hasIncrementalKeys,this.debouncedValidation=a.default.debounce(this.validate,this.state.options.get(d.OptionsEnum.validationDebounceWait,this),this.state.options.get(d.OptionsEnum.validationDebounceOptions,this)),this.observeValidationOnBlur(),this.observeValidationOnChange(),this.initMOBXEvent(u.FieldPropsEnum.observers),this.initMOBXEvent(u.FieldPropsEnum.interceptors),this.execHook(u.FieldPropsEnum.onInit),(0,r.autorun)((()=>this.changed&&this.execHook(u.FieldPropsEnum.onChange)))}get checkValidationErrors(){var e;return!1===(null===(e=this.validationAsyncData)||void 0===e?void 0:e.valid)&&!a.default.isEmpty(this.validationAsyncData)||!a.default.isEmpty(this.validationErrorStack)||a.default.isString(this.errorAsync)||a.default.isString(this.errorSync)}get checked(){return"checkbox"===this.type?this.value:void 0}get value(){return this.getComputedProp(u.FieldPropsEnum.value)}set value(e){if(a.default.isString(e)&&this.state.options.get(d.OptionsEnum.autoTrimValue,this)&&(e=e.trim()),this.$value!==e){if(this.state.options.get(d.OptionsEnum.autoParseNumbers,this)&&a.default.isNumber(this.$initial)&&new RegExp("^-?\\d+(,\\d+)*(\\.\\d+([eE]\\d+)?)?$","g").exec(e))return this.$value=a.default.toNumber(e),this.$changed++,void(this.resetting||this.clearing||this.state.form.$changed++);this.$value=e,this.$changed++,this.resetting||this.clearing||this.state.form.$changed++}}get initial(){return this.$initial?(0,r.toJS)(this.$initial):this.getComputedProp(u.FieldPropsEnum.initial)}get default(){return this.$default?(0,r.toJS)(this.$default):this.getComputedProp(u.FieldPropsEnum.default)}set initial(e){this.$initial=(0,o.parseInput)(this.$input,{separated:e})}set default(e){this.$default=(0,o.parseInput)(this.$input,{separated:e})}get actionRunning(){return this.submitting||this.clearing||this.resetting}get extra(){return this.$extra}get ref(){return this.$ref}get autoFocus(){return this.$autoFocus}get inputMode(){return this.$inputMode}get type(){return(0,r.toJS)(this.$type)}get label(){return(0,r.toJS)(this.$label)}get placeholder(){return(0,r.toJS)(this.$placeholder)}get options(){return(0,r.toJS)(this.$options)}get bindings(){return(0,r.toJS)(this.$bindings)}get related(){return(0,r.toJS)(this.$related)}get disabled(){return(0,r.toJS)(this.$disabled)}get rules(){return(0,r.toJS)(this.$rules)}get validators(){return(0,r.toJS)(this.$validators)}get validatedValue(){return(0,o.parseCheckOutput)(this,this.$validatedWith)}get error(){return!1===this.showError?null:this.errorAsync||this.errorSync||null}get hasError(){return this.checkValidationErrors||this.check(u.FieldPropsEnum.hasError,!0)}get isValid(){return!this.checkValidationErrors&&this.check(u.FieldPropsEnum.isValid,!0)}get isDefault(){return!a.default.isNil(this.default)&&a.default.isEqual(this.default,this.value)}get isDirty(){const e=this.changed?this.value:this.initial;return!a.default.isNil(this.initial)&&!a.default.isEqual(this.initial,e)}get isPristine(){const e=this.changed?this.value:this.initial;return!a.default.isNil(this.initial)&&a.default.isEqual(this.initial,e)}get isEmpty(){return this.hasNestedFields?this.check(u.FieldPropsEnum.isEmpty,!0):a.default.isBoolean(this.value)?!!this.$value:!a.default.isNumber(this.value)&&!a.default.isDate(this.value)&&a.default.isEmpty(this.value)}get focused(){return this.hasNestedFields?this.check(u.FieldPropsEnum.focused,!0):this.$focused}get blurred(){return this.hasNestedFields?this.check(u.FieldPropsEnum.blurred,!0):this.$blurred}get touched(){return this.hasNestedFields?this.check(u.FieldPropsEnum.touched,!0):this.$touched}get deleted(){return this.hasNestedFields?this.check(u.FieldPropsEnum.deleted,!0):this.$deleted}setupField(e,t,i,s,r){var l;this.key=e,this.path=t,this.id=null===(l=this.state.options.get(d.OptionsEnum.uniqueId))||void 0===l?void 0:l.apply(this,[this]);const u=this.state.struct(),c=(0,n.pathToStruct)(this.path),f=Array.isArray(u)?!!u.filter((e=>e.startsWith(c))).find((e=>"[]"===e.substring(c.length))):!!Array.isArray(a.default.get(u,this.path)),{$type:b,$input:m,$output:v}=s;if(a.default.isPlainObject(i)){const{type:t,input:l,output:d}=i;return this.name=a.default.toString(i.name||e),this.$type=b||t||"text",this.$input=(0,n.$try)(m,l,this.$input),this.$output=(0,n.$try)(v,d,this.$output),this.$value=(0,o.parseInput)(this.$input,{isEmptyArray:f,type:this.type,unified:i.value,separated:s.$value,fallback:s.$initial}),this.$initial=(0,o.parseInput)(this.$input,{nullable:!0,isEmptyArray:f,type:this.type,unified:i.initial,separated:s.$initial,fallback:this.$value}),this.$default=h(this,i,s,r,{isEmptyArray:f}),void p(this,s,i)}this.name=a.default.toString(e),this.$type=b||"text",this.$input=(0,n.$try)(m,this.$input),this.$output=(0,n.$try)(v,this.$output),this.$value=(0,o.parseInput)(this.$input,{isEmptyArray:f,type:this.type,unified:i,separated:s.$value}),this.$initial=(0,o.parseInput)(this.$input,{nullable:!0,isEmptyArray:f,type:this.type,unified:i,separated:s.$initial,fallback:this.$value}),this.$default=h(this,i,s,r,{isEmptyArray:f}),p(this,s,i)}getComputedProp(e){if(this.incremental||this.hasNestedFields)return e===u.FieldPropsEnum.value?this.get(e,!1):(0,r.untracked)((()=>this.get(e,!1)));const t=this[`$${e}`];return a.default.isArray(t)||(0,r.isObservableArray)(t)?[].slice.call(t):(0,r.toJS)(t)}checkValidationPlugins(){const{drivers:e}=this.state.form.validator,t=this.state.form.name?`${this.state.form.name}/`:"";if(a.default.isNil(e.dvr)&&!a.default.isNil(this.rules))throw new Error(`The DVR validation rules are defined but no DVR plugin provided. Field: "${t+this.path}".`);if(a.default.isNil(e.vjf)&&!a.default.isNil(this.validators))throw new Error(`The VJF validators functions are defined but no VJF plugin provided. Field: "${t+this.path}".`)}initNestedFields(e,t){const i=a.default.isNil(e)?null:e.fields;a.default.isArray(i)&&!a.default.isEmpty(i)&&(this.hasInitialNestedFields=!0),this.initFields({fields:i},t),!t&&a.default.isArray(i)&&a.default.isEmpty(i)&&a.default.isArray(this.value)&&!a.default.isEmpty(this.value)&&(this.hasInitialNestedFields=!0,this.initFields({fields:i,values:this.value},t))}invalidate(e,t=!1){if(!0!==t){if(a.default.isArray(e))return this.validationErrorStack=e,void this.showErrors(!0);this.validationErrorStack.unshift(e),this.showErrors(!0)}else this.errorAsync=e}setValidationAsyncData(e=!1,t=""){this.validationAsyncData={valid:e,message:t}}resetValidation(e=!1){this.showError=!0,this.errorSync=null,this.errorAsync=null,this.validationAsyncData={},this.validationFunctionsData=[],this.validationErrorStack=[],Promise.resolve().then((0,r.action)((()=>{this.$resetting=!1,this.$clearing=!1}))),e&&this.each((e=>e.resetValidation()))}clear(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onClear),this.$clearing=!0,this.$touched=!1,this.$blurred=!1,this.$changed=0,this.files=void 0,this.$value=(0,o.defaultValue)({value:this.$value,type:this.type}),e&&this.each((e=>e.clear(!0))),this.state.options.get(d.OptionsEnum.validateOnClear,this)?this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnClear,this)}):this.resetValidation(e)}reset(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onReset),this.$resetting=!0,this.$touched=!1,this.$blurred=!1,this.$changed=0,this.files=void 0;const i=this.$default!==this.$initial;i&&(this.value=this.$default),i||(this.value=this.$initial),e&&this.each((e=>e.reset(!0))),this.state.options.get(d.OptionsEnum.validateOnReset,this)?this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnReset,this)}):this.resetValidation(e)}focus(){this.ref&&!this.focused&&this.ref.focus(),this.$focused=!0,this.$touched=!0}blur(){this.ref&&this.focused&&this.ref.blur(),this.$focused=!1,this.$blurred=!0}trim(){a.default.isString(this.value)&&(this.$value=this.value.trim())}showErrors(e=!0){this.showError=e,this.errorSync=a.default.head(this.validationErrorStack),this.each((t=>t.showErrors(e)))}showAsyncErrors(){var e,t;!1!==(null===(e=this.validationAsyncData)||void 0===e?void 0:e.valid)?this.errorAsync=null:this.errorAsync=null===(t=this.validationAsyncData)||void 0===t?void 0:t.message}observeValidationOnBlur(){const e=this.state.options;e.get(d.OptionsEnum.validateOnBlur,this)&&(this.disposeValidationOnBlur=(0,r.observe)(this,"$focused",(t=>!1===t.newValue&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnBlur,this)}))))}observeValidationOnChange(){const e=this.state.options;e.get(d.OptionsEnum.validateOnChange,this)?this.disposeValidationOnChange=(0,r.observe)(this,"$value",(()=>!this.actionRunning&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnChange,this)}))):(e.get(d.OptionsEnum.validateOnChangeAfterInitialBlur,this)||e.get(d.OptionsEnum.validateOnChangeAfterSubmit,this))&&(this.disposeValidationOnChange=(0,r.observe)(this,"$value",(()=>!this.actionRunning&&(e.get(d.OptionsEnum.validateOnChangeAfterInitialBlur,this)&&this.blurred||e.get(d.OptionsEnum.validateOnChangeAfterSubmit,this)&&this.state.form.submitted)&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnChange,this)}))))}initMOBXEvent(e){if(!a.default.isArray(this[`$${e}`]))return;let t;e===u.FieldPropsEnum.observers&&(t=this.observe),e===u.FieldPropsEnum.interceptors&&(t=this.intercept),this[`$${e}`].map((e=>t(a.default.omit(e,u.FieldPropsEnum.path))))}bind(e={}){return Object.assign(Object.assign({},this.state.bindings.load(this,this.bindings,e)),{ref:e=>this.$ref=e})}update(e){if(!a.default.isPlainObject(e))throw new Error("The update() method accepts only plain objects.");const t=this.state.options.get(d.OptionsEnum.fallback,this),i=this.state.struct().findIndex((e=>e.startsWith(this.path.replace(/\.\d+\./,"[].")+"[]")));!t&&0===this.fields.size&&i<0?this.value=(0,o.parseInput)(this.$input,{separated:e}):super.update(e)}}t.default=c},338:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(311)),n=s(i(265)),o=s(i(107)),d=s(i(506)),u=i(561),p=i(93);class h extends l.default{constructor(e={},{name:t="",options:i={},plugins:s={},bindings:l={},hooks:d={},handlers:h={}}={}){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"validator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncedValidation",{enumerable:!0,configurable:!0,writable:!0,value:null}),(0,r.makeObservable)(this,{fields:r.observable,validatedValues:r.computed,error:r.computed,hasError:r.computed,isValid:r.computed,isPristine:r.computed,isDirty:r.computed,isDefault:r.computed,isEmpty:r.computed,focused:r.computed,touched:r.computed,disabled:r.computed,invalidate:r.action,clear:r.action,reset:r.action}),this.name=t,this.$hooks=d,this.$handlers=h;const c=a.default.each({setup:e,options:i,plugins:s,bindings:l},((e,t)=>a.default.isFunction(this[t])?a.default.merge(e,this[t].apply(this,[this])):e));this.state=new o.default({form:this,initial:c.setup,options:c.options,bindings:c.bindings}),this.validator=new n.default({form:this,plugins:c.plugins}),this.initFields(c.setup),this.debouncedValidation=a.default.debounce(this.validate,this.state.options.get(p.OptionsEnum.validationDebounceWait),this.state.options.get(p.OptionsEnum.validationDebounceOptions)),this.state.options.get(p.OptionsEnum.validateOnInit)&&this.validator.validate({showErrors:this.state.options.get(p.OptionsEnum.showErrorsOnInit)}),this.execHook(u.FieldPropsEnum.onInit),(0,r.autorun)((()=>this.$changed&&this.execHook(u.FieldPropsEnum.onChange)))}get validatedValues(){const e={};return this.each((t=>e[t.path]=t.validatedValue)),e}get error(){return this.validator.error}get hasError(){return!!this.validator.error||this.check(u.FieldPropsEnum.hasError,!0)}get isValid(){return!this.validator.error&&this.check(u.FieldPropsEnum.isValid,!0)}get isPristine(){return this.check(u.FieldPropsEnum.isPristine,!0)}get isDirty(){return this.check(u.FieldPropsEnum.isDirty,!0)}get isDefault(){return this.check(u.FieldPropsEnum.isDefault,!0)}get isEmpty(){return this.check(u.FieldPropsEnum.isEmpty,!0)}get focused(){return this.check(u.FieldPropsEnum.focused,!0)}get touched(){return this.check(u.FieldPropsEnum.touched,!0)}get disabled(){return this.check(u.FieldPropsEnum.disabled,!0)}makeField(e){return new d.default(e)}invalidate(e=null){this.debouncedValidation.cancel(),this.each((e=>e.debouncedValidation.cancel())),this.validator.error=e||this.state.options.get(p.OptionsEnum.defaultGenericError)||!0}showErrors(e=!0){this.each((t=>t.showErrors(e)))}resetValidation(e){this.validator.error=null,this.each((t=>t.resetValidation(e)))}clear(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onClear),this.$touched=!1,this.$changed=0,this.each((t=>t.clear(e)))}reset(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onReset),this.$touched=!1,this.$changed=0,this.each((t=>t.reset(e)))}}t.default=h},666:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593);t.default=class{constructor(){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:{uniqueId:l.uniqueId,fallback:!0,defaultGenericError:null,submitThrowsError:!0,showErrorsOnInit:!1,showErrorsOnSubmit:!0,showErrorsOnBlur:!0,showErrorsOnChange:!0,showErrorsOnClear:!1,showErrorsOnReset:!0,validateOnInit:!0,validateOnSubmit:!0,validateOnBlur:!0,validateOnChange:!1,validateOnChangeAfterInitialBlur:!1,validateOnChangeAfterSubmit:!1,validateOnClear:!1,validateOnReset:!1,validateDisabledFields:!1,validateDeletedFields:!1,validatePristineFields:!0,strictUpdate:!1,strictDelete:!0,softDelete:!1,retrieveOnlyDirtyFieldsValues:!1,retrieveOnlyEnabledFieldsValues:!1,retrieveOnlyEnabledFieldsErrors:!1,autoTrimValue:!1,autoParseNumbers:!1,removeNullishValuesInArrays:!1,preserveDeletedFieldsValues:!1,validationDebounceWait:250,validationDebounceOptions:{leading:!1,trailing:!0},stopValidationOnError:!1,validationPluginsOrder:void 0,resetValidationBeforeValidate:!0,validateTrimmedValue:!1}}),(0,r.makeObservable)(this,{options:r.observable,set:r.action})}get(e,t=null){return a.default.has(t,"path")&&a.default.has(t.$options,e)?t.$options[e]:e?a.default.get(this.options,e):(0,r.toJS)(this.options)}set(e){r.set?(0,r.set)(this.options,e):(0,r.extendObservable)(this.options,e)}}},107:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(666)),n=s(i(169)),o=i(593),d=i(138),u=i(93);t.default=class{constructor({form:e,initial:t,options:i,bindings:s}){Object.defineProperty(this,"mode",{enumerable:!0,configurable:!0,writable:!0,value:d.RuntimeMode.mixed}),Object.defineProperty(this,"strict",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"form",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bindings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$struct",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:{interceptor:{},observer:{}}}),Object.defineProperty(this,"initial",{enumerable:!0,configurable:!0,writable:!0,value:{props:{},fields:{}}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:{props:{},fields:{}}}),this.set("form",e),this.initProps(t),this.options=new l.default,this.options.set(i),this.bindings=new n.default,this.bindings.register(s),this.observeOptions()}initProps(e={}){const t=a.default.pick(e,[...o.props.separated,...o.props.validation,...o.props.functions,...o.props.handlers]);this.set("initial","props",t);const i=(0,o.hasUnifiedProps)(e),s=(0,o.hasSeparatedProps)(e);if(i&&s&&console.warn("WARNING: Your mobx-react-form instance ",this.form.name," is running in MIXED Mode (Unified + Separated) as fields properties definition.","This mode is experimental, use it at your own risk, or use only one mode."),(s||(0,o.isArrayOfStrings)(e.fields))&&!i){const t=(0,o.$try)(e.struct,e.fields);return this.struct(t),this.strict=!0,void(this.mode=d.RuntimeMode.separated)}this.struct(e.struct),this.mode=d.RuntimeMode.unified}struct(e=null){return e&&(this.$struct=e),this.$struct}get(e,t){return this[e][t]}set(e,t,i=null){"form"===e&&(this.form=t),"initial"===e&&(Object.assign(this.initial[t],i),Object.assign(this.current[t],i)),"current"===e&&Object.assign(this.current[t],i)}extra(e=null){return a.default.isString(e)?a.default.get(this.$extra,e):null===e?this.$extra:(this.$extra=e,null)}observeOptions(){(0,r.observe)(this.options.options,(0,o.checkObserve)([{type:"update",key:u.OptionsEnum.validateOnChange,to:!0,exec:()=>this.form.each((e=>e.observeValidationOnChange()))},{type:"update",key:u.OptionsEnum.validateOnChange,to:!1,exec:()=>this.form.each((e=>e.disposeValidationOnChange()))},{type:"update",key:u.OptionsEnum.validateOnBlur,to:!0,exec:()=>this.form.each((e=>e.observeValidationOnBlur()))},{type:"update",key:u.OptionsEnum.validateOnBlur,to:!1,exec:()=>this.form.each((e=>e.disposeValidationOnBlur()))}]))}}},265:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593),n=i(93);t.default=class{constructor(e={}){Object.defineProperty(this,"promises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"form",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"drivers",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{vjf:void 0,dvr:void 0,svk:void 0,yup:void 0}}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:null}),(0,r.makeObservable)(this,{error:r.observable,validate:r.action,validateField:r.action}),a.default.merge(this.plugins,e.plugins),this.form=e.form,this.initDrivers(),this.checkSVKValidationPlugin()}initDrivers(){a.default.map(this.plugins,((e,t)=>this.drivers[t]=e&&a.default.has(e,"class")&&new e.class({config:e.config,state:this.form.state,promises:this.promises})))}validate(e={},t={}){const i=(0,l.$try)(e.path,e),s=(0,l.$try)(e.field,this.form.select(i,null,null),this.form),n=(0,l.$try)(e.related,t.related,!0),o=(0,l.$try)(e.showErrors,t.showErrors,!1);return s.$validating=!0,s.$validated+=1,this.error=null,new Promise((e=>{(s.path||a.default.isString(i))&&this.validateField({field:s,showErrors:o,related:n,path:i}),s.each((e=>this.validateField({path:e.path,field:e,showErrors:o,related:n}))),e(Promise.all(this.promises))})).then((0,r.action)((()=>{s.$validating=!1,s.$clearing=!1,s.$resetting=!1}))).catch((0,r.action)((e=>{throw s.$validating=!1,s.$clearing=!1,s.$resetting=!1,e}))).then((()=>s))}validateField({showErrors:e=!1,related:t=!1,field:i=null,path:s}){const r=i||this.form.select(s),{options:l}=this.form.state;if(!r.path)throw new Error("Validation Error: Invalid Field Instance");if(r.deleted&&!l.get(n.OptionsEnum.validateDeletedFields,r))return;if(r.disabled&&!l.get(n.OptionsEnum.validateDisabledFields,r))return;if(r.isPristine&&!l.get(n.OptionsEnum.validatePristineFields,r))return;l.get(n.OptionsEnum.resetValidationBeforeValidate,r)&&r.resetValidation(),l.get(n.OptionsEnum.validateTrimmedValue,r)&&r.trim();const o=l.get(n.OptionsEnum.stopValidationOnError,r),d=l.get(n.OptionsEnum.validationPluginsOrder,r),u=d?d.map((e=>this.drivers[e])):this.drivers;a.default.each(u,(e=>{if(e&&e.validate(r),o&&r.hasError)return!1})),r.showErrors(e),t&&this.validateRelatedFields(r,e)}validateRelatedFields(e,t){e.related&&e.related.length&&a.default.each(e.related,(e=>this.validateField({related:!1,showErrors:t,path:e})))}checkSVKValidationPlugin(){if(a.default.isNil(this.drivers.svk)&&a.default.get(this.plugins,"svk.config.schema")){const e=this.state.form.name?`Form: ${this.state.form.name}`:"";throw new Error(`The SVK validation schema is defined but no plugin provided (SVK). ${e}`)}}}},607:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Field=t.Form=void 0;const r=s(i(338));t.Form=r.default;const a=s(i(506));t.Field=a.default,t.default=r.default},561:(e,t)=>{var i,s,r,a;Object.defineProperty(t,"__esModule",{value:!0}),t.SeparatedPropsMode=t.FieldPropsOccurrence=t.AllowedFieldPropsTypes=t.FieldPropsEnum=void 0,(a=t.FieldPropsEnum||(t.FieldPropsEnum={})).key="key",a.id="id",a.path="path",a.name="name",a.fields="fields",a.ref="ref",a.type="type",a.value="value",a.initial="initial",a.default="default",a.checked="checked",a.label="label",a.placeholder="placeholder",a.error="error",a.validatedWith="validatedWith",a.validators="validators",a.rules="rules",a.related="related",a.options="options",a.extra="extra",a.bindings="bindings",a.hooks="hooks",a.handlers="handlers",a.input="input",a.output="output",a.interceptors="interceptors",a.observers="observers",a.disabled="disabled",a.deleted="deleted",a.blurred="blurred",a.validating="validating",a.submitting="submitting",a.clearing="clearing",a.resetting="resetting",a.changed="changed",a.touched="touched",a.focused="focused",a.isEmpty="isEmpty",a.isDefault="isDefault",a.isPristine="isPristine",a.isDirty="isDirty",a.isValid="isValid",a.hasError="hasError",a.onInit="onInit",a.onSync="onSync",a.onChange="onChange",a.onBlur="onBlur",a.onFocus="onFocus",a.onToggle="onToggle",a.onDrop="onDrop",a.onSubmit="onSubmit",a.onReset="onReset",a.onClear="onClear",a.onAdd="onAdd",a.onDel="onDel",a.autoFocus="autoFocus",a.inputMode="inputMode",a.onKeyDown="onKeyDown",a.onKeyUp="onKeyUp",(r=t.AllowedFieldPropsTypes||(t.AllowedFieldPropsTypes={})).computed="computed",r.observable="observable",r.editable="editable",r.all="all",(s=t.FieldPropsOccurrence||(t.FieldPropsOccurrence={})).some="some",s.every="every",(i=t.SeparatedPropsMode||(t.SeparatedPropsMode={})).values="values",i.labels="labels",i.placeholders="placeholders",i.defaults="defaults",i.initials="initials",i.disabled="disabled",i.deleted="deleted",i.types="types",i.related="related",i.rules="rules",i.options="options",i.bindings="bindings",i.extra="extra",i.hooks="hooks",i.handlers="handlers",i.validatedWith="validatedWith",i.validators="validators",i.observers="observers",i.interceptors="interceptors",i.input="input",i.output="output",i.autoFocus="autoFocus",i.inputMode="inputMode",i.refs="refs"},93:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsEnum=void 0,(i=t.OptionsEnum||(t.OptionsEnum={})).uniqueId="uniqueId",i.fallback="fallback",i.defaultGenericError="defaultGenericError",i.submitThrowsError="submitThrowsError",i.showErrorsOnInit="showErrorsOnInit",i.showErrorsOnSubmit="showErrorsOnSubmit",i.showErrorsOnBlur="showErrorsOnBlur",i.showErrorsOnChange="showErrorsOnChange",i.showErrorsOnClear="showErrorsOnClear",i.showErrorsOnReset="showErrorsOnReset",i.validateOnInit="validateOnInit",i.validateOnSubmit="validateOnSubmit",i.validateOnBlur="validateOnBlur",i.validateOnChange="validateOnChange",i.validateOnChangeAfterInitialBlur="validateOnChangeAfterInitialBlur",i.validateOnChangeAfterSubmit="validateOnChangeAfterSubmit",i.validateDisabledFields="validateDisabledFields",i.validateDeletedFields="validateDeletedFields",i.validatePristineFields="validatePristineFields",i.validateTrimmedValue="validateTrimmedValue",i.validateOnClear="validateOnClear",i.validateOnReset="validateOnReset",i.strictUpdate="strictUpdate",i.strictDelete="strictDelete",i.softDelete="softDelete",i.retrieveOnlyDirtyFieldsValues="retrieveOnlyDirtyFieldsValues",i.retrieveOnlyEnabledFieldsValues="retrieveOnlyEnabledFieldsValues",i.retrieveOnlyEnabledFieldsErrors="retrieveOnlyEnabledFieldsErrors",i.removeNullishValuesInArrays="removeNullishValuesInArrays",i.preserveDeletedFieldsValues="preserveDeletedFieldsValues",i.autoTrimValue="autoTrimValue",i.autoParseNumbers="autoParseNumbers",i.validationDebounceWait="validationDebounceWait",i.validationDebounceOptions="validationDebounceOptions",i.stopValidationOnError="stopValidationOnError",i.validationPluginsOrder="validationPluginsOrder",i.resetValidationBeforeValidate="resetValidationBeforeValidate"},138:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.RuntimeMode=void 0,(i=t.RuntimeMode||(t.RuntimeMode={})).mixed="mixed",i.unified="unified",i.separated="separated"},951:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationHooks=void 0,(i=t.ValidationHooks||(t.ValidationHooks={})).onSuccess="onSuccess",i.onError="onError"},215:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.pathToFieldsTree=t.prepareFieldsData=t.handleFieldsArrayOfStrings=t.handleFieldsNested=t.mergeSchemaDefaults=t.parseCheckOutput=t.parseCheckArray=t.parseArrayProp=t.parsePath=t.parseInput=t.defaultValue=void 0;const r=s(i(479)),a=i(561),l=i(593),n=({type:e,value:t,nullable:i=!1,isEmptyArray:s=!1})=>"file"===e||"nullable"===e||"datetime-local"===e||r.default.isDate(t)||"date"===e?null:r.default.isNumber(t)||"number"===e?0:!r.default.isBoolean(t)&&"checkbox"!==e&&(r.default.isString(t)?"":r.default.isArray(t)?[]:i?null:s?[]:"");t.defaultValue=n,t.parsePath=e=>{let t=e;return t=r.default.replace(t,new RegExp("\\[","g"),"."),t=r.default.replace(t,new RegExp("\\]","g"),""),t},t.parseInput=(e,{type:t,isEmptyArray:i,nullable:s,separated:r,unified:a,fallback:o})=>e((0,l.$try)(r,a,o,n({type:t,isEmptyArray:i,nullable:s})));const o=(e,t,i)=>{const s=r.default.values(e),l=t===a.FieldPropsEnum.value||t===a.FieldPropsEnum.initial||t===a.FieldPropsEnum.default;return i&&l?r.default.without(s,null,void 0,""):s};t.parseArrayProp=o,t.parseCheckArray=(e,t,i,s)=>e.hasIncrementalKeys?o(t,i,s):t,t.parseCheckOutput=(e,t)=>{if(t===a.FieldPropsEnum.value||t.startsWith("value.")){const i=e.$output?e.$output(e[a.FieldPropsEnum.value]):e[a.FieldPropsEnum.value];return t.startsWith("value.")?r.default.get(i,t.substring(6)):i}return e[t]};const d=(e,t=!1)=>{let i=e;return(0,l.isArrayOfStrings)(i)&&(i=r.default.transform(i,((e,i)=>{const s=r.default.split(i,".");return s.length?r.default.merge(e,((e,t=!1)=>r.default.reduceRight(e,((i,s)=>{const a={};if(r.default.endsWith(s,"[]")){const e=t?[i]:[];return a[r.default.trimEnd(s,"[]")]=e,a}const l=e[e.indexOf(s)-1],n=r.default.endsWith(l,"[]")&&r.default.last(e)===s;return!t&&n||(a[s]=i),a}),{}))(s,t)):Object.assign(e,{[i]:""})}),{})),i};t.handleFieldsArrayOfStrings=d;const u=(e,t=!0)=>r.default.transform(e,((e,i,s)=>(0,l.allowNested)(i,t)?Object.assign(e,{[s]:{fields:(0,l.isEmptyArray)(i)?[]:u(i)}}):Object.assign(e,{[s]:i})),{});t.handleFieldsNested=u;t.mergeSchemaDefaults=(e,t)=>{if(t){const i=r.default.get(t.plugins,"svk.config.schema");r.default.isEmpty(e)&&i&&i.properties&&r.default.each(i.properties,((t,i)=>{r.default.set(e,i,{value:t.default,label:t.title})}))}return e},t.prepareFieldsData=(e,t=!0,i=!0)=>{let s=r.default.merge(d(e.fields,!1),d(e.struct,!1));return s=(e=>{let t=e;return(0,l.isArrayOfObjects)(t)&&(t=r.default.transform(t,((e,t)=>{if(!(0,l.hasUnifiedProps)({fields:{field:t}})||r.default.has(t,a.FieldPropsEnum.name))return Object.assign(e,{[t.name]:t})}),{})),t})(s),s=((e,t,i)=>{if(!r.default.has(t,"values"))return e;let{values:s}=t;return(0,l.hasUnifiedProps)({fields:t.fields})&&(s=(e=>r.default.transform(e,((e,t,i)=>{return Object.assign(e,{[i]:{value:t,fields:(s=t,r.default.isPlainObject(s)?r.default.map(s,((e,t)=>({value:e,name:t}))):void 0)}});var s}),{}))(s)),r.default.merge(e,r.default.transform(s,((t,s,a)=>{r.default.isArray(e[a])&&(t[a]=s),a in e||isNaN(Number(a))&&!i||(t[a]=s)}),{}))})(s,e,i),s=u(s,t),s},t.pathToFieldsTree=(e,t,i=0,s=!1)=>{const n=(0,l.pathToStruct)(t),o=r.default.filter(e,(e=>r.default.startsWith(e,n))),p=d(o,s),h=r.default.replace(n,new RegExp("\\[]","g"),`[${i}]`),c=u(r.default.get(p,h));return e.length&&e.filter((e=>e.startsWith(t+"[]"))).map((e=>e.substring((t+"[].").length))).filter((e=>e.endsWith("[]"))).map((e=>e.substring(0,e.length-2))).forEach((e=>{var t,i;const s=e.split(".");let r=null===(t=c[0])||void 0===t?void 0:t.fields;for(let e=0;e<s.length&&(r=null===(i=null==r?void 0:r[s[e]])||void 0===i?void 0:i[a.FieldPropsEnum.fields],r);e++);r&&delete r[0]})),c}},529:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.props=void 0;const s=i(561);t.props={editable:[s.FieldPropsEnum.type,s.FieldPropsEnum.value,s.FieldPropsEnum.initial,s.FieldPropsEnum.default,s.FieldPropsEnum.label,s.FieldPropsEnum.placeholder,s.FieldPropsEnum.related,s.FieldPropsEnum.options,s.FieldPropsEnum.extra,s.FieldPropsEnum.bindings,s.FieldPropsEnum.hooks,s.FieldPropsEnum.handlers,s.FieldPropsEnum.error,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled,s.FieldPropsEnum.autoFocus,s.FieldPropsEnum.inputMode,s.FieldPropsEnum.ref],handlers:[s.FieldPropsEnum.onChange,s.FieldPropsEnum.onToggle,s.FieldPropsEnum.onFocus,s.FieldPropsEnum.onBlur,s.FieldPropsEnum.onDrop,s.FieldPropsEnum.onSubmit,s.FieldPropsEnum.onReset,s.FieldPropsEnum.onClear,s.FieldPropsEnum.onAdd,s.FieldPropsEnum.onDel],computed:[s.FieldPropsEnum.hasError,s.FieldPropsEnum.isValid,s.FieldPropsEnum.isDirty,s.FieldPropsEnum.isPristine,s.FieldPropsEnum.isDefault,s.FieldPropsEnum.isEmpty,s.FieldPropsEnum.focused,s.FieldPropsEnum.touched,s.FieldPropsEnum.changed,s.FieldPropsEnum.validating,s.FieldPropsEnum.submitting,s.FieldPropsEnum.resetting,s.FieldPropsEnum.clearing,s.FieldPropsEnum.blurred,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled],separated:[s.SeparatedPropsMode.values,s.SeparatedPropsMode.labels,s.SeparatedPropsMode.placeholders,s.SeparatedPropsMode.defaults,s.SeparatedPropsMode.initials,s.SeparatedPropsMode.disabled,s.SeparatedPropsMode.deleted,s.SeparatedPropsMode.types,s.SeparatedPropsMode.related,s.SeparatedPropsMode.rules,s.SeparatedPropsMode.options,s.SeparatedPropsMode.bindings,s.SeparatedPropsMode.extra,s.SeparatedPropsMode.hooks,s.SeparatedPropsMode.handlers,s.SeparatedPropsMode.validatedWith,s.SeparatedPropsMode.validators,s.SeparatedPropsMode.observers,s.SeparatedPropsMode.interceptors,s.SeparatedPropsMode.input,s.SeparatedPropsMode.output,s.SeparatedPropsMode.autoFocus,s.SeparatedPropsMode.inputMode,s.SeparatedPropsMode.refs],functions:[s.FieldPropsEnum.observers,s.FieldPropsEnum.interceptors,s.FieldPropsEnum.input,s.FieldPropsEnum.output],validation:[s.FieldPropsEnum.rules,s.FieldPropsEnum.validators,s.FieldPropsEnum.validatedWith],occurrences:{isDirty:s.FieldPropsOccurrence.some,isPristine:s.FieldPropsOccurrence.every,isDefault:s.FieldPropsOccurrence.every,isValid:s.FieldPropsOccurrence.every,isEmpty:s.FieldPropsOccurrence.every,hasError:s.FieldPropsOccurrence.some,focused:s.FieldPropsOccurrence.some,blurred:s.FieldPropsOccurrence.some,touched:s.FieldPropsOccurrence.some,deleted:s.FieldPropsOccurrence.every,disabled:s.FieldPropsOccurrence.every,clearing:s.FieldPropsOccurrence.every,resetting:s.FieldPropsOccurrence.every}}},593:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getObservableMapValues=t.getObservableMapKeys=t.$try=t.$isBool=t.$hasFiles=t.$isEvent=t.uniqueId=t.maxKey=t.hasIntKeys=t.parseIntKeys=t.allowNested=t.hasSeparatedProps=t.hasUnifiedProps=t.pathToStruct=t.isArrayOfObjects=t.isEmptyArray=t.isArrayOfStrings=t.throwError=t.allowedProps=t.hasProps=t.checkPropOccurrence=t.checkObserve=t.props=void 0;const r=s(i(479)),a=i(259),l=i(561),n=i(529);Object.defineProperty(t,"props",{enumerable:!0,get:function(){return n.props}}),t.getObservableMapValues=e=>(0,a.values)(e);const o=e=>(0,a.keys)(e);t.getObservableMapKeys=o,t.checkObserve=e=>t=>e.map((e=>({key:t,to:i,type:s,exec:r})=>e.type===s&&e.name===t&&e.newValue===i&&r.apply(e,[e]))(t)),t.checkPropOccurrence=({type:e,data:t})=>{let i;switch(e){case l.FieldPropsOccurrence.some:i=e=>r.default.some(e,Boolean);break;case l.FieldPropsOccurrence.every:i=e=>r.default.every(e,Boolean);break;default:throw new Error("Occurrence not found for specified prop")}return i(t)};const d=(e,t)=>{let i;switch(e){case l.AllowedFieldPropsTypes.computed:i=n.props.computed;break;case l.AllowedFieldPropsTypes.observable:i=[l.FieldPropsEnum.fields,...n.props.computed,...n.props.editable];break;case l.AllowedFieldPropsTypes.editable:i=[...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers];break;case l.AllowedFieldPropsTypes.all:i=[l.FieldPropsEnum.id,l.FieldPropsEnum.key,l.FieldPropsEnum.name,l.FieldPropsEnum.path,...n.props.computed,...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers];break;default:i=null}return r.default.intersection(t,i).length>0};t.hasProps=d,t.allowedProps=(e,t)=>{if(!d(e,t))throw new Error(`The selected property is not allowed (${JSON.stringify(t)})`)},t.throwError=(e,t,i=null)=>{if(!r.default.isNil(t))return;const s=r.default.isNil(i)?"The selected field is not defined":i;throw new Error(`${s} (${e})`)},t.pathToStruct=e=>{let t;return t=r.default.replace(e,new RegExp("[.]\\d+($|.)","g"),"[]."),t=r.default.replace(t,"..","."),t=r.default.trim(t,"."),t};const u=(e,t)=>r.default.some(t,r.default.partial(r.default.has,e));t.isEmptyArray=e=>r.default.isEmpty(e)&&r.default.isArray(e);const p=e=>r.default.isArray(e)&&r.default.every(e,r.default.isString);t.isArrayOfStrings=p,t.isArrayOfObjects=e=>r.default.isArray(e)&&r.default.every(e,r.default.isPlainObject),t.hasUnifiedProps=({fields:e})=>!p({fields:e})&&d(l.AllowedFieldPropsTypes.editable,(e=>r.default.union(...r.default.map(r.default.values(e),(e=>r.default.keys(e)))))(e)),t.hasSeparatedProps=e=>u(e,n.props.separated)||u(e,n.props.validation),t.allowNested=(e,t)=>r.default.isObject(e)&&!r.default.isDate(e)&&!r.default.has(e,l.FieldPropsEnum.fields)&&(!u(e,[...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers])||t);const h=e=>r.default.map(o(e),r.default.ary(r.default.toNumber,1));t.parseIntKeys=h,t.hasIntKeys=e=>r.default.every(h(e),r.default.isInteger),t.maxKey=e=>{const t=r.default.max(h(e));return r.default.isUndefined(t)?0:t+1},t.uniqueId=e=>r.default.uniqueId([r.default.replace(e.path,new RegExp("\\.","g"),"-"),"--"].join("")),t.$isEvent=e=>!r.default.isNil(e)&&"undefined"!=typeof Event&&(e instanceof Event||!r.default.isNil(e.target)),t.$hasFiles=e=>e.target.files&&0!==e.target.files.length,t.$isBool=(e,t)=>r.default.isBoolean(t)&&r.default.isBoolean(e.target.checked),t.$try=(...e)=>{let t=null;return e.map((e=>null===t&&!r.default.isUndefined(e)&&(t=e))),t}},479:t=>{t.exports=e},259:e=>{e.exports=t}},s={};return function e(t){var r=s[t];if(void 0!==r)return r.exports;var a=s[t]={exports:{}};return i[t].call(a.exports,a,a.exports,e),a.exports}(607)})()));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("_"),require("mobx")):"function"==typeof define&&define.amd?define(["_","mobx"],t):"object"==typeof exports?exports.MobxReactForm=t(require("_"),require("mobx")):e.MobxReactForm=t(e._,e.mobx)}(self,((e,t)=>(()=>{"use strict";var i={311:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593),n=i(215),o=i(561),d=i(93),u=i(951);t.default=class{constructor(){Object.defineProperty(this,"noop",{enumerable:!0,configurable:!0,writable:!0,value:()=>{}}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:r.observable.map({})}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$submitted",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$submitting",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$validated",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$validating",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$clearing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$resetting",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$touched",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$changed",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"$hooks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"$handlers",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"execHook",{enumerable:!0,configurable:!0,writable:!0,value:(e,t={})=>(0,l.$try)(t[e],this.$hooks[e],this.hooks&&this.hooks.apply(this,[this])[e],this.noop).apply(this,[this])}),Object.defineProperty(this,"execHandler",{enumerable:!0,configurable:!0,writable:!0,value:(e,t,i=null,s=null)=>[(0,l.$try)(this.$handlers[e]&&this.$handlers[e].apply(this,[this]),this.handlers&&this.handlers.apply(this,[this])[e]&&this.handlers.apply(this,[this])[e].apply(this,[this]),i,this.noop).apply(this,[...t]),this.execHook(s||e)]}),Object.defineProperty(this,"intercept",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.MOBXEvent(a.default.isFunction(e)?{type:"interceptor",call:e}:Object.assign({type:"interceptor"},e))}),Object.defineProperty(this,"observe",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.MOBXEvent(a.default.isFunction(e)?{type:"observer",call:e}:Object.assign({type:"observer"},e))}),Object.defineProperty(this,"onClear",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onClear,e,(e=>{e.preventDefault(),this.clear(!0,!1)}))}),Object.defineProperty(this,"onReset",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onReset,e,(e=>{e.preventDefault(),this.reset(!0,!1)}))}),Object.defineProperty(this,"onSubmit",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onSubmit,e,((e,t={})=>{e.preventDefault(),this.submit(t,!1)}))}),Object.defineProperty(this,"onAdd",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onAdd,e,((e,t)=>{e.preventDefault(),this.add((0,l.$isEvent)(t)?null:t,!1)}))}),Object.defineProperty(this,"onDel",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(o.FieldPropsEnum.onDel,e,((e,t)=>{e.preventDefault(),this.del((0,l.$isEvent)(t)?this.path:t,!1)}))}),(0,r.makeObservable)(this,{$submitted:r.observable,$submitting:r.observable,$validated:r.observable,$validating:r.observable,$clearing:r.observable,$resetting:r.observable,$touched:r.observable,$changed:r.observable,changed:r.computed,submitted:r.computed,submitting:r.computed,validated:r.computed,validating:r.computed,clearing:r.computed,resetting:r.computed,hasIncrementalKeys:r.computed,hasNestedFields:r.computed,size:r.computed,initField:r.action,submit:r.action,deepUpdate:r.action,set:r.action,add:r.action,del:r.action})}get resetting(){return this.hasNestedFields?this.check(o.FieldPropsEnum.resetting,!0):this.$resetting}get clearing(){return this.hasNestedFields?this.check(o.FieldPropsEnum.clearing,!0):this.$clearing}get submitted(){return(0,r.toJS)(this.$submitted)}get submitting(){return(0,r.toJS)(this.$submitting)}get validated(){return(0,r.toJS)(this.$validated)}get validating(){return(0,r.toJS)(this.$validating)}get hasIncrementalKeys(){return!!this.fields.size&&(0,l.hasIntKeys)(this.fields)}get hasNestedFields(){return 0!==this.fields.size}get size(){return this.fields.size}get changed(){return!a.default.isNil(this.path)&&this.hasNestedFields?this.reduce(((e,t)=>e+t.changed),0)+this.$changed:this.$changed}initFields(e,t=!1){const i=this.state.options.get(d.OptionsEnum.fallback),s=e=>a.default.trimStart([this.path,e].join("."),".");let r;r=(0,n.prepareFieldsData)(e,this.state.strict,i),r=(0,n.mergeSchemaDefaults)(r,this.validator),a.default.forIn(r,((e,r)=>{const n=s(r),o=this.select(n,null,!1);if(a.default.isNil(o))if(i)this.initField(r,n,e,t);else{const i=(0,l.pathToStruct)(n);this.state.struct().filter((e=>e.startsWith(i))).find((e=>"."===e.charAt(i.length)||"[]"===e.substring(i.length,i.length+2)||e===i))&&this.initField(r,n,e,t)}}))}initField(e,t,i,s=!1){const r=this.state.get("current","props"),n=(0,l.pathToStruct)(t),d=e=>{const t=a.default.get(r[e],n);if(e!==o.FieldPropsEnum.input&&e!==o.FieldPropsEnum.output||"function"==typeof t)return t},u={$value:a.default.get(r[o.SeparatedPropsMode.values],t),$label:d(o.SeparatedPropsMode.labels),$placeholder:d(o.SeparatedPropsMode.placeholders),$default:d(o.SeparatedPropsMode.defaults),$initial:d(o.SeparatedPropsMode.initials),$disabled:d(o.SeparatedPropsMode.disabled),$deleted:d(o.SeparatedPropsMode.deleted),$type:d(o.SeparatedPropsMode.types),$related:d(o.SeparatedPropsMode.related),$rules:d(o.SeparatedPropsMode.rules),$options:d(o.SeparatedPropsMode.options),$bindings:d(o.SeparatedPropsMode.bindings),$extra:d(o.SeparatedPropsMode.extra),$hooks:d(o.SeparatedPropsMode.hooks),$handlers:d(o.SeparatedPropsMode.handlers),$validatedWith:d(o.SeparatedPropsMode.validatedWith),$validators:d(o.SeparatedPropsMode.validators),$observers:d(o.SeparatedPropsMode.observers),$interceptors:d(o.SeparatedPropsMode.interceptors),$input:d(o.SeparatedPropsMode.input),$output:d(o.SeparatedPropsMode.output),$autoFocus:d(o.SeparatedPropsMode.autoFocus),$ref:d(o.SeparatedPropsMode.refs)},p=this.state.form.makeField({key:e,path:t,data:i,props:u,update:s,state:this.state});return this.fields.merge({[e]:p}),p}validate(e={},t={}){const i=a.default.merge(e,{path:this.path});return this.state.form.validator.validate(i,t)}submit(e={},t=!0){if(t&&this.execHook(o.FieldPropsEnum.onSubmit,e),this.$submitting=!0,this.$submitted+=1,!this.state.options.get(d.OptionsEnum.validateOnSubmit,this))return Promise.resolve(this).then((0,r.action)((()=>this.$submitting=!1))).then((()=>this));const i=t=>t?this.execHook(u.ValidationHooks.onSuccess,e):this.execHook(u.ValidationHooks.onError,e);return this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnSubmit,this)}).then((({isValid:e})=>{const t=i(e);if(e)return t;const s=this.state.options.get(d.OptionsEnum.defaultGenericError,this);return this.state.options.get(d.OptionsEnum.submitThrowsError,this)&&s&&this.invalidate(),t})).then((0,r.action)((()=>this.$submitting=!1))).catch((0,r.action)((e=>{throw this.$submitting=!1,e}))).then((()=>this))}check(e,t=!1){return(0,l.allowedProps)(o.AllowedFieldPropsTypes.computed,[e]),t?(0,l.checkPropOccurrence)({type:l.props.occurrences[e],data:this.deepCheck(l.props.occurrences[e],e,this.fields)}):this[e]}deepCheck(e,t,i){const s=(0,l.getObservableMapValues)(i);return a.default.transform(s,((i,s)=>(s.fields.size&&a.default.isArray(s.initial)||i.push(s[t]),i.push((0,l.checkPropOccurrence)({data:this.deepCheck(e,t,s.fields),type:e})),i)),[])}update(e){if(!a.default.isPlainObject(e))throw new Error("The update() method accepts only plain objects.");this.deepUpdate((0,n.prepareFieldsData)({fields:e},this.state.strict),void 0,void 0,e)}deepUpdate(e,t="",i=!0,s){a.default.each(e,((e,r)=>{var u;const p=a.default.has(e,o.FieldPropsEnum.name)?e.name:r,h=a.default.trimStart(`${t}.${p}`,"."),c=this.select(h,null,!1),f=this.select(t,null,!1)||this.state.form.select(this.path,null,!1);if(!a.default.isNil(c)&&!a.default.isUndefined(e)){if(a.default.isArray(c.values())){const t=null!==(u=a.default.max(a.default.map(e.fields,((e,t)=>Number(t)))))&&void 0!==u?u:-1;a.default.each((0,l.getObservableMapValues)(c.fields),(e=>{Number(e.name)>t&&(c.$changed++,c.state.form.$changed++,c.fields.delete(e.name))}))}if(null==e?void 0:e.fields){const e=this.state.options.get(d.OptionsEnum.fallback),t=this.state.struct().findIndex((e=>e.startsWith(c.path.replace(/\.\d+\./,"[].")+"[]")));if(!e&&0===c.fields.size&&t<0)return void(c.value=(0,n.parseInput)(c.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:a.default.get(s,h)}))}if(a.default.isNull(e)||a.default.isNil(e.fields))return void(c.value=(0,n.parseInput)(c.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:e}))}if(!a.default.isNil(f)&&a.default.isNil(c)){const t=a.default.trimStart([this.path,h].join("."),".");f.$changed++,f.state.form.$changed++,f.initField(p,t,e,!0)}else if(i)if(a.default.has(e,o.FieldPropsEnum.fields)&&!a.default.isNil(e.fields))this.deepUpdate(e.fields,h);else{const e=(0,n.pathToFieldsTree)(this.state.struct(),h);this.deepUpdate(e,h,!1)}}))}get(e=null,t=!0){if(a.default.isNil(e))return this.deepGet([...l.props.computed,...l.props.editable,...l.props.validation],this.fields,t);if((0,l.allowedProps)(o.AllowedFieldPropsTypes.all,a.default.isArray(e)?e:[e]),a.default.isString(e)){if(0===this.fields.size){const i=this.state.options.get(d.OptionsEnum.retrieveNullifiedEmptyStrings,this);return(0,n.parseCheckOutput)(this,e,!!t&&i)}const i=this.deepGet(e,this.fields,t),s=this.state.options.get(d.OptionsEnum.removeNullishValuesInArrays,this);return(0,n.parseCheckArray)(this,i,e,!!t&&s)}return this.deepGet(e,this.fields,t)}deepGet(e,t,i=!0){return a.default.transform((0,l.getObservableMapValues)(t),((t,s)=>{if(Object.assign(t,{[s.key]:{fields:(t=>0!==t.size?this.deepGet(e,t,i):void 0)(s.fields)}}),a.default.isString(e)){const r=this.state.options,a=r.get(d.OptionsEnum.retrieveOnlyDirtyFieldsValues,this)&&e===o.FieldPropsEnum.value&&s.isPristine||r.get(d.OptionsEnum.retrieveOnlyEnabledFieldsValues,this)&&e===o.FieldPropsEnum.value&&s.disabled||r.get(d.OptionsEnum.retrieveOnlyEnabledFieldsErrors,this)&&e===o.FieldPropsEnum.error&&s.disabled&&s.isValid&&(!s.error||!s.hasError)||r.get(d.OptionsEnum.softDelete,this)&&e===o.FieldPropsEnum.value&&s.deleted;if(0===s.fields.size){if(delete t[s.key],a)return t;const r=this.state.options.get(d.OptionsEnum.retrieveNullifiedEmptyStrings,this);return Object.assign(t,{[s.key]:(0,n.parseCheckOutput)(s,e,!!i&&r)})}let l=this.deepGet(e,s.fields,i);if(e===o.FieldPropsEnum.value&&(l=s.$output(l)),delete t[s.key],a)return t;const u=this.state.options.get(d.OptionsEnum.removeNullishValuesInArrays,this);return Object.assign(t,{[s.key]:(0,n.parseCheckArray)(s,l,e,!!i&&u)})}return a.default.each(e,(e=>Object.assign(t[s.key],{[e]:s[e]}))),t}),{})}set(e,t){if(a.default.isString(e)&&!a.default.isUndefined(t))return(0,l.allowedProps)(o.AllowedFieldPropsTypes.editable,[e]),(a.default.isObject(t)&&e===o.FieldPropsEnum.value||a.default.isPlainObject(t))&&this.hasNestedFields?this.deepSet(e,t,"",!0):void([o.FieldPropsEnum.value,o.FieldPropsEnum.initial,o.FieldPropsEnum.default].includes(e)?this[e]=(0,n.parseInput)(this.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:t}):a.default.set(this,`$${e}`,t));a.default.isNil(t)&&(this.hasNestedFields?this.deepSet(o.FieldPropsEnum.value,e,"",!0):this.set(o.FieldPropsEnum.value,e))}deepSet(e,t,i="",s=!1){const r=this.state.options.get(d.OptionsEnum.strictUpdate,this);a.default.isNil(t)?this.each((e=>e.$value=(0,n.defaultValue)({fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),value:e.$value,type:e.type}))):a.default.each(t,((t,n)=>{const o=a.default.trimStart(`${i}.${n}`,"."),d=this.select(o,null,r);r&&(0,l.throwError)(o,d,"You are updating a not existent field:"),a.default.isUndefined(d)||(a.default.isUndefined(t)||d.set(e,t,s),d.fields.size&&a.default.isObject(t)&&this.deepSet(e,t,o,s))}))}add(e,t=!0){if((0,l.isArrayOfObjects)(e))return a.default.each(e,(e=>this.update({[(0,l.maxKey)(this.fields)]:e}))),this.$changed++,this.state.form.$changed++,void(t&&this.execHook(o.FieldPropsEnum.onAdd));let i;a.default.has(e,o.FieldPropsEnum.key)&&(i=e.key),a.default.has(e,o.FieldPropsEnum.name)&&(i=e.name),i||(i=(0,l.maxKey)(this.fields));const s=(0,n.pathToFieldsTree)(this.state.struct(),this.path,0,!0),r=this.initField(i,(e=>a.default.trimStart([this.path,e].join("."),"."))(i),a.default.merge(s[0],e));if(!a.default.has(e,o.FieldPropsEnum.value)&&!this.state.options.get(d.OptionsEnum.preserveDeletedFieldsValues,this)){const e=this.state.options.get(d.OptionsEnum.fallbackValue,this);r.$value=(0,n.defaultValue)({fallbackValueOption:e,value:r.$value,type:r.type}),r.each((t=>t.$value=(0,n.defaultValue)({fallbackValueOption:e,value:t.$value,type:t.type})))}return this.$changed++,this.state.form.$changed++,t&&this.execHook(o.FieldPropsEnum.onAdd),r}del(e=null,t=!0){const i=this.state.options.get(d.OptionsEnum.strictDelete,this),s=(0,n.parsePath)(null!=e?e:this.path),r=a.default.trim([this.path,s].join("."),"."),u=this.container(e),p=a.default.split(s,"."),h=a.default.last(p);if(i&&!u.fields.has(h)){const e=`Key "${h}" not found when trying to delete field`;(0,l.throwError)(r,null,e)}return u.$changed++,u.state.form.$changed++,this.state.options.get(d.OptionsEnum.softDelete,this)?this.select(r).set(o.FieldPropsEnum.deleted,!0):(u.each((e=>e.debouncedValidation.cancel())),t&&this.execHook(o.FieldPropsEnum.onDel),u.fields.delete(h))}MOBXEvent({prop:e=o.FieldPropsEnum.value,key:t=null,path:i=null,call:s,type:n}){let d=t||e;(0,l.allowedProps)(o.AllowedFieldPropsTypes.observable,[d]);const u=this.select(i||this.path,null,null)||this,p=e=>s.apply(null,[{change:e,form:this.state.form,path:u.path||null,field:u.path?u:null}]);let h,c;"observer"===n&&(h=r.observe,c=e=>(0,r.observe)(u.fields,e)),"interceptor"===n&&(d=`$${e}`,h=r.intercept,c=u.fields.intercept);const f=u.path?`${d}@${u.path}`:d;a.default.merge(this.state.disposers[n],{[f]:d===o.FieldPropsEnum.fields?c.apply((e=>p(e))):h(u,d,(e=>p(e)))})}dispose(e=null){return this.path&&e?this.disposeSingle(e):this.disposeAll()}disposeAll(){const e=e=>e.apply();return a.default.each(this.state.disposers.interceptor,e),a.default.each(this.state.disposers.observer,e),this.state.disposers={interceptor:{},observer:{}},null}disposeSingle({type:e,key:t=o.FieldPropsEnum.value,path:i=null}){const s=(0,n.parsePath)(null!=i?i:this.path);"interceptor"===e&&(t=`$${t}`),this.state.disposers[e][`${t}@${s}`].apply(),delete this.state.disposers[e][`${t}@${s}`]}select(e,t=null,i=!0){const s=(0,n.parsePath)(e),r=a.default.split(s,"."),o=a.default.head(r);r.shift();let d=a.default.isNil(t)?this.fields.get(o):t.get(o),u=!1;return a.default.each(r,(e=>{u||(a.default.isNil(d)?(d=void 0,u=!0):d=d.fields.get(e))})),i&&(0,l.throwError)(e,d),d}container(e){const t=(0,n.parsePath)(null!=e?e:this.path),i=a.default.trim(t.replace(new RegExp("[^./]+$"),""),".");return this.path&&a.default.isNil(e)?""!==i?this.state.form.select(i,null,!1):this.state.form:""!==i?this.select(i,null,!1):this}has(e){return this.fields.has(e)}map(e){return(0,l.getObservableMapValues)(this.fields).map(e)}each(e,t=null,i=0){const s=t||this.fields;a.default.each((0,l.getObservableMapValues)(s),((t,s)=>{e(t,s,i),0!==t.fields.size&&this.each(e,t.fields,i+1)}))}reduce(e,t){return a.default.reduce((0,l.getObservableMapValues)(this.fields),e,t)}$(e){return this.select(e)}values(){return this.get(o.FieldPropsEnum.value)}errors(){return this.get(o.FieldPropsEnum.error)}labels(){return this.get(o.FieldPropsEnum.label)}placeholders(){return this.get(o.FieldPropsEnum.placeholder)}defaults(){return this.get(o.FieldPropsEnum.placeholder)}initials(){return this.get(o.FieldPropsEnum.initial)}types(){return this.get(o.FieldPropsEnum.type)}}},169:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=s(i(479)),a=i(593),l=i(561);t.default=class{constructor(){Object.defineProperty(this,"templates",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"rewriters",{enumerable:!0,configurable:!0,writable:!0,value:{default:{id:l.FieldPropsEnum.id,name:l.FieldPropsEnum.name,type:l.FieldPropsEnum.type,value:l.FieldPropsEnum.value,checked:l.FieldPropsEnum.checked,label:l.FieldPropsEnum.label,placeholder:l.FieldPropsEnum.placeholder,disabled:l.FieldPropsEnum.disabled,onChange:l.FieldPropsEnum.onChange,onBlur:l.FieldPropsEnum.onBlur,onFocus:l.FieldPropsEnum.onFocus,autoFocus:l.FieldPropsEnum.autoFocus,inputMode:l.FieldPropsEnum.inputMode,onKeyUp:l.FieldPropsEnum.onKeyUp,onKeyDown:l.FieldPropsEnum.onKeyDown}}})}register(e){return r.default.each(e,((e,t)=>{r.default.isFunction(e)&&r.default.merge(this.templates,{[t]:e}),r.default.isPlainObject(e)&&r.default.merge(this.rewriters,{[t]:e})})),this}load(e,t=l.FieldPropsEnum.default,i){const s={keys:r.default.get(this.rewriters,l.FieldPropsEnum.default),form:e.state.form,field:e,props:i,$try:a.$try};if(r.default.has(this.templates,l.FieldPropsEnum.default))return r.default.get(this.templates,t)(s);if(r.default.has(this.rewriters,t)){const s={};return r.default.each(r.default.get(this.rewriters,t),((t,l)=>r.default.merge(s,{[t]:(0,a.$try)(i[l],e[l])}))),s}return r.default.get(this.templates,t)(s)}}},506:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(311)),n=i(593),o=i(215),d=i(93),u=i(561),p=(e,t,i)=>Object.assign(e,{$label:t.$label||i&&i.label||"",$placeholder:t.$placeholder||i&&i.placeholder||"",$disabled:t.$disabled||i&&i.disabled||!1,$rules:t.$rules||i&&i.rules||null,$related:t.$related||i&&i.related||[],$deleted:t.$deleted||i&&i.deleted||!1,$validators:(0,r.toJS)(t.$validators||i&&i.validators||null),$validatedWith:t.$validatedWith||i&&i.validatedWith||u.FieldPropsEnum.value,$bindings:t.$bindings||i&&i.bindings||u.FieldPropsEnum.default,$observers:t.$observers||i&&i.observers||null,$interceptors:t.$interceptors||i&&i.interceptors||null,$extra:t.$extra||i&&i.extra||null,$options:t.$options||i&&i.options||{},$hooks:t.$hooks||i&&i.hooks||{},$handlers:t.$handlers||i&&i.handlers||{},$autoFocus:t.$autoFocus||i&&i.autoFocus||!1,$inputMode:t.$inputMode||i&&i.inputMode||void 0,$ref:t.$ref||i&&i.ref||void 0}),h=(e,t,i,s,{isEmptyArray:r,fallbackValueOption:a})=>(0,o.parseInput)(e.$input,{defaultValue:o.defaultValue,nullable:!0,isEmptyArray:r,type:e.type,unified:s?(0,o.defaultValue)({fallbackValueOption:a,type:e.type,value:e.value}):t&&t.default,separated:i.$default,fallback:e.$initial});class c extends l.default{constructor({key:e,path:t,data:i={},props:s={},update:l=!1,state:o}){super(),Object.defineProperty(this,"hasInitialNestedFields",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"incremental",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"key",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$observers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$interceptors",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$input",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"$output",{enumerable:!0,configurable:!0,writable:!0,value:e=>e}),Object.defineProperty(this,"$options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$label",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$placeholder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$initial",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$bindings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$related",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$validatedWith",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$validators",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$rules",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$focused",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$blurred",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$deleted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$autoFocus",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$inputMode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$ref",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showError",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"errorSync",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"errorAsync",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"validationErrorStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"validationFunctionsData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"validationAsyncData",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncedValidation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposeValidationOnBlur",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposeValidationOnChange",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"files",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sync",{enumerable:!0,configurable:!0,writable:!0,value:(0,r.action)(((e,t=null)=>{const i=e=>(0,n.$isBool)(e,this.value)?e.target.checked:e.target.value;if(a.default.isNil(e)||a.default.isNil(e.target))return a.default.isNil(t)||a.default.isNil(t.target)||(t=i(t)),void(this.value=(0,n.$try)(e,t));a.default.isNil(e.target)?this.value=e:this.value=i(e)}))}),Object.defineProperty(this,"onSync",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>"file"===this.type?this.onDrop(...e):this.execHandler(u.FieldPropsEnum.onChange,e,this.sync,u.FieldPropsEnum.onSync)}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:this.onSync}),Object.defineProperty(this,"onToggle",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onToggle,e,this.sync)}),Object.defineProperty(this,"onBlur",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onBlur,e,(0,r.action)((()=>{this.$focused=!1,this.$blurred=!0})))}),Object.defineProperty(this,"onFocus",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onFocus,e,(0,r.action)((()=>{this.$focused=!0,this.$touched=!0})))}),Object.defineProperty(this,"onDrop",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onDrop,e,(0,r.action)((()=>{const t=e[0];let i=null;(0,n.$isEvent)(t)&&(0,n.$hasFiles)(t)&&(i=a.default.map(t.target.files)),this.files=i||e})))}),Object.defineProperty(this,"onKeyDown",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onKeyDown,e)}),Object.defineProperty(this,"onKeyUp",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>this.execHandler(u.FieldPropsEnum.onKeyUp,e)}),(0,r.makeObservable)(this,{$options:r.observable,$value:r.observable,$type:r.observable,$label:r.observable,$placeholder:r.observable,$default:r.observable,$initial:r.observable,$bindings:r.observable,$extra:r.observable,$related:r.observable,$validatedWith:r.observable,$validators:r.observable,$rules:r.observable,$disabled:r.observable,$focused:r.observable,$blurred:r.observable,$deleted:r.observable,showError:r.observable,errorSync:r.observable,errorAsync:r.observable,validationErrorStack:r.observable,validationFunctionsData:r.observable,validationAsyncData:r.observable,files:r.observable,autoFocus:r.computed,inputMode:r.computed,ref:r.computed,checkValidationErrors:r.computed,checked:r.computed,value:r.computed,initial:r.computed,default:r.computed,actionRunning:r.computed,type:r.computed,label:r.computed,placeholder:r.computed,extra:r.computed,options:r.computed,bindings:r.computed,related:r.computed,disabled:r.computed,rules:r.computed,validators:r.computed,validatedValue:r.computed,error:r.computed,hasError:r.computed,isValid:r.computed,isDefault:r.computed,isDirty:r.computed,isPristine:r.computed,isEmpty:r.computed,blurred:r.computed,touched:r.computed,deleted:r.computed,setupField:r.action,initNestedFields:r.action,invalidate:r.action,setValidationAsyncData:r.action,resetValidation:r.action,clear:r.action,reset:r.action,focus:r.action,blur:r.action,showErrors:r.action,showAsyncErrors:r.action,update:r.action}),this.state=o,this.setupField(e,t,i,s,l),this.checkValidationPlugins(),this.initNestedFields(i,l),this.incremental=this.hasIncrementalKeys,this.debouncedValidation=a.default.debounce(this.validate,this.state.options.get(d.OptionsEnum.validationDebounceWait,this),this.state.options.get(d.OptionsEnum.validationDebounceOptions,this)),this.observeValidationOnBlur(),this.observeValidationOnChange(),this.initMOBXEvent(u.FieldPropsEnum.observers),this.initMOBXEvent(u.FieldPropsEnum.interceptors),this.execHook(u.FieldPropsEnum.onInit),(0,r.autorun)((()=>this.changed&&this.execHook(u.FieldPropsEnum.onChange)))}get checkValidationErrors(){var e;return!1===(null===(e=this.validationAsyncData)||void 0===e?void 0:e.valid)&&!a.default.isEmpty(this.validationAsyncData)||!a.default.isEmpty(this.validationErrorStack)||a.default.isString(this.errorAsync)||a.default.isString(this.errorSync)}get checked(){return"checkbox"===this.type?this.value:void 0}get value(){return this.getComputedProp(u.FieldPropsEnum.value)}set value(e){if(a.default.isString(e)&&this.state.options.get(d.OptionsEnum.autoTrimValue,this)&&(e=e.trim()),this.$value!==e){if(this.state.options.get(d.OptionsEnum.autoParseNumbers,this)&&a.default.isNumber(this.$initial)&&new RegExp("^-?\\d+(,\\d+)*(\\.\\d+([eE]\\d+)?)?$","g").exec(e))return this.$value=a.default.toNumber(e),this.$changed++,void(this.resetting||this.clearing||this.state.form.$changed++);this.$value=e,this.$changed++,this.actionRunning||this.state.form.$changed++}}get initial(){return this.$initial?(0,r.toJS)(this.$initial):this.getComputedProp(u.FieldPropsEnum.initial)}get default(){return this.$default?(0,r.toJS)(this.$default):this.getComputedProp(u.FieldPropsEnum.default)}set initial(e){this.$initial=(0,o.parseInput)(this.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:e})}set default(e){this.$default=(0,o.parseInput)(this.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:e})}get actionRunning(){return this.submitting||this.clearing||this.resetting}get extra(){return this.$extra}get ref(){return this.$ref}get autoFocus(){return this.$autoFocus}get inputMode(){return this.$inputMode}get type(){return(0,r.toJS)(this.$type)}get label(){return(0,r.toJS)(this.$label)}get placeholder(){return(0,r.toJS)(this.$placeholder)}get options(){return(0,r.toJS)(this.$options)}get bindings(){return(0,r.toJS)(this.$bindings)}get related(){return(0,r.toJS)(this.$related)}get disabled(){return(0,r.toJS)(this.$disabled)}get rules(){return(0,r.toJS)(this.$rules)}get validators(){return(0,r.toJS)(this.$validators)}get validatedValue(){return(0,o.parseCheckOutput)(this,this.$validatedWith)}get error(){return!1===this.showError?null:this.errorAsync||this.errorSync||null}get hasError(){return this.checkValidationErrors||this.check(u.FieldPropsEnum.hasError,!0)}get isValid(){return!this.checkValidationErrors&&this.check(u.FieldPropsEnum.isValid,!0)}get isDefault(){return!a.default.isNil(this.default)&&a.default.isEqual(this.default,this.value)}get isDirty(){const e=this.changed?this.value:this.initial;return!a.default.isNil(this.initial)&&!a.default.isEqual(this.initial,e)}get isPristine(){const e=this.changed?this.value:this.initial;return!a.default.isNil(this.initial)&&a.default.isEqual(this.initial,e)}get isEmpty(){return this.hasNestedFields?this.check(u.FieldPropsEnum.isEmpty,!0):a.default.isBoolean(this.value)?!!this.$value:!a.default.isNumber(this.value)&&!a.default.isDate(this.value)&&a.default.isEmpty(this.value)}get focused(){return this.hasNestedFields?this.check(u.FieldPropsEnum.focused,!0):this.$focused}get blurred(){return this.hasNestedFields?this.check(u.FieldPropsEnum.blurred,!0):this.$blurred}get touched(){return this.hasNestedFields?this.check(u.FieldPropsEnum.touched,!0):this.$touched}get deleted(){return this.hasNestedFields?this.check(u.FieldPropsEnum.deleted,!0):this.$deleted}setupField(e,t,i,s,r){var l;this.key=e,this.path=t,this.id=null===(l=this.state.options.get(d.OptionsEnum.uniqueId))||void 0===l?void 0:l.apply(this,[this]);const u=this.state.options.get(d.OptionsEnum.fallbackValue,this),c=this.state.struct(),f=(0,n.pathToStruct)(this.path),b=Array.isArray(c)?!!c.filter((e=>e.startsWith(f))).find((e=>"[]"===e.substring(f.length))):!!Array.isArray(a.default.get(c,this.path)),{$type:m,$input:v,$output:g}=s;if(a.default.isPlainObject(i)){const{type:t,input:l,output:d}=i;return this.name=a.default.toString(i.name||e),this.$type=m||t||"text",this.$input=(0,n.$try)(v,l,this.$input),this.$output=(0,n.$try)(g,d,this.$output),this.$value=(0,o.parseInput)(this.$input,{fallbackValueOption:u,isEmptyArray:b,type:this.type,unified:i.value,separated:s.$value,fallback:s.$initial}),this.$initial=(0,o.parseInput)(this.$input,{fallbackValueOption:u,nullable:!0,isEmptyArray:b,type:this.type,unified:i.initial,separated:s.$initial,fallback:this.$value}),this.$default=h(this,i,s,r,{fallbackValueOption:u,isEmptyArray:b}),void p(this,s,i)}this.name=a.default.toString(e),this.$type=m||"text",this.$input=(0,n.$try)(v,this.$input),this.$output=(0,n.$try)(g,this.$output),this.$value=(0,o.parseInput)(this.$input,{fallbackValueOption:u,isEmptyArray:b,type:this.type,unified:i,separated:s.$value}),this.$initial=(0,o.parseInput)(this.$input,{fallbackValueOption:u,nullable:!0,isEmptyArray:b,type:this.type,unified:i,separated:s.$initial,fallback:this.$value}),this.$default=h(this,i,s,r,{fallbackValueOption:u,isEmptyArray:b}),p(this,s,i)}getComputedProp(e){if(this.incremental||this.hasNestedFields)return e===u.FieldPropsEnum.value?this.get(e,!1):(0,r.untracked)((()=>this.get(e,!1)));const t=this[`$${e}`];return a.default.isArray(t)||(0,r.isObservableArray)(t)?[].slice.call(t):(0,r.toJS)(t)}checkValidationPlugins(){const{drivers:e}=this.state.form.validator,t=this.state.form.name?`${this.state.form.name}/`:"";if(a.default.isNil(e.dvr)&&!a.default.isNil(this.rules))throw new Error(`The DVR validation rules are defined but no DVR plugin provided. Field: "${t+this.path}".`);if(a.default.isNil(e.vjf)&&!a.default.isNil(this.validators))throw new Error(`The VJF validators functions are defined but no VJF plugin provided. Field: "${t+this.path}".`)}initNestedFields(e,t){const i=a.default.isNil(e)?null:e.fields;a.default.isArray(i)&&!a.default.isEmpty(i)&&(this.hasInitialNestedFields=!0),this.initFields({fields:i},t),!t&&a.default.isArray(i)&&a.default.isEmpty(i)&&a.default.isArray(this.value)&&!a.default.isEmpty(this.value)&&(this.hasInitialNestedFields=!0,this.initFields({fields:i,values:this.value},t))}invalidate(e,t=!1){if(!0!==t){if(a.default.isArray(e))return this.validationErrorStack=e,void this.showErrors(!0);this.validationErrorStack.unshift(e),this.showErrors(!0)}else this.errorAsync=e}setValidationAsyncData(e=!1,t=""){this.validationAsyncData={valid:e,message:t}}resetValidation(e=!1){this.showError=!0,this.errorSync=null,this.errorAsync=null,this.validationAsyncData={},this.validationFunctionsData=[],this.validationErrorStack=[],Promise.resolve().then((0,r.action)((()=>{this.$resetting=!1,this.$clearing=!1}))),e&&this.each((t=>t.resetValidation(e)))}clear(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onClear),this.$clearing=!0,this.$touched=!1,this.$blurred=!1,this.$changed=0,this.files=void 0,this.$value=(0,o.defaultValue)({fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue),value:this.$value,type:this.type}),e&&this.each((t=>t.clear(e))),this.state.options.get(d.OptionsEnum.validateOnClear,this)?this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnClear,this)}):this.resetValidation(e)}reset(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onReset),this.$resetting=!0,this.$touched=!1,this.$blurred=!1,this.$changed=0,this.files=void 0;const i=this.$default!==this.$initial;i&&(this.value=this.$default),i||(this.value=this.$initial),e&&this.each((t=>t.reset(e))),this.state.options.get(d.OptionsEnum.validateOnReset,this)?this.validate({showErrors:this.state.options.get(d.OptionsEnum.showErrorsOnReset,this)}):this.resetValidation(e)}focus(){this.ref&&!this.focused&&this.ref.focus(),this.$focused=!0,this.$touched=!0}blur(){this.ref&&this.focused&&this.ref.blur(),this.$focused=!1,this.$blurred=!0}trim(){a.default.isString(this.value)&&(this.$value=this.value.trim())}showErrors(e=!0){this.showError=e,this.errorSync=a.default.head(this.validationErrorStack),this.each((t=>t.showErrors(e)))}showAsyncErrors(){var e,t;!1!==(null===(e=this.validationAsyncData)||void 0===e?void 0:e.valid)?this.errorAsync=null:this.errorAsync=null===(t=this.validationAsyncData)||void 0===t?void 0:t.message}observeValidationOnBlur(){const e=this.state.options;e.get(d.OptionsEnum.validateOnBlur,this)&&(this.disposeValidationOnBlur=(0,r.observe)(this,"$focused",(t=>!1===t.newValue&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnBlur,this)}))))}observeValidationOnChange(){const e=this.state.options;e.get(d.OptionsEnum.validateOnChange,this)?this.disposeValidationOnChange=(0,r.observe)(this,"$value",(()=>!this.actionRunning&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnChange,this)}))):(e.get(d.OptionsEnum.validateOnChangeAfterInitialBlur,this)||e.get(d.OptionsEnum.validateOnChangeAfterSubmit,this))&&(this.disposeValidationOnChange=(0,r.observe)(this,"$value",(()=>!this.actionRunning&&(e.get(d.OptionsEnum.validateOnChangeAfterInitialBlur,this)&&this.blurred||e.get(d.OptionsEnum.validateOnChangeAfterSubmit,this)&&this.state.form.submitted)&&this.debouncedValidation({showErrors:e.get(d.OptionsEnum.showErrorsOnChange,this)}))))}initMOBXEvent(e){if(!a.default.isArray(this[`$${e}`]))return;let t;e===u.FieldPropsEnum.observers&&(t=this.observe),e===u.FieldPropsEnum.interceptors&&(t=this.intercept),this[`$${e}`].map((e=>t(a.default.omit(e,u.FieldPropsEnum.path))))}bind(e={}){return Object.assign(Object.assign({},this.state.bindings.load(this,this.bindings,e)),{ref:e=>this.$ref=e})}update(e){if(!a.default.isPlainObject(e))throw new Error("The update() method accepts only plain objects.");const t=this.state.options.get(d.OptionsEnum.fallback,this),i=this.state.struct().findIndex((e=>e.startsWith(this.path.replace(/\.\d+\./,"[].")+"[]")));!t&&0===this.fields.size&&i<0?this.value=(0,o.parseInput)(this.$input,{fallbackValueOption:this.state.options.get(d.OptionsEnum.fallbackValue,this),separated:e}):super.update(e)}}t.default=c},338:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(311)),n=s(i(265)),o=s(i(107)),d=s(i(506)),u=i(561),p=i(93);class h extends l.default{constructor(e={},{name:t="",options:i={},plugins:s={},bindings:l={},hooks:d={},handlers:h={}}={}){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"validator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debouncedValidation",{enumerable:!0,configurable:!0,writable:!0,value:null}),(0,r.makeObservable)(this,{fields:r.observable,validatedValues:r.computed,error:r.computed,hasError:r.computed,isValid:r.computed,isPristine:r.computed,isDirty:r.computed,isDefault:r.computed,isEmpty:r.computed,focused:r.computed,touched:r.computed,disabled:r.computed,invalidate:r.action,clear:r.action,reset:r.action}),this.name=t,this.$hooks=d,this.$handlers=h;const c=a.default.each({setup:e,options:i,plugins:s,bindings:l},((e,t)=>a.default.isFunction(this[t])?a.default.merge(e,this[t].apply(this,[this])):e));this.state=new o.default({form:this,initial:c.setup,options:c.options,bindings:c.bindings}),this.validator=new n.default({form:this,plugins:c.plugins}),this.initFields(c.setup),this.debouncedValidation=a.default.debounce(this.validate,this.state.options.get(p.OptionsEnum.validationDebounceWait),this.state.options.get(p.OptionsEnum.validationDebounceOptions)),this.state.options.get(p.OptionsEnum.validateOnInit)&&this.validator.validate({showErrors:this.state.options.get(p.OptionsEnum.showErrorsOnInit)}),this.execHook(u.FieldPropsEnum.onInit),(0,r.autorun)((()=>this.$changed&&this.execHook(u.FieldPropsEnum.onChange)))}get validatedValues(){const e={};return this.each((t=>e[t.path]=t.validatedValue)),e}get error(){return this.validator.error}get hasError(){return!!this.validator.error||this.check(u.FieldPropsEnum.hasError,!0)}get isValid(){return!this.validator.error&&this.check(u.FieldPropsEnum.isValid,!0)}get isPristine(){return this.check(u.FieldPropsEnum.isPristine,!0)}get isDirty(){return this.check(u.FieldPropsEnum.isDirty,!0)}get isDefault(){return this.check(u.FieldPropsEnum.isDefault,!0)}get isEmpty(){return this.check(u.FieldPropsEnum.isEmpty,!0)}get focused(){return this.check(u.FieldPropsEnum.focused,!0)}get touched(){return this.check(u.FieldPropsEnum.touched,!0)}get disabled(){return this.check(u.FieldPropsEnum.disabled,!0)}makeField(e){return new d.default(e)}invalidate(e=null){this.debouncedValidation.cancel(),this.each((e=>e.debouncedValidation.cancel())),this.validator.error=e||this.state.options.get(p.OptionsEnum.defaultGenericError)||!0}showErrors(e=!0){this.each((t=>t.showErrors(e)))}resetValidation(e){this.validator.error=null,this.each((t=>t.resetValidation(e)))}clear(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onClear),this.$touched=!1,this.$changed=0,this.each((t=>t.clear(e)))}reset(e=!0,t=!0){t&&this.execHook(u.FieldPropsEnum.onReset),this.$touched=!1,this.$changed=0,this.each((t=>t.reset(e)))}}t.default=h},666:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593);t.default=class{constructor(){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:{uniqueId:l.uniqueId,fallback:!0,fallbackValue:"",defaultGenericError:null,submitThrowsError:!0,showErrorsOnInit:!1,showErrorsOnSubmit:!0,showErrorsOnBlur:!0,showErrorsOnChange:!0,showErrorsOnClear:!1,showErrorsOnReset:!0,validateOnInit:!0,validateOnSubmit:!0,validateOnBlur:!0,validateOnChange:!1,validateOnChangeAfterInitialBlur:!1,validateOnChangeAfterSubmit:!1,validateOnClear:!1,validateOnReset:!1,validateDisabledFields:!1,validateDeletedFields:!1,validatePristineFields:!0,strictUpdate:!1,strictDelete:!0,softDelete:!1,retrieveOnlyDirtyFieldsValues:!1,retrieveOnlyEnabledFieldsValues:!1,retrieveOnlyEnabledFieldsErrors:!1,retrieveNullifiedEmptyStrings:!1,autoTrimValue:!1,autoParseNumbers:!1,removeNullishValuesInArrays:!1,preserveDeletedFieldsValues:!1,validationDebounceWait:250,validationDebounceOptions:{leading:!1,trailing:!0},stopValidationOnError:!1,validationPluginsOrder:void 0,resetValidationBeforeValidate:!0,validateTrimmedValue:!1}}),(0,r.makeObservable)(this,{options:r.observable,set:r.action})}get(e,t=null){return a.default.has(t,"path")&&a.default.has(t.$options,e)?t.$options[e]:e?a.default.get(this.options,e):(0,r.toJS)(this.options)}set(e){r.set?(0,r.set)(this.options,e):(0,r.extendObservable)(this.options,e)}}},107:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=s(i(666)),n=s(i(169)),o=i(593),d=i(138),u=i(93);t.default=class{constructor({form:e,initial:t,options:i,bindings:s}){Object.defineProperty(this,"mode",{enumerable:!0,configurable:!0,writable:!0,value:d.RuntimeMode.mixed}),Object.defineProperty(this,"strict",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"form",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bindings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"$struct",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:{interceptor:{},observer:{}}}),Object.defineProperty(this,"initial",{enumerable:!0,configurable:!0,writable:!0,value:{props:{},fields:{}}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:{props:{},fields:{}}}),this.set("form",e),this.initProps(t),this.options=new l.default,this.options.set(i),this.bindings=new n.default,this.bindings.register(s),this.observeOptions()}initProps(e={}){const t=a.default.pick(e,[...o.props.separated,...o.props.validation,...o.props.functions,...o.props.handlers]);this.set("initial","props",t);const i=(0,o.hasUnifiedProps)(e),s=(0,o.hasSeparatedProps)(e);if(i&&s&&console.warn("WARNING: Your mobx-react-form instance ",this.form.name," is running in MIXED Mode (Unified + Separated) as fields properties definition.","This mode is experimental, use it at your own risk, or use only one mode."),(s||(0,o.isArrayOfStrings)(e.fields))&&!i){const t=(0,o.$try)(e.struct,e.fields);return this.struct(t),this.strict=!0,void(this.mode=d.RuntimeMode.separated)}this.struct(e.struct),this.mode=d.RuntimeMode.unified}struct(e=null){return e&&(this.$struct=e),this.$struct}get(e,t){return this[e][t]}set(e,t,i=null){"form"===e&&(this.form=t),"initial"===e&&(Object.assign(this.initial[t],i),Object.assign(this.current[t],i)),"current"===e&&Object.assign(this.current[t],i)}extra(e=null){return a.default.isString(e)?a.default.get(this.$extra,e):null===e?this.$extra:(this.$extra=e,null)}observeOptions(){(0,r.observe)(this.options.options,(0,o.checkObserve)([{type:"update",key:u.OptionsEnum.validateOnChange,to:!0,exec:()=>this.form.each((e=>e.observeValidationOnChange()))},{type:"update",key:u.OptionsEnum.validateOnChange,to:!1,exec:()=>this.form.each((e=>e.disposeValidationOnChange()))},{type:"update",key:u.OptionsEnum.validateOnBlur,to:!0,exec:()=>this.form.each((e=>e.observeValidationOnBlur()))},{type:"update",key:u.OptionsEnum.validateOnBlur,to:!1,exec:()=>this.form.each((e=>e.disposeValidationOnBlur()))}]))}}},265:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(259),a=s(i(479)),l=i(593),n=i(93);t.default=class{constructor(e={}){Object.defineProperty(this,"promises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"form",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"drivers",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{vjf:void 0,dvr:void 0,svk:void 0,yup:void 0}}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:null}),(0,r.makeObservable)(this,{error:r.observable,validate:r.action,validateField:r.action}),a.default.merge(this.plugins,e.plugins),this.form=e.form,this.initDrivers(),this.checkSVKValidationPlugin()}initDrivers(){a.default.map(this.plugins,((e,t)=>this.drivers[t]=e&&a.default.has(e,"class")&&new e.class({config:e.config,state:this.form.state,promises:this.promises})))}validate(e={},t={}){const i=(0,l.$try)(e.path,e),s=(0,l.$try)(e.field,this.form.select(i,null,null),this.form),n=(0,l.$try)(e.related,t.related,!0),o=(0,l.$try)(e.showErrors,t.showErrors,!1);return s.$validating=!0,s.$validated+=1,this.error=null,new Promise((e=>{(s.path||a.default.isString(i))&&this.validateField({field:s,showErrors:o,related:n,path:i}),s.each((e=>this.validateField({path:e.path,field:e,showErrors:o,related:n}))),e(Promise.all(this.promises))})).then((0,r.action)((()=>{s.$validating=!1,s.$clearing=!1,s.$resetting=!1}))).catch((0,r.action)((e=>{throw s.$validating=!1,s.$clearing=!1,s.$resetting=!1,e}))).then((()=>s))}validateField({showErrors:e=!1,related:t=!1,field:i=null,path:s}){const r=i||this.form.select(s),{options:l}=this.form.state;if(!r.path)throw new Error("Validation Error: Invalid Field Instance");if(r.deleted&&!l.get(n.OptionsEnum.validateDeletedFields,r))return;if(r.disabled&&!l.get(n.OptionsEnum.validateDisabledFields,r))return;if(r.isPristine&&!l.get(n.OptionsEnum.validatePristineFields,r))return;l.get(n.OptionsEnum.resetValidationBeforeValidate,r)&&r.resetValidation(),l.get(n.OptionsEnum.validateTrimmedValue,r)&&r.trim();const o=l.get(n.OptionsEnum.stopValidationOnError,r),d=l.get(n.OptionsEnum.validationPluginsOrder,r),u=d?d.map((e=>this.drivers[e])):this.drivers;a.default.each(u,(e=>{if(e&&e.validate(r),o&&r.hasError)return!1})),r.showErrors(e),t&&this.validateRelatedFields(r,e)}validateRelatedFields(e,t){e.related&&e.related.length&&a.default.each(e.related,(e=>this.validateField({related:!1,showErrors:t,path:e})))}checkSVKValidationPlugin(){if(a.default.isNil(this.drivers.svk)&&a.default.get(this.plugins,"svk.config.schema")){const e=this.state.form.name?`Form: ${this.state.form.name}`:"";throw new Error(`The SVK validation schema is defined but no plugin provided (SVK). ${e}`)}}}},607:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Field=t.Form=void 0;const r=s(i(338));t.Form=r.default;const a=s(i(506));t.Field=a.default,t.default=r.default},561:(e,t)=>{var i,s,r,a;Object.defineProperty(t,"__esModule",{value:!0}),t.SeparatedPropsMode=t.FieldPropsOccurrence=t.AllowedFieldPropsTypes=t.FieldPropsEnum=void 0,(a=t.FieldPropsEnum||(t.FieldPropsEnum={})).key="key",a.id="id",a.path="path",a.name="name",a.fields="fields",a.ref="ref",a.type="type",a.value="value",a.initial="initial",a.default="default",a.checked="checked",a.label="label",a.placeholder="placeholder",a.error="error",a.validatedWith="validatedWith",a.validators="validators",a.rules="rules",a.related="related",a.options="options",a.extra="extra",a.bindings="bindings",a.hooks="hooks",a.handlers="handlers",a.input="input",a.output="output",a.interceptors="interceptors",a.observers="observers",a.disabled="disabled",a.deleted="deleted",a.blurred="blurred",a.validating="validating",a.submitting="submitting",a.clearing="clearing",a.resetting="resetting",a.changed="changed",a.touched="touched",a.focused="focused",a.isEmpty="isEmpty",a.isDefault="isDefault",a.isPristine="isPristine",a.isDirty="isDirty",a.isValid="isValid",a.hasError="hasError",a.onInit="onInit",a.onSync="onSync",a.onChange="onChange",a.onBlur="onBlur",a.onFocus="onFocus",a.onToggle="onToggle",a.onDrop="onDrop",a.onSubmit="onSubmit",a.onReset="onReset",a.onClear="onClear",a.onAdd="onAdd",a.onDel="onDel",a.autoFocus="autoFocus",a.inputMode="inputMode",a.onKeyDown="onKeyDown",a.onKeyUp="onKeyUp",(r=t.AllowedFieldPropsTypes||(t.AllowedFieldPropsTypes={})).computed="computed",r.observable="observable",r.editable="editable",r.all="all",(s=t.FieldPropsOccurrence||(t.FieldPropsOccurrence={})).some="some",s.every="every",(i=t.SeparatedPropsMode||(t.SeparatedPropsMode={})).values="values",i.labels="labels",i.placeholders="placeholders",i.defaults="defaults",i.initials="initials",i.disabled="disabled",i.deleted="deleted",i.types="types",i.related="related",i.rules="rules",i.options="options",i.bindings="bindings",i.extra="extra",i.hooks="hooks",i.handlers="handlers",i.validatedWith="validatedWith",i.validators="validators",i.observers="observers",i.interceptors="interceptors",i.input="input",i.output="output",i.autoFocus="autoFocus",i.inputMode="inputMode",i.refs="refs"},93:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsEnum=void 0,(i=t.OptionsEnum||(t.OptionsEnum={})).uniqueId="uniqueId",i.fallback="fallback",i.fallbackValue="fallbackValue",i.defaultGenericError="defaultGenericError",i.submitThrowsError="submitThrowsError",i.showErrorsOnInit="showErrorsOnInit",i.showErrorsOnSubmit="showErrorsOnSubmit",i.showErrorsOnBlur="showErrorsOnBlur",i.showErrorsOnChange="showErrorsOnChange",i.showErrorsOnClear="showErrorsOnClear",i.showErrorsOnReset="showErrorsOnReset",i.validateOnInit="validateOnInit",i.validateOnSubmit="validateOnSubmit",i.validateOnBlur="validateOnBlur",i.validateOnChange="validateOnChange",i.validateOnChangeAfterInitialBlur="validateOnChangeAfterInitialBlur",i.validateOnChangeAfterSubmit="validateOnChangeAfterSubmit",i.validateDisabledFields="validateDisabledFields",i.validateDeletedFields="validateDeletedFields",i.validatePristineFields="validatePristineFields",i.validateTrimmedValue="validateTrimmedValue",i.validateOnClear="validateOnClear",i.validateOnReset="validateOnReset",i.strictUpdate="strictUpdate",i.strictDelete="strictDelete",i.softDelete="softDelete",i.retrieveOnlyDirtyFieldsValues="retrieveOnlyDirtyFieldsValues",i.retrieveOnlyEnabledFieldsValues="retrieveOnlyEnabledFieldsValues",i.retrieveOnlyEnabledFieldsErrors="retrieveOnlyEnabledFieldsErrors",i.retrieveNullifiedEmptyStrings="retrieveNullifiedEmptyStrings",i.removeNullishValuesInArrays="removeNullishValuesInArrays",i.preserveDeletedFieldsValues="preserveDeletedFieldsValues",i.autoTrimValue="autoTrimValue",i.autoParseNumbers="autoParseNumbers",i.validationDebounceWait="validationDebounceWait",i.validationDebounceOptions="validationDebounceOptions",i.stopValidationOnError="stopValidationOnError",i.validationPluginsOrder="validationPluginsOrder",i.resetValidationBeforeValidate="resetValidationBeforeValidate"},138:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.RuntimeMode=void 0,(i=t.RuntimeMode||(t.RuntimeMode={})).mixed="mixed",i.unified="unified",i.separated="separated"},951:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationHooks=void 0,(i=t.ValidationHooks||(t.ValidationHooks={})).onSuccess="onSuccess",i.onError="onError"},215:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.pathToFieldsTree=t.prepareFieldsData=t.handleFieldsArrayOfStrings=t.handleFieldsNested=t.mergeSchemaDefaults=t.parseCheckOutput=t.parseCheckArray=t.parseArrayProp=t.parsePath=t.parseInput=t.defaultValue=void 0;const r=s(i(479)),a=i(561),l=i(593),n=({type:e,value:t,nullable:i=!1,isEmptyArray:s=!1,fallbackValueOption:a=""})=>"file"===e?"":"nullable"===e||"datetime-local"===e||r.default.isDate(t)||"date"===e?null:r.default.isNumber(t)||"number"===e?0:!r.default.isBoolean(t)&&"checkbox"!==e&&(r.default.isString(t)?"":r.default.isArray(t)?[]:i?null:s?[]:a);t.defaultValue=n,t.parsePath=e=>{let t=e;return t=r.default.replace(t,new RegExp("\\[","g"),"."),t=r.default.replace(t,new RegExp("\\]","g"),""),t},t.parseInput=(e,{fallbackValueOption:t="",type:i,isEmptyArray:s,nullable:r,separated:a,unified:o,fallback:d})=>e((0,l.$try)(a,o,d,n({fallbackValueOption:t,type:i,isEmptyArray:s,nullable:r})));const o=(e,t,i)=>{const s=r.default.values(e),l=t===a.FieldPropsEnum.value||t===a.FieldPropsEnum.initial||t===a.FieldPropsEnum.default;return i&&l?r.default.without(s,null,void 0,""):s};t.parseArrayProp=o,t.parseCheckArray=(e,t,i,s)=>e.hasIncrementalKeys?o(t,i,s):t,t.parseCheckOutput=(e,t,i=!1)=>{if(t===a.FieldPropsEnum.value||t.startsWith("value.")){const s=e.$output?e.$output(e[a.FieldPropsEnum.value]):e[a.FieldPropsEnum.value],l=t.startsWith("value.")?r.default.get(s,t.substring(6)):s;return r.default.isString(l)&&r.default.isEmpty(l)&&i?null:l}return e[t]};const d=(e,t=!1)=>{let i=e;return(0,l.isArrayOfStrings)(i)&&(i=r.default.transform(i,((e,i)=>{const s=r.default.split(i,".");return s.length?r.default.merge(e,((e,t=!1)=>r.default.reduceRight(e,((i,s)=>{const a={};if(r.default.endsWith(s,"[]")){const e=t?[i]:[];return a[r.default.trimEnd(s,"[]")]=e,a}const l=e[e.indexOf(s)-1],n=r.default.endsWith(l,"[]")&&r.default.last(e)===s;return!t&&n||(a[s]=i),a}),{}))(s,t)):Object.assign(e,{[i]:""})}),{})),i};t.handleFieldsArrayOfStrings=d;const u=(e,t=!0)=>r.default.transform(e,((e,i,s)=>(0,l.allowNested)(i,t)?Object.assign(e,{[s]:{fields:(0,l.isEmptyArray)(i)?[]:u(i)}}):Object.assign(e,{[s]:i})),{});t.handleFieldsNested=u;t.mergeSchemaDefaults=(e,t)=>{if(t){const i=r.default.get(t.plugins,"svk.config.schema");r.default.isEmpty(e)&&i&&i.properties&&r.default.each(i.properties,((t,i)=>{r.default.set(e,i,{value:t.default,label:t.title})}))}return e},t.prepareFieldsData=(e,t=!0,i=!0)=>{let s=r.default.merge(d(e.fields,!1),d(e.struct,!1));return s=(e=>{let t=e;return(0,l.isArrayOfObjects)(t)&&(t=r.default.transform(t,((e,t)=>{if(!(0,l.hasUnifiedProps)({fields:{field:t}})||r.default.has(t,a.FieldPropsEnum.name))return Object.assign(e,{[t.name]:t})}),{})),t})(s),s=((e,t,i)=>{if(!r.default.has(t,"values"))return e;let{values:s}=t;return(0,l.hasUnifiedProps)({fields:t.fields})&&(s=(e=>r.default.transform(e,((e,t,i)=>{return Object.assign(e,{[i]:{value:t,fields:(s=t,r.default.isPlainObject(s)?r.default.map(s,((e,t)=>({value:e,name:t}))):void 0)}});var s}),{}))(s)),r.default.merge(e,r.default.transform(s,((t,s,a)=>{r.default.isArray(e[a])&&(t[a]=s),a in e||isNaN(Number(a))&&!i||(t[a]=s)}),{}))})(s,e,i),s=u(s,t),s},t.pathToFieldsTree=(e,t,i=0,s=!1)=>{const n=(0,l.pathToStruct)(t),o=r.default.filter(e,(e=>r.default.startsWith(e,n))),p=d(o,s),h=r.default.replace(n,new RegExp("\\[]","g"),`[${i}]`),c=u(r.default.get(p,h));return e.length&&e.filter((e=>e.startsWith(t+"[]"))).map((e=>e.substring((t+"[].").length))).filter((e=>e.endsWith("[]"))).map((e=>e.substring(0,e.length-2))).forEach((e=>{var t,i;const s=e.split(".");let r=null===(t=c[0])||void 0===t?void 0:t.fields;for(let e=0;e<s.length&&(r=null===(i=null==r?void 0:r[s[e]])||void 0===i?void 0:i[a.FieldPropsEnum.fields],r);e++);r&&delete r[0]})),c}},529:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.props=void 0;const s=i(561);t.props={editable:[s.FieldPropsEnum.type,s.FieldPropsEnum.value,s.FieldPropsEnum.initial,s.FieldPropsEnum.default,s.FieldPropsEnum.label,s.FieldPropsEnum.placeholder,s.FieldPropsEnum.related,s.FieldPropsEnum.options,s.FieldPropsEnum.extra,s.FieldPropsEnum.bindings,s.FieldPropsEnum.hooks,s.FieldPropsEnum.handlers,s.FieldPropsEnum.error,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled,s.FieldPropsEnum.autoFocus,s.FieldPropsEnum.inputMode,s.FieldPropsEnum.ref],handlers:[s.FieldPropsEnum.onChange,s.FieldPropsEnum.onToggle,s.FieldPropsEnum.onFocus,s.FieldPropsEnum.onBlur,s.FieldPropsEnum.onDrop,s.FieldPropsEnum.onSubmit,s.FieldPropsEnum.onReset,s.FieldPropsEnum.onClear,s.FieldPropsEnum.onAdd,s.FieldPropsEnum.onDel],computed:[s.FieldPropsEnum.hasError,s.FieldPropsEnum.isValid,s.FieldPropsEnum.isDirty,s.FieldPropsEnum.isPristine,s.FieldPropsEnum.isDefault,s.FieldPropsEnum.isEmpty,s.FieldPropsEnum.focused,s.FieldPropsEnum.touched,s.FieldPropsEnum.changed,s.FieldPropsEnum.validating,s.FieldPropsEnum.submitting,s.FieldPropsEnum.resetting,s.FieldPropsEnum.clearing,s.FieldPropsEnum.blurred,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled],separated:[s.SeparatedPropsMode.values,s.SeparatedPropsMode.labels,s.SeparatedPropsMode.placeholders,s.SeparatedPropsMode.defaults,s.SeparatedPropsMode.initials,s.SeparatedPropsMode.disabled,s.SeparatedPropsMode.deleted,s.SeparatedPropsMode.types,s.SeparatedPropsMode.related,s.SeparatedPropsMode.rules,s.SeparatedPropsMode.options,s.SeparatedPropsMode.bindings,s.SeparatedPropsMode.extra,s.SeparatedPropsMode.hooks,s.SeparatedPropsMode.handlers,s.SeparatedPropsMode.validatedWith,s.SeparatedPropsMode.validators,s.SeparatedPropsMode.observers,s.SeparatedPropsMode.interceptors,s.SeparatedPropsMode.input,s.SeparatedPropsMode.output,s.SeparatedPropsMode.autoFocus,s.SeparatedPropsMode.inputMode,s.SeparatedPropsMode.refs],functions:[s.FieldPropsEnum.observers,s.FieldPropsEnum.interceptors,s.FieldPropsEnum.input,s.FieldPropsEnum.output],validation:[s.FieldPropsEnum.rules,s.FieldPropsEnum.validators,s.FieldPropsEnum.validatedWith],occurrences:{isDirty:s.FieldPropsOccurrence.some,isPristine:s.FieldPropsOccurrence.every,isDefault:s.FieldPropsOccurrence.every,isValid:s.FieldPropsOccurrence.every,isEmpty:s.FieldPropsOccurrence.every,hasError:s.FieldPropsOccurrence.some,focused:s.FieldPropsOccurrence.some,blurred:s.FieldPropsOccurrence.some,touched:s.FieldPropsOccurrence.some,deleted:s.FieldPropsOccurrence.every,disabled:s.FieldPropsOccurrence.every,clearing:s.FieldPropsOccurrence.every,resetting:s.FieldPropsOccurrence.every}}},593:function(e,t,i){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getObservableMapValues=t.getObservableMapKeys=t.$try=t.$isBool=t.$hasFiles=t.$isEvent=t.uniqueId=t.maxKey=t.hasIntKeys=t.parseIntKeys=t.allowNested=t.hasSeparatedProps=t.hasUnifiedProps=t.pathToStruct=t.isArrayOfObjects=t.isEmptyArray=t.isArrayOfStrings=t.throwError=t.allowedProps=t.hasProps=t.checkPropOccurrence=t.checkObserve=t.props=void 0;const r=s(i(479)),a=i(259),l=i(561),n=i(529);Object.defineProperty(t,"props",{enumerable:!0,get:function(){return n.props}}),t.getObservableMapValues=e=>(0,a.values)(e);const o=e=>(0,a.keys)(e);t.getObservableMapKeys=o,t.checkObserve=e=>t=>e.map((e=>({key:t,to:i,type:s,exec:r})=>e.type===s&&e.name===t&&e.newValue===i&&r.apply(e,[e]))(t)),t.checkPropOccurrence=({type:e,data:t})=>{let i;switch(e){case l.FieldPropsOccurrence.some:i=e=>r.default.some(e,Boolean);break;case l.FieldPropsOccurrence.every:i=e=>r.default.every(e,Boolean);break;default:throw new Error("Occurrence not found for specified prop")}return i(t)};const d=(e,t)=>{let i;switch(e){case l.AllowedFieldPropsTypes.computed:i=n.props.computed;break;case l.AllowedFieldPropsTypes.observable:i=[l.FieldPropsEnum.fields,...n.props.computed,...n.props.editable];break;case l.AllowedFieldPropsTypes.editable:i=[...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers];break;case l.AllowedFieldPropsTypes.all:i=[l.FieldPropsEnum.id,l.FieldPropsEnum.key,l.FieldPropsEnum.name,l.FieldPropsEnum.path,...n.props.computed,...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers];break;default:i=null}return r.default.intersection(t,i).length>0};t.hasProps=d,t.allowedProps=(e,t)=>{if(!d(e,t))throw new Error(`The selected property is not allowed (${JSON.stringify(t)})`)},t.throwError=(e,t,i=null)=>{if(!r.default.isNil(t))return;const s=r.default.isNil(i)?"The selected field is not defined":i;throw new Error(`${s} (${e})`)},t.pathToStruct=e=>{let t;return t=r.default.replace(e,new RegExp("[.]\\d+($|.)","g"),"[]."),t=r.default.replace(t,"..","."),t=r.default.trim(t,"."),t};const u=(e,t)=>r.default.some(t,r.default.partial(r.default.has,e));t.isEmptyArray=e=>r.default.isEmpty(e)&&r.default.isArray(e);const p=e=>r.default.isArray(e)&&r.default.every(e,r.default.isString);t.isArrayOfStrings=p,t.isArrayOfObjects=e=>r.default.isArray(e)&&r.default.every(e,r.default.isPlainObject),t.hasUnifiedProps=({fields:e})=>!p({fields:e})&&d(l.AllowedFieldPropsTypes.editable,(e=>r.default.union(...r.default.map(r.default.values(e),(e=>r.default.keys(e)))))(e)),t.hasSeparatedProps=e=>u(e,n.props.separated)||u(e,n.props.validation),t.allowNested=(e,t)=>r.default.isObject(e)&&!r.default.isDate(e)&&!r.default.has(e,l.FieldPropsEnum.fields)&&(!u(e,[...n.props.editable,...n.props.validation,...n.props.functions,...n.props.handlers])||t);const h=e=>r.default.map(o(e),r.default.ary(r.default.toNumber,1));t.parseIntKeys=h,t.hasIntKeys=e=>r.default.every(h(e),r.default.isInteger),t.maxKey=e=>{const t=r.default.max(h(e));return r.default.isUndefined(t)?0:t+1},t.uniqueId=e=>r.default.uniqueId([r.default.replace(e.path,new RegExp("\\.","g"),"-"),"--"].join("")),t.$isEvent=e=>!r.default.isNil(e)&&"undefined"!=typeof Event&&(e instanceof Event||!r.default.isNil(e.target)),t.$hasFiles=e=>e.target.files&&0!==e.target.files.length,t.$isBool=(e,t)=>r.default.isBoolean(t)&&r.default.isBoolean(e.target.checked),t.$try=(...e)=>{let t=null;return e.map((e=>null===t&&!r.default.isUndefined(e)&&(t=e))),t}},479:t=>{t.exports=e},259:e=>{e.exports=t}},s={};return function e(t){var r=s[t];if(void 0!==r)return r.exports;var a=s[t]={exports:{}};return i[t].call(a.exports,a,a.exports,e),a.exports}(607)})()));
//# sourceMappingURL=MobxReactForm.umd.min.js.map

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc