UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.38 kB
{"version":3,"file":"picker-range-trigger.mjs","names":[],"sources":["../../../../../../../packages/components/time-picker/src/common/picker-range-trigger.vue"],"sourcesContent":["<template>\n <div\n ref=\"wrapperRef\"\n :class=\"[nsDate.is('active', isFocused), $attrs.class]\"\n :style=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n $attrs.style as CSSProperties\n \"\n @click=\"handleClick\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n @touchstart.passive=\"handleTouchStart\"\n >\n <slot name=\"prefix\" />\n <input\n v-bind=\"attrs\"\n :id=\"inputId\"\n ref=\"inputRef\"\n :name=\"name && name[0]\"\n :placeholder=\"startPlaceholder\"\n :value=\"modelValue && modelValue[0]\"\n :class=\"nsRange.b('input')\"\n :disabled=\"disabled\"\n @input=\"handleStartInput\"\n @change=\"handleStartChange\"\n />\n <slot name=\"range-separator\" />\n <input\n v-bind=\"attrs\"\n :id=\"id && id[1]\"\n ref=\"endInputRef\"\n :name=\"name && name[1]\"\n :placeholder=\"endPlaceholder\"\n :value=\"modelValue && modelValue[1]\"\n :class=\"nsRange.b('input')\"\n :disabled=\"disabled\"\n @input=\"handleEndInput\"\n @change=\"handleEndChange\"\n />\n <slot name=\"suffix\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref } from 'vue'\nimport { useAttrs, useFocusController, useNamespace } from '@element-plus/hooks'\nimport { timePickerRangeTriggerProps } from './props'\nimport { useFormItem, useFormItemInputId } from '@element-plus/components/form'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'PickerRangeTrigger',\n inheritAttrs: false,\n})\n\nconst props = defineProps(timePickerRangeTriggerProps)\nconst emit = defineEmits([\n 'mouseenter',\n 'mouseleave',\n 'click',\n 'touchstart',\n 'focus',\n 'blur',\n 'startInput',\n 'endInput',\n 'startChange',\n 'endChange',\n])\n\nconst { formItem } = useFormItem()\nconst { inputId } = useFormItemInputId(\n reactive({ id: computed(() => props.id?.[0]) }),\n {\n formItemContext: formItem,\n }\n)\n\nconst attrs = useAttrs()\nconst nsDate = useNamespace('date')\nconst nsRange = useNamespace('range')\n\nconst inputRef = ref<HTMLInputElement>()\nconst endInputRef = ref<HTMLInputElement>()\n\nconst { wrapperRef, isFocused } = useFocusController(inputRef, {\n disabled: computed(() => props.disabled),\n})\n\nconst handleClick = (evt: MouseEvent) => {\n emit('click', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n emit('mouseenter', evt)\n}\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n emit('mouseleave', evt)\n}\n\nconst handleTouchStart = (evt: TouchEvent) => {\n emit('touchstart', evt)\n}\n\nconst handleStartInput = (evt: Event) => {\n emit('startInput', evt)\n}\n\nconst handleEndInput = (evt: Event) => {\n emit('endInput', evt)\n}\n\nconst handleStartChange = (evt: Event) => {\n emit('startChange', evt)\n}\n\nconst handleEndChange = (evt: Event) => {\n emit('endChange', evt)\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n endInputRef.value?.blur()\n}\n\ndefineExpose({\n focus,\n blur,\n})\n</script>\n"],"mappings":""}