@visactor/vchart 1.12.1-alpha.0 → 1.12.2-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.js +439 -119
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart-transformer.js +2 -2
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.js +12 -1
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +1 -1
- package/cjs/component/axis/base-axis.js +5 -3
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +4 -2
- package/cjs/component/axis/cartesian/axis.js +22 -10
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.d.ts +5 -1
- package/cjs/component/axis/cartesian/linear-axis.js +33 -1
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.d.ts +5 -1
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +5 -0
- package/cjs/component/axis/mixin/linear-axis-mixin.js +41 -13
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/util/break-data.d.ts +5 -0
- package/cjs/component/axis/mixin/util/break-data.js +49 -0
- package/cjs/component/axis/mixin/util/break-data.js.map +1 -0
- package/cjs/component/axis/polar/axis.d.ts +1 -1
- package/cjs/component/axis/polar/axis.js +11 -9
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/polar/util/common.d.ts +4 -1
- package/cjs/component/axis/polar/util/common.js +7 -2
- package/cjs/component/axis/polar/util/common.js.map +1 -1
- package/cjs/component/brush/brush.js +5 -2
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +9 -7
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/util.js +3 -2
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/title/title.js +4 -2
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/data/transforms/add-property.js +1 -1
- package/cjs/data/transforms/add-property.js.map +1 -1
- package/cjs/data/transforms/copy-data-view.js +1 -1
- package/cjs/data/transforms/copy-data-view.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.js +1 -1
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/stack-split.js +1 -1
- package/cjs/data/transforms/stack-split.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.js +2 -4
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/plugin/chart/media-query/util/filter.js +5 -2
- package/cjs/plugin/chart/media-query/util/filter.js.map +1 -1
- package/cjs/plugin/components/axis-sync/tick-align-transform.js +3 -3
- package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/cjs/plugin/components/axis-sync/zero-align-transform.js +5 -3
- package/cjs/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.js +3 -3
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/series/pie/pie.js +4 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/progress/linear/linear.js +4 -2
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/util/array.d.ts +1 -0
- package/cjs/util/array.js +11 -2
- package/cjs/util/array.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +2 -2
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.js +12 -1
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +1 -1
- package/esm/component/axis/base-axis.js +6 -2
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +4 -2
- package/esm/component/axis/cartesian/axis.js +22 -10
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.d.ts +5 -1
- package/esm/component/axis/cartesian/linear-axis.js +36 -1
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.d.ts +5 -1
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +5 -0
- package/esm/component/axis/mixin/linear-axis-mixin.js +43 -14
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/util/break-data.d.ts +5 -0
- package/esm/component/axis/mixin/util/break-data.js +41 -0
- package/esm/component/axis/mixin/util/break-data.js.map +1 -0
- package/esm/component/axis/polar/axis.d.ts +1 -1
- package/esm/component/axis/polar/axis.js +11 -9
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/polar/util/common.d.ts +4 -1
- package/esm/component/axis/polar/util/common.js +7 -2
- package/esm/component/axis/polar/util/common.js.map +1 -1
- package/esm/component/brush/brush.js +3 -3
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +6 -6
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +2 -2
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/util.js +3 -1
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/title/title.js +4 -2
- package/esm/component/title/title.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/data/transforms/add-property.js +1 -1
- package/esm/data/transforms/add-property.js.map +1 -1
- package/esm/data/transforms/copy-data-view.js +1 -1
- package/esm/data/transforms/copy-data-view.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.js +1 -1
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/data/transforms/stack-split.js +1 -1
- package/esm/data/transforms/stack-split.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.js +2 -4
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/plugin/chart/media-query/util/filter.js +5 -2
- package/esm/plugin/chart/media-query/util/filter.js.map +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js +4 -2
- package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/esm/plugin/components/axis-sync/zero-align-transform.js +4 -4
- package/esm/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.js +3 -3
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +1 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/series/pie/pie.js +4 -1
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/progress/linear/linear.js +3 -2
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/util/array.d.ts +1 -0
- package/esm/util/array.js +9 -0
- package/esm/util/array.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IPoint, IOrientType, ILayoutType, ILayoutRect } from '../../typings';\nimport { isValidOrient } from '../../util/space';\nimport { BaseComponent } from '../base/base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ITitle, ITitleSpec } from './interface';\nimport { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual, isArray, isValidNumber, pickWithout } from '@visactor/vutils';\n\nexport class Title<T extends ITitleSpec = ITitleSpec> extends BaseComponent<T> implements ITitle {\n static type = ComponentTypeEnum.title;\n type = ComponentTypeEnum.title;\n static specKey = ComponentTypeEnum.title;\n specKey: string = ComponentTypeEnum.title;\n\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Title;\n layoutLevel: number = LayoutLevel.Title;\n\n protected _orient: IOrientType = 'top';\n\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n\n get orient() {\n return this._orient;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = isValidOrient(spec.orient) ? spec.orient : 'top';\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const titleSpec = chartSpec[this.specKey];\n if (!titleSpec || titleSpec.visible === false) {\n return null;\n }\n if (!isArray(titleSpec)) {\n return [\n {\n spec: titleSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.title\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n titleSpec.forEach((s: any, i: number) => {\n if (s.visible !== false) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.title\n });\n }\n });\n return specInfos;\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (prevSpec?.orient !== spec?.orient) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n if (isValidNumber(pos.x)) {\n this._titleComponent && this._titleComponent.setAttribute('x', pos.x);\n }\n if (isValidNumber(pos.y)) {\n this._titleComponent && this._titleComponent.setAttribute('y', pos.y);\n }\n super.afterSetLayoutStartPoint(pos);\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n let result: Partial<ILayoutRect> = {};\n this.setLayoutRect(rect);\n\n const attrs = this._getTitleAttrs();\n this._createOrUpdateTitleComponent(attrs);\n\n result = this._getTitleLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n private _getTitleLayoutRect() {\n const titleBounds = this._titleComponent.AABBBounds;\n const width = this._spec.width ? this._spec.width : isValidNumber(titleBounds.width()) ? titleBounds.width() : 0;\n const height = this._spec.height\n ? this._spec.height\n : isValidNumber(titleBounds.height())\n ? titleBounds.height()\n : 0;\n return {\n width,\n height\n };\n }\n\n private _getTitleAttrs() {\n // 当 width 小于 0 时,设置为 0,负数场景容易引起不可预知的问题\n const realWidth = Math.max(0, this._spec.width ?? this.getLayoutRect().width);\n return {\n ...(pickWithout(this._spec, ['padding']) as any),\n textType: this._spec.textType ?? 'text',\n text: this._spec.text ?? '',\n subtextType: this._spec.subtextType ?? 'text',\n subtext: this._spec.subtext ?? '',\n x: this._spec.x ?? 0,\n y: this._spec.y ?? 0,\n width: realWidth,\n height: this._spec.height,\n minWidth: this._spec.minWidth,\n maxWidth: this._spec.maxWidth,\n minHeight: this._spec.minHeight,\n maxHeight: this._spec.maxHeight,\n padding: this._spec.innerPadding,\n align: this._spec.align ?? 'left',\n verticalAlign: this._spec.verticalAlign ?? 'top',\n textStyle: {\n width: realWidth,\n ...this._spec.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._spec.subtextStyle\n }\n } as TitleAttrs;\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 container = this.getContainer();\n const title = new TitleComponents(attrs);\n title.name = 'title';\n container.add(title as unknown as INode);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as IGraphic, event, type));\n }\n this._cacheAttrs = attrs;\n return this._titleComponent;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._titleComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._cacheAttrs = null;\n }\n}\n\nexport const registerTitle = () => {\n Factory.registerComponent(Title.type, Title);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IPoint, IOrientType, ILayoutType, ILayoutRect } from '../../typings';\nimport { isValidOrient } from '../../util/space';\nimport { BaseComponent } from '../base/base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ITitle, ITitleSpec } from './interface';\nimport { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual, isArray, isValidNumber, pickWithout } from '@visactor/vutils';\n\nexport class Title<T extends ITitleSpec = ITitleSpec> extends BaseComponent<T> implements ITitle {\n static type = ComponentTypeEnum.title;\n type = ComponentTypeEnum.title;\n static specKey = ComponentTypeEnum.title;\n specKey: string = ComponentTypeEnum.title;\n\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Title;\n layoutLevel: number = LayoutLevel.Title;\n\n protected _orient: IOrientType = 'top';\n\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n\n get orient() {\n return this._orient;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = isValidOrient(spec.orient) ? spec.orient : 'top';\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const titleSpec = chartSpec[this.specKey];\n if (!titleSpec || titleSpec.visible === false) {\n return null;\n }\n if (!isArray(titleSpec)) {\n return [\n {\n spec: titleSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.title\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n titleSpec.forEach((s: any, i: number) => {\n if (s.visible !== false) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.title\n });\n }\n });\n return specInfos;\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n\n if (prevSpec?.orient !== spec?.orient || (prevSpec as any)?.visible !== (spec as any).visible) {\n // title 组件切换visible会影响布局,所以需要重新remake\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n // region\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n if (isValidNumber(pos.x)) {\n this._titleComponent && this._titleComponent.setAttribute('x', pos.x);\n }\n if (isValidNumber(pos.y)) {\n this._titleComponent && this._titleComponent.setAttribute('y', pos.y);\n }\n super.afterSetLayoutStartPoint(pos);\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n let result: Partial<ILayoutRect> = {};\n this.setLayoutRect(rect);\n\n const attrs = this._getTitleAttrs();\n this._createOrUpdateTitleComponent(attrs);\n\n result = this._getTitleLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n private _getTitleLayoutRect() {\n const titleBounds = this._titleComponent.AABBBounds;\n const width = this._spec.width ? this._spec.width : isValidNumber(titleBounds.width()) ? titleBounds.width() : 0;\n const height = this._spec.height\n ? this._spec.height\n : isValidNumber(titleBounds.height())\n ? titleBounds.height()\n : 0;\n return {\n width,\n height\n };\n }\n\n private _getTitleAttrs() {\n // 当 width 小于 0 时,设置为 0,负数场景容易引起不可预知的问题\n const realWidth = Math.max(0, this._spec.width ?? this.getLayoutRect().width);\n if (this._spec.visible === false) {\n return { visible: false };\n }\n\n return {\n ...(pickWithout(this._spec, ['padding']) as any),\n textType: this._spec.textType ?? 'text',\n text: this._spec.text ?? '',\n subtextType: this._spec.subtextType ?? 'text',\n subtext: this._spec.subtext ?? '',\n x: this._spec.x ?? 0,\n y: this._spec.y ?? 0,\n width: realWidth,\n height: this._spec.height,\n minWidth: this._spec.minWidth,\n maxWidth: this._spec.maxWidth,\n minHeight: this._spec.minHeight,\n maxHeight: this._spec.maxHeight,\n padding: this._spec.innerPadding,\n align: this._spec.align ?? 'left',\n verticalAlign: this._spec.verticalAlign ?? 'top',\n textStyle: {\n width: realWidth,\n ...this._spec.textStyle\n },\n subtextStyle: {\n width: realWidth,\n ...this._spec.subtextStyle\n }\n } as TitleAttrs;\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 container = this.getContainer();\n const title = new TitleComponents(attrs);\n title.name = 'title';\n container.add(title as unknown as INode);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as IGraphic, event, type));\n }\n this._cacheAttrs = attrs;\n return this._titleComponent;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._titleComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._cacheAttrs = null;\n }\n}\n\nexport const registerTitle = () => {\n Factory.registerComponent(Title.type, Title);\n};\n"]}
|
package/cjs/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "1.12.
|
|
4
|
+
export declare const version = "1.12.2-alpha.0";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export type { IStateSpec, StateValueType } from '../compile/mark';
|
|
7
7
|
export * from '../typings/spec/common';
|
package/cjs/core/index.js
CHANGED
|
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
|
|
|
35
35
|
get: function() {
|
|
36
36
|
return factory_1.Factory;
|
|
37
37
|
}
|
|
38
|
-
}), exports.version = "1.12.
|
|
38
|
+
}), exports.version = "1.12.2-alpha.0", __exportStar(require("../typings/spec/common"), exports),
|
|
39
39
|
__exportStar(require("../event/interface"), exports), __exportStar(require("../theme/interface"), exports),
|
|
40
40
|
__exportStar(require("./interface"), exports), __exportStar(require("../constant/base"), exports),
|
|
41
41
|
__exportStar(require("../typings/spec/index"), exports), __exportStar(require("../typings/tooltip"), exports),
|
package/cjs/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAG5B,mDAAiC;AAKjC,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.12.
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAG5B,mDAAiC;AAKjC,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.12.2-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from './interface';\n\n// some constants\nexport * from '../constant/base';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n"]}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
|
|
7
7
|
const addVChartProperty = (data, op) => {
|
|
8
8
|
const context = op.beforeCall();
|
|
9
|
-
return data.forEach(((d, i) => op.call(d, i, context))), context.keyMap && (context.keyMap.clear(),
|
|
9
|
+
return data && data.forEach(((d, i) => op.call(d, i, context))), context.keyMap && (context.keyMap.clear(),
|
|
10
10
|
context.keyMap = null), data;
|
|
11
11
|
};
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/add-property.ts"],"names":[],"mappings":";;;AAYO,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAyB,EAAE,EAAE;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/add-property.ts"],"names":[],"mappings":";;;AAYO,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAyB,EAAE,EAAE;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvD,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;KACvB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B","file":"add-property.js","sourcesContent":["export type AddVChartPropertyContext = {\n keyMap: Map<string, number>;\n needDefaultSeriesField: boolean;\n defaultSeriesField?: string;\n getKey?: (d: any, i: number, context: AddVChartPropertyContext) => string;\n categoryField?: string;\n};\nexport interface IAddVChartPropertyOpt {\n beforeCall: () => AddVChartPropertyContext;\n call: (d: any, i: number, context: AddVChartPropertyContext) => void;\n}\n\nexport const addVChartProperty = (data: Array<any>, op: IAddVChartPropertyOpt) => {\n const context = op.beforeCall();\n data && data.forEach((d, i) => op.call(d, i, context));\n\n if (context.keyMap) {\n context.keyMap.clear();\n context.keyMap = null;\n }\n\n return data;\n};\n"]}
|
|
@@ -9,7 +9,7 @@ const vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vd
|
|
|
9
9
|
function copyOneDataView(d, deep = !1) {
|
|
10
10
|
let _deep = deep;
|
|
11
11
|
return d.latestData instanceof vdataset_1.DataView && (_deep = !1), _deep ? (0,
|
|
12
|
-
vutils_1.cloneDeep)(d.latestData) : d.latestData.slice();
|
|
12
|
+
vutils_1.cloneDeep)(d.latestData) : d.latestData && d.latestData.slice();
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const copyDataView = (data, options) => 0 === data.length ? [] : 1 === data.length ? copyOneDataView(data[0], null == options ? void 0 : options.deep) : data.map((d => copyOneDataView(d, null == options ? void 0 : options.deep)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/copy-data-view.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,iDAA8C;AAE9C,SAAS,eAAe,CAAC,CAAW,EAAE,IAAI,GAAG,KAAK;IAChD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,CAAC,UAAU,YAAY,mBAAQ,EAAE;QACpC,KAAK,GAAG,KAAK,CAAC;KACf;IACD,IAAI,KAAK,EAAE;QACT,OAAO,IAAA,kBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/copy-data-view.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,iDAA8C;AAE9C,SAAS,eAAe,CAAC,CAAW,EAAE,IAAI,GAAG,KAAK;IAChD,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,CAAC,UAAU,YAAY,mBAAQ,EAAE;QACpC,KAAK,GAAG,KAAK,CAAC;KACf;IACD,IAAI,KAAK,EAAE;QACT,OAAO,IAAA,kBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC9C,CAAC;AAQM,MAAM,YAAY,GAAG,CAAC,IAAqB,EAAE,OAA6B,EAAE,EAAE;IACnF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;KAChD;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB","file":"copy-data-view.js","sourcesContent":["import { cloneDeep } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\n\nfunction copyOneDataView(d: DataView, deep = false) {\n let _deep = deep;\n if (d.latestData instanceof DataView) {\n _deep = false;\n }\n if (_deep) {\n return cloneDeep(d.latestData);\n }\n\n return d.latestData && d.latestData.slice();\n}\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const copyDataView = (data: Array<DataView>, options?: ICopyDataViewOption) => {\n if (data.length === 0) {\n return [];\n }\n if (data.length === 1) {\n return copyOneDataView(data[0], options?.deep);\n }\n return data.map(d => copyOneDataView(d, options?.deep));\n};\n\nexport interface ICopyDataViewOption {\n deep?: boolean;\n}\n"]}
|
|
@@ -33,7 +33,7 @@ const dimensionStatisticsOfSimpleData = (latestData, fields, dataFields) => {
|
|
|
33
33
|
result[key] = {};
|
|
34
34
|
const dataFieldInKey = null == dataFields ? void 0 : dataFields[key], operations = f.operations, isNumberField = operations.some((op => "min" === op || "max" === op || "allValid" === op));
|
|
35
35
|
let allValid = !0;
|
|
36
|
-
fValues.length = 0, latestData.forEach((d => {
|
|
36
|
+
fValues.length = 0, latestData && latestData.forEach((d => {
|
|
37
37
|
d && fValues.push(d[key]);
|
|
38
38
|
}));
|
|
39
39
|
const len = fValues.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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","file":"dimension-statistics.js","sourcesContent":["import { isNil, isFunction, minInArray, maxInArray } from '@visactor/vutils';\nimport type { IFieldsMeta } from '../../typings/spec';\nimport { couldBeValidNumber } from '../../util/type';\nimport { mergeFields } from '../../util/data';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\n\nconst methods = {\n min: (arr: any[]) => {\n return arr.length ? minInArray(arr.map(n => n * 1)) : 0;\n },\n max: (arr: any[]) => {\n return arr.length ? maxInArray(arr.map(n => n * 1)) : 0;\n },\n 'array-min': (arr: any[]) => {\n return arr.length ? minInArray(arr.map(n => n * 1)) : 0;\n },\n 'array-max': (arr: any[]) => {\n return arr.length ? maxInArray(arr.map(n => n * 1)) : 0;\n },\n values: (arr: any[]) => {\n const map = {};\n const res: any[] = [];\n\n for (const entry of arr) {\n if (!map[entry]) {\n res.push(entry);\n map[entry] = 1;\n }\n }\n\n return res;\n }\n};\n\nexport type StatisticOperations = Array<'max' | 'min' | 'values' | 'array-max' | 'array-min' | 'allValid'>;\n\nexport interface IStatisticsOption {\n fields: {\n key: string;\n operations: StatisticOperations;\n filter?: (fv: any) => boolean;\n customize?: { max: number; min: number } | any[];\n }[];\n // operations: Array<'max' | 'min' | 'values'>;\n target?: 'parser' | 'latest';\n}\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatistics = (data: Array<DataView>, op: IStatisticsOption) => {\n // const operations = op.operations;\n let fields = op.fields;\n if (isFunction(fields)) {\n fields = fields();\n }\n if (!fields?.length || !data?.length) {\n return {};\n }\n\n // merge same key\n fields = mergeFields([], fields);\n\n const dataKey = op.target === 'parser' ? 'parserData' : 'latestData';\n const latestData = data[0][dataKey] ? data[0][dataKey] : data || [];\n const dataFields = data[0].getFields?.() as Record<\n /** 字段key */\n string,\n IFieldsMeta\n >;\n\n return dimensionStatisticsOfSimpleData(latestData, fields, dataFields);\n};\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatisticsOfSimpleData = (\n latestData: Datum[],\n fields: {\n key: string;\n operations: StatisticOperations;\n filter?: (fv: any) => boolean;\n customize?: { max: number; min: number } | any[];\n }[],\n dataFields?: Record<\n /** 字段key */\n string,\n IFieldsMeta\n >\n) => {\n const result = {};\n\n let fValues: any[] = [];\n let nextFValues: any[] = [];\n fields.forEach(f => {\n const key = f.key;\n // NOTE: the same key in fields has been merge already\n result[key] = {};\n const dataFieldInKey = dataFields?.[key];\n const operations: StatisticOperations = f.operations;\n const isNumberField = operations.some(op => op === 'min' || op === 'max' || op === 'allValid');\n let allValid = true;\n fValues.length = 0;\n\n latestData &&\n latestData.forEach((d: Datum) => {\n if (d) {\n fValues.push(d[key]);\n }\n });\n const len = fValues.length;\n\n if (isNumberField) {\n nextFValues.length = 0;\n fValues.forEach((item, i) => {\n if (couldBeValidNumber(item)) {\n nextFValues.push(item);\n }\n });\n const t = fValues;\n fValues = nextFValues;\n nextFValues = t;\n // fValues = fValues.filter(couldBeValidNumber);\n allValid = fValues.length === len;\n } else if (operations.some(op => op === 'array-min' || op === 'array-max')) {\n fValues = fValues.reduce((res, entry) => {\n if (entry) {\n entry.forEach((d: any) => {\n if (couldBeValidNumber(d)) {\n res.push(d);\n }\n });\n }\n\n return res;\n }, []);\n } else {\n fValues = fValues.filter((entry: any) => entry !== undefined);\n }\n\n if (f.filter) {\n fValues = fValues.filter(f.filter);\n }\n\n operations.forEach(op => {\n // @chensij 如果指定了计算的domain结果,则忽略计算(目前该逻辑仅在dot series中维护,因为dot series期望在filter data之后x轴改变domain,y轴不改变domain)\n if (f.customize) {\n result[key][op] = f.customize;\n } else {\n if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {\n if (op === 'values') {\n result[key][op] = dataFieldInKey.domain.slice();\n return;\n }\n } else if (op === 'allValid') {\n return;\n }\n\n result[key][op] = methods[op](fValues);\n\n if (op === 'array-max') {\n result[key].max = result[key][op];\n }\n if (op === 'array-min') {\n result[key].min = result[key][op];\n }\n }\n });\n\n if (isNumberField) {\n result[key].allValid = allValid;\n }\n });\n\n return result;\n};\n"]}
|
|
@@ -12,7 +12,7 @@ const vutils_1 = require("@visactor/vutils"), stackSplit = (data, op) => {
|
|
|
12
12
|
const lastFieldIndex = fields.length - 1;
|
|
13
13
|
let nextNode, leaf, temp = result;
|
|
14
14
|
return data.forEach((dv => {
|
|
15
|
-
dv.latestData.forEach((d => {
|
|
15
|
+
dv.latestData && dv.latestData.forEach((d => {
|
|
16
16
|
temp = result;
|
|
17
17
|
for (let i = 0; i < fields.length; i++) {
|
|
18
18
|
const f = fields[i], fV = d[f];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/stack-split.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAQlC,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAE,EAAgB,EAAE,EAAE;IACpE,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,EAAE;KACV,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;QACnB,OAAO,MAAM,CAAC;KACf;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,GAAyB,MAAM,CAAC;IACxC,IAAI,QAA8B,CAAC;IACnC,IAAI,IAA0B,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAChB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAQ,EAAE,EAAE;
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/stack-split.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAQlC,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAE,EAAgB,EAAE,EAAE;IACpE,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,EAAE;KACV,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;QACnB,OAAO,MAAM,CAAC;KACf;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,GAAyB,MAAM,CAAC;IACxC,IAAI,QAA8B,CAAC;IACnC,IAAI,IAA0B,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAChB,EAAE,CAAC,UAAU;YACX,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAQ,EAAE,EAAE;gBACjC,IAAI,GAAG,MAAM,CAAC;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChB,IAAI,IAAA,cAAK,EAAC,EAAE,CAAC,EAAE;wBACb,MAAM;qBACP;oBACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;wBACnB,IAAI,CAAC,KAAK,cAAc,EAAE;4BACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;yBACjC;6BAAM;4BACL,QAAQ,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;4BACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;yBAC3B;qBACF;oBACD,IAAI,CAAC,KAAK,cAAc,EAAE;wBACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAyB,CAAC;wBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACrB;yBAAM;wBACL,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAyB,CAAC;qBAC/C;iBACF;YACH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzCW,QAAA,UAAU,cAyCrB","file":"stack-split.js","sourcesContent":["import type { ISeriesStackData, ISeriesStackDataLeaf, ISeriesStackDataNode } from '../../series/interface';\nimport { isNil } from '@visactor/vutils';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\n\nexport interface IStackOption {\n fields: string[];\n}\n\nexport const stackSplit = (data: Array<DataView>, op: IStackOption) => {\n const result: ISeriesStackData = {\n nodes: {}\n };\n const { fields } = op;\n if (!fields?.length) {\n return result;\n }\n const lastFieldIndex = fields.length - 1;\n let temp: ISeriesStackDataNode = result;\n let nextNode: ISeriesStackDataNode;\n let leaf: ISeriesStackDataLeaf;\n data.forEach(dv => {\n dv.latestData &&\n dv.latestData.forEach((d: Datum) => {\n temp = result;\n for (let i = 0; i < fields.length; i++) {\n const f = fields[i];\n const fV = d[f];\n if (isNil(fV)) {\n break;\n }\n temp.groupField = f;\n if (!temp.nodes[fV]) {\n if (i === lastFieldIndex) {\n temp.nodes[fV] = { values: [] };\n } else {\n nextNode = { nodes: {} };\n temp.nodes[fV] = nextNode;\n }\n }\n if (i === lastFieldIndex) {\n leaf = temp.nodes[fV] as ISeriesStackDataLeaf;\n leaf.values.push(d);\n } else {\n temp = temp.nodes[fV] as ISeriesStackDataNode;\n }\n }\n });\n });\n return result;\n};\n"]}
|
|
@@ -46,10 +46,8 @@ const vscale_1 = require("@visactor/vscale"), common_1 = require("./common"), vu
|
|
|
46
46
|
exports.getCartesianDimensionInfo = getCartesianDimensionInfo;
|
|
47
47
|
|
|
48
48
|
const getDimensionInfoByPosition = (axis, posValue, posKey, getDimensionField) => {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
const value = scale.invert(scalePos);
|
|
52
|
-
return (0, exports.getDimensionInfoByValue)(axis, value, getDimensionField);
|
|
49
|
+
const value = axis.positionToData(posValue, !0);
|
|
50
|
+
return (0, vutils_1.isNil)(value) ? null : (0, exports.getDimensionInfoByValue)(axis, value, getDimensionField);
|
|
53
51
|
};
|
|
54
52
|
|
|
55
53
|
exports.getDimensionInfoByPosition = getDimensionInfoByPosition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getDimensionData, getAxis } from './common';\nimport type { CartesianAxis } from '../../../../component/axis/cartesian';\nimport type { ICartesianSeries } from '../../../../series/interface';\nimport { isNil } from '@visactor/vutils';\nimport { isXAxis, isYAxis } from '../../../../component/axis/cartesian/util/common';\nimport { Direction } from '../../../../typings/space';\nimport type { ILayoutPoint } from '../../../../typings/layout';\n\nconst discreteXAxisGetDimensionField = (series: ICartesianSeries) => series.fieldX[0];\nconst discreteYAxisGetDimensionField = (series: ICartesianSeries) => series.fieldY[0];\nconst continuousXAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldX[0],\n series.fieldX2 ?? series.fieldX[1]\n];\nconst continuousYAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldY[0],\n series.fieldY2 ?? series.fieldY[1]\n];\n\nconst getDimensionFieldFunc = (isXAxis: boolean, isDiscreteAxis: boolean) =>\n isXAxis\n ? isDiscreteAxis\n ? discreteXAxisGetDimensionField\n : continuousXAxisGetDimensionField\n : isDiscreteAxis\n ? discreteYAxisGetDimensionField\n : continuousYAxisGetDimensionField;\n\nexport const getCartesianDimensionInfo = (\n chart: IChart | undefined,\n pos: ILayoutPoint,\n isTooltip?: boolean\n): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n\n const { x, y } = pos;\n const xAxisList = getAxis(chart, (cmp: CartesianAxis) => isXAxis(cmp.getOrient()), pos) ?? [];\n const yAxisList = getAxis(chart, (cmp: CartesianAxis) => isYAxis(cmp.getOrient()), pos) ?? [];\n\n /** 离散轴集合 */\n const bandAxisSet: Set<CartesianAxis> = new Set();\n /** 连续轴集合 */\n const linearAxisSet: Set<CartesianAxis> = new Set();\n /** 必须包含的轴的集合 */\n const forceAxisSet: Set<CartesianAxis> = new Set();\n\n [xAxisList, yAxisList].forEach(axisList =>\n axisList.forEach(axis => {\n const isDiscreteAxis = isDiscrete(axis.getScale().type);\n if (isDiscreteAxis) {\n bandAxisSet.add(axis);\n } else {\n linearAxisSet.add(axis);\n }\n if (isTooltip && axis.getSpec().hasDimensionTooltip) {\n forceAxisSet.add(axis);\n }\n })\n );\n\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const addAxisDimensionInfo = (orient: 'x' | 'y') => {\n const isXAxis = orient === 'x';\n const posValue = isXAxis ? x : y;\n const axisList = isXAxis ? xAxisList : yAxisList;\n axisList.forEach(axis => {\n if (forceAxisSet.size > 0) {\n if (forceAxisSet.has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, isDiscrete(axis.getScale().type))\n );\n info && targetAxisInfo.push(info);\n }\n } else {\n const hasDiscreteAxis = bandAxisSet.size > 0;\n if ((hasDiscreteAxis ? bandAxisSet : linearAxisSet).has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, hasDiscreteAxis)\n );\n info && targetAxisInfo.push(info);\n }\n }\n });\n };\n\n // 优先筛选 band 轴,其次按照 direction 判断\n if (chart.getSpec().direction === Direction.horizontal) {\n addAxisDimensionInfo('y');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('x');\n }\n } else {\n addAxisDimensionInfo('x');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('y');\n }\n }\n\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n\nexport const getDimensionInfoByPosition = (\n axis: CartesianAxis,\n posValue: number,\n posKey: 'x' | 'y',\n getDimensionField: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const value = axis.positionToData(posValue, true);\n return isNil(value) ? null : getDimensionInfoByValue(axis, value, getDimensionField);\n};\n\nexport const getDimensionInfoByValue = (\n axis: CartesianAxis,\n value: any,\n getDimensionField?: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n\n if (isNil(value)) {\n return null;\n }\n const domain = scale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(\n value,\n axis,\n 'cartesian',\n getDimensionField ?? (isXAxis(axis.getOrient()) ? discreteXAxisGetDimensionField : discreteYAxisGetDimensionField)\n );\n return { index, value, position: scale.scale(value), axis, data };\n};\n"]}
|
|
@@ -49,9 +49,12 @@ const executeMediaQueryActionFilterType = (filterType = "chart", chartSpec, char
|
|
|
49
49
|
const {specKey: specKey} = result, infoList = (0, vutils_1.array)(null !== (_f = null === (_e = chartSpecInfo.component) || void 0 === _e ? void 0 : _e[specKey]) && void 0 !== _f ? _f : []);
|
|
50
50
|
null === (_h = (0, vutils_1.array)(null !== (_g = chartSpec[specKey]) && void 0 !== _g ? _g : [])) || void 0 === _h || _h.forEach(((componentSpec, i) => {
|
|
51
51
|
const specInfo = infoList[i];
|
|
52
|
-
specInfo.type === filterType
|
|
52
|
+
specInfo && specInfo.type === filterType ? result.modelInfo.push(Object.assign(Object.assign({}, specInfo), {
|
|
53
53
|
spec: componentSpec
|
|
54
|
-
}))
|
|
54
|
+
})) : componentSpec && !1 === componentSpec.visible && result.modelInfo.push({
|
|
55
|
+
type: filterType,
|
|
56
|
+
spec: componentSpec
|
|
57
|
+
});
|
|
55
58
|
}));
|
|
56
59
|
} else {
|
|
57
60
|
const componentTypes = factory_1.Factory.getComponents().filter((({cmp: cmp}) => cmp.specKey === filterType)).map((({cmp: cmp}) => cmp.type));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/chart/media-query/util/filter.ts"],"names":[],"mappings":";;;AAAA,6CAA4D;AAG5D,sDAAmD;AAQnD,4DAA8D;AAC9D,+DAAoE;AACpE,iEAAyD;AAKlD,MAAM,6BAA6B,GAAG,CAC3C,aAAyC,OAAO,EAChD,MAAyD,EACzD,MAA4B,EAC5B,KAA2B,EAC3B,SAAc,EACd,aAA6B,EACE,EAAE;IACjC,MAAM,MAAM,GAAG,IAAA,yCAAiC,EAAI,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/plugin/chart/media-query/util/filter.ts"],"names":[],"mappings":"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","file":"filter.js","sourcesContent":["import { array, isFunction, isNil } from '@visactor/vutils';\nimport type { IChartSpec } from '../../../../typings/spec/common';\n// eslint-disable-next-line no-duplicate-imports\nimport { Factory } from '../../../../core/factory';\nimport type {\n IMediaQueryAction,\n IMediaQueryActionFilterResult,\n IMediaQueryCondition,\n MediaQueryActionFilter,\n MediaQueryActionFilterType\n} from '../interface';\nimport { SeriesTypeEnum } from '../../../../series/interface';\nimport { ComponentTypeEnum } from '../../../../component/interface';\nimport { includeSpec } from '@visactor/vutils-extension';\nimport type { MaybeArray } from '../../../../typings';\nimport type { IChartSpecInfo } from '../../../../chart/interface';\n\n/** 执行元素过滤器 */\nexport const executeMediaQueryActionFilter = <T extends Record<string, unknown>>(\n filterType: MediaQueryActionFilterType = 'chart',\n filter: MaybeArray<MediaQueryActionFilter<T>> | undefined,\n action: IMediaQueryAction<T>,\n query: IMediaQueryCondition,\n chartSpec: any,\n chartSpecInfo: IChartSpecInfo\n): IMediaQueryActionFilterResult => {\n const result = executeMediaQueryActionFilterType<T>(filterType, chartSpec, chartSpecInfo);\n\n return {\n ...result,\n modelInfo: result.modelInfo.filter(info => {\n if (isNil(filter)) {\n return true;\n }\n return array(filter).some(f => {\n if (isFunction(f)) {\n return f(info, action, query);\n }\n // spec 模糊匹配\n return includeSpec(info.spec, f);\n });\n })\n };\n};\n\n/** 执行元素过滤器的 filterType 部分的筛选 */\nexport const executeMediaQueryActionFilterType = <T extends Record<string, unknown>>(\n filterType: MediaQueryActionFilterType = 'chart',\n chartSpec: any,\n chartSpecInfo: IChartSpecInfo\n): IMediaQueryActionFilterResult<T> => {\n const result: IMediaQueryActionFilterResult<T> = {\n modelInfo: []\n };\n\n if (filterType === 'chart') {\n result.isChart = true;\n result.modelInfo.push({\n spec: chartSpec,\n type: 'chart'\n });\n } else if (filterType === 'region') {\n result.modelType = 'region';\n result.specKey = 'region';\n\n chartSpec.region?.forEach((regionSpec: T, i: number) => {\n result.modelInfo.push({\n spec: regionSpec,\n specPath: ['region', i],\n type: 'region'\n });\n });\n } else if (filterType === 'series') {\n result.modelType = 'series';\n result.specKey = 'series';\n\n chartSpec.series?.forEach((seriesSpec: T, i: number) => {\n result.modelInfo.push({\n spec: seriesSpec,\n specPath: ['series', i],\n type: seriesSpec.type as string\n });\n });\n } else if (Object.values(SeriesTypeEnum).includes(filterType as SeriesTypeEnum)) {\n result.modelType = 'series';\n result.specKey = 'series';\n result.type = filterType as SeriesTypeEnum;\n\n chartSpec.series?.forEach((seriesSpec: T, i: number) => {\n if (seriesSpec.type === filterType) {\n result.modelInfo.push({\n spec: seriesSpec,\n specPath: ['series', i],\n type: filterType\n });\n }\n });\n } else if (Object.values(ComponentTypeEnum).includes(filterType as ComponentTypeEnum)) {\n result.modelType = 'component';\n result.type = filterType as ComponentTypeEnum;\n result.specKey = Factory.getComponentInKey(filterType)?.specKey as keyof IChartSpec;\n\n const { specKey } = result;\n const infoList = array(chartSpecInfo.component?.[specKey] ?? []);\n array(chartSpec[specKey] ?? [])?.forEach((componentSpec, i) => {\n const specInfo = infoList[i];\n\n if (specInfo && specInfo.type === filterType) {\n result.modelInfo.push({\n ...specInfo,\n spec: componentSpec\n });\n } else if (componentSpec && componentSpec.visible === false) {\n result.modelInfo.push({\n type: filterType,\n spec: componentSpec\n });\n }\n });\n } else {\n // 根据 specKey 进行匹配\n const componentTypes = Factory.getComponents()\n .filter(({ cmp }) => cmp.specKey === filterType)\n .map(({ cmp }) => cmp.type);\n if (componentTypes.length > 0) {\n result.modelType = 'component';\n const specKey = filterType as keyof IChartSpec;\n result.specKey = specKey;\n\n const infoList = array(chartSpecInfo.component?.[specKey] ?? []);\n array(chartSpec[specKey] ?? []).forEach((componentSpec, i) => {\n const specInfo = infoList[i];\n if (componentTypes.includes(specInfo.type as ComponentTypeEnum)) {\n result.modelInfo.push({\n ...specInfo,\n spec: componentSpec\n });\n }\n });\n }\n }\n\n return result;\n};\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.tickAlign = void 0;
|
|
6
6
|
|
|
7
|
-
const vrender_components_1 = require("@visactor/vrender-components"), tickAlign = (data, op) => {
|
|
7
|
+
const vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), tickAlign = (data, op) => {
|
|
8
8
|
var _a, _b, _c, _d, _e;
|
|
9
9
|
if (!data) return data;
|
|
10
10
|
const targetAxis = null === (_a = null == op ? void 0 : op.targetAxis) || void 0 === _a ? void 0 : _a.call(op);
|
|
@@ -20,9 +20,9 @@ const vrender_components_1 = require("@visactor/vrender-components"), tickAlign
|
|
|
20
20
|
if (!(null == targetData ? void 0 : targetData.length)) return data;
|
|
21
21
|
const targetScale = targetAxis.getScale();
|
|
22
22
|
if (!targetScale) return data;
|
|
23
|
-
const targetDomain = targetScale.domain(), targetRange = targetDomain
|
|
23
|
+
const targetDomain = targetScale.domain(), targetRange = (0, vutils_1.last)(targetDomain) - targetDomain[0];
|
|
24
24
|
if (0 === targetRange) return data;
|
|
25
|
-
const currentDomain = currentScale.domain(), currentRange = currentDomain
|
|
25
|
+
const currentDomain = currentScale.domain(), currentRange = (0, vutils_1.last)(currentDomain) - currentDomain[0];
|
|
26
26
|
if (0 === targetRange) return data;
|
|
27
27
|
const newTicks = targetData.map((d => {
|
|
28
28
|
const percent = (d.value - targetDomain[0]) / targetRange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":";;;AAEA,qEAAuE;
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":";;;AAEA,qEAAuE;AACvE,6CAAwC;AAOjC,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAA,aAAI,EAAC,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAA,aAAI,EAAC,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,4CAAuB,EAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAlDW,QAAA,SAAS,aAkDpB","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vrender-components';\nimport { last } from '@visactor/vutils';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n // TODO 这种方法有点hack\n const currentTickTransform = currentData.transformsArr.find(t => t.type.includes('ticks'));\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = last(targetDomain) - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = last(currentDomain) - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
|
|
@@ -7,12 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
const vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
9
9
|
function isValidAlignDomain(domain) {
|
|
10
|
-
return 2 === domain.length && (0, vutils_1.isValidNumber)(domain[0]) && (0, vutils_1.isValidNumber)(
|
|
10
|
+
return 2 === domain.length && (0, vutils_1.isValidNumber)(domain[0]) && (0, vutils_1.isValidNumber)((0,
|
|
11
|
+
vutils_1.last)(domain)) && (0, vutils_1.last)(domain) >= domain[0];
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
function getScaleInfo(axis, domain) {
|
|
14
|
-
const total = domain
|
|
15
|
-
let negative = domain[0] <= 0 ? 0 - domain[0] : 0, positive = domain
|
|
15
|
+
const total = (0, vutils_1.last)(domain) - domain[0], includeZero = (0, vutils_1.last)(domain) * domain[0] < 0;
|
|
16
|
+
let negative = domain[0] <= 0 ? 0 - domain[0] : 0, positive = (0, vutils_1.last)(domain) > 0 ? (0,
|
|
17
|
+
vutils_1.last)(domain) - 0 : 0;
|
|
16
18
|
0 === total ? domain[0] < 0 ? (negative = 1, positive = 0) : domain[0] > 0 && (negative = 0,
|
|
17
19
|
positive = 1) : (negative /= total, positive /= total);
|
|
18
20
|
const domainSpec = axis.getDomainSpec();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/axis-sync/zero-align-transform.ts"],"names":[],"mappings":"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","file":"zero-align-transform.js","sourcesContent":["import { isValidNumber } from '@visactor/vutils';\nimport { isContinuous } from '@visactor/vscale';\nimport type { CartesianAxis } from '../../../component';\nimport type { LinearAxisMixin } from '../../../component/axis/mixin/linear-axis-mixin';\n\ntype ScaleInfo = {\n total: number;\n negative: number;\n positive: number;\n includeZero: boolean;\n extendable_min: boolean;\n extendable_max: boolean;\n domain: number[];\n};\n\nexport function isValidAlignDomain(domain: number[]): boolean {\n return domain.length === 2 && isValidNumber(domain[0]) && isValidNumber(domain[1]) && domain[1] >= domain[0];\n}\n\nexport function getScaleInfo(axis: LinearAxisMixin, domain: number[]): ScaleInfo {\n // example: -10 -20 total = 10 negative = 10\n const total = domain[1] - domain[0];\n const includeZero = domain[1] * domain[0] < 0;\n let negative = domain[0] <= 0 ? 0 - domain[0] : 0;\n let positive = domain[1] > 0 ? domain[1] - 0 : 0;\n if (total === 0) {\n if (domain[0] < 0) {\n negative = 1;\n positive = 0;\n } else if (domain[0] > 0) {\n negative = 0;\n positive = 1;\n }\n } else {\n negative = negative / total;\n positive = positive / total;\n }\n const domainSpec = axis.getDomainSpec();\n return {\n total,\n negative,\n positive,\n includeZero,\n domain,\n extendable_min: !isValidNumber(domainSpec.min),\n extendable_max: !isValidNumber(domainSpec.max)\n };\n}\n\nfunction inDifferentCrossZero(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const {\n positive: positive1,\n negative: negative1,\n extendable_min: s1Extendable_min,\n extendable_max: s1Extendable_max,\n domain: domain1\n } = info1;\n const {\n positive: positive2,\n negative: negative2,\n extendable_min: s2Extendable_min,\n extendable_max: s2Extendable_max,\n domain: domain2\n } = info2;\n // make s2 percent same as s1\n if (positive2 > 0) {\n if (!s2Extendable_min) {\n return false;\n }\n let comp = negative1 / positive1;\n // if s1 could extend max, then expand s1\n // example:【0.5,0.5】 + 【0,1】 = 【0.5,1】\n if (s1Extendable_max) {\n // change s1 percent\n comp = negative1 / Math.max(positive1, positive2);\n domain1[1] = -domain1[0] / comp;\n }\n domain2[0] = -domain2[1] * comp;\n } else if (negative2 > 0) {\n if (!s2Extendable_max) {\n return false;\n }\n let comp = positive1 / negative1;\n // if s1 could extend max, then expand s1\n // example:【0.5,0.5】 + 【1,0】 = 【1,0.5】\n if (s1Extendable_min) {\n // change s1 percent\n comp = positive1 / Math.max(negative1, negative1);\n domain1[0] = -domain1[1] / comp;\n }\n domain2[1] = -domain2[0] * comp;\n }\n return true;\n}\n\nfunction inOnlyZeroDomain(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;\n const { positive: positive2, negative: negative2, domain: domain2 } = info2;\n // both [0,0]\n if (positive2 === 0 && negative2 === 0) {\n return false;\n }\n // 如果副轴 有正值部分 主轴无法正值扩展,跳过\n if (positive2 > 0 && !s1Extendable_max) {\n return false;\n }\n // 如果副轴 有负值部分 主轴无法负值扩展,跳过\n if (negative2 > 0 && !s1Extendable_min) {\n return false;\n }\n // 其他场景,将主轴设置为与副轴相同\n domain1[0] = domain2[0];\n domain1[1] = domain2[1];\n return true;\n}\n\nfunction inAllCrossZero(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { positive: positive1, negative: negative1, extendable_max: s1Extendable_max, domain: domain1 } = info1;\n const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, domain: domain2 } = info2;\n if (s1Extendable_max && s2Extendable_min) {\n // percent\n const comp = Math.max(negative1, negative2) / Math.max(positive1, positive2);\n domain1[1] = -domain1[0] / comp;\n domain2[0] = -domain2[1] * comp;\n }\n // only on side extendable\n else if (s2Extendable_min) {\n const comp = negative1 / positive1;\n domain2[0] = -domain2[1] * comp;\n } else if (s1Extendable_max) {\n const comp = negative2 / positive2;\n domain1[1] = -domain1[0] / comp;\n } else {\n // skip\n return false;\n }\n return true;\n}\n\nfunction inNoCrossDifferentSide(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { extendable_min: s1Extendable_min, domain: domain1 } = info1;\n const { extendable_max: s2Extendable_max, domain: domain2 } = info2;\n // extendable\n if (!s1Extendable_min || !s2Extendable_max) {\n return false;\n }\n domain1[0] = -domain1[1];\n domain2[1] = -domain2[0];\n return true;\n}\n\nexport const zeroAlign = (targetAxis: CartesianAxis, currentAxis: CartesianAxis) => {\n const s1 = targetAxis.getScale();\n const s2 = currentAxis.getScale();\n\n if (!s1 || !s2) {\n return;\n }\n\n const domain1 = (targetAxis as any).getDomainAfterSpec?.() ?? [0, 1];\n const domain2 = (currentAxis as any).getDomainAfterSpec?.() ?? [0, 1];\n\n if (!domain1 || !domain2 || !isValidAlignDomain(domain1) || !isValidAlignDomain(domain2)) {\n return;\n }\n\n // 先分别获取正负比例\n const info1 = getScaleInfo(<LinearAxisMixin>(<unknown>targetAxis), domain1);\n const info2 = getScaleInfo(<LinearAxisMixin>(<unknown>currentAxis), domain2);\n const {\n positive: positive1,\n negative: negative1,\n extendable_min: s1Extendable_min,\n extendable_max: s1Extendable_max,\n includeZero: includeZero1\n } = info1;\n const {\n positive: positive2,\n negative: negative2,\n extendable_min: s2Extendable_min,\n extendable_max: s2Extendable_max,\n includeZero: includeZero2\n } = info2;\n\n // first check [0,0]\n // axis 1 in [0,0]\n if (positive1 === 0 && negative1 === 0) {\n if (!inOnlyZeroDomain(info1, info2)) {\n return;\n }\n }\n // axis 2 in [0,0]\n else if (positive2 === 0 && negative2 === 0) {\n if (!inOnlyZeroDomain(info2, info1)) {\n return;\n }\n }\n // check of both of axis are not cross zero\n else if (!includeZero1 && !includeZero2) {\n // if in different side s1 * s2 < 0\n // s1 > 0 s2 < 0\n if (negative1 === 0 && positive2 === 0) {\n if (!inNoCrossDifferentSide(info1, info2)) {\n return;\n }\n }\n // s1 < 0 s2 > 0\n else if (negative2 === 0 && positive1 === 0) {\n if (!inNoCrossDifferentSide(info2, info1)) {\n return;\n }\n }\n\n // if in same side s1 * s2 > 0\n // both positive\n if (negative1 === 0 && negative2 === 0) {\n // make sure has zero\n if (domain1[0] === 0 && domain2[0] > 0) {\n if (!s2Extendable_min) {\n return;\n }\n domain2[0] = 0;\n } else if (domain2[0] === 0 && domain1[0] > 0) {\n if (!s1Extendable_min) {\n return;\n }\n domain1[0] = 0;\n } else {\n return;\n }\n }\n // both negative1\n if (positive1 === 0 && positive2 === 0) {\n // s1 has 0 in domain & s2 has not\n if (domain1[1] === 0 && domain2[1] > 0) {\n if (!s2Extendable_max) {\n return;\n }\n domain2[1] = 0;\n }\n // s2 has 0 in domain & s1 has not\n else if (domain2[1] === 0 && domain1[1] > 0) {\n if (!s1Extendable_max) {\n return;\n }\n domain1[1] = 0;\n } else {\n return;\n }\n }\n }\n // check one axis cross zero axis1\n else if (includeZero1 && !includeZero2) {\n if (!inDifferentCrossZero(info1, info2)) {\n return;\n }\n }\n // check one axis cross zero axis2\n else if (includeZero2 && !includeZero1) {\n if (!inDifferentCrossZero(info2, info1)) {\n return;\n }\n }\n // check of both of axis are cross zero\n else {\n // same percent of negative\n if (negative1 === negative2) {\n return;\n }\n // negative percent s1 > s2\n else if (negative1 > negative2) {\n if (!inAllCrossZero(info1, info2)) {\n return;\n }\n }\n // negative percent s1 < s2\n else {\n if (!inAllCrossZero(info2, info1)) {\n return;\n }\n }\n }\n s1.domain(domain1);\n s2.domain(domain2);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/axis-sync/zero-align-transform.ts"],"names":[],"mappings":"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","file":"zero-align-transform.js","sourcesContent":["import { isValidNumber, last } from '@visactor/vutils';\nimport { isContinuous } from '@visactor/vscale';\nimport type { CartesianAxis } from '../../../component';\nimport type { LinearAxisMixin } from '../../../component/axis/mixin/linear-axis-mixin';\n\ntype ScaleInfo = {\n total: number;\n negative: number;\n positive: number;\n includeZero: boolean;\n extendable_min: boolean;\n extendable_max: boolean;\n domain: number[];\n};\n\nexport function isValidAlignDomain(domain: number[]): boolean {\n return domain.length === 2 && isValidNumber(domain[0]) && isValidNumber(last(domain)) && last(domain) >= domain[0];\n}\n\nexport function getScaleInfo(axis: LinearAxisMixin, domain: number[]): ScaleInfo {\n // example: -10 -20 total = 10 negative = 10\n const total = last(domain) - domain[0];\n const includeZero = last(domain) * domain[0] < 0;\n let negative = domain[0] <= 0 ? 0 - domain[0] : 0;\n let positive = last(domain) > 0 ? last(domain) - 0 : 0;\n if (total === 0) {\n if (domain[0] < 0) {\n negative = 1;\n positive = 0;\n } else if (domain[0] > 0) {\n negative = 0;\n positive = 1;\n }\n } else {\n negative = negative / total;\n positive = positive / total;\n }\n const domainSpec = axis.getDomainSpec();\n return {\n total,\n negative,\n positive,\n includeZero,\n domain,\n extendable_min: !isValidNumber(domainSpec.min),\n extendable_max: !isValidNumber(domainSpec.max)\n };\n}\n\nfunction inDifferentCrossZero(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const {\n positive: positive1,\n negative: negative1,\n extendable_min: s1Extendable_min,\n extendable_max: s1Extendable_max,\n domain: domain1\n } = info1;\n const {\n positive: positive2,\n negative: negative2,\n extendable_min: s2Extendable_min,\n extendable_max: s2Extendable_max,\n domain: domain2\n } = info2;\n // make s2 percent same as s1\n if (positive2 > 0) {\n if (!s2Extendable_min) {\n return false;\n }\n let comp = negative1 / positive1;\n // if s1 could extend max, then expand s1\n // example:【0.5,0.5】 + 【0,1】 = 【0.5,1】\n if (s1Extendable_max) {\n // change s1 percent\n comp = negative1 / Math.max(positive1, positive2);\n domain1[1] = -domain1[0] / comp;\n }\n domain2[0] = -domain2[1] * comp;\n } else if (negative2 > 0) {\n if (!s2Extendable_max) {\n return false;\n }\n let comp = positive1 / negative1;\n // if s1 could extend max, then expand s1\n // example:【0.5,0.5】 + 【1,0】 = 【1,0.5】\n if (s1Extendable_min) {\n // change s1 percent\n comp = positive1 / Math.max(negative1, negative1);\n domain1[0] = -domain1[1] / comp;\n }\n domain2[1] = -domain2[0] * comp;\n }\n return true;\n}\n\nfunction inOnlyZeroDomain(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;\n const { positive: positive2, negative: negative2, domain: domain2 } = info2;\n // both [0,0]\n if (positive2 === 0 && negative2 === 0) {\n return false;\n }\n // 如果副轴 有正值部分 主轴无法正值扩展,跳过\n if (positive2 > 0 && !s1Extendable_max) {\n return false;\n }\n // 如果副轴 有负值部分 主轴无法负值扩展,跳过\n if (negative2 > 0 && !s1Extendable_min) {\n return false;\n }\n // 其他场景,将主轴设置为与副轴相同\n domain1[0] = domain2[0];\n domain1[1] = domain2[1];\n return true;\n}\n\nfunction inAllCrossZero(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { positive: positive1, negative: negative1, extendable_max: s1Extendable_max, domain: domain1 } = info1;\n const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, domain: domain2 } = info2;\n if (s1Extendable_max && s2Extendable_min) {\n // percent\n const comp = Math.max(negative1, negative2) / Math.max(positive1, positive2);\n domain1[1] = -domain1[0] / comp;\n domain2[0] = -domain2[1] * comp;\n }\n // only on side extendable\n else if (s2Extendable_min) {\n const comp = negative1 / positive1;\n domain2[0] = -domain2[1] * comp;\n } else if (s1Extendable_max) {\n const comp = negative2 / positive2;\n domain1[1] = -domain1[0] / comp;\n } else {\n // skip\n return false;\n }\n return true;\n}\n\nfunction inNoCrossDifferentSide(info1: ScaleInfo, info2: ScaleInfo): boolean {\n const { extendable_min: s1Extendable_min, domain: domain1 } = info1;\n const { extendable_max: s2Extendable_max, domain: domain2 } = info2;\n // extendable\n if (!s1Extendable_min || !s2Extendable_max) {\n return false;\n }\n domain1[0] = -domain1[1];\n domain2[1] = -domain2[0];\n return true;\n}\n\nexport const zeroAlign = (targetAxis: CartesianAxis, currentAxis: CartesianAxis) => {\n const s1 = targetAxis.getScale();\n const s2 = currentAxis.getScale();\n\n if (!s1 || !s2) {\n return;\n }\n\n const domain1 = (targetAxis as any).getDomainAfterSpec?.() ?? [0, 1];\n const domain2 = (currentAxis as any).getDomainAfterSpec?.() ?? [0, 1];\n\n if (!domain1 || !domain2 || !isValidAlignDomain(domain1) || !isValidAlignDomain(domain2)) {\n return;\n }\n\n // 先分别获取正负比例\n const info1 = getScaleInfo(<LinearAxisMixin>(<unknown>targetAxis), domain1);\n const info2 = getScaleInfo(<LinearAxisMixin>(<unknown>currentAxis), domain2);\n const {\n positive: positive1,\n negative: negative1,\n extendable_min: s1Extendable_min,\n extendable_max: s1Extendable_max,\n includeZero: includeZero1\n } = info1;\n const {\n positive: positive2,\n negative: negative2,\n extendable_min: s2Extendable_min,\n extendable_max: s2Extendable_max,\n includeZero: includeZero2\n } = info2;\n\n // first check [0,0]\n // axis 1 in [0,0]\n if (positive1 === 0 && negative1 === 0) {\n if (!inOnlyZeroDomain(info1, info2)) {\n return;\n }\n }\n // axis 2 in [0,0]\n else if (positive2 === 0 && negative2 === 0) {\n if (!inOnlyZeroDomain(info2, info1)) {\n return;\n }\n }\n // check of both of axis are not cross zero\n else if (!includeZero1 && !includeZero2) {\n // if in different side s1 * s2 < 0\n // s1 > 0 s2 < 0\n if (negative1 === 0 && positive2 === 0) {\n if (!inNoCrossDifferentSide(info1, info2)) {\n return;\n }\n }\n // s1 < 0 s2 > 0\n else if (negative2 === 0 && positive1 === 0) {\n if (!inNoCrossDifferentSide(info2, info1)) {\n return;\n }\n }\n\n // if in same side s1 * s2 > 0\n // both positive\n if (negative1 === 0 && negative2 === 0) {\n // make sure has zero\n if (domain1[0] === 0 && domain2[0] > 0) {\n if (!s2Extendable_min) {\n return;\n }\n domain2[0] = 0;\n } else if (domain2[0] === 0 && domain1[0] > 0) {\n if (!s1Extendable_min) {\n return;\n }\n domain1[0] = 0;\n } else {\n return;\n }\n }\n // both negative1\n if (positive1 === 0 && positive2 === 0) {\n // s1 has 0 in domain & s2 has not\n if (domain1[1] === 0 && domain2[1] > 0) {\n if (!s2Extendable_max) {\n return;\n }\n domain2[1] = 0;\n }\n // s2 has 0 in domain & s1 has not\n else if (domain2[1] === 0 && domain1[1] > 0) {\n if (!s1Extendable_max) {\n return;\n }\n domain1[1] = 0;\n } else {\n return;\n }\n }\n }\n // check one axis cross zero axis1\n else if (includeZero1 && !includeZero2) {\n if (!inDifferentCrossZero(info1, info2)) {\n return;\n }\n }\n // check one axis cross zero axis2\n else if (includeZero2 && !includeZero1) {\n if (!inDifferentCrossZero(info2, info1)) {\n return;\n }\n }\n // check of both of axis are cross zero\n else {\n // same percent of negative\n if (negative1 === negative2) {\n return;\n }\n // negative percent s1 > s2\n else if (negative1 > negative2) {\n if (!inAllCrossZero(info1, info2)) {\n return;\n }\n }\n // negative percent s1 < s2\n else {\n if (!inAllCrossZero(info2, info1)) {\n return;\n }\n }\n }\n s1.domain(domain1);\n s2.domain(domain2);\n};\n"]}
|
|
@@ -37,7 +37,7 @@ class BaseTooltipHandler extends base_plugin_1.BasePlugin {
|
|
|
37
37
|
changePositionOnly: changePositionOnly
|
|
38
38
|
})), 0;
|
|
39
39
|
}, this._getActualTooltipPosition = (actualTooltip, params, tooltipBoxSize) => {
|
|
40
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
41
41
|
const event = params.event, {tooltipSpec: tooltipSpec} = params, firstDimensionInfo = null === (_a = params.dimensionInfo) || void 0 === _a ? void 0 : _a[0], invalidPosition = {
|
|
42
42
|
x: 1 / 0,
|
|
43
43
|
y: 1 / 0
|
|
@@ -62,8 +62,8 @@ class BaseTooltipHandler extends base_plugin_1.BasePlugin {
|
|
|
62
62
|
if ((0, env_1.isTrueBrowser)(this._env) && !tooltipSpec.confine) {
|
|
63
63
|
if (containerSize.width = window.innerWidth, containerSize.height = window.innerHeight,
|
|
64
64
|
!isCanvas) {
|
|
65
|
-
tooltipParentElementRect = null !== (_f = null == tooltipParentElement ? void 0 : tooltipParentElement.getBoundingClientRect()) && void 0 !==
|
|
66
|
-
const chartElement = null !== (
|
|
65
|
+
tooltipParentElementRect = null !== (_g = null === (_f = null == tooltipParentElement ? void 0 : tooltipParentElement.getBoundingClientRect) || void 0 === _f ? void 0 : _f.call(tooltipParentElement)) && void 0 !== _g ? _g : invalidPosition;
|
|
66
|
+
const chartElement = null !== (_h = this._compiler.getCanvas()) && void 0 !== _h ? _h : this._chartContainer, chartElementRect = null == chartElement ? void 0 : chartElement.getBoundingClientRect();
|
|
67
67
|
relativePosOffset = {
|
|
68
68
|
x: chartElementRect.x - tooltipParentElementRect.x,
|
|
69
69
|
y: chartElementRect.y - tooltipParentElementRect.y
|