commodo-fields-date
Version:
A simple date field, used with the Commodo "withFields" higher order function.
73 lines (56 loc) • 2.89 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.date = date;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _fields = require("@commodo/fields");
var _withFieldDataTypeValidation = _interopRequireDefault(require("@commodo/fields/fields/withFieldDataTypeValidation"));
var _repropose = require("repropose");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function checkDate(date) {
if (date.toString() === "Invalid Date") {
throw new _fields.WithFieldsError("Date field accepts Date object or an ISO 8601 formatted date/time string.", "INVALID_DATE_VALUE");
}
}
function prepareValue(value) {
if (value instanceof Date) {
checkDate(value);
return value;
}
if (typeof value === "string") {
var _date = new Date(value);
checkDate(_date);
return _date;
}
return value;
}
function date() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
list = _ref.list,
rest = (0, _objectWithoutProperties2["default"])(_ref, ["list"]);
return (0, _withFieldDataTypeValidation["default"])(function (value) {
return typeof value === "string" || value instanceof Date;
})((0, _repropose.withProps)(function (props) {
var _setValue = props.setValue;
return {
setValue: function setValue(value) {
if (this.list) {
var preparedValues = [];
value.forEach(function (item) {
return preparedValues.push(prepareValue(item));
});
return _setValue.call(this, preparedValues);
}
return _setValue.call(this, prepareValue(value));
}
};
})((0, _fields.createField)(_objectSpread({}, rest, {
list: list,
type: "date"
}))));
}
//# sourceMappingURL=index.js.map