element-plus
Version:
A Component Library for Vue 3
1 lines • 9.4 kB
Source Map (JSON)
{"version":3,"file":"time-select2.mjs","sources":["../../../../../../packages/components/time-select/src/time-select.vue"],"sourcesContent":["<template>\n <el-select\n ref=\"select\"\n :model-value=\"value\"\n :disabled=\"_disabled\"\n :clearable=\"clearable\"\n :clear-icon=\"clearIcon\"\n :size=\"size\"\n :effect=\"effect\"\n :placeholder=\"placeholder\"\n default-first-option\n :filterable=\"editable\"\n :empty-values=\"emptyValues\"\n :value-on-clear=\"valueOnClear\"\n :popper-class=\"popperClass\"\n :popper-style=\"popperStyle\"\n @update:model-value=\"(event) => $emit(UPDATE_MODEL_EVENT, event)\"\n @change=\"(event) => $emit(CHANGE_EVENT, event)\"\n @blur=\"(event) => $emit('blur', event)\"\n @focus=\"(event) => $emit('focus', event)\"\n @clear=\"() => $emit('clear')\"\n >\n <el-option\n v-for=\"item in items\"\n :key=\"item.value\"\n :label=\"item.value\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n />\n <template #prefix>\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('prefix-icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </template>\n </el-select>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js'\nimport ElSelect from '@element-plus/components/select'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport ElIcon from '@element-plus/components/icon'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { timeSelectProps } from './time-select'\nimport { compareTime, formatTime, nextTime, parseTime } from './utils'\n\ndayjs.extend(customParseFormat)\n\nconst { Option: ElOption } = ElSelect\n\ndefineOptions({\n name: 'ElTimeSelect',\n})\n\ndefineEmits([CHANGE_EVENT, 'blur', 'focus', 'clear', UPDATE_MODEL_EVENT])\n\nconst props = defineProps(timeSelectProps)\n\nconst nsInput = useNamespace('input')\nconst select = ref<typeof ElSelect>()\n\nconst _disabled = useFormDisabled()\nconst { lang } = useLocale()\n\nconst value = computed(() => props.modelValue)\nconst start = computed(() => {\n const time = parseTime(props.start)\n return time ? formatTime(time) : null\n})\n\nconst end = computed(() => {\n const time = parseTime(props.end)\n return time ? formatTime(time) : null\n})\n\nconst step = computed(() => {\n const time = parseTime(props.step)\n return time ? formatTime(time) : null\n})\n\nconst minTime = computed(() => {\n const time = parseTime(props.minTime || '')\n return time ? formatTime(time) : null\n})\n\nconst maxTime = computed(() => {\n const time = parseTime(props.maxTime || '')\n return time ? formatTime(time) : null\n})\n\nconst items = computed(() => {\n const result: { value: string; disabled: boolean }[] = []\n const push = (formattedValue: string, rawValue: string) => {\n result.push({\n value: formattedValue,\n disabled:\n compareTime(rawValue, minTime.value || '-1:-1') <= 0 ||\n compareTime(rawValue, maxTime.value || '100:100') >= 0,\n })\n }\n\n if (props.start && props.end && props.step) {\n let current = start.value\n let currentTime: string\n while (current && end.value && compareTime(current, end.value) <= 0) {\n currentTime = dayjs(current, 'HH:mm')\n .locale(lang.value)\n .format(props.format)\n push(currentTime, current)\n current = nextTime(current, step.value!)\n }\n if (\n props.includeEndTime &&\n end.value &&\n result[result.length - 1]?.value !== end.value\n ) {\n const formattedValue = dayjs(end.value, 'HH:mm')\n .locale(lang.value)\n .format(props.format)\n push(formattedValue, end.value)\n }\n }\n return result\n})\n\nconst blur = () => {\n select.value?.blur?.()\n}\n\nconst focus = () => {\n select.value?.focus?.()\n}\n\ndefineExpose({\n /**\n * @description blur the Input component\n */\n blur,\n /**\n * @description focus the Input component\n */\n focus,\n})\n</script>\n"],"names":["_createBlock","_unref","clearable","clearIcon","size","effect","placeholder","editable","emptyValues","valueOnClear","popperClass","popperStyle","$emit","_withCtx","prefixIcon","_normalizeClass","_openBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList"],"mappings":"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"}