time-picker.mjs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
  2. import { PICKER_POPPER_OPTIONS_INJECTION_KEY } from "./constants.mjs";
  3. import { timePickerDefaultProps } from "./common/props.mjs";
  4. import picker_default from "./common/picker.mjs";
  5. import panel_time_pick_default from "./time-picker-com/panel-time-pick.mjs";
  6. import panel_time_range_default from "./time-picker-com/panel-time-range.mjs";
  7. import { createVNode, defineComponent, mergeProps, provide, ref } from "vue";
  8. import dayjs from "dayjs";
  9. import customParseFormat from "dayjs/plugin/customParseFormat.js";
  10. //#region ../../packages/components/time-picker/src/time-picker.tsx
  11. dayjs.extend(customParseFormat);
  12. var time_picker_default = /* @__PURE__ */ defineComponent({
  13. name: "ElTimePicker",
  14. install: null,
  15. props: {
  16. ...timePickerDefaultProps,
  17. /**
  18. * @description whether to pick a time range
  19. */
  20. isRange: Boolean
  21. },
  22. emits: [UPDATE_MODEL_EVENT],
  23. setup(props, ctx) {
  24. const commonPicker = ref();
  25. const [type, Panel] = props.isRange ? ["timerange", panel_time_range_default] : ["time", panel_time_pick_default];
  26. const modelUpdater = (value) => ctx.emit(UPDATE_MODEL_EVENT, value);
  27. provide(PICKER_POPPER_OPTIONS_INJECTION_KEY, props.popperOptions);
  28. ctx.expose({
  29. /**
  30. * @description focus the Input component
  31. */
  32. focus: () => {
  33. commonPicker.value?.focus();
  34. },
  35. /**
  36. * @description blur the Input component
  37. */
  38. blur: () => {
  39. commonPicker.value?.blur();
  40. },
  41. /**
  42. * @description open the TimePicker popper
  43. */
  44. handleOpen: () => {
  45. commonPicker.value?.handleOpen();
  46. },
  47. /**
  48. * @description close the TimePicker popper
  49. */
  50. handleClose: () => {
  51. commonPicker.value?.handleClose();
  52. }
  53. });
  54. return () => {
  55. return createVNode(picker_default, mergeProps(props, {
  56. "ref": commonPicker,
  57. "type": type,
  58. "format": props.format ?? "HH:mm:ss",
  59. "onUpdate:modelValue": modelUpdater
  60. }), { default: (props) => createVNode(Panel, props, null) });
  61. };
  62. }
  63. });
  64. //#endregion
  65. export { time_picker_default as default };
  66. //# sourceMappingURL=time-picker.mjs.map