element-plus
Version:
A Component Library for Vue 3
68 lines (66 loc) • 2.9 kB
JavaScript
import { UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
import { isUndefined as isUndefined$1 } from "../../../utils/types.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { PICKER_BASE_INJECTION_KEY, ROOT_COMMON_PICKER_INJECTION_KEY } from "../../time-picker/src/constants.mjs";
import { useCommonPicker } from "../../time-picker/src/composables/use-common-picker.mjs";
import { datePickerPanelProps } from "./props/date-picker-panel.mjs";
import { ROOT_PICKER_INJECTION_KEY } from "./constants.mjs";
import { getPanel } from "./panel-utils.mjs";
import { omit } from "lodash-unified";
import { createVNode, defineComponent, inject, isVNode, mergeProps, provide, reactive, toRefs } from "vue";
import dayjs from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat.js";
import localeData from "dayjs/plugin/localeData.js";
import advancedFormat from "dayjs/plugin/advancedFormat.js";
import weekOfYear from "dayjs/plugin/weekOfYear.js";
import weekYear from "dayjs/plugin/weekYear.js";
import dayOfYear from "dayjs/plugin/dayOfYear.js";
import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js";
import isSameOrBefore from "dayjs/plugin/isSameOrBefore.js";
//#region ../../packages/components/date-picker-panel/src/date-picker-panel.tsx
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
}
dayjs.extend(localeData);
dayjs.extend(advancedFormat);
dayjs.extend(customParseFormat);
dayjs.extend(weekOfYear);
dayjs.extend(weekYear);
dayjs.extend(dayOfYear);
dayjs.extend(isSameOrAfter);
dayjs.extend(isSameOrBefore);
var date_picker_panel_default = /* @__PURE__ */ defineComponent({
name: "ElDatePickerPanel",
install: null,
inheritAttrs: false,
props: datePickerPanelProps,
emits: [
UPDATE_MODEL_EVENT,
"calendar-change",
"panel-change",
"visible-change",
"clear"
],
setup(props, { slots, emit, attrs }) {
const ns = useNamespace("picker-panel");
if (isUndefined$1(inject(PICKER_BASE_INJECTION_KEY, void 0))) provide(PICKER_BASE_INJECTION_KEY, { props: reactive({ ...toRefs(props) }) });
provide(ROOT_PICKER_INJECTION_KEY, {
slots,
pickerNs: ns
});
const { parsedValue, onCalendarChange, onPanelChange, onSetPickerOption, onPick } = inject(ROOT_COMMON_PICKER_INJECTION_KEY, () => useCommonPicker(props, emit), true);
return () => {
return createVNode(getPanel(props.type), mergeProps(omit(attrs, "onPick"), props, {
"parsedValue": parsedValue.value,
"onSet-picker-option": onSetPickerOption,
"onCalendar-change": onCalendarChange,
"onPanel-change": onPanelChange,
"onClear": () => emit("clear"),
"onPick": onPick
}), _isSlot(slots) ? slots : { default: () => [slots] });
};
}
});
//#endregion
export { date_picker_panel_default as default };
//# sourceMappingURL=date-picker-panel.mjs.map