@visactor/vtable 1.22.2 → 1.22.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/PivotChart.js +10 -8
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/dataset/dataset.js +5 -1
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -0
- package/cjs/layout/chart-helper/get-axis-config.js +11 -8
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +7 -7
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +1 -1
- package/cjs/layout/pivot-header-layout.js +1 -0
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/plugins/custom-cell-style.js +1 -1
- package/cjs/scenegraph/scenegraph.js +1 -1
- package/cjs/ts-types/new-data-set.d.ts +1 -0
- package/cjs/ts-types/new-data-set.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +80 -32
- package/dist/vtable.min.js +2 -2
- package/es/PivotChart.js +10 -8
- package/es/PivotChart.js.map +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- package/es/dataset/dataset.js +5 -1
- package/es/dataset/dataset.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.d.ts +1 -0
- package/es/layout/chart-helper/get-axis-config.js +11 -8
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +6 -7
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +1 -1
- package/es/layout/pivot-header-layout.js +1 -0
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/plugins/custom-cell-style.js +1 -1
- package/es/scenegraph/scenegraph.js +1 -1
- package/es/ts-types/new-data-set.d.ts +1 -0
- package/es/ts-types/new-data-set.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ts-types/new-data-set.ts"],"names":[],"mappings":";;;AAYA,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,8CAA2B,CAAA;AAC7B,CAAC,EAVW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAU1B;AACD,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB","file":"new-data-set.js","sourcesContent":["import type { ColorPropertyDefine } from '.';\nimport type { Either } from '../tools/helper';\nimport type { BaseTableAPI } from './base-table';\n\n//#region 总计小计\nexport interface TotalsStatus {\n isRowTotal: boolean;\n isRowSubTotal: boolean;\n isColTotal: boolean;\n isColSubTotal: boolean;\n}\n\nexport enum AggregationType {\n RECORD = 'RECORD',\n NONE = 'NONE', //不做聚合 只获取其中一条数据作为节点的record 取其field\n SUM = 'SUM',\n MIN = 'MIN',\n MAX = 'MAX',\n AVG = 'AVG',\n COUNT = 'COUNT',\n CUSTOM = 'CUSTOM',\n RECALCULATE = 'RECALCULATE'\n}\nexport enum SortType {\n ASC = 'ASC',\n DESC = 'DESC',\n NORMAL = 'NORMAL',\n desc = 'desc',\n asc = 'asc',\n normal = 'normal'\n}\nexport interface CalcTotals {\n aggregationType?: AggregationType; // 聚合方式\n // calcFunc?: (query: Record<string, any>, arr: Record<string, any>[]) => number;\n}\n\nexport interface Total {\n /** 是否显示总计; 如果配置了total对象,showGrandTotals默认false */\n showGrandTotals: boolean;\n /** 是否显示小计; 如果配置了total对象,showSubTotals默认为true */\n showSubTotals: boolean;\n\n // // 计算总计方法\n // calcGrandTotals?: CalcTotals;\n // // 计算小计方法\n // calcSubTotals?: CalcTotals;\n /** 小计汇总维度定义 */\n subTotalsDimensions?: string[];\n /** 汇总节点显示名称 默认'总计' */\n grandTotalLabel?: string;\n /** 汇总节点显示名称 默认'小计' */\n subTotalLabel?: string;\n}\n\nexport interface Totals {\n row?: Total & {\n /** 总计显示在上 默认false */\n showGrandTotalsOnTop?: boolean;\n /** 小计显示在上 默认false */\n showSubTotalsOnTop?: boolean;\n };\n column?: Total & {\n /** 总计显示在左 默认false */\n showGrandTotalsOnLeft?: boolean;\n /** 小计显示在左 默认false */\n showSubTotalsOnLeft?: boolean;\n };\n}\n\n//#endregion 总计小计\n\n//#region 排序规则\n// export interface SortRule {\n// //排序维度\n// sortField: string;\n// //以下均为排序方法\n// //1. 指定排序类型\n// sortType?: SortType;\n// //2. 按维度成员指定排序\n// sortBy?: string[];\n// //3. 按指标值排序\n// sortByIndicator?: string;\n// //如果按指标值排序,还需要指定另外一个(行或列)方向的底层维度成员具体值\n// query?: string[];\n// //4. 自定义排序方法function\n// sortFunc?: (a: any, b: any) => number;\n// }\n//以下均为排序方法\n//1. 指定排序类型\nexport interface SortTypeRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n}\n//2. 按维度成员指定排序\nexport interface SortByRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**根据指定具体顺序排序 */\n sortBy?: string[];\n}\n//3. 按指标值排序\nexport interface SortByIndicatorRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**排序根据某个指标值 */\n sortByIndicator?: string;\n /**如果按指标值排序,还需要指定另外一个(行或列)方向的底层维度成员具体值。例如按照办公用品下的纸张 ['办公用品', '纸张'] */\n query?: string[];\n /**自定义排序函数 否则按自然排序 */\n sortFunc?: (\n value_a: string | number,\n value_b: string | number,\n path_a: string[],\n path_b: string[],\n sortType: SortType\n ) => number;\n}\n//4. 自定义排序方法function\nexport interface SortFuncRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**自定义排序函数 */\n sortFunc?: (a: any, b: any, sortType: SortType) => number;\n}\n//自定义排序方法参数\n// export interface SortFuncParam extends SortRule {\n// data: Array<string | Record<string, any>>;\n// }\nexport type SortRule = SortTypeRule | SortByRule | SortByIndicatorRule | SortFuncRule;\nexport type SortRules = SortRule[];\n//#endregion 排序规则\n\n//#region 过滤规则\nexport interface FilterFuncRule {\n filterFunc?: (row: Record<string, any>) => boolean;\n}\nexport interface FilterValueRule {\n filterKey?: string;\n filteredValues?: unknown[];\n}\nexport type FilterRules = Either<FilterFuncRule, FilterValueRule>[];\n//#endregion 过滤规则\n\n//#region 聚合规则\nexport interface AggregationRule<T extends AggregationType> {\n /** 区别于field 重新起个key值,供配置indicators使用 */\n indicatorKey: string;\n // 可以收集单个字段的聚合结果,或者收集多个字段的聚合结果\n field: string[] | string;\n aggregationType: string | T;\n /** aggregationType 配置为 AggregationType.CUSTOM 时,需要配置 aggregationFun。*/\n aggregationFun?: T extends AggregationType.CUSTOM ? (values: any[], records: any[]) => any : undefined;\n /**计算结果格式化 */\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => number | string;\n}\nexport type AggregationRules = AggregationRule<AggregationType>[];\n\n//#endregion 聚合规则\n\n//#region 映射规则\nexport interface MappingRule {\n label?: LabelMapping;\n symbol?: SymbolMapping;\n bgColor?: MappingFuncRule;\n}\nexport type MappingRules = MappingRule[];\nexport interface LabelMapping {\n text?: MappingFuncRule;\n color?: MappingFuncRule;\n}\nexport interface SymbolMapping {\n shape?: 'circle' | 'rect';\n color?: MappingFuncRule;\n size?: MappingFuncRule;\n}\n\nexport type MappingFuncRule = {\n indicatorKey: string;\n mapping?: ColorPropertyDefine;\n};\n\n//#endregion 映射规则\n\n//#region 派生字段规则\nexport interface DerivedFieldRule {\n fieldName?: string;\n derivedFunc?: (record: Record<string, any>) => any;\n}\nexport type DerivedFieldRules = DerivedFieldRule[];\n//#endregion 派生字段规则\n\n//#region 计算字段规则\nexport interface CalculateddFieldRule {\n /** 唯一标识,可以当做新指标的key,用于配置在 indicators 中在透视表中展示。 */\n key: string;\n /** 计算字段依赖的指标,可以是在 records 中具体对应的指标字段 or 不是数据records 中的字段\n * 如果依赖的指标不在 records 中,则需要在 aggregationRules 中明确配置,具体指明聚合规则和 indicatorKey 以在 dependIndicatorKeys 所使用。 */\n dependIndicatorKeys: string[];\n /** 计算字段的计算函数,依赖的指标值作为参数传入,返回值作为计算字段的值。 */\n calculateFun?: (dependFieldsValue: any) => any;\n}\n\nexport type CalculateddFieldRules = CalculateddFieldRule[];\n//#endregion 计算字段规则\n\n/**\n * 基本表数据处理配置\n */\nexport interface IListTableDataConfig {\n addRecordRule: 'Array' | 'Object';\n groupByRules?: string[]; //按照行列维度分组规则;\n // aggregationRules?: AggregationRules; //按照行列维度聚合值计算规则;\n // sortRules?: SortTypeRule | SortByRule | SortFuncRule; //排序规则 不能简单的将sortState挪到这里 sort的规则在column中配置的;\n filterRules?: FilterRules; //过滤规则;\n // totals?: Totals; //小计或总计;\n // derivedFieldRules?: DerivedFieldRules;\n}\n/**\n * 透视表数据处理配置\n */\nexport interface IPivotTableDataConfig {\n aggregationRules?: AggregationRules; //按照行列维度聚合值计算规则;\n sortRules?: SortRules; //排序规则;\n filterRules?: FilterRules; //过滤规则;\n totals?: Totals; //小计或总计;\n /**\n * 目前mappding还不太好用 不建议使用 建议先用style\n */\n mappingRules?: MappingRules;\n derivedFieldRules?: DerivedFieldRules;\n calculatedFieldRules?: CalculateddFieldRules;\n /** 编辑单元格时是否更新聚合值, 默认为false */\n updateAggregationOnEditCell?: boolean;\n}\n\n/**\n * 透视图数据处理配置\n */\nexport interface IPivotChartDataConfig extends IPivotTableDataConfig {\n /**\n * PivotChart专有\n */\n collectValuesBy?: Record<string, CollectValueBy>;\n /**\n * PivotChart专有\n */\n isPivotChart?: boolean;\n /**\n * PivotChart专有\n */\n dimensionSortArray?: string[];\n}\n\n/** 在处理数据的过程中 去额外收集某个维度的维度值范围 可为离散值或者连续值范围 */\nexport type CollectValueBy = {\n /** 要收集的字段按什么进行分组 */\n by: string[];\n /** 是否计算一个range范围 true的话对应的收集数据的结果为{max:number,min:number} */\n range?: boolean;\n /** 收集是按照sumBy字段相同的进行分组聚合 聚合结果求最大最小值;如果不设置该值 则按单条数据求最大最小值 */\n sumBy?: string[];\n /** 帮助计算列宽使用 如果是chart图表 收集的是xFiled的维度值 可以根据维度值的个数乘于图元宽度计算一个最优列宽*/\n type?: 'xField' | 'yField' | undefined;\n /** 如果是收集的离散值,离散值的排序依据 */\n sortBy?: string[];\n /** chartSpec中设置了markLine autoRange的情况 考虑扩展轴范围 */\n extendRange?: number | 'sum' | 'max';\n};\nexport type CollectedValue = { max?: number; min?: number } | Array<string>;\n\n//#region 提供给基本表格的类型\nexport type Aggregation = {\n aggregationType: AggregationType;\n showOnTop?: boolean;\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => string | number;\n};\n\nexport type CustomAggregation = {\n aggregationType: AggregationType.CUSTOM;\n aggregationFun: (values: any[], records: any[]) => any;\n showOnTop?: boolean;\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => string | number;\n};\n//#endregion\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ts-types/new-data-set.ts"],"names":[],"mappings":";;;AAYA,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,8BAAW,CAAA;IACX,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,8CAA2B,CAAA;AAC7B,CAAC,EAVW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAU1B;AACD,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB","file":"new-data-set.js","sourcesContent":["import type { ColorPropertyDefine } from '.';\nimport type { Either } from '../tools/helper';\nimport type { BaseTableAPI } from './base-table';\n\n//#region 总计小计\nexport interface TotalsStatus {\n isRowTotal: boolean;\n isRowSubTotal: boolean;\n isColTotal: boolean;\n isColSubTotal: boolean;\n}\n\nexport enum AggregationType {\n RECORD = 'RECORD',\n NONE = 'NONE', //不做聚合 只获取其中一条数据作为节点的record 取其field\n SUM = 'SUM',\n MIN = 'MIN',\n MAX = 'MAX',\n AVG = 'AVG',\n COUNT = 'COUNT',\n CUSTOM = 'CUSTOM',\n RECALCULATE = 'RECALCULATE'\n}\nexport enum SortType {\n ASC = 'ASC',\n DESC = 'DESC',\n NORMAL = 'NORMAL',\n desc = 'desc',\n asc = 'asc',\n normal = 'normal'\n}\nexport interface CalcTotals {\n aggregationType?: AggregationType; // 聚合方式\n // calcFunc?: (query: Record<string, any>, arr: Record<string, any>[]) => number;\n}\n\nexport interface Total {\n /** 是否显示总计; 如果配置了total对象,showGrandTotals默认false */\n showGrandTotals: boolean;\n /** 是否显示小计; 如果配置了total对象,showSubTotals默认为true */\n showSubTotals: boolean;\n\n // // 计算总计方法\n // calcGrandTotals?: CalcTotals;\n // // 计算小计方法\n // calcSubTotals?: CalcTotals;\n /** 小计汇总维度定义 */\n subTotalsDimensions?: string[];\n /** 汇总节点显示名称 默认'总计' */\n grandTotalLabel?: string;\n /** 汇总节点显示名称 默认'小计' */\n subTotalLabel?: string;\n}\n\nexport interface Totals {\n row?: Total & {\n /** 总计显示在上 默认false */\n showGrandTotalsOnTop?: boolean;\n /** 小计显示在上 默认false */\n showSubTotalsOnTop?: boolean;\n };\n column?: Total & {\n /** 总计显示在左 默认false */\n showGrandTotalsOnLeft?: boolean;\n /** 小计显示在左 默认false */\n showSubTotalsOnLeft?: boolean;\n };\n}\n\n//#endregion 总计小计\n\n//#region 排序规则\n// export interface SortRule {\n// //排序维度\n// sortField: string;\n// //以下均为排序方法\n// //1. 指定排序类型\n// sortType?: SortType;\n// //2. 按维度成员指定排序\n// sortBy?: string[];\n// //3. 按指标值排序\n// sortByIndicator?: string;\n// //如果按指标值排序,还需要指定另外一个(行或列)方向的底层维度成员具体值\n// query?: string[];\n// //4. 自定义排序方法function\n// sortFunc?: (a: any, b: any) => number;\n// }\n//以下均为排序方法\n//1. 指定排序类型\nexport interface SortTypeRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n}\n//2. 按维度成员指定排序\nexport interface SortByRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**根据指定具体顺序排序 */\n sortBy?: string[];\n}\n//3. 按指标值排序\nexport interface SortByIndicatorRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**排序根据某个指标值 */\n sortByIndicator?: string;\n /**如果按指标值排序,还需要指定另外一个(行或列)方向的底层维度成员具体值。例如按照办公用品下的纸张 ['办公用品', '纸张'] */\n query?: string[];\n /**自定义排序函数 否则按自然排序 */\n sortFunc?: (\n value_a: string | number,\n value_b: string | number,\n path_a: string[],\n path_b: string[],\n sortType: SortType\n ) => number;\n}\n//4. 自定义排序方法function\nexport interface SortFuncRule {\n /**排序维度 */\n sortField: string;\n /**升序降序 ASC or DESC*/\n sortType?: SortType;\n /**自定义排序函数 */\n sortFunc?: (a: any, b: any, sortType: SortType) => number;\n}\n//自定义排序方法参数\n// export interface SortFuncParam extends SortRule {\n// data: Array<string | Record<string, any>>;\n// }\nexport type SortRule = SortTypeRule | SortByRule | SortByIndicatorRule | SortFuncRule;\nexport type SortRules = SortRule[];\n//#endregion 排序规则\n\n//#region 过滤规则\nexport interface FilterFuncRule {\n filterFunc?: (row: Record<string, any>) => boolean;\n}\nexport interface FilterValueRule {\n filterKey?: string;\n filteredValues?: unknown[];\n}\nexport type FilterRules = Either<FilterFuncRule, FilterValueRule>[];\n//#endregion 过滤规则\n\n//#region 聚合规则\nexport interface AggregationRule<T extends AggregationType> {\n /** 区别于field 重新起个key值,供配置indicators使用 */\n indicatorKey: string;\n // 可以收集单个字段的聚合结果,或者收集多个字段的聚合结果\n field: string[] | string;\n aggregationType: string | T;\n /** aggregationType 配置为 AggregationType.CUSTOM 时,需要配置 aggregationFun。*/\n aggregationFun?: T extends AggregationType.CUSTOM ? (values: any[], records: any[]) => any : undefined;\n /**计算结果格式化 */\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => number | string;\n}\nexport type AggregationRules = AggregationRule<AggregationType>[];\n\n//#endregion 聚合规则\n\n//#region 映射规则\nexport interface MappingRule {\n label?: LabelMapping;\n symbol?: SymbolMapping;\n bgColor?: MappingFuncRule;\n}\nexport type MappingRules = MappingRule[];\nexport interface LabelMapping {\n text?: MappingFuncRule;\n color?: MappingFuncRule;\n}\nexport interface SymbolMapping {\n shape?: 'circle' | 'rect';\n color?: MappingFuncRule;\n size?: MappingFuncRule;\n}\n\nexport type MappingFuncRule = {\n indicatorKey: string;\n mapping?: ColorPropertyDefine;\n};\n\n//#endregion 映射规则\n\n//#region 派生字段规则\nexport interface DerivedFieldRule {\n fieldName?: string;\n derivedFunc?: (record: Record<string, any>) => any;\n}\nexport type DerivedFieldRules = DerivedFieldRule[];\n//#endregion 派生字段规则\n\n//#region 计算字段规则\nexport interface CalculateddFieldRule {\n /** 唯一标识,可以当做新指标的key,用于配置在 indicators 中在透视表中展示。 */\n key: string;\n /** 计算字段依赖的指标,可以是在 records 中具体对应的指标字段 or 不是数据records 中的字段\n * 如果依赖的指标不在 records 中,则需要在 aggregationRules 中明确配置,具体指明聚合规则和 indicatorKey 以在 dependIndicatorKeys 所使用。 */\n dependIndicatorKeys: string[];\n /** 计算字段的计算函数,依赖的指标值作为参数传入,返回值作为计算字段的值。 */\n calculateFun?: (dependFieldsValue: any) => any;\n}\n\nexport type CalculateddFieldRules = CalculateddFieldRule[];\n//#endregion 计算字段规则\n\n/**\n * 基本表数据处理配置\n */\nexport interface IListTableDataConfig {\n addRecordRule: 'Array' | 'Object';\n groupByRules?: string[]; //按照行列维度分组规则;\n // aggregationRules?: AggregationRules; //按照行列维度聚合值计算规则;\n // sortRules?: SortTypeRule | SortByRule | SortFuncRule; //排序规则 不能简单的将sortState挪到这里 sort的规则在column中配置的;\n filterRules?: FilterRules; //过滤规则;\n // totals?: Totals; //小计或总计;\n // derivedFieldRules?: DerivedFieldRules;\n}\n/**\n * 透视表数据处理配置\n */\nexport interface IPivotTableDataConfig {\n aggregationRules?: AggregationRules; //按照行列维度聚合值计算规则;\n sortRules?: SortRules; //排序规则;\n filterRules?: FilterRules; //过滤规则;\n totals?: Totals; //小计或总计;\n /**\n * 目前mappding还不太好用 不建议使用 建议先用style\n */\n mappingRules?: MappingRules;\n derivedFieldRules?: DerivedFieldRules;\n calculatedFieldRules?: CalculateddFieldRules;\n /** 编辑单元格时是否更新聚合值, 默认为false */\n updateAggregationOnEditCell?: boolean;\n}\n\n/**\n * 透视图数据处理配置\n */\nexport interface IPivotChartDataConfig extends IPivotTableDataConfig {\n /**\n * PivotChart专有\n */\n collectValuesBy?: Record<string, CollectValueBy>;\n /**\n * PivotChart专有\n */\n isPivotChart?: boolean;\n /**\n * PivotChart专有\n */\n dimensionSortArray?: string[];\n}\n\n/** 在处理数据的过程中 去额外收集某个维度的维度值范围 可为离散值或者连续值范围 */\nexport type CollectValueBy = {\n /** 要收集的字段按什么进行分组 */\n by: string[];\n /** 是否计算一个range范围 true的话对应的收集数据的结果为{max:number,min:number} */\n range?: boolean;\n /** 收集是按照sumBy字段相同的进行分组聚合 聚合结果求最大最小值;如果不设置该值 则按单条数据求最大最小值 */\n sumBy?: string[];\n /** 帮助计算列宽使用 如果是chart图表 收集的是xFiled的维度值 可以根据维度值的个数乘于图元宽度计算一个最优列宽*/\n type?: 'xField' | 'yField' | undefined;\n /** 如果是收集的离散值,离散值的排序依据 */\n sortBy?: string[];\n /** chartSpec中设置了markLine autoRange的情况 考虑扩展轴范围 */\n extendRange?: number | 'sum' | 'max';\n /** 除了考虑指标key之外,还需要考虑哪些字段来计算范围。如boxPlot需要考虑spec中的maxField字段 和minField字段。\n * 其中一个字段可能是作为indicatorKey的,另外一个字段则应该设置到considerFields中 */\n considerFields?: string[];\n};\nexport type CollectedValue = { max?: number; min?: number } | Array<string>;\n\n//#region 提供给基本表格的类型\nexport type Aggregation = {\n aggregationType: AggregationType;\n showOnTop?: boolean;\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => string | number;\n};\n\nexport type CustomAggregation = {\n aggregationType: AggregationType.CUSTOM;\n aggregationFun: (values: any[], records: any[]) => any;\n showOnTop?: boolean;\n formatFun?: (value: number, col: number, row: number, table: BaseTableAPI) => string | number;\n};\n//#endregion\n"]}
|
package/cjs/vrender.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qEAA0D;AAC1D,kCAAgC;AAChC,yDAAwH;AACxH,yDAqBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IAGd,IAAA,6BAAc,GAAE,CAAC;IAEjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IAIf,IAAA,2BAAY,GAAE,CAAC;IAEf,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,uCAAwB,GAAE,CAAC;IAE3B,IAAA,+BAAU,GAAE,CAAC;IAEb,IAAA,uCAAwB,GAAE,CAAC;AAC7B,CAAC;AAnCD,gDAmCC;AAOD,yDAAuC;AACvC,yDAAuC;AACvC,+DAA6C;AAC7C,4DAA0C","file":"vrender.js","sourcesContent":["import { loadPoptip } from '@visactor/vrender-components';\nimport '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule, registerFlexLayoutPlugin } from '@visactor/vrender-core';\nimport {\n loadBrowserEnv,\n loadNodeEnv,\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.22.
|
|
1
|
+
{"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qEAA0D;AAC1D,kCAAgC;AAChC,yDAAwH;AACxH,yDAqBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IAGd,IAAA,6BAAc,GAAE,CAAC;IAEjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IAIf,IAAA,2BAAY,GAAE,CAAC;IAEf,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,uCAAwB,GAAE,CAAC;IAE3B,IAAA,+BAAU,GAAE,CAAC;IAEb,IAAA,uCAAwB,GAAE,CAAC;AAC7B,CAAC;AAnCD,gDAmCC;AAOD,yDAAuC;AACvC,yDAAuC;AACvC,+DAA6C;AAC7C,4DAA0C","file":"vrender.js","sourcesContent":["import { loadPoptip } from '@visactor/vrender-components';\nimport '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule, registerFlexLayoutPlugin } from '@visactor/vrender-core';\nimport {\n loadBrowserEnv,\n loadNodeEnv,\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.22.3-alpha.0\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n // registerArc3d();\n // registerArea();\n registerCircle();\n // registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n // registerPath();\n // registerPolygon();\n // registerPyramid3d();\n registerRect();\n // registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerFlexLayoutPlugin();\n // registerWrapText();\n loadPoptip();\n\n registerFlexLayoutPlugin();\n}\n\nexport type { Direction } from '@visactor/vrender-core';\nexport type { State } from '@visactor/vrender-components';\n// export { GroupFadeIn } from '@visactor/vrender-core';\n// export { GroupFadeOut } from '@visactor/vrender-core';\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\nexport * from '@visactor/vrender-components';\nexport * from '@visactor/vrender-animate';\n"]}
|
package/dist/vtable.js
CHANGED
|
@@ -68105,17 +68105,23 @@
|
|
|
68105
68105
|
const chartCellStyle = layout._table._getCellStyle(col, row - 1);
|
|
68106
68106
|
const padding = getQuadProps(getProp('padding', chartCellStyle, col, row - 1, layout._table));
|
|
68107
68107
|
const { range, ticks, axisOption, index, targetTicks, targetRange, theme } = axisRange;
|
|
68108
|
+
if (isNumber$4(axisOption?.max)) {
|
|
68109
|
+
range.max = axisOption.max;
|
|
68110
|
+
if (range.max < 0) {
|
|
68111
|
+
axisOption.zero = false;
|
|
68112
|
+
}
|
|
68113
|
+
}
|
|
68114
|
+
else if (chartType === 'boxPlot') {
|
|
68115
|
+
range.max += (range.max - range.min) / 20;
|
|
68116
|
+
}
|
|
68108
68117
|
if (isNumber$4(axisOption?.min)) {
|
|
68109
68118
|
range.min = axisOption.min;
|
|
68110
68119
|
if (range.min > 0) {
|
|
68111
68120
|
axisOption.zero = false;
|
|
68112
68121
|
}
|
|
68113
68122
|
}
|
|
68114
|
-
if (
|
|
68115
|
-
range.max
|
|
68116
|
-
if (range.max < 0) {
|
|
68117
|
-
axisOption.zero = false;
|
|
68118
|
-
}
|
|
68123
|
+
else if (chartType === 'boxPlot') {
|
|
68124
|
+
range.min -= (range.max - range.min) / 20;
|
|
68119
68125
|
}
|
|
68120
68126
|
let domain = [];
|
|
68121
68127
|
if (chartType === 'heatmap') {
|
|
@@ -68197,17 +68203,23 @@
|
|
|
68197
68203
|
const chartCellStyle = layout._table._getCellStyle(col + 1, row);
|
|
68198
68204
|
const padding = getQuadProps(getProp('padding', chartCellStyle, col + 1, row, layout._table));
|
|
68199
68205
|
const { range, ticks, axisOption, index, targetTicks, targetRange, theme } = axisRange;
|
|
68206
|
+
if (isNumber$4(axisOption?.max)) {
|
|
68207
|
+
range.max = axisOption.max;
|
|
68208
|
+
if (range.max < 0) {
|
|
68209
|
+
axisOption.zero = false;
|
|
68210
|
+
}
|
|
68211
|
+
}
|
|
68212
|
+
else if (chartType === 'boxPlot') {
|
|
68213
|
+
range.max += (range.max - range.min) / 20;
|
|
68214
|
+
}
|
|
68200
68215
|
if (isNumber$4(axisOption?.min)) {
|
|
68201
68216
|
range.min = axisOption.min;
|
|
68202
68217
|
if (range.min > 0) {
|
|
68203
68218
|
axisOption.zero = false;
|
|
68204
68219
|
}
|
|
68205
68220
|
}
|
|
68206
|
-
if (
|
|
68207
|
-
range.max
|
|
68208
|
-
if (range.max < 0) {
|
|
68209
|
-
axisOption.zero = false;
|
|
68210
|
-
}
|
|
68221
|
+
else if (chartType === 'boxPlot') {
|
|
68222
|
+
range.min -= (range.max - range.min) / 20;
|
|
68211
68223
|
}
|
|
68212
68224
|
let domain = [];
|
|
68213
68225
|
if (chartType === 'heatmap') {
|
|
@@ -68672,7 +68684,7 @@
|
|
|
68672
68684
|
};
|
|
68673
68685
|
}
|
|
68674
68686
|
function getAxisRangeAndTicks(col, row, index, position, subAxisPosition, indicatorKeys, path, layout) {
|
|
68675
|
-
const { range, isZeroAlign, isTickAlign, axisOption } = getChartAxisRange(col, row, index, position, indicatorKeys, path, layout);
|
|
68687
|
+
const { range, isZeroAlign, isTickAlign, axisOption, chartType } = getChartAxisRange(col, row, index, position, indicatorKeys, path, layout);
|
|
68676
68688
|
const { targetRange, targetTicks } = getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout);
|
|
68677
68689
|
if (index !== 0 && targetTicks) {
|
|
68678
68690
|
const getAxisDomainRangeAndLabels = Factory.getFunction('getAxisDomainRangeAndLabels');
|
|
@@ -68689,7 +68701,8 @@
|
|
|
68689
68701
|
axisOption,
|
|
68690
68702
|
range,
|
|
68691
68703
|
targetTicks,
|
|
68692
|
-
targetRange
|
|
68704
|
+
targetRange,
|
|
68705
|
+
chartType
|
|
68693
68706
|
};
|
|
68694
68707
|
}
|
|
68695
68708
|
function getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout) {
|
|
@@ -69259,7 +69272,7 @@
|
|
|
69259
69272
|
return TABLE_EVENT_TYPE;
|
|
69260
69273
|
}
|
|
69261
69274
|
options;
|
|
69262
|
-
version = "1.22.
|
|
69275
|
+
version = "1.22.3-alpha.0";
|
|
69263
69276
|
pagination;
|
|
69264
69277
|
id = `VTable${Date.now()}`;
|
|
69265
69278
|
headerStyleCache;
|
|
@@ -74098,12 +74111,18 @@
|
|
|
74098
74111
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
74099
74112
|
const colPath = layout.getColKeysPath(col, row);
|
|
74100
74113
|
indicatorKeys.forEach((key, index) => {
|
|
74101
|
-
const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(col, row, index, index === 0 ? 'bottom' : 'top', index === 0 ? 'top' : 'bottom', indicatorKeys, colPath, layout);
|
|
74114
|
+
const { range, targetTicks, targetRange, axisOption, chartType } = getAxisRangeAndTicks(col, row, index, index === 0 ? 'bottom' : 'top', index === 0 ? 'top' : 'bottom', indicatorKeys, colPath, layout);
|
|
74115
|
+
if (isNumber$4(axisOption?.max)) {
|
|
74116
|
+
range.max = axisOption.max;
|
|
74117
|
+
}
|
|
74118
|
+
else if (chartType === 'boxPlot') {
|
|
74119
|
+
range.max += (range.max - range.min) / 20;
|
|
74120
|
+
}
|
|
74102
74121
|
if (isNumber$4(axisOption?.min)) {
|
|
74103
74122
|
range.min = axisOption.min;
|
|
74104
74123
|
}
|
|
74105
|
-
if (
|
|
74106
|
-
range.max
|
|
74124
|
+
else if (chartType === 'boxPlot') {
|
|
74125
|
+
range.min -= (range.max - range.min) / 20;
|
|
74107
74126
|
}
|
|
74108
74127
|
if (hasSameAxis(axisOption, axes)) {
|
|
74109
74128
|
return;
|
|
@@ -74153,16 +74172,22 @@
|
|
|
74153
74172
|
const rowPath = layout.getRowKeysPath(col, row);
|
|
74154
74173
|
indicatorKeys.forEach((key, index) => {
|
|
74155
74174
|
const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(col, row, index, index === 0 ? 'left' : 'right', index === 0 ? 'right' : 'left', indicatorKeys, rowPath, layout);
|
|
74175
|
+
const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);
|
|
74176
|
+
if (isNumber$4(axisOption?.max)) {
|
|
74177
|
+
range.max = axisOption.max;
|
|
74178
|
+
}
|
|
74179
|
+
else if (chartType === 'boxPlot') {
|
|
74180
|
+
range.max += (range.max - range.min) / 20;
|
|
74181
|
+
}
|
|
74156
74182
|
if (isNumber$4(axisOption?.min)) {
|
|
74157
74183
|
range.min = axisOption.min;
|
|
74158
74184
|
}
|
|
74159
|
-
if (
|
|
74160
|
-
range.max
|
|
74185
|
+
else if (chartType === 'boxPlot') {
|
|
74186
|
+
range.min -= (range.max - range.min) / 20;
|
|
74161
74187
|
}
|
|
74162
74188
|
if (hasSameAxis(axisOption, axes)) {
|
|
74163
74189
|
return;
|
|
74164
74190
|
}
|
|
74165
|
-
const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);
|
|
74166
74191
|
let domain = [];
|
|
74167
74192
|
if (chartType === 'heatmap') {
|
|
74168
74193
|
const rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row, 'yField');
|
|
@@ -87811,6 +87836,9 @@
|
|
|
87811
87836
|
const chartSpec = this.getRawChartSpec(_col, _row);
|
|
87812
87837
|
const indicatorKeys = [];
|
|
87813
87838
|
if (chartSpec) {
|
|
87839
|
+
if (chartSpec.type === 'boxPlot') {
|
|
87840
|
+
return [chartSpec.maxField];
|
|
87841
|
+
}
|
|
87814
87842
|
if (chartSpec.series || chartSpec.xField || chartSpec.yField) {
|
|
87815
87843
|
if (this.indicatorsAsCol === false) {
|
|
87816
87844
|
if (chartSpec.series) {
|
|
@@ -88971,8 +88999,22 @@
|
|
|
88971
88999
|
}
|
|
88972
89000
|
else if (this.collectValuesBy[field].range) {
|
|
88973
89001
|
const fieldRange = this.collectedValues[field][collectKeys];
|
|
88974
|
-
|
|
88975
|
-
|
|
89002
|
+
let max = Math.max(record[field], fieldRange.max);
|
|
89003
|
+
let min = Math.min(record[field], fieldRange.min);
|
|
89004
|
+
if (this.collectValuesBy[field].considerFields) {
|
|
89005
|
+
for (const considerField of this.collectValuesBy[field].considerFields) {
|
|
89006
|
+
if (record[considerField]) {
|
|
89007
|
+
if (typeof record[considerField] === 'number') {
|
|
89008
|
+
max = Math.max(record[considerField], max);
|
|
89009
|
+
min = Math.min(record[considerField], min);
|
|
89010
|
+
}
|
|
89011
|
+
else if (Array.isArray(record[considerField])) {
|
|
89012
|
+
max = Math.max(...record[considerField], max);
|
|
89013
|
+
min = Math.min(...record[considerField], min);
|
|
89014
|
+
}
|
|
89015
|
+
}
|
|
89016
|
+
}
|
|
89017
|
+
}
|
|
88976
89018
|
if (!isNaN(max)) {
|
|
88977
89019
|
fieldRange.max = max;
|
|
88978
89020
|
fieldRange.min = min;
|
|
@@ -89307,12 +89349,10 @@
|
|
|
89307
89349
|
if (isResetTree) {
|
|
89308
89350
|
return this.setRecords(this.records);
|
|
89309
89351
|
}
|
|
89310
|
-
|
|
89311
|
-
for (const
|
|
89312
|
-
for (
|
|
89313
|
-
|
|
89314
|
-
this.tree[treeRowKey][treeColKey][i]?.reset();
|
|
89315
|
-
}
|
|
89352
|
+
for (const treeRowKey in this.tree) {
|
|
89353
|
+
for (const treeColKey in this.tree[treeRowKey]) {
|
|
89354
|
+
for (let i = 0; i < this.tree[treeRowKey][treeColKey].length; i++) {
|
|
89355
|
+
this.tree[treeRowKey][treeColKey][i]?.reset();
|
|
89316
89356
|
}
|
|
89317
89357
|
}
|
|
89318
89358
|
}
|
|
@@ -92662,7 +92702,7 @@
|
|
|
92662
92702
|
indicatorSpec?.stack !== false &&
|
|
92663
92703
|
(indicatorSpec?.type === 'bar' || indicatorSpec?.type === 'area') &&
|
|
92664
92704
|
(indicatorSpec.stack = true);
|
|
92665
|
-
const yField = indicatorSpec.yField;
|
|
92705
|
+
const yField = indicatorSpec.yField ?? indicatorSpec.maxField;
|
|
92666
92706
|
collectValuesBy[yField] = {
|
|
92667
92707
|
by: rowKeys,
|
|
92668
92708
|
type: indicatorSpec.direction !== 'horizontal' ? 'yField' : undefined,
|
|
@@ -92671,7 +92711,10 @@
|
|
|
92671
92711
|
? columnKeys.concat(indicatorSpec?.xField, indicatorSpec?.x2Field)
|
|
92672
92712
|
: indicatorSpec.stack && columnKeys.concat(indicatorSpec?.xField),
|
|
92673
92713
|
sortBy: indicatorSpec.direction === 'horizontal' ? indicatorSpec?.data?.fields?.[yField]?.domain : undefined,
|
|
92674
|
-
extendRange: parseMarkLineGetExtendRange(indicatorSpec.markLine)
|
|
92714
|
+
extendRange: parseMarkLineGetExtendRange(indicatorSpec.markLine),
|
|
92715
|
+
considerFields: indicatorSpec?.type === 'boxPlot'
|
|
92716
|
+
? [indicatorSpec.maxField, indicatorSpec.minField, indicatorSpec.outliersField]
|
|
92717
|
+
: undefined
|
|
92675
92718
|
};
|
|
92676
92719
|
}
|
|
92677
92720
|
}
|
|
@@ -92724,14 +92767,19 @@
|
|
|
92724
92767
|
indicatorSpec?.stack !== false &&
|
|
92725
92768
|
(indicatorSpec?.type === 'bar' || indicatorSpec?.type === 'area') &&
|
|
92726
92769
|
(indicatorSpec.stack = true);
|
|
92727
|
-
const xField = indicatorSpec.type === 'histogram'
|
|
92770
|
+
const xField = indicatorSpec.type === 'histogram'
|
|
92771
|
+
? indicatorSpec.x2Field
|
|
92772
|
+
: indicatorSpec.xField ?? indicatorSpec.maxField;
|
|
92728
92773
|
collectValuesBy[xField] = {
|
|
92729
92774
|
by: columnKeys,
|
|
92730
92775
|
type: indicatorSpec.direction === 'horizontal' ? 'xField' : undefined,
|
|
92731
92776
|
range: hasLinearAxis(indicatorSpec, this._axes, indicatorSpec.direction === 'horizontal', true),
|
|
92732
92777
|
sumBy: indicatorSpec.stack && rowKeys.concat(indicatorSpec?.yField),
|
|
92733
92778
|
sortBy: indicatorSpec.direction !== 'horizontal' ? indicatorSpec?.data?.fields?.[xField]?.domain : undefined,
|
|
92734
|
-
extendRange: parseMarkLineGetExtendRange(indicatorSpec.markLine)
|
|
92779
|
+
extendRange: parseMarkLineGetExtendRange(indicatorSpec.markLine),
|
|
92780
|
+
considerFields: indicatorSpec?.type === 'boxPlot'
|
|
92781
|
+
? [indicatorSpec.maxField, indicatorSpec.minField, indicatorSpec.outliersField]
|
|
92782
|
+
: undefined
|
|
92735
92783
|
};
|
|
92736
92784
|
}
|
|
92737
92785
|
}
|
|
@@ -93738,7 +93786,7 @@
|
|
|
93738
93786
|
}
|
|
93739
93787
|
|
|
93740
93788
|
registerForVrender();
|
|
93741
|
-
const version = "1.22.
|
|
93789
|
+
const version = "1.22.3-alpha.0";
|
|
93742
93790
|
function getIcons() {
|
|
93743
93791
|
return get$2();
|
|
93744
93792
|
}
|