Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

### Changed

## 0.6.2 - 2018-11-26
### Added

### Changed
- Updating project dependencies to latest version #135. Thanks @naeemba
- Flow #134. Thanks @naeemba

## 0.6.1 - 2018-11-19
### Added

Expand Down
318 changes: 182 additions & 136 deletions lib/Array.js

Large diffs are not rendered by default.

60 changes: 35 additions & 25 deletions lib/Checkbox.js
Original file line number Diff line number Diff line change
@@ -1,44 +1,45 @@
'use strict';
"use strict";

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 _react = require('react');
var _react = require("react");

var _react2 = _interopRequireDefault(_react);

var _ComposedComponent = require('./ComposedComponent');

var _ComposedComponent2 = _interopRequireDefault(_ComposedComponent);

var _Checkbox = require('@material-ui/core/Checkbox');
var _Checkbox = require("@material-ui/core/Checkbox");

var _Checkbox2 = _interopRequireDefault(_Checkbox);

var _FormGroup = require('@material-ui/core/FormGroup');
var _FormGroup = require("@material-ui/core/FormGroup");

var _FormGroup2 = _interopRequireDefault(_FormGroup);

var _FormControlLabel = require('@material-ui/core/FormControlLabel');
var _FormControlLabel = require("@material-ui/core/FormControlLabel");

var _FormControlLabel2 = _interopRequireDefault(_FormControlLabel);

var _ComposedComponent = require("./ComposedComponent");

var _ComposedComponent2 = _interopRequireDefault(_ComposedComponent);

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"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**
* Created by steve on 20/09/15.
*/
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* Created by steve on 20/09/15.
*/


var FormCheckbox = function (_React$Component) {
_inherits(FormCheckbox, _React$Component);
var FormCheckbox = function (_Component) {
_inherits(FormCheckbox, _Component);

function FormCheckbox() {
var _ref;
Expand All @@ -52,33 +53,42 @@ var FormCheckbox = function (_React$Component) {
}

return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = FormCheckbox.__proto__ || Object.getPrototypeOf(FormCheckbox)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function (e) {
_this.props.onChangeValidate(e);
var onChangeValidate = _this.props.onChangeValidate;

onChangeValidate(e);
}, _temp), _possibleConstructorReturn(_this, _ret);
}

_createClass(FormCheckbox, [{
key: 'render',
key: "render",
value: function render() {
// let value = selectOrSet(this.props.form.key, this.props.model);
var _this2 = this;

var _props = this.props,
form = _props.form,
value = _props.value;

return _react2.default.createElement(
_FormGroup2.default,
{ row: true },
_react2.default.createElement(_FormControlLabel2.default, {
className: this.props.form.className,
label: this.props.form.title,
className: form.className,
label: form.title,
control: _react2.default.createElement(_Checkbox2.default, {
name: this.props.form.key.slice(-1)[0],
value: this.props.form.key.slice(-1)[0],
checked: this.props.value || false,
disabled: this.props.form.readonly,
onChange: this.handleChange
name: form.key.slice(-1)[0],
value: form.key.slice(-1)[0],
checked: value || false,
disabled: form.readonly,
onChange: function onChange(e) {
return _this2.handleChange(e);
}
})
})
);
}
}]);

return FormCheckbox;
}(_react2.default.Component);
}(_react.Component);

exports.default = (0, _ComposedComponent2.default)(FormCheckbox);
106 changes: 63 additions & 43 deletions lib/ComposedComponent.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
Expand All @@ -8,37 +8,35 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument

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 _react = require('react');
var _react = require("react");

var _react2 = _interopRequireDefault(_react);

var _utils = require("./utils");

var _utils2 = _interopRequireDefault(_utils);

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"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } //var React = require('react');


var utils = require('./utils');
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var defaultValue = function defaultValue(props) {
// check if there is a value in the model, if there is, display it. Otherwise, check if
// there is a default value, display it.
// console.log('Text.defaultValue key', this.props.form.key);
// console.log('Text.defaultValue model', this.props.model);
var value = void 0;
if (props.form && props.form.key) value = utils.selectOrSet(props.form.key, props.model);
//console.log('Text defaultValue value = ', value);
if (props.form && props.form.key) value = _utils2.default.selectOrSet(props.form.key, props.model);

// check if there is a default value
if (!value && props.form['default']) {
value = props.form['default'];
}

if (!value && props.form.schema && props.form.schema['default']) {
value = props.form.schema['default'];
if (value === null || value === undefined) {
if (props.form.default) {
value = props.form.default;
} else if (props.form.schema && props.form.schema.default) {
value = props.form.schema.default;
}
}
return value;
};
Expand All @@ -53,77 +51,99 @@ exports.default = function (ComposedComponent) {

var _this = _possibleConstructorReturn(this, (Composed.__proto__ || Object.getPrototypeOf(Composed)).call(this, props));

var _this$props = _this.props,
errorText = _this$props.errorText,
form = _this$props.form;

_this.onChangeValidate = _this.onChangeValidate.bind(_this);
var value = defaultValue(_this.props);
var validationResult = utils.validate(_this.props.form, value);
var validationResult = _utils2.default.validate(form, value);
_this.state = {
value: value,
valid: !!(validationResult.valid || !value),
error: !validationResult.valid && (value ? validationResult.error.message : null) || _this.props.errorText
error: !validationResult.valid && (value ? validationResult.error.message : null) || errorText
};
return _this;
}

_createClass(Composed, [{
key: 'onChangeValidate',
key: "onChangeValidate",


/**
* Called when <input> value changes.
* @param e The input element, or something.
*/
value: function onChangeValidate(e, v) {
var value = null;
switch (this.props.form.schema.type) {
case 'integer':
case 'number':
if (e.target.value.indexOf('.') == -1) {
value = parseInt(e.target.value);
} else {
value = parseFloat(e.target.value);
}
var _props = this.props,
form = _props.form,
onChange = _props.onChange;

if (isNaN(value)) {
value = undefined;
}
var value = null;
switch (form.schema.type) {
case "integer":
value = parseInt(e.target.value, 10);
break;
case 'boolean':
case "number":
{
var values = e.target.value.split(".");
if (values.length < 2) {
value = parseInt(e.target.value, 10);
} else if (values.length > 1) {
if (values[1].length > 0) value = parseFloat(e.target.value);else value = parseInt(values[0], 10) + ".";
}
break;
}
case "boolean":
value = e.target.checked;
break;
case 'tBoolean':
if (e.target.value != 'yes' || e.target.value != 'no') {
case "tBoolean":
if (e.target.value !== "yes" || e.target.value !== "no") {
value = v;
}
break;

case 'array':
case "array":
value = e;
break;
case 'object':
case "object":
if (form.type === "date") {
if (e.target.value.length > 0) {
value = new Date(e.target.value);
} else {
value = "";
}
break;
}
value = e.target.value;

break;
default:
value = e.target.value;

}

//console.log('onChangeValidate this.props.form, value', this.props.form, value);
var validationResult = utils.validate(this.props.form, value);
var validationResult = _utils2.default.validate(form, value);
this.setState({
value: value,
valid: validationResult.valid,
error: validationResult.valid ? null : validationResult.error.message
});

this.props.onChange(this.props.form.key, value);
onChange(form.key, value);
}
}, {
key: 'render',
key: "render",
value: function render() {
return _react2.default.createElement(ComposedComponent, _extends({}, defaultProps, this.props, this.state, { onChangeValidate: this.onChangeValidate }));
return _react2.default.createElement(ComposedComponent, _extends({}, defaultProps, this.props, this.state, {
onChangeValidate: this.onChangeValidate
}));
}
}], [{
key: 'getDerivedStateFromProps',
key: "getDerivedStateFromProps",
value: function getDerivedStateFromProps(nextProps) {
var value = defaultValue(nextProps);
var validationResult = utils.validate(nextProps.form, value);
var validationResult = _utils2.default.validate(nextProps.form, value);
return {
value: value,
valid: validationResult.valid,
Expand Down
8 changes: 4 additions & 4 deletions lib/Date.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});

var _ComposedComponent = require('./ComposedComponent');
var _ComposedComponent = require("./ComposedComponent");

var _ComposedComponent2 = _interopRequireDefault(_ComposedComponent);

var _NativeDateField = require('./NativeDateField');
var _NativeDateField = require("./NativeDateField");

var _NativeDateField2 = _interopRequireDefault(_NativeDateField);

Expand All @@ -17,4 +17,4 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
/**
* Created by steve on 22/12/15.
*/
exports.default = (0, _ComposedComponent2.default)(_NativeDateField2.default, { type: 'date' });
exports.default = (0, _ComposedComponent2.default)(_NativeDateField2.default, { type: "date" });
8 changes: 4 additions & 4 deletions lib/DateTime.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});

var _ComposedComponent = require('./ComposedComponent');
var _ComposedComponent = require("./ComposedComponent");

var _ComposedComponent2 = _interopRequireDefault(_ComposedComponent);

var _NativeDateField = require('./NativeDateField');
var _NativeDateField = require("./NativeDateField");

var _NativeDateField2 = _interopRequireDefault(_NativeDateField);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = (0, _ComposedComponent2.default)(_NativeDateField2.default, { type: 'datetime-local' });
exports.default = (0, _ComposedComponent2.default)(_NativeDateField2.default, { type: "datetime-local" });
Loading