coreui-form
Version:
92 lines (70 loc) • 2.46 kB
JavaScript
import HelperField from "../field";
import Utils from "../../utils";
import HelpersFieldsPropertiesLabel from "./properties/label";
import HelpersFieldsPropertiesShow from "./properties/show";
import HelpersFieldsPropertiesFields from "./properties/fields";
/**
* @extends {HelpersFieldsPropertiesLabel}
* @extends {HelpersFieldsPropertiesShow}
* @extends {HelpersFieldsPropertiesFields}
*/
class HelperFieldGroup extends HelperField {
_showCollapsible = null;
/**
* @param {string} label
*/
constructor(label) {
super();
Object.assign(this, HelpersFieldsPropertiesLabel);
Object.assign(this, HelpersFieldsPropertiesShow);
Object.assign(this, HelpersFieldsPropertiesFields);
this.setLabel(label);
}
/**
* Установка отображения поля
* @param {boolean|null} show
* @return {HelperFieldText}
*/
setShowCollapsible(show) {
if (show !== null) {
this._showCollapsible = show;
} else {
this._showCollapsible = null;
}
return this;
}
/**
* Получение отображения поля
* @return {boolean|null}
*/
getShowCollapsible() {
return this._showCollapsible;
}
/**
* Преобразование в объект
* @return {Object}
*/
toObject() {
let result = super.toObject();
result.type = 'group';
if (this._label !== null) { result.label = this._label; }
if (this._show !== null) { result.show = this._show; }
if (this._showCollapsible !== null) { result.showCollapsible = this._showCollapsible; }
if (this._position !== null) { result.position = this._position; }
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 HelperFieldGroup;