watercolor-ui
Version:
A modern minimalist cross-framework component library
202 lines • 5.57 kB
TypeScript
/**
* 验证单选按钮值
* @param {*} value - 要验证的值
* @param {Array} options - 可选值数组
* @returns {boolean} 是否有效
*/
export function validateRadioValue(value: any, options?: any[]): boolean;
/**
* 验证单选按钮组配置
* @param {Object} config - 配置对象
* @returns {Object} 验证结果
*/
export function validateRadioGroupConfig(config?: Object): Object;
/**
* 规范化选项数组
* @param {Array} options - 原始选项
* @returns {Array} 规范化后的选项
*/
export function normalizeRadioOptions(options?: any[]): any[];
/**
* 查找选中的选项
* @param {*} value - 当前值
* @param {Array} options - 选项数组
* @returns {Object|null} 选中的选项
*/
export function findSelectedOption(value: any, options?: any[]): Object | null;
/**
* 获取下一个可用选项
* @param {*} currentValue - 当前值
* @param {Array} options - 选项数组
* @param {boolean} loop - 是否循环
* @returns {Object|null} 下一个选项
*/
export function getNextRadioOption(currentValue: any, options?: any[], loop?: boolean): Object | null;
/**
* 获取上一个可用选项
* @param {*} currentValue - 当前值
* @param {Array} options - 选项数组
* @param {boolean} loop - 是否循环
* @returns {Object|null} 上一个选项
*/
export function getPreviousRadioOption(currentValue: any, options?: any[], loop?: boolean): Object | null;
/**
* 生成单选按钮容器类名
* @param {Object} options - 选项
* @returns {string} 类名字符串
*/
export function getRadioClasses(options?: Object): string;
/**
* 生成单选按钮类名
* @param {Object} options - 选项
* @returns {string} 类名字符串
*/
export function getRadioButtonClasses(options?: Object): string;
/**
* 生成单选按钮组类名
* @param {Object} options - 选项
* @returns {string} 类名字符串
*/
export function getRadioGroupClasses(options?: Object): string;
/**
* 创建单选按钮变化处理器
* @param {Function} onChange - 变化回调
* @param {Object} options - 选项
* @returns {Function} 处理器函数
*/
export function createRadioChangeHandler(onChange: Function, options?: Object): Function;
/**
* 创建单选按钮键盘处理器
* @param {Function} onChange - 变化回调
* @param {Array} options - 选项数组
* @param {*} currentValue - 当前值
* @returns {Function} 键盘处理器
*/
export function createRadioKeyboardHandler(onChange: Function, options: any[] | undefined, currentValue: any): Function;
/**
* 生成可访问性属性
* @param {Object} options - 选项
* @returns {Object} 可访问性属性
*/
export function getRadioAccessibilityProps(options?: Object): Object;
/**
* 生成单选按钮组可访问性属性
* @param {Object} options - 选项
* @returns {Object} 可访问性属性
*/
export function getRadioGroupAccessibilityProps(options?: Object): Object;
export namespace RADIO_SIZES {
let SM: string;
let MD: string;
let LG: string;
}
export namespace RADIO_COLORS {
let PRIMARY: string;
let SECONDARY: string;
let SUCCESS: string;
let ERROR: string;
let WARNING: string;
let INFO: string;
}
export namespace RADIO_VARIANTS {
let STANDARD: string;
let OUTLINED: string;
let CARD: string;
let BUTTON: string;
}
export namespace RADIO_ORIENTATIONS {
let VERTICAL: string;
let HORIZONTAL: string;
let INLINE: string;
}
/**
* 单选按钮组管理器
*/
export class RadioGroupManager {
constructor(options?: {});
options: {
name: string;
value: null;
options: never[];
disabled: boolean;
required: boolean;
onChange: null;
};
state: {
value: null;
focused: boolean;
touched: boolean;
};
/**
* 获取当前状态
* @returns {Object} 当前状态
*/
getState(): Object;
/**
* 设置值
* @param {*} value - 新值
*/
setValue(value: any): void;
/**
* 获取选中的选项
* @returns {Object|null} 选中的选项
*/
getSelectedOption(): Object | null;
/**
* 验证当前值
* @returns {boolean} 是否有效
*/
isValid(): boolean;
/**
* 获取错误信息
* @returns {Array} 错误信息数组
*/
getErrors(): any[];
/**
* 重置状态
*/
reset(): void;
/**
* 更新选项
* @param {Object} newOptions - 新选项
*/
updateOptions(newOptions: Object): void;
/**
* 处理焦点事件
*/
handleFocus(): void;
/**
* 处理失焦事件
*/
handleBlur(): void;
/**
* 移动到下一个选项
*/
moveToNext(): void;
/**
* 移动到上一个选项
*/
moveToPrevious(): void;
}
declare namespace _default {
export { RADIO_SIZES };
export { RADIO_COLORS };
export { RADIO_VARIANTS };
export { RADIO_ORIENTATIONS };
export { validateRadioValue };
export { validateRadioGroupConfig };
export { normalizeRadioOptions };
export { findSelectedOption };
export { getNextRadioOption };
export { getPreviousRadioOption };
export { getRadioClasses };
export { getRadioButtonClasses };
export { getRadioGroupClasses };
export { createRadioChangeHandler };
export { createRadioKeyboardHandler };
export { RadioGroupManager };
export { getRadioAccessibilityProps };
export { getRadioGroupAccessibilityProps };
}
export default _default;
//# sourceMappingURL=utils.d.ts.map