Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

95 rader
2.3 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.addHours = addHours;
  6. exports.addMinutes = addMinutes;
  7. exports.addSeconds = addSeconds;
  8. exports.formatTime = formatTime;
  9. exports.rad2deg = rad2deg;
  10. exports.getTouchEventOffsetValues = getTouchEventOffsetValues;
  11. exports.isInner = isInner;
  12. function addHours(d, hours) {
  13. var newDate = clone(d);
  14. newDate.setHours(d.getHours() + hours);
  15. return newDate;
  16. }
  17. function addMinutes(d, minutes) {
  18. var newDate = clone(d);
  19. newDate.setMinutes(d.getMinutes() + minutes);
  20. return newDate;
  21. }
  22. function addSeconds(d, seconds) {
  23. var newDate = clone(d);
  24. newDate.setSeconds(d.getMinutes() + seconds);
  25. return newDate;
  26. }
  27. function clone(d) {
  28. return new Date(d.getTime());
  29. }
  30. /**
  31. * @param date [Date] A Date object.
  32. * @param format [String] One of 'ampm', '24hr', defaults to 'ampm'.
  33. * @param pedantic [Boolean] Check time-picker/time-picker.jsx file.
  34. *
  35. * @return String A string representing the formatted time.
  36. */
  37. function formatTime(date) {
  38. var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ampm';
  39. var pedantic = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  40. if (!date) return '';
  41. var hours = date.getHours();
  42. var mins = date.getMinutes().toString();
  43. if (format === 'ampm') {
  44. var isAM = hours < 12;
  45. hours = hours % 12;
  46. var additional = isAM ? ' am' : ' pm';
  47. hours = (hours || 12).toString();
  48. if (mins.length < 2) mins = '0' + mins;
  49. if (pedantic) {
  50. // Treat midday/midnight specially http://www.nist.gov/pml/div688/times.cfm
  51. if (hours === '12' && mins === '00') {
  52. return additional === ' pm' ? '12 noon' : '12 midnight';
  53. }
  54. }
  55. return hours + (mins === '00' ? '' : ':' + mins) + additional;
  56. }
  57. hours = hours.toString();
  58. if (hours.length < 2) hours = '0' + hours;
  59. if (mins.length < 2) mins = '0' + mins;
  60. return hours + ':' + mins;
  61. }
  62. function rad2deg(rad) {
  63. return rad * 57.29577951308232;
  64. }
  65. function getTouchEventOffsetValues(event) {
  66. var el = event.target;
  67. var boundingRect = el.getBoundingClientRect();
  68. return {
  69. offsetX: event.clientX - boundingRect.left,
  70. offsetY: event.clientY - boundingRect.top
  71. };
  72. }
  73. function isInner(props) {
  74. if (props.type !== 'hour') {
  75. return false;
  76. }
  77. return props.value < 1 || props.value > 12;
  78. }