@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 5.57 kB
Source Map (JSON)
{"version":3,"file":"time-select2.mjs","sources":["../../../../../../packages/components/time-select/src/time-select.vue"],"sourcesContent":["<template>\n <vs-select\n ref=\"selectInstance\"\n :model-value=\"value\"\n :disabled=\"disabled\"\n :clearable=\"clearable\"\n :clear-icon=\"clearIcon\"\n :effect=\"effect\"\n :placeholder=\"placeholder\"\n default-first-option\n :filter=\"editable\"\n @update:model-value=\"(event) => $emit('update:modelValue', event)\"\n @change=\"(event) => $emit('change', event)\"\n @blur=\"(event) => $emit('blur', event)\"\n @focus=\"(event) => $emit('focus', event)\"\n >\n <vs-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 </vs-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 { VsOption, VsSelect } from '@vuesax-alpha/components/select'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport { compareTime, formatTime, nextTime, parseTime } from './utils'\nimport { timeSelectProps } from './time-select'\nimport type { SelectInstance } from '@vuesax-alpha/components/select'\n\ndayjs.extend(customParseFormat)\n\ndefineOptions({\n name: 'VsTimeSelect',\n})\n\ndefineEmits(['change', 'blur', 'focus', UPDATE_MODEL_EVENT])\nconst props = defineProps(timeSelectProps)\n\nconst selectInstance = ref<SelectInstance>()\n\nconst value = computed(() =>\n dayjs(props.modelValue || start.value, 'HH:mm').format(props.format)\n)\nconst start = computed(() => {\n const time = parseTime(props.start)\n return time ? formatTime(time) : null\n})\nconst end = computed(() => {\n const time = parseTime(props.end)\n return time ? formatTime(time) : null\n})\nconst step = computed(() => {\n const time = parseTime(props.step)\n return time ? formatTime(time) : null\n})\nconst minTime = computed(() => {\n const time = parseTime(props.minTime || '')\n return time ? formatTime(time) : null\n})\nconst maxTime = computed(() => {\n const time = parseTime(props.maxTime || '')\n return time ? formatTime(time) : null\n})\nconst items = computed(() => {\n const result: { value: string; disabled: boolean }[] = []\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').format(props.format)\n result.push({\n value: currentTime,\n disabled:\n props.disabledItems.includes(current) ||\n compareTime(current, minTime.value || '-1:-1') <= 0 ||\n compareTime(current, maxTime.value || '100:100') >= 0,\n })\n current = nextTime(current, step.value!)\n }\n }\n return result\n})\n\nconst focus = () => {\n selectInstance.value?.focus()\n}\n\nconst blur = () => {\n selectInstance.value?.blur()\n}\n\ndefineExpose({\n /** focus to time select */\n focus,\n\n /** blur time select */\n blur,\n})\n</script>\n"],"names":[],"mappings":"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"}