{"version":3,"file":"time-select.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 '@hd-front-end/components/select'\nimport { useFormDisabled } from '@hd-front-end/components/form'\nimport ElIcon from '@hd-front-end/components/icon'\nimport { useLocale, useNamespace } from '@hd-front-end/hooks'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@hd-front-end/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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"}