@visactor/vchart 2.0.23-alpha.4 → 2.0.23-alpha.6
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.es.js +32 -19
- package/build/index.js +32 -19
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.js +13 -7
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/radar/radar-transformer.js +4 -4
- package/cjs/chart/radar/radar-transformer.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.js +18 -7
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/interaction/triggers/element-active.js +2 -1
- package/cjs/interaction/triggers/element-active.js.map +1 -1
- package/esm/chart/base/base-chart.js +12 -7
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/radar/radar-transformer.js +4 -4
- package/esm/chart/radar/radar-transformer.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.js +18 -8
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/interaction/triggers/element-active.js +2 -1
- package/esm/interaction/triggers/element-active.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":"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","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr, IOptionWithCoordinates, IOptionRegr } from '../../../data/transforms/interface';\nimport { cartesianCoordinateLayout, positionLayout, xyLayout, getMarkLineProcessInfo } from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { array, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { CoordinateType, IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\nimport { markLine } from '../../../theme/builtin/common/component/mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian' as CoordinateType;\n\n static readonly builtInTheme = {\n markLine\n };\n\n protected declare _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n const { points, limitRect } = updateAttrs;\n if (!points || points.length < 2) {\n this._markerComponent?.setAttributes(updateAttrs);\n return;\n }\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue)\n };\n }\n\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const prevLabelAttrs = array(markerComponentAttr.label);\n const updateLabels = array(updateAttrs.label);\n const labelsInSpec = array(this._spec.label);\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: updateLabels.map((labelItem, index) => {\n let refX = 0;\n let refY = 0;\n let dx = labelPositionAttrs.dx ?? 0;\n let dy = labelPositionAttrs.dy ?? 0;\n const labelSpec = labelsInSpec[index] ?? labelsInSpec[0];\n if (isValidNumber(labelSpec?.refX)) {\n refX += labelSpec.refX;\n }\n if (isValidNumber(labelSpec?.refY)) {\n refY += labelSpec.refY;\n }\n if (isValidNumber(labelSpec?.dx)) {\n dx += labelSpec.dx;\n }\n if (isValidNumber(labelSpec?.dy)) {\n dy += labelSpec.dy;\n }\n return {\n ...labelItem,\n ...labelPositionAttrs,\n refX,\n refY,\n dx,\n dy,\n textStyle: {\n ...prevLabelAttrs[index]?.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n };\n }),\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr | IOptionWithCoordinates;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && isValid(spec.process.x)) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && isValid(spec.process.y)) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && isValid(spec.process.xy)) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-line/cartesian-mark-line.ts"],"names":[],"mappings":"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","file":"cartesian-mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IStepMarkLineSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr, IOptionWithCoordinates, IOptionRegr } from '../../../data/transforms/interface';\nimport { cartesianCoordinateLayout, positionLayout, xyLayout, getMarkLineProcessInfo } from '../utils';\nimport {\n type MarkLineAttrs,\n MarkLine as MarkLineComponent,\n registerMarkLineAnimate\n} from '@visactor/vrender-components';\nimport { array, isFunction, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IDataPos, IMarkProcessOptions } from '../interface';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { CoordinateType, IPoint } from '../../../typings';\nimport { BaseMarkLine } from './base-mark-line';\nimport { markLine } from '../../../theme/builtin/common/component/mark-line';\n\nexport class CartesianMarkLine extends BaseMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n static coordinateType = 'cartesian';\n coordinateType = 'cartesian' as CoordinateType;\n\n static readonly builtInTheme = {\n markLine\n };\n\n declare protected _markerComponent: MarkLineComponent;\n\n protected _newMarkLineComponent(attr: MarkLineAttrs): MarkLineComponent {\n return new MarkLineComponent(attr);\n }\n protected _computePointsAttr() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n let points: IPoint[] = [];\n if (\n doXProcess ||\n doXYY1Process ||\n doYProcess ||\n doYXX1Process ||\n doXYProcess ||\n (isValidCoordinates && isValidProcessX) ||\n (isValidCoordinates && isValidProcessY)\n ) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (doCoordinatesProcess) {\n points = cartesianCoordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n return { points };\n }\n\n protected _markerLayout() {\n const updateAttrs = this._getUpdateMarkerAttrs();\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection } = this._spec as IStepMarkLineSpec;\n let { expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n const { points, limitRect } = updateAttrs;\n const coordinatePoints = array(points as IPoint[]).filter(Boolean);\n\n if (isFunction(expandDistance)) {\n const startRegion = startRelativeSeries?.getRegion?.();\n const endRegion = endRelativeSeries?.getRegion?.();\n expandDistance = expandDistance(this._markerData, {\n ...this.getMarkAttributeContext(),\n region: this._relativeSeries?.getRegion?.(),\n startRegion,\n endRegion,\n coordinatePoints\n });\n }\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n\n if (!points || points.length < 2) {\n this._markerComponent?.setAttributes(updateAttrs);\n return;\n }\n\n const joinPoints = getInsertPoints(\n (points as IPoint[])[0],\n (points as IPoint[])[1],\n connectDirection,\n expandDistanceValue\n );\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset((points as IPoint[])[0], (points as IPoint[])[1], connectDirection, expandDistanceValue)\n };\n }\n\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const prevLabelAttrs = array(markerComponentAttr.label);\n const updateLabels = array(updateAttrs.label);\n const labelsInSpec = array(this._spec.label);\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: updateLabels.map((labelItem, index) => {\n let refX = 0;\n let refY = 0;\n let dx = labelPositionAttrs.dx ?? 0;\n let dy = labelPositionAttrs.dy ?? 0;\n const labelSpec = labelsInSpec[index] ?? labelsInSpec[0];\n if (isValidNumber(labelSpec?.refX)) {\n refX += labelSpec.refX;\n }\n if (isValidNumber(labelSpec?.refY)) {\n refY += labelSpec.refY;\n }\n if (isValidNumber(labelSpec?.dx)) {\n dx += labelSpec.dx;\n }\n if (isValidNumber(labelSpec?.dy)) {\n dy += labelSpec.dy;\n }\n return {\n ...labelItem,\n ...labelPositionAttrs,\n refX,\n refY,\n dx,\n dy,\n textStyle: {\n ...prevLabelAttrs[index]?.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n };\n }),\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n } as any);\n } else {\n this._markerComponent?.setAttributes(updateAttrs);\n }\n }\n\n protected _computeOptions(): IMarkProcessOptions {\n let options: IOptionAggr[] | IOptionRegr | IOptionWithCoordinates;\n let processData: DataView = this._getRelativeDataView();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n const spec: any = this._spec;\n const relativeSeries = this._relativeSeries;\n\n const { doXProcess, doYProcess, doXYY1Process, doYXX1Process, doXYProcess, doCoordinatesProcess } =\n getMarkLineProcessInfo(spec);\n\n if (doXYProcess) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doXProcess) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.x }])];\n } else if (doYProcess) {\n options = [this._processSpecByDims([{ dim: 'y', specValue: spec.y }])];\n } else if (doXYY1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y1 }\n ])\n ];\n } else if (doYXX1Process) {\n options = [\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x },\n { dim: 'y', specValue: spec.y }\n ]),\n this._processSpecByDims([\n { dim: 'x', specValue: spec.x1 },\n { dim: 'y', specValue: spec.y }\n ])\n ];\n } else if (doCoordinatesProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && isValid(spec.process.x)) {\n options = [this._processSpecByDims([{ dim: 'x', specValue: spec.process.x as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && isValid(spec.process.y)) {\n options = options = [this._processSpecByDims([{ dim: 'y', specValue: spec.process.y as unknown as IDataPos }])];\n needAggr = true;\n }\n if (spec.process && isValid(spec.process.xy)) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n return { options, needAggr, needRegr, processData };\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(CartesianMarkLine.type, CartesianMarkLine);\n registerMarkLineAnimate();\n};\n"]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { DataView } from '@visactor/vdataset';
|
|
1
2
|
import type { IComponent } from '../../../interface';
|
|
2
|
-
import type { IAggrType, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec, IMarkerCrossSeriesSpec, OffsetPoint, MarkerStateValue, MarkerStateCallback, IMarkerSupportSeries } from '../../interface';
|
|
3
|
+
import type { IAggrType, IMarkerAttributeContext, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec, IMarkerCrossSeriesSpec, OffsetPoint, MarkerStateValue, MarkerStateCallback, IMarkerSupportSeries } from '../../interface';
|
|
3
4
|
import type { IRegressType } from '../../mark-area/interface';
|
|
4
5
|
import type { IMarkLineTheme } from './theme';
|
|
5
6
|
import type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';
|
|
6
7
|
import type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';
|
|
8
|
+
import type { IRegion } from '../../../../region/interface';
|
|
7
9
|
export type IMarkLine = IComponent;
|
|
8
10
|
export type IMarkLineSpec = (IMarkerSpec & (IMarkLineXSpec | IMarkLineYSpec | IMarkLineXYSpec | IMarkLineXYY1Spec | IMarkLineYXX1Spec | IMarkLineAngleSpec | IMarkLineRadiusSpec | IMarkLineAngRadRad1Spec | IMarkLineRadAngAng1Spec | IMarkLineAngRadSpec | IMarkLineCoordinateSpec | IMarkerPositionsSpec) & IMarkLineTheme & BaseMarkerAnimation<MarkCommonLineAnimationType>) | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>);
|
|
9
11
|
export interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {
|
|
@@ -64,7 +66,12 @@ export type IMarkLineCoordinateSpec = {
|
|
|
64
66
|
export type IStepMarkLineSpec = IMarkerSpec & {
|
|
65
67
|
type: 'type-step';
|
|
66
68
|
connectDirection: 'top' | 'bottom' | 'left' | 'right';
|
|
67
|
-
expandDistance?: number | string
|
|
69
|
+
expandDistance?: number | string | ((markerData: DataView, context: IMarkerAttributeContext & {
|
|
70
|
+
region: IRegion;
|
|
71
|
+
startRegion: IRegion;
|
|
72
|
+
endRegion: IRegion;
|
|
73
|
+
coordinatePoints: IPoint[];
|
|
74
|
+
}) => number | string);
|
|
68
75
|
label?: IMarkerLabelSpec;
|
|
69
76
|
line?: {
|
|
70
77
|
multiSegment?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-line/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../../interface';\nimport type {\n IAggrType,\n IMarkerPositionsSpec,\n IDataPointSpec,\n IMarkerSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerLabelSpec,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n MarkerStateValue,\n MarkerStateCallback,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\nimport type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';\nimport type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';\n\nexport type IMarkLine = IComponent;\n\n/**\n * 辅助线配置,一般用于展示图表的趋势线、平均线等\n */\nexport type IMarkLineSpec =\n | (IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkLineXSpec\n | IMarkLineYSpec\n | IMarkLineXYSpec\n | IMarkLineXYY1Spec\n | IMarkLineYXX1Spec\n /**\n * 标注目标: 极坐标系\n * @since 1.11.0\n */\n | IMarkLineAngleSpec\n | IMarkLineRadiusSpec\n | IMarkLineAngRadRad1Spec\n | IMarkLineRadAngAng1Spec\n | IMarkLineAngRadSpec\n // 标注目标:数据元素\n | IMarkLineCoordinateSpec\n // 标注目标: 任意位置\n | IMarkerPositionsSpec\n ) &\n IMarkLineTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<MarkCommonLineAnimationType>)\n | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>); // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 x 属性,可以绘制一条贯穿 y 轴的标注线\n * x 轴上的参考线。可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYY1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 y 属性,可以绘制一条贯穿 x 轴的标注线\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYXX1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 y 轴上位置,可以配置参考线在 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的起点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线起始点在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线起始点在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadRad1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadAngAng1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n};\n\nexport type IStepMarkLineSpec = IMarkerSpec & {\n /**\n * 指定辅助线的连接类型,step 的连接方式为由交替的水平线和处置线组成的\n */\n type: 'type-step';\n /**\n * 线的链接方向\n */\n connectDirection: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 在连接方向的扩展距离。\n * number 类型为像素值\n * string 类型为百分比,相对于 region 区域宽度/高度的百分比,如 '30%'\n */\n expandDistance
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-line/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IComponent } from '../../../interface';\nimport type {\n IAggrType,\n IMarkerAttributeContext,\n IMarkerPositionsSpec,\n IDataPointSpec,\n IMarkerSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerLabelSpec,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n MarkerStateValue,\n MarkerStateCallback,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\nimport type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';\nimport type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';\nimport type { IRegion } from '../../../../region/interface';\n\nexport type IMarkLine = IComponent;\n\n/**\n * 辅助线配置,一般用于展示图表的趋势线、平均线等\n */\nexport type IMarkLineSpec =\n | (IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkLineXSpec\n | IMarkLineYSpec\n | IMarkLineXYSpec\n | IMarkLineXYY1Spec\n | IMarkLineYXX1Spec\n /**\n * 标注目标: 极坐标系\n * @since 1.11.0\n */\n | IMarkLineAngleSpec\n | IMarkLineRadiusSpec\n | IMarkLineAngRadRad1Spec\n | IMarkLineRadAngAng1Spec\n | IMarkLineAngRadSpec\n // 标注目标:数据元素\n | IMarkLineCoordinateSpec\n // 标注目标: 任意位置\n | IMarkerPositionsSpec\n ) &\n IMarkLineTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<MarkCommonLineAnimationType>)\n | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>); // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 x 属性,可以绘制一条贯穿 y 轴的标注线\n * x 轴上的参考线。可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYY1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 y 属性,可以绘制一条贯穿 x 轴的标注线\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYXX1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 y 轴上位置,可以配置参考线在 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的起点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线起始点在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线起始点在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadRad1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadAngAng1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n};\n\nexport type IStepMarkLineSpec = IMarkerSpec & {\n /**\n * 指定辅助线的连接类型,step 的连接方式为由交替的水平线和处置线组成的\n */\n type: 'type-step';\n /**\n * 线的链接方向\n */\n connectDirection: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 在连接方向的扩展距离。\n * number 类型为像素值\n * string 类型为百分比,相对于 region 区域宽度/高度的百分比,如 '30%'\n * 回调函数参数同 marker 其他回调,支持拿到 markerData 与上下文,\n * 并额外补充了 region/startRegion/endRegion 便于跨 region 计算,以及当前差异标注的坐标点。\n */\n expandDistance?:\n | number\n | string\n | ((\n markerData: DataView,\n context: IMarkerAttributeContext & {\n region: IRegion;\n startRegion: IRegion;\n endRegion: IRegion;\n coordinatePoints: IPoint[];\n }\n ) => number | string);\n /**\n * 标注线的标签样式\n */\n label?: IMarkerLabelSpec;\n /**\n * 标注线的线配置\n */\n line?: {\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n /**\n * 当进行多段配置时,可以通过数组的方式传入\n */\n style?: ILineMarkSpec | ILineMarkSpec[];\n state?: Record<\n MarkerStateValue,\n ILineMarkSpec | ILineMarkSpec[] | MarkerStateCallback<ILineMarkSpec | ILineMarkSpec[]>\n >;\n };\n} & Omit<IMarkLineTheme, 'label' | 'line'> &\n (\n | {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates:\n | [IDataPointSpec, IDataPointSpec]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IDataPointSpec, IDataPointSpec]);\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n }\n | {\n /**\n * 画布坐标\n * `positions` 自 1.12.0 版本开始支持回调函数\n */\n positions: [IPoint, IPoint] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IPoint, IPoint]);\n /**\n * 是否为相对 region 的坐标,默认为 false,即相对画布的坐标\n * @default false\n * @since 1.7.0\n */\n regionRelative?: boolean;\n }\n );\n"]}
|
|
@@ -38,7 +38,8 @@ export class ElementActive extends BaseTrigger {
|
|
|
38
38
|
}
|
|
39
39
|
reset(graphic) {
|
|
40
40
|
const {interaction: interaction, state: state} = this.options, statedGraphics = interaction.getStatedGraphics(this), g = null != graphic ? graphic : null == statedGraphics ? void 0 : statedGraphics[0];
|
|
41
|
-
g && statedGraphics.includes(g) && (g.removeState(state),
|
|
41
|
+
g && (null == statedGraphics ? void 0 : statedGraphics.includes(g)) && (g.removeState(state),
|
|
42
|
+
interaction.setStatedGraphics(this, statedGraphics.filter((sg => sg !== g))));
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interaction/triggers/element-active.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIhE,MAAM,cAAc,GAAmC;IACrD,KAAK,EAAE,gBAAgB,CAAC,YAAY;IACpC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,WAAkC;IAMnE,YAAY,OAA+B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QALjB,SAAI,oBAA4C;QAmDhD,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAnDA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IACS,SAAS;QACjB,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC1B,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B;YACD,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAE5C,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gBACvC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAExB,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAsB;QAC1B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5C,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/interaction/triggers/element-active.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIhE,MAAM,cAAc,GAAmC;IACrD,KAAK,EAAE,gBAAgB,CAAC,YAAY;IACpC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,WAAkC;IAMnE,YAAY,OAA+B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QALjB,SAAI,oBAA4C;QAmDhD,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAnDA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IACS,SAAS;QACjB,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC1B,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B;YACD,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAe;QACnB,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAE5C,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gBACvC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAExB,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAsB;QAC1B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5C,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAE;YACpC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,CAAC,iBAAiB,CAC3B,IAAI,EACJ,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CACtC,CAAC;SACH;IACH,CAAC;;AAlDM,kBAAI,oBAA4C;AAGhD,4BAAc,GAAG,cAAc,CAAC;AA0DzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxE,CAAC,CAAC","file":"element-active.js","sourcesContent":["import { Factory } from '../../core/factory';\nimport { BaseTrigger } from './base';\nimport type { IElementActiveOptions, ITrigger, ITriggerEventHandler } from '../interface/trigger';\nimport { TRIGGER_TYPE_ENUM } from './enum';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\nimport type { IMarkGraphic } from '../../mark/interface';\nimport type { BaseEventParams } from '../../event/interface';\n\nconst defaultOptions: Partial<IElementActiveOptions> = {\n state: STATE_VALUE_ENUM.STATE_ACTIVE,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n};\n\nexport class ElementActive extends BaseTrigger<IElementActiveOptions> implements ITrigger<IElementActiveOptions> {\n static type: string = TRIGGER_TYPE_ENUM.ELEMENT_ACTIVE;\n type: string = TRIGGER_TYPE_ENUM.ELEMENT_ACTIVE;\n\n static defaultOptions = defaultOptions;\n\n constructor(options?: IElementActiveOptions) {\n super(options);\n this.options = Object.assign({}, defaultOptions, options);\n\n this.updateMarkIdByState([this.options.state]);\n }\n protected getEvents(): Array<{ type: string | string[]; handler: ITriggerEventHandler }> {\n return [\n {\n type: this.options.trigger,\n handler: this.handleStart\n },\n { type: this.options.triggerOff, handler: this.handleReset }\n ];\n }\n\n getStartState(): string {\n return this.options.state;\n }\n\n start(g: IMarkGraphic) {\n if (g) {\n const { state, interaction } = this.options;\n\n if (this.isGraphicInStateMark(g, state)) {\n g.addState(state, true);\n\n interaction.setStatedGraphics(this, [g]);\n }\n }\n }\n\n reset(graphic?: IMarkGraphic) {\n const { interaction, state } = this.options;\n\n const statedGraphics = interaction.getStatedGraphics(this);\n const g = graphic ?? statedGraphics?.[0];\n\n if (g && statedGraphics?.includes(g)) {\n g.removeState(state);\n interaction.setStatedGraphics(\n this,\n statedGraphics.filter(sg => sg !== g)\n );\n }\n }\n\n handleStart = (e: BaseEventParams) => {\n this.start(e.item);\n };\n\n handleReset = (e: BaseEventParams) => {\n this.reset(e.item);\n };\n}\n\nexport const registerElementActive = () => {\n Factory.registerInteractionTrigger(ElementActive.type, ElementActive);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vchart",
|
|
3
|
-
"version": "2.0.23-alpha.
|
|
3
|
+
"version": "2.0.23-alpha.6",
|
|
4
4
|
"description": "charts lib based @visactor/VGrammar",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -85,10 +85,10 @@
|
|
|
85
85
|
"@size-limit/file": "9.0.0",
|
|
86
86
|
"rimraf": "3.0.2",
|
|
87
87
|
"cross-env": "^7.0.3",
|
|
88
|
-
"@internal/typescript-json-schema": "0.0.1",
|
|
89
|
-
"@internal/bundler": "0.0.1",
|
|
90
88
|
"@internal/eslint-config": "0.0.1",
|
|
91
|
-
"@internal/
|
|
89
|
+
"@internal/bundler": "0.0.1",
|
|
90
|
+
"@internal/ts-config": "0.0.1",
|
|
91
|
+
"@internal/typescript-json-schema": "0.0.1"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@visactor/vutils": "~1.0.23",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"@visactor/vrender-kits": "1.0.45",
|
|
100
100
|
"@visactor/vrender-components": "1.0.45",
|
|
101
101
|
"@visactor/vrender-animate": "1.0.45",
|
|
102
|
-
"@visactor/vutils-extension": "2.0.23-alpha.
|
|
102
|
+
"@visactor/vutils-extension": "2.0.23-alpha.6"
|
|
103
103
|
},
|
|
104
104
|
"publishConfig": {
|
|
105
105
|
"access": "public",
|