material-ui-pickers-fork
Version:
React components, that implements material design pickers for material-ui v1
87 lines (70 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.convertToMeridiem = exports.getMinutes = exports.getHours = void 0;
var center = {
x: 260 / 2,
y: 260 / 2
};
var basePoint = {
x: center.x,
y: 0
};
var cx = basePoint.x - center.x;
var cy = basePoint.y - center.y;
var rad2deg = function rad2deg(rad) {
return rad * 57.29577951308232;
};
var getAngleValue = function getAngleValue(step, offsetX, offsetY) {
var x = offsetX - center.x;
var y = offsetY - center.y;
var atan = Math.atan2(cx, cy) - Math.atan2(x, y);
var deg = rad2deg(atan);
deg = Math.round(deg / step) * step;
deg %= 360;
var value = Math.floor(deg / step) || 0; // eslint-disable-next-line no-restricted-properties
var delta = Math.pow(x, 2) + Math.pow(y, 2);
var distance = Math.sqrt(delta);
return {
value: value,
distance: distance
};
};
var getHours = function getHours(offsetX, offsetY, ampm) {
// eslint-disable-next-line
var _getAngleValue = getAngleValue(30, offsetX, offsetY),
value = _getAngleValue.value,
distance = _getAngleValue.distance;
value = value || 12;
if (!ampm) {
if (distance < 90) {
value += 12;
value %= 24;
}
} else {
value %= 12;
}
return value;
};
exports.getHours = getHours;
var getMinutes = function getMinutes(offsetX, offsetY, step) {
if (step === void 0) {
step = 6;
}
var _getAngleValue2 = getAngleValue(step, offsetX, offsetY),
value = _getAngleValue2.value;
return value;
};
exports.getMinutes = getMinutes;
var convertToMeridiem = function convertToMeridiem(time, meridiem, ampm, utils) {
if (ampm) {
var currentMeridiem = utils.getHours(time) >= 12 ? 'pm' : 'am';
if (currentMeridiem !== meridiem) {
var hours = meridiem === 'am' ? utils.getHours(time) - 12 : utils.getHours(time) + 12;
return utils.setHours(time, hours);
}
}
return time;
};
exports.convertToMeridiem = convertToMeridiem;