UNPKG

material-ui

Version:

React Components that Implement Google's Material Design.

95 lines (78 loc) 2.39 kB
'use strict'; 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; }