UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

128 lines (127 loc) 3.27 kB
import type React from 'react'; import type { CommonProps } from '../util'; import type { Locale } from '../locale/types'; export interface HTMLAttributesWeak extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> { /** * for form item */ name?: string; } export type RatingLocale = Locale['Rating']; /** * @api */ export interface RatingProps extends HTMLAttributesWeak, CommonProps { /** * 默认值 * @en Default value */ defaultValue?: number; /** * 值(受控模式) * @en value(controlled mode) */ value?: number; /** * 尺寸 * @en size * @defaultValue 'medium' */ size?: 'small' | 'medium' | 'large'; /** * 评分的总数 * @en Full mark of rating * @defaultValue 5 */ count?: number; /** * 是否显示 grade * @en Display grade or not * @defaultValue false */ showGrade?: boolean; /** * 是否允许半星评分 * @en Allow half star or not */ allowHalf?: boolean; /** * 是否允许再次点击后清除 * @en Whether to allow clear when click again * @defaultValue false */ allowClear?: boolean; /** * 用户点击评分时触发的回调 * @en Callback function on click star */ onChange?: (value: number) => void; /** * 用户 hover 评分时触发的回调 * @en Callback function on hover star */ onHoverChange?: (value?: number) => void; /** * 是否禁用 * @en Disabled or not * @defaultValue false */ disabled?: boolean; /** * 是否为只读态,效果上同 disabeld * @defaultValue false * @skip */ readOnly?: boolean; /** * 是否为预览态 * @en Is preview mode or not * @defaultValue false */ isPreview?: boolean; /** * 预览态模式下渲染的内容(isPreview 时必传,否则预览不生效) * @en Render method when is preview mode.(Required when isPreview=true) * @param value - 评分值 - score * @param props - 组件参数对象 - The props of rating * @returns 预览模式下的渲染内容 - The render content when preview */ renderPreview?: (value: number, props: RatingProps) => React.ReactNode; /** * 评分文案生成方法,传入 id 支持无障碍时,读屏软件可读 * @en Custom display of grade * @param val - 当前分值 - score value * @returns 该分值的渲染文案 - score label */ readAs?: (val: number) => React.ReactNode; /** * 多语言文案 * @skip */ locale?: RatingLocale; /** * 实验属性:自定义评分 icon 类型 * @experimental * @skip */ iconType?: string; /** * 实验属性:开启 `-webkit-text-stroke` 显示边框颜色,在 IE 中无效 * @experimental * @skip */ strokeMode?: boolean; /** * @deprecated Use `showGrade=true` instead */ type?: string; } export interface RatingState { value: number; hoverValue: number; cleanedValue: number | null; iconSpace: number; iconSize: number; clicked: boolean; disabled?: boolean; }