@visactor/vtable 1.26.0 → 1.26.1-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/PivotTable.js +84 -12
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/style.js +2 -1
- package/cjs/core/BaseTable.js +2 -3
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/dataset/DataStatistics.js +2 -1
- package/cjs/edit/edit-manager.js +0 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/index.js +1 -1
- package/cjs/layout/layout-helper.js +1 -1
- package/cjs/layout/pivot-header-layout.js +1 -1
- package/cjs/layout/row-height-map.js +1 -1
- package/cjs/layout/simple-header-layout.js +1 -1
- package/cjs/layout/tree-helper.js +1 -1
- package/cjs/plugins/index.js +1 -1
- package/cjs/plugins/interface.js +1 -1
- package/cjs/plugins/invert-highlight.js +1 -1
- package/cjs/plugins/list-tree-stick-cell.js +1 -1
- package/cjs/plugins/plugin-manager.js +1 -1
- package/cjs/scenegraph/scenegraph.js +1 -1
- package/cjs/ts-types/dataset/aggregation.js +94 -39
- package/cjs/ts-types/dataset/aggregation.js.map +1 -1
- package/cjs/ts-types/icon.d.ts +2 -2
- package/cjs/ts-types/icon.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +203 -78
- package/dist/vtable.min.js +1 -1
- package/es/PivotTable.js +84 -12
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/style.js +2 -1
- package/es/core/BaseTable.js +2 -3
- package/es/core/BaseTable.js.map +1 -1
- package/es/dataset/DataStatistics.js +2 -1
- package/es/edit/edit-manager.js +1 -2
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/index.js +1 -1
- package/es/layout/layout-helper.js +1 -1
- package/es/layout/pivot-header-layout.js +1 -1
- package/es/layout/row-height-map.js +1 -1
- package/es/layout/simple-header-layout.js +1 -1
- package/es/layout/tree-helper.js +1 -1
- package/es/plugins/index.js +1 -1
- package/es/plugins/interface.js +1 -1
- package/es/plugins/invert-highlight.js +1 -1
- package/es/plugins/list-tree-stick-cell.js +1 -1
- package/es/plugins/plugin-manager.js +1 -1
- package/es/scenegraph/scenegraph.js +1 -1
- package/es/ts-types/dataset/aggregation.js +68 -38
- package/es/ts-types/dataset/aggregation.js.map +1 -1
- package/es/ts-types/icon.d.ts +2 -2
- package/es/ts-types/icon.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ts-types/dataset/aggregation.ts"],"names":[],"mappings":"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","file":"aggregation.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { SortOrder } from '..';\nimport { AggregationType, SortType } from '..';\nimport type { BaseTableAPI } from '../base-table';\n\nexport const registeredAggregators: {\n [key: string]: {\n new (args: {\n key?: string;\n field: string | string[];\n aggregationFun?: any;\n formatFun?: any;\n isRecord?: boolean;\n needSplitPositiveAndNegative?: boolean;\n calculateFun?: any;\n dependAggregators?: any;\n dependIndicatorKeys?: string[];\n }): Aggregator;\n };\n} = {};\n\nexport interface IAggregator {\n records: any[];\n value: () => any;\n push: (record: any) => void;\n deleteRecord: (record: any) => void;\n updateRecord: (oldRecord: any, newRecord: any) => void;\n recalculate: () => any;\n formatValue?: (col?: number, row?: number, table?: BaseTableAPI) => any;\n formatFun?: () => any;\n clearCacheValue: () => any;\n reset: () => void;\n}\nexport abstract class Aggregator implements IAggregator {\n isAggregator?: boolean = true;\n isRecord?: boolean = true; //是否需要维护records 将数据源都记录下来\n records: any[] = [];\n type?: string;\n key: string;\n field?: string | string[];\n formatFun?: any;\n changedValue?: any;\n children?: Aggregator[] = [];\n _formatedValue?: any;\n\n constructor(config: { key: string; field: string | string[]; formatFun?: any; isRecord?: boolean }) {\n this.key = config.key;\n this.field = config.field;\n this.formatFun = config.formatFun;\n this.isRecord = config.isRecord ?? this.isRecord;\n }\n abstract push(record: any): void;\n abstract deleteRecord(record: any): void;\n abstract updateRecord(oldRecord: any, newRecord: any): void;\n abstract value(): any;\n abstract recalculate(): any;\n clearCacheValue() {\n this._formatedValue = undefined;\n }\n formatValue(col?: number, row?: number, table?: BaseTableAPI) {\n if (!this._formatedValue) {\n if (this.formatFun) {\n this._formatedValue = this.formatFun(this.value(), col, row, table);\n } else {\n this._formatedValue = this.value();\n }\n }\n return this._formatedValue;\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.clearCacheValue();\n }\n}\nexport class RecordAggregator extends Aggregator {\n type: string = AggregationType.RECORD;\n isRecord?: boolean = true;\n push(record: any): void {\n if (record && this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n\n if (record.isAggregator && this.children) {\n this.children.push(record);\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? this.records;\n }\n reset() {\n this.children = [];\n this.changedValue = undefined;\n this.records = [];\n }\n recalculate() {\n // do nothing\n }\n}\n\nexport class NoneAggregator extends Aggregator {\n type: string = AggregationType.NONE; //仅获取其中一条数据(最新push的一条) 不做聚合 其fieldValue可以是number或者string类型\n isRecord?: boolean = true;\n declare field?: string;\n fieldValue?: any;\n push(record: any): void {\n if (record) {\n if (this.isRecord) {\n this.records = [record];\n }\n if (record.isAggregator && this.children) {\n this.children = [record];\n }\n if (this.field) {\n this.fieldValue = record[this.field];\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n if (this.field && this.records.length) {\n this.fieldValue = this.records[this.records.length - 1][this.field];\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (this.field && this.records.length) {\n this.fieldValue = this.records[this.records.length - 1][this.field];\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.children = [];\n this.changedValue = undefined;\n this.records = [];\n this.fieldValue = undefined;\n }\n recalculate() {\n // do nothing\n }\n}\nexport class CustomAggregator extends Aggregator {\n type: string = AggregationType.CUSTOM;\n isRecord?: boolean = true;\n declare field?: string;\n aggregationFun?: Function;\n values: (string | number)[] = [];\n fieldValue?: any;\n constructor(config: { key: string; field: string; formatFun?: any; isRecord?: boolean; aggregationFun?: Function }) {\n super(config);\n this.aggregationFun = config.aggregationFun;\n }\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n\n if (record.isAggregator && this.children) {\n this.children.push(record);\n }\n if (this.field) {\n this.values.push(record[this.field]);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (this.field && this.records.length) {\n this.values = this.records.map(item => item[this.field]);\n }\n this.clearCacheValue();\n }\n }\n deleteRecord(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n if (this.field && this.records.length) {\n this.values = this.records.map(item => item[this.field]);\n }\n }\n this.clearCacheValue();\n }\n value() {\n if (!this.fieldValue) {\n this.fieldValue = this.aggregationFun?.(this.values, this.records, this.field);\n }\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.records = [];\n this.children = [];\n this.changedValue = undefined;\n this.fieldValue = undefined;\n }\n recalculate() {\n this.fieldValue = undefined;\n this._formatedValue = undefined;\n // do nothing\n }\n}\n/** 透视表计算字段逻辑使用 */\nexport class RecalculateAggregator extends Aggregator {\n type: string = AggregationType.RECALCULATE;\n isRecord?: boolean = true;\n declare field?: string;\n calculateFun: Function;\n fieldValue?: any;\n dependAggregators: Aggregator[];\n dependIndicatorKeys: string[];\n constructor(config: {\n key: string;\n field: string;\n formatFun: any;\n isRecord: boolean;\n calculateFun: Function;\n dependAggregators: Aggregator[];\n dependIndicatorKeys: string[];\n }) {\n super(config);\n this.calculateFun = config.calculateFun;\n this.dependAggregators = config.dependAggregators;\n this.dependIndicatorKeys = config.dependIndicatorKeys;\n }\n push(record: any): void {\n if (record && this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (this.children && record.isAggregator) {\n this.children.push(record);\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n this.clearCacheValue();\n }\n }\n value() {\n if (!this.fieldValue) {\n const aggregatorValue = _getDependAggregatorValues(this.dependAggregators, this.dependIndicatorKeys);\n this.fieldValue = this.calculateFun?.(aggregatorValue, this.records, this.field);\n }\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.records = [];\n this.children = [];\n this.changedValue = undefined;\n this.fieldValue = undefined;\n }\n recalculate() {\n // do nothing\n }\n}\nexport class SumAggregator extends Aggregator {\n type: string = AggregationType.SUM;\n sum = 0;\n positiveSum = 0;\n nagetiveSum = 0;\n declare field?: string;\n needSplitPositiveAndNegativeForSum?: boolean = false;\n constructor(config: {\n key: string;\n field: string;\n formatFun?: any;\n isRecord?: boolean;\n needSplitPositiveAndNegative?: boolean;\n }) {\n super(config);\n this.needSplitPositiveAndNegativeForSum = config.needSplitPositiveAndNegative ?? false;\n }\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator && this.children) {\n this.children.push(record);\n const value = record.value();\n this.sum += value ?? 0;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum += value;\n } else if (value < 0) {\n this.nagetiveSum += value;\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum += value;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum += value;\n } else if (value < 0) {\n this.nagetiveSum += value;\n }\n }\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n const value = record.value();\n this.sum -= value ?? 0;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum -= value;\n } else if (value < 0) {\n this.nagetiveSum -= value;\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum -= value;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum -= value;\n } else if (value < 0) {\n this.nagetiveSum -= value;\n }\n }\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && this.children) {\n const oldValue = oldRecord.value();\n this.children = this.children.filter(item => item !== oldRecord);\n const newValue = newRecord.value();\n this.children.push(newRecord);\n this.sum += newValue - oldValue;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (oldValue > 0) {\n this.positiveSum -= oldValue;\n } else if (oldValue < 0) {\n this.nagetiveSum -= oldValue;\n }\n if (newValue > 0) {\n this.positiveSum += newValue;\n } else if (newValue < 0) {\n this.nagetiveSum += newValue;\n }\n }\n } else if (this.field && !isNaN(parseFloat(oldRecord[this.field]))) {\n const oldValue = parseFloat(oldRecord[this.field]);\n const newValue = parseFloat(newRecord[this.field]);\n this.sum += newValue - oldValue;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (oldValue > 0) {\n this.positiveSum -= oldValue;\n } else if (oldValue < 0) {\n this.nagetiveSum -= oldValue;\n }\n if (newValue > 0) {\n this.positiveSum += newValue;\n } else if (newValue < 0) {\n this.nagetiveSum += newValue;\n }\n }\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.sum : undefined);\n }\n positiveValue() {\n return this.positiveSum;\n }\n negativeValue() {\n return this.nagetiveSum;\n }\n reset() {\n super.reset();\n this.records = [];\n this.sum = 0;\n }\n recalculate() {\n this.sum = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const value = child.value();\n this.sum += value ?? 0;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum += value;\n } else if (value < 0) {\n this.nagetiveSum += value;\n }\n }\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n const value = record.value();\n this.sum += value ?? 0;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum += value;\n } else if (value < 0) {\n this.nagetiveSum += value;\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum += value;\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum += value;\n } else if (value < 0) {\n this.nagetiveSum += value;\n }\n }\n }\n }\n }\n }\n}\n\nexport class CountAggregator extends Aggregator {\n type: string = AggregationType.COUNT;\n count = 0;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.count += record.value();\n } else {\n this.count++;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n this.count -= record.value();\n } else {\n this.count--;\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator) {\n this.count += newRecord.value() - oldRecord.value();\n } else {\n //this.count++;\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n }\n value() {\n return this.changedValue ?? this.count;\n }\n reset() {\n this.changedValue = undefined;\n this.children = [];\n this.records = [];\n this.count = 0;\n }\n recalculate() {\n this.count = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const value = child.value();\n this.count += value ?? 0;\n } else {\n this.count++;\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.count += record.value();\n } else {\n this.count++;\n }\n }\n }\n }\n}\nexport class AvgAggregator extends Aggregator {\n type: string = AggregationType.AVG;\n sum = 0;\n count = 0;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator && record.type === AggregationType.AVG) {\n if (this.children) {\n this.children.push(record);\n }\n this.sum += record.sum;\n this.count += record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum += parseFloat(record[this.field]);\n this.count++;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && record.type === AggregationType.AVG) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n this.sum -= record.sum;\n this.count -= record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum -= parseFloat(record[this.field]);\n this.count--;\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && oldRecord.type === AggregationType.AVG) {\n if (this.children && newRecord.isAggregator) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n this.sum += newRecord.sum - oldRecord.sum;\n this.count += newRecord.count - oldRecord.count;\n } else if (this.field && !isNaN(parseFloat(oldRecord[this.field]))) {\n this.sum += parseFloat(newRecord[this.field]) - parseFloat(oldRecord[this.field]);\n // this.count++;\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.sum / this.count : undefined);\n }\n reset() {\n this.changedValue = undefined;\n this.children = [];\n this.records = [];\n this.sum = 0;\n this.count = 0;\n }\n recalculate() {\n this.sum = 0;\n this.count = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator && child.type === AggregationType.AVG) {\n const childValue = child.value();\n this.sum += childValue * (child as AvgAggregator).count;\n this.count += (child as AvgAggregator).count;\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator && record.type === AggregationType.AVG) {\n this.sum += record.sum;\n this.count += record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum += parseFloat(record[this.field]);\n this.count++;\n }\n }\n }\n }\n}\nexport class MaxAggregator extends Aggregator {\n type: string = AggregationType.MAX;\n max: number = Number.MIN_SAFE_INTEGER;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.max = record.max > this.max ? record.max : this.max;\n } else if (typeof record === 'number') {\n this.max = record > this.max ? record : this.max;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.max = record[this.field] > this.max ? record[this.field] : this.max;\n } else if (this.field && !isNaN(record[this.field])) {\n this.max = parseFloat(record[this.field]) > this.max ? parseFloat(record[this.field]) : this.max;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.recalculate();\n }\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator) {\n if (this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n this.recalculate();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.max : undefined);\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.max = Number.MIN_SAFE_INTEGER;\n }\n recalculate() {\n this.max = Number.MIN_SAFE_INTEGER;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const childValue = child.value();\n this.max = Math.max(this.max, childValue);\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.max = record.max > this.max ? record.max : this.max;\n } else if (typeof record === 'number') {\n this.max = record > this.max ? record : this.max;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.max = record[this.field] > this.max ? record[this.field] : this.max;\n } else if (this.field && !isNaN(record[this.field])) {\n this.max = parseFloat(record[this.field]) > this.max ? parseFloat(record[this.field]) : this.max;\n }\n }\n }\n }\n}\nexport class MinAggregator extends Aggregator {\n type: string = AggregationType.MIN;\n min: number = Number.MAX_SAFE_INTEGER;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.min = record.min < this.min ? record.min : this.min;\n } else if (typeof record === 'number') {\n this.min = record < this.min ? record : this.min;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.min = record[this.field] < this.min ? record[this.field] : this.min;\n } else if (this.field && !isNaN(record[this.field])) {\n this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.recalculate();\n }\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator) {\n if (this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n this.recalculate();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.min : undefined);\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.min = Number.MAX_SAFE_INTEGER;\n }\n recalculate() {\n this.min = Number.MAX_SAFE_INTEGER;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const childValue = child.value();\n this.min = Math.min(this.min, childValue);\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.min = record.min < this.min ? record.min : this.min;\n } else if (typeof record === 'number') {\n this.min = record < this.min ? record : this.min;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.min = record[this.field] < this.min ? record[this.field] : this.min;\n } else if (this.field && !isNaN(record[this.field])) {\n this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min;\n }\n }\n }\n }\n}\nexport function indicatorSort(a: any, b: any) {\n if (a && b) {\n // 数据健全兼容,用户数据不全时,能够展示.\n return a.toString().localeCompare(b.toString(), 'zh');\n }\n if (a) {\n return 1;\n }\n return -1;\n}\nexport function typeSort(a: any, b: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n if (a && b) {\n // 数据健全兼容,用户数据不全时,能够展示.\n return a.toString().localeCompare(b.toString(), 'zh') * factor;\n }\n if (a) {\n return 1 * factor;\n }\n return -1 * factor;\n}\nexport function naturalSort(as: any, bs: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n\n const rx = /(\\d+)|(\\D+)/g;\n const rd = /\\d/;\n const rz = /^0/;\n let a;\n let a1;\n let b;\n let b1;\n let nas = 0;\n let nbs = 0;\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n if (bs !== null && as === null) {\n return -1 * factor;\n }\n if (as !== null && bs === null) {\n return 1 * factor;\n }\n if (typeof as === 'number' && isNaN(as)) {\n return -1 * factor;\n }\n if (typeof bs === 'number' && isNaN(bs)) {\n return 1 * factor;\n }\n nas = +as;\n nbs = +bs;\n if (nas < nbs) {\n return -1 * factor;\n }\n if (nas > nbs) {\n return 1 * factor;\n }\n if (typeof as === 'number' && typeof bs !== 'number') {\n return -1 * factor;\n }\n if (typeof bs === 'number' && typeof as !== 'number') {\n return 1 * factor;\n }\n if (typeof as === 'number' && typeof bs === 'number') {\n return 0;\n }\n if (isNaN(nbs) && !isNaN(nas)) {\n return -1 * factor;\n }\n if (isNaN(nas) && !isNaN(nbs)) {\n return 1 * factor;\n }\n a = String(as);\n b = String(bs);\n if (a === b) {\n return 0;\n }\n if (!(rd.test(a) && rd.test(b))) {\n return (a > b ? 1 : -1) * factor;\n }\n a = a.match(rx);\n b = b.match(rx);\n while (a.length && b.length) {\n a1 = a.shift();\n b1 = b.shift();\n if (a1 !== b1) {\n if (rd.test(a1) && rd.test(b1)) {\n return (<any>a1.replace(rz, '.0') - <any>b1.replace(rz, '.0')) * factor;\n }\n return (a1 > b1 ? 1 : -1) * factor;\n }\n }\n return (a.length - b.length) * factor;\n}\nexport function sortBy(order: string[]) {\n let x;\n let i;\n const mapping: any = {};\n const lowercase_mapping: any = {};\n // for (i in order) {\n for (let i = 0; i < order.length; i++) {\n x = order[i];\n mapping[x] = i;\n if (typeof x === 'string') {\n lowercase_mapping[x.toLowerCase()] = i;\n }\n }\n return function (a: any, b: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n let comparison;\n if (mapping[a] !== null && mapping[a] !== undefined && mapping[b] !== null && mapping[b] !== undefined) {\n comparison = mapping[a] - mapping[b];\n } else if (mapping[a] !== null && mapping[a] !== undefined) {\n comparison = -1;\n } else if (mapping[b] !== null && mapping[b] !== undefined) {\n comparison = 1;\n } else if (\n lowercase_mapping[a] !== null &&\n mapping[a] !== undefined &&\n lowercase_mapping[b] !== null &&\n mapping[b] !== undefined\n ) {\n comparison = lowercase_mapping[a] - lowercase_mapping[b];\n } else if (\n lowercase_mapping[a] === null ||\n mapping[a] === undefined ||\n lowercase_mapping[b] === null ||\n mapping[b] === undefined\n ) {\n comparison = 0;\n } else if (lowercase_mapping[a] !== null && mapping[a] !== undefined) {\n comparison = -1;\n } else if (lowercase_mapping[b] !== null && mapping[b] !== undefined) {\n comparison = 1;\n }\n if (isValid(comparison)) {\n return comparison * factor;\n }\n\n return naturalSort(a, b, sortType);\n };\n}\n\nfunction _getDependAggregatorValues(aggregators: Aggregator[], dependIndicatorKeys: string[]) {\n const dependAggregatorValues: any = {};\n for (let m = 0; m < dependIndicatorKeys?.length; m++) {\n const aggrator = aggregators.find(aggrator => aggrator?.key === dependIndicatorKeys[m]);\n if (aggrator) {\n dependAggregatorValues[aggrator.key] = aggrator?.value();\n }\n }\n return dependAggregatorValues;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ts-types/dataset/aggregation.ts"],"names":[],"mappings":"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","file":"aggregation.js","sourcesContent":["import { isValid, precisionAdd, precisionSub } from '@visactor/vutils';\nimport type { SortOrder } from '..';\nimport { AggregationType, SortType } from '..';\nimport type { BaseTableAPI } from '../base-table';\n\nexport const registeredAggregators: {\n [key: string]: {\n new (args: {\n key?: string;\n field: string | string[];\n aggregationFun?: any;\n formatFun?: any;\n isRecord?: boolean;\n needSplitPositiveAndNegative?: boolean;\n calculateFun?: any;\n dependAggregators?: any;\n dependIndicatorKeys?: string[];\n }): Aggregator;\n };\n} = {};\n\nexport interface IAggregator {\n records: any[];\n value: () => any;\n push: (record: any) => void;\n deleteRecord: (record: any) => void;\n updateRecord: (oldRecord: any, newRecord: any) => void;\n recalculate: () => any;\n formatValue?: (col?: number, row?: number, table?: BaseTableAPI) => any;\n formatFun?: () => any;\n clearCacheValue: () => any;\n reset: () => void;\n}\nexport abstract class Aggregator implements IAggregator {\n isAggregator?: boolean = true;\n isRecord?: boolean = true; //是否需要维护records 将数据源都记录下来\n records: any[] = [];\n type?: string;\n key: string;\n field?: string | string[];\n formatFun?: any;\n changedValue?: any;\n children?: Aggregator[] = [];\n _formatedValue?: any;\n\n constructor(config: { key: string; field: string | string[]; formatFun?: any; isRecord?: boolean }) {\n this.key = config.key;\n this.field = config.field;\n this.formatFun = config.formatFun;\n this.isRecord = config.isRecord ?? this.isRecord;\n }\n abstract push(record: any): void;\n abstract deleteRecord(record: any): void;\n abstract updateRecord(oldRecord: any, newRecord: any): void;\n abstract value(): any;\n abstract recalculate(): any;\n clearCacheValue() {\n this._formatedValue = undefined;\n }\n formatValue(col?: number, row?: number, table?: BaseTableAPI) {\n if (!this._formatedValue) {\n if (this.formatFun) {\n this._formatedValue = this.formatFun(this.value(), col, row, table);\n } else {\n this._formatedValue = this.value();\n }\n }\n return this._formatedValue;\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.clearCacheValue();\n }\n}\nexport class RecordAggregator extends Aggregator {\n type: string = AggregationType.RECORD;\n isRecord?: boolean = true;\n push(record: any): void {\n if (record && this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n\n if (record.isAggregator && this.children) {\n this.children.push(record);\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? this.records;\n }\n reset() {\n this.children = [];\n this.changedValue = undefined;\n this.records = [];\n }\n recalculate() {\n // do nothing\n }\n}\n\nexport class NoneAggregator extends Aggregator {\n type: string = AggregationType.NONE; //仅获取其中一条数据(最新push的一条) 不做聚合 其fieldValue可以是number或者string类型\n isRecord?: boolean = true;\n declare field?: string;\n fieldValue?: any;\n push(record: any): void {\n if (record) {\n if (this.isRecord) {\n this.records = [record];\n }\n if (record.isAggregator && this.children) {\n this.children = [record];\n }\n if (this.field) {\n this.fieldValue = record[this.field];\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n if (this.field && this.records.length) {\n this.fieldValue = this.records[this.records.length - 1][this.field];\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (this.field && this.records.length) {\n this.fieldValue = this.records[this.records.length - 1][this.field];\n }\n this.clearCacheValue();\n }\n }\n value() {\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.children = [];\n this.changedValue = undefined;\n this.records = [];\n this.fieldValue = undefined;\n }\n recalculate() {\n // do nothing\n }\n}\nexport class CustomAggregator extends Aggregator {\n type: string = AggregationType.CUSTOM;\n isRecord?: boolean = true;\n declare field?: string;\n aggregationFun?: Function;\n values: (string | number)[] = [];\n fieldValue?: any;\n constructor(config: { key: string; field: string; formatFun?: any; isRecord?: boolean; aggregationFun?: Function }) {\n super(config);\n this.aggregationFun = config.aggregationFun;\n }\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n\n if (record.isAggregator && this.children) {\n this.children.push(record);\n }\n if (this.field) {\n this.values.push(record[this.field]);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (this.field && this.records.length) {\n this.values = this.records.map(item => item[this.field]);\n }\n this.clearCacheValue();\n }\n }\n deleteRecord(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n if (this.field && this.records.length) {\n this.values = this.records.map(item => item[this.field]);\n }\n }\n this.clearCacheValue();\n }\n value() {\n if (!this.fieldValue) {\n this.fieldValue = this.aggregationFun?.(this.values, this.records, this.field);\n }\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.records = [];\n this.children = [];\n this.changedValue = undefined;\n this.fieldValue = undefined;\n }\n recalculate() {\n this.fieldValue = undefined;\n this._formatedValue = undefined;\n // do nothing\n }\n}\n/** 透视表计算字段逻辑使用 */\nexport class RecalculateAggregator extends Aggregator {\n type: string = AggregationType.RECALCULATE;\n isRecord?: boolean = true;\n declare field?: string;\n calculateFun: Function;\n fieldValue?: any;\n dependAggregators: Aggregator[];\n dependIndicatorKeys: string[];\n constructor(config: {\n key: string;\n field: string;\n formatFun: any;\n isRecord: boolean;\n calculateFun: Function;\n dependAggregators: Aggregator[];\n dependIndicatorKeys: string[];\n }) {\n super(config);\n this.calculateFun = config.calculateFun;\n this.dependAggregators = config.dependAggregators;\n this.dependIndicatorKeys = config.dependIndicatorKeys;\n }\n push(record: any): void {\n if (record && this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (this.children && record.isAggregator) {\n this.children.push(record);\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator && this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n this.clearCacheValue();\n }\n }\n value() {\n if (!this.fieldValue) {\n const aggregatorValue = _getDependAggregatorValues(this.dependAggregators, this.dependIndicatorKeys);\n this.fieldValue = this.calculateFun?.(aggregatorValue, this.records, this.field);\n }\n return this.changedValue ?? this.fieldValue;\n }\n reset() {\n this.records = [];\n this.children = [];\n this.changedValue = undefined;\n this.fieldValue = undefined;\n }\n recalculate() {\n // do nothing\n }\n}\nexport class SumAggregator extends Aggregator {\n type: string = AggregationType.SUM;\n sum = 0;\n positiveSum = 0;\n nagetiveSum = 0;\n declare field?: string;\n needSplitPositiveAndNegativeForSum?: boolean = false;\n constructor(config: {\n key: string;\n field: string;\n formatFun?: any;\n isRecord?: boolean;\n needSplitPositiveAndNegative?: boolean;\n }) {\n super(config);\n this.needSplitPositiveAndNegativeForSum = config.needSplitPositiveAndNegative ?? false;\n }\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator && this.children) {\n this.children.push(record);\n const value = record.value();\n this.sum = precisionAdd(this.sum, value ?? 0);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, value);\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum = precisionAdd(this.sum, value);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, value);\n }\n }\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n const index = this.records.indexOf(record);\n if (index !== -1) {\n this.records.splice(index, 1);\n }\n }\n if (record.isAggregator && this.children) {\n const index = this.children.indexOf(record);\n if (index !== -1) {\n this.children.splice(index, 1);\n }\n const value = record.value();\n this.sum = precisionSub(this.sum, value ?? 0);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionSub(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionSub(this.nagetiveSum, value);\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum = precisionSub(this.sum, value);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionSub(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionSub(this.nagetiveSum, value);\n }\n }\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n const index = this.records.indexOf(oldRecord);\n if (index !== -1) {\n this.records[index] = newRecord;\n }\n }\n if (oldRecord.isAggregator && this.children) {\n const oldValue = oldRecord.value();\n const index = this.children.indexOf(oldRecord);\n if (index !== -1) {\n this.children[index] = newRecord;\n }\n const newValue = newRecord.value();\n this.sum = precisionAdd(this.sum, precisionSub(newValue, oldValue));\n if (this.needSplitPositiveAndNegativeForSum) {\n if (oldValue > 0) {\n this.positiveSum = precisionSub(this.positiveSum, oldValue);\n } else if (oldValue < 0) {\n this.nagetiveSum = precisionSub(this.nagetiveSum, oldValue);\n }\n if (newValue > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, newValue);\n } else if (newValue < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, newValue);\n }\n }\n } else if (this.field && !isNaN(parseFloat(oldRecord[this.field]))) {\n const oldValue = parseFloat(oldRecord[this.field]);\n const newValue = parseFloat(newRecord[this.field]);\n this.sum = precisionAdd(this.sum, precisionSub(newValue, oldValue));\n if (this.needSplitPositiveAndNegativeForSum) {\n if (oldValue > 0) {\n this.positiveSum = precisionSub(this.positiveSum, oldValue);\n } else if (oldValue < 0) {\n this.nagetiveSum = precisionSub(this.nagetiveSum, oldValue);\n }\n if (newValue > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, newValue);\n } else if (newValue < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, newValue);\n }\n }\n }\n this.clearCacheValue();\n }\n }\n value() {\n return (\n this.changedValue ??\n (this.records && this.records.length >= 1 ? this.sum : this.isRecord === false ? this.sum : undefined)\n );\n }\n positiveValue() {\n return this.positiveSum;\n }\n negativeValue() {\n return this.nagetiveSum;\n }\n reset() {\n super.reset();\n this.records = [];\n this.sum = 0;\n }\n recalculate() {\n this.sum = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const value = child.value();\n this.sum = precisionAdd(this.sum, value ?? 0);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, value);\n }\n }\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n const value = record.value();\n this.sum = precisionAdd(this.sum, value ?? 0);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, value);\n }\n }\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n const value = parseFloat(record[this.field]);\n this.sum = precisionAdd(this.sum, value);\n if (this.needSplitPositiveAndNegativeForSum) {\n if (value > 0) {\n this.positiveSum = precisionAdd(this.positiveSum, value);\n } else if (value < 0) {\n this.nagetiveSum = precisionAdd(this.nagetiveSum, value);\n }\n }\n }\n }\n }\n }\n}\n\nexport class CountAggregator extends Aggregator {\n type: string = AggregationType.COUNT;\n count = 0;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.count += record.value();\n } else {\n this.count++;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n this.count -= record.value();\n } else {\n this.count--;\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator) {\n this.count += newRecord.value() - oldRecord.value();\n } else {\n //this.count++;\n }\n if (oldRecord.isAggregator && newRecord.isAggregator && this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n }\n value() {\n return this.changedValue ?? this.count;\n }\n reset() {\n this.changedValue = undefined;\n this.children = [];\n this.records = [];\n this.count = 0;\n }\n recalculate() {\n this.count = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const value = child.value();\n this.count += value ?? 0;\n } else {\n this.count++;\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.count += record.value();\n } else {\n this.count++;\n }\n }\n }\n }\n}\nexport class AvgAggregator extends Aggregator {\n type: string = AggregationType.AVG;\n sum = 0;\n count = 0;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator && record.type === AggregationType.AVG) {\n if (this.children) {\n this.children.push(record);\n }\n this.sum = precisionAdd(this.sum, record.sum);\n this.count += record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum = precisionAdd(this.sum, parseFloat(record[this.field]));\n this.count++;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n const index = this.records.indexOf(record);\n if (index !== -1) {\n this.records.splice(index, 1);\n }\n }\n if (record.isAggregator && record.type === AggregationType.AVG) {\n if (this.children) {\n const index = this.children.indexOf(record);\n if (index !== -1) {\n this.children.splice(index, 1);\n }\n }\n this.sum = precisionSub(this.sum, record.sum);\n this.count -= record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum = precisionSub(this.sum, parseFloat(record[this.field]));\n this.count--;\n }\n }\n this.clearCacheValue();\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n const index = this.records.indexOf(oldRecord);\n if (index !== -1) {\n this.records[index] = newRecord;\n }\n }\n if (oldRecord.isAggregator && oldRecord.type === AggregationType.AVG) {\n if (this.children && newRecord.isAggregator) {\n const index = this.children.indexOf(oldRecord);\n if (index !== -1) {\n this.children[index] = newRecord;\n }\n }\n this.sum = precisionAdd(this.sum, precisionSub(newRecord.sum, oldRecord.sum));\n this.count += newRecord.count - oldRecord.count;\n } else if (this.field && !isNaN(parseFloat(oldRecord[this.field]))) {\n this.sum = precisionAdd(\n this.sum,\n precisionSub(parseFloat(newRecord[this.field]), parseFloat(oldRecord[this.field]))\n );\n // this.count++;\n }\n this.clearCacheValue();\n }\n }\n value() {\n return (\n this.changedValue ??\n (this.records && this.records.length >= 1\n ? this.sum / this.count\n : this.isRecord === false && this.count > 0\n ? this.sum / this.count\n : undefined)\n );\n }\n reset() {\n this.changedValue = undefined;\n this.children = [];\n this.records = [];\n this.sum = 0;\n this.count = 0;\n }\n recalculate() {\n this.sum = 0;\n this.count = 0;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator && child.type === AggregationType.AVG) {\n const childValue = child.value();\n this.sum = precisionAdd(this.sum, childValue * (child as AvgAggregator).count);\n this.count += (child as AvgAggregator).count;\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator && record.type === AggregationType.AVG) {\n this.sum = precisionAdd(this.sum, record.sum);\n this.count += record.count;\n } else if (this.field && !isNaN(parseFloat(record[this.field]))) {\n this.sum = precisionAdd(this.sum, parseFloat(record[this.field]));\n this.count++;\n }\n }\n }\n }\n}\nexport class MaxAggregator extends Aggregator {\n type: string = AggregationType.MAX;\n max: number = Number.MIN_SAFE_INTEGER;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.max = record.max > this.max ? record.max : this.max;\n } else if (typeof record === 'number') {\n this.max = record > this.max ? record : this.max;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.max = record[this.field] > this.max ? record[this.field] : this.max;\n } else if (this.field && !isNaN(record[this.field])) {\n this.max = parseFloat(record[this.field]) > this.max ? parseFloat(record[this.field]) : this.max;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.recalculate();\n }\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator) {\n if (this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n this.recalculate();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.max : undefined);\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.max = Number.MIN_SAFE_INTEGER;\n }\n recalculate() {\n this.max = Number.MIN_SAFE_INTEGER;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const childValue = child.value();\n this.max = Math.max(this.max, childValue);\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.max = record.max > this.max ? record.max : this.max;\n } else if (typeof record === 'number') {\n this.max = record > this.max ? record : this.max;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.max = record[this.field] > this.max ? record[this.field] : this.max;\n } else if (this.field && !isNaN(record[this.field])) {\n this.max = parseFloat(record[this.field]) > this.max ? parseFloat(record[this.field]) : this.max;\n }\n }\n }\n }\n}\nexport class MinAggregator extends Aggregator {\n type: string = AggregationType.MIN;\n min: number = Number.MAX_SAFE_INTEGER;\n declare field?: string;\n push(record: any): void {\n if (record) {\n if (this.isRecord && this.records) {\n if (record.isAggregator) {\n this.records.push(...record.records);\n } else {\n this.records.push(record);\n }\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children.push(record);\n }\n this.min = record.min < this.min ? record.min : this.min;\n } else if (typeof record === 'number') {\n this.min = record < this.min ? record : this.min;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.min = record[this.field] < this.min ? record[this.field] : this.min;\n } else if (this.field && !isNaN(record[this.field])) {\n this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min;\n }\n }\n this.clearCacheValue();\n }\n deleteRecord(record: any) {\n if (record) {\n if (this.isRecord && this.records) {\n this.records = this.records.filter(item => item !== record);\n }\n if (record.isAggregator) {\n if (this.children) {\n this.children = this.children.filter(item => item !== record);\n }\n }\n this.recalculate();\n }\n }\n updateRecord(oldRecord: any, newRecord: any): void {\n if (oldRecord && newRecord) {\n if (this.isRecord && this.records) {\n this.records = this.records.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n if (oldRecord.isAggregator && newRecord.isAggregator) {\n if (this.children) {\n this.children = this.children.map(item => {\n if (item === oldRecord) {\n return newRecord;\n }\n return item;\n });\n }\n }\n this.recalculate();\n }\n }\n value() {\n return this.changedValue ?? (this.records?.length >= 1 ? this.min : undefined);\n }\n reset() {\n this.records = [];\n this.changedValue = undefined;\n this.children = [];\n this.min = Number.MAX_SAFE_INTEGER;\n }\n recalculate() {\n this.min = Number.MAX_SAFE_INTEGER;\n this._formatedValue = undefined;\n if (this.children && this.children.length > 0) {\n for (let i = 0; i < this.children.length; i++) {\n const child = this.children[i];\n if (child.isAggregator) {\n const childValue = child.value();\n this.min = Math.min(this.min, childValue);\n }\n }\n } else if (this.records) {\n for (let i = 0; i < this.records.length; i++) {\n const record = this.records[i];\n if (record.isAggregator) {\n this.min = record.min < this.min ? record.min : this.min;\n } else if (typeof record === 'number') {\n this.min = record < this.min ? record : this.min;\n } else if (this.field && typeof record[this.field] === 'number') {\n this.min = record[this.field] < this.min ? record[this.field] : this.min;\n } else if (this.field && !isNaN(record[this.field])) {\n this.min = parseFloat(record[this.field]) < this.min ? parseFloat(record[this.field]) : this.min;\n }\n }\n }\n }\n}\nexport function indicatorSort(a: any, b: any) {\n if (a && b) {\n // 数据健全兼容,用户数据不全时,能够展示.\n return a.toString().localeCompare(b.toString(), 'zh');\n }\n if (a) {\n return 1;\n }\n return -1;\n}\nexport function typeSort(a: any, b: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n if (a && b) {\n // 数据健全兼容,用户数据不全时,能够展示.\n return a.toString().localeCompare(b.toString(), 'zh') * factor;\n }\n if (a) {\n return 1 * factor;\n }\n return -1 * factor;\n}\nexport function naturalSort(as: any, bs: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n\n const rx = /(\\d+)|(\\D+)/g;\n const rd = /\\d/;\n const rz = /^0/;\n let a;\n let a1;\n let b;\n let b1;\n let nas = 0;\n let nbs = 0;\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n if (bs !== null && as === null) {\n return -1 * factor;\n }\n if (as !== null && bs === null) {\n return 1 * factor;\n }\n if (typeof as === 'number' && isNaN(as)) {\n return -1 * factor;\n }\n if (typeof bs === 'number' && isNaN(bs)) {\n return 1 * factor;\n }\n nas = +as;\n nbs = +bs;\n if (nas < nbs) {\n return -1 * factor;\n }\n if (nas > nbs) {\n return 1 * factor;\n }\n if (typeof as === 'number' && typeof bs !== 'number') {\n return -1 * factor;\n }\n if (typeof bs === 'number' && typeof as !== 'number') {\n return 1 * factor;\n }\n if (typeof as === 'number' && typeof bs === 'number') {\n return 0;\n }\n if (isNaN(nbs) && !isNaN(nas)) {\n return -1 * factor;\n }\n if (isNaN(nas) && !isNaN(nbs)) {\n return 1 * factor;\n }\n a = String(as);\n b = String(bs);\n if (a === b) {\n return 0;\n }\n if (!(rd.test(a) && rd.test(b))) {\n return (a > b ? 1 : -1) * factor;\n }\n a = a.match(rx);\n b = b.match(rx);\n while (a.length && b.length) {\n a1 = a.shift();\n b1 = b.shift();\n if (a1 !== b1) {\n if (rd.test(a1) && rd.test(b1)) {\n return (<any>a1.replace(rz, '.0') - <any>b1.replace(rz, '.0')) * factor;\n }\n return (a1 > b1 ? 1 : -1) * factor;\n }\n }\n return (a.length - b.length) * factor;\n}\nexport function sortBy(order: string[]) {\n let x;\n let i;\n const mapping: any = {};\n const lowercase_mapping: any = {};\n // for (i in order) {\n for (let i = 0; i < order.length; i++) {\n x = order[i];\n mapping[x] = i;\n if (typeof x === 'string') {\n lowercase_mapping[x.toLowerCase()] = i;\n }\n }\n return function (a: any, b: any, sortType: SortType) {\n if (sortType === SortType.NORMAL || sortType === SortType.normal) {\n return 0;\n }\n const factor = sortType === SortType.DESC || sortType === SortType.desc ? -1 : 1;\n let comparison;\n if (mapping[a] !== null && mapping[a] !== undefined && mapping[b] !== null && mapping[b] !== undefined) {\n comparison = mapping[a] - mapping[b];\n } else if (mapping[a] !== null && mapping[a] !== undefined) {\n comparison = -1;\n } else if (mapping[b] !== null && mapping[b] !== undefined) {\n comparison = 1;\n } else if (\n lowercase_mapping[a] !== null &&\n mapping[a] !== undefined &&\n lowercase_mapping[b] !== null &&\n mapping[b] !== undefined\n ) {\n comparison = lowercase_mapping[a] - lowercase_mapping[b];\n } else if (\n lowercase_mapping[a] === null ||\n mapping[a] === undefined ||\n lowercase_mapping[b] === null ||\n mapping[b] === undefined\n ) {\n comparison = 0;\n } else if (lowercase_mapping[a] !== null && mapping[a] !== undefined) {\n comparison = -1;\n } else if (lowercase_mapping[b] !== null && mapping[b] !== undefined) {\n comparison = 1;\n }\n if (isValid(comparison)) {\n return comparison * factor;\n }\n\n return naturalSort(a, b, sortType);\n };\n}\n\nfunction _getDependAggregatorValues(aggregators: Aggregator[], dependIndicatorKeys: string[]) {\n const dependAggregatorValues: any = {};\n for (let m = 0; m < dependIndicatorKeys?.length; m++) {\n const aggrator = aggregators.find(aggrator => aggrator?.key === dependIndicatorKeys[m]);\n if (aggrator) {\n dependAggregatorValues[aggrator.key] = aggrator?.value();\n }\n }\n return dependAggregatorValues;\n}\n"]}
|
package/cjs/ts-types/icon.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ITextGraphicAttribute } from './../vrender';
|
|
2
2
|
import type { Placement } from './table-engine';
|
|
3
3
|
export interface IIconBase {
|
|
4
4
|
type: 'text' | 'svg' | 'path' | 'image';
|
|
@@ -37,7 +37,7 @@ export interface IIconBase {
|
|
|
37
37
|
export interface TextIcon extends IIconBase {
|
|
38
38
|
type: 'text';
|
|
39
39
|
content: string;
|
|
40
|
-
style?:
|
|
40
|
+
style?: Partial<ITextGraphicAttribute>;
|
|
41
41
|
}
|
|
42
42
|
export interface ImageIcon extends IIconBase {
|
|
43
43
|
type: 'image';
|
package/cjs/ts-types/icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ts-types/icon.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/ts-types/icon.ts"],"names":[],"mappings":";;;AAwHA,IAAY,YAsBX;AAtBD,WAAY,YAAY;IAEtB,2CAA2B,CAAA;IAE3B,uCAAuB,CAAA;IAEvB,6BAAa,CAAA;IAEb,+BAAe,CAAA;IAEf,+CAA+B,CAAA;IAM/B,2CAA2B,CAAA;IAE3B,6CAA6B,CAAA;IAG7B,qCAAqB,CAAA;AACvB,CAAC,EAtBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsBvB;AAMD,IAAY,gBAcX;AAdD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,mDAA+B,CAAA;IAC/B,iCAAa,CAAA;IACb,2CAAuB,CAAA;IACvB,qDAAiC,CAAA;IACjC,qDAAiC,CAAA;IACjC,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,+CAA2B,CAAA;AAC7B,CAAC,EAdW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAc3B;AACD,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,kDAA8B,CAAA;IAC9B,sDAAkC,CAAA;IAClC,kDAA8B,CAAA;IAE9B,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,2DAAuC,CAAA;IACvC,qDAAiC,CAAA;IAEjC,6CAAyB,CAAA;IACzB,iDAA6B,CAAA;IAC7B,uDAAmC,CAAA;IAEnC,+CAA2B,CAAA;AAC7B,CAAC,EAfW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAe3B","file":"icon.js","sourcesContent":["// ****** Icon配置信息,header ,以及列Icon *******9\n\nimport type { ITextAttribute, ITextGraphicAttribute } from './../vrender';\nimport type { Placement } from './table-engine';\n\nexport interface IIconBase {\n /**\n * icon 是何种内容类型,如svg font。可用来约束不同类型的属性定义\n */\n type: 'text' | 'svg' | 'path' | 'image';\n /** icon的高度 */\n width?: number;\n /** icon的高度 */\n height?: number; // 如果是font图标 不设的话默认是字体高度\n /**\n * IconPosition枚举类型\n */\n positionType: IconPosition;\n /**\n * 和右侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginRight?: number;\n /**\n * 和左侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginLeft?: number;\n /**\n * icon名称,会作为内部缓存的key\n */\n name: string;\n /**\n * 重置VTable内部icon 指定icon的功能类型\n * 具有切换状态的功能性的图标请务必配置上, 如排序功能funcType配置sort,name配置sort_normal或ort_downward,或sort_upward\n */\n funcType?: IconFuncTypeEnum | string;\n /**\n * 响应hover 热区大小,及hover效果背景色\n */\n hover?: {\n width?: number;\n height?: number;\n bgColor: string;\n image?: string;\n };\n /** 鼠标hover到图标上后出现的具体鼠标样式 */\n cursor?: string;\n /**是否可见 默认'always' 可选:'always' | 'mouseenter_cell' | 'click_cell',常驻|hover到单元格时|选中单元格时。\n * 建议:如需使用 'mouseenter_cell' | 'click_cell',建议将positionTyle设为absoluteRight【即不占位】,否则占位的类型会影响视觉展示\n */\n visibleTime?: 'always' | 'mouseenter_cell' | 'click_cell';\n /**\n * 气泡框,按钮的的解释信息, 目前只支持hover行为触发\n */\n tooltip?: {\n title: string;\n /**气泡框位置,可选 top left right bottom */\n placement?: Placement;\n /** 气泡框的样式 不配的话会使用theme中的样式 */\n style?: {\n // font?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n bgColor?: string;\n arrowMark?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n };\n disappearDelay?: number;\n };\n /**\n * 是否可交互 默认为true 目前已知不可交互按钮:下拉菜单状态\n */\n interactive?: boolean;\n}\n\n// ****** Column Icon Options *******\nexport interface TextIcon extends IIconBase {\n type: 'text';\n content: string;\n /**\n * 文字图标的样式,支持 fill、fontSize、underline 等文字及图形属性\n * 使用 Partial 以允许只配置需要的属性\n */\n style?: Partial<ITextGraphicAttribute>;\n}\nexport interface ImageIcon extends IIconBase {\n type: 'image';\n src: string;\n /** 图片裁切形状 */\n shape?: 'circle' | 'square';\n\n isGif?: boolean;\n}\n\nexport interface PathIcon extends IIconBase {\n type: 'path';\n path: string;\n color?: string;\n}\n\nexport interface SvgIcon extends IIconBase {\n type: 'svg';\n /**\n * svg内容,支持url或者path\n */\n svg: string;\n}\n\n// export interface NamedIcon extends IIconBase {\n// type: 'name';\n// color?: string;\n// }\n/**\n * icon 的位置\n * inlineFront:文本内容的前面,\n * inlineEnd:文本内容后面\n *\n */\nexport enum IconPosition {\n /**文本行内容前面的图标,跟随文本定位,随文本折行 */\n inlineFront = 'inlineFront',\n /**文本行内容后面的图标,跟随文本定位,随文本折行。如sort图表 放在文本内容的第一行 */\n inlineEnd = 'inlineEnd',\n /**单元格左侧按钮 且受padding影响 */\n left = 'left',\n /**单元格右侧按钮 受padding影响 如pin图表 */\n right = 'right',\n /**固定在右侧的图标,不占位,不受padding影响,可能压盖内容 如 dropDown */\n absoluteRight = 'absoluteRight',\n\n // todo 增加更丰富的配置\n // cellLeft = 'cellLeft', //cell内靠左侧布局的图标(占位但是不受padding影响?)\n // cellRight = 'cellRight', //cell内靠右侧布局的图标\n /**在单元格内容块的左侧的图标,跟随文本定位,不随文本折行 */\n contentLeft = 'contentLeft',\n /**在单元格内容块的右侧的图标,跟随文本定位,不随文本折行 */\n contentRight = 'contentRight',\n\n /**在单元格中自由定位 */\n absolute = 'absolute'\n}\n/**\n * 图标类型\n * frozen 固定列图标\n * sort 排序图标\n */\nexport enum IconFuncTypeEnum {\n frozen = 'frozen',\n sort = 'sort',\n dropDown = 'dropDown',\n dropDownState = 'dropDownState',\n play = 'play',\n damagePic = 'damagePic',\n imageDamagePic = 'imageDamagePic',\n videoDamagePic = 'videoDamagePic',\n expand = 'expand',\n collapse = 'collapse',\n drillDown = 'drillDown',\n drillUp = 'drillUp',\n dragReorder = 'dragReorder'\n}\nexport enum InternalIconName {\n upwardIconName = 'sort_upward',\n downwardIconName = 'sort_downward',\n normalIconName = 'sort_normal',\n //冻结列 图钉按钮的几种状态\n freezeIconName = 'freeze',\n frozenIconName = 'frozen',\n frozenCurrentIconName = 'frozenCurrent',\n dropdownIconName = 'dropdownIcon',\n // dropdownHoverIconName = 'dropdownIcon_hover',\n expandIconName = 'expand',\n collapseIconName = 'collapse',\n dragReorderIconName = 'dragReorder',\n\n loadingIconName = 'loading'\n}\n// 目前暂不支持FontIcon&PathIcon\nexport type ColumnIconOption = ImageIcon | SvgIcon | TextIcon;\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.26.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"]}
|
|
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.26.1-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"]}
|