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 5.5.2 to 5.6.0

52

lib/Base.js

@@ -271,5 +271,6 @@ "use strict";

// try to get props from separated objects
const $try = (prop) => {
const _try = (prop) => {
const t = lodash_1.default.get(initial[prop], struct);
if ((prop === "input" || prop === "output") && typeof t !== "function")
const isIoProp = (prop === FieldProps_1.FieldPropsEnum.input || prop === FieldProps_1.FieldPropsEnum.output);
if (isIoProp && typeof t !== "function")
return undefined;

@@ -280,21 +281,24 @@ return t;

$value: lodash_1.default.get(initial["values"], path),
$label: $try("labels"),
$placeholder: $try("placeholders"),
$default: $try("defaults"),
$initial: $try("initials"),
$disabled: $try("disabled"),
$bindings: $try("bindings"),
$type: $try("types"),
$options: $try("options"),
$extra: $try("extra"),
$related: $try("related"),
$hooks: $try("hooks"),
$handlers: $try("handlers"),
$validatedWith: $try("validatedWith"),
$validators: $try("validators"),
$rules: $try("rules"),
$observers: $try("observers"),
$interceptors: $try("interceptors"),
$input: $try("input"),
$output: $try("output"),
$label: _try("labels"),
$placeholder: _try("placeholders"),
$default: _try("defaults"),
$initial: _try("initials"),
$disabled: _try("disabled"),
$deleted: _try("deleted"),
$type: _try("types"),
$related: _try("related"),
$rules: _try("rules"),
$options: _try("options"),
$bindings: _try("bindings"),
$extra: _try("extra"),
$hooks: _try("hooks"),
$handlers: _try("handlers"),
$validatedWith: _try("validatedWith"),
$validators: _try("validators"),
$observers: _try("observers"),
$interceptors: _try("interceptors"),
$input: _try("input"),
$output: _try("output"),
$autoFocus: _try("autoFocus"),
$ref: _try("ref"),
};

@@ -426,3 +430,3 @@ const field = this.state.form.makeField({

else if (recursion) {
if (lodash_1.default.has(field, "fields") && !lodash_1.default.isNil(field.fields)) {
if (lodash_1.default.has(field, FieldProps_1.FieldPropsEnum.fields) && !lodash_1.default.isNil(field.fields)) {
// handle nested fields if defined

@@ -606,3 +610,3 @@ this.deepUpdate(field.fields, $path);

if (this.state.options.get(OptionsModel_1.OptionsEnum.softDelete, this)) {
return this.select(fullpath).set("deleted", true);
return this.select(fullpath).set(FieldProps_1.FieldPropsEnum.deleted, true);
}

@@ -643,3 +647,3 @@ container.each((field) => field.debouncedValidation.cancel());

lodash_1.default.merge(this.state.disposers[type], {
[$dkey]: key === "fields"
[$dkey]: key === FieldProps_1.FieldPropsEnum.fields
? ffn.apply((change) => $call(change))

@@ -646,0 +650,0 @@ : fn($instance, key, (change) => $call(change)),

@@ -35,5 +35,6 @@ import Base from "./Base";

$deleted: boolean;
$autoFocus: boolean;
$ref: any;
$clearing: boolean;
$resetting: boolean;
autoFocus: boolean;
showError: boolean;

@@ -60,2 +61,4 @@ errorSync: string | null;

get extra(): any;
get ref(): any;
get autoFocus(): boolean;
get type(): string;

@@ -102,2 +105,3 @@ get label(): string;

focus(): void;
blur(): void;
showErrors(show?: boolean): void;

@@ -108,3 +112,59 @@ showAsyncErrors(): void;

initMOBXEvent(type: string): void;
bind(props?: {}): import("./models/FieldProps").FieldPropsType;
bind(props?: {}): {
ref: ($ref: any) => any;
key?: any;
id?: any;
path?: any;
name?: any;
fields?: any;
type?: any;
value?: any;
initial?: any;
default?: any;
checked?: any;
label?: any;
placeholder?: any;
error?: any;
validatedWith?: any;
validators?: any;
rules?: any;
related?: any;
options?: any;
extra?: any;
bindings?: any;
hooks?: any;
handlers?: any;
input?: any;
output?: any;
interceptors?: any;
observers?: any;
disabled?: any;
deleted?: any;
blurred?: any;
clearing?: any;
resetting?: any;
changed?: any;
touched?: any;
focused?: any;
isEmpty?: any;
isDefault?: any;
isPristine?: any;
isDirty?: any;
isValid?: any;
hasError?: any;
onInit?: any;
onChange?: any;
onBlur?: any;
onFocus?: any;
onToggle?: any;
onDrop?: any;
onSubmit?: any;
onReset?: any;
onClear?: any;
onAdd?: any;
onDel?: any;
autoFocus?: any;
onKeyDown?: any;
onKeyUp?: any;
};
update(fields: any): void;

@@ -111,0 +171,0 @@ }

@@ -17,7 +17,8 @@ "use strict";

$disabled: props.$disabled || (data && data.disabled) || false,
$bindings: props.$bindings || (data && data.bindings) || FieldProps_1.FieldPropsEnum.default,
$rules: props.$rules || (data && data.rules) || null,
$related: props.$related || (data && data.related) || [],
$deleted: props.$deleted || (data && data.deleted) || false,
$validators: (0, mobx_1.toJS)(props.$validators || (data && data.validators) || null),
$validatedWith: props.$validatedWith || (data && data.validatedWith) || FieldProps_1.FieldPropsEnum.value,
$rules: props.$rules || (data && data.rules) || null,
$bindings: props.$bindings || (data && data.bindings) || FieldProps_1.FieldPropsEnum.default,
$observers: props.$observers || (data && data.observers) || null,

@@ -29,2 +30,4 @@ $interceptors: props.$interceptors || (data && data.interceptors) || null,

$handlers: props.$handlers || (data && data.handlers) || {},
$autoFocus: props.$autoFocus || (data && data.autoFocus) || false,
$ref: props.$ref || (data && data.ref) || undefined,
});

@@ -200,3 +203,3 @@ const setupDefaultProp = (instance, data, props, update, { isEmptyArray }) => (0, parser_1.parseInput)(instance.$input, {

});
Object.defineProperty(this, "$clearing", {
Object.defineProperty(this, "$autoFocus", {
enumerable: true,

@@ -207,9 +210,15 @@ configurable: true,

});
Object.defineProperty(this, "$resetting", {
Object.defineProperty(this, "$ref", {
enumerable: true,
configurable: true,
writable: true,
value: undefined
});
Object.defineProperty(this, "$clearing", {
enumerable: true,
configurable: true,
writable: true,
value: false
});
Object.defineProperty(this, "autoFocus", {
Object.defineProperty(this, "$resetting", {
enumerable: true,

@@ -322,6 +331,4 @@ configurable: true,

value: (...args) => this.execHandler(FieldProps_1.FieldPropsEnum.onBlur, args, (0, mobx_1.action)(() => {
if (!this.$blurred) {
this.$blurred = true;
}
this.$focused = false;
this.$blurred = true;
}))

@@ -383,3 +390,2 @@ });

$resetting: mobx_1.observable,
autoFocus: mobx_1.observable,
showError: mobx_1.observable,

@@ -392,2 +398,3 @@ errorSync: mobx_1.observable,

files: mobx_1.observable,
autoFocus: mobx_1.computed,
checkValidationErrors: mobx_1.computed,

@@ -431,2 +438,3 @@ checked: mobx_1.computed,

focus: mobx_1.action,
blur: mobx_1.action,
showErrors: mobx_1.action,

@@ -444,4 +452,4 @@ showAsyncErrors: mobx_1.action,

this.observeValidationOnChange();
this.initMOBXEvent("observers");
this.initMOBXEvent("interceptors");
this.initMOBXEvent(FieldProps_1.FieldPropsEnum.observers);
this.initMOBXEvent(FieldProps_1.FieldPropsEnum.interceptors);
this.execHook(FieldProps_1.FieldPropsEnum.onInit);

@@ -515,2 +523,8 @@ // handle Field onChange Hook for nested fields

}
get ref() {
return this.$ref;
}
get autoFocus() {
return this.$autoFocus;
}
get type() {

@@ -764,5 +778,13 @@ return (0, mobx_1.toJS)(this.$type);

focus() {
this.state.form.each((field) => (field.autoFocus = false));
this.autoFocus = true;
if (this.ref && !this.focused)
this.ref.focus();
this.$focused = true;
this.$touched = true;
}
blur() {
if (this.ref && this.focused)
this.ref.blur();
this.$focused = false;
this.$blurred = true;
}
showErrors(show = true) {

@@ -815,5 +837,5 @@ this.showError = show;

let fn;
if (type === "observers")
if (type === FieldProps_1.FieldPropsEnum.observers)
fn = this.observe;
if (type === "interceptors")
if (type === FieldProps_1.FieldPropsEnum.interceptors)
fn = this.intercept;

@@ -824,3 +846,3 @@ // @ts-ignore

bind(props = {}) {
return this.state.bindings.load(this, this.bindings, props);
return Object.assign(Object.assign({}, this.state.bindings.load(this, this.bindings, props)), { ref: ($ref) => (this.$ref = $ref) });
}

@@ -827,0 +849,0 @@ update(fields) {

@@ -19,2 +19,3 @@ import BaseInterface from "./BaseInterface";

autoFocus: boolean;
ref: any;
showError: boolean;

@@ -21,0 +22,0 @@ checkValidationErrors: boolean;

@@ -6,2 +6,4 @@ export declare enum FieldPropsEnum {

name = "name",
fields = "fields",
ref = "ref",
type = "type",

@@ -14,2 +16,6 @@ value = "value",

placeholder = "placeholder",
error = "error",
validatedWith = "validatedWith",
validators = "validators",
rules = "rules",
related = "related",

@@ -21,3 +27,6 @@ options = "options",

handlers = "handlers",
error = "error",
input = "input",
output = "output",
interceptors = "interceptors",
observers = "observers",
disabled = "disabled",

@@ -24,0 +33,0 @@ deleted = "deleted",

@@ -10,2 +10,4 @@ "use strict";

FieldPropsEnum["name"] = "name";
FieldPropsEnum["fields"] = "fields";
FieldPropsEnum["ref"] = "ref";
FieldPropsEnum["type"] = "type";

@@ -18,2 +20,6 @@ FieldPropsEnum["value"] = "value";

FieldPropsEnum["placeholder"] = "placeholder";
FieldPropsEnum["error"] = "error";
FieldPropsEnum["validatedWith"] = "validatedWith";
FieldPropsEnum["validators"] = "validators";
FieldPropsEnum["rules"] = "rules";
FieldPropsEnum["related"] = "related";

@@ -25,3 +31,6 @@ FieldPropsEnum["options"] = "options";

FieldPropsEnum["handlers"] = "handlers";
FieldPropsEnum["error"] = "error";
FieldPropsEnum["input"] = "input";
FieldPropsEnum["output"] = "output";
FieldPropsEnum["interceptors"] = "interceptors";
FieldPropsEnum["observers"] = "observers";
// computed

@@ -28,0 +37,0 @@ FieldPropsEnum["disabled"] = "disabled";

@@ -8,8 +8,9 @@ "use strict";

const lodash_1 = __importDefault(require("lodash"));
const FieldProps_1 = require("./models/FieldProps");
const utils_1 = require("./utils");
const defaultClearValue = ({ value = undefined, type = undefined }) => {
if (type === "date")
if (lodash_1.default.isDate(value) || type === "date")
return null;
if (lodash_1.default.isDate(value))
return null;
if (lodash_1.default.isNumber(value) || type === "number")
return 0;
if (lodash_1.default.isArray(value))

@@ -19,4 +20,2 @@ return [];

return false;
if (lodash_1.default.isNumber(value))
return 0;
if (lodash_1.default.isString(value))

@@ -60,3 +59,6 @@ return "";

const values = lodash_1.default.values(val);
if (removeNullishValuesInArrays && (prop === "value" || prop === "initial" || prop === "default")) {
const isValProp = (prop === FieldProps_1.FieldPropsEnum.value
|| prop === FieldProps_1.FieldPropsEnum.initial
|| prop === FieldProps_1.FieldPropsEnum.default);
if (removeNullishValuesInArrays && isValProp) {
return lodash_1.default.without(values, ...[null, undefined, ""]);

@@ -70,4 +72,4 @@ }

const parseCheckOutput = (field, prop) => {
if (prop === "value" || prop.startsWith("value.")) {
const base = field.$output ? field.$output(field["value"]) : field["value"];
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;

@@ -114,3 +116,3 @@ }

fields = lodash_1.default.transform(fields, ($obj, field) => {
if ((0, utils_1.hasUnifiedProps)({ fields: { field } }) && !lodash_1.default.has(field, "name"))
if ((0, utils_1.hasUnifiedProps)({ fields: { field } }) && !lodash_1.default.has(field, FieldProps_1.FieldPropsEnum.name))
return undefined;

@@ -251,3 +253,3 @@ return Object.assign($obj, { [field.name]: field });

for (let i = 0; i < ss.length; i++) {
t = (_b = t === null || t === void 0 ? void 0 : t[ss[i]]) === null || _b === void 0 ? void 0 : _b['fields'];
t = (_b = t === null || t === void 0 ? void 0 : t[ss[i]]) === null || _b === void 0 ? void 0 : _b[FieldProps_1.FieldPropsEnum.fields];
if (!t)

@@ -254,0 +256,0 @@ break;

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

FieldProps_1.FieldPropsEnum.disabled,
FieldProps_1.FieldPropsEnum.autoFocus,
],

@@ -59,2 +60,3 @@ handlers: [

"disabled",
"deleted",
"related",

@@ -67,8 +69,20 @@ "options",

"handlers",
"deleted",
"error",
"autoFocus",
"refs"
],
functions: ["observers", "interceptors", "input", "output"],
validation: ["rules", "validators", "validatedWith"],
exceptions: ["isDirty", "isPristine"],
functions: [
FieldProps_1.FieldPropsEnum.observers,
FieldProps_1.FieldPropsEnum.interceptors,
FieldProps_1.FieldPropsEnum.input,
FieldProps_1.FieldPropsEnum.output,
],
validation: [
FieldProps_1.FieldPropsEnum.rules,
FieldProps_1.FieldPropsEnum.validators,
FieldProps_1.FieldPropsEnum.validatedWith,
],
exceptions: [
FieldProps_1.FieldPropsEnum.isDirty,
FieldProps_1.FieldPropsEnum.isPristine
],
types: {

@@ -75,0 +89,0 @@ isDirty: "some",

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

const mobx_1 = require("mobx");
const FieldProps_1 = require("./models/FieldProps");
const props_1 = require("./props");

@@ -53,3 +54,3 @@ Object.defineProperty(exports, "props", { enumerable: true, get: function () { return props_1.props; } });

$props = [
"id",
FieldProps_1.FieldPropsEnum.id,
...props_1.props.computed,

@@ -110,3 +111,3 @@ ...props_1.props.field,

!lodash_1.default.isDate(field) &&
!lodash_1.default.has(field, "fields") &&
!lodash_1.default.has(field, FieldProps_1.FieldPropsEnum.fields) &&
(!hasSome(field, [

@@ -113,0 +114,0 @@ ...props_1.props.field,

{
"name": "mobx-react-form",
"license": "MIT",
"version": "5.5.2",
"version": "5.6.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.",

@@ -253,6 +253,6 @@ import {

// try to get props from separated objects
const $try = (prop: string) => {
const _try = (prop: string) => {
const t = _.get(initial[prop], struct);
if ((prop === "input" || prop === "output") && typeof t !== "function")
return undefined;
const isIoProp: boolean = (prop === FieldPropsEnum.input || prop === FieldPropsEnum.output);
if (isIoProp && typeof t !== "function") return undefined;
return t;

@@ -263,21 +263,24 @@ };

$value: _.get(initial["values"], path),
$label: $try("labels"),
$placeholder: $try("placeholders"),
$default: $try("defaults"),
$initial: $try("initials"),
$disabled: $try("disabled"),
$bindings: $try("bindings"),
$type: $try("types"),
$options: $try("options"),
$extra: $try("extra"),
$related: $try("related"),
$hooks: $try("hooks"),
$handlers: $try("handlers"),
$validatedWith: $try("validatedWith"),
$validators: $try("validators"),
$rules: $try("rules"),
$observers: $try("observers"),
$interceptors: $try("interceptors"),
$input: $try("input"),
$output: $try("output"),
$label: _try("labels"),
$placeholder: _try("placeholders"),
$default: _try("defaults"),
$initial: _try("initials"),
$disabled: _try("disabled"),
$deleted: _try("deleted"),
$type: _try("types"),
$related: _try("related"),
$rules: _try("rules"),
$options: _try("options"),
$bindings: _try("bindings"),
$extra: _try("extra"),
$hooks: _try("hooks"),
$handlers: _try("handlers"),
$validatedWith: _try("validatedWith"),
$validators: _try("validators"),
$observers: _try("observers"),
$interceptors: _try("interceptors"),
$input: _try("input"),
$output: _try("output"),
$autoFocus: _try("autoFocus"),
$ref: _try("ref"),
};

@@ -437,3 +440,3 @@

} else if (recursion) {
if (_.has(field, "fields") && !_.isNil(field.fields)) {
if (_.has(field, FieldPropsEnum.fields) && !_.isNil(field.fields)) {
// handle nested fields if defined

@@ -655,3 +658,3 @@ this.deepUpdate(field.fields, $path);

if (this.state.options.get(OptionsEnum.softDelete, this)) {
return this.select(fullpath).set("deleted", true);
return this.select(fullpath).set(FieldPropsEnum.deleted, true);
}

@@ -703,3 +706,3 @@

[$dkey]:
key === "fields"
key === FieldPropsEnum.fields
? ffn.apply((change: any) => $call(change))

@@ -706,0 +709,0 @@ : (fn as any)($instance, key, (change: any) => $call(change)),

@@ -33,7 +33,8 @@ import {

$disabled: props.$disabled || (data && data.disabled) || false,
$bindings: props.$bindings || (data && data.bindings) || FieldPropsEnum.default,
$rules: props.$rules || (data && data.rules) || null,
$related: props.$related || (data && data.related) || [],
$deleted: props.$deleted || (data && data.deleted) || false,
$validators: toJS(props.$validators || (data && data.validators) || null),
$validatedWith: props.$validatedWith || (data && data.validatedWith) || FieldPropsEnum.value,
$rules: props.$rules || (data && data.rules) || null,
$bindings: props.$bindings || (data && data.bindings) || FieldPropsEnum.default,
$observers: props.$observers || (data && data.observers) || null,

@@ -45,2 +46,4 @@ $interceptors: props.$interceptors || (data && data.interceptors) || null,

$handlers: props.$handlers || (data && data.handlers) || {},
$autoFocus: props.$autoFocus || (data && data.autoFocus) || false,
$ref: props.$ref || (data && data.ref) || undefined,
});

@@ -96,3 +99,2 @@

$validatedWith: string | undefined;
$validators: any[] | undefined;

@@ -105,2 +107,4 @@ $rules: string[] | undefined;

$deleted: boolean = false;
$autoFocus: boolean = false;
$ref: any = undefined

@@ -110,5 +114,3 @@ $clearing: boolean = false;

autoFocus: boolean = false;
showError: boolean = false;
errorSync: string | null = null;

@@ -156,3 +158,2 @@ errorAsync: string | null = null;

$resetting: observable,
autoFocus: observable,
showError: observable,

@@ -165,2 +166,3 @@ errorSync: observable,

files: observable,
autoFocus: computed,
checkValidationErrors: computed,

@@ -204,2 +206,3 @@ checked: computed,

focus: action,
blur: action,
showErrors: action,

@@ -227,4 +230,4 @@ showAsyncErrors: action,

this.initMOBXEvent("observers");
this.initMOBXEvent("interceptors");
this.initMOBXEvent(FieldPropsEnum.observers);
this.initMOBXEvent(FieldPropsEnum.interceptors);

@@ -312,2 +315,10 @@ this.execHook(FieldPropsEnum.onInit);

get ref() {
return this.$ref;
}
get autoFocus() {
return this.$autoFocus;
}
get type() {

@@ -450,7 +461,4 @@ return toJS(this.$type);

action(() => {
if (!this.$blurred) {
this.$blurred = true;
}
this.$focused = false;
this.$blurred = true;
})

@@ -711,6 +719,13 @@ );

focus(): void {
this.state.form.each((field: any) => (field.autoFocus = false));
this.autoFocus = true;
if(this.ref && !this.focused) this.ref.focus();
this.$focused = true;
this.$touched = true;
}
blur(): void {
if(this.ref && this.focused) this.ref.blur();
this.$focused = false;
this.$blurred = true;
}
showErrors(show: boolean = true): void {

@@ -782,4 +797,4 @@ this.showError = show;

let fn: any;
if (type === "observers") fn = this.observe;
if (type === "interceptors") fn = this.intercept;
if (type === FieldPropsEnum.observers) fn = this.observe;
if (type === FieldPropsEnum.interceptors) fn = this.intercept;
// @ts-ignore

@@ -790,3 +805,6 @@ this[`$${type}`].map((obj: any) => fn(_.omit(obj, FieldPropsEnum.path)));

bind(props = {}) {
return this.state.bindings.load(this, this.bindings, props);
return {
...this.state.bindings.load(this, this.bindings, props),
ref: ($ref) => (this.$ref = $ref),
}
}

@@ -793,0 +811,0 @@

@@ -19,2 +19,3 @@ import BaseInterface from "./BaseInterface";

autoFocus: boolean;
ref: any;
showError: boolean;

@@ -21,0 +22,0 @@ checkValidationErrors: boolean;

@@ -6,2 +6,4 @@ export enum FieldPropsEnum {

name = "name",
fields = "fields",
ref= "ref",
type = "type",

@@ -14,2 +16,6 @@ value = "value",

placeholder = "placeholder",
error = "error",
validatedWith = "validatedWith",
validators = "validators",
rules = "rules",
related = "related",

@@ -21,3 +27,6 @@ options = "options",

handlers = "handlers",
error = "error",
input="input",
output="output",
interceptors = "interceptors",
observers = "observers",
// computed

@@ -24,0 +33,0 @@ disabled = "disabled",

import _ from "lodash";
import { FieldPropsEnum } from "./models/FieldProps";
import {

@@ -16,7 +17,6 @@ $try,

: false | any[] | 0 | "" | null | undefined => {
if (type === "date") return null;
if (_.isDate(value)) return null;
if (_.isDate(value) || type === "date") return null;
if (_.isNumber(value) || type === "number") return 0;
if (_.isArray(value)) return [];
if (_.isBoolean(value)) return false;
if (_.isNumber(value)) return 0;
if (_.isString(value)) return "";

@@ -67,3 +67,8 @@ return undefined;

const values = _.values(val);
if (removeNullishValuesInArrays && (prop === "value" || prop === "initial" || prop === "default")) {
const isValProp: boolean =
(prop === FieldPropsEnum.value
|| prop === FieldPropsEnum.initial
|| prop === FieldPropsEnum.default);
if (removeNullishValuesInArrays && isValProp) {
return _.without(values, ...[null, undefined, ""]);

@@ -78,4 +83,4 @@ }

const parseCheckOutput = (field: any, prop: string) => {
if (prop === "value" || prop.startsWith("value.")) {
const base = field.$output ? field.$output(field["value"]) : field["value"]
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

@@ -132,3 +137,3 @@ }

($obj, field) => {
if (hasUnifiedProps({ fields: { field } }) && !_.has(field, "name")) return undefined;
if (hasUnifiedProps({ fields: { field } }) && !_.has(field, FieldPropsEnum.name)) return undefined;
return Object.assign($obj, { [field.name]: field });

@@ -310,3 +315,3 @@ },

for (let i = 0; i < ss.length; i++) {
t = t?.[ss[i]]?.['fields']
t = t?.[ss[i]]?.[FieldPropsEnum.fields]
if (!t) break;

@@ -313,0 +318,0 @@ }

@@ -33,2 +33,3 @@ import { FieldPropsEnum } from "./models/FieldProps";

FieldPropsEnum.disabled,
FieldPropsEnum.autoFocus,
],

@@ -70,2 +71,3 @@ handlers: [

"disabled",
"deleted",
"related",

@@ -78,8 +80,20 @@ "options",

"handlers",
"deleted",
"error",
"autoFocus",
"refs"
],
functions: ["observers", "interceptors", "input", "output"],
validation: ["rules", "validators", "validatedWith"],
exceptions: ["isDirty", "isPristine"],
functions: [
FieldPropsEnum.observers,
FieldPropsEnum.interceptors,
FieldPropsEnum.input,
FieldPropsEnum.output,
],
validation: [
FieldPropsEnum.rules,
FieldPropsEnum.validators,
FieldPropsEnum.validatedWith,
],
exceptions: [
FieldPropsEnum.isDirty,
FieldPropsEnum.isPristine
],
types: {

@@ -86,0 +100,0 @@ isDirty: "some",

import _ from "lodash";
import { ObservableMap, values as mobxValues, keys as mobxKeys } from "mobx";
import FieldInterface from "./models/FieldInterface";
import { FieldPropsEnum } from "./models/FieldProps";
import { props } from "./props";

@@ -55,3 +55,3 @@

$props = [
"id",
FieldPropsEnum.id,
...props.computed,

@@ -121,3 +121,3 @@ ...props.field,

!_.isDate(field) &&
!_.has(field, "fields") &&
!_.has(field, FieldPropsEnum.fields) &&
(!hasSome(field, [

@@ -124,0 +124,0 @@ ...props.field,

@@ -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,(function(e,t){return(()=>{"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);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,"$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)=>[(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(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,$touched:r.observable,$changed:r.observable,changed:r.computed,submitted:r.computed,submitting:r.computed,validated:r.computed,validating: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 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.substr(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),o=e=>{const t=a.default.get(r[e],n);if("input"!==e&&"output"!==e||"function"==typeof t)return t},d={$value:a.default.get(r.values,t),$label:o("labels"),$placeholder:o("placeholders"),$default:o("defaults"),$initial:o("initials"),$disabled:o("disabled"),$bindings:o("bindings"),$type:o("types"),$options:o("options"),$extra:o("extra"),$related:o("related"),$hooks:o("hooks"),$handlers:o("handlers"),$validatedWith:o("validatedWith"),$validators:o("validators"),$rules:o("rules"),$observers:o("observers"),$interceptors:o("interceptors"),$input:o("input"),$output:o("output")},u=this.state.form.makeField({key:e,path:t,data:i,props:d,update:s,state:this.state});return this.fields.merge({[e]:u}),u}validate(e={},t={}){const i=a.default.merge(e,{path:this.path});return this.state.form.validator.validate(i,t)}submit(e={},t=!0){t&&this.execHook(o.FieldPropsEnum.onSubmit,e),this.$submitting=!0,this.$submitted+=1;const i=t=>t?this.execHook("onSuccess",e):this.execHook("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)("computed",[e]),t?(0,l.checkPropType)({type:l.props.types[e],data:this.deepCheck(l.props.types[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&&!l.props.exceptions.includes(t)||i.push(s[t]);const r=this.deepCheck(e,t,s.fields);return i.push((0,l.checkPropType)({type:e,data:r})),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 h=a.default.has(e,o.FieldPropsEnum.name)?e.name:r,p=a.default.trimStart(`${t}.${h}`,"."),c=this.select(p,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,p)}))}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,p].join("."),".");f.$changed++,f.state.form.$changed++,f.initField(h,t,e,!0)}else if(i)if(a.default.has(e,"fields")&&!a.default.isNil(e.fields))this.deepUpdate(e.fields,p);else{const e=(0,n.pathToFieldsTree)(this.state.struct(),p);this.deepUpdate(e,p,!1)}}))}get(e=null,t=!0){if(a.default.isNil(e))return this.deepGet([...l.props.computed,...l.props.field,...l.props.validation],this.fields);if((0,l.allowedProps)("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);e===o.FieldPropsEnum.value&&(a=i.$output(a)),delete t[i.key];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)("field",[e]),(a.default.isObject(t)&&e===o.FieldPropsEnum.value||a.default.isPlainObject(t))&&this.hasNestedFields?this.deepSet(e,t,"",!0):a.default.set(this,`$${e}`,t),void(e===o.FieldPropsEnum.value&&(this.$changed++,this.state.form.$changed++));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.defaultClearValue)({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.defaultClearValue)({value:r.$value,type:r.type}),r.each((e=>e.$value=(0,n.defaultClearValue)({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),h=a.default.split(s,"."),p=a.default.last(h);if(i&&!u.fields.has(p)){const e=`Key "${p}" 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("deleted",!0):(u.each((e=>e.debouncedValidation.cancel())),t&&this.execHook(o.FieldPropsEnum.onDel),u.fields.delete(p))}MOBXEvent({path:e=null,key:t=o.FieldPropsEnum.value,call:i,type:s}){const l=this.select(e||this.path,null,null)||this,n=e=>i.apply(null,[{change:e,form:this.state.form,path:l.path||null,field:l.path?l:null}]);let d,u;"observer"===s&&(d=r.observe,u=e=>(0,r.observe)(l.fields,e)),"interceptor"===s&&(t=`$${t}`,d=r.intercept,u=l.fields.intercept);const h=l.path?`${t}@${l.path}`:t;a.default.merge(this.state.disposers[s],{[h]:"fields"===t?u.apply((e=>n(e))):d(l,t,(e=>n(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,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),h=(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,$bindings:t.$bindings||i&&i.bindings||u.FieldPropsEnum.default,$related:t.$related||i&&i.related||[],$validators:(0,r.toJS)(t.$validators||i&&i.validators||null),$validatedWith:t.$validatedWith||i&&i.validatedWith||u.FieldPropsEnum.value,$rules:t.$rules||i&&i.rules||null,$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||{}}),p=(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}):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,"$clearing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"$resetting",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"autoFocus",{enumerable:!0,configurable:!0,writable:!0,value:!1}),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,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>"file"===this.type?this.onDrop(...e):this.execHandler(u.FieldPropsEnum.onChange,e,this.sync)}),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.$blurred||(this.$blurred=!0),this.$focused=!1})))}),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,$clearing:r.observable,$resetting:r.observable,autoFocus:r.observable,showError:r.observable,errorSync:r.observable,errorAsync:r.observable,validationErrorStack:r.observable,validationFunctionsData:r.observable,validationAsyncData:r.observable,files:r.observable,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,resetting:r.computed,clearing:r.computed,focused: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,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("observers"),this.initMOBXEvent("interceptors"),this.execHook(u.FieldPropsEnum.onInit),this.hasNestedFields&&(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(this.$value!==e){if(!0===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 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 resetting(){return this.hasNestedFields?this.check(u.FieldPropsEnum.resetting,!0):this.$resetting}get clearing(){return this.hasNestedFields?this.check(u.FieldPropsEnum.clearing,!0):this.$clearing}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.substr(c.length,2))):!!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=p(this,i,s,r,{isEmptyArray:f}),void h(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=p(this,i,s,r,{isEmptyArray:f}),h(this,s,i)}getComputedProp(e){if(this.incremental||this.hasNestedFields){const t=e===u.FieldPropsEnum.value?this.get(e,!1):(0,r.untracked)((()=>this.get(e,!1)));return a.default.isEmpty(t)?[]:t}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=[],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.defaultClearValue)({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.state.form.each((e=>e.autoFocus=!1)),this.autoFocus=!0}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;"observers"===e&&(t=this.observe),"interceptors"===e&&(t=this.intercept),this[`$${e}`].map((e=>t(a.default.omit(e,u.FieldPropsEnum.path))))}bind(e={}){return this.state.bindings.load(this,this.bindings,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),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),h=i(93);class p extends l.default{constructor(e={},{name:t="",options:i={},plugins:s={},bindings:l={},hooks:d={},handlers:p={}}={}){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,clearing:r.computed,resetting: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=p;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(h.OptionsEnum.validationDebounceWait),this.state.options.get(h.OptionsEnum.validationDebounceOptions)),this.state.options.get(h.OptionsEnum.validateOnInit)&&this.validator.validate({showErrors:this.state.options.get(h.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 clearing(){return this.check(u.FieldPropsEnum.clearing,!0)}get resetting(){return this.check(u.FieldPropsEnum.resetting,!0)}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(h.OptionsEnum.defaultGenericError)}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=p},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,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,autoParseNumbers:!1,removeNullishValuesInArrays:!1,preserveDeletedFieldsValues:!1,validationDebounceWait:250,validationDebounceOptions:{leading:!1,trailing:!0},stopValidationOnError:!1,validationOrder:void 0}}),(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)),n=(0,l.$try)(e.related,t.related,!0),o=(0,l.$try)(e.showErrors,t.showErrors,!1),d=s||this.form;return d.$validating=!0,d.$validated+=1,this.error=null,new Promise((e=>{(d.path||a.default.isString(i))&&this.validateField({field:d,showErrors:o,related:n,path:i}),d.each((e=>this.validateField({path:e.path,field:e,showErrors:o,related:n}))),e(Promise.all(this.promises))})).then((0,r.action)((()=>{d.$validating=!1,d.$clearing=!1,d.$resetting=!1}))).catch((0,r.action)((e=>{throw d.$validating=!1,d.$clearing=!1,d.$resetting=!1,e}))).then((()=>d))}validateField({showErrors:e=!1,related:t=!1,field:i=null,path:s}){const r=i||this.form.select(s);if(!r.path)throw new Error("Validation Error: Invalid Field Instance");if(r.deleted&&!this.form.state.options.get(n.OptionsEnum.validateDeletedFields))return;if(r.disabled&&!this.form.state.options.get(n.OptionsEnum.validateDisabledFields))return;if(r.isPristine&&!this.form.state.options.get(n.OptionsEnum.validatePristineFields))return;r.resetValidation();const l=r.state.options.get(n.OptionsEnum.stopValidationOnError,r),o=r.state.options.get(n.OptionsEnum.validationOrder,r),d=o?o.map((e=>this.drivers[e])):this.drivers;a.default.each(d,(e=>{if(e&&e.validate(r),l&&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;Object.defineProperty(t,"__esModule",{value:!0}),t.FieldPropsEnum=void 0,(i=t.FieldPropsEnum||(t.FieldPropsEnum={})).key="key",i.id="id",i.path="path",i.name="name",i.type="type",i.value="value",i.initial="initial",i.default="default",i.checked="checked",i.label="label",i.placeholder="placeholder",i.related="related",i.options="options",i.extra="extra",i.bindings="bindings",i.hooks="hooks",i.handlers="handlers",i.error="error",i.disabled="disabled",i.deleted="deleted",i.blurred="blurred",i.clearing="clearing",i.resetting="resetting",i.changed="changed",i.touched="touched",i.focused="focused",i.isEmpty="isEmpty",i.isDefault="isDefault",i.isPristine="isPristine",i.isDirty="isDirty",i.isValid="isValid",i.hasError="hasError",i.onInit="onInit",i.onChange="onChange",i.onBlur="onBlur",i.onFocus="onFocus",i.onToggle="onToggle",i.onDrop="onDrop",i.onSubmit="onSubmit",i.onReset="onReset",i.onClear="onClear",i.onAdd="onAdd",i.onDel="onDel",i.autoFocus="autoFocus",i.onKeyDown="onKeyDown",i.onKeyUp="onKeyUp"},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.validateOnBlur="validateOnBlur",i.validateOnChange="validateOnChange",i.validateOnChangeAfterInitialBlur="validateOnChangeAfterInitialBlur",i.validateOnChangeAfterSubmit="validateOnChangeAfterSubmit",i.validateDisabledFields="validateDisabledFields",i.validateDeletedFields="validateDeletedFields",i.validatePristineFields="validatePristineFields",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.autoParseNumbers="autoParseNumbers",i.validationDebounceWait="validationDebounceWait",i.validationDebounceOptions="validationDebounceOptions",i.stopValidationOnError="stopValidationOnError",i.validationOrder="validationOrder"},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"},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.defaultClearValue=t.defaultValue=void 0;const r=s(i(479)),a=i(593);t.defaultClearValue=({value:e,type:t})=>"date"===t||r.default.isDate(e)?null:r.default.isArray(e)?[]:!r.default.isBoolean(e)&&(r.default.isNumber(e)?0:r.default.isString(e)?"":void 0);const l=({type:e,nullable:t=!1,isEmptyArray:i=!1})=>"nullable"===e||"date"===e||"datetime-local"===e?null:"checkbox"!==e&&("number"===e?0:t?null:i?[]:"");t.defaultValue=l,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:n,fallback:o})=>e((0,a.$try)(r,n,o,l({type:t,isEmptyArray:i,nullable:s})));const n=(e,t,i)=>{const s=r.default.values(e);return!i||"value"!==t&&"initial"!==t&&"default"!==t?s:r.default.without(s,null,void 0,"")};t.parseArrayProp=n,t.parseCheckArray=(e,t,i,s)=>e.hasIncrementalKeys?n(t,i,s):t,t.parseCheckOutput=(e,t)=>{if("value"===t||t.startsWith("value.")){const i=e.$output?e.$output(e.value):e.value;return t.startsWith("value.")?r.default.get(i,t.substring(6)):i}return e[t]};const o=(e,t=!1)=>{let i=e;return(0,a.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=o;const d=(e,t=!0)=>r.default.transform(e,((e,i,s)=>(0,a.allowNested)(i,t)?Object.assign(e,{[s]:{fields:(0,a.isEmptyArray)(i)?[]:d(i)}}):Object.assign(e,{[s]:i})),{});t.handleFieldsNested=d;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(o(e.fields,!1),o(e.struct,!1));return s=(e=>{let t=e;return(0,a.isArrayOfObjects)(t)&&(t=r.default.transform(t,((e,t)=>{if(!(0,a.hasUnifiedProps)({fields:{field:t}})||r.default.has(t,"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,a.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=d(s,t),s},t.pathToFieldsTree=(e,t,i=0,s=!1)=>{const l=(0,a.pathToStruct)(t),n=r.default.filter(e,(e=>r.default.startsWith(e,l))),u=o(n,s),h=r.default.replace(l,new RegExp("\\[]","g"),`[${i}]`),p=d(r.default.get(u,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=p[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.fields,r);e++);r&&delete r[0]})),p}},529:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.props=void 0;const s=i(561);t.props={field:[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],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.resetting,s.FieldPropsEnum.clearing,s.FieldPropsEnum.blurred,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled],separated:["values","initials","defaults","labels","placeholders","disabled","related","options","extra","bindings","types","hooks","handlers","deleted","error"],functions:["observers","interceptors","input","output"],validation:["rules","validators","validatedWith"],exceptions:["isDirty","isPristine"],types:{isDirty:"some",isPristine:"every",isDefault:"every",isValid:"every",isEmpty:"every",hasError:"some",focused:"some",blurred:"some",touched:"some",deleted:"every",disabled:"every",clearing:"every",resetting:"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.checkPropType=t.checkObserve=t.props=void 0;const r=s(i(479)),a=i(259),l=i(529);Object.defineProperty(t,"props",{enumerable:!0,get:function(){return l.props}}),t.getObservableMapValues=e=>(0,a.values)(e);const n=e=>(0,a.keys)(e);t.getObservableMapKeys=n,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.checkPropType=({type:e,data:t})=>{let i;switch(e){case"some":i=e=>r.default.some(e,Boolean);break;case"every":i=e=>r.default.every(e,Boolean);break;default:i=null}return i(t)};const o=(e,t)=>{let i;switch(e){case"computed":i=l.props.computed;break;case"field":i=[...l.props.field,...l.props.validation,...l.props.functions,...l.props.handlers];break;case"all":i=["id",...l.props.computed,...l.props.field,...l.props.validation,...l.props.functions,...l.props.handlers];break;default:i=null}return r.default.intersection(t,i).length>0};t.hasProps=o,t.allowedProps=(e,t)=>{if(!o(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 d=(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 u=e=>r.default.isArray(e)&&r.default.every(e,r.default.isString);t.isArrayOfStrings=u,t.isArrayOfObjects=e=>r.default.isArray(e)&&r.default.every(e,r.default.isPlainObject),t.hasUnifiedProps=({fields:e})=>!u({fields:e})&&o("field",(e=>r.default.union(...r.default.map(r.default.values(e),(e=>r.default.keys(e)))))(e)),t.hasSeparatedProps=e=>d(e,l.props.separated)||d(e,l.props.validation),t.allowNested=(e,t)=>r.default.isObject(e)&&!r.default.isDate(e)&&!r.default.has(e,"fields")&&(!d(e,[...l.props.field,...l.props.validation,...l.props.functions,...l.props.handlers])||t);const h=e=>r.default.map(n(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,(function(e,t){return(()=>{"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);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,"$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)=>[(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(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,$touched:r.observable,$changed:r.observable,changed:r.computed,submitted:r.computed,submitting:r.computed,validated:r.computed,validating: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 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.substr(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.values,t),$label:d("labels"),$placeholder:d("placeholders"),$default:d("defaults"),$initial:d("initials"),$disabled:d("disabled"),$deleted:d("deleted"),$type:d("types"),$related:d("related"),$rules:d("rules"),$options:d("options"),$bindings:d("bindings"),$extra:d("extra"),$hooks:d("hooks"),$handlers:d("handlers"),$validatedWith:d("validatedWith"),$validators:d("validators"),$observers:d("observers"),$interceptors:d("interceptors"),$input:d("input"),$output:d("output"),$autoFocus:d("autoFocus"),$ref:d("ref")},h=this.state.form.makeField({key:e,path:t,data:i,props:u,update:s,state:this.state});return this.fields.merge({[e]:h}),h}validate(e={},t={}){const i=a.default.merge(e,{path:this.path});return this.state.form.validator.validate(i,t)}submit(e={},t=!0){t&&this.execHook(o.FieldPropsEnum.onSubmit,e),this.$submitting=!0,this.$submitted+=1;const i=t=>t?this.execHook("onSuccess",e):this.execHook("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)("computed",[e]),t?(0,l.checkPropType)({type:l.props.types[e],data:this.deepCheck(l.props.types[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&&!l.props.exceptions.includes(t)||i.push(s[t]);const r=this.deepCheck(e,t,s.fields);return i.push((0,l.checkPropType)({type:e,data:r})),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 h=a.default.has(e,o.FieldPropsEnum.name)?e.name:r,p=a.default.trimStart(`${t}.${h}`,"."),c=this.select(p,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,p)}))}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,p].join("."),".");f.$changed++,f.state.form.$changed++,f.initField(h,t,e,!0)}else if(i)if(a.default.has(e,o.FieldPropsEnum.fields)&&!a.default.isNil(e.fields))this.deepUpdate(e.fields,p);else{const e=(0,n.pathToFieldsTree)(this.state.struct(),p);this.deepUpdate(e,p,!1)}}))}get(e=null,t=!0){if(a.default.isNil(e))return this.deepGet([...l.props.computed,...l.props.field,...l.props.validation],this.fields);if((0,l.allowedProps)("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);e===o.FieldPropsEnum.value&&(a=i.$output(a)),delete t[i.key];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)("field",[e]),(a.default.isObject(t)&&e===o.FieldPropsEnum.value||a.default.isPlainObject(t))&&this.hasNestedFields?this.deepSet(e,t,"",!0):a.default.set(this,`$${e}`,t),void(e===o.FieldPropsEnum.value&&(this.$changed++,this.state.form.$changed++));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.defaultClearValue)({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.defaultClearValue)({value:r.$value,type:r.type}),r.each((e=>e.$value=(0,n.defaultClearValue)({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),h=a.default.split(s,"."),p=a.default.last(h);if(i&&!u.fields.has(p)){const e=`Key "${p}" 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(p))}MOBXEvent({path:e=null,key:t=o.FieldPropsEnum.value,call:i,type:s}){const l=this.select(e||this.path,null,null)||this,n=e=>i.apply(null,[{change:e,form:this.state.form,path:l.path||null,field:l.path?l:null}]);let d,u;"observer"===s&&(d=r.observe,u=e=>(0,r.observe)(l.fields,e)),"interceptor"===s&&(t=`$${t}`,d=r.intercept,u=l.fields.intercept);const h=l.path?`${t}@${l.path}`:t;a.default.merge(this.state.disposers[s],{[h]:t===o.FieldPropsEnum.fields?u.apply((e=>n(e))):d(l,t,(e=>n(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,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),h=(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,$ref:t.$ref||i&&i.ref||void 0}),p=(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}):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,"$ref",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),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,"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,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:(...e)=>"file"===this.type?this.onDrop(...e):this.execHandler(u.FieldPropsEnum.onChange,e,this.sync)}),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,$clearing:r.observable,$resetting: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,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,resetting:r.computed,clearing:r.computed,focused: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),this.hasNestedFields&&(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(this.$value!==e){if(!0===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 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 resetting(){return this.hasNestedFields?this.check(u.FieldPropsEnum.resetting,!0):this.$resetting}get clearing(){return this.hasNestedFields?this.check(u.FieldPropsEnum.clearing,!0):this.$clearing}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.substr(c.length,2))):!!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=p(this,i,s,r,{isEmptyArray:f}),void h(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=p(this,i,s,r,{isEmptyArray:f}),h(this,s,i)}getComputedProp(e){if(this.incremental||this.hasNestedFields){const t=e===u.FieldPropsEnum.value?this.get(e,!1):(0,r.untracked)((()=>this.get(e,!1)));return a.default.isEmpty(t)?[]:t}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=[],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.defaultClearValue)({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}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),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),h=i(93);class p extends l.default{constructor(e={},{name:t="",options:i={},plugins:s={},bindings:l={},hooks:d={},handlers:p={}}={}){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,clearing:r.computed,resetting: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=p;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(h.OptionsEnum.validationDebounceWait),this.state.options.get(h.OptionsEnum.validationDebounceOptions)),this.state.options.get(h.OptionsEnum.validateOnInit)&&this.validator.validate({showErrors:this.state.options.get(h.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 clearing(){return this.check(u.FieldPropsEnum.clearing,!0)}get resetting(){return this.check(u.FieldPropsEnum.resetting,!0)}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(h.OptionsEnum.defaultGenericError)}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=p},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,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,autoParseNumbers:!1,removeNullishValuesInArrays:!1,preserveDeletedFieldsValues:!1,validationDebounceWait:250,validationDebounceOptions:{leading:!1,trailing:!0},stopValidationOnError:!1,validationOrder:void 0}}),(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)),n=(0,l.$try)(e.related,t.related,!0),o=(0,l.$try)(e.showErrors,t.showErrors,!1),d=s||this.form;return d.$validating=!0,d.$validated+=1,this.error=null,new Promise((e=>{(d.path||a.default.isString(i))&&this.validateField({field:d,showErrors:o,related:n,path:i}),d.each((e=>this.validateField({path:e.path,field:e,showErrors:o,related:n}))),e(Promise.all(this.promises))})).then((0,r.action)((()=>{d.$validating=!1,d.$clearing=!1,d.$resetting=!1}))).catch((0,r.action)((e=>{throw d.$validating=!1,d.$clearing=!1,d.$resetting=!1,e}))).then((()=>d))}validateField({showErrors:e=!1,related:t=!1,field:i=null,path:s}){const r=i||this.form.select(s);if(!r.path)throw new Error("Validation Error: Invalid Field Instance");if(r.deleted&&!this.form.state.options.get(n.OptionsEnum.validateDeletedFields))return;if(r.disabled&&!this.form.state.options.get(n.OptionsEnum.validateDisabledFields))return;if(r.isPristine&&!this.form.state.options.get(n.OptionsEnum.validatePristineFields))return;r.resetValidation();const l=r.state.options.get(n.OptionsEnum.stopValidationOnError,r),o=r.state.options.get(n.OptionsEnum.validationOrder,r),d=o?o.map((e=>this.drivers[e])):this.drivers;a.default.each(d,(e=>{if(e&&e.validate(r),l&&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;Object.defineProperty(t,"__esModule",{value:!0}),t.FieldPropsEnum=void 0,(i=t.FieldPropsEnum||(t.FieldPropsEnum={})).key="key",i.id="id",i.path="path",i.name="name",i.fields="fields",i.ref="ref",i.type="type",i.value="value",i.initial="initial",i.default="default",i.checked="checked",i.label="label",i.placeholder="placeholder",i.error="error",i.validatedWith="validatedWith",i.validators="validators",i.rules="rules",i.related="related",i.options="options",i.extra="extra",i.bindings="bindings",i.hooks="hooks",i.handlers="handlers",i.input="input",i.output="output",i.interceptors="interceptors",i.observers="observers",i.disabled="disabled",i.deleted="deleted",i.blurred="blurred",i.clearing="clearing",i.resetting="resetting",i.changed="changed",i.touched="touched",i.focused="focused",i.isEmpty="isEmpty",i.isDefault="isDefault",i.isPristine="isPristine",i.isDirty="isDirty",i.isValid="isValid",i.hasError="hasError",i.onInit="onInit",i.onChange="onChange",i.onBlur="onBlur",i.onFocus="onFocus",i.onToggle="onToggle",i.onDrop="onDrop",i.onSubmit="onSubmit",i.onReset="onReset",i.onClear="onClear",i.onAdd="onAdd",i.onDel="onDel",i.autoFocus="autoFocus",i.onKeyDown="onKeyDown",i.onKeyUp="onKeyUp"},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.validateOnBlur="validateOnBlur",i.validateOnChange="validateOnChange",i.validateOnChangeAfterInitialBlur="validateOnChangeAfterInitialBlur",i.validateOnChangeAfterSubmit="validateOnChangeAfterSubmit",i.validateDisabledFields="validateDisabledFields",i.validateDeletedFields="validateDeletedFields",i.validatePristineFields="validatePristineFields",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.autoParseNumbers="autoParseNumbers",i.validationDebounceWait="validationDebounceWait",i.validationDebounceOptions="validationDebounceOptions",i.stopValidationOnError="stopValidationOnError",i.validationOrder="validationOrder"},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"},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.defaultClearValue=t.defaultValue=void 0;const r=s(i(479)),a=i(561),l=i(593);t.defaultClearValue=({value:e,type:t})=>r.default.isDate(e)||"date"===t?null:r.default.isNumber(e)||"number"===t?0:r.default.isArray(e)?[]:!r.default.isBoolean(e)&&(r.default.isString(e)?"":void 0);const n=({type:e,nullable:t=!1,isEmptyArray:i=!1})=>"nullable"===e||"date"===e||"datetime-local"===e?null:"checkbox"!==e&&("number"===e?0:t?null:i?[]:"");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))),h=d(o,s),p=r.default.replace(n,new RegExp("\\[]","g"),`[${i}]`),c=u(r.default.get(h,p));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={field:[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],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.resetting,s.FieldPropsEnum.clearing,s.FieldPropsEnum.blurred,s.FieldPropsEnum.deleted,s.FieldPropsEnum.disabled],separated:["values","initials","defaults","labels","placeholders","disabled","deleted","related","options","extra","bindings","types","hooks","handlers","autoFocus","refs"],functions:[s.FieldPropsEnum.observers,s.FieldPropsEnum.interceptors,s.FieldPropsEnum.input,s.FieldPropsEnum.output],validation:[s.FieldPropsEnum.rules,s.FieldPropsEnum.validators,s.FieldPropsEnum.validatedWith],exceptions:[s.FieldPropsEnum.isDirty,s.FieldPropsEnum.isPristine],types:{isDirty:"some",isPristine:"every",isDefault:"every",isValid:"every",isEmpty:"every",hasError:"some",focused:"some",blurred:"some",touched:"some",deleted:"every",disabled:"every",clearing:"every",resetting:"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.checkPropType=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.checkPropType=({type:e,data:t})=>{let i;switch(e){case"some":i=e=>r.default.some(e,Boolean);break;case"every":i=e=>r.default.every(e,Boolean);break;default:i=null}return i(t)};const d=(e,t)=>{let i;switch(e){case"computed":i=n.props.computed;break;case"field":i=[...n.props.field,...n.props.validation,...n.props.functions,...n.props.handlers];break;case"all":i=[l.FieldPropsEnum.id,...n.props.computed,...n.props.field,...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 h=e=>r.default.isArray(e)&&r.default.every(e,r.default.isString);t.isArrayOfStrings=h,t.isArrayOfObjects=e=>r.default.isArray(e)&&r.default.every(e,r.default.isPlainObject),t.hasUnifiedProps=({fields:e})=>!h({fields:e})&&d("field",(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.field,...n.props.validation,...n.props.functions,...n.props.handlers])||t);const p=e=>r.default.map(o(e),r.default.ary(r.default.toNumber,1));t.parseIntKeys=p,t.hasIntKeys=e=>r.default.every(p(e),r.default.isInteger),t.maxKey=e=>{const t=r.default.max(p(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 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