watercolor-ui
Version:
A modern minimalist cross-framework component library
195 lines • 6.37 kB
TypeScript
/**
* 验证评分值
* @param {number} value - 评分值
* @param {number} max - 最大评分
* @param {number} min - 最小评分
* @returns {boolean} 是否有效
*/
export function validateRating(value: number, max?: number, min?: number): boolean;
/**
* 规范化评分值
* @param {number} value - 评分值
* @param {number} max - 最大评分
* @param {number} min - 最小评分
* @param {number} step - 步长
* @returns {number} 规范化后的值
*/
export function normalizeRating(value: number, max?: number, min?: number, step?: number): number;
/**
* 验证评分配置
* @param {Object} config - 评分配置
* @returns {Object} 验证结果
*/
export function validateRatingConfig(config?: Object): Object;
/**
* 生成评分项数组
* @param {number} max - 最大评分
* @param {number} value - 当前值
* @param {number} hovered - 悬停值
* @returns {Array} 评分项数组
*/
export function generateRatingItems(max?: number, value?: number, hovered?: number): any[];
/**
* 计算精确评分的填充百分比
* @param {number} value - 当前值
* @param {number} itemIndex - 项目索引
* @returns {number} 填充百分比 (0-100)
*/
export function calculateFillPercentage(value: number, itemIndex: number): number;
/**
* 从鼠标位置计算评分值
* @param {MouseEvent} event - 鼠标事件
* @param {HTMLElement} container - 容器元素
* @param {number} max - 最大评分
* @param {boolean} allowHalf - 是否允许半星
* @returns {number} 计算出的评分值
*/
export function calculateRatingFromPosition(event: MouseEvent, container: HTMLElement, max?: number, allowHalf?: boolean): number;
/**
* 生成评分容器类名
* @param {Object} options - 选项
* @returns {string} 类名字符串
*/
export function getRatingClasses(options?: Object): string;
/**
* 生成评分项类名
* @param {Object} options - 选项
* @returns {string} 类名字符串
*/
export function getRatingItemClasses(options?: Object): string;
/**
* 获取评分图标
* @param {string} iconType - 图标类型
* @param {boolean} filled - 是否填充
* @returns {string} 图标字符
*/
export function getRatingIcon(iconType?: string, filled?: boolean): string;
/**
* 创建自定义图标元素
* @param {string} iconName - 图标名称
* @param {boolean} filled - 是否填充
* @returns {string} SVG 图标 HTML
*/
export function createCustomIcon(iconName: string, filled?: boolean): string;
/**
* 创建评分点击处理器
* @param {Function} onChange - 变化回调
* @param {Object} options - 选项
* @returns {Function} 点击处理器
*/
export function createRatingClickHandler(onChange: Function, options?: Object): Function;
/**
* 创建评分悬停处理器
* @param {Function} onHover - 悬停回调
* @param {Object} options - 选项
* @returns {Object} 悬停处理器对象
*/
export function createRatingHoverHandlers(onHover: Function, options?: Object): Object;
/**
* 创建键盘导航处理器
* @param {Function} onChange - 变化回调
* @param {Object} options - 选项
* @returns {Function} 键盘处理器
*/
export function createRatingKeyboardHandler(onChange: Function, options?: Object): Function;
/**
* 格式化评分显示
* @param {number} value - 评分值
* @param {number} max - 最大评分
* @param {Object} options - 格式化选项
* @returns {string} 格式化后的字符串
*/
export function formatRating(value: number, max?: number, options?: Object): string;
/**
* 格式化评分描述
* @param {number} value - 评分值
* @param {number} max - 最大评分
* @param {Array} labels - 描述标签数组
* @returns {string} 描述文本
*/
export function formatRatingDescription(value: number, max?: number, labels?: any[]): string;
/**
* 生成可访问性属性
* @param {number} value - 当前值
* @param {number} max - 最大值
* @param {boolean} readonly - 是否只读
* @returns {Object} 可访问性属性
*/
export function getRatingAccessibilityProps(value: number, max?: number, readonly?: boolean): Object;
/**
* 生成评分项可访问性属性
* @param {number} itemValue - 项目值
* @param {number} currentValue - 当前值
* @param {boolean} readonly - 是否只读
* @returns {Object} 可访问性属性
*/
export function getRatingItemAccessibilityProps(itemValue: number, currentValue: number, readonly?: boolean): Object;
/**
* 防抖函数
* @param {Function} func - 要防抖的函数
* @param {number} wait - 等待时间
* @returns {Function} 防抖后的函数
*/
export function debounce(func: Function, wait: number): Function;
/**
* 节流函数
* @param {Function} func - 要节流的函数
* @param {number} limit - 限制时间
* @returns {Function} 节流后的函数
*/
export function throttle(func: Function, limit: number): Function;
export namespace RATING_SIZES {
let SM: string;
let MD: string;
let LG: string;
let XL: string;
}
export namespace RATING_COLORS {
let PRIMARY: string;
let SECONDARY: string;
let SUCCESS: string;
let WARNING: string;
let ERROR: string;
let INFO: string;
}
export namespace RATING_ICONS {
let STAR: string;
let HEART: string;
let THUMBS: string;
let CUSTOM: string;
}
export namespace RATING_VARIANTS {
let STANDARD: string;
let OUTLINED: string;
let FILLED: string;
let ANIMATED: string;
let GLOW: string;
let BOUNCE: string;
}
declare namespace _default {
export { RATING_SIZES };
export { RATING_COLORS };
export { RATING_ICONS };
export { RATING_VARIANTS };
export { validateRating };
export { normalizeRating };
export { validateRatingConfig };
export { generateRatingItems };
export { calculateFillPercentage };
export { calculateRatingFromPosition };
export { getRatingClasses };
export { getRatingItemClasses };
export { getRatingIcon };
export { createCustomIcon };
export { createRatingClickHandler };
export { createRatingHoverHandlers };
export { createRatingKeyboardHandler };
export { formatRating };
export { formatRatingDescription };
export { getRatingAccessibilityProps };
export { getRatingItemAccessibilityProps };
export { debounce };
export { throttle };
}
export default _default;
//# sourceMappingURL=utils.d.ts.map