element-plus
Version:
A Component Library for Vue 3
1 lines • 40.4 kB
Source Map (JSON)
{"version":3,"file":"picker.mjs","sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n :visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n role=\"dialog\"\n teleported\n :transition=\"`${nsDate.namespace.value}-zoom-in-top`\"\n :popper-class=\"[`${nsDate.namespace.value}-picker__popper`, popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @before-show=\"onBeforeShow\"\n @show=\"onShow\"\n @hide=\"onHide\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string\n \"\n ref=\"inputRef\"\n container-role=\"combobox\"\n :model-value=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n displayValue as string\n \"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string\n \"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n nsDate.b('editor'),\n nsDate.bm('editor', type),\n nsDate.is('focus', pickerVisible),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n :readonly=\"\n !editable ||\n readonly ||\n isDatesPicker ||\n isMonthsPicker ||\n isYearsPicker ||\n type === 'week'\n \"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n :validate-event=\"false\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeydownInput\"\n @change=\"handleChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"nsInput.e('icon')\"\n @mousedown.prevent=\"onMouseDownInput\"\n @touchstart.passive=\"onTouchStartInput\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n :class=\"`${nsInput.e('icon')} clear-icon`\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <picker-range-trigger\n v-else\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string[]\n \"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string[]\n \"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n :start-placeholder=\"startPlaceholder\"\n :end-placeholder=\"endPlaceholder\"\n :class=\"rangeInputKls\"\n :style=\"$attrs.style\"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n autocomplete=\"off\"\n role=\"combobox\"\n @click=\"onMouseDownInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @start-input=\"handleStartInput\"\n @start-change=\"handleStartChange\"\n @end-input=\"handleEndInput\"\n @end-change=\"handleEndChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @keydown=\"handleKeydownInput\"\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"[nsInput.e('icon'), nsRange.e('icon')]\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #range-separator>\n <slot name=\"range-separator\">\n <span :class=\"nsRange.b('separator')\">{{ rangeSeparator }}</span>\n </slot>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearIcon\"\n :class=\"clearIconKls\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </picker-range-trigger>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :date-format=\"dateFormat\"\n :time-format=\"timeFormat\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n :show-now=\"showNow\"\n :show-confirm=\"showConfirm\"\n :show-footer=\"showFooter\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n provide,\n ref,\n unref,\n useAttrs,\n watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport {\n useEmptyValues,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { NOOP, debugWarn, getEventCode, isArray } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { Calendar, Clock } from '@element-plus/icons-vue'\nimport { dayOrDaysToDate, valueEquals } from '../utils'\nimport {\n PICKER_BASE_INJECTION_KEY,\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n ROOT_COMMON_PICKER_INJECTION_KEY,\n} from '../constants'\nimport { useCommonPicker } from '../composables/use-common-picker'\nimport { timePickerDefaultProps } from './props'\nimport PickerRangeTrigger from './picker-range-trigger.vue'\n\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance, Ref } from 'vue'\nimport type { Options } from '@popperjs/core'\nimport type { DayOrDays, TimePickerDefaultProps, UserInput } from './props'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'Picker',\n})\n\nconst props = defineProps(timePickerDefaultProps)\nconst emit = defineEmits([\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'clear',\n 'calendar-change',\n 'panel-change',\n 'visible-change',\n 'keydown',\n])\nconst attrs = useAttrs()\n\nconst nsDate = useNamespace('date')\nconst nsInput = useNamespace('input')\nconst nsRange = useNamespace('range')\n\nconst { formItem } = useFormItem()\nconst elPopperOptions = inject(\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n {} as Options\n)\nconst emptyValues = useEmptyValues(props, null)\n\nconst refPopper = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst valueOnOpen = ref<TimePickerDefaultProps['modelValue'] | null>(null)\nlet hasJustTabExitedInput = false\n\nconst pickerDisabled = useFormDisabled()\n\nconst commonPicker = useCommonPicker(props, emit)\nconst {\n parsedValue,\n pickerActualVisible,\n userInput,\n pickerVisible,\n pickerOptions,\n valueIsEmpty,\n emitInput,\n onPick,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n} = commonPicker\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, {\n disabled: pickerDisabled,\n beforeFocus() {\n return props.readonly\n },\n afterFocus() {\n if (!props.automaticDropdown) return\n pickerVisible.value = true\n },\n beforeBlur(event) {\n return (\n !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n handleChange()\n pickerVisible.value = false\n hasJustTabExitedInput = false\n props.validateEvent &&\n formItem?.validate('blur').catch((err) => debugWarn(err))\n },\n})\n\nconst hovering = ref(false)\n\nconst rangeInputKls = computed(() => [\n nsDate.b('editor'),\n nsDate.bm('editor', props.type),\n nsInput.e('wrapper'),\n nsDate.is('disabled', pickerDisabled.value),\n nsDate.is('active', pickerVisible.value),\n nsRange.b('editor'),\n pickerSize ? nsRange.bm('editor', pickerSize.value) : '',\n attrs.class,\n])\n\nconst clearIconKls = computed(() => [\n nsInput.e('icon'),\n nsRange.e('close-icon'),\n !showClearBtn.value ? nsRange.em('close-icon', 'hidden') : '',\n])\n\nwatch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n } else {\n nextTick(() => {\n if (val) {\n valueOnOpen.value = props.modelValue\n }\n })\n }\n})\nconst emitChange = (\n val: TimePickerDefaultProps['modelValue'] | null,\n isClear?: boolean\n) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n emit(CHANGE_EVENT, val)\n // Set the value of valueOnOpen when clearing to avoid triggering change events multiple times.\n isClear && (valueOnOpen.value = val)\n props.validateEvent &&\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n}\nconst emitKeydown = (e: KeyboardEvent) => {\n emit('keydown', e)\n}\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\n// @ts-ignore\nconst setSelectionRange = (start: number, end: number, pos?: 'min' | 'max') => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n}\n\nconst onBeforeShow = () => {\n pickerActualVisible.value = true\n}\n\nconst onShow = () => {\n emit('visible-change', true)\n}\n\nconst onHide = () => {\n pickerActualVisible.value = false\n pickerVisible.value = false\n emit('visible-change', false)\n}\n\nconst handleOpen = () => {\n pickerVisible.value = true\n}\n\nconst handleClose = () => {\n pickerVisible.value = false\n}\n\nconst displayValue = computed<UserInput>(() => {\n const formattedValue = formatToString(parsedValue.value)\n if (isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (!isTimePicker.value && valueIsEmpty.value) return ''\n if (!pickerVisible.value && valueIsEmpty.value) return ''\n if (formattedValue) {\n return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n})\n\nconst isTimeLikePicker = computed(() => props.type.includes('time'))\n\nconst isTimePicker = computed(() => props.type.startsWith('time'))\n\nconst isDatesPicker = computed(() => props.type === 'dates')\n\nconst isMonthsPicker = computed(() => props.type === 'months')\n\nconst isYearsPicker = computed(() => props.type === 'years')\n\nconst triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n)\n\nconst showClearBtn = computed(\n () =>\n props.clearable &&\n !pickerDisabled.value &&\n !props.readonly &&\n !valueIsEmpty.value &&\n (hovering.value || isFocused.value)\n)\n\nconst onClearIconClick = (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClearBtn.value) {\n event.stopPropagation()\n // When the handleClear Function was provided, emit null will be executed inside it\n // There is no need for us to execute emit null twice. #14752\n if (pickerOptions.value.handleClear) {\n pickerOptions.value.handleClear()\n } else {\n emitInput(emptyValues.valueOnClear.value)\n }\n emitChange(emptyValues.valueOnClear.value, true)\n onHide()\n }\n emit('clear')\n}\n\nconst onMouseDownInput = async (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\nconst onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n hovering.value = true\n }\n}\nconst onMouseLeave = () => {\n hovering.value = false\n}\n\nconst onTouchStartInput = (event: TouchEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.touches[0].target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\n\nconst isRangeInput = computed(() => {\n return props.type.includes('range')\n})\n\nconst pickerSize = useFormSize()\n\nconst popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n\nconst stophandle = onClickOutside(\n inputRef as Ref<ComponentPublicInstance>,\n (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unrefElement(inputRef as Ref<ComponentPublicInstance>)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n (inputEl && e.composedPath().includes(inputEl))\n )\n return\n pickerVisible.value = false\n }\n)\n\nonBeforeUnmount(() => {\n stophandle?.()\n})\n\nconst handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(dayOrDaysToDate(value))\n }\n userInput.value = null\n }\n }\n if (userInput.value === '') {\n emitInput(emptyValues.valueOnClear.value)\n emitChange(emptyValues.valueOnClear.value, true)\n userInput.value = null\n }\n}\n\nconst parseUserInputToDayjs = (value: UserInput) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput!(value)\n}\n\nconst formatToString = (value: DayOrDays) => {\n if (!value) return null\n const res = isArray(value)\n ? value.map((_) => _.format(props.format))\n : value.format(props.format)\n return res as UserInput\n}\n\nconst isValidValue = (value: DayOrDays) => {\n return pickerOptions.value.isValidValue!(value)\n}\n\nconst handleKeydownInput = async (event: Event | KeyboardEvent) => {\n if (props.readonly || pickerDisabled.value) return\n\n const code = getEventCode(event as KeyboardEvent)\n emitKeydown(event as KeyboardEvent)\n if (code === EVENT_CODE.esc) {\n if (pickerVisible.value === true) {\n pickerVisible.value = false\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n if (code === EVENT_CODE.down) {\n if (pickerOptions.value.handleFocusPicker) {\n event.preventDefault()\n event.stopPropagation()\n }\n if (pickerVisible.value === false) {\n pickerVisible.value = true\n await nextTick()\n }\n if (pickerOptions.value.handleFocusPicker) {\n pickerOptions.value.handleFocusPicker()\n return\n }\n }\n\n if (code === EVENT_CODE.tab) {\n hasJustTabExitedInput = true\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (!pickerVisible.value) {\n pickerVisible.value = true\n } else if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value) as DayOrDays)\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n if (pickerOptions.value.handleKeydownInput) {\n pickerOptions.value.handleKeydownInput(event as KeyboardEvent)\n }\n}\nconst onUserInput = (e: string) => {\n userInput.value = e\n // Temporary fix when the picker is dismissed and the input box\n // is focused, just mimic the behavior of antdesign.\n if (!pickerVisible.value) {\n pickerVisible.value = true\n }\n}\n\nconst handleStartInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [target.value, userInput.value[1]]\n } else {\n userInput.value = [target.value, null]\n }\n}\n\nconst handleEndInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [userInput.value[0], target.value]\n } else {\n userInput.value = [null, target.value]\n }\n}\n\nconst handleStartChange = () => {\n const values = userInput.value as string[]\n const value = parseUserInputToDayjs(values && values[0]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n formatToString(value) as string,\n displayValue.value?.[1] || null,\n ]\n const newValue = [value, parsedVal && (parsedVal[1] || null)] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst handleEndChange = () => {\n const values = unref(userInput) as string[]\n const value = parseUserInputToDayjs(values && values[1]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n unref(displayValue)?.[0] || null,\n formatToString(value) as string,\n ]\n const newValue = [parsedVal && parsedVal[0], value] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nprovide(PICKER_BASE_INJECTION_KEY, {\n props,\n emptyValues,\n})\nprovide(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker)\n\ndefineExpose({\n /**\n * @description focus input box.\n */\n focus,\n /**\n * @description blur input box.\n */\n blur,\n /**\n * @description opens picker\n */\n handleOpen,\n /**\n * @description closes picker\n */\n handleClose,\n /**\n * @description pick item manually\n */\n onPick,\n})\n</script>\n"],"names":["_openBlock","_createBlock","_unref","_mergeProps","$attrs","popperClass","popperStyle","fallbackPlacements","placement","_withCtx","id","name","placeholder","_normalizeClass","type","_normalizeStyle","editable","readonly","ariaLabel","tabindex","_withModifiers","_resolveDynamicComponent","clearIcon","startPlaceholder","endPlaceholder","_renderSlot","_createElementVNode","rangeSeparator","format","dateFormat","timeFormat","unlinkPanels","defaultValue","showNow","showConfirm","showFooter","showWeekNumber"],"mappings":"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"}