DatetimePicker.mjs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
  2. import { ref, defineComponent } from "vue";
  3. import { pick, extend, createNamespace } from "../utils/index.mjs";
  4. import { useExpose } from "../composables/use-expose.mjs";
  5. import TimePicker from "./TimePicker.mjs";
  6. import DatePicker from "./DatePicker.mjs";
  7. const [name, bem] = createNamespace("datetime-picker");
  8. const timePickerPropKeys = Object.keys(TimePicker.props);
  9. const datePickerPropKeys = Object.keys(DatePicker.props);
  10. const datetimePickerProps = extend({}, TimePicker.props, DatePicker.props, {
  11. modelValue: [String, Date]
  12. });
  13. var stdin_default = defineComponent({
  14. name,
  15. props: datetimePickerProps,
  16. setup(props, {
  17. attrs,
  18. slots
  19. }) {
  20. const root = ref();
  21. useExpose({
  22. getPicker: () => {
  23. var _a;
  24. return (_a = root.value) == null ? void 0 : _a.getPicker();
  25. }
  26. });
  27. return () => {
  28. const isTimePicker = props.type === "time";
  29. const Component = isTimePicker ? TimePicker : DatePicker;
  30. const inheritProps = pick(props, isTimePicker ? timePickerPropKeys : datePickerPropKeys);
  31. return _createVNode(Component, _mergeProps({
  32. "ref": root,
  33. "class": bem()
  34. }, inheritProps, attrs), slots);
  35. };
  36. }
  37. });
  38. export {
  39. stdin_default as default
  40. };