semantic-ui-calendar-react
Version:
date/time picker built from semantic-ui elements
98 lines (76 loc) • 2.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.parseValue = parseValue;
exports.parseArrayOrValue = parseArrayOrValue;
exports.getInitializer = getInitializer;
exports.chooseValue = chooseValue;
exports.TIME_FORMAT = void 0;
var _moment = _interopRequireDefault(require("moment"));
var _lodash = _interopRequireDefault(require("lodash"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TIME_FORMAT = {
'24': 'HH:mm',
'AMPM': 'hh:mm A',
'ampm': 'hh:mm a'
};
/** Parse string, moment, Date.
*
* Return unedfined on invalid input.
*/
exports.TIME_FORMAT = TIME_FORMAT;
function parseValue(value, dateFormat) {
if (!_lodash.default.isNil(value) && !_lodash.default.isNil(dateFormat)) {
var date = (0, _moment.default)(value, dateFormat);
if (date.isValid()) {
return date;
}
}
}
/** Parse string, moment, Date, string[], moment[], Date[].
*
* Return array of moments or moment. Returned value contains only valid moments.
* Return undefined if none of the input values are valid.
*/
function parseArrayOrValue(data, dateFormat) {
if (_lodash.default.isArray(data)) {
var parsed = _lodash.default.compact(data.map(function (item) {
return parseValue(item, dateFormat);
}));
if (parsed.length > 0) {
return parsed;
}
}
return parseValue(data, dateFormat);
}
/** Create moment.
*
* Creates moment using `dateParams` or `initialDate` arguments (if provided).
* Precedense order: dateParams -> initialDate -> default value
*/
function getInitializer(context
/*value, initialDate, dateFormat, dateParams*/
) {
var dateParams = context.dateParams,
initialDate = context.initialDate,
dateFormat = context.dateFormat;
if (dateParams) {
var parsedParams = (0, _moment.default)(dateParams);
if (parsedParams.isValid()) {
return parsedParams;
}
}
var parsedInitialDate = parseValue(initialDate, dateFormat);
if (parsedInitialDate) {
return parsedInitialDate;
}
return (0, _moment.default)();
}
/** Return initial date if `value` is empty and if `initialDate` provided. */
function chooseValue(value, initialDate) {
if (value === '' && initialDate) {
return initialDate;
}
return value;
}
;