@visactor/vchart 1.8.6 → 1.8.7
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 +5838 -5590
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.js +1 -1
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/range-column/range-column-transformer.js +2 -1
- package/cjs/chart/range-column/range-column-transformer.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.js +2 -2
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/polar/axis.js +2 -2
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +1 -1
- package/cjs/component/brush/brush.js +10 -10
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.js +4 -4
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +1 -1
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.js +1 -1
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/indicator/indicator.js +2 -2
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/legend/base-legend.js +1 -1
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/continuous/legend.js +1 -1
- package/cjs/component/legend/continuous/legend.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -0
- package/cjs/component/legend/discrete/legend.js +5 -2
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/map-label/component.js +3 -3
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js +3 -3
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.d.ts +1 -0
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js +4 -4
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/marker/utils.js +8 -9
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/shape-model.js +4 -0
- package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/title-model.js +7 -3
- package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
- package/cjs/component/tooltip/utils/show-tooltip.js +3 -2
- package/cjs/component/tooltip/utils/show-tooltip.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/core/vchart.js +1 -1
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.js +1 -1
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/event/events/dimension/dimension-click.js +1 -1
- package/cjs/event/events/dimension/dimension-click.js.map +1 -1
- package/cjs/event/events/dimension/dimension-hover.js +4 -4
- package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
- package/cjs/interaction/trigger.js +1 -1
- package/cjs/interaction/trigger.js.map +1 -1
- package/cjs/layout/base-layout.js +7 -7
- package/cjs/layout/base-layout.js.map +1 -1
- package/cjs/layout/interface.d.ts +4 -1
- package/cjs/layout/interface.js.map +1 -1
- package/cjs/layout/layout-item.d.ts +5 -1
- package/cjs/layout/layout-item.js +24 -4
- package/cjs/layout/layout-item.js.map +1 -1
- package/cjs/layout/layout3d/index.js +4 -4
- package/cjs/layout/layout3d/index.js.map +1 -1
- package/cjs/mark/mark-set/index.js +1 -1
- package/cjs/mark/mark-set/index.js.map +1 -1
- package/cjs/model/interface.d.ts +2 -0
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-model.d.ts +8 -0
- package/cjs/model/layout-model.js +15 -0
- package/cjs/model/layout-model.js.map +1 -1
- package/cjs/plugin/components/axis-sync-plugin/zero-align-transform.js +1 -1
- package/cjs/plugin/components/axis-sync-plugin/zero-align-transform.js.map +1 -1
- package/cjs/scale/global-scale.js +1 -1
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/area.js +9 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +4 -0
- package/cjs/series/bar/bar.js +32 -21
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.js +7 -4
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +4 -0
- package/cjs/series/base/constant.js +4 -3
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/cartesian/cartesian.js +2 -4
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/correlation/correlation.js +1 -1
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/gauge/gauge.js +1 -1
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/line/line.js +8 -5
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/mixin/line-mixin.js +1 -1
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/3d/pie-3d.js +1 -1
- package/cjs/series/pie/3d/pie-3d.js.map +1 -1
- package/cjs/series/pie/pie.js +9 -9
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/polar.d.ts +2 -0
- package/cjs/series/polar/polar.js +1 -1
- package/cjs/series/polar/polar.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +4 -3
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.js +4 -3
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/range-column/range-column.d.ts +5 -1
- package/cjs/series/range-column/range-column.js +22 -25
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/sankey/sankey.js +1 -1
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.js +3 -3
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/sunburst.js +2 -2
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/util/stack.js +1 -1
- package/cjs/series/util/stack.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +2 -2
- package/cjs/series/word-cloud/base.js +7 -7
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/esm/chart/base/base-chart.js +1 -1
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/range-column/range-column-transformer.js +2 -1
- package/esm/chart/range-column/range-column-transformer.js.map +1 -1
- package/esm/component/axis/cartesian/axis.js +2 -2
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/polar/axis.js +2 -2
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/brush/brush.d.ts +1 -1
- package/esm/component/brush/brush.js +10 -10
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.js +4 -4
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +1 -1
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/geo/geo-coordinate.js +1 -1
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/indicator/indicator.js +2 -2
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/legend/base-legend.js +1 -1
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/continuous/legend.js +1 -1
- package/esm/component/legend/continuous/legend.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -0
- package/esm/component/legend/discrete/legend.js +5 -2
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/map-label/component.js +3 -3
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js +3 -3
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.d.ts +1 -0
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js +4 -4
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/marker/utils.js +8 -9
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/shape-model.js +4 -0
- package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/title-model.js +7 -3
- package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
- package/esm/component/tooltip/utils/show-tooltip.js +3 -2
- package/esm/component/tooltip/utils/show-tooltip.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/core/vchart.js +1 -1
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.js +1 -1
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/event/events/dimension/dimension-click.js +1 -1
- package/esm/event/events/dimension/dimension-click.js.map +1 -1
- package/esm/event/events/dimension/dimension-hover.js +4 -4
- package/esm/event/events/dimension/dimension-hover.js.map +1 -1
- package/esm/interaction/trigger.js +1 -1
- package/esm/interaction/trigger.js.map +1 -1
- package/esm/layout/base-layout.js +7 -7
- package/esm/layout/base-layout.js.map +1 -1
- package/esm/layout/interface.d.ts +4 -1
- package/esm/layout/interface.js.map +1 -1
- package/esm/layout/layout-item.d.ts +5 -1
- package/esm/layout/layout-item.js +23 -4
- package/esm/layout/layout-item.js.map +1 -1
- package/esm/layout/layout3d/index.js +4 -4
- package/esm/layout/layout3d/index.js.map +1 -1
- package/esm/mark/mark-set/index.js +1 -1
- package/esm/mark/mark-set/index.js.map +1 -1
- package/esm/model/interface.d.ts +2 -0
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-model.d.ts +8 -0
- package/esm/model/layout-model.js +15 -0
- package/esm/model/layout-model.js.map +1 -1
- package/esm/plugin/components/axis-sync-plugin/zero-align-transform.js +1 -1
- package/esm/plugin/components/axis-sync-plugin/zero-align-transform.js.map +1 -1
- package/esm/scale/global-scale.js +1 -1
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/area.js +9 -4
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +4 -0
- package/esm/series/bar/bar.js +25 -15
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.js +7 -4
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +4 -0
- package/esm/series/base/constant.js +10 -0
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/cartesian/cartesian.js +2 -3
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/correlation/correlation.js +1 -1
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/gauge/gauge.js +1 -1
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/line/line.js +8 -3
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/mixin/line-mixin.js +1 -1
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/3d/pie-3d.js +1 -1
- package/esm/series/pie/3d/pie-3d.js.map +1 -1
- package/esm/series/pie/pie.js +9 -9
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/polar.d.ts +2 -0
- package/esm/series/polar/polar.js +1 -1
- package/esm/series/polar/polar.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +4 -3
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.js +4 -3
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/range-column/range-column.d.ts +5 -1
- package/esm/series/range-column/range-column.js +21 -27
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/sankey/sankey.js +1 -1
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.js +4 -2
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/sunburst.js +2 -2
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/util/stack.js +1 -1
- package/esm/series/util/stack.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +2 -2
- package/esm/series/word-cloud/base.js +7 -7
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/package.json +22 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":"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","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type {\n IMarkLine,\n IMarkLineSpec,\n IMarkLineXYSpec,\n IMarkLineXYY1Spec,\n IMarkLineYXX1Spec,\n IStepMarkLineSpec\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkLineAttrs } from '@visactor/vrender-components';\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IDataPos, IMarkerSymbol } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n static specKey = 'markLine';\n specKey = 'markLine';\n\n layoutZIndex: number = LayoutZIndex.MarkLine;\n\n protected declare _markerComponent: MarkLineComponent;\n\n private _isXYLayout: boolean;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markLineSpec = chartSpec[this.specKey];\n if (isEmpty(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return [\n {\n spec: markLineSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.markLine\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.markLine\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const {\n label = {},\n startSymbol = {} as IMarkerSymbol,\n endSymbol = {} as IMarkerSymbol\n } = this._spec as IMarkLineSpec;\n\n const markLineAttrs: MarkLineAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ],\n lineStyle: this._spec.line?.style as unknown as any,\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n if (startSymbol.visible) {\n markLineAttrs.startSymbol = {\n ...startSymbol,\n visible: true,\n style: transformToGraphic(startSymbol.style)\n };\n } else {\n markLineAttrs.startSymbol = {\n visible: false\n };\n }\n\n if (endSymbol.visible) {\n markLineAttrs.endSymbol = {\n ...endSymbol,\n visible: true,\n style: transformToGraphic(endSymbol.style)\n };\n } else {\n markLineAttrs.endSymbol = {\n visible: false\n };\n }\n\n const markLine = new MarkLineComponent(markLineAttrs);\n return markLine as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isCoordinateLayout = isValidCoordinates && (!isValidProcess || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n if (this._isXYLayout || (isValidCoordinates && isValidProcessX) || (isValidCoordinates && isValidProcessY)) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data.latestData[0].latestData || data.latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const labelAttrs = {\n ...markerComponentAttr.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : markerComponentAttr.label?.text\n };\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n\n const joinPoints = getInsertPoints(points[0], points[1], connectDirection, expandDistanceValue);\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset(points[0], points[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...labelAttrs,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n } else {\n this._markerComponent?.setAttributes({\n points: points,\n label: labelAttrs,\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\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 isCoordinateProcess = 'coordinates' in spec;\n\n const doXProcess = isXProcess && !isYProcess && !isY1Process;\n const doXYY1Process = isXProcess && isYProcess && isY1Process;\n const doYProcess = isYProcess && !isXProcess && !isX1Process;\n const doYXX1Process = isYProcess && isXProcess && isX1Process;\n const doXYProcess = isXProcess && isYProcess && isX1Process && isY1Process;\n\n this._markerData = relativeSeries.getViewData();\n\n if (!doXProcess && !doYProcess && !doXYY1Process && !doYXX1Process && !doXYProcess && !isCoordinateProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n this._isXYLayout = doXProcess || doXYY1Process || doYProcess || doYXX1Process || doXYProcess;\n\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = relativeSeries.getViewData();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n\n if (doXYProcess) {\n const { x, x1, y, y1 } = spec as IMarkLineXYSpec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y1)];\n } else if (doXProcess) {\n options = [this._processSpecX(spec.x)];\n } else if (doYProcess) {\n options = [this._processSpecY(spec.y)];\n } else if (doXYY1Process) {\n const { x, y, y1 } = spec as IMarkLineXYY1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x, y1)];\n } else if (doYXX1Process) {\n const { x, x1, y } = spec as IMarkLineYXX1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(MarkLine.type, MarkLine);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":"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","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type {\n IMarkLine,\n IMarkLineSpec,\n IMarkLineXYSpec,\n IMarkLineXYY1Spec,\n IMarkLineYXX1Spec,\n IStepMarkLineSpec\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkLineAttrs } from '@visactor/vrender-components';\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IDataPos, IMarkerSymbol } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n static specKey = 'markLine';\n specKey = 'markLine';\n\n layoutZIndex: number = LayoutZIndex.MarkLine;\n\n protected declare _markerComponent: MarkLineComponent;\n\n private _isXYLayout: boolean;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markLineSpec = chartSpec[this.specKey];\n if (isEmpty(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return [\n {\n spec: markLineSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.markLine\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.markLine\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const {\n label = {},\n startSymbol = {} as IMarkerSymbol,\n endSymbol = {} as IMarkerSymbol\n } = this._spec as IMarkLineSpec;\n\n const markLineAttrs: MarkLineAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ],\n lineStyle: this._spec.line?.style as unknown as any,\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n if (startSymbol.visible) {\n markLineAttrs.startSymbol = {\n ...startSymbol,\n visible: true,\n style: transformToGraphic(startSymbol.style)\n };\n } else {\n markLineAttrs.startSymbol = {\n visible: false\n };\n }\n\n if (endSymbol.visible) {\n markLineAttrs.endSymbol = {\n ...endSymbol,\n visible: true,\n style: transformToGraphic(endSymbol.style)\n };\n } else {\n markLineAttrs.endSymbol = {\n visible: false\n };\n }\n\n const markLine = new MarkLineComponent(markLineAttrs);\n return markLine as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isCoordinateLayout = isValidCoordinates && (!isValidProcess || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n if (this._isXYLayout || (isValidCoordinates && isValidProcessX) || (isValidCoordinates && isValidProcessY)) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data.latestData[0].latestData || data.latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const labelAttrs = {\n ...markerComponentAttr.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : markerComponentAttr.label?.text\n };\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutPositionExcludeIndent();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutPositionExcludeIndent();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRectExcludeIndent().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRectExcludeIndent().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRectExcludeIndent().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRectExcludeIndent().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n\n const joinPoints = getInsertPoints(points[0], points[1], connectDirection, expandDistanceValue);\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset(points[0], points[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...labelAttrs,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n } else {\n this._markerComponent?.setAttributes({\n points: points,\n label: labelAttrs,\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\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 isCoordinateProcess = 'coordinates' in spec;\n\n const doXProcess = isXProcess && !isYProcess && !isY1Process;\n const doXYY1Process = isXProcess && isYProcess && isY1Process;\n const doYProcess = isYProcess && !isXProcess && !isX1Process;\n const doYXX1Process = isYProcess && isXProcess && isX1Process;\n const doXYProcess = isXProcess && isYProcess && isX1Process && isY1Process;\n\n this._markerData = relativeSeries.getViewData();\n\n if (!doXProcess && !doYProcess && !doXYY1Process && !doYXX1Process && !doXYProcess && !isCoordinateProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n this._isXYLayout = doXProcess || doXYY1Process || doYProcess || doYXX1Process || doXYProcess;\n\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = relativeSeries.getViewData();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n\n if (doXYProcess) {\n const { x, x1, y, y1 } = spec as IMarkLineXYSpec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y1)];\n } else if (doXProcess) {\n options = [this._processSpecX(spec.x)];\n } else if (doYProcess) {\n options = [this._processSpecY(spec.y)];\n } else if (doXYY1Process) {\n const { x, y, y1 } = spec as IMarkLineXYY1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x, y1)];\n } else if (doYXX1Process) {\n const { x, x1, y } = spec as IMarkLineYXX1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(MarkLine.type, MarkLine);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-point/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IImageGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender-core';\nimport type { IMarkPointItemPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec, ISymbolMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerRef, IMarkerSymbol } from '../../interface';\n\nexport interface IItemContent extends IMarkerRef {\n /**\n * 标注类型\n */\n type?: 'symbol' | 'text' | 'image' | 'richText';\n /**\n * 标注内容相对于定位点的位置\n */\n position?: IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * type为symbol时, symbol的样式\n */\n symbol?: {\n style?: ISymbolMarkSpec;\n };\n /**\n * type为image时, image的样式\n */\n image?: {\n style?: IImageGraphicAttribute;\n };\n /**\n * type为text时, text的样式\n * 'text'类型的ItemContent新增三种子类型:'text','rich','html'。配置在textStyle.type上。\n */\n text?: IMarkerLabelSpec;\n /**\n * type为rich text时, rich text的样式\n */\n richText?: {\n style?: IRichTextGraphicAttribute;\n };\n}\n\nexport type IItemLine<T extends Partial<IMarkerSymbol> = IMarkerSymbol> = {\n /** TODO:'type-opo' */\n /**\n * 引导线类型\n * 'type-s'表示起点和终点直接连线; 'type-do'表示包含一个折点,且折点x坐标为起点到终点的 1/2 x坐标,折点y坐标为起点y坐标;'type-op' 表示包含一个折点,且折点x坐标为起点x坐标,折点y坐标为终点y坐标;'type-po' 表示包含一个折点,且折点x坐标为终点x坐标,折点y坐标为起点y坐标\n * 引导线类型的具体形式参考:https://journals.sagepub.com/doi/10.1177/1473871618799500\n */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n /**\n * 引导线可见性\n */\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n /**\n * 装饰线可见性\n */\n visible?: boolean;\n /**\n * 装饰线的长度\n */\n length?: number;\n };\n /**\n * 引导线起点symbol样式\n */\n startSymbol?: T;\n /**\n * 引导线终点symbol样式\n */\n endSymbol?: T;\n /**\n * 引导线样式\n */\n line?: {\n style?: Omit<ILineMarkSpec, 'visible'>;\n };\n};\n\nexport interface IMarkPointTheme<T extends Partial<IMarkerSymbol> = Partial<IMarkerSymbol>> {\n /**\n * 标注引导线\n */\n itemLine?: IItemLine<T>;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-point/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IImageGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender-core';\nimport type { IMarkPointItemPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec, ISymbolMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerRef, IMarkerSymbol } from '../../interface';\n\nexport interface IItemContent extends IMarkerRef {\n /**\n * 标注类型\n */\n type?: 'symbol' | 'text' | 'image' | 'richText';\n /**\n * 标注内容相对于定位点的位置\n */\n position?: IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * 是否自动调整 item content 使其展示在 marker 可见区域内。\n * @default false\n * @since 1.8.7\n */\n confine?: boolean;\n /**\n * type为symbol时, symbol的样式\n */\n symbol?: {\n style?: ISymbolMarkSpec;\n };\n /**\n * type为image时, image的样式\n */\n image?: {\n style?: IImageGraphicAttribute;\n };\n /**\n * type为text时, text的样式\n * 'text'类型的ItemContent新增三种子类型:'text','rich','html'。配置在textStyle.type上。\n */\n text?: IMarkerLabelSpec;\n /**\n * type为rich text时, rich text的样式\n */\n richText?: {\n style?: IRichTextGraphicAttribute;\n };\n}\n\nexport type IItemLine<T extends Partial<IMarkerSymbol> = IMarkerSymbol> = {\n /** TODO:'type-opo' */\n /**\n * 引导线类型\n * 'type-s'表示起点和终点直接连线; 'type-do'表示包含一个折点,且折点x坐标为起点到终点的 1/2 x坐标,折点y坐标为起点y坐标;'type-op' 表示包含一个折点,且折点x坐标为起点x坐标,折点y坐标为终点y坐标;'type-po' 表示包含一个折点,且折点x坐标为终点x坐标,折点y坐标为起点y坐标\n * 引导线类型的具体形式参考:https://journals.sagepub.com/doi/10.1177/1473871618799500\n */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n /**\n * 引导线可见性\n */\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n /**\n * 装饰线可见性\n */\n visible?: boolean;\n /**\n * 装饰线的长度\n */\n length?: number;\n };\n /**\n * 引导线起点symbol样式\n */\n startSymbol?: T;\n /**\n * 引导线终点symbol样式\n */\n endSymbol?: T;\n /**\n * 引导线样式\n */\n line?: {\n style?: Omit<ILineMarkSpec, 'visible'>;\n };\n};\n\nexport interface IMarkPointTheme<T extends Partial<IMarkerSymbol> = Partial<IMarkerSymbol>> {\n /**\n * 标注引导线\n */\n itemLine?: IItemLine<T>;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n}\n"]}
|
|
@@ -79,13 +79,13 @@ export class MarkPoint extends BaseMarker {
|
|
|
79
79
|
return new MarkPointComponent(markPointAttrs);
|
|
80
80
|
}
|
|
81
81
|
_markerLayout() {
|
|
82
|
-
var _a, _b, _c, _d, _e;
|
|
82
|
+
var _a, _b, _c, _d, _e, _f;
|
|
83
83
|
const spec = this._spec, data = this._markerData, relativeSeries = this._relativeSeries, isXYLayout = "x" in spec && "y" in spec, isCoordinateLayout = "coordinate" in spec, isPositionLayout = "position" in spec, autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a;
|
|
84
84
|
let point;
|
|
85
85
|
isXYLayout ? point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0] : isCoordinateLayout ? point = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset)[0] : isPositionLayout && (point = positionLayout([ spec.position ], relativeSeries, spec.regionRelative)[0]);
|
|
86
86
|
const seriesData = this._relativeSeries.getViewData().latestData, dataPoints = data ? data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData : seriesData;
|
|
87
87
|
let limitRect;
|
|
88
|
-
if (spec.clip) {
|
|
88
|
+
if (spec.clip || (null === (_b = spec.itemContent) || void 0 === _b ? void 0 : _b.confine)) {
|
|
89
89
|
const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = computeClipRange([ relativeSeries.getRegion() ]);
|
|
90
90
|
limitRect = {
|
|
91
91
|
x: minX,
|
|
@@ -95,12 +95,12 @@ export class MarkPoint extends BaseMarker {
|
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
if (this._markerComponent) {
|
|
98
|
-
const attribute = null !== (
|
|
98
|
+
const attribute = null !== (_c = this._markerComponent.attribute) && void 0 !== _c ? _c : {}, textStyle = null !== (_e = null === (_d = attribute.itemContent) || void 0 === _d ? void 0 : _d.textStyle) && void 0 !== _e ? _e : {};
|
|
99
99
|
this._markerComponent.setAttributes({
|
|
100
100
|
position: point,
|
|
101
101
|
itemContent: Object.assign(Object.assign({}, attribute.itemContent), {
|
|
102
102
|
textStyle: Object.assign(Object.assign({}, textStyle), {
|
|
103
|
-
text: (null === (
|
|
103
|
+
text: (null === (_f = this._spec.itemContent.text) || void 0 === _f ? void 0 : _f.formatMethod) ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData) : textStyle.text
|
|
104
104
|
})
|
|
105
105
|
}),
|
|
106
106
|
limitRect: limitRect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : textStyle.text\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.itemContent?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : textStyle.text\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
|
|
@@ -47,7 +47,7 @@ export function isAggrSpec(spec) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
export function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange) {
|
|
50
|
-
const regionStart = startRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.
|
|
50
|
+
const regionStart = startRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.getLayoutPositionExcludeIndent(), regionEnd = endRelativeSeries.getRegion(), regionEndLayoutStartPoint = regionEnd.getLayoutPositionExcludeIndent(), regionWidth = Math.abs(Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) - Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRectExcludeIndent().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRectExcludeIndent().width)), regionHeight = Math.abs(Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) - Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRectExcludeIndent().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRectExcludeIndent().height)), refSeries = {
|
|
51
51
|
relativeSeries: relativeSeries,
|
|
52
52
|
startRelativeSeries: startRelativeSeries,
|
|
53
53
|
endRelativeSeries: endRelativeSeries
|
|
@@ -61,7 +61,7 @@ export function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeS
|
|
|
61
61
|
y: y
|
|
62
62
|
} ]);
|
|
63
63
|
} else if (isValid(datum.x)) {
|
|
64
|
-
const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = Math.max(regionStartLayoutStartPoint.y + regionStart.
|
|
64
|
+
const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRectExcludeIndent().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRectExcludeIndent().height), y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);
|
|
65
65
|
lines.push([ {
|
|
66
66
|
x: x,
|
|
67
67
|
y: y
|
|
@@ -70,7 +70,7 @@ export function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeS
|
|
|
70
70
|
y: y1
|
|
71
71
|
} ]);
|
|
72
72
|
} else if (isValid(datum.y)) {
|
|
73
|
-
const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint), x1 = Math.max(regionStartLayoutStartPoint.x + regionStart.
|
|
73
|
+
const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint), x1 = Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRectExcludeIndent().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRectExcludeIndent().width);
|
|
74
74
|
lines.push([ {
|
|
75
75
|
x: x,
|
|
76
76
|
y: y
|
|
@@ -86,7 +86,7 @@ export function coordinateLayout(data, relativeSeries, autoRange, coordinatesOff
|
|
|
86
86
|
const points = [], dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData, isArrayCoordinatesOffset = isArray(coordinatesOffset);
|
|
87
87
|
return dataPoints.forEach(((datum, index) => {
|
|
88
88
|
var _a, _b, _c, _d;
|
|
89
|
-
const refRelativeSeries = (null == datum ? void 0 : datum.getRefRelativeSeries) ? datum.getRefRelativeSeries() : relativeSeries, regionStart = refRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.
|
|
89
|
+
const refRelativeSeries = (null == datum ? void 0 : datum.getRefRelativeSeries) ? datum.getRefRelativeSeries() : relativeSeries, regionStart = refRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.getLayoutPositionExcludeIndent(), {width: regionWidth, height: regionHeight} = regionStart.getLayoutRectExcludeIndent();
|
|
90
90
|
let offsetX = 0, offsetY = 0;
|
|
91
91
|
if (coordinatesOffset) {
|
|
92
92
|
const currentCoordinatesOffset = isArrayCoordinatesOffset ? coordinatesOffset[index] : coordinatesOffset, x = currentCoordinatesOffset.x, y = currentCoordinatesOffset.y;
|
|
@@ -105,7 +105,7 @@ export function coordinateLayout(data, relativeSeries, autoRange, coordinatesOff
|
|
|
105
105
|
|
|
106
106
|
export function positionLayout(positions, series, regionRelative) {
|
|
107
107
|
if (regionRelative) {
|
|
108
|
-
const region = series.getRegion(), {x: regionStartX, y: regionStartY} = region.
|
|
108
|
+
const region = series.getRegion(), {x: regionStartX, y: regionStartY} = region.getLayoutPositionExcludeIndent(), {width: regionWidth, height: regionHeight} = region.getLayoutRectExcludeIndent();
|
|
109
109
|
return positions.map((position => {
|
|
110
110
|
let {x: x, y: y} = position;
|
|
111
111
|
return isPercent(x) && (x = convertPercentToValue(x, regionWidth)), x += regionStartX,
|
|
@@ -130,10 +130,9 @@ export function positionLayout(positions, series, regionRelative) {
|
|
|
130
130
|
export function computeClipRange(regions) {
|
|
131
131
|
let minX = 1 / 0, maxX = -1 / 0, minY = 1 / 0, maxY = -1 / 0;
|
|
132
132
|
return regions.forEach((region => {
|
|
133
|
-
region.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
region.getLayoutStartPoint().y + region.getLayoutRect().height > maxY && (maxY = region.getLayoutStartPoint().y + region.getLayoutRect().height);
|
|
133
|
+
const regionPos = region.getLayoutPositionExcludeIndent(), regionRect = region.getLayoutRectExcludeIndent();
|
|
134
|
+
regionPos.x < minX && (minX = regionPos.x), regionPos.x + regionRect.width > maxX && (maxX = regionPos.x + regionRect.width),
|
|
135
|
+
regionPos.y < minY && (minY = regionPos.y), regionPos.y + regionRect.height > maxY && (maxY = regionPos.y + regionRect.height);
|
|
137
136
|
})), {
|
|
138
137
|
minX: minX,
|
|
139
138
|
maxX: maxX,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\nimport { isValid, isNumber, array, minInArray, maxInArray, isArray, normalizePadding } from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent, transformToGraphic } from '../../util';\nimport type { IDataPos, IMarkerLabelSpec, MarkerPositionPoint } from './interface';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IRegion } from '../../region/interface';\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]: ICartesianSeries },\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n relativeSeries?.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.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]: ICartesianSeries },\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n relativeSeries.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.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\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: ICartesianSeries,\n endRelativeSeries: ICartesianSeries,\n relativeSeries: ICartesianSeries,\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 = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = relativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = relativeSeries.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 (isValid(datum.x)) {\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 (isValid(datum.y)) {\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 coordinateLayout(\n data: DataView,\n relativeSeries: ICartesianSeries,\n autoRange: boolean,\n coordinatesOffset: OffsetPoint[] | OffsetPoint\n) {\n const points: IPoint[] = [];\n const dataPoints = 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 = datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries;\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 positionLayout(positions: MarkerPositionPoint[], series: ISeries, regionRelative: boolean): IPoint[] {\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 positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, regionWidth);\n }\n x = (x as number) + regionStartX;\n if (isPercent(y)) {\n y = convertPercentToValue(y, regionHeight);\n }\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().getCanvasRect();\n return positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, canvasWidth);\n }\n if (isPercent(y)) {\n y = convertPercentToValue(y, canvasHeight);\n }\n return {\n x: x as number,\n y: y as number\n };\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 if (region.getLayoutStartPoint().x < minX) {\n minX = region.getLayoutStartPoint().x;\n }\n if (region.getLayoutStartPoint().x + region.getLayoutRect().width > maxX) {\n maxX = region.getLayoutStartPoint().x + region.getLayoutRect().width;\n }\n if (region.getLayoutStartPoint().y < minY) {\n minY = region.getLayoutStartPoint().y;\n }\n if (region.getLayoutStartPoint().y + region.getLayoutRect().height > maxY) {\n maxY = region.getLayoutStartPoint().y + region.getLayoutRect().height;\n }\n });\n return { minX, maxX, minY, maxY };\n}\n\nexport function transformLabelAttributes(label: IMarkerLabelSpec) {\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 ...transformToGraphic(labelBackground.style)\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 = transformToGraphic(style);\n }\n return labelAttrs;\n }\n return {\n visible: false\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, ISeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\nimport { isValid, isNumber, array, minInArray, maxInArray, isArray, normalizePadding } from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent, transformToGraphic } from '../../util';\nimport type { IDataPos, IMarkerLabelSpec, MarkerPositionPoint } from './interface';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IRegion } from '../../region/interface';\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]: ICartesianSeries },\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n relativeSeries?.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.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]: ICartesianSeries },\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries } = refSeries;\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n relativeSeries.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.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\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: ICartesianSeries,\n endRelativeSeries: ICartesianSeries,\n relativeSeries: ICartesianSeries,\n autoRange: boolean\n) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutPositionExcludeIndent();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutPositionExcludeIndent();\n\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRectExcludeIndent().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRectExcludeIndent().width\n )\n );\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRectExcludeIndent().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRectExcludeIndent().height\n )\n );\n\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n\n const lines: IPoint[][] = [];\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = relativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = relativeSeries.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 (isValid(datum.x)) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRectExcludeIndent().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRectExcludeIndent().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 (isValid(datum.y)) {\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.getLayoutRectExcludeIndent().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRectExcludeIndent().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 coordinateLayout(\n data: DataView,\n relativeSeries: ICartesianSeries,\n autoRange: boolean,\n coordinatesOffset: OffsetPoint[] | OffsetPoint\n) {\n const points: IPoint[] = [];\n const dataPoints = 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 = datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries;\n const regionStart = refRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutPositionExcludeIndent();\n\n const { width: regionWidth, height: regionHeight } = regionStart.getLayoutRectExcludeIndent();\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 positionLayout(positions: MarkerPositionPoint[], series: ISeries, regionRelative: boolean): IPoint[] {\n if (regionRelative) {\n const region = series.getRegion();\n const { x: regionStartX, y: regionStartY } = region.getLayoutPositionExcludeIndent();\n const { width: regionWidth, height: regionHeight } = region.getLayoutRectExcludeIndent();\n return positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, regionWidth);\n }\n x = (x as number) + regionStartX;\n if (isPercent(y)) {\n y = convertPercentToValue(y, regionHeight);\n }\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().getCanvasRect();\n return positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, canvasWidth);\n }\n if (isPercent(y)) {\n y = convertPercentToValue(y, canvasHeight);\n }\n return {\n x: x as number,\n y: y as number\n };\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.getLayoutPositionExcludeIndent();\n const regionRect = region.getLayoutRectExcludeIndent();\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) {\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 ...transformToGraphic(labelBackground.style)\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 = transformToGraphic(style);\n }\n return labelAttrs;\n }\n return {\n visible: false\n };\n}\n"]}
|
|
@@ -43,6 +43,10 @@ function getSvgHtml(option, valueToHtml) {
|
|
|
43
43
|
const bounds = pathModel.bounds;
|
|
44
44
|
viewBox = `${bounds.x1} ${bounds.y1} ${bounds.width()} ${bounds.height()}`;
|
|
45
45
|
}
|
|
46
|
+
if ("0px" !== lineWidth) {
|
|
47
|
+
const [x, y, w, h] = viewBox.split(" ").map((n => Number(n))), lw = Number(lineWidth.slice(0, -2));
|
|
48
|
+
viewBox = `${x - lw / 2} ${y - lw / 2} ${w + lw} ${h + lw}`;
|
|
49
|
+
}
|
|
46
50
|
if (!fill || isString(fill) || hollow) return fillString = hollow ? "none" : fill ? valueToHtml(fill) : "currentColor",
|
|
47
51
|
`\n <svg width="${size}" height="${size}" viewBox="${viewBox}"\n style="display: inline-block; vertical-align: middle; margin-top: ${marginTop};">\n <path\n d="${path}"\n style="fill: ${fillString}; stroke: ${getStroke()}; stroke-width: ${lineWidth}"\n >\n </path>\n </svg>`;
|
|
48
52
|
if (isObject(fill)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/handler/dom/model/shape-model.ts"],"names":[],"mappings":"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","file":"shape-model.js","sourcesContent":["import type { IGradientColor, ILinearGradient } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Symbol } from '@visactor/vrender-core';\n\nimport { isObject, isString } from '@visactor/vutils';\nimport type { ShapeType } from '../../../../../typings';\nimport { BaseTooltipModel } from './base-tooltip-model';\nimport { pixelPropertyStrToNumber } from '../util';\n\nexport interface IShapeSvgOption {\n hasShape?: boolean;\n symbolType?: ShapeType | string;\n size?: string;\n fill?: string | IGradientColor;\n stroke?: string;\n lineWidth?: number;\n hollow?: boolean;\n marginTop?: string;\n index?: number;\n}\n\nexport class ShapeModel extends BaseTooltipModel {\n svg: SVGElement;\n\n private _svgHtmlCache: string;\n\n init(classList?: string[], id?: string, tag?: keyof HTMLElementTagNameMap): void {\n if (!this.product) {\n const container = this.createElement(tag ?? 'div', [...(classList ?? []), 'shape'], undefined, id);\n this.product = container;\n }\n }\n\n setStyle(style?: Partial<CSSStyleDeclaration>, option?: IShapeSvgOption): void {\n super.setStyle(style);\n this.setSvg(option);\n }\n\n setContent(option: IShapeSvgOption) {\n this.setSvg(option);\n }\n\n setSvg(option?: IShapeSvgOption) {\n const html = getSvgHtml(option, this._option.valueToHtml);\n if (this.product && html !== this._svgHtmlCache) {\n this._svgHtmlCache = html;\n this.product.innerHTML = html;\n }\n }\n\n release(): void {\n super.release();\n this._svgHtmlCache = '';\n }\n}\n\nfunction getSvgHtml(option: IShapeSvgOption | undefined, valueToHtml: (value: any) => string) {\n if (!option?.hasShape || !option.symbolType) {\n return '';\n }\n\n const { symbolType, fill, stroke, hollow = false } = option;\n const size = option.size ? valueToHtml(option.size) : '8px';\n const marginTop = option.marginTop ? valueToHtml(option.marginTop) : '0px';\n const lineWidth = option.lineWidth ? valueToHtml(option.lineWidth) + 'px' : '0px';\n let fillString: string = 'currentColor';\n const getStroke = () => (stroke ? valueToHtml(stroke) : fillString);\n\n const symbol = new Symbol({ symbolType, size: pixelPropertyStrToNumber(size) as number, fill: true });\n const pathModel = symbol.getParsedPath().path ?? symbol.getParsedPath().pathStr;\n const path = pathModel.toString();\n let viewBox = '-0.5 -0.5 1 1';\n if (!isString(pathModel)) {\n const bounds = pathModel.bounds;\n viewBox = `${bounds.x1} ${bounds.y1} ${bounds.width()} ${bounds.height()}`;\n }\n\n if (!fill || isString(fill) || hollow) {\n fillString = hollow ? 'none' : fill ? valueToHtml(fill) : 'currentColor';\n return `\n <svg width=\"${size}\" height=\"${size}\" viewBox=\"${viewBox}\"\n style=\"display: inline-block; vertical-align: middle; margin-top: ${marginTop};\">\n <path\n d=\"${path}\"\n style=\"fill: ${fillString}; stroke: ${getStroke()}; stroke-width: ${lineWidth}\"\n >\n </path>\n </svg>`;\n }\n if (isObject(fill)) {\n fillString = 'gradientColor' + option.index ?? '';\n let gradient = '';\n const stops = (fill.stops ?? [])\n .map(s => `<stop offset=\"${valueToHtml(s.offset.toString())}\" stop-color=\"${valueToHtml(s.color)}\"/>`)\n .join('');\n if ((fill as IGradientColor).gradient === 'radial') {\n gradient = `<radialGradient id=\"${fillString}\" cx=\"50%\" cy=\"50%\" r=\"50%\" fx=\"0%\" fy=\"0%\">\n ${stops}\n </radialGradient>`;\n } else if ((fill as IGradientColor).gradient === 'linear') {\n gradient = `<linearGradient id=\"${fillString}\" x1=\"${\n (((fill as ILinearGradient).x0 as number) ?? 0) * 100\n }%\" y1=\"${(((fill as ILinearGradient).y0 as number) ?? 0) * 100}%\" x2=\"${\n (((fill as ILinearGradient).x1 as number) ?? 0) * 100\n }%\" y2=\"${(((fill as ILinearGradient).y1 as number) ?? 0) * 100}%\">\n ${stops}\n </linearGradient>`;\n }\n return `\n <svg width=\"${size}\" height=\"${size}\" viewBox=\"-0.5 -0.5 1 1\"\n style=\"display: inline-block; vertical-align: middle; margin-top: ${marginTop};\">\n ${gradient}\n <path\n d=\"${path}\"\n style=\"fill: url(#${fillString}); stroke: ${getStroke()}; stroke-width: ${lineWidth}\"\n >\n </path>\n </svg>`;\n }\n\n return '';\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/handler/dom/model/shape-model.ts"],"names":[],"mappings":"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","file":"shape-model.js","sourcesContent":["import type { IGradientColor, ILinearGradient } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { Symbol } from '@visactor/vrender-core';\n\nimport { isObject, isString } from '@visactor/vutils';\nimport type { ShapeType } from '../../../../../typings';\nimport { BaseTooltipModel } from './base-tooltip-model';\nimport { pixelPropertyStrToNumber } from '../util';\n\nexport interface IShapeSvgOption {\n hasShape?: boolean;\n symbolType?: ShapeType | string;\n size?: string;\n fill?: string | IGradientColor;\n stroke?: string;\n lineWidth?: number;\n hollow?: boolean;\n marginTop?: string;\n index?: number;\n}\n\nexport class ShapeModel extends BaseTooltipModel {\n svg: SVGElement;\n\n private _svgHtmlCache: string;\n\n init(classList?: string[], id?: string, tag?: keyof HTMLElementTagNameMap): void {\n if (!this.product) {\n const container = this.createElement(tag ?? 'div', [...(classList ?? []), 'shape'], undefined, id);\n this.product = container;\n }\n }\n\n setStyle(style?: Partial<CSSStyleDeclaration>, option?: IShapeSvgOption): void {\n super.setStyle(style);\n this.setSvg(option);\n }\n\n setContent(option: IShapeSvgOption) {\n this.setSvg(option);\n }\n\n setSvg(option?: IShapeSvgOption) {\n const html = getSvgHtml(option, this._option.valueToHtml);\n if (this.product && html !== this._svgHtmlCache) {\n this._svgHtmlCache = html;\n this.product.innerHTML = html;\n }\n }\n\n release(): void {\n super.release();\n this._svgHtmlCache = '';\n }\n}\n\nfunction getSvgHtml(option: IShapeSvgOption | undefined, valueToHtml: (value: any) => string) {\n if (!option?.hasShape || !option.symbolType) {\n return '';\n }\n\n const { symbolType, fill, stroke, hollow = false } = option;\n const size = option.size ? valueToHtml(option.size) : '8px';\n const marginTop = option.marginTop ? valueToHtml(option.marginTop) : '0px';\n const lineWidth = option.lineWidth ? valueToHtml(option.lineWidth) + 'px' : '0px';\n let fillString: string = 'currentColor';\n const getStroke = () => (stroke ? valueToHtml(stroke) : fillString);\n\n const symbol = new Symbol({ symbolType, size: pixelPropertyStrToNumber(size) as number, fill: true });\n const pathModel = symbol.getParsedPath().path ?? symbol.getParsedPath().pathStr;\n const path = pathModel.toString();\n let viewBox = '-0.5 -0.5 1 1';\n if (!isString(pathModel)) {\n const bounds = pathModel.bounds;\n viewBox = `${bounds.x1} ${bounds.y1} ${bounds.width()} ${bounds.height()}`;\n }\n\n // svg 不支持内描边,需要手动将描边空间预留在 viewBox 上\n if (lineWidth !== '0px') {\n const [x, y, w, h] = viewBox.split(' ').map(n => Number(n));\n const lw = Number(lineWidth.slice(0, -2));\n viewBox = `${x - lw / 2} ${y - lw / 2} ${w + lw} ${h + lw}`;\n }\n\n if (!fill || isString(fill) || hollow) {\n fillString = hollow ? 'none' : fill ? valueToHtml(fill) : 'currentColor';\n return `\n <svg width=\"${size}\" height=\"${size}\" viewBox=\"${viewBox}\"\n style=\"display: inline-block; vertical-align: middle; margin-top: ${marginTop};\">\n <path\n d=\"${path}\"\n style=\"fill: ${fillString}; stroke: ${getStroke()}; stroke-width: ${lineWidth}\"\n >\n </path>\n </svg>`;\n }\n if (isObject(fill)) {\n fillString = 'gradientColor' + option.index ?? '';\n let gradient = '';\n const stops = (fill.stops ?? [])\n .map(s => `<stop offset=\"${valueToHtml(s.offset.toString())}\" stop-color=\"${valueToHtml(s.color)}\"/>`)\n .join('');\n if ((fill as IGradientColor).gradient === 'radial') {\n gradient = `<radialGradient id=\"${fillString}\" cx=\"50%\" cy=\"50%\" r=\"50%\" fx=\"0%\" fy=\"0%\">\n ${stops}\n </radialGradient>`;\n } else if ((fill as IGradientColor).gradient === 'linear') {\n gradient = `<linearGradient id=\"${fillString}\" x1=\"${\n (((fill as ILinearGradient).x0 as number) ?? 0) * 100\n }%\" y1=\"${(((fill as ILinearGradient).y0 as number) ?? 0) * 100}%\" x2=\"${\n (((fill as ILinearGradient).x1 as number) ?? 0) * 100\n }%\" y2=\"${(((fill as ILinearGradient).y1 as number) ?? 0) * 100}%\">\n ${stops}\n </linearGradient>`;\n }\n return `\n <svg width=\"${size}\" height=\"${size}\" viewBox=\"-0.5 -0.5 1 1\"\n style=\"display: inline-block; vertical-align: middle; margin-top: ${marginTop};\">\n ${gradient}\n <path\n d=\"${path}\"\n style=\"fill: url(#${fillString}); stroke: ${getStroke()}; stroke-width: ${lineWidth}\"\n >\n </path>\n </svg>`;\n }\n\n return '';\n}\n"]}
|
|
@@ -29,7 +29,7 @@ export class TitleModel extends BaseTooltipModel {
|
|
|
29
29
|
textSpan.init(), this.textSpan = textSpan, this.children[textSpan.childIndex] = textSpan;
|
|
30
30
|
}
|
|
31
31
|
setStyle(style) {
|
|
32
|
-
var _a, _b, _c;
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
33
|
const tooltipStyle = this._option.getTooltipStyle(), tooltipActual = this._option.getTooltipActual(), {title: title} = tooltipActual;
|
|
34
34
|
super.setStyle(mergeSpec({}, defaultH2Style, tooltipStyle.title, style)), null === (_a = this.shape) || void 0 === _a || _a.setStyle({
|
|
35
35
|
paddingRight: null === (_b = tooltipStyle.shapeColumn.common) || void 0 === _b ? void 0 : _b.marginRight
|
|
@@ -39,10 +39,12 @@ export class TitleModel extends BaseTooltipModel {
|
|
|
39
39
|
size: null === (_c = tooltipStyle.shapeColumn.common) || void 0 === _c ? void 0 : _c.width,
|
|
40
40
|
fill: null == title ? void 0 : title.shapeColor,
|
|
41
41
|
hollow: null == title ? void 0 : title.shapeHollow
|
|
42
|
+
}), null === (_d = this.textSpan) || void 0 === _d || _d.setStyle({
|
|
43
|
+
color: "inherit"
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
setContent() {
|
|
45
|
-
var _a, _b, _c, _d, _e;
|
|
47
|
+
var _a, _b, _c, _d, _e, _f;
|
|
46
48
|
const tooltipStyle = this._option.getTooltipStyle(), tooltipActual = this._option.getTooltipActual(), tooltipAttributes = this._option.getTooltipAttributes(), {title: title} = tooltipActual;
|
|
47
49
|
this.init(), null === (_a = this.shape) || void 0 === _a || _a.setStyle(void 0, {
|
|
48
50
|
hasShape: null == title ? void 0 : title.hasShape,
|
|
@@ -50,7 +52,9 @@ export class TitleModel extends BaseTooltipModel {
|
|
|
50
52
|
size: null === (_b = tooltipStyle.shapeColumn.common) || void 0 === _b ? void 0 : _b.width,
|
|
51
53
|
fill: null == title ? void 0 : title.shapeColor,
|
|
52
54
|
hollow: null == title ? void 0 : title.shapeHollow
|
|
53
|
-
}), null === (_c = this.textSpan) || void 0 === _c || _c.
|
|
55
|
+
}), null === (_c = this.textSpan) || void 0 === _c || _c.setStyle({
|
|
56
|
+
color: "inherit"
|
|
57
|
+
}), null === (_d = this.textSpan) || void 0 === _d || _d.setContent(null == title ? void 0 : title.value, null === (_f = null === (_e = tooltipAttributes.title) || void 0 === _e ? void 0 : _e.value) || void 0 === _f ? void 0 : _f.multiLine);
|
|
54
58
|
}
|
|
55
59
|
release() {
|
|
56
60
|
super.release(), this.shape = null, this.textSpan = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/handler/dom/model/title-model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/handler/dom/model/title-model.ts"],"names":[],"mappings":"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","file":"title-model.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport { defaultH2Style } from './style-constants';\nimport { BaseTooltipModel } from './base-tooltip-model';\nimport { ShapeModel } from './shape-model';\nimport { TextModel } from './text-model';\nimport { mergeSpec } from '../../../../../util/spec/merge-spec';\n\nexport class TitleModel extends BaseTooltipModel {\n shape: Maybe<ShapeModel>;\n textSpan: Maybe<TextModel>;\n\n init(): void {\n const tooltipActual = this._option.getTooltipActual();\n\n if (!this.product) {\n this.product = this.createElement('h2');\n }\n\n const { title } = tooltipActual;\n if (title?.hasShape && title?.shapeType) {\n if (!this.shape) {\n this._initShape();\n }\n } else if (this.shape) {\n this._releaseShape();\n }\n\n if (!this.textSpan) {\n this._initTextSpan();\n }\n }\n\n private _initShape() {\n const shape = new ShapeModel(this.product!, this._option, 0);\n shape.init();\n this.shape = shape;\n this.children[shape.childIndex] = shape;\n }\n\n private _releaseShape() {\n if (!this.shape) {\n return;\n }\n this.shape.release();\n delete this.children[this.shape.childIndex];\n this.shape = null;\n }\n\n private _initTextSpan() {\n const textSpan = new TextModel(this.product!, this._option, 1);\n textSpan.init();\n this.textSpan = textSpan;\n this.children[textSpan.childIndex] = textSpan;\n }\n\n setStyle(style?: Partial<CSSStyleDeclaration>): void {\n const tooltipStyle = this._option.getTooltipStyle();\n const tooltipActual = this._option.getTooltipActual();\n\n const { title } = tooltipActual;\n super.setStyle(mergeSpec({}, defaultH2Style, tooltipStyle.title, style));\n\n this.shape?.setStyle(\n {\n paddingRight: tooltipStyle.shapeColumn.common?.marginRight\n },\n {\n hasShape: title?.hasShape,\n symbolType: title?.shapeType,\n size: tooltipStyle.shapeColumn.common?.width,\n fill: title?.shapeColor,\n hollow: title?.shapeHollow\n }\n );\n this.textSpan?.setStyle({\n color: 'inherit'\n });\n }\n\n setContent(): void {\n const tooltipStyle = this._option.getTooltipStyle();\n const tooltipActual = this._option.getTooltipActual();\n const tooltipAttributes = this._option.getTooltipAttributes();\n\n const { title } = tooltipActual;\n this.init();\n this.shape?.setStyle(undefined, {\n hasShape: title?.hasShape,\n symbolType: title?.shapeType,\n size: tooltipStyle.shapeColumn.common?.width,\n fill: title?.shapeColor,\n hollow: title?.shapeHollow\n });\n this.textSpan?.setStyle({\n color: 'inherit'\n });\n this.textSpan?.setContent(title?.value, tooltipAttributes.title?.value?.multiLine);\n }\n\n release(): void {\n super.release();\n this.shape = null;\n this.textSpan = null;\n }\n}\n"]}
|
|
@@ -28,7 +28,8 @@ export function showTooltip(datum, options, tooltipHandler, componentOptions) {
|
|
|
28
28
|
const domain = null !== (_d = null === (_c = null === (_b = null === (_a = series.getViewDataStatistics) || void 0 === _a ? void 0 : _a.call(series)) || void 0 === _b ? void 0 : _b.latestData[field]) || void 0 === _c ? void 0 : _c.values) && void 0 !== _d ? _d : [], nextList = [];
|
|
29
29
|
dimensionDataList.forEach((dimensionData => {
|
|
30
30
|
domain.forEach((value => {
|
|
31
|
-
|
|
31
|
+
var _a;
|
|
32
|
+
const newData = null !== (_a = null == dimensionData ? void 0 : dimensionData.slice()) && void 0 !== _a ? _a : [];
|
|
32
33
|
newData[i] = value, nextList.push(newData);
|
|
33
34
|
}));
|
|
34
35
|
})), dimensionDataList = nextList;
|
|
@@ -156,7 +157,7 @@ export function showTooltip(datum, options, tooltipHandler, componentOptions) {
|
|
|
156
157
|
});
|
|
157
158
|
}
|
|
158
159
|
}));
|
|
159
|
-
const activeType = null !== (_a = opt.activeType) && void 0 !== _a ? _a : markInfoList.length > 1 ? "dimension" : "mark", regionPos = region.
|
|
160
|
+
const activeType = null !== (_a = opt.activeType) && void 0 !== _a ? _a : markInfoList.length > 1 ? "dimension" : "mark", regionPos = region.getLayoutPositionExcludeIndent(), regionRect = region.getLayoutRectExcludeIndent(), container = componentOptions.globalInstance.getContainer(), containerPos = Object.assign({
|
|
160
161
|
x: 0,
|
|
161
162
|
y: 0
|
|
162
163
|
}, container ? getElementAbsolutePosition(container) : {}), getOriginDatum = info => {
|