time-picker.mjs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { defineComponent, ref, provide, createVNode, mergeProps } from 'vue';
  2. import dayjs from 'dayjs';
  3. import customParseFormat from 'dayjs/plugin/customParseFormat.js';
  4. import { DEFAULT_FORMATS_TIME } from './constants.mjs';
  5. import CommonPicker from './common/picker.mjs';
  6. import TimePickPanel from './time-picker-com/panel-time-pick.mjs';
  7. import TimeRangePanel from './time-picker-com/panel-time-range.mjs';
  8. import { timePickerDefaultProps } from './common/props.mjs';
  9. import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
  10. dayjs.extend(customParseFormat);
  11. var TimePicker = defineComponent({
  12. name: "ElTimePicker",
  13. install: null,
  14. props: {
  15. ...timePickerDefaultProps,
  16. isRange: {
  17. type: Boolean,
  18. default: false
  19. }
  20. },
  21. emits: [UPDATE_MODEL_EVENT],
  22. setup(props, ctx) {
  23. const commonPicker = ref();
  24. const [type, Panel] = props.isRange ? ["timerange", TimeRangePanel] : ["time", TimePickPanel];
  25. const modelUpdater = (value) => ctx.emit(UPDATE_MODEL_EVENT, value);
  26. provide("ElPopperOptions", props.popperOptions);
  27. ctx.expose({
  28. focus: () => {
  29. var _a;
  30. (_a = commonPicker.value) == null ? void 0 : _a.focus();
  31. },
  32. blur: () => {
  33. var _a;
  34. (_a = commonPicker.value) == null ? void 0 : _a.blur();
  35. },
  36. handleOpen: () => {
  37. var _a;
  38. (_a = commonPicker.value) == null ? void 0 : _a.handleOpen();
  39. },
  40. handleClose: () => {
  41. var _a;
  42. (_a = commonPicker.value) == null ? void 0 : _a.handleClose();
  43. }
  44. });
  45. return () => {
  46. var _a;
  47. const format = (_a = props.format) != null ? _a : DEFAULT_FORMATS_TIME;
  48. return createVNode(CommonPicker, mergeProps(props, {
  49. "ref": commonPicker,
  50. "type": type,
  51. "format": format,
  52. "onUpdate:modelValue": modelUpdater
  53. }), {
  54. default: (props2) => createVNode(Panel, props2, null)
  55. });
  56. };
  57. }
  58. });
  59. export { TimePicker as default };
  60. //# sourceMappingURL=time-picker.mjs.map