k-vtable 1.0.37 → 1.0.38
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/ListTable.d.ts +2 -1
- package/cjs/ListTable.js +31 -10
- package/cjs/ListTable.js.map +1 -1
- package/cjs/body-helper/body-helper.d.ts +1 -0
- package/cjs/body-helper/body-helper.js +4 -3
- package/cjs/body-helper/body-helper.js.map +1 -1
- package/cjs/body-helper/style.js +2 -1
- package/cjs/components/legend/discrete-legend/discrete-legend.d.ts +1 -1
- package/cjs/core/BaseTable.d.ts +1 -0
- package/cjs/core/BaseTable.js +28 -22
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/row-series-number-helper.d.ts +1 -0
- package/cjs/core/row-series-number-helper.js +3 -1
- package/cjs/core/row-series-number-helper.js.map +1 -1
- package/cjs/data/CachedDataSource.js +5 -3
- package/cjs/data/CachedDataSource.js.map +1 -1
- package/cjs/data/DataSource.js +1 -2
- package/cjs/dataset/DataStatistics.js +2 -1
- package/cjs/header-helper/header-helper.d.ts +1 -0
- package/cjs/header-helper/header-helper.js +4 -3
- package/cjs/header-helper/header-helper.js.map +1 -1
- package/cjs/header-helper/style.js +2 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/plugins/custom-cell-style.js +1 -1
- package/cjs/scenegraph/animation/appear.js +18 -3
- package/cjs/scenegraph/animation/appear.js.map +1 -1
- package/cjs/scenegraph/component/custom.js +3 -3
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/cjs/scenegraph/component/menu.js +4 -4
- package/cjs/scenegraph/component/menu.js.map +1 -1
- package/cjs/scenegraph/graphic/chart.d.ts +6 -1
- package/cjs/scenegraph/graphic/chart.js +38 -4
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/cjs/scenegraph/graphic/group.d.ts +3 -1
- package/cjs/scenegraph/graphic/group.js +21 -3
- package/cjs/scenegraph/graphic/group.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +4 -3
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/button-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/button-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +4 -4
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +3 -3
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/radio-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/switch-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/switch-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +6 -6
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +101 -12
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +4 -3
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +3 -3
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/runtime-contributions.d.ts +2 -0
- package/cjs/scenegraph/runtime-contributions.js +28 -0
- package/cjs/scenegraph/runtime-contributions.js.map +1 -0
- package/cjs/scenegraph/scenegraph.d.ts +4 -1
- package/cjs/scenegraph/scenegraph.js +40 -16
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/text-icon-layout.d.ts +4 -0
- package/cjs/scenegraph/utils/text-icon-layout.js +23 -6
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/cjs/scenegraph/utils/text-measure.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +7 -1
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +1 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/vrender-app.d.ts +20 -0
- package/cjs/vrender-app.js +141 -0
- package/cjs/vrender-app.js.map +1 -0
- package/cjs/vrender.d.ts +17 -1
- package/cjs/vrender.js +36 -15
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +106132 -96965
- package/dist/vtable.min.js +1 -1
- package/es/ListTable.d.ts +2 -1
- package/es/ListTable.js +30 -9
- package/es/ListTable.js.map +1 -1
- package/es/body-helper/body-helper.d.ts +1 -0
- package/es/body-helper/body-helper.js +4 -3
- package/es/body-helper/body-helper.js.map +1 -1
- package/es/body-helper/style.js +2 -1
- package/es/components/legend/discrete-legend/discrete-legend.d.ts +1 -1
- package/es/core/BaseTable.d.ts +1 -0
- package/es/core/BaseTable.js +30 -24
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/row-series-number-helper.d.ts +1 -0
- package/es/core/row-series-number-helper.js +3 -1
- package/es/core/row-series-number-helper.js.map +1 -1
- package/es/data/CachedDataSource.js +5 -3
- package/es/data/CachedDataSource.js.map +1 -1
- package/es/data/DataSource.js +1 -2
- package/es/dataset/DataStatistics.js +2 -1
- package/es/header-helper/header-helper.d.ts +1 -0
- package/es/header-helper/header-helper.js +4 -3
- package/es/header-helper/header-helper.js.map +1 -1
- package/es/header-helper/style.js +2 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/plugins/custom-cell-style.js +1 -1
- package/es/scenegraph/animation/appear.js +18 -3
- package/es/scenegraph/animation/appear.js.map +1 -1
- package/es/scenegraph/component/custom.js +3 -3
- package/es/scenegraph/component/custom.js.map +1 -1
- package/es/scenegraph/component/menu.js +4 -4
- package/es/scenegraph/component/menu.js.map +1 -1
- package/es/scenegraph/graphic/chart.d.ts +6 -1
- package/es/scenegraph/graphic/chart.js +39 -3
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/es/scenegraph/graphic/group.d.ts +3 -1
- package/es/scenegraph/graphic/group.js +21 -3
- package/es/scenegraph/graphic/group.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +4 -3
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/button-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/button-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +4 -4
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.js +3 -3
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/radio-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/switch-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/switch-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.js +5 -5
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js +99 -12
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +4 -3
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +3 -3
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/runtime-contributions.d.ts +2 -0
- package/es/scenegraph/runtime-contributions.js +20 -0
- package/es/scenegraph/runtime-contributions.js.map +1 -0
- package/es/scenegraph/scenegraph.d.ts +4 -1
- package/es/scenegraph/scenegraph.js +42 -16
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/text-icon-layout.d.ts +4 -0
- package/es/scenegraph/utils/text-icon-layout.js +18 -2
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/es/scenegraph/utils/text-measure.js.map +1 -1
- package/es/ts-types/base-table.d.ts +7 -1
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +1 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/vrender-app.d.ts +20 -0
- package/es/vrender-app.js +161 -0
- package/es/vrender-app.js.map +1 -0
- package/es/vrender.d.ts +17 -1
- package/es/vrender.js +27 -8
- package/es/vrender.js.map +1 -1
- package/package.json +11 -10
|
@@ -33,7 +33,9 @@ const ts_types_1 = require("../ts-types"), registerIcons = __importStar(require(
|
|
|
33
33
|
|
|
34
34
|
class RowSeriesNumberHelper {
|
|
35
35
|
constructor(_table) {
|
|
36
|
-
this._table = _table;
|
|
36
|
+
this._table = _table, this.updateIcons();
|
|
37
|
+
}
|
|
38
|
+
updateIcons() {
|
|
37
39
|
const regedIcons = registerIcons.get();
|
|
38
40
|
this.dragReorderIconName = regedIcons[ts_types_1.InternalIconName.dragReorderIconName];
|
|
39
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/row-series-number-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQqB;AACrB,wDAA0C;AAI1C,MAAa,qBAAqB;IAIhC,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,2BAAgB,CAAC,mBAAmB,CAAY,CAAC;IACzF,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;CACF;
|
|
1
|
+
{"version":3,"sources":["../src/core/row-series-number-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQqB;AACrB,wDAA0C;AAI1C,MAAa,qBAAqB;IAIhC,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,2BAAgB,CAAC,mBAAmB,CAAY,CAAC;IACzF,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;CACF;AAlBD,sDAkBC","file":"row-series-number-helper.js","sourcesContent":["import {\n InternalIconName,\n type ColumnIconOption,\n type ListTableAPI,\n type PivotTableAPI,\n type RectProps,\n type SortOrder,\n type SvgIcon\n} from '../ts-types';\nimport * as registerIcons from '../icons';\n\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nexport class RowSeriesNumberHelper {\n dragReorderIconName: SvgIcon;\n\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n this.updateIcons();\n }\n\n updateIcons() {\n const regedIcons = registerIcons.get();\n\n this.dragReorderIconName = regedIcons[InternalIconName.dragReorderIconName] as SvgIcon;\n }\n\n getIcons(col: number, row: number): ColumnIconOption[] {\n return [this.dragReorderIconName];\n }\n}\n"]}
|
|
@@ -127,8 +127,9 @@ class CachedDataSource extends DataSource_1.DataSource {
|
|
|
127
127
|
const recordIndex = recordIndexsMaxToMin[index];
|
|
128
128
|
if ((0, vutils_1.isNumber)(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) continue;
|
|
129
129
|
const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);
|
|
130
|
-
this.beforeChangedRecordsMap.delete(originRecordIndex.toString()),
|
|
131
|
-
this.
|
|
130
|
+
(0, vutils_1.isValid)(originRecordIndex) && (this.beforeChangedRecordsMap.delete(originRecordIndex.toString()),
|
|
131
|
+
this.dataSourceObj.records.splice(originRecordIndex, 1), this.sourceLength -= 1,
|
|
132
|
+
this.adjustBeforeChangedRecordsMap(originRecordIndex, 1, "delete"));
|
|
132
133
|
}
|
|
133
134
|
this.updateGroup();
|
|
134
135
|
}
|
|
@@ -137,7 +138,8 @@ class CachedDataSource extends DataSource_1.DataSource {
|
|
|
137
138
|
const recordIndex = recordIndexs[index];
|
|
138
139
|
if ((0, vutils_1.isNumber)(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) continue;
|
|
139
140
|
const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);
|
|
140
|
-
this.beforeChangedRecordsMap.delete(originRecordIndex.toString()),
|
|
141
|
+
(0, vutils_1.isValid)(originRecordIndex) && (this.beforeChangedRecordsMap.delete(originRecordIndex.toString()),
|
|
142
|
+
this.dataSourceObj.records[originRecordIndex] = records[index]);
|
|
141
143
|
}
|
|
142
144
|
this.updateGroup();
|
|
143
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"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","file":"CachedDataSource.js","sourcesContent":["import { cloneDeep, isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { ListTableConstructorOptions } from '../ts-types';\nimport {\n AggregationType,\n HierarchyState,\n type FieldData,\n type FieldDef,\n type IListTableDataConfig,\n type IPagination,\n type MaybePromise,\n type MaybePromiseOrUndefined\n} from '../ts-types';\nimport type { BaseTableAPI, ListTableProtected } from '../ts-types/base-table';\nimport type { ColumnData, ColumnsDefine } from '../ts-types/list-table/layout-map/api';\nimport type { DataSourceParam } from './DataSource';\nimport { DataSource, getValue, getValueFromDeepArray, sortRecordIndexs } from './DataSource';\nimport get from 'lodash/get';\n\n/** @private */\nfunction _setFieldCache(\n fCache: { [index: number]: Map<FieldDef, any> },\n index: number,\n field: FieldDef,\n\n value: any\n): void {\n const recCache = fCache[index] || (fCache[index] = new Map());\n recCache.set(field, value);\n}\n/**\n * table data source for caching Promise data\n *\n * @classdesc VTable.data.CachedDataSource\n * @memberof VTable.data\n */\nexport class CachedDataSource extends DataSource {\n /**\n * record cache 当用户定义的CachedDataSource.get为promise的时候 可以用rCache缓存已获取数据条目\n */\n private _recordCache: any[];\n /**\n * field cache 当用户定义field为promise的时候 可以用fCache缓存已获取值\n */\n private _fieldCache: { [index: number]: Map<FieldDef, any> };\n\n groupAggregator: any;\n private _isGrouped: boolean;\n\n static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE {\n return DataSource.EVENT_TYPE;\n }\n static ofArray(\n array: any[],\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columns?: ColumnsDefine,\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ): CachedDataSource {\n return new CachedDataSource(\n {\n get: (index: number): any => {\n // if (Array.isArray(index)) {\n // return getValueFromDeepArray(array, index);\n // }\n return array[index];\n },\n length: array.length,\n records: array\n },\n dataConfig,\n pagination,\n columns,\n rowHierarchyType,\n hierarchyExpandLevel\n );\n }\n\n // _originalRecords: any[];\n constructor(\n opt?: DataSourceParam,\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columns?: ColumnsDefine,\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ) {\n let _isGrouped;\n if (isArray(dataConfig?.groupByRules)) {\n _isGrouped = true;\n }\n super(opt, dataConfig, pagination, columns, rowHierarchyType, hierarchyExpandLevel);\n this._isGrouped = _isGrouped;\n this._recordCache = [];\n this._fieldCache = {};\n }\n protected getOriginalRecord(index: number | number[]): MaybePromiseOrUndefined {\n if (isNumber(index) && this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n return super.getOriginalRecord(index);\n }\n protected getRawRecord(index: number | number[]): MaybePromiseOrUndefined {\n let originRecordIndex;\n if (this._isGrouped) {\n // in group mode, record with children is title, do not return record\n originRecordIndex = this.getOriginRecordIndexForGroup(index);\n if (isValid(originRecordIndex) && this.beforeChangedRecordsMap?.has(originRecordIndex.toString())) {\n return this.beforeChangedRecordsMap?.get(originRecordIndex.toString());\n }\n } else {\n if (this.beforeChangedRecordsMap?.has(index.toString())) {\n return this.beforeChangedRecordsMap?.get(index.toString());\n }\n }\n if (isNumber(index) && this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n // return super.getRawRecord(index);\n\n let data;\n if (!this.dataSourceObj.records) {\n data = (this as any)._get(index);\n } else {\n if (Array.isArray(index)) {\n data = getValueFromDeepArray(this.records, index);\n } else {\n data = this.records[index];\n }\n }\n return getValue(data, (val: MaybePromiseOrUndefined) => {\n this.recordPromiseCallBack(index as number, val);\n });\n }\n protected getOriginalField<F extends FieldDef>(\n index: number,\n field: F,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n const rowCache = this._fieldCache && this._fieldCache[index];\n if (rowCache) {\n const cache = rowCache.get(field);\n if (cache) {\n return cache;\n }\n }\n return super.getOriginalField(index, field, col, row, table);\n }\n\n clearCache(): void {\n if (this._recordCache) {\n this._recordCache = [];\n }\n if (this._fieldCache) {\n this._fieldCache = {};\n }\n }\n\n protected fieldPromiseCallBack<F extends FieldDef>(index: number, field: F, value: MaybePromiseOrUndefined): void {\n _setFieldCache(this._fieldCache, index, field, value);\n }\n protected recordPromiseCallBack(index: number, record: MaybePromiseOrUndefined): void {\n this._recordCache && (this._recordCache[index] = record);\n }\n get records(): any[] {\n return Array.isArray(this._recordCache) && this._recordCache.length > 0 ? this._recordCache : super.records;\n }\n\n release(): void {\n super.release?.();\n this._recordCache = null;\n this._fieldCache = null;\n }\n\n _generateFieldAggragations() {\n super._generateFieldAggragations();\n // groupby aggragations\n if (isArray(this.dataConfig?.groupByRules)) {\n // const groupByKey = this.dataConfig.groupByRules[0];\n const groupByKeys = this.dataConfig.groupByRules;\n this.groupAggregator = new this.registedAggregators[AggregationType.CUSTOM]({\n field: '',\n aggregationFun: (values: any, records: any, field: any) => {\n if (this.dataConfig.customDealGroupData) {\n return this.dataConfig.customDealGroupData(records);\n }\n const groupMap = new Map();\n const groupResult = [] as any[];\n for (let i = 0; i < records.length; i++) {\n dealWithGroup(records[i], groupResult, groupMap, groupByKeys, 0);\n }\n return groupResult;\n }\n });\n this.fieldAggregators.push(this.groupAggregator);\n }\n }\n\n processRecords(records: any[]) {\n const result = super.processRecords(records);\n const groupResult = this.groupAggregator?.value();\n if (groupResult) {\n // this._originalRecords = result;\n return groupResult;\n }\n return result;\n }\n\n getGroupLength() {\n return this.dataConfig?.groupByRules?.length ?? 0;\n }\n\n updateGroup() {\n this.clearCache();\n\n const oldSource = this.source;\n (this as any)._source = this.processRecords(this.dataSourceObj?.records ?? this.dataSourceObj);\n if (oldSource) {\n syncGroupCollapseState(oldSource, this.source);\n }\n\n // syncGroupCollapseState(this.source, newSource.source);\n this.sourceLength = this.source?.length || 0;\n this.sortedIndexMap.clear();\n this.currentIndexedData = Array.from({ length: this.sourceLength }, (_, i) => i);\n if (!this.userPagination) {\n this.pagination.perPageCount = this.sourceLength;\n this.pagination.totalCount = this.sourceLength;\n }\n\n this.initTreeHierarchyState();\n this.updatePagerData();\n }\n\n getOriginRecordIndexForGroup(recordIndex: number | number[]) {\n const targetRecord = this.getOriginalRecord(recordIndex);\n if (!isValid(targetRecord)) {\n return undefined;\n }\n if (targetRecord.children && targetRecord.children.length > 0) {\n return undefined;\n }\n for (let i = 0; i < this.dataSourceObj.records.length; i++) {\n if (this.dataSourceObj.records[i] === targetRecord) {\n return i;\n }\n }\n return undefined;\n }\n\n addRecordsForGroup(recordArr: any[], recordIndex?: number | number[]) {\n if (!isArray(recordArr) || recordArr.length === 0) {\n return;\n }\n let originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n\n if (originRecordIndex === undefined || originRecordIndex > this.dataSourceObj.records) {\n originRecordIndex = this.dataSourceObj.records.length;\n }\n this.dataSourceObj.records.splice(originRecordIndex, 0, ...recordArr);\n\n this.adjustBeforeChangedRecordsMap(originRecordIndex, recordArr.length);\n\n this.updateGroup();\n }\n\n deleteRecordsForGroup(recordIndexs: (number | number[])[]) {\n if (!isArray(recordIndexs) || recordIndexs.length === 0) {\n return;\n }\n const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);\n for (let index = 0; index < recordIndexsMaxToMin.length; index++) {\n const recordIndex = recordIndexsMaxToMin[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n\n this.beforeChangedRecordsMap.delete(originRecordIndex.toString());\n this.dataSourceObj.records.splice(originRecordIndex, 1);\n this.sourceLength -= 1;\n\n this.adjustBeforeChangedRecordsMap(originRecordIndex, 1, 'delete');\n }\n\n this.updateGroup();\n }\n\n updateRecordsForGroup(records: any[], recordIndexs: (number | number[])[]) {\n for (let index = 0; index < recordIndexs.length; index++) {\n const recordIndex = recordIndexs[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n this.beforeChangedRecordsMap.delete(originRecordIndex.toString());\n this.dataSourceObj.records[originRecordIndex] = records[index];\n }\n\n this.updateGroup();\n }\n\n addRecordsForTree(recordArr: any[], recordIndex?: number | number[]) {\n if (!isArray(recordArr) || recordArr.length === 0) {\n return;\n }\n\n this.adjustBeforeChangedRecordsMap(recordIndex, recordArr.length);\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 0, ...recordArr);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n if (parentRecord.children) {\n parentRecord.children.splice(index, 0, ...recordArr);\n } else {\n parentRecord.children = recordArr;\n }\n }\n\n this.initTreeHierarchyState();\n this.updatePagination();\n }\n\n deleteRecordsForTree(recordIndexs: (number | number[])[]) {\n if (!isArray(recordIndexs) || recordIndexs.length === 0) {\n return [];\n }\n const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);\n const deletedRecordIndexs = [];\n for (let index = 0; index < recordIndexsMaxToMin.length; index++) {\n const recordIndex = recordIndexsMaxToMin[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n this.beforeChangedRecordsMap.delete(recordIndex.toString());\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 1);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n // delete parentRecord.children[index];\n parentRecord.children.splice(index, 1);\n }\n\n this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');\n deletedRecordIndexs.push(recordIndex);\n }\n\n this.initTreeHierarchyState();\n this.updatePagination();\n return deletedRecordIndexs;\n }\n\n updateRecordsForTree(records: any[], recordIndexs: (number | number[])[]) {\n for (let index = 0; index < recordIndexs.length; index++) {\n const recordIndex = recordIndexs[index];\n const record = records[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n this.beforeChangedRecordsMap.delete(recordIndex.toString());\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 1, record);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n parentRecord.children.splice(index, 1, record);\n }\n }\n\n this.initTreeHierarchyState();\n this.updatePagerData();\n }\n\n adjustBeforeChangedRecordsMap(insertIndex: number | number[], insertCount: number, type: 'add' | 'delete' = 'add') {\n if (this.rowHierarchyType === 'tree') {\n let insertIndexArr: number[];\n if (isNumber(insertIndex)) {\n insertIndexArr = [insertIndex];\n } else {\n insertIndexArr = insertIndex;\n }\n\n const targetResult: { originKey: string; targetKey: string; value: any }[] = [];\n this.beforeChangedRecordsMap.forEach((value, key) => {\n const keyArray = key.split(',');\n const length = Math.max(keyArray.length, insertIndexArr.length);\n for (let i = 0; i < length; i++) {\n const current = insertIndexArr[i] ?? -1;\n const keyIndex = Number(keyArray[i]) ?? -1;\n if (\n current < keyIndex ||\n (current === keyIndex && i === keyArray.length - 1 && i === insertIndexArr.length - 1)\n ) {\n keyArray[i] = (keyIndex + (type === 'add' ? insertCount : -insertCount)).toString();\n targetResult.push({\n originKey: key,\n targetKey: keyArray.toString(),\n value\n });\n return;\n }\n }\n });\n targetResult.forEach(({ originKey, targetKey, value }) => {\n this.beforeChangedRecordsMap.delete(originKey);\n this.beforeChangedRecordsMap.set(targetKey, value);\n });\n } else {\n super.adjustBeforeChangedRecordsMap(insertIndex as number, insertCount, type);\n }\n }\n\n cacheBeforeChangedRecord(dataIndex: number | number[], table?: BaseTableAPI) {\n const originRecord = this.getOriginalRecord(dataIndex);\n if ((table.internalProps as ListTableProtected).groupBy) {\n dataIndex = this.getOriginRecordIndexForGroup(dataIndex);\n }\n if (!this.beforeChangedRecordsMap.has(dataIndex.toString())) {\n this.beforeChangedRecordsMap.set(\n dataIndex.toString(),\n cloneDeep(originRecord, undefined, ['vtable_gantt_linkedFrom', 'vtable_gantt_linkedTo']) ?? {}\n );\n }\n }\n\n getGroupSeriesNumber(showIndex: number) {\n const recordIndex = this.dataSource.currentIndexedData[showIndex] as number[];\n const parentRecordIndexLength = recordIndex.length - 1;\n\n let recordIndexLength = recordIndex.length;\n let i = 1;\n for (; recordIndexLength > parentRecordIndexLength; i++) {\n const index = this.dataSource.currentIndexedData[showIndex - i];\n recordIndexLength = isNumber(index) ? 1 : (index as number[]).length;\n }\n return i - 1;\n }\n}\n\nfunction dealWithGroup(record: any, children: any[], map: Map<number, any>, groupByKeys: string[], level: number): any {\n const groupByKey = groupByKeys[level];\n if (!isValid(groupByKey)) {\n children.push(record);\n return;\n }\n const value = get(record, groupByKey);\n if (value !== undefined) {\n if (map.has(value)) {\n const index = map.get(value);\n // children[index].children.push(record);\n return dealWithGroup(record, children[index].children, children[index].map, groupByKeys, level + 1);\n }\n map.set(value, children.length);\n children.push({\n vtableMerge: true,\n vtableMergeName: value,\n children: [] as any,\n map: new Map()\n });\n return dealWithGroup(\n record,\n children[children.length - 1].children,\n children[children.length - 1].map,\n groupByKeys,\n level + 1\n );\n }\n}\n\nfunction syncGroupCollapseState(\n oldSource: any,\n newSource: any,\n oldGroupMap?: Map<string, number>,\n newGroupMap?: Map<string, number>\n) {\n if (!oldGroupMap) {\n oldGroupMap = new Map();\n for (let i = 0; i < oldSource.length; i++) {\n const record = oldSource[i];\n if (record.vtableMerge) {\n oldGroupMap.set(record.vtableMergeName, i);\n }\n }\n }\n\n if (!newGroupMap) {\n newGroupMap = new Map();\n for (let i = 0; i < newSource.length; i++) {\n const record = newSource[i];\n if (record.vtableMerge) {\n newGroupMap.set(record.vtableMergeName, i);\n }\n }\n }\n\n for (let i = 0; i < oldSource.length; i++) {\n const oldRecord = oldSource[i];\n const newRecord = newSource[newGroupMap.get(oldRecord.vtableMergeName)];\n if (isValid(newRecord)) {\n newRecord.hierarchyState = oldSource[i].hierarchyState;\n }\n if (\n isArray(oldRecord?.children) &&\n isArray(newRecord?.children) &&\n oldRecord.map.size !== 0 &&\n newRecord.map.size !== 0\n ) {\n syncGroupCollapseState(oldRecord.children, newRecord.children, oldRecord.map, newRecord.map);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"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","file":"CachedDataSource.js","sourcesContent":["import { cloneDeep, isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { ListTableConstructorOptions } from '../ts-types';\nimport {\n AggregationType,\n HierarchyState,\n type FieldData,\n type FieldDef,\n type IListTableDataConfig,\n type IPagination,\n type MaybePromise,\n type MaybePromiseOrUndefined\n} from '../ts-types';\nimport type { BaseTableAPI, ListTableProtected } from '../ts-types/base-table';\nimport type { ColumnData, ColumnsDefine } from '../ts-types/list-table/layout-map/api';\nimport type { DataSourceParam } from './DataSource';\nimport { DataSource, getValue, getValueFromDeepArray, sortRecordIndexs } from './DataSource';\nimport get from 'lodash/get';\n\n/** @private */\nfunction _setFieldCache(\n fCache: { [index: number]: Map<FieldDef, any> },\n index: number,\n field: FieldDef,\n\n value: any\n): void {\n const recCache = fCache[index] || (fCache[index] = new Map());\n recCache.set(field, value);\n}\n/**\n * table data source for caching Promise data\n *\n * @classdesc VTable.data.CachedDataSource\n * @memberof VTable.data\n */\nexport class CachedDataSource extends DataSource {\n /**\n * record cache 当用户定义的CachedDataSource.get为promise的时候 可以用rCache缓存已获取数据条目\n */\n private _recordCache: any[];\n /**\n * field cache 当用户定义field为promise的时候 可以用fCache缓存已获取值\n */\n private _fieldCache: { [index: number]: Map<FieldDef, any> };\n\n groupAggregator: any;\n private _isGrouped: boolean;\n\n static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE {\n return DataSource.EVENT_TYPE;\n }\n static ofArray(\n array: any[],\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columns?: ColumnsDefine,\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ): CachedDataSource {\n return new CachedDataSource(\n {\n get: (index: number): any => {\n // if (Array.isArray(index)) {\n // return getValueFromDeepArray(array, index);\n // }\n return array[index];\n },\n length: array.length,\n records: array\n },\n dataConfig,\n pagination,\n columns,\n rowHierarchyType,\n hierarchyExpandLevel\n );\n }\n\n // _originalRecords: any[];\n constructor(\n opt?: DataSourceParam,\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columns?: ColumnsDefine,\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ) {\n let _isGrouped;\n if (isArray(dataConfig?.groupByRules)) {\n _isGrouped = true;\n }\n super(opt, dataConfig, pagination, columns, rowHierarchyType, hierarchyExpandLevel);\n this._isGrouped = _isGrouped;\n this._recordCache = [];\n this._fieldCache = {};\n }\n protected getOriginalRecord(index: number | number[]): MaybePromiseOrUndefined {\n if (isNumber(index) && this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n return super.getOriginalRecord(index);\n }\n protected getRawRecord(index: number | number[]): MaybePromiseOrUndefined {\n let originRecordIndex;\n if (this._isGrouped) {\n // in group mode, record with children is title, do not return record\n originRecordIndex = this.getOriginRecordIndexForGroup(index);\n if (isValid(originRecordIndex) && this.beforeChangedRecordsMap?.has(originRecordIndex.toString())) {\n return this.beforeChangedRecordsMap?.get(originRecordIndex.toString());\n }\n } else {\n if (this.beforeChangedRecordsMap?.has(index.toString())) {\n return this.beforeChangedRecordsMap?.get(index.toString());\n }\n }\n if (isNumber(index) && this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n // return super.getRawRecord(index);\n\n let data;\n if (!this.dataSourceObj.records) {\n data = (this as any)._get(index);\n } else {\n if (Array.isArray(index)) {\n data = getValueFromDeepArray(this.records, index);\n } else {\n data = this.records[index];\n }\n }\n return getValue(data, (val: MaybePromiseOrUndefined) => {\n this.recordPromiseCallBack(index as number, val);\n });\n }\n protected getOriginalField<F extends FieldDef>(\n index: number,\n field: F,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n const rowCache = this._fieldCache && this._fieldCache[index];\n if (rowCache) {\n const cache = rowCache.get(field);\n if (cache) {\n return cache;\n }\n }\n return super.getOriginalField(index, field, col, row, table);\n }\n\n clearCache(): void {\n if (this._recordCache) {\n this._recordCache = [];\n }\n if (this._fieldCache) {\n this._fieldCache = {};\n }\n }\n\n protected fieldPromiseCallBack<F extends FieldDef>(index: number, field: F, value: MaybePromiseOrUndefined): void {\n _setFieldCache(this._fieldCache, index, field, value);\n }\n protected recordPromiseCallBack(index: number, record: MaybePromiseOrUndefined): void {\n this._recordCache && (this._recordCache[index] = record);\n }\n get records(): any[] {\n return Array.isArray(this._recordCache) && this._recordCache.length > 0 ? this._recordCache : super.records;\n }\n\n release(): void {\n super.release?.();\n this._recordCache = null;\n this._fieldCache = null;\n }\n\n _generateFieldAggragations() {\n super._generateFieldAggragations();\n // groupby aggragations\n if (isArray(this.dataConfig?.groupByRules)) {\n // const groupByKey = this.dataConfig.groupByRules[0];\n const groupByKeys = this.dataConfig.groupByRules;\n this.groupAggregator = new this.registedAggregators[AggregationType.CUSTOM]({\n field: '',\n aggregationFun: (values: any, records: any, field: any) => {\n if (this.dataConfig.customDealGroupData) {\n return this.dataConfig.customDealGroupData(records);\n }\n const groupMap = new Map();\n const groupResult = [] as any[];\n for (let i = 0; i < records.length; i++) {\n dealWithGroup(records[i], groupResult, groupMap, groupByKeys, 0);\n }\n return groupResult;\n }\n });\n this.fieldAggregators.push(this.groupAggregator);\n }\n }\n\n processRecords(records: any[]) {\n const result = super.processRecords(records);\n const groupResult = this.groupAggregator?.value();\n if (groupResult) {\n // this._originalRecords = result;\n return groupResult;\n }\n return result;\n }\n\n getGroupLength() {\n return this.dataConfig?.groupByRules?.length ?? 0;\n }\n\n updateGroup() {\n this.clearCache();\n\n const oldSource = this.source;\n (this as any)._source = this.processRecords(this.dataSourceObj?.records ?? this.dataSourceObj);\n if (oldSource) {\n syncGroupCollapseState(oldSource, this.source);\n }\n\n // syncGroupCollapseState(this.source, newSource.source);\n this.sourceLength = this.source?.length || 0;\n this.sortedIndexMap.clear();\n this.currentIndexedData = Array.from({ length: this.sourceLength }, (_, i) => i);\n if (!this.userPagination) {\n this.pagination.perPageCount = this.sourceLength;\n this.pagination.totalCount = this.sourceLength;\n }\n\n this.initTreeHierarchyState();\n this.updatePagerData();\n }\n\n getOriginRecordIndexForGroup(recordIndex: number | number[]) {\n const targetRecord = this.getOriginalRecord(recordIndex);\n if (!isValid(targetRecord)) {\n return undefined;\n }\n if (targetRecord.children && targetRecord.children.length > 0) {\n return undefined;\n }\n for (let i = 0; i < this.dataSourceObj.records.length; i++) {\n if (this.dataSourceObj.records[i] === targetRecord) {\n return i;\n }\n }\n return undefined;\n }\n\n addRecordsForGroup(recordArr: any[], recordIndex?: number | number[]) {\n if (!isArray(recordArr) || recordArr.length === 0) {\n return;\n }\n let originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n\n if (originRecordIndex === undefined || originRecordIndex > this.dataSourceObj.records) {\n originRecordIndex = this.dataSourceObj.records.length;\n }\n this.dataSourceObj.records.splice(originRecordIndex, 0, ...recordArr);\n\n this.adjustBeforeChangedRecordsMap(originRecordIndex, recordArr.length);\n\n this.updateGroup();\n }\n\n deleteRecordsForGroup(recordIndexs: (number | number[])[]) {\n if (!isArray(recordIndexs) || recordIndexs.length === 0) {\n return;\n }\n const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);\n for (let index = 0; index < recordIndexsMaxToMin.length; index++) {\n const recordIndex = recordIndexsMaxToMin[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n if (!isValid(originRecordIndex)) {\n continue;\n }\n\n this.beforeChangedRecordsMap.delete(originRecordIndex.toString());\n this.dataSourceObj.records.splice(originRecordIndex, 1);\n this.sourceLength -= 1;\n\n this.adjustBeforeChangedRecordsMap(originRecordIndex, 1, 'delete');\n }\n\n this.updateGroup();\n }\n\n updateRecordsForGroup(records: any[], recordIndexs: (number | number[])[]) {\n for (let index = 0; index < recordIndexs.length; index++) {\n const recordIndex = recordIndexs[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n const originRecordIndex = this.getOriginRecordIndexForGroup(recordIndex);\n if (!isValid(originRecordIndex)) {\n continue;\n }\n this.beforeChangedRecordsMap.delete(originRecordIndex.toString());\n this.dataSourceObj.records[originRecordIndex] = records[index];\n }\n\n this.updateGroup();\n }\n\n addRecordsForTree(recordArr: any[], recordIndex?: number | number[]) {\n if (!isArray(recordArr) || recordArr.length === 0) {\n return;\n }\n\n this.adjustBeforeChangedRecordsMap(recordIndex, recordArr.length);\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 0, ...recordArr);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n if (parentRecord.children) {\n parentRecord.children.splice(index, 0, ...recordArr);\n } else {\n parentRecord.children = recordArr;\n }\n }\n\n this.initTreeHierarchyState();\n this.updatePagination();\n }\n\n deleteRecordsForTree(recordIndexs: (number | number[])[]) {\n if (!isArray(recordIndexs) || recordIndexs.length === 0) {\n return [];\n }\n const recordIndexsMaxToMin = sortRecordIndexs(recordIndexs, -1);\n const deletedRecordIndexs = [];\n for (let index = 0; index < recordIndexsMaxToMin.length; index++) {\n const recordIndex = recordIndexsMaxToMin[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n this.beforeChangedRecordsMap.delete(recordIndex.toString());\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 1);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n // delete parentRecord.children[index];\n parentRecord.children.splice(index, 1);\n }\n\n this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');\n deletedRecordIndexs.push(recordIndex);\n }\n\n this.initTreeHierarchyState();\n this.updatePagination();\n return deletedRecordIndexs;\n }\n\n updateRecordsForTree(records: any[], recordIndexs: (number | number[])[]) {\n for (let index = 0; index < recordIndexs.length; index++) {\n const recordIndex = recordIndexs[index];\n const record = records[index];\n if (isNumber(recordIndex) && (recordIndex >= this.sourceLength || recordIndex < 0)) {\n continue;\n }\n this.beforeChangedRecordsMap.delete(recordIndex.toString());\n\n if (isNumber(recordIndex)) {\n this.dataSourceObj.records.splice(recordIndex, 1, record);\n } else {\n const recordIndex_copy = [...recordIndex];\n const index = recordIndex_copy.pop();\n const parentRecord = this.getOriginalRecord(recordIndex_copy);\n parentRecord.children.splice(index, 1, record);\n }\n }\n\n this.initTreeHierarchyState();\n this.updatePagerData();\n }\n\n adjustBeforeChangedRecordsMap(insertIndex: number | number[], insertCount: number, type: 'add' | 'delete' = 'add') {\n if (this.rowHierarchyType === 'tree') {\n let insertIndexArr: number[];\n if (isNumber(insertIndex)) {\n insertIndexArr = [insertIndex];\n } else {\n insertIndexArr = insertIndex;\n }\n\n const targetResult: { originKey: string; targetKey: string; value: any }[] = [];\n this.beforeChangedRecordsMap.forEach((value, key) => {\n const keyArray = key.split(',');\n const length = Math.max(keyArray.length, insertIndexArr.length);\n for (let i = 0; i < length; i++) {\n const current = insertIndexArr[i] ?? -1;\n const keyIndex = Number(keyArray[i]) ?? -1;\n if (\n current < keyIndex ||\n (current === keyIndex && i === keyArray.length - 1 && i === insertIndexArr.length - 1)\n ) {\n keyArray[i] = (keyIndex + (type === 'add' ? insertCount : -insertCount)).toString();\n targetResult.push({\n originKey: key,\n targetKey: keyArray.toString(),\n value\n });\n return;\n }\n }\n });\n targetResult.forEach(({ originKey, targetKey, value }) => {\n this.beforeChangedRecordsMap.delete(originKey);\n this.beforeChangedRecordsMap.set(targetKey, value);\n });\n } else {\n super.adjustBeforeChangedRecordsMap(insertIndex as number, insertCount, type);\n }\n }\n\n cacheBeforeChangedRecord(dataIndex: number | number[], table?: BaseTableAPI) {\n const originRecord = this.getOriginalRecord(dataIndex);\n if ((table.internalProps as ListTableProtected).groupBy) {\n dataIndex = this.getOriginRecordIndexForGroup(dataIndex);\n }\n if (!this.beforeChangedRecordsMap.has(dataIndex.toString())) {\n this.beforeChangedRecordsMap.set(\n dataIndex.toString(),\n cloneDeep(originRecord, undefined, ['vtable_gantt_linkedFrom', 'vtable_gantt_linkedTo']) ?? {}\n );\n }\n }\n\n getGroupSeriesNumber(showIndex: number) {\n const recordIndex = this.dataSource.currentIndexedData[showIndex] as number[];\n const parentRecordIndexLength = recordIndex.length - 1;\n\n let recordIndexLength = recordIndex.length;\n let i = 1;\n for (; recordIndexLength > parentRecordIndexLength; i++) {\n const index = this.dataSource.currentIndexedData[showIndex - i];\n recordIndexLength = isNumber(index) ? 1 : (index as number[]).length;\n }\n return i - 1;\n }\n}\n\nfunction dealWithGroup(record: any, children: any[], map: Map<number, any>, groupByKeys: string[], level: number): any {\n const groupByKey = groupByKeys[level];\n if (!isValid(groupByKey)) {\n children.push(record);\n return;\n }\n const value = get(record, groupByKey);\n if (value !== undefined) {\n if (map.has(value)) {\n const index = map.get(value);\n // children[index].children.push(record);\n return dealWithGroup(record, children[index].children, children[index].map, groupByKeys, level + 1);\n }\n map.set(value, children.length);\n children.push({\n vtableMerge: true,\n vtableMergeName: value,\n children: [] as any,\n map: new Map()\n });\n return dealWithGroup(\n record,\n children[children.length - 1].children,\n children[children.length - 1].map,\n groupByKeys,\n level + 1\n );\n }\n}\n\nfunction syncGroupCollapseState(\n oldSource: any,\n newSource: any,\n oldGroupMap?: Map<string, number>,\n newGroupMap?: Map<string, number>\n) {\n if (!oldGroupMap) {\n oldGroupMap = new Map();\n for (let i = 0; i < oldSource.length; i++) {\n const record = oldSource[i];\n if (record.vtableMerge) {\n oldGroupMap.set(record.vtableMergeName, i);\n }\n }\n }\n\n if (!newGroupMap) {\n newGroupMap = new Map();\n for (let i = 0; i < newSource.length; i++) {\n const record = newSource[i];\n if (record.vtableMerge) {\n newGroupMap.set(record.vtableMergeName, i);\n }\n }\n }\n\n for (let i = 0; i < oldSource.length; i++) {\n const oldRecord = oldSource[i];\n const newRecord = newSource[newGroupMap.get(oldRecord.vtableMergeName)];\n if (isValid(newRecord)) {\n newRecord.hierarchyState = oldSource[i].hierarchyState;\n }\n if (\n isArray(oldRecord?.children) &&\n isArray(newRecord?.children) &&\n oldRecord.map.size !== 0 &&\n newRecord.map.size !== 0\n ) {\n syncGroupCollapseState(oldRecord.children, newRecord.children, oldRecord.map, newRecord.map);\n }\n }\n}\n"]}
|
package/cjs/data/DataSource.js
CHANGED
|
@@ -899,5 +899,4 @@ function sortRecordIndexs(recordIndexs, sort) {
|
|
|
899
899
|
exports.DataSource = DataSource, DataSource.EMPTY = new DataSource({
|
|
900
900
|
get() {},
|
|
901
901
|
length: 0
|
|
902
|
-
}), exports.getValueFromDeepArray = getValueFromDeepArray, exports.sortRecordIndexs = sortRecordIndexs;
|
|
903
|
-
//# sourceMappingURL=DataSource.js.map
|
|
902
|
+
}), exports.getValueFromDeepArray = getValueFromDeepArray, exports.sortRecordIndexs = sortRecordIndexs;
|
|
@@ -77,4 +77,5 @@ function dateFormat(baseField, formatString, utcOutput, mthNames, dayNames) {
|
|
|
77
77
|
Object.defineProperty(exports, "__esModule", {
|
|
78
78
|
value: !0
|
|
79
79
|
}), exports.dateFormat = exports.numberFormat = void 0, exports.numberFormat = numberFormat,
|
|
80
|
-
exports.dateFormat = dateFormat;
|
|
80
|
+
exports.dateFormat = dateFormat;
|
|
81
|
+
//# sourceMappingURL=DataStatistics.js.map
|
|
@@ -15,6 +15,7 @@ export declare class HeaderHelper {
|
|
|
15
15
|
collapseIcon: SvgIcon;
|
|
16
16
|
_table: BaseTableAPI;
|
|
17
17
|
constructor(_table: BaseTableAPI);
|
|
18
|
+
updateIcons(): void;
|
|
18
19
|
getIcons(col: number, row: number): ColumnIconOption[];
|
|
19
20
|
getFrozenIcon(col: number, row: number): ColumnIconOption | null;
|
|
20
21
|
getSortIcon(order: SortOrder | undefined, _table: BaseTableAPI, col: number, row: number): ColumnIconOption | null;
|
|
@@ -33,7 +33,9 @@ const ts_types_1 = require("../ts-types"), registerIcons = __importStar(require(
|
|
|
33
33
|
|
|
34
34
|
class HeaderHelper {
|
|
35
35
|
constructor(_table) {
|
|
36
|
-
this._table = _table;
|
|
36
|
+
this._table = _table, this.updateIcons();
|
|
37
|
+
}
|
|
38
|
+
updateIcons() {
|
|
37
39
|
const regedIcons = registerIcons.get();
|
|
38
40
|
this.freezeIcon = regedIcons[ts_types_1.InternalIconName.freezeIconName], this.frozenIcon = regedIcons[ts_types_1.InternalIconName.frozenIconName],
|
|
39
41
|
this.frozenCurrentIcon = regedIcons[ts_types_1.InternalIconName.frozenCurrentIconName],
|
|
@@ -269,5 +271,4 @@ class HeaderHelper {
|
|
|
269
271
|
}
|
|
270
272
|
}
|
|
271
273
|
|
|
272
|
-
exports.HeaderHelper = HeaderHelper;
|
|
273
|
-
//# sourceMappingURL=header-helper.js.map
|
|
274
|
+
exports.HeaderHelper = HeaderHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/header-helper/header-helper.ts"],"names":[],"mappings":"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","file":"header-helper.js","sourcesContent":["import type {\n ColumnDefine,\n ColumnIconOption,\n ColumnsDefine,\n HeaderTypeOption,\n ListTableAPI,\n PivotTableAPI,\n RectProps,\n SortOrder,\n SvgIcon\n} from '../ts-types';\nimport { HierarchyState, IconFuncTypeEnum, IconPosition, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { cellInRange } from '../tools/helper';\nimport { isMenuHighlight } from '../components/menu/dom/logic/MenuElement';\nimport { Style } from './style/Style';\nimport { ImageStyle } from './style/ImageStyle';\nimport { TextHeaderStyle } from './style';\nimport type { ListTable } from '../ListTable';\nimport type { BaseTableAPI, HeaderData } from '../ts-types/base-table';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { isValid } from '@visactor/vutils';\nexport class HeaderHelper {\n normalIcon: SvgIcon;\n upIcon: SvgIcon;\n downIcon: SvgIcon;\n freezeIcon: SvgIcon;\n frozenIcon: SvgIcon;\n frozenCurrentIcon: SvgIcon;\n dropDownAbsoluteIcon: SvgIcon;\n // dropDownHoverIcon: SvgIcon;\n\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n // //存储鼠标hover到的图标类型,后面需要用name判断,应该再拿个inline对象上赋值showFrozenIconIcon,绘制感应区域\n // _showFrozenIconIcon?: SvgIcon;\n // _showSortIcon?: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n const regedIcons = registerIcons.get();\n //pin默认值\n this.freezeIcon = regedIcons[InternalIconName.freezeIconName] as SvgIcon;\n this.frozenIcon = regedIcons[InternalIconName.frozenIconName] as SvgIcon;\n this.frozenCurrentIcon = regedIcons[InternalIconName.frozenCurrentIconName] as SvgIcon;\n\n //sort默认值\n this.normalIcon = regedIcons[InternalIconName.normalIconName] as SvgIcon;\n this.upIcon = regedIcons[InternalIconName.upwardIconName] as SvgIcon;\n this.downIcon = regedIcons[InternalIconName.downwardIconName] as SvgIcon;\n //下拉按钮\n this.dropDownAbsoluteIcon = regedIcons[InternalIconName.dropdownIconName] as SvgIcon;\n // this.dropDownHoverIcon = regedIcons[InternalIconName.dropdownHoverIconName] as SvgIcon;\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n\n getIcons(col: number, row: number): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const icons: ColumnIconOption[] = [];\n if (this._table.isPivotTable()) {\n // 透视表显示排序按钮\n const { showSort, sort } = this._table.internalProps.layoutMap.getHeader(col, row) as HeaderData;\n let _showSort;\n if (typeof showSort === 'function') {\n _showSort = showSort({ col, row, table: this._table });\n } else {\n _showSort = showSort;\n }\n if (_showSort) {\n let order = (this._table as PivotTableAPI).getPivotSortState(col, row) as string;\n if (order) {\n order = order.toUpperCase();\n }\n const sortIcon = order === 'ASC' ? this.upIcon : order === 'DESC' ? this.downIcon : this.normalIcon;\n\n if (sortIcon) {\n icons.push(sortIcon);\n }\n } else if (sort) {\n // 处理配置了sort的情况\n const sortIcon = this.getSortIconForPivotTable(\n (this._table as PivotTableAPI).getPivotSortState(col, row),\n this._table,\n col,\n row\n );\n if (sortIcon) {\n icons.push(sortIcon);\n }\n }\n } else {\n const states = (this._table as ListTableAPI).sortState;\n let order: SortOrder | undefined;\n order = undefined;\n const range = this._table.getCellRange(col, row);\n if (states) {\n if (Array.isArray(states)) {\n for (let i = 0; i < states.length; i++) {\n const state = states[i];\n const stateRange = this._table._getHeaderCellBySortState(state);\n if (stateRange && cellInRange(range, stateRange.col, stateRange.row)) {\n ({ order } = state);\n break;\n }\n }\n } else {\n const stateRange = this._table._getHeaderCellBySortState(states);\n if (stateRange && cellInRange(range, stateRange.col, stateRange.row)) {\n ({ order } = states);\n }\n }\n }\n const sortIcon = this.getSortIcon(order, this._table, col, row);\n if (sortIcon) {\n icons.push(sortIcon);\n }\n }\n\n if (this._table.showFrozenIcon && col < this._table.allowFrozenColCount) {\n const pinInline = this.getFrozenIcon(col, row);\n if (pinInline) {\n icons.push(pinInline);\n // context.showIcon = this.showFrozenIconIcon;//todo 暂时去掉 需要想其他方式\n }\n }\n\n if (this.checkDropDownIcon(this._table, col, row)) {\n // const dropDownMenuHoverIcon = this.dropDownHoverIcon;//this.getDropDownHoverIcon(_table, col, row);\n const dropDownMenuIcon = this.dropDownAbsoluteIcon; //this.getDropDownAbsoluteIcon(_table, col, row);\n // dropDownMenuIcon.hover.image = dropDownMenuHoverIcon.svg; // to do 规范化处理\n icons.push(dropDownMenuIcon);\n }\n\n const dropDownStateIcons = this.getDropDownStateIcons(this._table, col, row);\n if (dropDownStateIcons.length) {\n icons.push(...dropDownStateIcons);\n }\n\n const { headerIcon } = this._table._getHeaderLayoutMap(col, row) as HeaderData;\n // captionIcon && icons.push(captionIcon);\n\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n icons.push(hierarchyIcon);\n }\n\n if (headerIcon) {\n let headerIconStrs;\n if (typeof headerIcon === 'function') {\n const arg = {\n col,\n row,\n value: this._table.getCellValue(col, row),\n dataValue: this._table.getCellOriginValue(col, row),\n table: this._table\n };\n headerIconStrs = headerIcon(arg);\n } else {\n headerIconStrs = headerIcon;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (headerIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof headerIcon === 'string') {\n icon = regedIcons[headerIcon];\n } else {\n icon = headerIcon;\n }\n if (icon) {\n icons.push(icon);\n }\n };\n if (Array.isArray(headerIconStrs)) {\n headerIconStrs.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(headerIconStrs);\n }\n }\n return icons;\n }\n\n getFrozenIcon(col: number, row: number): ColumnIconOption | null {\n // this.showFrozenIconIcon = undefined;\n if (this._table.isPivotTable() || (this._table as ListTable).transpose) {\n // 透视表和转置模式不显示冻结按钮\n return null;\n }\n\n if (this._table.rightFrozenColCount && col >= this._table.colCount - this._table.rightFrozenColCount) {\n return null;\n }\n const headerC = this._table.getHeaderDefine(col, row) as any;\n if (headerC.columns && headerC.columns.length > 0) {\n return null;\n }\n\n let frozen = this.freezeIcon;\n // 使用table.options.frozenColCount原始冻结信息获取按钮\n if (this._table.options.frozenColCount - 1 > col) {\n frozen = this.frozenIcon;\n } else if (this._table.options.frozenColCount - 1 === col) {\n frozen = this.frozenCurrentIcon;\n }\n return frozen;\n }\n\n getSortIcon(order: SortOrder | undefined, _table: BaseTableAPI, col: number, row: number): ColumnIconOption | null {\n // this.showSortIcon = undefined;\n const icon = order === 'asc' ? this.upIcon : order === 'desc' ? this.downIcon : this.normalIcon;\n\n const headerC = _table.getHeaderDefine(col, row) as any;\n let _showSort;\n if (headerC) {\n if (typeof headerC.showSort === 'function') {\n _showSort = headerC.showSort({ col, row, table: this._table });\n } else {\n _showSort = headerC.showSort;\n }\n }\n if (\n !headerC ||\n _showSort === false ||\n (!isValid(_showSort) && !headerC.sort) ||\n (headerC.columns && headerC.columns.length > 0)\n ) {\n return null;\n }\n return icon;\n }\n\n getSortIconForPivotTable(\n order: SortOrder | undefined,\n _table: BaseTableAPI,\n col: number,\n row: number\n ): ColumnIconOption | null {\n const headerC = _table.getHeaderDefine(col, row) as any;\n let _showSort;\n if (headerC) {\n if (typeof headerC.showSort === 'function') {\n _showSort = headerC.showSort({ col, row, table: this._table });\n } else {\n _showSort = headerC.showSort;\n }\n }\n if (\n !headerC ||\n _showSort === false ||\n (!isValid(_showSort) && !headerC.sort) ||\n (headerC.columns && headerC.columns.length > 0)\n ) {\n return null;\n }\n const icon =\n order?.toUpperCase() === 'ASC' ? this.upIcon : order?.toUpperCase() === 'DESC' ? this.downIcon : this.normalIcon;\n // const icon = order === 'ASC' ? this.downIcon : this.upIcon;\n return icon;\n }\n\n private getDropDownStateIcons(_table: BaseTableAPI, col: number, row: number): ColumnIconOption[] {\n const headerC = _table.getHeaderDefine(col, row) as ColumnDefine;\n const headerL = _table._getHeaderLayoutMap(col, row) as HeaderData;\n let { dropDownMenu } = headerL as HeaderData;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: _table });\n }\n let globalDropDownMenu = _table.globalDropDownMenu;\n if (typeof globalDropDownMenu === 'function') {\n globalDropDownMenu = globalDropDownMenu({ row, col, table: _table });\n }\n const results: ColumnIconOption[] = [];\n if (\n (Array.isArray(dropDownMenu) && dropDownMenu.length) || // header中配置dropDownMenu\n (Array.isArray(globalDropDownMenu) && globalDropDownMenu.length && !headerC?.columns?.length) // 全局配置dropDownMenu,只在最下级表头展示\n ) {\n const menus = dropDownMenu || globalDropDownMenu;\n let highlightIndex = -1;\n let subHighlightIndex = -1;\n for (let i = 0; i < menus.length; i++) {\n const menu = menus[i];\n // 优先判断子元素\n if (typeof menu === 'object' && menu.children && menu.children.length) {\n for (let j = 0; j < menu.children.length; j++) {\n const childItem = menu.children[j];\n if (\n _table.stateManager.menu?.dropDownMenuHighlight &&\n isMenuHighlight(\n _table,\n _table.stateManager.menu?.dropDownMenuHighlight,\n typeof childItem === 'object' ? childItem?.menuKey : childItem,\n col,\n row,\n i\n )\n ) {\n highlightIndex = i;\n subHighlightIndex = j;\n break;\n }\n }\n }\n if (_table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n // const highlightIndex = _table._dropDownMenuIsHighlight(col, row);\n if (highlightIndex !== -1) {\n let menu;\n if (subHighlightIndex !== -1) {\n menu = (menus[highlightIndex] as any).children[subHighlightIndex];\n } else {\n menu = menus[highlightIndex];\n }\n\n if (menu.stateIcon) {\n if (menu.stateIcon.svg) {\n results.push({\n type: 'svg',\n name: menu.stateIcon.src || menu.stateIcon.svg,\n width: menu.stateIcon.width || 22,\n height: menu.stateIcon.height || 22,\n // dropDownIndex: highlightIndex,\n svg: menu.stateIcon.svg,\n positionType: IconPosition.right,\n marginRight: 0,\n funcType: IconFuncTypeEnum.dropDownState,\n interactive: false\n // hover: {\n // width: menu.stateIcon.width || 22,\n // height: menu.stateIcon.height || 22,\n // bgColor: 'rgba(101, 117, 168, 0.1)',\n // },\n });\n } else if (menu.stateIcon.src) {\n results.push({\n type: 'image',\n name: menu.stateIcon.src || menu.stateIcon.svg,\n width: menu.stateIcon.width || 22,\n height: menu.stateIcon.height || 22,\n // dropDownIndex: highlightIndex,\n src: menu.stateIcon.src,\n positionType: IconPosition.right,\n marginRight: 0,\n funcType: IconFuncTypeEnum.dropDownState,\n interactive: false\n // hover: {\n // width: menu.stateIcon.width || 22,\n // height: menu.stateIcon.height || 22,\n // bgColor: 'rgba(101, 117, 168, 0.1)',\n // },\n });\n }\n }\n }\n }\n return results;\n }\n /**\n * 内置dropDownIcon的位置信息\n * @param cellRect\n * @param marginTop\n * @param baseline\n * @returns\n */\n getDropDownIconRect(cellRect: RectProps, marginTop: number, baseline?: string): RectProps {\n // const left = cellRect.right - (this.downIcon.box?.width || 0) - marginRight;\n // const right = cellRect.right - marginRight;\n const iconW = this.downIcon.hover?.width ?? this.downIcon?.width ?? 0;\n const iconH = this.downIcon.hover?.height ?? this.downIcon?.height ?? 0;\n const left = cellRect.right - 2 - iconW;\n const right = cellRect.right - 2;\n let top;\n if (baseline === 'middle') {\n top = cellRect.top + cellRect.height / 2 - iconW / 2;\n } else if (baseline === 'top') {\n top = cellRect.top + marginTop / 2;\n } else if (baseline === 'bottom') {\n top = cellRect.bottom - marginTop * 2;\n } else {\n top = cellRect.top;\n }\n const bottom = iconH + top;\n\n return {\n left,\n right,\n top,\n bottom,\n width: iconW,\n height: iconH\n };\n }\n\n getHierarchyIcon(col: number, row: number) {\n const { hierarchyState } = this._table._getHeaderLayoutMap(col, row) as HeaderData;\n if (hierarchyState) {\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n private checkDropDownIcon(_table: BaseTableAPI, col: number, row: number) {\n /*\n * dropDownMenu有三种状态:\n * 1. header中未配置 =》 使用globalDropDownMenu,icon展示\n * 2. header中配置 =》 使用header中的dropDownMenu,icon展示\n * 3. header中dropDownMenu为空数组 =》 icon不展示\n */\n if (_table.isPivotTable()) {\n const headerC = _table._getHeaderLayoutMap(col, row) as HeaderData;\n let dropDownMenu = headerC.dropDownMenu;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: _table });\n }\n if (\n Array.isArray(dropDownMenu) &&\n dropDownMenu.length // header中配置dropDownMenu\n ) {\n return true;\n }\n } else {\n const headerC = _table.getHeaderDefine(col, row) as ColumnDefine;\n const dropDownMenu = headerC.dropDownMenu;\n let globalDropDownMenu = _table.globalDropDownMenu;\n if (typeof globalDropDownMenu === 'function') {\n globalDropDownMenu = globalDropDownMenu({ row, col, table: _table });\n }\n if (\n (Array.isArray(dropDownMenu) && dropDownMenu.length) || // header中配置dropDownMenu\n ((!Array.isArray(headerC.dropDownMenu) || headerC.dropDownMenu.length !== 0) && // header中dropDownMenu为空数组,不显示\n Array.isArray(globalDropDownMenu) &&\n globalDropDownMenu.length && // 全局配置dropDownMenu\n !headerC?.columns?.length) // 只在最下级表头展示\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n getStyleClass(headerType: HeaderTypeOption) {\n switch (headerType) {\n case 'text':\n return TextHeaderStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextHeaderStyle;\n case 'checkbox':\n return CheckboxStyle;\n default:\n return TextHeaderStyle;\n }\n }\n\n setTableColumnsEditor() {\n const setEditor = (colDefines: ColumnsDefine, setColumns: ColumnsDefine) => {\n colDefines?.forEach((colDefine, index) => {\n if (colDefine.editor) {\n setColumns[index].editor = colDefine.editor;\n }\n if (colDefine.columns) {\n setEditor(colDefine.columns, setColumns[index].columns);\n }\n });\n };\n setEditor((this._table as ListTable).options.columns, (this._table as ListTable).internalProps.columns);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/header-helper/header-helper.ts"],"names":[],"mappings":"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","file":"header-helper.js","sourcesContent":["import type {\n ColumnDefine,\n ColumnIconOption,\n ColumnsDefine,\n HeaderTypeOption,\n ListTableAPI,\n PivotTableAPI,\n RectProps,\n SortOrder,\n SvgIcon\n} from '../ts-types';\nimport { HierarchyState, IconFuncTypeEnum, IconPosition, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { cellInRange } from '../tools/helper';\nimport { isMenuHighlight } from '../components/menu/dom/logic/MenuElement';\nimport { Style } from './style/Style';\nimport { ImageStyle } from './style/ImageStyle';\nimport { TextHeaderStyle } from './style';\nimport type { ListTable } from '../ListTable';\nimport type { BaseTableAPI, HeaderData } from '../ts-types/base-table';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { isValid } from '@visactor/vutils';\nexport class HeaderHelper {\n normalIcon: SvgIcon;\n upIcon: SvgIcon;\n downIcon: SvgIcon;\n freezeIcon: SvgIcon;\n frozenIcon: SvgIcon;\n frozenCurrentIcon: SvgIcon;\n dropDownAbsoluteIcon: SvgIcon;\n // dropDownHoverIcon: SvgIcon;\n\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n // //存储鼠标hover到的图标类型,后面需要用name判断,应该再拿个inline对象上赋值showFrozenIconIcon,绘制感应区域\n // _showFrozenIconIcon?: SvgIcon;\n // _showSortIcon?: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n this.updateIcons();\n }\n\n updateIcons() {\n const regedIcons = registerIcons.get();\n //pin默认值\n this.freezeIcon = regedIcons[InternalIconName.freezeIconName] as SvgIcon;\n this.frozenIcon = regedIcons[InternalIconName.frozenIconName] as SvgIcon;\n this.frozenCurrentIcon = regedIcons[InternalIconName.frozenCurrentIconName] as SvgIcon;\n\n //sort默认值\n this.normalIcon = regedIcons[InternalIconName.normalIconName] as SvgIcon;\n this.upIcon = regedIcons[InternalIconName.upwardIconName] as SvgIcon;\n this.downIcon = regedIcons[InternalIconName.downwardIconName] as SvgIcon;\n //下拉按钮\n this.dropDownAbsoluteIcon = regedIcons[InternalIconName.dropdownIconName] as SvgIcon;\n // this.dropDownHoverIcon = regedIcons[InternalIconName.dropdownHoverIconName] as SvgIcon;\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n\n getIcons(col: number, row: number): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const icons: ColumnIconOption[] = [];\n if (this._table.isPivotTable()) {\n // 透视表显示排序按钮\n const { showSort, sort } = this._table.internalProps.layoutMap.getHeader(col, row) as HeaderData;\n let _showSort;\n if (typeof showSort === 'function') {\n _showSort = showSort({ col, row, table: this._table });\n } else {\n _showSort = showSort;\n }\n if (_showSort) {\n let order = (this._table as PivotTableAPI).getPivotSortState(col, row) as string;\n if (order) {\n order = order.toUpperCase();\n }\n const sortIcon = order === 'ASC' ? this.upIcon : order === 'DESC' ? this.downIcon : this.normalIcon;\n\n if (sortIcon) {\n icons.push(sortIcon);\n }\n } else if (sort) {\n // 处理配置了sort的情况\n const sortIcon = this.getSortIconForPivotTable(\n (this._table as PivotTableAPI).getPivotSortState(col, row),\n this._table,\n col,\n row\n );\n if (sortIcon) {\n icons.push(sortIcon);\n }\n }\n } else {\n const states = (this._table as ListTableAPI).sortState;\n let order: SortOrder | undefined;\n order = undefined;\n const range = this._table.getCellRange(col, row);\n if (states) {\n if (Array.isArray(states)) {\n for (let i = 0; i < states.length; i++) {\n const state = states[i];\n const stateRange = this._table._getHeaderCellBySortState(state);\n if (stateRange && cellInRange(range, stateRange.col, stateRange.row)) {\n ({ order } = state);\n break;\n }\n }\n } else {\n const stateRange = this._table._getHeaderCellBySortState(states);\n if (stateRange && cellInRange(range, stateRange.col, stateRange.row)) {\n ({ order } = states);\n }\n }\n }\n const sortIcon = this.getSortIcon(order, this._table, col, row);\n if (sortIcon) {\n icons.push(sortIcon);\n }\n }\n\n if (this._table.showFrozenIcon && col < this._table.allowFrozenColCount) {\n const pinInline = this.getFrozenIcon(col, row);\n if (pinInline) {\n icons.push(pinInline);\n // context.showIcon = this.showFrozenIconIcon;//todo 暂时去掉 需要想其他方式\n }\n }\n\n if (this.checkDropDownIcon(this._table, col, row)) {\n // const dropDownMenuHoverIcon = this.dropDownHoverIcon;//this.getDropDownHoverIcon(_table, col, row);\n const dropDownMenuIcon = this.dropDownAbsoluteIcon; //this.getDropDownAbsoluteIcon(_table, col, row);\n // dropDownMenuIcon.hover.image = dropDownMenuHoverIcon.svg; // to do 规范化处理\n icons.push(dropDownMenuIcon);\n }\n\n const dropDownStateIcons = this.getDropDownStateIcons(this._table, col, row);\n if (dropDownStateIcons.length) {\n icons.push(...dropDownStateIcons);\n }\n\n const { headerIcon } = this._table._getHeaderLayoutMap(col, row) as HeaderData;\n // captionIcon && icons.push(captionIcon);\n\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n icons.push(hierarchyIcon);\n }\n\n if (headerIcon) {\n let headerIconStrs;\n if (typeof headerIcon === 'function') {\n const arg = {\n col,\n row,\n value: this._table.getCellValue(col, row),\n dataValue: this._table.getCellOriginValue(col, row),\n table: this._table\n };\n headerIconStrs = headerIcon(arg);\n } else {\n headerIconStrs = headerIcon;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (headerIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof headerIcon === 'string') {\n icon = regedIcons[headerIcon];\n } else {\n icon = headerIcon;\n }\n if (icon) {\n icons.push(icon);\n }\n };\n if (Array.isArray(headerIconStrs)) {\n headerIconStrs.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(headerIconStrs);\n }\n }\n return icons;\n }\n\n getFrozenIcon(col: number, row: number): ColumnIconOption | null {\n // this.showFrozenIconIcon = undefined;\n if (this._table.isPivotTable() || (this._table as ListTable).transpose) {\n // 透视表和转置模式不显示冻结按钮\n return null;\n }\n\n if (this._table.rightFrozenColCount && col >= this._table.colCount - this._table.rightFrozenColCount) {\n return null;\n }\n const headerC = this._table.getHeaderDefine(col, row) as any;\n if (headerC.columns && headerC.columns.length > 0) {\n return null;\n }\n\n let frozen = this.freezeIcon;\n // 使用table.options.frozenColCount原始冻结信息获取按钮\n if (this._table.options.frozenColCount - 1 > col) {\n frozen = this.frozenIcon;\n } else if (this._table.options.frozenColCount - 1 === col) {\n frozen = this.frozenCurrentIcon;\n }\n return frozen;\n }\n\n getSortIcon(order: SortOrder | undefined, _table: BaseTableAPI, col: number, row: number): ColumnIconOption | null {\n // this.showSortIcon = undefined;\n const icon = order === 'asc' ? this.upIcon : order === 'desc' ? this.downIcon : this.normalIcon;\n\n const headerC = _table.getHeaderDefine(col, row) as any;\n let _showSort;\n if (headerC) {\n if (typeof headerC.showSort === 'function') {\n _showSort = headerC.showSort({ col, row, table: this._table });\n } else {\n _showSort = headerC.showSort;\n }\n }\n if (\n !headerC ||\n _showSort === false ||\n (!isValid(_showSort) && !headerC.sort) ||\n (headerC.columns && headerC.columns.length > 0)\n ) {\n return null;\n }\n return icon;\n }\n\n getSortIconForPivotTable(\n order: SortOrder | undefined,\n _table: BaseTableAPI,\n col: number,\n row: number\n ): ColumnIconOption | null {\n const headerC = _table.getHeaderDefine(col, row) as any;\n let _showSort;\n if (headerC) {\n if (typeof headerC.showSort === 'function') {\n _showSort = headerC.showSort({ col, row, table: this._table });\n } else {\n _showSort = headerC.showSort;\n }\n }\n if (\n !headerC ||\n _showSort === false ||\n (!isValid(_showSort) && !headerC.sort) ||\n (headerC.columns && headerC.columns.length > 0)\n ) {\n return null;\n }\n const icon =\n order?.toUpperCase() === 'ASC' ? this.upIcon : order?.toUpperCase() === 'DESC' ? this.downIcon : this.normalIcon;\n // const icon = order === 'ASC' ? this.downIcon : this.upIcon;\n return icon;\n }\n\n private getDropDownStateIcons(_table: BaseTableAPI, col: number, row: number): ColumnIconOption[] {\n const headerC = _table.getHeaderDefine(col, row) as ColumnDefine;\n const headerL = _table._getHeaderLayoutMap(col, row) as HeaderData;\n let { dropDownMenu } = headerL as HeaderData;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: _table });\n }\n let globalDropDownMenu = _table.globalDropDownMenu;\n if (typeof globalDropDownMenu === 'function') {\n globalDropDownMenu = globalDropDownMenu({ row, col, table: _table });\n }\n const results: ColumnIconOption[] = [];\n if (\n (Array.isArray(dropDownMenu) && dropDownMenu.length) || // header中配置dropDownMenu\n (Array.isArray(globalDropDownMenu) && globalDropDownMenu.length && !headerC?.columns?.length) // 全局配置dropDownMenu,只在最下级表头展示\n ) {\n const menus = dropDownMenu || globalDropDownMenu;\n let highlightIndex = -1;\n let subHighlightIndex = -1;\n for (let i = 0; i < menus.length; i++) {\n const menu = menus[i];\n // 优先判断子元素\n if (typeof menu === 'object' && menu.children && menu.children.length) {\n for (let j = 0; j < menu.children.length; j++) {\n const childItem = menu.children[j];\n if (\n _table.stateManager.menu?.dropDownMenuHighlight &&\n isMenuHighlight(\n _table,\n _table.stateManager.menu?.dropDownMenuHighlight,\n typeof childItem === 'object' ? childItem?.menuKey : childItem,\n col,\n row,\n i\n )\n ) {\n highlightIndex = i;\n subHighlightIndex = j;\n break;\n }\n }\n }\n if (_table._dropDownMenuIsHighlight(col, row, i)) {\n highlightIndex = i;\n break;\n }\n }\n // const highlightIndex = _table._dropDownMenuIsHighlight(col, row);\n if (highlightIndex !== -1) {\n let menu;\n if (subHighlightIndex !== -1) {\n menu = (menus[highlightIndex] as any).children[subHighlightIndex];\n } else {\n menu = menus[highlightIndex];\n }\n\n if (menu.stateIcon) {\n if (menu.stateIcon.svg) {\n results.push({\n type: 'svg',\n name: menu.stateIcon.src || menu.stateIcon.svg,\n width: menu.stateIcon.width || 22,\n height: menu.stateIcon.height || 22,\n // dropDownIndex: highlightIndex,\n svg: menu.stateIcon.svg,\n positionType: IconPosition.right,\n marginRight: 0,\n funcType: IconFuncTypeEnum.dropDownState,\n interactive: false\n // hover: {\n // width: menu.stateIcon.width || 22,\n // height: menu.stateIcon.height || 22,\n // bgColor: 'rgba(101, 117, 168, 0.1)',\n // },\n });\n } else if (menu.stateIcon.src) {\n results.push({\n type: 'image',\n name: menu.stateIcon.src || menu.stateIcon.svg,\n width: menu.stateIcon.width || 22,\n height: menu.stateIcon.height || 22,\n // dropDownIndex: highlightIndex,\n src: menu.stateIcon.src,\n positionType: IconPosition.right,\n marginRight: 0,\n funcType: IconFuncTypeEnum.dropDownState,\n interactive: false\n // hover: {\n // width: menu.stateIcon.width || 22,\n // height: menu.stateIcon.height || 22,\n // bgColor: 'rgba(101, 117, 168, 0.1)',\n // },\n });\n }\n }\n }\n }\n return results;\n }\n /**\n * 内置dropDownIcon的位置信息\n * @param cellRect\n * @param marginTop\n * @param baseline\n * @returns\n */\n getDropDownIconRect(cellRect: RectProps, marginTop: number, baseline?: string): RectProps {\n // const left = cellRect.right - (this.downIcon.box?.width || 0) - marginRight;\n // const right = cellRect.right - marginRight;\n const iconW = this.downIcon.hover?.width ?? this.downIcon?.width ?? 0;\n const iconH = this.downIcon.hover?.height ?? this.downIcon?.height ?? 0;\n const left = cellRect.right - 2 - iconW;\n const right = cellRect.right - 2;\n let top;\n if (baseline === 'middle') {\n top = cellRect.top + cellRect.height / 2 - iconW / 2;\n } else if (baseline === 'top') {\n top = cellRect.top + marginTop / 2;\n } else if (baseline === 'bottom') {\n top = cellRect.bottom - marginTop * 2;\n } else {\n top = cellRect.top;\n }\n const bottom = iconH + top;\n\n return {\n left,\n right,\n top,\n bottom,\n width: iconW,\n height: iconH\n };\n }\n\n getHierarchyIcon(col: number, row: number) {\n const { hierarchyState } = this._table._getHeaderLayoutMap(col, row) as HeaderData;\n if (hierarchyState) {\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n private checkDropDownIcon(_table: BaseTableAPI, col: number, row: number) {\n /*\n * dropDownMenu有三种状态:\n * 1. header中未配置 =》 使用globalDropDownMenu,icon展示\n * 2. header中配置 =》 使用header中的dropDownMenu,icon展示\n * 3. header中dropDownMenu为空数组 =》 icon不展示\n */\n if (_table.isPivotTable()) {\n const headerC = _table._getHeaderLayoutMap(col, row) as HeaderData;\n let dropDownMenu = headerC.dropDownMenu;\n if (typeof dropDownMenu === 'function') {\n dropDownMenu = dropDownMenu({ row, col, table: _table });\n }\n if (\n Array.isArray(dropDownMenu) &&\n dropDownMenu.length // header中配置dropDownMenu\n ) {\n return true;\n }\n } else {\n const headerC = _table.getHeaderDefine(col, row) as ColumnDefine;\n const dropDownMenu = headerC.dropDownMenu;\n let globalDropDownMenu = _table.globalDropDownMenu;\n if (typeof globalDropDownMenu === 'function') {\n globalDropDownMenu = globalDropDownMenu({ row, col, table: _table });\n }\n if (\n (Array.isArray(dropDownMenu) && dropDownMenu.length) || // header中配置dropDownMenu\n ((!Array.isArray(headerC.dropDownMenu) || headerC.dropDownMenu.length !== 0) && // header中dropDownMenu为空数组,不显示\n Array.isArray(globalDropDownMenu) &&\n globalDropDownMenu.length && // 全局配置dropDownMenu\n !headerC?.columns?.length) // 只在最下级表头展示\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n getStyleClass(headerType: HeaderTypeOption) {\n switch (headerType) {\n case 'text':\n return TextHeaderStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextHeaderStyle;\n case 'checkbox':\n return CheckboxStyle;\n default:\n return TextHeaderStyle;\n }\n }\n\n setTableColumnsEditor() {\n const setEditor = (colDefines: ColumnsDefine, setColumns: ColumnsDefine) => {\n colDefines?.forEach((colDefine, index) => {\n if (colDefine.editor) {\n setColumns[index].editor = colDefine.editor;\n }\n if (colDefine.columns) {\n setEditor(colDefine.columns, setColumns[index].columns);\n }\n });\n };\n setEditor((this._table as ListTable).options.columns, (this._table as ListTable).internalProps.columns);\n }\n}\n"]}
|
|
@@ -31,4 +31,5 @@ function of(headerStyle, defaultHeaderStyle, styleArg, StyleClass, globalAutoWra
|
|
|
31
31
|
StyleClass === CheckboxStyle_1.CheckboxStyle ? new CheckboxStyle_1.CheckboxStyle(null != headerStyle ? headerStyle : {}, null != defaultHeaderStyle ? defaultHeaderStyle : {}, null !== (_a = theme.checkboxStyle) && void 0 !== _a ? _a : {}) : new StyleClass(null != headerStyle ? headerStyle : {}, null != defaultHeaderStyle ? defaultHeaderStyle : {})) : StyleClass.DEFAULT;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
exports.of = of;
|
|
34
|
+
exports.of = of;
|
|
35
|
+
//# sourceMappingURL=style.js.map
|
package/cjs/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { toBoxArray } from './tools/helper';
|
|
|
24
24
|
export { Icon } from './scenegraph/graphic/icon';
|
|
25
25
|
export { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';
|
|
26
26
|
export { matrixAllocate, transformPointForCanvas, mapToCanvasPointForCanvas, registerGlobalEventTransformer, registerWindowEventTransformer, vglobal, Group, graphicUtil } from './vrender';
|
|
27
|
-
export declare const version = "1.0.
|
|
27
|
+
export declare const version = "1.0.38";
|
|
28
28
|
export { TYPES, core, ListTable, ListTableSimple, BaseTableAPI, ListTableConstructorOptions, PivotTable, PivotTableSimple, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, textMeasure, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, setCustomAlphabetCharSet, restoreMeasureText, pluginsDefinition };
|
|
29
29
|
declare function getIcons(): {
|
|
30
30
|
[key: string]: TYPES.ColumnIconOption;
|
package/cjs/index.js
CHANGED
|
@@ -249,7 +249,7 @@ Object.defineProperty(exports, "matrixAllocate", {
|
|
|
249
249
|
get: function() {
|
|
250
250
|
return vrender_2.graphicUtil;
|
|
251
251
|
}
|
|
252
|
-
}), exports.version = "1.0.
|
|
252
|
+
}), exports.version = "1.0.38", exports.getIcons = getIcons, exports.clearGlobal = clearGlobal,
|
|
253
253
|
TYPES.AggregationType, __exportStar(require("./components"), exports), __exportStar(require("./scenegraph/group-creater/cell-type"), exports);
|
|
254
254
|
|
|
255
255
|
var TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE");
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA4ElC,sBAAK;AA3EP,6CAA+B;AA4E7B,oBAAI;AA3EN,6CAA+B;AAuG7B,oBAAI;AAtGN,+CAAiC;AACjC,qDAAuC;AA0GrC,4BAAQ;AAzGV,iDAAmC;AAmGjC,wBAAM;AAlGR,yEAA2D;AA4GzD,wCAAc;AA3GhB,6DAA+C;AAiH7C,8CAAiB;AA3FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AA+E9C,oCAAY;AA7Ed,wEAAoE;AA8ElE,2FA9EO,wBAAU,OA8EP;AA7EZ,gGAAqF;AA8EnF,4FA9EO,iCAAW,OA8EP;AA7Eb,kEAA4G;AA+E1G,mGA/EO,iCAAkB,OA+EP;AADlB,yGA9E2B,uCAAwB,OA8E3B;AAfxB,4FA/DqD,0BAAW,OA+DrD;AAzDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AAyDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.0.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA4ElC,sBAAK;AA3EP,6CAA+B;AA4E7B,oBAAI;AA3EN,6CAA+B;AAuG7B,oBAAI;AAtGN,+CAAiC;AACjC,qDAAuC;AA0GrC,4BAAQ;AAzGV,iDAAmC;AAmGjC,wBAAM;AAlGR,yEAA2D;AA4GzD,wCAAc;AA3GhB,6DAA+C;AAiH7C,8CAAiB;AA3FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AA+E9C,oCAAY;AA7Ed,wEAAoE;AA8ElE,2FA9EO,wBAAU,OA8EP;AA7EZ,gGAAqF;AA8EnF,4FA9EO,iCAAW,OA8EP;AA7Eb,kEAA4G;AA+E1G,mGA/EO,iCAAkB,OA+EP;AADlB,yGA9E2B,uCAAwB,OA8E3B;AAfxB,4FA/DqD,0BAAW,OA+DrD;AAzDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AAyDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.0.38\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n pluginsDefinition\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function getAppearFinalOpacity(child) {
|
|
4
|
+
var _a, _b, _c, _d;
|
|
5
|
+
return null !== (_d = null !== (_a = child.attribute.opacity) && void 0 !== _a ? _a : null === (_c = null === (_b = child.getFinalAttribute) || void 0 === _b ? void 0 : _b.call(child)) || void 0 === _c ? void 0 : _c.opacity) && void 0 !== _d ? _d : 1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function setAppearFinalOpacity(child, opacity) {
|
|
9
|
+
var _a;
|
|
10
|
+
child.setAttribute("opacity", opacity);
|
|
11
|
+
const finalAttribute = null === (_a = child.getFinalAttribute) || void 0 === _a ? void 0 : _a.call(child);
|
|
12
|
+
finalAttribute && (child.setFinalAttributes ? child.setFinalAttributes({
|
|
13
|
+
opacity: opacity
|
|
14
|
+
}) : finalAttribute.opacity = opacity);
|
|
15
|
+
}
|
|
16
|
+
|
|
3
17
|
function dealWithAnimationAppear(table) {
|
|
4
18
|
var _a, _b, _c, _d;
|
|
5
19
|
if (!table.options.animationAppear) return;
|
|
@@ -9,12 +23,13 @@ function dealWithAnimationAppear(table) {
|
|
|
9
23
|
delay = null !== (_b = table.options.animationAppear.delay) && void 0 !== _b ? _b : 0,
|
|
10
24
|
type = null !== (_c = table.options.animationAppear.type) && void 0 !== _c ? _c : "one-by-one",
|
|
11
25
|
direction = null !== (_d = table.options.animationAppear.direction) && void 0 !== _d ? _d : "row");
|
|
12
|
-
const {scenegraph: scene
|
|
26
|
+
const {scenegraph: scene} = table, {colEnd: colEnd, rowEnd: rowEnd} = scene.proxy;
|
|
13
27
|
for (let col = 0; col <= colEnd; col++) for (let row = 0; row <= rowEnd; row++) {
|
|
14
28
|
const cellGroup = scene.highPerformanceGetCell(col, row);
|
|
15
29
|
cellGroup && "cell" === cellGroup.role && cellGroup.forEachChildren((child => {
|
|
16
|
-
child
|
|
17
|
-
|
|
30
|
+
const finalOpacity = getAppearFinalOpacity(child), animationDelay = "one-by-one" === type ? ("row" === direction ? row : col) * (duration - delay) : delay;
|
|
31
|
+
setAppearFinalOpacity(child, finalOpacity), child.animate().wait(animationDelay).from({
|
|
32
|
+
opacity: 0
|
|
18
33
|
}, duration, "linear");
|
|
19
34
|
}));
|
|
20
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/animation/appear.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/animation/appear.ts"],"names":[],"mappings":";;;AAYA,SAAS,qBAAqB,CAAC,KAAoB;;IACjD,OAAO,MAAA,MAAA,KAAK,CAAC,SAAS,CAAC,OAAO,mCAAI,MAAA,MAAA,KAAK,CAAC,iBAAiB,qDAAI,0CAAE,OAAO,mCAAI,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAoB,EAAE,OAAe;;IAClE,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,iBAAiB,qDAAI,CAAC;IACnD,IAAI,cAAc,EAAE;QAClB,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC5B,KAAK,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;SACvC;aAAM;YACL,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;SAClC;KACF;AACH,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAmB;;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;QAClC,OAAO;KACR;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAa,CAAC;IAClB,IAAI,IAA0B,CAAC;IAC/B,IAAI,SAA2B,CAAC;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE;QAC1C,QAAQ,GAAG,GAAG,CAAC;QACf,KAAK,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,YAAY,CAAC;QACpB,SAAS,GAAG,QAAQ,CAAC;KACtB;SAAM;QACL,QAAQ,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,mCAAI,GAAG,CAAC;QACzD,KAAK,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,mCAAI,CAAC,CAAC;QACjD,IAAI,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,mCAAI,YAAY,CAAC;QAC1D,SAAS,GAAG,MAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,mCAAI,KAAK,CAAC;KAC9D;IAED,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAGpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;IAEvC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;QACtC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC1C,SAAS,CAAC,eAAe,CAAC,CAAC,KAAoB,EAAE,EAAE;oBACjD,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAClD,MAAM,cAAc,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAE9G,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;aACJ;SACF;KACF;AACH,CAAC;AAzCD,0DAyCC","file":"appear.js","sourcesContent":["import type { Text } from './../../vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\ntype OpacityAttribute = {\n opacity?: Text['attribute']['opacity'];\n};\n\ntype AppearGraphic = Text & {\n getFinalAttribute?: () => OpacityAttribute | undefined;\n setFinalAttributes?: (attribute: OpacityAttribute) => void;\n};\n\nfunction getAppearFinalOpacity(child: AppearGraphic) {\n return child.attribute.opacity ?? child.getFinalAttribute?.()?.opacity ?? 1;\n}\n\nfunction setAppearFinalOpacity(child: AppearGraphic, opacity: number) {\n child.setAttribute('opacity', opacity);\n\n const finalAttribute = child.getFinalAttribute?.();\n if (finalAttribute) {\n if (child.setFinalAttributes) {\n child.setFinalAttributes({ opacity });\n } else {\n finalAttribute.opacity = opacity;\n }\n }\n}\n\nexport function dealWithAnimationAppear(table: BaseTableAPI) {\n if (!table.options.animationAppear) {\n return;\n }\n\n let duration: number;\n let delay: number;\n let type: 'all' | 'one-by-one';\n let direction: 'row' | 'column';\n\n if (table.options.animationAppear === true) {\n duration = 500;\n delay = 0;\n type = 'one-by-one';\n direction = 'column';\n } else {\n duration = table.options.animationAppear.duration ?? 500;\n delay = table.options.animationAppear.delay ?? 0;\n type = table.options.animationAppear.type ?? 'one-by-one';\n direction = table.options.animationAppear.direction ?? 'row';\n }\n\n const { scenegraph: scene } = table;\n\n // header cell\n const { colEnd, rowEnd } = scene.proxy; // to do: right bottom frozen\n\n for (let col = 0; col <= colEnd; col++) {\n for (let row = 0; row <= rowEnd; row++) {\n const cellGroup = scene.highPerformanceGetCell(col, row);\n if (cellGroup && cellGroup.role === 'cell') {\n cellGroup.forEachChildren((child: AppearGraphic) => {\n const finalOpacity = getAppearFinalOpacity(child);\n const animationDelay = type === 'one-by-one' ? (direction === 'row' ? row : col) * (duration - delay) : delay;\n\n setAppearFinalOpacity(child, finalOpacity);\n child.animate().wait(animationDelay).from({ opacity: 0 }, duration, 'linear');\n });\n }\n }\n }\n}\n"]}
|
|
@@ -241,11 +241,11 @@ function dealPercentCalc(group, parentWidth, parentHeight) {
|
|
|
241
241
|
|
|
242
242
|
function decodeReactDom(dom, timeline) {
|
|
243
243
|
if (!dom || !(0, vutils_1.isValid)(dom.$$typeof) && !(0, vutils_1.isValid)(dom.vtype)) return dom;
|
|
244
|
-
const type = dom.type, {attribute: attribute, children: children,
|
|
244
|
+
const type = dom.type, {attribute: attribute, children: children, states: states, sharedStateDefinitions: sharedStateDefinitions, animation: animation} = dom.props, g = type({
|
|
245
245
|
attribute: attribute
|
|
246
246
|
});
|
|
247
|
-
if (parseToGraphic(g, dom.props),
|
|
248
|
-
g.name = attribute.name, (0, vutils_1.isArray)(children) ? children.forEach((item => {
|
|
247
|
+
if (parseToGraphic(g, dom.props), states && (g.states = states), sharedStateDefinitions && "group" === g.type && (g.sharedStateDefinitions = sharedStateDefinitions),
|
|
248
|
+
g.id = attribute.id, g.name = attribute.name, (0, vutils_1.isArray)(children) ? children.forEach((item => {
|
|
249
249
|
const c = decodeReactDom(item, timeline);
|
|
250
250
|
c && c.type && g.add(c);
|
|
251
251
|
})) : children && g.add(decodeReactDom(children, timeline)), (0, vutils_1.isArray)(animation) && timeline) {
|