UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 19.5 kB
{"version":3,"file":"rate.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<template>\n <div\n :id=\"inputId\"\n :class=\"[rateClasses, ns.is('disabled', rateDisabled)]\"\n role=\"slider\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'rating' : undefined\"\n :aria-labelledby=\"\n isLabeledByFormItem ? formItemContext?.labelId : undefined\n \"\n :aria-valuenow=\"currentValue\"\n :aria-valuetext=\"text || undefined\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"max\"\n tabindex=\"0\"\n :style=\"rateStyles\"\n @keydown=\"handleKey\"\n >\n <span\n v-for=\"(item, key) in max\"\n :key=\"key\"\n :class=\"ns.e('item')\"\n @mousemove=\"setCurrentValue(item, $event)\"\n @mouseleave=\"resetCurrentValue\"\n @click=\"selectValue(item)\"\n >\n <el-icon\n ref=\"iconRefs\"\n :class=\"[\n ns.e('icon'),\n { hover: hoverIndex === item },\n ns.is('active', item <= currentValue),\n ns.is('focus-visible', item === Math.ceil(currentValue || 1)),\n ]\"\n >\n <component\n :is=\"activeComponent\"\n v-show=\"!showDecimalIcon(item) && item <= currentValue\"\n />\n <component\n :is=\"voidComponent\"\n v-show=\"!showDecimalIcon(item) && item > currentValue\"\n />\n <component\n :is=\"voidComponent\"\n v-show=\"showDecimalIcon(item)\"\n :class=\"[ns.em('decimal', 'box')]\"\n />\n <el-icon\n v-show=\"showDecimalIcon(item)\"\n :style=\"decimalStyle\"\n :class=\"[ns.e('icon'), ns.e('decimal')]\"\n >\n <component :is=\"decimalIconComponent\" />\n </el-icon>\n </el-icon>\n </span>\n <span\n v-if=\"showText || showScore\"\n :class=\"ns.e('text')\"\n :style=\"{ color: textColor }\"\n >\n {{ text }}\n </span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, markRaw, ref, watch } from 'vue'\nimport { clamp } from 'lodash-unified'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { getEventCode, isArray, isObject, isString } from '@element-plus/utils'\nimport {\n formItemContextKey,\n useFormDisabled,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { rateEmits, rateProps } from './rate'\n\nimport type { CSSProperties, Component } from 'vue'\nimport type { IconInstance } from '@element-plus/components/icon'\n\nfunction getValueFromMap<T>(\n value: number,\n map: Record<string, T | { excluded?: boolean; value: T }>\n) {\n const isExcludedObject = (\n val: unknown\n ): val is { excluded?: boolean } & Record<any, unknown> => isObject(val)\n\n const matchedKeys = Object.keys(map)\n .map((key) => +key)\n .filter((key) => {\n const val = map[key]\n const excluded = isExcludedObject(val) ? val.excluded : false\n return excluded ? value < key : value <= key\n })\n .sort((a, b) => a - b)\n const matchedValue = map[matchedKeys[0]]\n return (isExcludedObject(matchedValue) && matchedValue.value) || matchedValue\n}\n\ndefineOptions({\n name: 'ElRate',\n})\n\nconst props = defineProps(rateProps)\nconst emit = defineEmits(rateEmits)\n\nconst formItemContext = inject(formItemContextKey, undefined)\nconst rateSize = useFormSize()\nconst ns = useNamespace('rate')\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext,\n})\n\nconst currentValue = ref(props.modelValue)\nconst hoverIndex = ref(-1)\nconst pointerAtLeftHalf = ref(true)\n\nconst iconRefs = ref<IconInstance[]>([])\nconst iconClientWidths = computed<number[]>(() =>\n iconRefs.value.map((icon) => icon.$el.clientWidth)\n)\nconst rateClasses = computed(() => [ns.b(), ns.m(rateSize.value)])\nconst rateDisabled = useFormDisabled()\nconst rateStyles = computed(() => {\n return ns.cssVarBlock({\n 'void-color': props.voidColor,\n 'disabled-void-color': props.disabledVoidColor,\n 'fill-color': activeColor.value,\n }) as CSSProperties\n})\n\nconst text = computed(() => {\n let result = ''\n if (props.showScore) {\n result = props.scoreTemplate.replace(\n /\\{\\s*value\\s*\\}/,\n rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`\n )\n } else if (props.showText) {\n result = props.texts[Math.ceil(currentValue.value) - 1]\n }\n return result\n})\nconst valueDecimal = computed(\n () => props.modelValue * 100 - Math.floor(props.modelValue) * 100\n)\nconst colorMap = computed(() =>\n isArray(props.colors)\n ? {\n [props.lowThreshold]: props.colors[0],\n [props.highThreshold]: { value: props.colors[1], excluded: true },\n [props.max]: props.colors[2],\n }\n : props.colors\n)\nconst activeColor = computed(() => {\n const color = getValueFromMap(currentValue.value, colorMap.value)\n // {value: '', excluded: true} returned\n return isObject(color) ? '' : color\n})\nconst decimalStyle = computed(() => {\n let width = ''\n if (rateDisabled.value) {\n width = `${valueDecimal.value}%`\n } else if (props.allowHalf) {\n width = '50%'\n }\n return {\n color: activeColor.value,\n width,\n }\n})\nconst componentMap = computed(() => {\n let icons = isArray(props.icons) ? [...props.icons] : { ...props.icons }\n icons = markRaw(icons) as\n | Array<string | Component>\n | Record<number, string | Component>\n return isArray(icons)\n ? {\n [props.lowThreshold]: icons[0],\n [props.highThreshold]: {\n value: icons[1],\n excluded: true,\n },\n [props.max]: icons[2],\n }\n : icons\n})\nconst decimalIconComponent = computed(() =>\n getValueFromMap(props.modelValue, componentMap.value)\n)\nconst voidComponent = computed(() =>\n rateDisabled.value\n ? isString(props.disabledVoidIcon)\n ? props.disabledVoidIcon\n : (markRaw(props.disabledVoidIcon) as Component)\n : isString(props.voidIcon)\n ? props.voidIcon\n : (markRaw(props.voidIcon) as Component)\n)\nconst activeComponent = computed(() =>\n getValueFromMap(currentValue.value, componentMap.value)\n)\n\nfunction showDecimalIcon(item: number) {\n const showWhenDisabled =\n rateDisabled.value &&\n valueDecimal.value > 0 &&\n item - 1 < props.modelValue &&\n item > props.modelValue\n const showWhenAllowHalf =\n props.allowHalf &&\n pointerAtLeftHalf.value &&\n item - 0.5 <= currentValue.value &&\n item > currentValue.value\n return showWhenDisabled || showWhenAllowHalf\n}\n\nfunction emitValue(value: number) {\n // if allow clear, and selected value is same as modelValue, reset value to 0\n if (props.clearable && value === props.modelValue) {\n value = 0\n }\n\n emit(UPDATE_MODEL_EVENT, value)\n if (props.modelValue !== value) {\n emit(CHANGE_EVENT, value)\n }\n}\n\nfunction selectValue(value: number) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && pointerAtLeftHalf.value) {\n emitValue(currentValue.value)\n } else {\n emitValue(value)\n }\n}\n\nfunction handleKey(e: KeyboardEvent) {\n if (rateDisabled.value) {\n return\n }\n const code = getEventCode(e)\n const step = props.allowHalf ? 0.5 : 1\n let _currentValue = currentValue.value\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.right:\n _currentValue += step\n break\n case EVENT_CODE.left:\n case EVENT_CODE.down:\n _currentValue -= step\n break\n }\n\n _currentValue = clamp(_currentValue, 0, props.max)\n\n if (_currentValue === currentValue.value) {\n return\n }\n\n e.stopPropagation()\n e.preventDefault()\n emit(UPDATE_MODEL_EVENT, _currentValue)\n emit(CHANGE_EVENT, _currentValue)\n return _currentValue\n}\n\nfunction setCurrentValue(value: number, event?: MouseEvent) {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf && event) {\n pointerAtLeftHalf.value =\n event.offsetX * 2 <= iconClientWidths.value[value - 1]\n currentValue.value = pointerAtLeftHalf.value ? value - 0.5 : value\n } else {\n currentValue.value = value\n }\n hoverIndex.value = value\n}\n\nfunction resetCurrentValue() {\n if (rateDisabled.value) {\n return\n }\n if (props.allowHalf) {\n pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue)\n }\n currentValue.value = props.modelValue\n hoverIndex.value = -1\n}\n\nwatch(\n () => props.modelValue,\n (val) => {\n currentValue.value = val\n pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue)\n }\n)\n\nif (!props.modelValue) {\n emit(UPDATE_MODEL_EVENT, 0)\n}\n\ndefineExpose({\n /** @description set current value */\n setCurrentValue,\n /** @description reset current value */\n resetCurrentValue,\n})\n</script>\n"],"names":["_createElementBlock","_unref","_normalizeClass","ariaLabel","max","_normalizeStyle","_openBlock","_Fragment","_createVNode","_withDirectives","_createBlock","_resolveDynamicComponent","_vShow","showText","showScore","textColor","_createCommentVNode"],"mappings":"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"}