index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import PickerButton from '../PickerButton';
  3. import PickerTag from '../PickerTag';
  4. import generateSinglePicker from './generateSinglePicker';
  5. import generateRangePicker from './generateRangePicker';
  6. export * from './interface';
  7. export const Components = {
  8. button: PickerButton,
  9. rangeItem: PickerTag
  10. };
  11. function toArray(list) {
  12. if (!list) {
  13. return [];
  14. }
  15. return Array.isArray(list) ? list : [list];
  16. }
  17. export function getTimeProps(props) {
  18. const {
  19. format,
  20. picker,
  21. showHour,
  22. showMinute,
  23. showSecond,
  24. use12Hours
  25. } = props;
  26. const firstFormat = toArray(format)[0];
  27. const showTimeObj = _extends({}, props);
  28. if (firstFormat && typeof firstFormat === 'string') {
  29. if (!firstFormat.includes('s') && showSecond === undefined) {
  30. showTimeObj.showSecond = false;
  31. }
  32. if (!firstFormat.includes('m') && showMinute === undefined) {
  33. showTimeObj.showMinute = false;
  34. }
  35. if (!firstFormat.includes('H') && !firstFormat.includes('h') && showHour === undefined) {
  36. showTimeObj.showHour = false;
  37. }
  38. if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {
  39. showTimeObj.use12Hours = true;
  40. }
  41. }
  42. if (picker === 'time') {
  43. return showTimeObj;
  44. }
  45. if (typeof firstFormat === 'function') {
  46. // format of showTime should use default when format is custom format function
  47. delete showTimeObj.format;
  48. }
  49. return {
  50. showTime: showTimeObj
  51. };
  52. }
  53. function generatePicker(generateConfig, extraProps) {
  54. // =========================== Picker ===========================
  55. const {
  56. DatePicker,
  57. WeekPicker,
  58. MonthPicker,
  59. YearPicker,
  60. TimePicker,
  61. QuarterPicker
  62. } = generateSinglePicker(generateConfig, extraProps);
  63. // ======================== Range Picker ========================
  64. const RangePicker = generateRangePicker(generateConfig, extraProps);
  65. return {
  66. DatePicker,
  67. WeekPicker,
  68. MonthPicker,
  69. YearPicker,
  70. TimePicker,
  71. QuarterPicker,
  72. RangePicker
  73. };
  74. }
  75. export default generatePicker;