element-plus
Version:
A Component Library for Vue 3
1 lines • 39.2 kB
Source Map (JSON)
{"version":3,"file":"picker.vue2.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=\"onClear\"\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=\"onClear\"\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 @clear=\"onClear\"\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 onClear = (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","id","name","placeholder","_normalizeClass","type","_normalizeStyle","editable","readonly","ariaLabel","tabindex","_resolveDynamicComponent","clearIcon","PickerRangeTrigger","startPlaceholder","endPlaceholder","_renderSlot","_createElementVNode","rangeSeparator","format","dateFormat","timeFormat","unlinkPanels","defaultValue","showNow","showConfirm","showFooter","showWeekNumber"],"mappings":"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"}