watercolor-ui
Version:
A modern minimalist cross-framework component library
185 lines • 4.9 kB
TypeScript
/**
* 验证进度值
* @param {number} value - 进度值
* @param {number} min - 最小值
* @param {number} max - 最大值
* @returns {number} 有效的进度值
*/
export function validateProgress(value: number, min?: number, max?: number): number;
/**
* 计算进度百分比
* @param {number} current - 当前值
* @param {number} total - 总值
* @returns {number} 百分比
*/
export function calculatePercentage(current: number, total: number): number;
/**
* 格式化进度文本
* @param {number} value - 进度值
* @param {Object} options - 格式化选项
* @returns {string} 格式化后的文本
*/
export function formatProgressText(value: number, options?: Object): string;
/**
* 生成 Progress 组件的 CSS 类名
* @param {Object} options - 配置选项
* @returns {Object} 各部分的类名
*/
export function getProgressClasses(options?: Object): Object;
/**
* 根据进度值获取颜色
* @param {number} value - 进度值
* @param {Array} thresholds - 阈值配置
* @returns {string} 颜色名称
*/
export function getColorByProgress(value: number, thresholds?: any[]): string;
/**
* 创建圆形进度条的CSS
* @param {number} percentage - 百分比
* @param {string} color - 颜色
* @returns {Object} CSS样式对象
*/
export function createCircularProgressCSS(percentage: number, color?: string): Object;
export namespace colors {
let PRIMARY: string;
let SUCCESS: string;
let WARNING: string;
let ERROR: string;
let PURPLE: string;
let ORANGE: string;
let CYAN: string;
let PINK: string;
}
export namespace sizes {
let SM: string;
let MD: string;
let LG: string;
let XL: string;
}
export namespace types {
let LINEAR: string;
let CIRCULAR: string;
}
export namespace animations {
let NONE: string;
let PULSE: string;
let STRIPED: string;
let STRIPED_ANIMATED: string;
let INDETERMINATE: string;
let LOADING: string;
}
/**
* Progress 控制器类
*/
export class ProgressController {
constructor(options?: {});
options: {
duration: number;
easing: string;
onUpdate: null;
onComplete: null;
autoStart: boolean;
};
currentValue: number;
targetValue: number;
isRunning: boolean;
startTime: number | null;
rafId: number | null;
/**
* 设置进度值
* @param {number} value - 目标值
* @param {boolean} animate - 是否动画
*/
setProgress(value: number, animate?: boolean): void;
/**
* 增加进度
* @param {number} increment - 增量
* @param {boolean} animate - 是否动画
*/
increment(increment?: number, animate?: boolean): void;
/**
* 减少进度
* @param {number} decrement - 减量
* @param {boolean} animate - 是否动画
*/
decrement(decrement?: number, animate?: boolean): void;
/**
* 开始动画
*/
start(): void;
/**
* 停止动画
*/
stop(): void;
/**
* 重置进度
*/
reset(): void;
/**
* 完成进度
*/
complete(): void;
/**
* 动画循环
*/
animate(): void;
/**
* 应用缓动函数
* @param {number} t - 进度值 (0-1)
* @returns {number} 缓动后的值
*/
applyEasing(t: number): number;
/**
* 销毁控制器
*/
destroy(): void;
}
export namespace utils {
/**
* 创建进度控制器实例
* @param {Object} options - 配置选项
* @returns {ProgressController} 控制器实例
*/
function createController(options?: Object): ProgressController;
/**
* 检测是否应该减少动画
* @returns {boolean} 是否减少动画
*/
function shouldReduceMotion(): boolean;
/**
* 估算剩余时间
* @param {number} current - 当前值
* @param {number} total - 总值
* @param {number} startTime - 开始时间
* @returns {number} 预计剩余时间(毫秒)
*/
function estimateRemainingTime(current: number, total: number, startTime: number): number;
/**
* 格式化时间
* @param {number} ms - 毫秒
* @returns {string} 格式化的时间字符串
*/
function formatTime(ms: number): string;
/**
* 调试信息
* @param {string} message - 消息
* @param {*} data - 数据
*/
function debug(message: string, data: any): void;
}
declare namespace _default {
export { ProgressController };
export { validateProgress };
export { calculatePercentage };
export { formatProgressText };
export { getProgressClasses };
export { getColorByProgress };
export { createCircularProgressCSS };
export { utils };
export { colors };
export { sizes };
export { types };
export { animations };
}
export default _default;
//# sourceMappingURL=utils.d.ts.map