watercolor-ui
Version:
A modern minimalist cross-framework component library
216 lines • 5.69 kB
TypeScript
/**
* 计算总页数
* @param {number} total - 总数据量
* @param {number} pageSize - 每页大小
* @returns {number} 总页数
*/
export function calculateTotalPages(total: number, pageSize: number): number;
/**
* 验证当前页码
* @param {number} page - 当前页码
* @param {number} totalPages - 总页数
* @returns {number} 有效的页码
*/
export function validateCurrentPage(page: number, totalPages: number): number;
/**
* 计算数据范围
* @param {number} currentPage - 当前页码
* @param {number} pageSize - 每页大小
* @param {number} total - 总数据量
* @returns {Object} 数据范围信息
*/
export function calculateDataRange(currentPage: number, pageSize: number, total: number): Object;
/**
* 生成页码项数组
* @param {Object} options - 配置选项
* @returns {Array} 页码项数组
*/
export function generatePageItems(options?: Object): any[];
/**
* 生成 Pagination 组件的 CSS 类名
* @param {Object} options - 配置选项
* @returns {string} 生成的类名字符串
*/
export function getPaginationClasses(options?: Object): string;
/**
* 格式化分页信息文本
* @param {Object} range - 数据范围
* @param {Object} options - 格式化选项
* @returns {string} 格式化后的文本
*/
export function formatPaginationInfo(range: Object, options?: Object): string;
export namespace sizes {
let SM: string;
let MD: string;
let LG: string;
let XL: string;
}
export namespace variants {
let DEFAULT: string;
let MINIMAL: string;
let OUTLINED: string;
let COMPACT: string;
}
export namespace colors {
let PRIMARY: string;
let SUCCESS: string;
let WARNING: string;
let ERROR: string;
}
export namespace shapes {
let DEFAULT_1: string;
export { DEFAULT_1 as DEFAULT };
export let ROUNDED: string;
export let SQUARE: string;
}
/**
* Pagination 控制器类
*/
export class PaginationController {
constructor(options?: {});
options: {
total: number;
pageSize: number;
currentPage: number;
siblingCount: number;
boundaryCount: number;
showFirstLast: boolean;
showPrevNext: boolean;
showInfo: boolean;
showSizeChanger: boolean;
pageSizeOptions: number[];
onChange: null;
onPageSizeChange: null;
};
state: {
currentPage: number;
pageSize: number;
total: number;
};
/**
* 获取当前状态
* @returns {Object} 当前状态
*/
getState(): Object;
/**
* 设置总数据量
* @param {number} total - 总数据量
*/
setTotal(total: number): void;
/**
* 设置每页大小
* @param {number} pageSize - 每页大小
*/
setPageSize(pageSize: number): void;
/**
* 设置当前页
* @param {number} page - 页码
*/
setCurrentPage(page: number): void;
/**
* 跳转到首页
*/
goToFirst(): void;
/**
* 跳转到末页
*/
goToLast(): void;
/**
* 跳转到上一页
*/
goToPrev(): void;
/**
* 跳转到下一页
*/
goToNext(): void;
/**
* 获取总页数
* @returns {number} 总页数
*/
getTotalPages(): number;
/**
* 获取数据范围
* @returns {Object} 数据范围
*/
getDataRange(): Object;
/**
* 获取页码项
* @returns {Array} 页码项数组
*/
getPageItems(): any[];
/**
* 处理页码点击
* @param {Object} item - 页码项
*/
handlePageClick(item: Object): void;
/**
* 重置到首页
*/
reset(): void;
/**
* 更新配置
* @param {Object} newOptions - 新配置
*/
updateOptions(newOptions: Object): void;
}
export namespace utils {
/**
* 创建分页控制器实例
* @param {Object} options - 配置选项
* @returns {PaginationController} 控制器实例
*/
function createController(options?: Object): PaginationController;
/**
* 生成页面大小选项
* @param {Array} options - 选项数组
* @returns {Array} 格式化的选项
*/
function generatePageSizeOptions(options?: any[]): any[];
/**
* 计算分页偏移量
* @param {number} page - 页码
* @param {number} pageSize - 每页大小
* @returns {number} 偏移量
*/
function calculateOffset(page: number, pageSize: number): number;
/**
* 从偏移量计算页码
* @param {number} offset - 偏移量
* @param {number} pageSize - 每页大小
* @returns {number} 页码
*/
function calculatePageFromOffset(offset: number, pageSize: number): number;
/**
* 检测是否为移动设备
* @returns {boolean} 是否为移动设备
*/
function isMobile(): boolean;
/**
* 获取适合移动设备的配置
* @param {Object} options - 原始配置
* @returns {Object} 移动端配置
*/
function getMobileConfig(options?: Object): Object;
/**
* 调试信息
* @param {string} message - 消息
* @param {*} data - 数据
*/
function debug(message: string, data: any): void;
}
declare namespace _default {
export { PaginationController };
export { calculateTotalPages };
export { validateCurrentPage };
export { calculateDataRange };
export { generatePageItems };
export { getPaginationClasses };
export { formatPaginationInfo };
export { utils };
export { sizes };
export { variants };
export { colors };
export { shapes };
}
export default _default;
//# sourceMappingURL=utils.d.ts.map