UNPKG

@happy-table/vue3

Version:

A high-performance Vue 3 table component for B2B systems with TypeScript support

75 lines (74 loc) 2.47 kB
import { TableRow } from '../types/table'; /** * 数值范围接口 */ export interface NumericRange { min: number; max: number; avg: number; } /** * 数值统计接口 */ export interface NumericStats extends NumericRange { count: number; sum: number; median: number; std: number; } /** * 数值解析选项 */ export interface NumericParseOptions { /** 是否严格模式,严格模式下不会尝试从字符串中提取数字 */ strict?: boolean; /** 自定义货币符号和分隔符的正则表达式 */ currencyPattern?: RegExp; /** 是否包含空值在统计中 */ includeNulls?: boolean; } /** * 解析数值 - 改进版本,支持货币符号和千位分隔符 */ export declare function parseNumericValue(value: unknown, options?: NumericParseOptions): number | null; /** * 从表格数据中提取指定列的所有数值 */ export declare function extractNumericValues(data: TableRow[], columnKey: string, options?: NumericParseOptions): number[]; /** * 计算数值范围 (最小值、最大值、平均值) */ export declare function calculateNumericRange(data: TableRow[], columnKey: string, options?: NumericParseOptions): NumericRange; /** * 计算详细的数值统计信息 */ export declare function calculateNumericStats(data: TableRow[], columnKey: string, options?: NumericParseOptions): NumericStats; /** * 检查列是否包含数值数据 */ export declare function isNumericColumn(data: TableRow[], columnKey: string, threshold?: number, options?: NumericParseOptions): boolean; /** * 格式化数值,支持精度控制 */ export declare function formatNumericValue(value: number, precision?: number, locale?: string): string; /** * 基于数值分布创建桶(用于直方图等) */ export declare function createNumericBuckets(data: TableRow[], columnKey: string, bucketCount?: number, options?: NumericParseOptions): Array<{ min: number; max: number; count: number; values: number[]; }>; /** * 获取数值的百分位数 */ export declare function getPercentile(data: TableRow[], columnKey: string, percentile: number, options?: NumericParseOptions): number | null; /** * 检测和移除数值异常值(基于四分位数范围) */ export declare function detectOutliers(data: TableRow[], columnKey: string, factor?: number, options?: NumericParseOptions): { outliers: number[]; cleaned: number[]; indices: number[]; };