@cosva-lab/form-builder
Version:
React form builder.
81 lines (79 loc) • 2.98 kB
JavaScript
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
const require_decorate = require('../../_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.cjs');
const require_utils_validate_InputsValidator = require('../validate/InputsValidator.cjs');
let mobx = require("mobx");
//#region src/utils/builders/FieldsBuilder.ts
var FieldsBuilder = class extends require_utils_validate_InputsValidator {
get ns() {
return this._ns;
}
set ns(ns) {
this._ns = ns;
}
get values() {
return this.getValues();
}
constructor(props) {
super(props);
this._ns = void 0;
(0, mobx.makeObservable)(this);
this._ns = props.ns;
for (const field of this.fields) field.fieldsBuilder = this;
this.validate = this._validate;
}
setField(fieldOriginal) {
const field = this.fields.find(({ name }) => fieldOriginal.name === name);
if (field) {
field.fieldsBuilder = this;
field.value = fieldOriginal.value;
field.errors = fieldOriginal.errors;
}
}
restore() {
this.fields.forEach((field) => field.reset());
}
getValues() {
return (0, mobx.toJS)(this.fields.reduce((acc, { name, value }) => {
acc[name] = value;
return acc;
}, {}));
}
get(fieldName) {
return this.fieldsMap[fieldName];
}
getField(fieldName) {
return this.get(fieldName);
}
onChangeField(event) {
this.changeValue(event);
}
onChangeFields(events) {
events.forEach((event) => this.onChangeField(event));
}
changeValue({ name, value }) {
const field = this.get(name);
if (field) field.setValue(value);
else console.warn(`Field ${name.toString()} not found`);
}
changeValues(events) {
events.forEach((event) => this.changeValue(event));
}
setValidation(validate) {
this.validate = validate;
}
};
require_decorate.__decorate([mobx.observable], FieldsBuilder.prototype, "_ns", void 0);
require_decorate.__decorate([mobx.observable], FieldsBuilder.prototype, "actionsExtra", void 0);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "restore", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "getValues", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "get", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "getField", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "onChangeField", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "onChangeFields", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "changeValue", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "changeValues", null);
require_decorate.__decorate([mobx.action.bound], FieldsBuilder.prototype, "setValidation", null);
//#endregion
exports.FieldsBuilder = FieldsBuilder;
exports.default = FieldsBuilder;