canner
Version:
Build CMS in few lines of code for different data sources
86 lines (72 loc) • 2.34 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
var _utils = require("./utils");
var _nullField = _interopRequireDefault(require("./nullField"));
var CompositeField =
/*#__PURE__*/
function () {
function CompositeField(_ref) {
var type = _ref.type,
rootSchema = _ref.rootSchema,
childFields = _ref.childFields,
key = _ref.key;
(0, _classCallCheck2.default)(this, CompositeField);
(0, _defineProperty2.default)(this, "rootSchema", void 0);
(0, _defineProperty2.default)(this, "childFields", void 0);
(0, _defineProperty2.default)(this, "key", void 0);
(0, _defineProperty2.default)(this, "type", void 0);
this.key = key;
this.type = type;
this.rootSchema = rootSchema;
this.childFields = childFields;
}
(0, _createClass2.default)(CompositeField, [{
key: "getKey",
value: function getKey() {
return this.key;
}
}, {
key: "exists",
value: function exists() {
return true;
}
}, {
key: "getType",
value: function getType() {
return this.type;
}
}, {
key: "getChild",
value: function getChild(fieldName) {
if (!this.childFields || !this.childFields[fieldName]) {
return new _nullField.default({
key: fieldName
});
}
var field = (0, _utils.createField)(fieldName, this.rootSchema, this.childFields[fieldName]);
return field;
}
}, {
key: "forEach",
value: function forEach(visitor) {
var _this = this;
if (!this.childFields) {
return;
}
(0, _forEach2.default)(this.childFields, function (item, key) {
var field = (0, _utils.createField)(key, _this.rootSchema, _this.childFields[key]);
visitor(field);
});
}
}]);
return CompositeField;
}();
exports.default = CompositeField;