class-o-mat
Version:
ALPHA VERSION ONLY: class-o-mats will help to create getter-setter functionality with validations that can be attached to a container class for easier coding. Some basic validations are included. class-o-mats also has the ability to store params as bloc
116 lines (91 loc) • 3.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _bunyan = require('bunyan');
var _bunyan2 = _interopRequireDefault(_bunyan);
var _types = require('../constants/types');
var _fieldOMat = require('./field-o-mat');
var _fieldOMat2 = _interopRequireDefault(_fieldOMat);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var log = _bunyan2.default.createLogger({ name: "ClassOMat" });
var RadioOption = function () {
function RadioOption(parent, key) {
_classCallCheck(this, RadioOption);
this.TYPE = _types.RADIO_OPTION;
this._params = { parent: parent, key: key, value: _types.NONE };
}
_createClass(RadioOption, [{
key: '$',
value: function $() {
return this._params.parent.$();
}
}, {
key: 'value',
value: function value(_value) {
this._params.value = _value;
return this;
}
}, {
key: 'value$',
value: function value$(value) {
return this.value(value).$();
}
}, {
key: 'option',
value: function option(key) {
return this._params.parent.option(key);
}
}]);
return RadioOption;
}();
var RadioOMat = function () {
function RadioOMat(parent, key) {
_classCallCheck(this, RadioOMat);
this.TYPE = _types.RADIO_O_MAT;
this._params = {
parent: parent,
key: key,
baseField: _types.NONE,
options: []
};
}
_createClass(RadioOMat, [{
key: '$',
value: function $() {
var _params = this._params,
parent = _params.parent,
key = _params.key,
baseField = _params.baseField,
options = _params.options;
parent._params.fieldOMats.push(baseField);
var internalKey = baseField.internalKey();
options.forEach(function (option) {
var _option$_params = option._params,
key = _option$_params.key,
value = _option$_params.value;
parent.field(key).staticSetter(value).internalKey(internalKey);
});
return parent;
}
}, {
key: 'base',
value: function base(key) {
var baseField = new _fieldOMat2.default(this, key).getter();
this._params.baseField = baseField;
return baseField;
}
}, {
key: 'option',
value: function option(key) {
var radioOption = new RadioOption(this, key);
this._params.options.push(radioOption);
return radioOption;
}
}]);
return RadioOMat;
}();
exports.default = RadioOMat;
//# sourceMappingURL=radio-o-mat.js.map