material-ui
Version:
React Components that Implement Google's Material Design.
95 lines (78 loc) • 2.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addHours = addHours;
exports.addMinutes = addMinutes;
exports.addSeconds = addSeconds;
exports.formatTime = formatTime;
exports.rad2deg = rad2deg;
exports.getTouchEventOffsetValues = getTouchEventOffsetValues;
exports.isInner = isInner;
function addHours(d, hours) {
var newDate = clone(d);
newDate.setHours(d.getHours() + hours);
return newDate;
}
function addMinutes(d, minutes) {
var newDate = clone(d);
newDate.setMinutes(d.getMinutes() + minutes);
return newDate;
}
function addSeconds(d, seconds) {
var newDate = clone(d);
newDate.setSeconds(d.getMinutes() + seconds);
return newDate;
}
function clone(d) {
return new Date(d.getTime());
}
/**
* @param date [Date] A Date object.
* @param format [String] One of 'ampm', '24hr', defaults to 'ampm'.
* @param pedantic [Boolean] Check time-picker/time-picker.jsx file.
*
* @return String A string representing the formatted time.
*/
function formatTime(date) {
var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ampm';
var pedantic = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (!date) return '';
var hours = date.getHours();
var mins = date.getMinutes().toString();
if (format === 'ampm') {
var isAM = hours < 12;
hours = hours % 12;
var additional = isAM ? ' am' : ' pm';
hours = (hours || 12).toString();
if (mins.length < 2) mins = '0' + mins;
if (pedantic) {
// Treat midday/midnight specially http://www.nist.gov/pml/div688/times.cfm
if (hours === '12' && mins === '00') {
return additional === ' pm' ? '12 noon' : '12 midnight';
}
}
return hours + (mins === '00' ? '' : ':' + mins) + additional;
}
hours = hours.toString();
if (hours.length < 2) hours = '0' + hours;
if (mins.length < 2) mins = '0' + mins;
return hours + ':' + mins;
}
function rad2deg(rad) {
return rad * 57.29577951308232;
}
function getTouchEventOffsetValues(event) {
var el = event.target;
var boundingRect = el.getBoundingClientRect();
return {
offsetX: event.clientX - boundingRect.left,
offsetY: event.clientY - boundingRect.top
};
}
function isInner(props) {
if (props.type !== 'hour') {
return false;
}
return props.value < 1 || props.value > 12;
}
;