feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
@@ -0,0 +1,9 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { DEFAULT_STEP, TimeSelectInstance, TimeSelectProps, TimeSelectPropsPublic, timeSelectProps } from "./src/time-select.js";
import { _default } from "./src/time-select.vue.js";
//#region ../../packages/components/time-select/index.d.ts
declare const ElTimeSelect: SFCWithInstall<typeof _default>;
//#endregion
export { DEFAULT_STEP, ElTimeSelect, ElTimeSelect as default, TimeSelectInstance, TimeSelectProps, TimeSelectPropsPublic, timeSelectProps };
+10
View File
@@ -0,0 +1,10 @@
import { withInstall } from "../../utils/vue/install.mjs";
import { DEFAULT_STEP, timeSelectProps } from "./src/time-select.mjs";
import time_select_default from "./src/time-select2.mjs";
//#region ../../packages/components/time-select/index.ts
const ElTimeSelect = withInstall(time_select_default);
//#endregion
export { DEFAULT_STEP, ElTimeSelect, ElTimeSelect as default, timeSelectProps };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["TimeSelect"],"sources":["../../../../../packages/components/time-select/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport TimeSelect from './src/time-select.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElTimeSelect: SFCWithInstall<typeof TimeSelect> =\n withInstall(TimeSelect)\nexport default ElTimeSelect\n\nexport * from './src/time-select'\n"],"mappings":";;;;;AAKA,MAAa,eACX,YAAYA,oBAAW"}
@@ -0,0 +1,150 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import { ComponentSize } from "../../../constants/size.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import { UseEmptyValuesProps } from "../../../hooks/use-empty-values/index.js";
import "../../../hooks/index.js";
import { _default } from "./time-select.vue.js";
import "../../popper/index.js";
import * as vue from "vue";
import { CSSProperties, Component, ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/time-select/src/time-select.d.ts
interface TimeSelectProps extends UseEmptyValuesProps {
/**
* @description set format of time
*/
format?: string;
/**
* @description binding value
*/
modelValue?: string | null;
/**
* @description whether TimeSelect is disabled
*/
disabled?: boolean;
/**
* @description whether the input is editable
*/
editable?: boolean;
/**
* @description Tooltip theme, built-in theme: `dark` / `light`
*/
effect?: PopperEffect;
/**
* @description whether to show clear button
*/
clearable?: boolean;
/**
* @description size of Input
*/
size?: ComponentSize;
/**
* @description placeholder in non-range mode
*/
placeholder?: string;
/**
* @description start time
*/
start?: string;
/**
* @description end time
*/
end?: string;
/**
* @description time step
*/
step?: string;
/**
* @description minimum time, any time before this time will be disabled
*/
minTime?: string | null;
/**
* @description maximum time, any time after this time will be disabled
*/
maxTime?: string | null;
/**
* @description whether `end` is included in options
*/
includeEndTime?: boolean;
/**
* @description same as `name` in native input
*/
name?: string;
/**
* @description custom prefix icon component
*/
prefixIcon?: IconPropType;
/**
* @description custom clear icon component
*/
clearIcon?: IconPropType;
/**
* @description custom class name for TimeSelect's dropdown
*/
popperClass?: string;
/**
* @description custom style for TimeSelect's dropdown
*/
popperStyle?: string | CSSProperties;
}
declare const DEFAULT_STEP = "00:30";
/**
* @deprecated Removed after 3.0.0, Use `TimeSelectProps` instead.
*/
declare const timeSelectProps: {
readonly emptyValues: ArrayConstructor;
readonly valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
readonly format: EpPropFinalized<StringConstructor, unknown, unknown, "HH:mm", boolean>;
readonly modelValue: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
readonly editable: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly effect: EpPropFinalized<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown, "light", boolean>;
readonly clearable: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly size: {
readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly placeholder: StringConstructor;
readonly start: EpPropFinalized<StringConstructor, unknown, unknown, "09:00", boolean>;
readonly end: EpPropFinalized<StringConstructor, unknown, unknown, "18:00", boolean>;
readonly step: EpPropFinalized<StringConstructor, unknown, unknown, "00:30", boolean>;
readonly minTime: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly maxTime: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | (((new (...args: any[]) => string) | (() => string | null)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly includeEndTime: BooleanConstructor;
readonly name: StringConstructor;
readonly prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | (((new (...args: any[]) => (string | Component) & {}) | (() => string | Component)) | null)[], unknown, unknown, () => vue.DefineComponent<{}, void, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
readonly clearIcon: EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | (((new (...args: any[]) => (string | Component) & {}) | (() => string | Component)) | null)[], unknown, unknown, () => vue.DefineComponent<{}, void, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
readonly popperClass: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly popperStyle: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | (((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
/**
* @deprecated Removed after 3.0.0, Use `TimeSelectProps` instead.
*/
type TimeSelectPropsPublic = ExtractPublicPropTypes<typeof timeSelectProps>;
type TimeSelectInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { DEFAULT_STEP, TimeSelectInstance, TimeSelectProps, TimeSelectPropsPublic, timeSelectProps };
@@ -0,0 +1,69 @@
import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs";
import { useSizeProp } from "../../../hooks/use-size/index.mjs";
import { useEmptyValuesProps } from "../../../hooks/use-empty-values/index.mjs";
import { CircleClose, Clock } from "@element-plus/icons-vue";
//#region ../../packages/components/time-select/src/time-select.ts
const DEFAULT_STEP = "00:30";
/**
* @deprecated Removed after 3.0.0, Use `TimeSelectProps` instead.
*/
const timeSelectProps = buildProps({
format: {
type: String,
default: "HH:mm"
},
modelValue: { type: definePropType(String) },
disabled: {
type: Boolean,
default: void 0
},
editable: {
type: Boolean,
default: true
},
effect: {
type: definePropType(String),
default: "light"
},
clearable: {
type: Boolean,
default: true
},
size: useSizeProp,
placeholder: String,
start: {
type: String,
default: "09:00"
},
end: {
type: String,
default: "18:00"
},
step: {
type: String,
default: DEFAULT_STEP
},
minTime: { type: definePropType(String) },
maxTime: { type: definePropType(String) },
includeEndTime: Boolean,
name: String,
prefixIcon: {
type: definePropType([String, Object]),
default: () => Clock
},
clearIcon: {
type: definePropType([String, Object]),
default: () => CircleClose
},
popperClass: {
type: String,
default: ""
},
popperStyle: { type: definePropType([String, Object]) },
...useEmptyValuesProps
});
//#endregion
export { DEFAULT_STEP, timeSelectProps };
//# sourceMappingURL=time-select.mjs.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,47 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import { TimeSelectProps } from "./time-select.js";
import "../../../index.js";
import * as vue from "vue";
//#region ../../packages/components/time-select/src/time-select.vue.d.ts
declare const __VLS_export: vue.DefineComponent<TimeSelectProps, {
/**
* @description blur the Input component
*/
blur: () => void;
/**
* @description focus the Input component
*/
focus: () => void;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
blur: (...args: any[]) => void;
change: (...args: any[]) => void;
focus: (...args: any[]) => void;
"update:modelValue": (...args: any[]) => void;
clear: (...args: any[]) => void;
}, string, vue.PublicProps, Readonly<TimeSelectProps> & Readonly<{
onBlur?: ((...args: any[]) => any) | undefined;
onChange?: ((...args: any[]) => any) | undefined;
onFocus?: ((...args: any[]) => any) | undefined;
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
onClear?: ((...args: any[]) => any) | undefined;
}>, {
effect: PopperEffect;
disabled: boolean;
clearable: boolean;
clearIcon: IconPropType;
prefixIcon: IconPropType;
end: string;
start: string;
popperClass: string;
popperStyle: string | vue.CSSProperties;
valueOnClear: string | number | boolean | Function | null;
editable: boolean;
format: string;
step: string;
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
declare const _default: typeof __VLS_export;
//#endregion
export { _default };
@@ -0,0 +1,153 @@
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
import { debugWarn } from "../../../utils/error.mjs";
import { useLocale } from "../../../hooks/use-locale/index.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { ElIcon } from "../../icon/index.mjs";
import { useFormDisabled } from "../../form/src/hooks/use-form-common-props.mjs";
import { ElSelect } from "../../select/index.mjs";
import { DEFAULT_STEP, timeSelectProps } from "./time-select.mjs";
import { compareTime, formatTime, nextTime, parseTime } from "./utils.mjs";
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeClass, openBlock, ref, renderList, resolveDynamicComponent, unref, withCtx } from "vue";
import dayjs from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat.js";
//#region ../../packages/components/time-select/src/time-select.vue?vue&type=script&setup=true&lang.ts
var time_select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElTimeSelect",
__name: "time-select",
props: timeSelectProps,
emits: [
CHANGE_EVENT,
"blur",
"focus",
"clear",
UPDATE_MODEL_EVENT
],
setup(__props, { expose: __expose }) {
dayjs.extend(customParseFormat);
const { Option: ElOption } = ElSelect;
const props = __props;
const nsInput = useNamespace("input");
const select = ref();
const _disabled = useFormDisabled();
const { lang } = useLocale();
const value = computed(() => props.modelValue);
const start = computed(() => {
const time = parseTime(props.start);
return time ? formatTime(time) : null;
});
const end = computed(() => {
const time = parseTime(props.end);
return time ? formatTime(time) : null;
});
const minTime = computed(() => {
const time = parseTime(props.minTime || "");
return time ? formatTime(time) : null;
});
const maxTime = computed(() => {
const time = parseTime(props.maxTime || "");
return time ? formatTime(time) : null;
});
const step = computed(() => {
const time = parseTime(props.step);
const isInvalidStep = !time || time.hours < 0 || time.minutes < 0 || Number.isNaN(time.hours) || Number.isNaN(time.minutes) || time.hours === 0 && time.minutes === 0;
if (isInvalidStep) debugWarn("ElTimeSelect", `invalid step, fallback to default step (${DEFAULT_STEP}).`);
return !isInvalidStep ? formatTime(time) : DEFAULT_STEP;
});
const items = computed(() => {
const result = [];
const push = (formattedValue, rawValue) => {
result.push({
value: formattedValue,
rawValue,
disabled: compareTime(rawValue, minTime.value || "-1:-1") <= 0 || compareTime(rawValue, maxTime.value || "100:100") >= 0
});
};
if (props.start && props.end && props.step) {
let current = start.value;
let currentTime;
while (current && end.value && compareTime(current, end.value) <= 0) {
currentTime = dayjs(current, "HH:mm").locale(lang.value).format(props.format);
push(currentTime, current);
current = nextTime(current, step.value);
}
if (props.includeEndTime && end.value && result[result.length - 1]?.rawValue !== end.value) push(dayjs(end.value, "HH:mm").locale(lang.value).format(props.format), end.value);
}
return result;
});
const blur = () => {
select.value?.blur?.();
};
const focus = () => {
select.value?.focus?.();
};
__expose({
blur,
focus
});
return (_ctx, _cache) => {
return openBlock(), createBlock(unref(ElSelect), {
ref_key: "select",
ref: select,
name: __props.name,
"model-value": value.value,
disabled: unref(_disabled),
clearable: __props.clearable,
"clear-icon": __props.clearIcon,
size: __props.size,
effect: __props.effect,
placeholder: __props.placeholder,
"default-first-option": "",
filterable: __props.editable,
"empty-values": __props.emptyValues,
"value-on-clear": __props.valueOnClear,
"popper-class": __props.popperClass,
"popper-style": __props.popperStyle,
"onUpdate:modelValue": _cache[0] || (_cache[0] = (event) => _ctx.$emit(unref(UPDATE_MODEL_EVENT), event)),
onChange: _cache[1] || (_cache[1] = (event) => _ctx.$emit(unref(CHANGE_EVENT), event)),
onBlur: _cache[2] || (_cache[2] = (event) => _ctx.$emit("blur", event)),
onFocus: _cache[3] || (_cache[3] = (event) => _ctx.$emit("focus", event)),
onClear: _cache[4] || (_cache[4] = () => _ctx.$emit("clear"))
}, {
prefix: withCtx(() => [__props.prefixIcon ? (openBlock(), createBlock(unref(ElIcon), {
key: 0,
class: normalizeClass(unref(nsInput).e("prefix-icon"))
}, {
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(__props.prefixIcon)))]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)]),
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(items.value, (item) => {
return openBlock(), createBlock(unref(ElOption), {
key: item.value,
label: item.value,
value: item.value,
disabled: item.disabled
}, null, 8, [
"label",
"value",
"disabled"
]);
}), 128))]),
_: 1
}, 8, [
"name",
"model-value",
"disabled",
"clearable",
"clear-icon",
"size",
"effect",
"placeholder",
"filterable",
"empty-values",
"value-on-clear",
"popper-class",
"popper-style"
]);
};
}
});
//#endregion
export { time_select_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=time-select.vue_vue_type_script_setup_true_lang.mjs.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
import time_select_vue_vue_type_script_setup_true_lang_default from "./time-select.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/time-select/src/time-select.vue
var time_select_default = time_select_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { time_select_default as default };
//# sourceMappingURL=time-select2.mjs.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,51 @@
//#region ../../packages/components/time-select/src/utils.ts
const parseTime = (time) => {
const values = (time || "").split(":");
if (values.length >= 2) {
let hours = Number.parseInt(values[0], 10);
const minutes = Number.parseInt(values[1], 10);
const timeUpper = time.toUpperCase();
if (timeUpper.includes("AM") && hours === 12) hours = 0;
else if (timeUpper.includes("PM") && hours !== 12) hours += 12;
return {
hours,
minutes
};
}
return null;
};
const compareTime = (time1, time2) => {
const value1 = parseTime(time1);
if (!value1) return -1;
const value2 = parseTime(time2);
if (!value2) return -1;
const minutes1 = value1.minutes + value1.hours * 60;
const minutes2 = value2.minutes + value2.hours * 60;
if (minutes1 === minutes2) return 0;
return minutes1 > minutes2 ? 1 : -1;
};
const padTime = (time) => {
return `${time}`.padStart(2, "0");
};
const formatTime = (time) => {
return `${padTime(time.hours)}:${padTime(time.minutes)}`;
};
const nextTime = (time, step) => {
const timeValue = parseTime(time);
if (!timeValue) return "";
const stepValue = parseTime(step);
if (!stepValue) return "";
const next = {
hours: timeValue.hours,
minutes: timeValue.minutes
};
next.minutes += stepValue.minutes;
next.hours += stepValue.hours;
next.hours += Math.floor(next.minutes / 60);
next.minutes = next.minutes % 60;
return formatTime(next);
};
//#endregion
export { compareTime, formatTime, nextTime, padTime, parseTime };
//# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../../packages/components/time-select/src/utils.ts"],"sourcesContent":["interface Time {\n hours: number\n minutes: number\n}\n\nexport const parseTime = (time: string): null | Time => {\n const values = (time || '').split(':')\n if (values.length >= 2) {\n let hours = Number.parseInt(values[0], 10)\n const minutes = Number.parseInt(values[1], 10)\n const timeUpper = time.toUpperCase()\n if (timeUpper.includes('AM') && hours === 12) {\n hours = 0\n } else if (timeUpper.includes('PM') && hours !== 12) {\n hours += 12\n }\n return {\n hours,\n minutes,\n }\n }\n\n return null\n}\n\nexport const compareTime = (time1: string, time2: string): number => {\n const value1 = parseTime(time1)\n if (!value1) return -1\n const value2 = parseTime(time2)\n if (!value2) return -1\n const minutes1 = value1.minutes + value1.hours * 60\n const minutes2 = value2.minutes + value2.hours * 60\n if (minutes1 === minutes2) {\n return 0\n }\n return minutes1 > minutes2 ? 1 : -1\n}\n\nexport const padTime = (time: number | string) => {\n return `${time}`.padStart(2, '0')\n}\nexport const formatTime = (time: Time): string => {\n return `${padTime(time.hours)}:${padTime(time.minutes)}`\n}\n\nexport const nextTime = (time: string, step: string): string => {\n const timeValue = parseTime(time)\n if (!timeValue) return ''\n\n const stepValue = parseTime(step)\n if (!stepValue) return ''\n\n const next = {\n hours: timeValue.hours,\n minutes: timeValue.minutes,\n }\n next.minutes += stepValue.minutes\n next.hours += stepValue.hours\n next.hours += Math.floor(next.minutes / 60)\n next.minutes = next.minutes % 60\n return formatTime(next)\n}\n"],"mappings":";AAKA,MAAa,aAAa,SAA8B;CACtD,MAAM,UAAU,QAAQ,IAAI,MAAM,IAAI;AACtC,KAAI,OAAO,UAAU,GAAG;EACtB,IAAI,QAAQ,OAAO,SAAS,OAAO,IAAI,GAAG;EAC1C,MAAM,UAAU,OAAO,SAAS,OAAO,IAAI,GAAG;EAC9C,MAAM,YAAY,KAAK,aAAa;AACpC,MAAI,UAAU,SAAS,KAAK,IAAI,UAAU,GACxC,SAAQ;WACC,UAAU,SAAS,KAAK,IAAI,UAAU,GAC/C,UAAS;AAEX,SAAO;GACL;GACA;GACD;;AAGH,QAAO;;AAGT,MAAa,eAAe,OAAe,UAA0B;CACnE,MAAM,SAAS,UAAU,MAAM;AAC/B,KAAI,CAAC,OAAQ,QAAO;CACpB,MAAM,SAAS,UAAU,MAAM;AAC/B,KAAI,CAAC,OAAQ,QAAO;CACpB,MAAM,WAAW,OAAO,UAAU,OAAO,QAAQ;CACjD,MAAM,WAAW,OAAO,UAAU,OAAO,QAAQ;AACjD,KAAI,aAAa,SACf,QAAO;AAET,QAAO,WAAW,WAAW,IAAI;;AAGnC,MAAa,WAAW,SAA0B;AAChD,QAAO,GAAG,OAAO,SAAS,GAAG,IAAI;;AAEnC,MAAa,cAAc,SAAuB;AAChD,QAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,GAAG,QAAQ,KAAK,QAAQ;;AAGxD,MAAa,YAAY,MAAc,SAAyB;CAC9D,MAAM,YAAY,UAAU,KAAK;AACjC,KAAI,CAAC,UAAW,QAAO;CAEvB,MAAM,YAAY,UAAU,KAAK;AACjC,KAAI,CAAC,UAAW,QAAO;CAEvB,MAAM,OAAO;EACX,OAAO,UAAU;EACjB,SAAS,UAAU;EACpB;AACD,MAAK,WAAW,UAAU;AAC1B,MAAK,SAAS,UAAU;AACxB,MAAK,SAAS,KAAK,MAAM,KAAK,UAAU,GAAG;AAC3C,MAAK,UAAU,KAAK,UAAU;AAC9B,QAAO,WAAW,KAAK"}
@@ -0,0 +1,6 @@
import "../../base/style/css.mjs";
import "../../input/style/css.mjs";
import "../../scrollbar/style/css.mjs";
import "../../popper/style/css.mjs";
import "../../select/style/css.mjs";
import "element-plus/theme-chalk/el-time-select.css";
@@ -0,0 +1,6 @@
import "../../base/style/index.mjs";
import "../../input/style/index.mjs";
import "../../scrollbar/style/index.mjs";
import "../../popper/style/index.mjs";
import "../../select/style/index.mjs";
import "element-plus/theme-chalk/src/time-select.scss";