@visactor/vtable 0.10.3-alpha.0 → 0.10.3-alpha.1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/axis/linear-scale.ts"],"names":[],"mappings":"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","file":"linear-scale.js","sourcesContent":["import { LinearScale } from '@visactor/vscale';\nimport { isNil, isValid, maxInArray, minInArray } from '@visactor/vutils';\n\nconst e10 = Math.sqrt(50);\nconst e5 = Math.sqrt(10);\nconst e2 = Math.sqrt(2);\n\ntype IRange = { max?: number; min?: number };\nexport class LinearAxisScale {\n protected _extend: { [key: string]: number } = {};\n _scale: LinearScale;\n _scales: LinearScale[];\n nice: boolean;\n zero: boolean;\n domain: Required<IRange>;\n expand?: IRange;\n forceTickCount?: number;\n tickCount?: number;\n niceType?: 'tickCountFirst' | 'accurateFirst';\n\n constructor() {\n this._scale = new LinearScale();\n this._scales = [this._scale];\n }\n\n setExtraAttrFromSpec(nice: boolean, zero: boolean, range: Required<IRange>, expand?: IRange) {\n this.nice = nice;\n this.zero = zero;\n // this.domain = range;\n if (this.zero) {\n range.min = Math.min(range.min, 0);\n range.max = Math.max(range.max, 0);\n }\n this.domain = range;\n this.expand = expand;\n }\n\n transformScaleDomain() {\n this.setScaleNice();\n }\n setScaleNice() {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this.nice && this._scale.niceMin(tickCount);\n }\n }\n dataToPosition(values: any[]): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number }[]): number[] {\n const domain: number[] = [];\n data.forEach(d => {\n const { min, max } = d;\n domain[0] = domain[0] === undefined ? min : Math.min(domain[0] as number, min as number);\n domain[1] = domain[1] === undefined ? max : Math.max(domain[1] as number, max as number);\n });\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this.expand) {\n return;\n }\n const domainMin = domain[0];\n const domainMax = domain[domain.length - 1];\n if (isValid(this.expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this.expand.min;\n }\n if (isValid(this.expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this.expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n if (Math.abs(minInArray(domain) - maxInArray(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / 5; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[1] *= -1;\n }\n }\n return domain;\n }\n\n protected niceMinMax() {\n if (this.nice) {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this._scale.niceMin(tickCount);\n }\n }\n }\n\n protected includeZero(domain: number[]): void {\n if (this.zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this.domain) {\n return;\n }\n const { min, max } = this.domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[1] = max);\n }\n\n setZero(zero: boolean) {\n if (this.zero !== zero) {\n this.zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n updateScaleDomain() {\n const domain: number[] = this.computeDomain([this.domain]) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n computeDomain(data: { min: number; max: number }[]): number[] {\n return this.computeLinearDomain(data);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n // 设置scale的nice-min-max\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n updateRange(newRange: [number, number]) {\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n this._scale.range(newRange);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["components/axis/linear-scale.ts"],"names":[],"mappings":"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","file":"linear-scale.js","sourcesContent":["import { LinearScale } from '@visactor/vscale';\nimport { isNil, isValid, maxInArray, minInArray } from '@visactor/vutils';\n\nconst e10 = Math.sqrt(50);\nconst e5 = Math.sqrt(10);\nconst e2 = Math.sqrt(2);\n\ntype IRange = { max?: number; min?: number };\nexport class LinearAxisScale {\n protected _extend: { [key: string]: number } = {};\n _scale: LinearScale;\n _scales: LinearScale[];\n nice: boolean;\n zero: boolean;\n domain: Required<IRange>;\n expand?: IRange;\n forceTickCount?: number;\n tickCount?: number;\n niceType?: 'tickCountFirst' | 'accurateFirst';\n\n constructor() {\n this._scale = new LinearScale();\n this._scales = [this._scale];\n }\n\n setExtraAttrFromSpec(nice: boolean, zero: boolean, range: Required<IRange>, expand?: IRange) {\n this.nice = nice;\n this.zero = zero;\n // this.domain = range;\n if (this.zero) {\n range.min = Math.min(range.min, 0);\n range.max = Math.max(range.max, 0);\n }\n this.domain = range;\n this.expand = expand;\n }\n\n transformScaleDomain() {\n this.setScaleNice();\n }\n setScaleNice() {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this.nice && this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this.nice && this._scale.niceMin(tickCount);\n }\n }\n dataToPosition(values: any[]): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number }[]): number[] {\n const domain: number[] = [];\n data.forEach(d => {\n const { min, max } = d;\n domain[0] = domain[0] === undefined ? min : Math.min(domain[0] as number, min as number);\n domain[1] = domain[1] === undefined ? max : Math.max(domain[1] as number, max as number);\n });\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this.expand) {\n return;\n }\n const domainMin = domain[0];\n const domainMax = domain[domain.length - 1];\n if (isValid(this.expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this.expand.min;\n }\n if (isValid(this.expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this.expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n if (Math.abs(minInArray(domain) - maxInArray(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / 5; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[1] *= -1;\n }\n }\n return domain;\n }\n\n protected niceMinMax() {\n if (this.nice) {\n let tickCount = this.forceTickCount ?? this.tickCount ?? 10;\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (this.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n if (isNil(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.nice(tickCount);\n } else if (isValid(this.domain?.min) && isNil(this.domain?.max)) {\n this._scale.niceMax(tickCount);\n } else if (isNil(this.domain?.min) && isValid(this.domain?.max)) {\n this._scale.niceMin(tickCount);\n } else {\n // this._scale.niceMin(tickCount);\n }\n }\n }\n\n protected includeZero(domain: number[]): void {\n if (this.zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this.domain) {\n return;\n }\n const { min, max } = this.domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[1] = max);\n }\n\n setZero(zero: boolean) {\n if (this.zero !== zero) {\n this.zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n updateScaleDomain() {\n const domain: number[] = this.computeDomain([this.domain]) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n computeDomain(data: { min: number; max: number }[]): number[] {\n return this.computeLinearDomain(data);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this.nice);\n // 设置scale的nice-min-max\n this.niceMinMax();\n\n // this.event.emit(ChartEvent.scaleUpdate, { model: this as any });\n }\n\n updateRange(newRange: [number, number]) {\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n this._scale.range(newRange);\n }\n }\n}\n"]}
@@ -52,7 +52,8 @@ class Title {
52
52
  });
53
53
  }
54
54
  release() {
55
- this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent), this._titleComponent = null;
55
+ this._titleComponent && this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent),
56
+ this._titleComponent = null;
56
57
  }
57
58
  _getTitleAttrs() {
58
59
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -1 +1 @@
1
- {"version":3,"sources":["components/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { ITitle } from '../../ts-types/component/title';\nimport { getQuadProps } from '../../scenegraph/utils/padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { isEqual } from '@visactor/vutils';\nexport class Title {\n table: BaseTableAPI;\n _titleOption: ITitle;\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n constructor(titleOption: ITitle, table: BaseTableAPI) {\n this.table = table;\n this._titleOption = titleOption;\n this._titleComponent = this._createOrUpdateTitleComponent(this._getTitleAttrs());\n }\n\n private _createOrUpdateTitleComponent(attrs: TitleAttrs): TitleComponents {\n if (this._titleComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._titleComponent.setAttributes(attrs);\n }\n } else {\n const title = new TitleComponents(attrs);\n title.name = 'title';\n this.table.scenegraph.stage.defaultLayer.appendChild(title);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n // title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as INode, event, type));\n }\n // update table size\n this._adjustTableSize(this._titleComponent.attribute);\n return this._titleComponent;\n }\n\n resize() {\n if (!this._titleComponent) {\n return;\n }\n const padding = getQuadProps(this._titleOption.padding ?? 10);\n const realWidth = this._titleOption.width ?? this.table.tableNoFrameWidth - padding[1] - padding[3];\n this._titleComponent.setAttributes({\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY,\n width: realWidth,\n textStyle: {\n width: realWidth,\n ...this._titleOption.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._titleOption.subtextStyle\n }\n });\n this._adjustTableSize(this._titleComponent.attribute);\n }\n\n _adjustTableSize(attrs: TitleAttrs) {\n // 调整位置\n let width = isFinite(this._titleComponent.AABBBounds.width()) ? this._titleComponent.AABBBounds.width() : 0;\n const height = isFinite(this._titleComponent.AABBBounds.height()) ? this._titleComponent.AABBBounds.height() : 0;\n const rectWidth = this.table.tableNoFrameWidth;\n const rectHeight = this.table.tableNoFrameHeight;\n const padding = getQuadProps((attrs.padding as number | number[]) ?? this._titleOption.padding ?? 10);\n\n let x = 0;\n let y = 0;\n if (this._titleOption.orient === 'left') {\n x = padding[3];\n y = 0;\n // width += padding[1] + padding[3];\n } else if (this._titleOption.orient === 'top') {\n x = 0;\n y = padding[0];\n // height += padding[0] + padding[2];\n } else if (this._titleOption.orient === 'right') {\n x = rectWidth - width - padding[1];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this._titleOption.orient === 'bottom') {\n x = 0;\n y = rectHeight - height - padding[2];\n // height += padding[0] + padding[2];\n }\n if (this._titleOption.orient === 'left') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n this.table.tableX += Math.ceil(width);\n } else if (this._titleOption.orient === 'top') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n this.table.tableY += Math.ceil(height);\n } else if (this._titleOption.orient === 'right') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n } else if (this._titleOption.orient === 'bottom') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n }\n this._cacheAttrs = attrs;\n if (this._titleOption.orient === 'right' || this._titleOption.orient === 'bottom') {\n this._titleComponent.setAttributes({\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY\n });\n }\n }\n\n release(): void {\n this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent);\n this._titleComponent = null;\n }\n private _getTitleAttrs() {\n const padding = getQuadProps(this._titleOption.padding ?? 10);\n const realWidth = this._titleOption.width ?? this.table.tableNoFrameWidth - padding[1] - padding[3];\n return {\n text: this._titleOption.text ?? '',\n subtext: this._titleOption.subtext ?? '',\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY,\n width: realWidth,\n height: this._titleOption.height,\n minWidth: this._titleOption.minWidth,\n maxWidth: this._titleOption.maxWidth,\n minHeight: this._titleOption.minHeight,\n maxHeight: this._titleOption.maxHeight,\n padding: this._titleOption.padding,\n align: this._titleOption.align ?? 'left',\n verticalAlign: this._titleOption.verticalAlign ?? 'top',\n textStyle: {\n width: realWidth,\n ...this._titleOption.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._titleOption.subtextStyle\n }\n } as TitleAttrs;\n }\n}\n"]}
1
+ {"version":3,"sources":["components/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { ITitle } from '../../ts-types/component/title';\nimport { getQuadProps } from '../../scenegraph/utils/padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { isEqual } from '@visactor/vutils';\nexport class Title {\n table: BaseTableAPI;\n _titleOption: ITitle;\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n constructor(titleOption: ITitle, table: BaseTableAPI) {\n this.table = table;\n this._titleOption = titleOption;\n this._titleComponent = this._createOrUpdateTitleComponent(this._getTitleAttrs());\n }\n\n private _createOrUpdateTitleComponent(attrs: TitleAttrs): TitleComponents {\n if (this._titleComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._titleComponent.setAttributes(attrs);\n }\n } else {\n const title = new TitleComponents(attrs);\n title.name = 'title';\n this.table.scenegraph.stage.defaultLayer.appendChild(title);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n // title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as INode, event, type));\n }\n // update table size\n this._adjustTableSize(this._titleComponent.attribute);\n return this._titleComponent;\n }\n\n resize() {\n if (!this._titleComponent) {\n return;\n }\n const padding = getQuadProps(this._titleOption.padding ?? 10);\n const realWidth = this._titleOption.width ?? this.table.tableNoFrameWidth - padding[1] - padding[3];\n this._titleComponent.setAttributes({\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY,\n width: realWidth,\n textStyle: {\n width: realWidth,\n ...this._titleOption.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._titleOption.subtextStyle\n }\n });\n this._adjustTableSize(this._titleComponent.attribute);\n }\n\n _adjustTableSize(attrs: TitleAttrs) {\n // 调整位置\n let width = isFinite(this._titleComponent.AABBBounds.width()) ? this._titleComponent.AABBBounds.width() : 0;\n const height = isFinite(this._titleComponent.AABBBounds.height()) ? this._titleComponent.AABBBounds.height() : 0;\n const rectWidth = this.table.tableNoFrameWidth;\n const rectHeight = this.table.tableNoFrameHeight;\n const padding = getQuadProps((attrs.padding as number | number[]) ?? this._titleOption.padding ?? 10);\n\n let x = 0;\n let y = 0;\n if (this._titleOption.orient === 'left') {\n x = padding[3];\n y = 0;\n // width += padding[1] + padding[3];\n } else if (this._titleOption.orient === 'top') {\n x = 0;\n y = padding[0];\n // height += padding[0] + padding[2];\n } else if (this._titleOption.orient === 'right') {\n x = rectWidth - width - padding[1];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this._titleOption.orient === 'bottom') {\n x = 0;\n y = rectHeight - height - padding[2];\n // height += padding[0] + padding[2];\n }\n if (this._titleOption.orient === 'left') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n this.table.tableX += Math.ceil(width);\n } else if (this._titleOption.orient === 'top') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n this.table.tableY += Math.ceil(height);\n } else if (this._titleOption.orient === 'right') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n } else if (this._titleOption.orient === 'bottom') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n }\n this._cacheAttrs = attrs;\n if (this._titleOption.orient === 'right' || this._titleOption.orient === 'bottom') {\n this._titleComponent.setAttributes({\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY\n });\n }\n }\n\n release(): void {\n this._titleComponent && this.table.scenegraph.stage.defaultLayer.removeChild(this._titleComponent);\n this._titleComponent = null;\n }\n private _getTitleAttrs() {\n const padding = getQuadProps(this._titleOption.padding ?? 10);\n const realWidth = this._titleOption.width ?? this.table.tableNoFrameWidth - padding[1] - padding[3];\n return {\n text: this._titleOption.text ?? '',\n subtext: this._titleOption.subtext ?? '',\n x:\n this._titleOption.x ?? this._titleOption.orient === 'right'\n ? this.table.tableX + this.table.tableNoFrameWidth\n : this.table.tableX,\n y:\n this._titleOption.y ?? this._titleOption.orient === 'bottom'\n ? this.table.tableY + this.table.tableNoFrameHeight\n : this.table.tableY,\n width: realWidth,\n height: this._titleOption.height,\n minWidth: this._titleOption.minWidth,\n maxWidth: this._titleOption.maxWidth,\n minHeight: this._titleOption.minHeight,\n maxHeight: this._titleOption.maxHeight,\n padding: this._titleOption.padding,\n align: this._titleOption.align ?? 'left',\n verticalAlign: this._titleOption.verticalAlign ?? 'top',\n textStyle: {\n width: realWidth,\n ...this._titleOption.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._titleOption.subtextStyle\n }\n } as TitleAttrs;\n }\n}\n"]}
@@ -45,7 +45,7 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g;
48
- if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.10.3-alpha.0",
48
+ if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.10.3-alpha.1",
49
49
  this.id = `VTable${Date.now()}`, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
50
  !container) throw new Error("vtable's container is undefined");
51
51
  const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount} = options;
@@ -1048,8 +1048,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1048
1048
  let cacheStyle = this.headerStyleCache.get(`${col}-${row}`);
1049
1049
  if (cacheStyle) return cacheStyle;
1050
1050
  const hd = layoutMap.getHeader(col, row);
1051
- if (!hd || hd.isEmpty) return EMPTY_STYLE;
1052
- const styleClass = this.internalProps.headerHelper.getStyleClass(hd.headerType);
1051
+ if ((!hd || hd.isEmpty) && (layoutMap.isLeftBottomCorner(col, row) || layoutMap.isRightBottomCorner(col, row) || layoutMap.isCornerHeader(col, row) || layoutMap.isRightTopCorner(col, row))) return EMPTY_STYLE;
1052
+ const styleClass = this.internalProps.headerHelper.getStyleClass((null == hd ? void 0 : hd.headerType) || "text");
1053
1053
  if (layoutMap.isBottomFrozenRow(col, row) && this.theme.bottomFrozenStyle) cacheStyle = headerStyleContents.of({}, this.theme.bottomFrozenStyle, {
1054
1054
  col: col,
1055
1055
  row: row,
@@ -1065,7 +1065,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1065
1065
  dataValue: this.getCellOriginValue(col, row),
1066
1066
  cellHeaderPaths: this.getCellHeaderPaths(col, row)
1067
1067
  }, styleClass, this.options.autoWrapText); else {
1068
- const {style: style} = hd;
1068
+ const style = (null == hd ? void 0 : hd.style) || {};
1069
1069
  cacheStyle = headerStyleContents.of(style, layoutMap.isColumnHeader(col, row) || layoutMap.isBottomFrozenRow(col, row) ? this.theme.headerStyle : layoutMap.isRowHeader(col, row) || layoutMap.isRightFrozenColumn(col, row) ? this.theme.rowHeaderStyle : this.theme.cornerHeaderStyle, {
1070
1070
  col: col,
1071
1071
  row: row,