coreui-form
Version:
117 lines (97 loc) • 4.41 kB
JavaScript
import Utils from "../../utils";
import HelperField from "../field";
import HelpersFieldsPropertiesName from "./properties/name";
import HelpersFieldsPropertiesLabel from "./properties/label";
import HelpersFieldsPropertiesDescription from "./properties/description";
import HelpersFieldsPropertiesDescriptionLabel from "./properties/descriptionLabel";
import HelpersFieldsPropertiesHelp from "./properties/help";
import HelpersFieldsPropertiesWidthLabel from "./properties/widthLabel";
import HelpersFieldsPropertiesRequired from "./properties/required";
import HelpersFieldsPropertiesShow from "./properties/show";
import HelpersFieldsPropertiesFields from "./properties/fields";
import HelpersFieldsPropertiesNoSend from "./properties/noSend";
/**
* @extends {HelpersFieldsPropertiesName}
* @extends {HelpersFieldsPropertiesLabel}
* @extends {HelpersFieldsPropertiesDescription}
* @extends {HelpersFieldsPropertiesDescriptionLabel}
* @extends {HelpersFieldsPropertiesHelp}
* @extends {HelpersFieldsPropertiesWidthLabel}
* @extends {HelpersFieldsPropertiesRequired}
* @extends {HelpersFieldsPropertiesShow}
* @extends {HelpersFieldsPropertiesFields}
* @extends {HelpersFieldsPropertiesNoSend}
*/
class HelperFieldCustom extends HelperField {
_content = null;
/**
* @param {string} name
* @param {string} label
*/
constructor(name, label) {
super();
Object.assign(this, HelpersFieldsPropertiesName);
Object.assign(this, HelpersFieldsPropertiesLabel);
Object.assign(this, HelpersFieldsPropertiesDescription);
Object.assign(this, HelpersFieldsPropertiesDescriptionLabel);
Object.assign(this, HelpersFieldsPropertiesHelp);
Object.assign(this, HelpersFieldsPropertiesWidthLabel);
Object.assign(this, HelpersFieldsPropertiesRequired);
Object.assign(this, HelpersFieldsPropertiesShow);
Object.assign(this, HelpersFieldsPropertiesFields);
Object.assign(this, HelpersFieldsPropertiesNoSend);
this.setName(name);
this.setLabel(label);
}
/**
* Установка содержимого поля
* @param {Array|Object|string|number|null} content
* @return self
*/
setContent(content = null) {
this._content = content;
return this;
}
/**
* Получение содержимого поля
* @return {Array|Object|string|number|null}
*/
getContent() {
return this._content;
}
/**
* Преобразование в объект
* @return {Array}
*/
toObject() {
let result = {
type : 'custom'
};
if (this._name !== null) { result.name = this._name; }
if (this._label !== null) { result.label = this._label; }
if (this._help !== null) { result.help = this._help; }
if (this._description !== null) { result.description = this._description; }
if (this._descriptionLabel !== null) { result.descriptionLabel = this._descriptionLabel; }
if (this._required !== null) { result.required = this._required; }
if (this._widthLabel !== null) { result.widthLabel = this._widthLabel; }
if (this._show !== null) { result.show = this._show; }
if (this._position !== null) { result.position = this._position; }
if (this._noSend !== null) { result.noSend = this._noSend; }
if (this._content !== null) { result.content = this._content; }
if (Array.isArray(this._fields)) {
let fields = [];
this._fields.map(function (field) {
if (Utils.isObject(field)) {
if (typeof field.toObject === 'function') {
fields.push(field.toObject());
} else {
fields.push(field);
}
}
});
result.fields = fields;
}
return result;
}
}
export default HelperFieldCustom;