ea5d0bf57f08d6a288c3ff4afe17ffa8b5c11b5793edf98ec5bd11fd778a0ada6a7c4afb02a6bbcf1084d47edca81034707d78ac95fc218db91b7015656a3f 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. const useTimePanel = ({
  4. getAvailableHours,
  5. getAvailableMinutes,
  6. getAvailableSeconds
  7. }) => {
  8. const getAvailableTime = (date, role, first, compareDate) => {
  9. const availableTimeGetters = {
  10. hour: getAvailableHours,
  11. minute: getAvailableMinutes,
  12. second: getAvailableSeconds
  13. };
  14. let result = date;
  15. ["hour", "minute", "second"].forEach((type) => {
  16. if (availableTimeGetters[type]) {
  17. let availableTimeSlots;
  18. const method = availableTimeGetters[type];
  19. switch (type) {
  20. case "minute": {
  21. availableTimeSlots = method(result.hour(), role, compareDate);
  22. break;
  23. }
  24. case "second": {
  25. availableTimeSlots = method(result.hour(), result.minute(), role, compareDate);
  26. break;
  27. }
  28. default: {
  29. availableTimeSlots = method(role, compareDate);
  30. break;
  31. }
  32. }
  33. if ((availableTimeSlots == null ? void 0 : availableTimeSlots.length) && !availableTimeSlots.includes(result[type]())) {
  34. const pos = first ? 0 : availableTimeSlots.length - 1;
  35. result = result[type](availableTimeSlots[pos]);
  36. }
  37. }
  38. });
  39. return result;
  40. };
  41. const timePickerOptions = {};
  42. const onSetOption = ([key, val]) => {
  43. timePickerOptions[key] = val;
  44. };
  45. return {
  46. timePickerOptions,
  47. getAvailableTime,
  48. onSetOption
  49. };
  50. };
  51. exports.useTimePanel = useTimePanel;
  52. //# sourceMappingURL=use-time-panel.js.map