@visactor/vchart 1.12.13 → 1.12.14-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 +74 -60
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/compile/compilable-base.js +1 -2
- package/cjs/compile/compiler.js +2 -0
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +1 -0
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -0
- package/cjs/component/data-zoom/data-filter-base-component.js +2 -1
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/index.js +2 -1
- package/cjs/component/marker/base-marker.d.ts +4 -1
- package/cjs/component/marker/base-marker.js +12 -1
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +9 -2
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/base-mark-area.js +5 -5
- package/cjs/component/marker/mark-area/base-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/base-mark-line.js +9 -9
- package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/base-mark-point.js +16 -15
- package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +4 -4
- package/cjs/component/marker/utils.js +7 -7
- package/cjs/component/marker/utils.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/series/bar/bar.d.ts +2 -2
- package/cjs/series/bar/bar.js +15 -14
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/progress/linear/linear.js +4 -4
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/util/scale.d.ts +1 -1
- package/cjs/util/scale.js +2 -2
- package/cjs/util/scale.js.map +1 -1
- package/esm/compile/compilable-base.js +1 -2
- package/esm/compile/compiler.js +1 -0
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +1 -0
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -0
- package/esm/component/data-zoom/data-filter-base-component.js +2 -1
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/index.js +2 -1
- package/esm/component/marker/base-marker.d.ts +4 -1
- package/esm/component/marker/base-marker.js +12 -1
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/interface.d.ts +9 -2
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/base-mark-area.js +5 -5
- package/esm/component/marker/mark-area/base-mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/base-mark-line.js +9 -9
- package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/base-mark-point.js +15 -15
- package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +4 -4
- package/esm/component/marker/utils.js +8 -7
- package/esm/component/marker/utils.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/series/bar/bar.d.ts +2 -2
- package/esm/series/bar/bar.js +15 -14
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/progress/linear/linear.js +4 -4
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/util/scale.d.ts +1 -1
- package/esm/util/scale.js +2 -2
- package/esm/util/scale.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { ICartesianSeries, IGeoSeries, IPolarSeries, ISeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\nimport {\n isValid,\n isNumber,\n array,\n minInArray,\n maxInArray,\n isArray,\n normalizePadding,\n isFunction,\n type IPointLike\n} from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent, transformToGraphic } from '../../util';\nimport type {\n IDataPos,\n IMarkerLabelSpec,\n IMarkerState,\n IMarkerSupportSeries,\n IPolarPoint,\n MarkerPositionPoint,\n MarkerStateValue\n} from './interface';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IRegion } from '../../region/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { OffsetPoint } from './interface';\n\nfunction isNeedExtendDomain(domain: number[], datum: number, autoRange: boolean) {\n if (!autoRange) {\n return false;\n }\n const domainNum = domain.map((n: any) => n * 1);\n const min = minInArray(domainNum);\n const max = maxInArray(domainNum);\n if (datum < min || datum > max) {\n return true;\n }\n return false;\n}\n\nfunction getXValue(\n datum: Datum,\n xDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries },\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n (relativeSeries as ICartesianSeries)?.getXAxisHelper().setExtendDomain?.('marker_xAxis_extend', datum.x);\n let x: number;\n if (isPercent(datum.x)) {\n x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;\n } else {\n x = (relativeSeries as ICartesianSeries).getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;\n }\n\n return x;\n}\n\nfunction getYValue(\n datum: Datum,\n yDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries },\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n (relativeSeries as ICartesianSeries).getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', datum.y);\n\n let y: number;\n if (isPercent(datum.y)) {\n y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;\n } else {\n y = (relativeSeries as ICartesianSeries).getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\n}\n\nfunction getAngleValue(\n datum: Datum,\n angleDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries }\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.angle) &&\n isNeedExtendDomain(angleDomain, datum.angle, autoRange) &&\n (relativeSeries as IPolarSeries).angleAxisHelper?.setExtendDomain?.('marker_angleAxis_extend', datum.angle);\n\n return (relativeSeries as IPolarSeries).angleAxisHelper.dataToPosition([datum.angle]);\n}\n\nfunction getRadiusValue(\n datum: Datum,\n radiusDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries }\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.radius) &&\n isNeedExtendDomain(radiusDomain, datum.radius, autoRange) &&\n (relativeSeries as IPolarSeries).radiusAxisHelper?.setExtendDomain?.('marker_radiusAxis_extend', datum.radius);\n\n return (relativeSeries as IPolarSeries).radiusAxisHelper.dataToPosition([datum.radius]);\n}\n\nfunction convertPercentToValue(percent: string, relativeLength: number) {\n return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;\n}\n\nexport function isAggrSpec(spec: IDataPos) {\n return AGGR_TYPE.includes(spec as any);\n}\n\nexport function xyLayout(\n data: DataView,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean\n) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\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 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\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n\n const lines: IPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = (relativeSeries as ICartesianSeries).getXAxisHelper().getScale(0).domain();\n const yDomain = (relativeSeries as ICartesianSeries).getYAxisHelper().getScale(0).domain();\n dataPoints.forEach((datum: IPoint) => {\n const isValidX = isValid(datum.x);\n const isValidY = isValid(datum.y);\n if (isValidX && isValidY) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n lines.push([{ x, y }]);\n } else if (isValidX) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n );\n const y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x,\n y: y1\n }\n ]);\n } else if (isValidY) {\n const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n const x1 = Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n );\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x1,\n y: y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function polarLayout(\n data: DataView,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean\n) {\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n const lines: IPolarPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n\n const angleDomain = (relativeSeries as IPolarSeries).angleAxisHelper.getScale(0).domain();\n const radiusDomain = (relativeSeries as IPolarSeries).radiusAxisHelper.getScale(0).domain();\n const regionRadius = Math.min(\n relativeSeries.getRegion().getLayoutRect().width / 2,\n relativeSeries.getRegion().getLayoutRect().height / 2\n );\n dataPoints.forEach((datum: IPolarPoint) => {\n const isValidAngle = isValid(datum.angle);\n const isValidRadius = isValid(datum.radius);\n if (isValidAngle && isValidRadius) {\n const angle = getAngleValue(datum, angleDomain, autoRange, refSeries);\n const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);\n lines.push([{ angle, radius }]);\n } else if (isValidAngle) {\n const angle = getAngleValue(datum, angleDomain, autoRange, refSeries);\n lines.push([\n {\n angle,\n radius: -regionRadius\n },\n {\n angle,\n radius: regionRadius\n }\n ]);\n } else if (isValidRadius) {\n const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);\n lines.push([\n {\n radius,\n angle: 0\n },\n {\n radius,\n angle: Math.PI * 2\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function geoLayout(data: DataView, relativeSeries: IMarkerSupportSeries) {\n const lines: IPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n dataPoints.forEach((datum: any) => {\n const isValidName = isValid(datum.areaName);\n if (isValidName) {\n lines.push([\n {\n x:\n (relativeSeries as IGeoSeries).nameValueToPosition(datum.areaName).x +\n relativeSeries.getRegion().getLayoutStartPoint().x,\n y:\n (relativeSeries as IGeoSeries).nameValueToPosition(datum.areaName).y +\n relativeSeries.getRegion().getLayoutStartPoint().y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function cartesianCoordinateLayout(\n data: DataView,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean,\n coordinatesOffset: OffsetPoint[] | OffsetPoint\n) {\n const points: IPoint[] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const isArrayCoordinatesOffset = isArray(coordinatesOffset);\n dataPoints.forEach(\n (\n datum: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n },\n index: number\n ) => {\n const refRelativeSeries = (\n datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries\n ) as ICartesianSeries;\n const regionStart = refRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n\n const { width: regionWidth, height: regionHeight } = regionStart.getLayoutRect();\n\n let offsetX = 0;\n let offsetY = 0;\n if (coordinatesOffset) {\n const currentCoordinatesOffset = isArrayCoordinatesOffset ? coordinatesOffset[index] : coordinatesOffset;\n const x = currentCoordinatesOffset.x;\n const y = currentCoordinatesOffset.y;\n if (x) {\n offsetX = isPercent(x) ? (Number(x.substring(0, x.length - 1)) * regionWidth) / 100 : (x as number);\n }\n if (y) {\n offsetY = isPercent(y) ? (Number(y.substring(0, y.length - 1)) * regionHeight) / 100 : (y as number);\n }\n }\n\n const xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain();\n const xValue = array(datum.x);\n const yValue = array(datum.y);\n\n xValue.length === 1 &&\n isNumber(xValue[0]) &&\n isNeedExtendDomain(xDomain, xValue[0], autoRange) &&\n refRelativeSeries.getXAxisHelper()?.setExtendDomain?.('marker_xAxis_extend', xValue[0] as number);\n\n yValue.length === 1 &&\n isNumber(yValue[0]) &&\n isNeedExtendDomain(yDomain, yValue[0], autoRange) &&\n refRelativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', yValue[0] as number);\n points.push({\n x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,\n y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY\n });\n }\n );\n return points;\n}\n\nexport function polarCoordinateLayout(data: DataView, relativeSeries: IMarkerSupportSeries, autoRange: boolean) {\n const points: IPolarPoint[] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n dataPoints.forEach(\n (datum: {\n angle: StringOrNumber[] | StringOrNumber | null;\n radius: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n }) => {\n const refRelativeSeries = (\n datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries\n ) as IPolarSeries;\n\n const angleDomain = refRelativeSeries.angleAxisHelper.getScale(0).domain();\n const radiusDomain = refRelativeSeries.radiusAxisHelper.getScale(0).domain();\n const angleValue = array(datum.angle);\n const radiusValue = array(datum.radius);\n\n angleValue.length === 1 &&\n isNumber(angleValue[0]) &&\n isNeedExtendDomain(angleDomain, angleValue[0], autoRange) &&\n refRelativeSeries.angleAxisHelper?.setExtendDomain?.('marker_xAxis_extend', angleValue[0] as number);\n\n radiusValue.length === 1 &&\n isNumber(radiusValue[0]) &&\n isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) &&\n refRelativeSeries.radiusAxisHelper?.setExtendDomain?.('marker_yAxis_extend', radiusValue[0] as number);\n points.push({\n angle: refRelativeSeries.angleAxisHelper.dataToPosition(angleValue),\n radius: refRelativeSeries.radiusAxisHelper.dataToPosition(radiusValue)\n });\n }\n );\n return points;\n}\n\nfunction convertPosition(position: MarkerPositionPoint, relativeWidth: number, relativeHeight: number): IPoint {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, relativeWidth);\n }\n if (isPercent(y)) {\n y = convertPercentToValue(y, relativeHeight);\n }\n\n return {\n x: x as number,\n y: y as number\n };\n}\n\nexport function positionLayout(\n positions:\n | MarkerPositionPoint\n | MarkerPositionPoint[]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint)\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint[]),\n series: IMarkerSupportSeries,\n regionRelative: boolean\n): IPoint[] {\n let transformPositions;\n if (isFunction(positions)) {\n transformPositions = array(positions(series.getData().getLatestData(), series));\n } else {\n transformPositions = array(positions);\n }\n\n if (regionRelative) {\n const region = series.getRegion();\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n const { width: regionWidth, height: regionHeight } = region.getLayoutRect();\n return transformPositions.map(position => {\n let { x, y } = convertPosition(position, regionWidth, regionHeight);\n\n x = (x as number) + regionStartX;\n y = (y as number) + regionStartY;\n\n return {\n x,\n y\n };\n });\n }\n\n const { width: canvasWidth, height: canvasHeight } = series.getOption().getChart().getViewRect();\n return transformPositions.map(position => {\n return convertPosition(position, canvasWidth, canvasHeight);\n });\n}\n\nexport function computeClipRange(regions: IRegion[]) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n regions.forEach((region: IRegion) => {\n const regionPos = region.getLayoutStartPoint();\n const regionRect = region.getLayoutRect();\n if (regionPos.x < minX) {\n minX = regionPos.x;\n }\n if (regionPos.x + regionRect.width > maxX) {\n maxX = regionPos.x + regionRect.width;\n }\n if (regionPos.y < minY) {\n minY = regionPos.y;\n }\n if (regionPos.y + regionRect.height > maxY) {\n maxY = regionPos.y + regionRect.height;\n }\n });\n return { minX, maxX, minY, maxY };\n}\n\nexport function transformLabelAttributes(label: IMarkerLabelSpec, markerData: any) {\n const { labelBackground = {}, style, shape, ...restLabel } = label;\n\n if (label.visible !== false) {\n const labelAttrs = restLabel as any;\n\n if (shape?.visible) {\n labelAttrs.shape = {\n visible: true,\n ...transformToGraphic(shape.style)\n };\n } else {\n labelAttrs.shape = {\n visible: false\n };\n }\n\n if (labelBackground.visible !== false) {\n labelAttrs.panel = {\n visible: true,\n customShape: labelBackground.customShape,\n ...transformStyle(transformToGraphic(labelBackground.style), markerData)\n };\n if (isValid(labelBackground.padding)) {\n labelAttrs.padding = normalizePadding(labelBackground.padding);\n }\n } else {\n labelAttrs.panel = {\n visible: false\n };\n labelAttrs.padding = 0;\n }\n\n if (style) {\n labelAttrs.textStyle = transformStyle(transformToGraphic(style), markerData);\n }\n return labelAttrs;\n }\n return {\n visible: false\n };\n}\n\nexport function transformState(state: {} | Record<MarkerStateValue, any | IMarkerState<any>>, markerData: DataView) {\n for (const stateKey in state) {\n if (isFunction(state[stateKey])) {\n state[stateKey] = state[stateKey](markerData);\n }\n }\n return state;\n}\n\nexport function transformStyle(style: any, markerData: DataView) {\n if (isFunction(style)) {\n return style(markerData);\n }\n return style;\n}\n\nexport function transformOffset(offset: string | number | Function, region: IRegion) {\n if (isFunction(offset)) {\n return offset(region);\n }\n return offset;\n}\n\nexport function computeOffsetFromRegion(point: IPointLike, offset: string | number, region: IRegion): number {\n if (!isValid(point)) {\n return offset as number;\n }\n if (offset === 'regionLeft') {\n return region.getLayoutStartPoint().x - point.x;\n } else if (offset === 'regionRight') {\n return region.getLayoutStartPoint().x + region.getLayoutRect().width - point.x;\n } else if (offset === 'regionTop') {\n return region.getLayoutStartPoint().y - point.y;\n } else if (offset === 'regionBottom') {\n return region.getLayoutStartPoint().y + region.getLayoutRect().height - point.y;\n }\n return offset as number;\n}\n\nexport function getMarkLineProcessInfo(spec: any) {\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isX1Process = 'x1' in spec;\n const isY1Process = 'y1' in spec;\n const isAngleProcess = 'angle' in spec;\n const isRadiusProcess = 'radius' in spec;\n const isAngle1Process = 'angle1' in spec;\n const isRadius1Process = 'radius1' in spec;\n const isCoordinatesProcess = 'coordinates' in spec;\n const isValidProcess = 'process' in spec;\n\n return {\n doXProcess: isXProcess && !isYProcess && !isY1Process,\n doXYY1Process: isXProcess && isYProcess && isY1Process,\n doYProcess: isYProcess && !isXProcess && !isX1Process,\n doYXX1Process: isYProcess && isXProcess && isX1Process,\n doXYProcess: isXProcess && isYProcess && isX1Process && isY1Process,\n doAngleProcess: isAngleProcess && !isAngle1Process && !isRadiusProcess && !isRadius1Process,\n doRadiusProcess: isRadiusProcess && !isRadius1Process && !isAngleProcess && !isAngle1Process,\n doAngRadRad1Process: isAngleProcess && !isAngle1Process && isRadiusProcess && isRadius1Process,\n doRadAngAng1Process: isRadiusProcess && isAngleProcess && isAngle1Process && !isRadius1Process,\n doRadAngProcess: isAngleProcess && isRadiusProcess && isAngle1Process && isRadius1Process,\n doCoordinatesProcess: isCoordinatesProcess && (!isValidProcess || ('process' in spec && 'xy' in spec.process))\n };\n}\n\nexport function getMarkAreaProcessInfo(spec: any) {\n const isXProcess = 'x' in spec;\n const isX1Process = 'x1' in spec;\n const isYProcess = 'y' in spec;\n const isY1Process = 'y1' in spec;\n const isAngleProcess = 'angle' in spec;\n const isRadiusProcess = 'radius' in spec;\n const isAngle1Process = 'angle1' in spec;\n const isRadius1Process = 'radius1' in spec;\n const isCoordinatesProcess = 'coordinates' in spec;\n return {\n doXProcess: isXProcess && isX1Process && !isYProcess && !isY1Process,\n doYProcess: isYProcess && isY1Process && !isXProcess && !isX1Process,\n doXYProcess: isXProcess && isX1Process && isYProcess && isY1Process,\n doAngleProcess: isAngleProcess && isAngle1Process && !isRadiusProcess && !isRadius1Process,\n doRadiusProcess: isRadiusProcess && isRadius1Process && !isAngleProcess && !isAngle1Process,\n doRadAngProcess: isAngleProcess && isRadiusProcess && isAngle1Process && isRadius1Process,\n doCoordinatesProcess: isCoordinatesProcess\n };\n}\n\nexport function getMarkPointProcessInfo(spec: any) {\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isPolarProcess = isValid(spec.angle) && isValid(spec.radius);\n const isGeoProcess = isValid(spec.areaName);\n return {\n doXYProcess: isXYProcess,\n doPolarProcess: isPolarProcess,\n doGeoProcess: isGeoProcess\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { ICartesianSeries, IGeoSeries, IPolarSeries, ISeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\nimport {\n isValid,\n isNumber,\n array,\n minInArray,\n maxInArray,\n isArray,\n normalizePadding,\n isFunction,\n type IPointLike\n} from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent, transformToGraphic } from '../../util';\nimport type {\n IDataPos,\n IMarkerAttributeContext,\n IMarkerLabelSpec,\n IMarkerState,\n IMarkerSupportSeries,\n IPolarPoint,\n MarkerPositionPoint,\n MarkerStateValue\n} from './interface';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IRegion } from '../../region/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { OffsetPoint } from './interface';\n\nfunction isNeedExtendDomain(domain: number[], datum: number, autoRange: boolean) {\n if (!autoRange) {\n return false;\n }\n const domainNum = domain.map((n: any) => n * 1);\n const min = minInArray(domainNum);\n const max = maxInArray(domainNum);\n if (datum < min || datum > max) {\n return true;\n }\n return false;\n}\n\nfunction getXValue(\n datum: Datum,\n xDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries },\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n (relativeSeries as ICartesianSeries)?.getXAxisHelper().setExtendDomain?.('marker_xAxis_extend', datum.x);\n let x: number;\n if (isPercent(datum.x)) {\n x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;\n } else {\n x = (relativeSeries as ICartesianSeries).getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;\n }\n\n return x;\n}\n\nfunction getYValue(\n datum: Datum,\n yDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries },\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n (relativeSeries as ICartesianSeries).getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', datum.y);\n\n let y: number;\n if (isPercent(datum.y)) {\n y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;\n } else {\n y = (relativeSeries as ICartesianSeries).getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\n}\n\nfunction getAngleValue(\n datum: Datum,\n angleDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries }\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.angle) &&\n isNeedExtendDomain(angleDomain, datum.angle, autoRange) &&\n (relativeSeries as IPolarSeries).angleAxisHelper?.setExtendDomain?.('marker_angleAxis_extend', datum.angle);\n\n return (relativeSeries as IPolarSeries).angleAxisHelper.dataToPosition([datum.angle]);\n}\n\nfunction getRadiusValue(\n datum: Datum,\n radiusDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: IMarkerSupportSeries }\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.radius) &&\n isNeedExtendDomain(radiusDomain, datum.radius, autoRange) &&\n (relativeSeries as IPolarSeries).radiusAxisHelper?.setExtendDomain?.('marker_radiusAxis_extend', datum.radius);\n\n return (relativeSeries as IPolarSeries).radiusAxisHelper.dataToPosition([datum.radius]);\n}\n\nfunction convertPercentToValue(percent: string, relativeLength: number) {\n return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;\n}\n\nexport function isAggrSpec(spec: IDataPos) {\n return AGGR_TYPE.includes(spec as any);\n}\n\nexport function xyLayout(\n data: DataView,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean\n) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\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 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\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n\n const lines: IPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = (relativeSeries as ICartesianSeries).getXAxisHelper().getScale(0).domain();\n const yDomain = (relativeSeries as ICartesianSeries).getYAxisHelper().getScale(0).domain();\n dataPoints.forEach((datum: IPoint) => {\n const isValidX = isValid(datum.x);\n const isValidY = isValid(datum.y);\n if (isValidX && isValidY) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n lines.push([{ x, y }]);\n } else if (isValidX) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n );\n const y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x,\n y: y1\n }\n ]);\n } else if (isValidY) {\n const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n const x1 = Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n );\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x1,\n y: y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function polarLayout(\n data: DataView,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean\n) {\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n const lines: IPolarPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n\n const angleDomain = (relativeSeries as IPolarSeries).angleAxisHelper.getScale(0).domain();\n const radiusDomain = (relativeSeries as IPolarSeries).radiusAxisHelper.getScale(0).domain();\n const regionRadius = Math.min(\n relativeSeries.getRegion().getLayoutRect().width / 2,\n relativeSeries.getRegion().getLayoutRect().height / 2\n );\n dataPoints.forEach((datum: IPolarPoint) => {\n const isValidAngle = isValid(datum.angle);\n const isValidRadius = isValid(datum.radius);\n if (isValidAngle && isValidRadius) {\n const angle = getAngleValue(datum, angleDomain, autoRange, refSeries);\n const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);\n lines.push([{ angle, radius }]);\n } else if (isValidAngle) {\n const angle = getAngleValue(datum, angleDomain, autoRange, refSeries);\n lines.push([\n {\n angle,\n radius: -regionRadius\n },\n {\n angle,\n radius: regionRadius\n }\n ]);\n } else if (isValidRadius) {\n const radius = getRadiusValue(datum, radiusDomain, autoRange, refSeries);\n lines.push([\n {\n radius,\n angle: 0\n },\n {\n radius,\n angle: Math.PI * 2\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function geoLayout(data: DataView, relativeSeries: IMarkerSupportSeries) {\n const lines: IPoint[][] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n dataPoints.forEach((datum: any) => {\n const isValidName = isValid(datum.areaName);\n if (isValidName) {\n lines.push([\n {\n x:\n (relativeSeries as IGeoSeries).nameValueToPosition(datum.areaName).x +\n relativeSeries.getRegion().getLayoutStartPoint().x,\n y:\n (relativeSeries as IGeoSeries).nameValueToPosition(datum.areaName).y +\n relativeSeries.getRegion().getLayoutStartPoint().y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function cartesianCoordinateLayout(\n data: DataView,\n relativeSeries: IMarkerSupportSeries,\n autoRange: boolean,\n coordinatesOffset: OffsetPoint[] | OffsetPoint\n) {\n const points: IPoint[] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const isArrayCoordinatesOffset = isArray(coordinatesOffset);\n dataPoints.forEach(\n (\n datum: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n },\n index: number\n ) => {\n const refRelativeSeries = (\n datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries\n ) as ICartesianSeries;\n const regionStart = refRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n\n const { width: regionWidth, height: regionHeight } = regionStart.getLayoutRect();\n\n let offsetX = 0;\n let offsetY = 0;\n if (coordinatesOffset) {\n const currentCoordinatesOffset = isArrayCoordinatesOffset ? coordinatesOffset[index] : coordinatesOffset;\n const x = currentCoordinatesOffset.x;\n const y = currentCoordinatesOffset.y;\n if (x) {\n offsetX = isPercent(x) ? (Number(x.substring(0, x.length - 1)) * regionWidth) / 100 : (x as number);\n }\n if (y) {\n offsetY = isPercent(y) ? (Number(y.substring(0, y.length - 1)) * regionHeight) / 100 : (y as number);\n }\n }\n\n const xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain();\n const xValue = array(datum.x);\n const yValue = array(datum.y);\n\n xValue.length === 1 &&\n isNumber(xValue[0]) &&\n isNeedExtendDomain(xDomain, xValue[0], autoRange) &&\n refRelativeSeries.getXAxisHelper()?.setExtendDomain?.('marker_xAxis_extend', xValue[0] as number);\n\n yValue.length === 1 &&\n isNumber(yValue[0]) &&\n isNeedExtendDomain(yDomain, yValue[0], autoRange) &&\n refRelativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', yValue[0] as number);\n points.push({\n x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,\n y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY\n });\n }\n );\n return points;\n}\n\nexport function polarCoordinateLayout(data: DataView, relativeSeries: IMarkerSupportSeries, autoRange: boolean) {\n const points: IPolarPoint[] = [];\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n dataPoints.forEach(\n (datum: {\n angle: StringOrNumber[] | StringOrNumber | null;\n radius: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n }) => {\n const refRelativeSeries = (\n datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries\n ) as IPolarSeries;\n\n const angleDomain = refRelativeSeries.angleAxisHelper.getScale(0).domain();\n const radiusDomain = refRelativeSeries.radiusAxisHelper.getScale(0).domain();\n const angleValue = array(datum.angle);\n const radiusValue = array(datum.radius);\n\n angleValue.length === 1 &&\n isNumber(angleValue[0]) &&\n isNeedExtendDomain(angleDomain, angleValue[0], autoRange) &&\n refRelativeSeries.angleAxisHelper?.setExtendDomain?.('marker_xAxis_extend', angleValue[0] as number);\n\n radiusValue.length === 1 &&\n isNumber(radiusValue[0]) &&\n isNeedExtendDomain(radiusDomain, radiusValue[0], autoRange) &&\n refRelativeSeries.radiusAxisHelper?.setExtendDomain?.('marker_yAxis_extend', radiusValue[0] as number);\n points.push({\n angle: refRelativeSeries.angleAxisHelper.dataToPosition(angleValue),\n radius: refRelativeSeries.radiusAxisHelper.dataToPosition(radiusValue)\n });\n }\n );\n return points;\n}\n\nfunction convertPosition(position: MarkerPositionPoint, relativeWidth: number, relativeHeight: number): IPoint {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, relativeWidth);\n }\n if (isPercent(y)) {\n y = convertPercentToValue(y, relativeHeight);\n }\n\n return {\n x: x as number,\n y: y as number\n };\n}\n\nexport function positionLayout(\n positions:\n | MarkerPositionPoint\n | MarkerPositionPoint[]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint)\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint[]),\n series: IMarkerSupportSeries,\n regionRelative: boolean\n): IPoint[] {\n let transformPositions;\n if (isFunction(positions)) {\n transformPositions = array(positions(series.getData().getLatestData(), series));\n } else {\n transformPositions = array(positions);\n }\n\n if (regionRelative) {\n const region = series.getRegion();\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n const { width: regionWidth, height: regionHeight } = region.getLayoutRect();\n return transformPositions.map(position => {\n let { x, y } = convertPosition(position, regionWidth, regionHeight);\n\n x = (x as number) + regionStartX;\n y = (y as number) + regionStartY;\n\n return {\n x,\n y\n };\n });\n }\n\n const { width: canvasWidth, height: canvasHeight } = series.getOption().getChart().getViewRect();\n return transformPositions.map(position => {\n return convertPosition(position, canvasWidth, canvasHeight);\n });\n}\n\nexport function computeClipRange(regions: IRegion[]) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n regions.forEach((region: IRegion) => {\n const regionPos = region.getLayoutStartPoint();\n const regionRect = region.getLayoutRect();\n if (regionPos.x < minX) {\n minX = regionPos.x;\n }\n if (regionPos.x + regionRect.width > maxX) {\n maxX = regionPos.x + regionRect.width;\n }\n if (regionPos.y < minY) {\n minY = regionPos.y;\n }\n if (regionPos.y + regionRect.height > maxY) {\n maxY = regionPos.y + regionRect.height;\n }\n });\n return { minX, maxX, minY, maxY };\n}\n\nexport function transformLabelAttributes(\n label: IMarkerLabelSpec,\n markerData: any,\n markAttributeContext: IMarkerAttributeContext\n) {\n const { labelBackground = {}, style, shape, ...restLabel } = label;\n\n if (label.visible !== false) {\n const labelAttrs = restLabel as any;\n\n if (shape?.visible) {\n labelAttrs.shape = {\n visible: true,\n ...transformToGraphic(shape.style)\n };\n } else {\n labelAttrs.shape = {\n visible: false\n };\n }\n\n if (labelBackground.visible !== false) {\n labelAttrs.panel = {\n visible: true,\n customShape: labelBackground.customShape,\n ...transformStyle(transformToGraphic(labelBackground.style), markerData, markAttributeContext)\n };\n if (isValid(labelBackground.padding)) {\n labelAttrs.padding = normalizePadding(labelBackground.padding);\n }\n } else {\n labelAttrs.panel = {\n visible: false\n };\n labelAttrs.padding = 0;\n }\n\n if (style) {\n labelAttrs.textStyle = transformStyle(transformToGraphic(style), markerData, markAttributeContext);\n }\n return labelAttrs;\n }\n return {\n visible: false\n };\n}\n\nexport function transformState(\n state: {} | Record<MarkerStateValue, any | IMarkerState<any>>,\n markerData: DataView,\n markerAttributeContext: IMarkerAttributeContext\n) {\n for (const stateKey in state) {\n if (isFunction(state[stateKey])) {\n state[stateKey] = state[stateKey](markerData, markerAttributeContext);\n }\n }\n return state;\n}\n\nexport function transformStyle(style: any, markerData: DataView, markerAttributeContext: IMarkerAttributeContext) {\n if (isFunction(style)) {\n return style(markerData, markerAttributeContext);\n }\n return style;\n}\n\nexport function transformOffset(offset: string | number | Function, region: IRegion) {\n if (isFunction(offset)) {\n return offset(region);\n }\n return offset;\n}\n\nexport function computeOffsetFromRegion(point: IPointLike, offset: string | number, region: IRegion): number {\n if (!isValid(point)) {\n return offset as number;\n }\n if (offset === 'regionLeft') {\n return region.getLayoutStartPoint().x - point.x;\n } else if (offset === 'regionRight') {\n return region.getLayoutStartPoint().x + region.getLayoutRect().width - point.x;\n } else if (offset === 'regionTop') {\n return region.getLayoutStartPoint().y - point.y;\n } else if (offset === 'regionBottom') {\n return region.getLayoutStartPoint().y + region.getLayoutRect().height - point.y;\n }\n return offset as number;\n}\n\nexport function getMarkLineProcessInfo(spec: any) {\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isX1Process = 'x1' in spec;\n const isY1Process = 'y1' in spec;\n const isAngleProcess = 'angle' in spec;\n const isRadiusProcess = 'radius' in spec;\n const isAngle1Process = 'angle1' in spec;\n const isRadius1Process = 'radius1' in spec;\n const isCoordinatesProcess = 'coordinates' in spec;\n const isValidProcess = 'process' in spec;\n\n return {\n doXProcess: isXProcess && !isYProcess && !isY1Process,\n doXYY1Process: isXProcess && isYProcess && isY1Process,\n doYProcess: isYProcess && !isXProcess && !isX1Process,\n doYXX1Process: isYProcess && isXProcess && isX1Process,\n doXYProcess: isXProcess && isYProcess && isX1Process && isY1Process,\n doAngleProcess: isAngleProcess && !isAngle1Process && !isRadiusProcess && !isRadius1Process,\n doRadiusProcess: isRadiusProcess && !isRadius1Process && !isAngleProcess && !isAngle1Process,\n doAngRadRad1Process: isAngleProcess && !isAngle1Process && isRadiusProcess && isRadius1Process,\n doRadAngAng1Process: isRadiusProcess && isAngleProcess && isAngle1Process && !isRadius1Process,\n doRadAngProcess: isAngleProcess && isRadiusProcess && isAngle1Process && isRadius1Process,\n doCoordinatesProcess: isCoordinatesProcess && (!isValidProcess || ('process' in spec && 'xy' in spec.process))\n };\n}\n\nexport function getMarkAreaProcessInfo(spec: any) {\n const isXProcess = 'x' in spec;\n const isX1Process = 'x1' in spec;\n const isYProcess = 'y' in spec;\n const isY1Process = 'y1' in spec;\n const isAngleProcess = 'angle' in spec;\n const isRadiusProcess = 'radius' in spec;\n const isAngle1Process = 'angle1' in spec;\n const isRadius1Process = 'radius1' in spec;\n const isCoordinatesProcess = 'coordinates' in spec;\n return {\n doXProcess: isXProcess && isX1Process && !isYProcess && !isY1Process,\n doYProcess: isYProcess && isY1Process && !isXProcess && !isX1Process,\n doXYProcess: isXProcess && isX1Process && isYProcess && isY1Process,\n doAngleProcess: isAngleProcess && isAngle1Process && !isRadiusProcess && !isRadius1Process,\n doRadiusProcess: isRadiusProcess && isRadius1Process && !isAngleProcess && !isAngle1Process,\n doRadAngProcess: isAngleProcess && isRadiusProcess && isAngle1Process && isRadius1Process,\n doCoordinatesProcess: isCoordinatesProcess\n };\n}\n\nexport function getMarkPointProcessInfo(spec: any) {\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isPolarProcess = isValid(spec.angle) && isValid(spec.radius);\n const isGeoProcess = isValid(spec.areaName);\n return {\n doXYProcess: isXYProcess,\n doPolarProcess: isPolarProcess,\n doGeoProcess: isGeoProcess\n };\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.14-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.14-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,
|
|
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,iBAAiB,CAAC;AAMzC,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.14-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"]}
|
package/cjs/series/bar/bar.d.ts
CHANGED
|
@@ -40,8 +40,8 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
|
|
|
40
40
|
protected _dataToPosX1(datum: Datum): number;
|
|
41
41
|
protected _dataToPosY(datum: Datum): number;
|
|
42
42
|
protected _dataToPosY1(datum: Datum): number;
|
|
43
|
-
protected _getBarXStart: (datum: Datum, scale: IBaseScale) => any;
|
|
44
|
-
protected _getBarXEnd: (datum: Datum, scale: IBaseScale) => any;
|
|
43
|
+
protected _getBarXStart: (datum: Datum, scale: IBaseScale, useWholeRange?: boolean) => any;
|
|
44
|
+
protected _getBarXEnd: (datum: Datum, scale: IBaseScale, useWholeRange?: boolean) => any;
|
|
45
45
|
protected _getBarYStart: (datum: Datum, scale: IBaseScale) => any;
|
|
46
46
|
protected _getBarYEnd: (datum: Datum, scale: IBaseScale) => any;
|
|
47
47
|
initBandRectMarkStyle(): void;
|
package/cjs/series/bar/bar.js
CHANGED
|
@@ -12,10 +12,10 @@ class BarSeries extends cartesian_1.CartesianSeries {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments), this.type = type_1.SeriesTypeEnum.bar, this._barMarkName = "bar",
|
|
14
14
|
this._barMarkType = "rect", this.transformerConstructor = bar_transformer_1.BarSeriesSpecTransformer,
|
|
15
|
-
this._bandPosition = 0, this._getBarXStart = (datum, scale) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
16
|
-
datum[constant_2.RECT_X]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !1) : (0,
|
|
17
|
-
scale_1.valueInScaleRange)(this._dataToPosX(datum), scale), this._getBarXEnd = (datum, scale) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
18
|
-
datum[constant_2.RECT_X1]) : (0, scale_1.valueInScaleRange)(this._dataToPosX1(datum), scale),
|
|
15
|
+
this._bandPosition = 0, this._getBarXStart = (datum, scale, useWholeRange) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
16
|
+
datum[constant_2.RECT_X]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !1, useWholeRange) : (0,
|
|
17
|
+
scale_1.valueInScaleRange)(this._dataToPosX(datum), scale, useWholeRange), this._getBarXEnd = (datum, scale, useWholeRange) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
18
|
+
datum[constant_2.RECT_X1]) : (0, scale_1.valueInScaleRange)(this._dataToPosX1(datum), scale, useWholeRange),
|
|
19
19
|
this._getBarYStart = (datum, scale) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
20
20
|
datum[constant_2.RECT_Y]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !0) : (0,
|
|
21
21
|
scale_1.valueInScaleRange)(this._dataToPosY(datum), scale), this._getBarYEnd = (datum, scale) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
@@ -187,13 +187,14 @@ class BarSeries extends cartesian_1.CartesianSeries {
|
|
|
187
187
|
axisHelper: axisHelper
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
|
-
_calculateRectPosition(datum, isVertical) {
|
|
190
|
+
_calculateRectPosition(datum, isVertical, useWholeRange) {
|
|
191
191
|
var _a, _b;
|
|
192
192
|
let startMethod, endMethod, axisHelper;
|
|
193
193
|
isVertical ? (startMethod = "_dataToPosY1", endMethod = "_dataToPosY", axisHelper = "_yAxisHelper") : (startMethod = "_dataToPosX1",
|
|
194
194
|
endMethod = "_dataToPosX", axisHelper = "_xAxisHelper");
|
|
195
195
|
const seriesScale = null === (_b = (_a = this[axisHelper]).getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), inverse = this[axisHelper].isInverse(), barMinHeight = this._spec.barMinHeight, y1 = (0,
|
|
196
|
-
scale_1.valueInScaleRange)(this[startMethod](datum), seriesScale), y = (0,
|
|
196
|
+
scale_1.valueInScaleRange)(this[startMethod](datum), seriesScale, useWholeRange), y = (0,
|
|
197
|
+
scale_1.valueInScaleRange)(this[endMethod](datum), seriesScale, useWholeRange);
|
|
197
198
|
let height = Math.abs(y1 - y);
|
|
198
199
|
height < barMinHeight && (height = barMinHeight);
|
|
199
200
|
let flag = 1;
|
|
@@ -278,25 +279,25 @@ class BarSeries extends cartesian_1.CartesianSeries {
|
|
|
278
279
|
const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
|
|
279
280
|
if ("horizontal" === this.direction) {
|
|
280
281
|
const yChannels = (0, vutils_1.isValid)(this._fieldY2) ? {
|
|
281
|
-
y: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY(datum), yScale),
|
|
282
|
-
y1: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY1(datum), yScale)
|
|
282
|
+
y: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY(datum), yScale, !0),
|
|
283
|
+
y1: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY1(datum), yScale, !0)
|
|
283
284
|
} : {
|
|
284
|
-
y: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale),
|
|
285
|
+
y: datum => (0, scale_1.valueInScaleRange)(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale, !0),
|
|
285
286
|
height: datum => this._getBarWidth(this._yAxisHelper)
|
|
286
287
|
};
|
|
287
288
|
this.setMarkStyle(this._barMark, Object.assign({
|
|
288
|
-
x: datum => this._getBarXStart(datum, xScale),
|
|
289
|
-
x1: datum => this._getBarXEnd(datum, xScale)
|
|
289
|
+
x: datum => this._getBarXStart(datum, xScale, !0),
|
|
290
|
+
x1: datum => this._getBarXEnd(datum, xScale, !0)
|
|
290
291
|
}, yChannels), "normal", attribute_1.AttributeLevel.Series), this.setMarkStyle(this._barBackgroundMark, Object.assign({
|
|
291
292
|
x: () => this._getBarBackgroundXStart(xScale),
|
|
292
293
|
x1: () => this._getBarBackgroundXEnd(xScale)
|
|
293
294
|
}, yChannels), "normal", attribute_1.AttributeLevel.Series);
|
|
294
295
|
} else {
|
|
295
296
|
const xChannels = (0, vutils_1.isValid)(this._fieldX2) ? {
|
|
296
|
-
x: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX(datum), xScale),
|
|
297
|
-
x1: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX1(datum), xScale)
|
|
297
|
+
x: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX(datum), xScale, !0),
|
|
298
|
+
x1: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX1(datum), xScale, !0)
|
|
298
299
|
} : {
|
|
299
|
-
x: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale),
|
|
300
|
+
x: datum => (0, scale_1.valueInScaleRange)(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale, !0),
|
|
300
301
|
width: datum => this._getBarWidth(this._xAxisHelper)
|
|
301
302
|
};
|
|
302
303
|
this.setMarkStyle(this._barMark, Object.assign(Object.assign({}, xChannels), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/bar/bar.ts"],"names":[],"mappings":"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","file":"bar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IBaseScale } from '@visactor/vscale';\nimport { isContinuous } from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport {\n DEFAULT_DATA_KEY,\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT\n} from '../../constant/data';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { Datum, DirectionType } from '../../typings';\nimport { valueInScaleRange } from '../../util/scale';\nimport { getRegionStackGroup } from '../../util/data';\nimport { getActualNumValue } from '../../util/space';\nimport type { BarAppearPreset, IBarAnimationParams } from './animation';\nimport { registerBarAnimation } from './animation';\nimport { animationConfig, shouldMarkDoMorph, userAnimationConfig } from '../../animation/utils';\nimport type { IBarSeriesSpec } from './interface';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { IModelInitOption } from '../../model/interface';\nimport type { ITextMark } from '../../mark/text';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { registerRectMark } from '../../mark/rect';\nimport { array, isFunction, isNil, isValid, last } from '@visactor/vutils';\nimport { barSeriesMark } from './constant';\nimport { stackWithMinHeight } from '../util/stack';\nimport { Factory } from '../../core/factory';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { SeriesData } from '../base/series-data';\nimport { DataView } from '@visactor/vdataset';\nimport { addVChartProperty } from '../../data/transforms/add-property';\nimport { addDataKey, initKeyMap } from '../../data/transforms/data-key';\nimport { registerSampleTransform } from '@visactor/vgrammar-core';\nimport { getGroupAnimationParams } from '../util/utils';\nimport { BarSeriesSpecTransformer } from './bar-transformer';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { RECT_X, RECT_X1, RECT_Y, RECT_Y1 } from '../base/constant';\nimport { createRect } from '@visactor/vrender-core';\nimport { registerCartesianLinearAxis, registerCartesianBandAxis } from '../../component/axis/cartesian';\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\n\nexport class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.bar;\n type = SeriesTypeEnum.bar;\n protected _barMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.bar;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n\n static readonly mark: SeriesMarkMap = barSeriesMark;\n static readonly transformerConstructor = BarSeriesSpecTransformer as any;\n readonly transformerConstructor = BarSeriesSpecTransformer;\n\n protected _bandPosition = 0;\n protected _barMark!: IRectMark;\n protected _barBackgroundMark!: IRectMark;\n\n protected _barBackgroundViewData: SeriesData;\n\n initMark(): void {\n this._initBarBackgroundMark();\n\n this._barMark = this._createMark(\n {\n ...BarSeries.mark.bar,\n name: this._barMarkName,\n type: this._barMarkType\n },\n {\n groupKey: this._seriesField,\n isSeriesMark: true,\n stateSort: this._spec.bar?.stateSort\n },\n {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold,\n morphElementKey: this.getDimensionField()[0],\n morph: shouldMarkDoMorph(this._spec, this._barMarkName),\n setCustomizedShape: this._spec.bar?.customShape\n }\n ) as IRectMark;\n }\n\n protected _initBarBackgroundMark(): void {\n if (this._spec.barBackground && this._spec.barBackground.visible) {\n this._barBackgroundMark = this._createMark(\n BarSeries.mark.barBackground,\n {\n dataView: this._barBackgroundViewData.getDataView(),\n dataProductId: this._barBackgroundViewData.getProductId(),\n stateSort: this._spec.barBackground.stateSort\n },\n {\n setCustomizedShape: this._spec.barBackground.customShape,\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n }\n ) as IRectMark;\n }\n }\n\n initMarkStyle(): void {\n if (this._barMark) {\n this.setMarkStyle(\n this._barMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n });\n }\n\n protected initTooltip() {\n super.initTooltip();\n const { mark, group } = this._tooltipHelper.activeTriggerSet;\n if (this._barMark) {\n mark.add(this._barMark);\n group.add(this._barMark);\n }\n }\n\n protected _statisticViewData(): void {\n super._statisticViewData();\n\n const spec = this._spec.barBackground ?? {};\n if (!spec.visible) {\n return;\n }\n\n const hasBandAxis = this._getRelatedComponentSpecInfo('axes').some(\n axisInfo => axisInfo.type === ComponentTypeEnum.cartesianBandAxis\n );\n\n let barBackgroundData: DataView;\n registerDataSetInstanceTransform(this._option.dataSet, 'addVChartProperty', addVChartProperty);\n\n if (hasBandAxis) {\n type DimensionItemsConfig = { scaleDepth?: number };\n\n /**\n * @description 准备 barBackground 数据(离散轴)\n */\n const dimensionItems = ([data]: DataView[], { scaleDepth }: DimensionItemsConfig) => {\n let dataCollect: Datum[] = [{}];\n const fields = this.getDimensionField();\n // 将维度轴的所有层级 field 的对应数据做笛卡尔积\n const depth = isNil(scaleDepth) ? fields.length : Math.min(fields.length, scaleDepth);\n for (let i = 0; i < depth; i++) {\n const field = fields[i];\n const values = data.latestData[field]?.values;\n if (!values?.length) {\n continue;\n }\n const newDataCollect: Datum[] = [];\n const dataKey = (this._spec.dataKey as string) ?? DEFAULT_DATA_KEY;\n for (let j = 0; j < values.length; j++) {\n for (let k = 0; k < dataCollect.length; k++) {\n newDataCollect.push({\n ...dataCollect[k],\n [field]: values[j],\n [dataKey]: values[j]\n });\n }\n }\n dataCollect = newDataCollect;\n }\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'dimensionItems', dimensionItems);\n\n barBackgroundData = new DataView(this._option.dataSet)\n .parse([this._viewDataStatistics], {\n type: 'dataview'\n })\n .transform(\n {\n type: 'dimensionItems',\n options: {\n scaleDepth: isNil(spec.fieldLevel) ? undefined : spec.fieldLevel + 1\n } as DimensionItemsConfig\n },\n false\n )\n .transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap.bind(this),\n call: addDataKey\n }\n },\n false\n );\n\n this._viewDataStatistics?.target.addListener('change', barBackgroundData.reRunAllTransform);\n } else {\n /**\n * @description 准备 barBackground 数据(连续轴)\n */\n const dimensionItems = ([data]: DataView[]) => {\n const dataCollect: Datum[] = [];\n const [field0, field1] = this.getDimensionContinuousField();\n const map: Record<string, Datum> = {};\n viewData.latestData.forEach((datum: Datum) => {\n const key = `${datum[field0]}-${datum[field1]}`;\n if (!map[key]) {\n map[key] = {\n [field0]: datum[field0],\n [field1]: datum[field1]\n };\n dataCollect.push(map[key]);\n }\n });\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'dimensionItems', dimensionItems);\n\n const viewData = this.getViewData();\n barBackgroundData = new DataView(this._option.dataSet)\n .parse([viewData], {\n type: 'dataview'\n })\n .transform(\n {\n type: 'dimensionItems'\n },\n false\n )\n .transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap.bind(this),\n call: addDataKey\n }\n },\n false\n );\n\n viewData?.target.addListener('change', barBackgroundData.reRunAllTransform);\n }\n this._barBackgroundViewData = new SeriesData(this._option, barBackgroundData);\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n if (this.direction === 'vertical') {\n this._xAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n } else {\n this._yAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n }\n }\n\n private _shouldDoPreCalculate() {\n const region = this.getRegion();\n return this.getStack() && region.getSeries().filter(s => s.type === this.type && s.getSpec().barMinHeight).length;\n }\n\n private _calculateStackRectPosition(isVertical: boolean) {\n const region = this.getRegion();\n\n // @ts-ignore\n if (region._bar_series_position_calculated) {\n return;\n }\n // @ts-ignore\n region._bar_series_position_calculated = true; // 因为是 region 内堆叠矩形的计算,所以加一个 hack 标识位用于避免重复计算\n let start: string;\n let end: string;\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n start = RECT_Y1;\n end = RECT_Y;\n startMethod = '_dataToPosY1';\n endMethod = '_dataToPosY';\n axisHelper = '_yAxisHelper';\n } else {\n start = RECT_X1;\n end = RECT_X;\n startMethod = '_dataToPosX1';\n endMethod = '_dataToPosX';\n axisHelper = '_xAxisHelper';\n }\n\n // only reCompute bar\n const stackValueGroup = getRegionStackGroup(region, false, s => s.type === this.type);\n // 按照堆积逻辑 重新计算一次图形的堆积位置并设置到数据上\n for (const stackValue in stackValueGroup) {\n for (const key in stackValueGroup[stackValue].nodes) {\n stackWithMinHeight(stackValueGroup[stackValue].nodes[key], region.getStackInverse(), {\n isVertical,\n start,\n end,\n startMethod,\n endMethod,\n axisHelper\n });\n }\n }\n }\n\n private _calculateRectPosition(datum: Datum, isVertical: boolean) {\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n startMethod = '_dataToPosY1';\n endMethod = '_dataToPosY';\n axisHelper = '_yAxisHelper';\n } else {\n startMethod = '_dataToPosX1';\n endMethod = '_dataToPosX';\n axisHelper = '_xAxisHelper';\n }\n\n const seriesScale = this[axisHelper].getScale?.(0);\n const inverse = this[axisHelper].isInverse();\n const barMinHeight = this._spec.barMinHeight;\n const y1 = valueInScaleRange(this[startMethod](datum), seriesScale);\n const y = valueInScaleRange(this[endMethod](datum), seriesScale);\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n return y1 + flag * height;\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosX(datum: Datum) {\n return this.dataToPositionX(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosX1(datum: Datum) {\n return this.dataToPositionX1(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosY(datum: Datum) {\n return this.dataToPositionY(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosY1(datum: Datum) {\n return this.dataToPositionY1(datum);\n }\n\n protected _getBarXStart = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false);\n }\n\n return valueInScaleRange(this._dataToPosX(datum), scale);\n };\n\n protected _getBarXEnd = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n\n return valueInScaleRange(this._dataToPosX1(datum), scale);\n };\n\n protected _getBarYStart = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this._dataToPosY(datum), scale);\n };\n\n protected _getBarYEnd = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n\n return valueInScaleRange(this._dataToPosY1(datum), scale);\n };\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._barMark,\n {\n x: datum => this._getBarXStart(datum, xScale),\n x1: datum => this._getBarXEnd(datum, xScale),\n y: datum => this._getPosition(this.direction, datum),\n height: () => this._getBarWidth(this._yAxisHelper),\n width: () => undefined,\n y1: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._barMark,\n {\n y: datum => this._getBarYStart(datum, yScale),\n y1: datum => this._getBarYEnd(datum, yScale),\n x: datum => this._getPosition(this.direction, datum),\n width: () => this._getBarWidth(this._xAxisHelper),\n x1: () => undefined,\n height: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n this._initStackBarMarkStyle();\n\n this._initBandBarBackgroundMarkStyle();\n }\n\n protected _initStackBarMarkStyle() {\n if (!this._spec.stackCornerRadius) {\n return;\n }\n\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n this._barMark.setMarkConfig({\n clip: true,\n clipPath: () => {\n const rectPaths: any[] = [];\n this._forEachStackGroup(node => {\n let min = Infinity;\n let max = -Infinity;\n let hasPercent = false;\n let minPercent = Infinity;\n let maxPercent = -Infinity;\n node.values.forEach(datum => {\n const start = datum[STACK_FIELD_START];\n const end = datum[STACK_FIELD_END];\n const startPercent = datum[STACK_FIELD_START_PERCENT];\n const endPercent = datum[STACK_FIELD_END_PERCENT];\n min = Math.min(min, start, end);\n max = Math.max(max, start, end);\n if (isValid(startPercent) && isValid(endPercent)) {\n hasPercent = true;\n minPercent = Math.min(minPercent, startPercent, endPercent);\n maxPercent = Math.max(maxPercent, startPercent, endPercent);\n }\n });\n const mockDatum = {\n ...node.values[0],\n [STACK_FIELD_START]: min,\n [STACK_FIELD_END]: max,\n ...(hasPercent\n ? {\n [STACK_FIELD_START_PERCENT]: minPercent,\n [STACK_FIELD_END_PERCENT]: maxPercent\n }\n : undefined)\n };\n const rectAttr =\n this.direction === Direction.horizontal\n ? {\n x: this._getBarXStart(mockDatum, xScale),\n x1: this._getBarXEnd(mockDatum, xScale),\n y: this._getPosition(this.direction, mockDatum),\n height: this._getBarWidth(this._yAxisHelper)\n }\n : {\n y: this._getBarYStart(mockDatum, yScale),\n y1: this._getBarYEnd(mockDatum, yScale),\n x: this._getPosition(this.direction, mockDatum),\n width: this._getBarWidth(this._xAxisHelper)\n };\n rectPaths.push(\n createRect({\n ...rectAttr,\n cornerRadius: isFunction(this._spec.stackCornerRadius)\n ? this._spec.stackCornerRadius(rectAttr, mockDatum, this._markAttributeContext)\n : this._spec.stackCornerRadius,\n fill: true\n })\n );\n });\n return rectPaths;\n }\n });\n }\n\n initLinearRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n if (this.direction === Direction.horizontal) {\n const yChannels = isValid(this._fieldY2)\n ? {\n y: (datum: Datum) => valueInScaleRange(this._dataToPosY(datum), yScale),\n y1: (datum: Datum) => valueInScaleRange(this._dataToPosY1(datum), yScale)\n }\n : {\n y: (datum: Datum) =>\n valueInScaleRange(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale),\n height: (datum: Datum) => this._getBarWidth(this._yAxisHelper)\n };\n\n this.setMarkStyle(\n this._barMark,\n {\n x: (datum: Datum) => this._getBarXStart(datum, xScale),\n x1: (datum: Datum) => this._getBarXEnd(datum, xScale),\n ...yChannels\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: () => this._getBarBackgroundXStart(xScale),\n x1: () => this._getBarBackgroundXEnd(xScale),\n ...yChannels\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const xChannels = isValid(this._fieldX2)\n ? {\n x: (datum: Datum) => valueInScaleRange(this._dataToPosX(datum), xScale),\n x1: (datum: Datum) => valueInScaleRange(this._dataToPosX1(datum), xScale)\n }\n : {\n x: (datum: Datum) =>\n valueInScaleRange(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale),\n width: (datum: Datum) => this._getBarWidth(this._xAxisHelper)\n };\n this.setMarkStyle(\n this._barMark,\n {\n ...xChannels,\n y: datum => this._getBarYStart(datum, yScale),\n y1: datum => this._getBarYEnd(datum, yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n ...xChannels,\n y: () => this._getBarBackgroundYStart(yScale),\n y1: () => this._getBarBackgroundYEnd(yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected _getBarBackgroundXStart = (scale: IBaseScale) => {\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n return min;\n };\n\n protected _getBarBackgroundXEnd = (scale: IBaseScale) => {\n const range = scale.range();\n const max = Math.max(range[0], range[range.length - 1]);\n return max;\n };\n\n protected _getBarBackgroundYStart = (scale: IBaseScale) => {\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n return min;\n };\n\n protected _getBarBackgroundYEnd = (scale: IBaseScale) => {\n const range = scale.range();\n const max = Math.max(range[0], range[range.length - 1]);\n return max;\n };\n\n protected _initBandBarBackgroundMarkStyle() {\n if (!this._barBackgroundMark) {\n return;\n }\n\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n const spec = this._spec.barBackground ?? {};\n const scaleDepth = isNil(spec.fieldLevel) ? undefined : spec.fieldLevel + 1;\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: () => this._getBarBackgroundXStart(xScale),\n x1: () => this._getBarBackgroundXEnd(xScale),\n y: datum => this._getPosition(this.direction, datum, scaleDepth, SeriesMarkNameEnum.barBackground),\n height: () => this._getBarWidth(this._yAxisHelper, scaleDepth),\n width: () => undefined,\n y1: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: datum => this._getPosition(this.direction, datum, scaleDepth, SeriesMarkNameEnum.barBackground),\n y: () => this._getBarBackgroundYStart(yScale),\n y1: () => this._getBarBackgroundYEnd(yScale),\n width: () => this._getBarWidth(this._xAxisHelper, scaleDepth),\n x1: () => undefined,\n height: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 这个数据在这个时候拿不到,因为组件还没创建结束,统计和筛选也还没添加。\n // 而且这个值理论上是动态的,建议 监听 viewDataStatisticsUpdate 消息动态更新\n const barAnimationParams: IBarAnimationParams = {\n yField: this._fieldY[0],\n xField: this._fieldX[0],\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<BarAppearPreset>)?.preset;\n const animationParams = getGroupAnimationParams(this);\n\n this._barMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('bar')?.(barAnimationParams, appearPreset),\n userAnimationConfig(this._barMarkName, this._spec, this._markAttributeContext),\n animationParams\n )\n );\n }\n\n protected _getBarWidth(axisHelper: IAxisHelper, scaleDepth?: number) {\n const depthFromSpec = this._groups ? this._groups.fields.length : 1;\n const depth = isNil(scaleDepth) ? depthFromSpec : Math.min(depthFromSpec, scaleDepth);\n\n const bandWidth = axisHelper.getBandwidth?.(depth - 1) ?? DefaultBandWidth;\n const hasBarWidth = isValid(this._spec.barWidth) && depth === depthFromSpec;\n\n const hasBarMinWidth = isValid(this._spec.barMinWidth);\n const hasBarMaxWidth = isValid(this._spec.barMaxWidth);\n let width = bandWidth;\n if (hasBarWidth) {\n width = getActualNumValue(this._spec.barWidth, bandWidth);\n }\n if (hasBarMinWidth) {\n width = Math.max(width, getActualNumValue(this._spec.barMinWidth, bandWidth));\n }\n if (hasBarMaxWidth) {\n width = Math.min(width, getActualNumValue(this._spec.barMaxWidth, bandWidth));\n }\n return width;\n }\n\n protected _getPosition(direction: DirectionType, datum: Datum, scaleDepth?: number, mark?: SeriesMarkNameEnum) {\n let axisHelper;\n let sizeAttribute;\n let dataToPosition;\n if (direction === Direction.horizontal) {\n axisHelper = this.getYAxisHelper();\n sizeAttribute = 'height';\n dataToPosition =\n mark === SeriesMarkNameEnum.barBackground\n ? this.dataToBarBackgroundPositionY.bind(this)\n : this.dataToPositionY.bind(this);\n } else {\n axisHelper = this.getXAxisHelper();\n sizeAttribute = 'width';\n dataToPosition =\n mark === SeriesMarkNameEnum.barBackground\n ? this.dataToBarBackgroundPositionX.bind(this)\n : this.dataToPositionX.bind(this);\n }\n const scale = axisHelper.getScale(0);\n\n const depthFromSpec = this._groups ? this._groups.fields.length : 1;\n const depth = isNil(scaleDepth) ? depthFromSpec : Math.min(depthFromSpec, scaleDepth);\n\n const bandWidth = axisHelper.getBandwidth?.(depth - 1) ?? DefaultBandWidth;\n const size = depth === depthFromSpec ? (this._barMark.getAttribute(sizeAttribute, datum) as number) : bandWidth;\n\n if (depth > 1 && isValid(this._spec.barGapInGroup)) {\n // 自里向外计算,沿着第一层分组的中心点进行位置调整\n const groupFields = this._groups.fields;\n const barInGroup = array(this._spec.barGapInGroup);\n let totalWidth: number = 0;\n let offSet: number = 0;\n\n for (let index = groupFields.length - 1; index >= 1; index--) {\n const groupField = groupFields[index];\n // const groupValues = this.getViewDataStatistics()?.latestData?.[groupField]?.values ?? [];\n const groupValues = axisHelper.getScale(index)?.domain() ?? [];\n const groupCount = groupValues.length;\n const gap = getActualNumValue(barInGroup[index - 1] ?? last(barInGroup), bandWidth);\n const i = groupValues.indexOf(datum[groupField]);\n if (index === groupFields.length - 1) {\n totalWidth += groupCount * size + (groupCount - 1) * gap;\n offSet += i * (size + gap);\n } else {\n offSet += i * (totalWidth + gap);\n totalWidth += totalWidth + (groupCount - 1) * gap;\n }\n }\n\n const center = scale.scale(datum[groupFields[0]]) + axisHelper.getBandwidth(0) / 2;\n return center - totalWidth / 2 + offSet;\n }\n\n const continuous = isContinuous(scale.type || 'band');\n const pos = dataToPosition(datum, depth);\n\n return pos + (bandWidth - size) * 0.5 + (continuous ? -bandWidth / 2 : 0);\n }\n\n protected _barBackgroundPositionXEncoder?: (datum: Datum) => number;\n protected _getBarBackgroundPositionXEncoder = () => this._barBackgroundPositionXEncoder?.bind(this);\n protected _setBarBackgroundPositionXEncoder = (encoder: (datum: Datum) => number) => {\n this._barBackgroundPositionXEncoder = encoder.bind(this);\n };\n\n dataToBarBackgroundPositionX(datum: Datum, scaleDepth?: number): number {\n return this._dataToPosition(\n datum,\n this._xAxisHelper,\n this.fieldX,\n scaleDepth,\n this._getBarBackgroundPositionXEncoder,\n this._setBarBackgroundPositionXEncoder\n );\n }\n\n protected _barBackgroundPositionYEncoder?: (datum: Datum) => number;\n protected _getBarBackgroundPositionYEncoder = () => this._barBackgroundPositionYEncoder?.bind(this);\n protected _setBarBackgroundPositionYEncoder = (encoder: (datum: Datum) => number) => {\n this._barBackgroundPositionYEncoder = encoder.bind(this);\n };\n\n dataToBarBackgroundPositionY(datum: Datum, scaleDepth?: number): number {\n return this._dataToPosition(\n datum,\n this._yAxisHelper,\n this.fieldY,\n scaleDepth,\n this._getBarBackgroundPositionYEncoder,\n this._setBarBackgroundPositionYEncoder\n );\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const region = this.getRegion();\n // @ts-ignore\n region._bar_series_position_calculated = false;\n if (this._spec.sampling) {\n this.compile();\n }\n }\n\n compile(): void {\n super.compile();\n\n if (this._spec.sampling) {\n const { width, height } = this._region.getLayoutRect();\n const samplingTrans = [];\n const fieldsY = this._fieldY;\n const fieldsX = this._fieldX;\n\n samplingTrans.push({\n type: 'sampling',\n size: this._direction === Direction.horizontal ? height : width,\n factor: this._spec.samplingFactor,\n yfield: this._direction === Direction.horizontal ? fieldsX[0] : fieldsY[0],\n groupBy: this._seriesField,\n mode: this._spec.sampling\n });\n this._data.getProduct().transform(samplingTrans);\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._barMark];\n }\n\n compileData() {\n super.compileData();\n this._barBackgroundViewData?.compile();\n }\n\n fillData() {\n super.fillData();\n this._barBackgroundViewData?.getDataView()?.reRunAllTransform();\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._barBackgroundViewData?.getDataView()?.reRunAllTransform();\n this._barBackgroundViewData?.updateData();\n }\n\n release() {\n super.release();\n this._barBackgroundViewData?.release();\n this._barBackgroundViewData = null;\n }\n}\n\nexport const registerBarSeries = () => {\n registerSampleTransform();\n registerRectMark();\n registerBarAnimation();\n registerCartesianBandAxis();\n registerCartesianLinearAxis();\n Factory.registerSeries(BarSeries.type, BarSeries);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/bar/bar.ts"],"names":[],"mappings":"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","file":"bar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IBaseScale } from '@visactor/vscale';\nimport { isContinuous } from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport {\n DEFAULT_DATA_KEY,\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT\n} from '../../constant/data';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { Datum, DirectionType } from '../../typings';\nimport { valueInScaleRange } from '../../util/scale';\nimport { getRegionStackGroup } from '../../util/data';\nimport { getActualNumValue } from '../../util/space';\nimport type { BarAppearPreset, IBarAnimationParams } from './animation';\nimport { registerBarAnimation } from './animation';\nimport { animationConfig, shouldMarkDoMorph, userAnimationConfig } from '../../animation/utils';\nimport type { IBarSeriesSpec } from './interface';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { IModelInitOption } from '../../model/interface';\nimport type { ITextMark } from '../../mark/text';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { registerRectMark } from '../../mark/rect';\nimport { array, isFunction, isNil, isValid, last } from '@visactor/vutils';\nimport { barSeriesMark } from './constant';\nimport { stackWithMinHeight } from '../util/stack';\nimport { Factory } from '../../core/factory';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { SeriesData } from '../base/series-data';\nimport { DataView } from '@visactor/vdataset';\nimport { addVChartProperty } from '../../data/transforms/add-property';\nimport { addDataKey, initKeyMap } from '../../data/transforms/data-key';\nimport { registerSampleTransform } from '@visactor/vgrammar-core';\nimport { getGroupAnimationParams } from '../util/utils';\nimport { BarSeriesSpecTransformer } from './bar-transformer';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { RECT_X, RECT_X1, RECT_Y, RECT_Y1 } from '../base/constant';\nimport { createRect } from '@visactor/vrender-core';\nimport { registerCartesianLinearAxis, registerCartesianBandAxis } from '../../component/axis/cartesian';\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\n\nexport class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.bar;\n type = SeriesTypeEnum.bar;\n protected _barMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.bar;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n\n static readonly mark: SeriesMarkMap = barSeriesMark;\n static readonly transformerConstructor = BarSeriesSpecTransformer as any;\n readonly transformerConstructor = BarSeriesSpecTransformer;\n\n protected _bandPosition = 0;\n protected _barMark!: IRectMark;\n protected _barBackgroundMark!: IRectMark;\n\n protected _barBackgroundViewData: SeriesData;\n\n initMark(): void {\n this._initBarBackgroundMark();\n\n this._barMark = this._createMark(\n {\n ...BarSeries.mark.bar,\n name: this._barMarkName,\n type: this._barMarkType\n },\n {\n groupKey: this._seriesField,\n isSeriesMark: true,\n stateSort: this._spec.bar?.stateSort\n },\n {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold,\n morphElementKey: this.getDimensionField()[0],\n morph: shouldMarkDoMorph(this._spec, this._barMarkName),\n setCustomizedShape: this._spec.bar?.customShape\n }\n ) as IRectMark;\n }\n\n protected _initBarBackgroundMark(): void {\n if (this._spec.barBackground && this._spec.barBackground.visible) {\n this._barBackgroundMark = this._createMark(\n BarSeries.mark.barBackground,\n {\n dataView: this._barBackgroundViewData.getDataView(),\n dataProductId: this._barBackgroundViewData.getProductId(),\n stateSort: this._spec.barBackground.stateSort\n },\n {\n setCustomizedShape: this._spec.barBackground.customShape,\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n }\n ) as IRectMark;\n }\n }\n\n initMarkStyle(): void {\n if (this._barMark) {\n this.setMarkStyle(\n this._barMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n });\n }\n\n protected initTooltip() {\n super.initTooltip();\n const { mark, group } = this._tooltipHelper.activeTriggerSet;\n if (this._barMark) {\n mark.add(this._barMark);\n group.add(this._barMark);\n }\n }\n\n protected _statisticViewData(): void {\n super._statisticViewData();\n\n const spec = this._spec.barBackground ?? {};\n if (!spec.visible) {\n return;\n }\n\n const hasBandAxis = this._getRelatedComponentSpecInfo('axes').some(\n axisInfo => axisInfo.type === ComponentTypeEnum.cartesianBandAxis\n );\n\n let barBackgroundData: DataView;\n registerDataSetInstanceTransform(this._option.dataSet, 'addVChartProperty', addVChartProperty);\n\n if (hasBandAxis) {\n type DimensionItemsConfig = { scaleDepth?: number };\n\n /**\n * @description 准备 barBackground 数据(离散轴)\n */\n const dimensionItems = ([data]: DataView[], { scaleDepth }: DimensionItemsConfig) => {\n let dataCollect: Datum[] = [{}];\n const fields = this.getDimensionField();\n // 将维度轴的所有层级 field 的对应数据做笛卡尔积\n const depth = isNil(scaleDepth) ? fields.length : Math.min(fields.length, scaleDepth);\n for (let i = 0; i < depth; i++) {\n const field = fields[i];\n const values = data.latestData[field]?.values;\n if (!values?.length) {\n continue;\n }\n const newDataCollect: Datum[] = [];\n const dataKey = (this._spec.dataKey as string) ?? DEFAULT_DATA_KEY;\n for (let j = 0; j < values.length; j++) {\n for (let k = 0; k < dataCollect.length; k++) {\n newDataCollect.push({\n ...dataCollect[k],\n [field]: values[j],\n [dataKey]: values[j]\n });\n }\n }\n dataCollect = newDataCollect;\n }\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'dimensionItems', dimensionItems);\n\n barBackgroundData = new DataView(this._option.dataSet)\n .parse([this._viewDataStatistics], {\n type: 'dataview'\n })\n .transform(\n {\n type: 'dimensionItems',\n options: {\n scaleDepth: isNil(spec.fieldLevel) ? undefined : spec.fieldLevel + 1\n } as DimensionItemsConfig\n },\n false\n )\n .transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap.bind(this),\n call: addDataKey\n }\n },\n false\n );\n\n this._viewDataStatistics?.target.addListener('change', barBackgroundData.reRunAllTransform);\n } else {\n /**\n * @description 准备 barBackground 数据(连续轴)\n */\n const dimensionItems = ([data]: DataView[]) => {\n const dataCollect: Datum[] = [];\n const [field0, field1] = this.getDimensionContinuousField();\n const map: Record<string, Datum> = {};\n viewData.latestData.forEach((datum: Datum) => {\n const key = `${datum[field0]}-${datum[field1]}`;\n if (!map[key]) {\n map[key] = {\n [field0]: datum[field0],\n [field1]: datum[field1]\n };\n dataCollect.push(map[key]);\n }\n });\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'dimensionItems', dimensionItems);\n\n const viewData = this.getViewData();\n barBackgroundData = new DataView(this._option.dataSet)\n .parse([viewData], {\n type: 'dataview'\n })\n .transform(\n {\n type: 'dimensionItems'\n },\n false\n )\n .transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap.bind(this),\n call: addDataKey\n }\n },\n false\n );\n\n viewData?.target.addListener('change', barBackgroundData.reRunAllTransform);\n }\n this._barBackgroundViewData = new SeriesData(this._option, barBackgroundData);\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n if (this.direction === 'vertical') {\n this._xAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n } else {\n this._yAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n }\n }\n\n private _shouldDoPreCalculate() {\n const region = this.getRegion();\n return this.getStack() && region.getSeries().filter(s => s.type === this.type && s.getSpec().barMinHeight).length;\n }\n\n private _calculateStackRectPosition(isVertical: boolean) {\n const region = this.getRegion();\n\n // @ts-ignore\n if (region._bar_series_position_calculated) {\n return;\n }\n // @ts-ignore\n region._bar_series_position_calculated = true; // 因为是 region 内堆叠矩形的计算,所以加一个 hack 标识位用于避免重复计算\n let start: string;\n let end: string;\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n start = RECT_Y1;\n end = RECT_Y;\n startMethod = '_dataToPosY1';\n endMethod = '_dataToPosY';\n axisHelper = '_yAxisHelper';\n } else {\n start = RECT_X1;\n end = RECT_X;\n startMethod = '_dataToPosX1';\n endMethod = '_dataToPosX';\n axisHelper = '_xAxisHelper';\n }\n\n // only reCompute bar\n const stackValueGroup = getRegionStackGroup(region, false, s => s.type === this.type);\n // 按照堆积逻辑 重新计算一次图形的堆积位置并设置到数据上\n for (const stackValue in stackValueGroup) {\n for (const key in stackValueGroup[stackValue].nodes) {\n stackWithMinHeight(stackValueGroup[stackValue].nodes[key], region.getStackInverse(), {\n isVertical,\n start,\n end,\n startMethod,\n endMethod,\n axisHelper\n });\n }\n }\n }\n\n private _calculateRectPosition(datum: Datum, isVertical: boolean, useWholeRange?: boolean) {\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n startMethod = '_dataToPosY1';\n endMethod = '_dataToPosY';\n axisHelper = '_yAxisHelper';\n } else {\n startMethod = '_dataToPosX1';\n endMethod = '_dataToPosX';\n axisHelper = '_xAxisHelper';\n }\n\n const seriesScale = this[axisHelper].getScale?.(0);\n const inverse = this[axisHelper].isInverse();\n const barMinHeight = this._spec.barMinHeight;\n const y1 = valueInScaleRange(this[startMethod](datum), seriesScale, useWholeRange);\n const y = valueInScaleRange(this[endMethod](datum), seriesScale, useWholeRange);\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n return y1 + flag * height;\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosX(datum: Datum) {\n return this.dataToPositionX(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosX1(datum: Datum) {\n return this.dataToPositionX1(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosY(datum: Datum) {\n return this.dataToPositionY(datum);\n }\n\n // 用于 bar-like 的位置转换,range-column 会重写这个方法\n protected _dataToPosY1(datum: Datum) {\n return this.dataToPositionY1(datum);\n }\n\n protected _getBarXStart = (datum: Datum, scale: IBaseScale, useWholeRange?: boolean) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false, useWholeRange);\n }\n\n return valueInScaleRange(this._dataToPosX(datum), scale, useWholeRange);\n };\n\n protected _getBarXEnd = (datum: Datum, scale: IBaseScale, useWholeRange?: boolean) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n\n return valueInScaleRange(this._dataToPosX1(datum), scale, useWholeRange);\n };\n\n protected _getBarYStart = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this._dataToPosY(datum), scale);\n };\n\n protected _getBarYEnd = (datum: Datum, scale: IBaseScale) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n\n return valueInScaleRange(this._dataToPosY1(datum), scale);\n };\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._barMark,\n {\n x: datum => this._getBarXStart(datum, xScale),\n x1: datum => this._getBarXEnd(datum, xScale),\n y: datum => this._getPosition(this.direction, datum),\n height: () => this._getBarWidth(this._yAxisHelper),\n width: () => undefined,\n y1: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._barMark,\n {\n y: datum => this._getBarYStart(datum, yScale),\n y1: datum => this._getBarYEnd(datum, yScale),\n x: datum => this._getPosition(this.direction, datum),\n width: () => this._getBarWidth(this._xAxisHelper),\n x1: () => undefined,\n height: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n this._initStackBarMarkStyle();\n\n this._initBandBarBackgroundMarkStyle();\n }\n\n protected _initStackBarMarkStyle() {\n if (!this._spec.stackCornerRadius) {\n return;\n }\n\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n this._barMark.setMarkConfig({\n clip: true,\n clipPath: () => {\n const rectPaths: any[] = [];\n this._forEachStackGroup(node => {\n let min = Infinity;\n let max = -Infinity;\n let hasPercent = false;\n let minPercent = Infinity;\n let maxPercent = -Infinity;\n node.values.forEach(datum => {\n const start = datum[STACK_FIELD_START];\n const end = datum[STACK_FIELD_END];\n const startPercent = datum[STACK_FIELD_START_PERCENT];\n const endPercent = datum[STACK_FIELD_END_PERCENT];\n min = Math.min(min, start, end);\n max = Math.max(max, start, end);\n if (isValid(startPercent) && isValid(endPercent)) {\n hasPercent = true;\n minPercent = Math.min(minPercent, startPercent, endPercent);\n maxPercent = Math.max(maxPercent, startPercent, endPercent);\n }\n });\n const mockDatum = {\n ...node.values[0],\n [STACK_FIELD_START]: min,\n [STACK_FIELD_END]: max,\n ...(hasPercent\n ? {\n [STACK_FIELD_START_PERCENT]: minPercent,\n [STACK_FIELD_END_PERCENT]: maxPercent\n }\n : undefined)\n };\n const rectAttr =\n this.direction === Direction.horizontal\n ? {\n x: this._getBarXStart(mockDatum, xScale),\n x1: this._getBarXEnd(mockDatum, xScale),\n y: this._getPosition(this.direction, mockDatum),\n height: this._getBarWidth(this._yAxisHelper)\n }\n : {\n y: this._getBarYStart(mockDatum, yScale),\n y1: this._getBarYEnd(mockDatum, yScale),\n x: this._getPosition(this.direction, mockDatum),\n width: this._getBarWidth(this._xAxisHelper)\n };\n rectPaths.push(\n createRect({\n ...rectAttr,\n cornerRadius: isFunction(this._spec.stackCornerRadius)\n ? this._spec.stackCornerRadius(rectAttr, mockDatum, this._markAttributeContext)\n : this._spec.stackCornerRadius,\n fill: true\n })\n );\n });\n return rectPaths;\n }\n });\n }\n\n initLinearRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n if (this.direction === Direction.horizontal) {\n const yChannels = isValid(this._fieldY2)\n ? {\n y: (datum: Datum) => valueInScaleRange(this._dataToPosY(datum), yScale, true),\n y1: (datum: Datum) => valueInScaleRange(this._dataToPosY1(datum), yScale, true)\n }\n : {\n y: (datum: Datum) =>\n valueInScaleRange(this._dataToPosY(datum) - this._getBarWidth(this._yAxisHelper) / 2, yScale, true),\n height: (datum: Datum) => this._getBarWidth(this._yAxisHelper)\n };\n\n this.setMarkStyle(\n this._barMark,\n {\n x: (datum: Datum) => this._getBarXStart(datum, xScale, true),\n x1: (datum: Datum) => this._getBarXEnd(datum, xScale, true),\n ...yChannels\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: () => this._getBarBackgroundXStart(xScale),\n x1: () => this._getBarBackgroundXEnd(xScale),\n ...yChannels\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const xChannels = isValid(this._fieldX2)\n ? {\n x: (datum: Datum) => valueInScaleRange(this._dataToPosX(datum), xScale, true),\n x1: (datum: Datum) => valueInScaleRange(this._dataToPosX1(datum), xScale, true)\n }\n : {\n x: (datum: Datum) =>\n valueInScaleRange(this._dataToPosX(datum) - this._getBarWidth(this._xAxisHelper) / 2, xScale, true),\n width: (datum: Datum) => this._getBarWidth(this._xAxisHelper)\n };\n this.setMarkStyle(\n this._barMark,\n {\n ...xChannels,\n y: datum => this._getBarYStart(datum, yScale),\n y1: datum => this._getBarYEnd(datum, yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n ...xChannels,\n y: () => this._getBarBackgroundYStart(yScale),\n y1: () => this._getBarBackgroundYEnd(yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected _getBarBackgroundXStart = (scale: IBaseScale) => {\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n return min;\n };\n\n protected _getBarBackgroundXEnd = (scale: IBaseScale) => {\n const range = scale.range();\n const max = Math.max(range[0], range[range.length - 1]);\n return max;\n };\n\n protected _getBarBackgroundYStart = (scale: IBaseScale) => {\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n return min;\n };\n\n protected _getBarBackgroundYEnd = (scale: IBaseScale) => {\n const range = scale.range();\n const max = Math.max(range[0], range[range.length - 1]);\n return max;\n };\n\n protected _initBandBarBackgroundMarkStyle() {\n if (!this._barBackgroundMark) {\n return;\n }\n\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n const spec = this._spec.barBackground ?? {};\n const scaleDepth = isNil(spec.fieldLevel) ? undefined : spec.fieldLevel + 1;\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: () => this._getBarBackgroundXStart(xScale),\n x1: () => this._getBarBackgroundXEnd(xScale),\n y: datum => this._getPosition(this.direction, datum, scaleDepth, SeriesMarkNameEnum.barBackground),\n height: () => this._getBarWidth(this._yAxisHelper, scaleDepth),\n width: () => undefined,\n y1: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._barBackgroundMark,\n {\n x: datum => this._getPosition(this.direction, datum, scaleDepth, SeriesMarkNameEnum.barBackground),\n y: () => this._getBarBackgroundYStart(yScale),\n y1: () => this._getBarBackgroundYEnd(yScale),\n width: () => this._getBarWidth(this._xAxisHelper, scaleDepth),\n x1: () => undefined,\n height: () => undefined\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 这个数据在这个时候拿不到,因为组件还没创建结束,统计和筛选也还没添加。\n // 而且这个值理论上是动态的,建议 监听 viewDataStatisticsUpdate 消息动态更新\n const barAnimationParams: IBarAnimationParams = {\n yField: this._fieldY[0],\n xField: this._fieldX[0],\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec.animationAppear as IStateAnimateSpec<BarAppearPreset>)?.preset;\n const animationParams = getGroupAnimationParams(this);\n\n this._barMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('bar')?.(barAnimationParams, appearPreset),\n userAnimationConfig(this._barMarkName, this._spec, this._markAttributeContext),\n animationParams\n )\n );\n }\n\n protected _getBarWidth(axisHelper: IAxisHelper, scaleDepth?: number) {\n const depthFromSpec = this._groups ? this._groups.fields.length : 1;\n const depth = isNil(scaleDepth) ? depthFromSpec : Math.min(depthFromSpec, scaleDepth);\n\n const bandWidth = axisHelper.getBandwidth?.(depth - 1) ?? DefaultBandWidth;\n const hasBarWidth = isValid(this._spec.barWidth) && depth === depthFromSpec;\n\n const hasBarMinWidth = isValid(this._spec.barMinWidth);\n const hasBarMaxWidth = isValid(this._spec.barMaxWidth);\n let width = bandWidth;\n if (hasBarWidth) {\n width = getActualNumValue(this._spec.barWidth, bandWidth);\n }\n if (hasBarMinWidth) {\n width = Math.max(width, getActualNumValue(this._spec.barMinWidth, bandWidth));\n }\n if (hasBarMaxWidth) {\n width = Math.min(width, getActualNumValue(this._spec.barMaxWidth, bandWidth));\n }\n return width;\n }\n\n protected _getPosition(direction: DirectionType, datum: Datum, scaleDepth?: number, mark?: SeriesMarkNameEnum) {\n let axisHelper;\n let sizeAttribute;\n let dataToPosition;\n if (direction === Direction.horizontal) {\n axisHelper = this.getYAxisHelper();\n sizeAttribute = 'height';\n dataToPosition =\n mark === SeriesMarkNameEnum.barBackground\n ? this.dataToBarBackgroundPositionY.bind(this)\n : this.dataToPositionY.bind(this);\n } else {\n axisHelper = this.getXAxisHelper();\n sizeAttribute = 'width';\n dataToPosition =\n mark === SeriesMarkNameEnum.barBackground\n ? this.dataToBarBackgroundPositionX.bind(this)\n : this.dataToPositionX.bind(this);\n }\n const scale = axisHelper.getScale(0);\n\n const depthFromSpec = this._groups ? this._groups.fields.length : 1;\n const depth = isNil(scaleDepth) ? depthFromSpec : Math.min(depthFromSpec, scaleDepth);\n\n const bandWidth = axisHelper.getBandwidth?.(depth - 1) ?? DefaultBandWidth;\n const size = depth === depthFromSpec ? (this._barMark.getAttribute(sizeAttribute, datum) as number) : bandWidth;\n\n if (depth > 1 && isValid(this._spec.barGapInGroup)) {\n // 自里向外计算,沿着第一层分组的中心点进行位置调整\n const groupFields = this._groups.fields;\n const barInGroup = array(this._spec.barGapInGroup);\n let totalWidth: number = 0;\n let offSet: number = 0;\n\n for (let index = groupFields.length - 1; index >= 1; index--) {\n const groupField = groupFields[index];\n // const groupValues = this.getViewDataStatistics()?.latestData?.[groupField]?.values ?? [];\n const groupValues = axisHelper.getScale(index)?.domain() ?? [];\n const groupCount = groupValues.length;\n const gap = getActualNumValue(barInGroup[index - 1] ?? last(barInGroup), bandWidth);\n const i = groupValues.indexOf(datum[groupField]);\n if (index === groupFields.length - 1) {\n totalWidth += groupCount * size + (groupCount - 1) * gap;\n offSet += i * (size + gap);\n } else {\n offSet += i * (totalWidth + gap);\n totalWidth += totalWidth + (groupCount - 1) * gap;\n }\n }\n\n const center = scale.scale(datum[groupFields[0]]) + axisHelper.getBandwidth(0) / 2;\n return center - totalWidth / 2 + offSet;\n }\n\n const continuous = isContinuous(scale.type || 'band');\n const pos = dataToPosition(datum, depth);\n\n return pos + (bandWidth - size) * 0.5 + (continuous ? -bandWidth / 2 : 0);\n }\n\n protected _barBackgroundPositionXEncoder?: (datum: Datum) => number;\n protected _getBarBackgroundPositionXEncoder = () => this._barBackgroundPositionXEncoder?.bind(this);\n protected _setBarBackgroundPositionXEncoder = (encoder: (datum: Datum) => number) => {\n this._barBackgroundPositionXEncoder = encoder.bind(this);\n };\n\n dataToBarBackgroundPositionX(datum: Datum, scaleDepth?: number): number {\n return this._dataToPosition(\n datum,\n this._xAxisHelper,\n this.fieldX,\n scaleDepth,\n this._getBarBackgroundPositionXEncoder,\n this._setBarBackgroundPositionXEncoder\n );\n }\n\n protected _barBackgroundPositionYEncoder?: (datum: Datum) => number;\n protected _getBarBackgroundPositionYEncoder = () => this._barBackgroundPositionYEncoder?.bind(this);\n protected _setBarBackgroundPositionYEncoder = (encoder: (datum: Datum) => number) => {\n this._barBackgroundPositionYEncoder = encoder.bind(this);\n };\n\n dataToBarBackgroundPositionY(datum: Datum, scaleDepth?: number): number {\n return this._dataToPosition(\n datum,\n this._yAxisHelper,\n this.fieldY,\n scaleDepth,\n this._getBarBackgroundPositionYEncoder,\n this._setBarBackgroundPositionYEncoder\n );\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const region = this.getRegion();\n // @ts-ignore\n region._bar_series_position_calculated = false;\n if (this._spec.sampling) {\n this.compile();\n }\n }\n\n compile(): void {\n super.compile();\n\n if (this._spec.sampling) {\n const { width, height } = this._region.getLayoutRect();\n const samplingTrans = [];\n const fieldsY = this._fieldY;\n const fieldsX = this._fieldX;\n\n samplingTrans.push({\n type: 'sampling',\n size: this._direction === Direction.horizontal ? height : width,\n factor: this._spec.samplingFactor,\n yfield: this._direction === Direction.horizontal ? fieldsX[0] : fieldsY[0],\n groupBy: this._seriesField,\n mode: this._spec.sampling\n });\n this._data.getProduct().transform(samplingTrans);\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._barMark];\n }\n\n compileData() {\n super.compileData();\n this._barBackgroundViewData?.compile();\n }\n\n fillData() {\n super.fillData();\n this._barBackgroundViewData?.getDataView()?.reRunAllTransform();\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._barBackgroundViewData?.getDataView()?.reRunAllTransform();\n this._barBackgroundViewData?.updateData();\n }\n\n release() {\n super.release();\n this._barBackgroundViewData?.release();\n this._barBackgroundViewData = null;\n }\n}\n\nexport const registerBarSeries = () => {\n registerSampleTransform();\n registerRectMark();\n registerBarAnimation();\n registerCartesianBandAxis();\n registerCartesianLinearAxis();\n Factory.registerSeries(BarSeries.type, BarSeries);\n};\n"]}
|