@visactor/vchart 1.7.4 → 1.7.5
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 +29256 -32302
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base-chart.js +2 -1
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +5 -2
- package/cjs/component/axis/base-axis.js +41 -14
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +2 -1
- package/cjs/component/axis/cartesian/axis.js +10 -28
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.js +9 -17
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +11 -15
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +2 -0
- package/cjs/component/axis/polar/axis.js +10 -26
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/brush/brush.js +2 -3
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +26 -24
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/geo/projection.js +10 -6
- package/cjs/component/geo/projection.js.map +1 -1
- package/cjs/component/marker/base-marker.js +4 -10
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js +16 -15
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js +22 -21
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js +30 -26
- package/cjs/component/marker/mark-point/mark-point.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/event/events/dimension/util/cartesian.js +5 -17
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/common.d.ts +1 -0
- package/cjs/event/events/dimension/util/common.js +9 -1
- package/cjs/event/events/dimension/util/common.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js +4 -17
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/series/area/area.js +8 -8
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +2 -2
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar.js +3 -3
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +2 -2
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js +2 -2
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/correlation/correlation.js +30 -26
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.js +2 -2
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel.js +8 -8
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/line/interface.d.ts +2 -2
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +2 -0
- package/cjs/series/pie/pie.js +29 -23
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +3 -0
- package/cjs/series/rose/rose.js +15 -2
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/sankey.js +8 -7
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/interface.d.ts +2 -2
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +3 -0
- package/cjs/series/word-cloud/base.js +86 -73
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.d.ts +22 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +29 -148
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/typings/spec/chart.d.ts +2 -1
- package/cjs/typings/spec/chart.js.map +1 -1
- package/cjs/util/model.d.ts +1 -0
- package/cjs/util/model.js +15 -1
- package/cjs/util/model.js.map +1 -1
- package/esm/chart/base-chart.js +2 -1
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +5 -2
- package/esm/component/axis/base-axis.js +47 -13
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +2 -1
- package/esm/component/axis/cartesian/axis.js +9 -34
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.js +9 -17
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +7 -5
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +2 -0
- package/esm/component/axis/polar/axis.js +9 -32
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/brush/brush.js +2 -3
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +26 -24
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/geo/projection.js +10 -6
- package/esm/component/geo/projection.js.map +1 -1
- package/esm/component/marker/base-marker.js +5 -9
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js +16 -15
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js +22 -21
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js +30 -26
- package/esm/component/marker/mark-point/mark-point.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/event/events/dimension/util/cartesian.js +7 -18
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/common.d.ts +1 -0
- package/esm/event/events/dimension/util/common.js +5 -0
- package/esm/event/events/dimension/util/common.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js +6 -17
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/series/area/area.js +8 -8
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +2 -2
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar.js +3 -3
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/interface.d.ts +2 -2
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js +2 -2
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/correlation/correlation.js +30 -26
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.js +2 -2
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel.js +8 -8
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/line/interface.d.ts +2 -2
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/pie/pie.d.ts +2 -0
- package/esm/series/pie/pie.js +26 -19
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/rose/rose.d.ts +3 -0
- package/esm/series/rose/rose.js +15 -2
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/sankey.js +8 -7
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/interface.d.ts +2 -2
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +3 -0
- package/esm/series/word-cloud/base.js +86 -73
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.d.ts +22 -1
- package/esm/series/word-cloud/word-cloud-3d.js +29 -153
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/typings/spec/chart.d.ts +2 -1
- package/esm/typings/spec/chart.js.map +1 -1
- package/esm/util/model.d.ts +1 -0
- package/esm/util/model.js +12 -0
- package/esm/util/model.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/brush/brush.ts"],"names":[],"mappings":"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","file":"brush.js","sourcesContent":["import { AttributeLevel, ChartEvent, LayoutZIndex } from '../../constant';\nimport { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { Brush as BrushComponent, IOperateType } from '@visactor/vrender-components';\nimport type { IBounds, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isNil, polygonIntersectPolygon, isValid } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type {\n IGraphic,\n IGroup,\n INode,\n IPolygon,\n IRectGraphicAttribute,\n ISymbolGraphicAttribute\n} from '@visactor/vrender-core';\nimport { transformToGraphic } from '../../util/style';\nimport type { ISeries } from '../../series/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BrushInteractiveRangeAttr, IBrush, IBrushSpec, selectedItemStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\n\nconst IN_BRUSH_STATE = 'inBrush';\nconst OUT_BRUSH_STATE = 'outOfBrush';\n\nexport class Brush extends BaseComponent<IBrushSpec> implements IBrush {\n layoutType: 'none' = 'none';\n static type = ComponentTypeEnum.brush;\n type = ComponentTypeEnum.brush;\n name: string = ComponentTypeEnum.brush;\n\n layoutZIndex: number = LayoutZIndex.Brush;\n\n // brush组件\n protected _brushComponents!: BrushComponent[];\n protected _relativeRegions!: IRegion[];\n protected _linkedSeries: ISeries[] = [];\n\n private _itemMap: { [regionId: string | number]: IMark[] } = {};\n private _linkedItemMap: { [seriesId: string | number]: IMark[] } = {};\n\n // 用brushName做分组管理的原因是: 如果有多个brush, 某个图元A brush内, 但在B brush外, 该图元state会被B误变成out of brush。 但其实该图元只有在A brush外才能被判断out of brush\n // 用dict做存储因为方便查找和删减对应图元\n protected _inBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _outOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n protected _linkedInBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _linkedOutOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n\n private _needInitOutState: boolean = true;\n private _cacheInteractiveRangeAttrs: BrushInteractiveRangeAttr[] = [];\n\n private _needEnablePickable: boolean = false;\n\n init() {\n const inBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.inBrush);\n const outOfBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.outOfBrush);\n // 写入mark state, 便于后续state管理\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getActiveMarks().forEach((m: IMark) => {\n if (m) {\n s.setMarkStyle(\n m,\n {\n ...inBrushMarkAttr\n },\n IN_BRUSH_STATE,\n AttributeLevel.Series\n );\n s.setMarkStyle(\n m,\n {\n ...outOfBrushMarkAttr\n },\n OUT_BRUSH_STATE,\n AttributeLevel.Series\n );\n }\n });\n });\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const brushSpec = spec.brush;\n // brush不支持数组的形式配置\n if (isNil(brushSpec) || brushSpec.visible === false) {\n return undefined;\n }\n\n return [new Brush(brushSpec, options)];\n }\n\n created() {\n super.created();\n\n // event\n this.initEvent();\n this._bindRegions();\n this._bindLinkedSeries();\n this._initNeedOperatedItem();\n }\n\n protected _extendDataInBrush(elementsMap: { [brushName: string]: { [elementKey: string]: IElement } }) {\n const data = [];\n for (const brushName in elementsMap) {\n for (const elementKey in elementsMap[brushName]) {\n data.push(elementsMap[brushName][elementKey].data[0]);\n }\n }\n return data;\n }\n\n protected _extendDatumOutOfBrush(elementsMap: { [elementKey: string]: IElement }) {\n const data = [];\n for (const elementKey in elementsMap) {\n data.push(elementsMap[elementKey].data[0]);\n }\n return data;\n }\n\n protected _getBrushInteractiveAttr(region: IRegion) {\n const seriesRegionStartX = region.getLayoutStartPoint().x;\n const seriesRegionEndX = seriesRegionStartX + region.getLayoutRect().width;\n const seriesRegionStartY = region.getLayoutStartPoint().y;\n const seriesRegionEndY = seriesRegionStartY + region.getLayoutRect().height;\n return {\n interactiveRange: {\n minY: seriesRegionStartY,\n maxY: seriesRegionEndY,\n minX: seriesRegionStartX,\n maxX: seriesRegionEndX\n },\n xRange: [seriesRegionStartX, seriesRegionEndX],\n yRange: [seriesRegionStartY, seriesRegionEndY]\n } as BrushInteractiveRangeAttr;\n }\n\n protected _updateBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n // 布局变化后, 更新可交互范围\n const brushComponent = this._brushComponents[componentIndex];\n brushComponent.setAttributes(interactiveAttr as any);\n\n // 布局变化后, 更新brush 和 图元状态\n // 方案一:\n // TODO: 更新mask位置(保持选框在画布中的相对位置)\n // TODO: 是否更新mask大小有待商榷(保持选框位置和图元高亮区域一致)\n\n // 方案二: 清空brushMask 和 图元高亮状态\n this._initMarkBrushState(componentIndex, '');\n brushComponent.children[0].removeAllChild();\n this._needInitOutState = true;\n }\n\n protected _createBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n const brush = new BrushComponent({\n zIndex: this.layoutZIndex,\n brushStyle: transformToGraphic(this._spec?.style),\n ...interactiveAttr,\n ...this._spec\n });\n brush.id = this._spec.id ?? `brush-${this.id}`;\n this.getContainer().add(brush as unknown as INode);\n const { brushMode = 'single' } = this._spec;\n this._brushComponents.push(brush);\n this._cacheInteractiveRangeAttrs.push(interactiveAttr);\n brush.setUpdateDragMaskCallback(\n (operateParams: {\n operateType: string;\n operateMask: IPolygon;\n operatedMaskAABBBounds: { [name: string]: IBounds };\n }) => {\n const { operateType, operateMask } = operateParams;\n let operateTypeCache = operateType;\n\n // 需要重置out状态的情况:\n // _needInitOutState:框选模式为'single' 且 开始后的第一次drawing时(这里不选择drawStart而选择第一次触发drawing的时机是因为点击空白处也会触发drawStart), 需要重置图元状态\n if (this._needInitOutState && brushMode === 'single' && operateType === IOperateType.drawing) {\n this._initMarkBrushState(componentIndex, OUT_BRUSH_STATE);\n }\n\n // 需要重置初始状态的情况:点击空白处clear所有状态\n // 是否点击到空白处由图表的事件监听判断\n this._option\n ?.getChart()\n ?.getEvent()\n ?.on('click', p => {\n if (!p.mark && operateTypeCache === IOperateType.brushClear) {\n this._initMarkBrushState(componentIndex, '');\n this._needInitOutState = true;\n operateTypeCache = null;\n }\n });\n\n // 下面的步骤是为了标记出第一次drawing状态的\n if (operateType === IOperateType.drawing) {\n this._needInitOutState = false;\n this._needEnablePickable = true;\n }\n if (operateType === IOperateType.drawEnd) {\n this._needInitOutState = true;\n this._needEnablePickable = false;\n }\n\n this._reconfigItem(operateMask, region);\n this._reconfigLinkedItem(operateMask, region);\n\n let eventType: string = ChartEvent.brushChange;\n if (operateType === IOperateType.drawStart || operateType === IOperateType.moveStart) {\n eventType = ChartEvent.brushStart;\n } else if (operateType === IOperateType.drawEnd || operateType === IOperateType.moveEnd) {\n eventType = ChartEvent.brushEnd;\n } else {\n eventType = ChartEvent.brushChange;\n }\n\n this.event.emit(eventType, {\n model: this,\n value: {\n // 操作类型\n operateType,\n // 正在操作的region\n operateRegion: region,\n // 在选框内的 element data\n inBrushData: this._extendDataInBrush(this._inBrushElementsMap),\n // 在选框外的 element data\n outOfBrushData: this._extendDatumOutOfBrush(this._outOfBrushElementsMap),\n // 被链接的系列中:在选框内的 element data\n linkInBrushData: this._extendDataInBrush(this._linkedInBrushElementsMap),\n // 被链接的系列中:在选框外的 element data\n linkOutOfBrushData: this._extendDatumOutOfBrush(this._linkedOutOfBrushElementsMap),\n // 在选框内的 vgrammar elements\n inBrushElementsMap: this._inBrushElementsMap,\n // 在选框外的 vgrammar elements\n outOfBrushElementsMap: this._outOfBrushElementsMap,\n // 被链接的系列中:在选框内的 vgrammar elements\n linkedInBrushElementsMap: this._linkedInBrushElementsMap,\n // 被链接的系列中:在选框外的 vgrammar elements\n linkedOutOfBrushElementsMap: this._linkedOutOfBrushElementsMap\n }\n });\n }\n );\n }\n\n private _transformBrushedMarkAttr(brushedStyle: selectedItemStyle) {\n const styleResult: any = {};\n if (brushedStyle?.symbol) {\n styleResult.symbolType = brushedStyle.symbol;\n }\n if (brushedStyle?.symbolSize) {\n styleResult.size = brushedStyle.symbolSize;\n }\n if (brushedStyle?.color) {\n styleResult.fill = brushedStyle.color;\n }\n if (brushedStyle?.colorAlpha) {\n styleResult.fillOpacity = brushedStyle.colorAlpha;\n }\n return {\n ...transformToGraphic(brushedStyle),\n ...styleResult\n };\n }\n\n private _reconfigItem(operateMask: IPolygon, region: IRegion) {\n // 遍历图元, 更新状态\n this._itemMap[region.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (this._outOfBrushElementsMap?.[elementKey] && this._isBrushContainItem(operateMask, graphicItem)) {\n el.addState(IN_BRUSH_STATE);\n if (!this._inBrushElementsMap[operateMask?.name]) {\n this._inBrushElementsMap[operateMask?.name] = {};\n }\n this._inBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._outOfBrushElementsMap[elementKey];\n } else if (\n this._inBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem)\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._outOfBrushElementsMap[elementKey] = el;\n delete this._inBrushElementsMap[operateMask.name][elementKey];\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n\n private _reconfigLinkedItem(operateMask: IPolygon, region: IRegion) {\n const seriesId = region.getSeries().map(s => s.id);\n this._linkedSeries.forEach((s: ISeries) => {\n if (!seriesId.includes(s.id)) {\n const regionOffsetX = s.getRegion().getLayoutStartPoint().x - region.getLayoutStartPoint().x;\n const regionOffsetY = s.getRegion().getLayoutStartPoint().y - region.getLayoutStartPoint().y;\n\n this._linkedItemMap[s.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (\n this._linkedOutOfBrushElementsMap?.[elementKey] &&\n this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.addState(IN_BRUSH_STATE);\n if (!this._linkedInBrushElementsMap[operateMask?.name]) {\n this._linkedInBrushElementsMap[operateMask?.name] = {};\n }\n this._linkedInBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._linkedOutOfBrushElementsMap[elementKey];\n } else if (\n this._linkedInBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n });\n }\n\n private _isBrushContainItem(brushMask: IPolygon, item: IGraphic, linkedOffset?: { dx: number; dy: number }) {\n if (!brushMask?.globalTransMatrix || !brushMask?.attribute?.points) {\n return false;\n }\n\n // 根据变换矩阵得到brushMask的实际坐标\n const points = brushMask?.attribute?.points ?? [];\n const { a, b, c, d, e, f } = brushMask.globalTransMatrix;\n\n const dx = linkedOffset?.dx || 0;\n const dy = linkedOffset?.dy || 0;\n\n const pointsCoord = points.map((p: IPointLike) => {\n return {\n x: a * p.x + c * p.y + e + dx,\n y: b * p.x + d * p.y + f + dy\n };\n });\n\n const globalAABBBoundsOffset = brushMask.globalAABBBounds\n .clone()\n .set(\n brushMask.globalAABBBounds.x1 + dx,\n brushMask.globalAABBBounds.y1 + dy,\n brushMask.globalAABBBounds.x2 + dx,\n brushMask.globalAABBBounds.y2 + dy\n );\n\n // 根据变换矩阵得到item的实际坐标\n const x = item.globalTransMatrix.e;\n const y = item.globalTransMatrix.f;\n\n // brush与图表图元进行相交 或 包含判断\n let itemBounds: { x: number; y: number }[] = [];\n if (item.type === 'symbol') {\n const { size: itemSize = 0 } = item?.attribute as ISymbolGraphicAttribute;\n const size = array(itemSize)[0];\n itemBounds = [\n {\n x: x - size,\n y: y - size\n },\n {\n x: x + size,\n y: y - size\n },\n {\n x: x + size,\n y: y + size\n },\n {\n x: x - size,\n y: y + size\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n } else if (item.type === 'rect') {\n const { width = 0, height = 0 } = item?.attribute as IRectGraphicAttribute;\n itemBounds = [\n {\n x: x,\n y: y\n },\n {\n x: x + width,\n y: y\n },\n {\n x: x + width,\n y: y + height\n },\n {\n x: x,\n y: y + height\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n }\n return brushMask.globalAABBBounds.intersects(item.globalAABBBounds);\n }\n\n protected _bindRegions() {\n if (isValid(this._spec.regionId) && isValid(this._spec.regionIndex)) {\n this._relativeRegions = this._option.getAllRegions();\n }\n this._relativeRegions = this._option.getRegionsInUserIdOrIndex(\n array(this._spec.regionId),\n array(this._spec.regionIndex)\n );\n }\n\n protected _bindLinkedSeries() {\n if (isValid(this._spec.brushLinkSeriesId) && isValid(this._spec.brushLinkSeriesIndex)) {\n return;\n }\n this._linkedSeries = this._option.getSeriesInUserIdOrIndex(\n array(this._spec.brushLinkSeriesId),\n array(this._spec.brushLinkSeriesIndex)\n );\n }\n\n private _initNeedOperatedItem() {\n const seriesUserId = this._spec.seriesId;\n const seriesIndex = this._spec.seriesIndex;\n this._relativeRegions.forEach(r => {\n const allMarks: IMark[] = [];\n r.getSeries().forEach((s: ISeries) => {\n if (\n (seriesUserId && array(seriesUserId).includes(s.userId.toString())) ||\n (seriesIndex && array(seriesIndex).includes(s.getSpecIndex())) ||\n (!seriesIndex && !seriesUserId)\n ) {\n allMarks.push(...s.getMarksWithoutRoot());\n }\n this._itemMap[r.id] = allMarks;\n });\n });\n\n this._linkedSeries.forEach(s => {\n this._linkedItemMap[s.id] = s.getMarksWithoutRoot();\n });\n }\n\n protected _initMarkBrushState(componentIndex: number, stateName: string) {\n this._brushComponents.forEach((brush, index) => {\n if (index !== componentIndex) {\n brush.children[0].removeAllChild();\n }\n });\n\n this._inBrushElementsMap = {};\n this._outOfBrushElementsMap = {};\n this._linkedInBrushElementsMap = {};\n this._linkedOutOfBrushElementsMap = {};\n\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getMarksWithoutRoot().forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const elementKey = mark.id + '_' + el.key;\n el.removeState(IN_BRUSH_STATE);\n el.removeState(OUT_BRUSH_STATE);\n el.addState(stateName);\n this._outOfBrushElementsMap[elementKey] = el;\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n });\n });\n });\n }\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._brushComponents as unknown as IGroup[];\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n if (this._brushComponents) {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const brushVisible = this._spec.visible ?? true;\n if (brushVisible) {\n // 创建或更新marker组件\n if (!this._brushComponents) {\n this._brushComponents = [];\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._createBrushComponent(region, index);\n });\n } else {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n }\n }\n\n clear(): void {\n if (this._brushComponents) {\n this.getContainer()?.removeChild(this._brushComponents as unknown as INode);\n this._brushComponents.forEach(brush => {\n brush.releaseBrushEvents();\n });\n this._brushComponents = null;\n }\n super.clear();\n }\n}\n\nexport const registerBrush = () => {\n Factory.registerComponent(Brush.type, Brush);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/brush/brush.ts"],"names":[],"mappings":"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","file":"brush.js","sourcesContent":["import { AttributeLevel, ChartEvent, LayoutZIndex } from '../../constant';\nimport { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { Brush as BrushComponent, IOperateType } from '@visactor/vrender-components';\nimport type { IBounds, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isNil, polygonIntersectPolygon, isValid } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type {\n IGraphic,\n IGroup,\n INode,\n IPolygon,\n IRectGraphicAttribute,\n ISymbolGraphicAttribute\n} from '@visactor/vrender-core';\nimport { transformToGraphic } from '../../util/style';\nimport type { ISeries } from '../../series/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BrushInteractiveRangeAttr, IBrush, IBrushSpec, selectedItemStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\n\nconst IN_BRUSH_STATE = 'inBrush';\nconst OUT_BRUSH_STATE = 'outOfBrush';\n\nexport class Brush extends BaseComponent<IBrushSpec> implements IBrush {\n layoutType: 'none' = 'none';\n static type = ComponentTypeEnum.brush;\n type = ComponentTypeEnum.brush;\n name: string = ComponentTypeEnum.brush;\n\n layoutZIndex: number = LayoutZIndex.Brush;\n\n // brush组件\n protected _brushComponents!: BrushComponent[];\n protected _relativeRegions!: IRegion[];\n protected _linkedSeries: ISeries[] = [];\n\n private _itemMap: { [regionId: string | number]: IMark[] } = {};\n private _linkedItemMap: { [seriesId: string | number]: IMark[] } = {};\n\n // 用brushName做分组管理的原因是: 如果有多个brush, 某个图元A brush内, 但在B brush外, 该图元state会被B误变成out of brush。 但其实该图元只有在A brush外才能被判断out of brush\n // 用dict做存储因为方便查找和删减对应图元\n protected _inBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _outOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n protected _linkedInBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _linkedOutOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n\n private _needInitOutState: boolean = true;\n private _cacheInteractiveRangeAttrs: BrushInteractiveRangeAttr[] = [];\n\n private _needEnablePickable: boolean = false;\n\n init() {\n const inBrushMarkAttr = this._transformBrushedMarkAttr(this._spec.inBrush);\n const outOfBrushMarkAttr = this._transformBrushedMarkAttr(this._spec.outOfBrush);\n // 写入mark state, 便于后续state管理\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getActiveMarks().forEach((m: IMark) => {\n if (m) {\n s.setMarkStyle(\n m,\n {\n ...inBrushMarkAttr\n },\n IN_BRUSH_STATE,\n AttributeLevel.Series\n );\n s.setMarkStyle(\n m,\n {\n ...outOfBrushMarkAttr\n },\n OUT_BRUSH_STATE,\n AttributeLevel.Series\n );\n }\n });\n });\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const brushSpec = spec.brush;\n // brush不支持数组的形式配置\n if (isNil(brushSpec) || brushSpec.visible === false) {\n return undefined;\n }\n\n return [new Brush(brushSpec, options)];\n }\n\n created() {\n super.created();\n\n // event\n this.initEvent();\n this._bindRegions();\n this._bindLinkedSeries();\n this._initNeedOperatedItem();\n }\n\n protected _extendDataInBrush(elementsMap: { [brushName: string]: { [elementKey: string]: IElement } }) {\n const data = [];\n for (const brushName in elementsMap) {\n for (const elementKey in elementsMap[brushName]) {\n data.push(elementsMap[brushName][elementKey].data[0]);\n }\n }\n return data;\n }\n\n protected _extendDatumOutOfBrush(elementsMap: { [elementKey: string]: IElement }) {\n const data = [];\n for (const elementKey in elementsMap) {\n data.push(elementsMap[elementKey].data[0]);\n }\n return data;\n }\n\n protected _getBrushInteractiveAttr(region: IRegion) {\n const seriesRegionStartX = region.getLayoutStartPoint().x;\n const seriesRegionEndX = seriesRegionStartX + region.getLayoutRect().width;\n const seriesRegionStartY = region.getLayoutStartPoint().y;\n const seriesRegionEndY = seriesRegionStartY + region.getLayoutRect().height;\n return {\n interactiveRange: {\n minY: seriesRegionStartY,\n maxY: seriesRegionEndY,\n minX: seriesRegionStartX,\n maxX: seriesRegionEndX\n },\n xRange: [seriesRegionStartX, seriesRegionEndX],\n yRange: [seriesRegionStartY, seriesRegionEndY]\n } as BrushInteractiveRangeAttr;\n }\n\n protected _updateBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n // 布局变化后, 更新可交互范围\n const brushComponent = this._brushComponents[componentIndex];\n brushComponent.setAttributes(interactiveAttr as any);\n\n // 布局变化后, 更新brush 和 图元状态\n // 方案一:\n // TODO: 更新mask位置(保持选框在画布中的相对位置)\n // TODO: 是否更新mask大小有待商榷(保持选框位置和图元高亮区域一致)\n\n // 方案二: 清空brushMask 和 图元高亮状态\n this._initMarkBrushState(componentIndex, '');\n brushComponent.children[0].removeAllChild();\n this._needInitOutState = true;\n }\n\n protected _createBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n const brush = new BrushComponent({\n zIndex: this.layoutZIndex,\n brushStyle: transformToGraphic(this._spec?.style),\n ...interactiveAttr,\n ...this._spec\n });\n brush.id = this._spec.id ?? `brush-${this.id}`;\n this.getContainer().add(brush as unknown as INode);\n const { brushMode = 'single' } = this._spec;\n this._brushComponents.push(brush);\n this._cacheInteractiveRangeAttrs.push(interactiveAttr);\n brush.setUpdateDragMaskCallback(\n (operateParams: {\n operateType: string;\n operateMask: IPolygon;\n operatedMaskAABBBounds: { [name: string]: IBounds };\n }) => {\n const { operateType, operateMask } = operateParams;\n let operateTypeCache = operateType;\n\n // 需要重置out状态的情况:\n // _needInitOutState:框选模式为'single' 且 开始后的第一次drawing时(这里不选择drawStart而选择第一次触发drawing的时机是因为点击空白处也会触发drawStart), 需要重置图元状态\n if (this._needInitOutState && brushMode === 'single' && operateType === IOperateType.drawing) {\n this._initMarkBrushState(componentIndex, OUT_BRUSH_STATE);\n }\n\n // 需要重置初始状态的情况:点击空白处clear所有状态\n // 是否点击到空白处由图表的事件监听判断\n this._option\n ?.getChart()\n ?.getEvent()\n ?.on('click', p => {\n if (!p.mark && operateTypeCache === IOperateType.brushClear) {\n this._initMarkBrushState(componentIndex, '');\n this._needInitOutState = true;\n operateTypeCache = null;\n }\n });\n\n // 下面的步骤是为了标记出第一次drawing状态的\n if (operateType === IOperateType.drawing) {\n this._needInitOutState = false;\n this._needEnablePickable = true;\n }\n if (operateType === IOperateType.drawEnd) {\n this._needInitOutState = true;\n this._needEnablePickable = false;\n }\n\n this._reconfigItem(operateMask, region);\n this._reconfigLinkedItem(operateMask, region);\n\n let eventType: string = ChartEvent.brushChange;\n if (operateType === IOperateType.drawStart || operateType === IOperateType.moveStart) {\n eventType = ChartEvent.brushStart;\n } else if (operateType === IOperateType.drawEnd || operateType === IOperateType.moveEnd) {\n eventType = ChartEvent.brushEnd;\n } else {\n eventType = ChartEvent.brushChange;\n }\n\n this.event.emit(eventType, {\n model: this,\n value: {\n // 操作类型\n operateType,\n // 正在操作的region\n operateRegion: region,\n // 在选框内的 element data\n inBrushData: this._extendDataInBrush(this._inBrushElementsMap),\n // 在选框外的 element data\n outOfBrushData: this._extendDatumOutOfBrush(this._outOfBrushElementsMap),\n // 被链接的系列中:在选框内的 element data\n linkInBrushData: this._extendDataInBrush(this._linkedInBrushElementsMap),\n // 被链接的系列中:在选框外的 element data\n linkOutOfBrushData: this._extendDatumOutOfBrush(this._linkedOutOfBrushElementsMap),\n // 在选框内的 vgrammar elements\n inBrushElementsMap: this._inBrushElementsMap,\n // 在选框外的 vgrammar elements\n outOfBrushElementsMap: this._outOfBrushElementsMap,\n // 被链接的系列中:在选框内的 vgrammar elements\n linkedInBrushElementsMap: this._linkedInBrushElementsMap,\n // 被链接的系列中:在选框外的 vgrammar elements\n linkedOutOfBrushElementsMap: this._linkedOutOfBrushElementsMap\n }\n });\n }\n );\n }\n\n private _transformBrushedMarkAttr(brushedStyle: selectedItemStyle) {\n const styleResult: any = {};\n if (brushedStyle?.symbol) {\n styleResult.symbolType = brushedStyle.symbol;\n }\n if (brushedStyle?.symbolSize) {\n styleResult.size = brushedStyle.symbolSize;\n }\n if (brushedStyle?.color) {\n styleResult.fill = brushedStyle.color;\n }\n if (brushedStyle?.colorAlpha) {\n styleResult.fillOpacity = brushedStyle.colorAlpha;\n }\n return {\n ...transformToGraphic(brushedStyle),\n ...styleResult\n };\n }\n\n private _reconfigItem(operateMask: IPolygon, region: IRegion) {\n // 遍历图元, 更新状态\n this._itemMap[region.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (this._outOfBrushElementsMap?.[elementKey] && this._isBrushContainItem(operateMask, graphicItem)) {\n el.addState(IN_BRUSH_STATE);\n if (!this._inBrushElementsMap[operateMask?.name]) {\n this._inBrushElementsMap[operateMask?.name] = {};\n }\n this._inBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._outOfBrushElementsMap[elementKey];\n } else if (\n this._inBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem)\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._outOfBrushElementsMap[elementKey] = el;\n delete this._inBrushElementsMap[operateMask.name][elementKey];\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n\n private _reconfigLinkedItem(operateMask: IPolygon, region: IRegion) {\n const seriesId = region.getSeries().map(s => s.id);\n this._linkedSeries.forEach((s: ISeries) => {\n if (!seriesId.includes(s.id)) {\n const regionOffsetX = s.getRegion().getLayoutStartPoint().x - region.getLayoutStartPoint().x;\n const regionOffsetY = s.getRegion().getLayoutStartPoint().y - region.getLayoutStartPoint().y;\n\n this._linkedItemMap[s.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (\n this._linkedOutOfBrushElementsMap?.[elementKey] &&\n this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.addState(IN_BRUSH_STATE);\n if (!this._linkedInBrushElementsMap[operateMask?.name]) {\n this._linkedInBrushElementsMap[operateMask?.name] = {};\n }\n this._linkedInBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._linkedOutOfBrushElementsMap[elementKey];\n } else if (\n this._linkedInBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n });\n }\n\n private _isBrushContainItem(brushMask: IPolygon, item: IGraphic, linkedOffset?: { dx: number; dy: number }) {\n if (!brushMask?.globalTransMatrix || !brushMask?.attribute?.points) {\n return false;\n }\n\n // 根据变换矩阵得到brushMask的实际坐标\n const points = brushMask?.attribute?.points ?? [];\n const { a, b, c, d, e, f } = brushMask.globalTransMatrix;\n\n const dx = linkedOffset?.dx || 0;\n const dy = linkedOffset?.dy || 0;\n\n const pointsCoord = points.map((p: IPointLike) => {\n return {\n x: a * p.x + c * p.y + e + dx,\n y: b * p.x + d * p.y + f + dy\n };\n });\n\n const globalAABBBoundsOffset = brushMask.globalAABBBounds\n .clone()\n .set(\n brushMask.globalAABBBounds.x1 + dx,\n brushMask.globalAABBBounds.y1 + dy,\n brushMask.globalAABBBounds.x2 + dx,\n brushMask.globalAABBBounds.y2 + dy\n );\n\n // 根据变换矩阵得到item的实际坐标\n const x = item.globalTransMatrix.e;\n const y = item.globalTransMatrix.f;\n\n // brush与图表图元进行相交 或 包含判断\n let itemBounds: { x: number; y: number }[] = [];\n if (item.type === 'symbol') {\n const { size: itemSize = 0 } = item?.attribute as ISymbolGraphicAttribute;\n const size = array(itemSize)[0];\n itemBounds = [\n {\n x: x - size,\n y: y - size\n },\n {\n x: x + size,\n y: y - size\n },\n {\n x: x + size,\n y: y + size\n },\n {\n x: x - size,\n y: y + size\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n } else if (item.type === 'rect') {\n const { width = 0, height = 0 } = item?.attribute as IRectGraphicAttribute;\n itemBounds = [\n {\n x: x,\n y: y\n },\n {\n x: x + width,\n y: y\n },\n {\n x: x + width,\n y: y + height\n },\n {\n x: x,\n y: y + height\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n }\n return brushMask.globalAABBBounds.intersects(item.globalAABBBounds);\n }\n\n protected _bindRegions() {\n if (isValid(this._spec.regionId) && isValid(this._spec.regionIndex)) {\n this._relativeRegions = this._option.getAllRegions();\n }\n this._relativeRegions = this._option.getRegionsInUserIdOrIndex(\n array(this._spec.regionId),\n array(this._spec.regionIndex)\n );\n }\n\n protected _bindLinkedSeries() {\n if (isValid(this._spec.brushLinkSeriesId) && isValid(this._spec.brushLinkSeriesIndex)) {\n return;\n }\n this._linkedSeries = this._option.getSeriesInUserIdOrIndex(\n array(this._spec.brushLinkSeriesId),\n array(this._spec.brushLinkSeriesIndex)\n );\n }\n\n private _initNeedOperatedItem() {\n const seriesUserId = this._spec.seriesId;\n const seriesIndex = this._spec.seriesIndex;\n this._relativeRegions.forEach(r => {\n const allMarks: IMark[] = [];\n r.getSeries().forEach((s: ISeries) => {\n if (\n (seriesUserId && array(seriesUserId).includes(s.userId.toString())) ||\n (seriesIndex && array(seriesIndex).includes(s.getSpecIndex())) ||\n (!seriesIndex && !seriesUserId)\n ) {\n allMarks.push(...s.getMarksWithoutRoot());\n }\n this._itemMap[r.id] = allMarks;\n });\n });\n\n this._linkedSeries.forEach(s => {\n this._linkedItemMap[s.id] = s.getMarksWithoutRoot();\n });\n }\n\n protected _initMarkBrushState(componentIndex: number, stateName: string) {\n this._brushComponents.forEach((brush, index) => {\n if (index !== componentIndex) {\n brush.children[0].removeAllChild();\n }\n });\n\n this._inBrushElementsMap = {};\n this._outOfBrushElementsMap = {};\n this._linkedInBrushElementsMap = {};\n this._linkedOutOfBrushElementsMap = {};\n\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getMarksWithoutRoot().forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const elementKey = mark.id + '_' + el.key;\n el.removeState(IN_BRUSH_STATE);\n el.removeState(OUT_BRUSH_STATE);\n el.addState(stateName);\n this._outOfBrushElementsMap[elementKey] = el;\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n });\n });\n });\n }\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._brushComponents as unknown as IGroup[];\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n if (this._brushComponents) {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const brushVisible = this._spec.visible ?? true;\n if (brushVisible) {\n // 创建或更新marker组件\n if (!this._brushComponents) {\n this._brushComponents = [];\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._createBrushComponent(region, index);\n });\n } else {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n }\n }\n\n clear(): void {\n if (this._brushComponents) {\n this.getContainer()?.removeChild(this._brushComponents as unknown as INode);\n this._brushComponents.forEach(brush => {\n brush.removeAllChild();\n brush.releaseBrushEvents();\n });\n this._brushComponents = null;\n }\n super.clear();\n }\n}\n\nexport const registerBrush = () => {\n Factory.registerComponent(Brush.type, Brush);\n};\n"]}
|
|
@@ -124,7 +124,8 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
|
|
|
124
124
|
vscale_1.isDiscrete)(scale.type) || 1 !== (0, vutils_1.uniqArray)(domain).length);
|
|
125
125
|
}
|
|
126
126
|
_getAttrs(isNeedPreview) {
|
|
127
|
-
var _a, _b, _c, _d, _e
|
|
127
|
+
var _a, _b, _c, _d, _e;
|
|
128
|
+
const spec = null !== (_a = this._spec) && void 0 !== _a ? _a : {};
|
|
128
129
|
return Object.assign({
|
|
129
130
|
zIndex: this.layoutZIndex,
|
|
130
131
|
start: this._start,
|
|
@@ -138,14 +139,14 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
|
|
|
138
139
|
width: this.getLayoutRect().width,
|
|
139
140
|
height: this.getLayoutRect().height
|
|
140
141
|
},
|
|
141
|
-
showDetail:
|
|
142
|
-
brushSelect: null !== (
|
|
143
|
-
zoomLock: null !== (
|
|
142
|
+
showDetail: spec.showDetail,
|
|
143
|
+
brushSelect: null !== (_b = spec.brushSelect) && void 0 !== _b && _b,
|
|
144
|
+
zoomLock: null !== (_c = spec.zoomLock) && void 0 !== _c && _c,
|
|
144
145
|
minSpan: this._minSpan,
|
|
145
146
|
maxSpan: this._maxSpan,
|
|
146
|
-
delayType:
|
|
147
|
-
delayTime: (0, vutils_1.isValid)(
|
|
148
|
-
realTime: null === (
|
|
147
|
+
delayType: spec.delayType,
|
|
148
|
+
delayTime: (0, vutils_1.isValid)(spec.delayType) ? null !== (_d = spec.delayTime) && void 0 !== _d ? _d : 30 : 0,
|
|
149
|
+
realTime: null === (_e = spec.realTime) || void 0 === _e || _e,
|
|
149
150
|
previewData: isNeedPreview && this._data.getLatestData(),
|
|
150
151
|
previewPointsX: isNeedPreview && this._dataToPositionX,
|
|
151
152
|
previewPointsY: isNeedPreview && this._dataToPositionY
|
|
@@ -188,48 +189,49 @@ class DataZoom extends data_filter_base_component_1.DataFilterBaseComponent {
|
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
_getComponentAttrs() {
|
|
191
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
192
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
193
|
+
const {middleHandler: middleHandler = {}, startText: startText = {}, endText: endText = {}, backgroundChart: backgroundChart = {}, selectedBackgroundChart: selectedBackgroundChart = {}} = this._spec;
|
|
192
194
|
return {
|
|
193
195
|
backgroundStyle: (0, style_1.transformToGraphic)(null === (_a = this._spec.background) || void 0 === _a ? void 0 : _a.style),
|
|
194
196
|
startHandlerStyle: (0, style_1.transformToGraphic)(null === (_b = this._spec.startHandler) || void 0 === _b ? void 0 : _b.style),
|
|
195
197
|
middleHandlerStyle: {
|
|
196
|
-
visible: null !== (
|
|
197
|
-
icon: (0, style_1.transformToGraphic)(null === (
|
|
198
|
+
visible: null !== (_c = middleHandler.visible) && void 0 !== _c && _c,
|
|
199
|
+
icon: (0, style_1.transformToGraphic)(null === (_d = middleHandler.icon) || void 0 === _d ? void 0 : _d.style),
|
|
198
200
|
background: {
|
|
199
|
-
size: null === (
|
|
200
|
-
style: (0, style_1.transformToGraphic)(null === (
|
|
201
|
+
size: null === (_e = middleHandler.background) || void 0 === _e ? void 0 : _e.size,
|
|
202
|
+
style: (0, style_1.transformToGraphic)(null === (_f = middleHandler.background) || void 0 === _f ? void 0 : _f.style)
|
|
201
203
|
}
|
|
202
204
|
},
|
|
203
|
-
endHandlerStyle: (0, style_1.transformToGraphic)(null === (
|
|
205
|
+
endHandlerStyle: (0, style_1.transformToGraphic)(null === (_g = this._spec.endHandler) || void 0 === _g ? void 0 : _g.style),
|
|
204
206
|
startTextStyle: {
|
|
205
|
-
padding:
|
|
206
|
-
formatMethod:
|
|
207
|
-
textStyle: (0, style_1.transformToGraphic)(
|
|
207
|
+
padding: startText.padding,
|
|
208
|
+
formatMethod: startText.formatMethod,
|
|
209
|
+
textStyle: (0, style_1.transformToGraphic)(startText.style)
|
|
208
210
|
},
|
|
209
211
|
endTextStyle: {
|
|
210
|
-
padding:
|
|
211
|
-
formatMethod:
|
|
212
|
-
textStyle: (0, style_1.transformToGraphic)(
|
|
212
|
+
padding: endText.padding,
|
|
213
|
+
formatMethod: endText.formatMethod,
|
|
214
|
+
textStyle: (0, style_1.transformToGraphic)(endText.style)
|
|
213
215
|
},
|
|
214
216
|
selectedBackgroundStyle: (0, style_1.transformToGraphic)(this._spec.selectedBackground.style),
|
|
215
|
-
dragMaskStyle: (0, style_1.transformToGraphic)(null === (
|
|
217
|
+
dragMaskStyle: (0, style_1.transformToGraphic)(null === (_h = this._spec.dragMask) || void 0 === _h ? void 0 : _h.style),
|
|
216
218
|
backgroundChartStyle: {
|
|
217
|
-
line: (0, merge_spec_1.mergeSpec)((0, style_1.transformToGraphic)(null === (
|
|
219
|
+
line: (0, merge_spec_1.mergeSpec)((0, style_1.transformToGraphic)(null === (_j = backgroundChart.line) || void 0 === _j ? void 0 : _j.style), {
|
|
218
220
|
fill: !1
|
|
219
221
|
}),
|
|
220
222
|
area: Object.assign({
|
|
221
223
|
curveType: "basis",
|
|
222
224
|
visible: !0
|
|
223
|
-
}, (0, style_1.transformToGraphic)(null === (
|
|
225
|
+
}, (0, style_1.transformToGraphic)(null === (_k = backgroundChart.area) || void 0 === _k ? void 0 : _k.style))
|
|
224
226
|
},
|
|
225
227
|
selectedBackgroundChartStyle: {
|
|
226
|
-
line: (0, merge_spec_1.mergeSpec)((0, style_1.transformToGraphic)(null === (
|
|
228
|
+
line: (0, merge_spec_1.mergeSpec)((0, style_1.transformToGraphic)(null === (_l = selectedBackgroundChart.line) || void 0 === _l ? void 0 : _l.style), {
|
|
227
229
|
fill: !1
|
|
228
230
|
}),
|
|
229
231
|
area: Object.assign({
|
|
230
232
|
curveType: "basis",
|
|
231
233
|
visible: !0
|
|
232
|
-
}, (0, style_1.transformToGraphic)(null === (
|
|
234
|
+
}, (0, style_1.transformToGraphic)(null === (_m = selectedBackgroundChart.area) || void 0 === _m ? void 0 : _m.style))
|
|
233
235
|
}
|
|
234
236
|
};
|
|
235
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { isArray, isBoolean, isNil, isNumber, isValid, maxInArray, minInArray, uniqArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutType } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { CartesianAxis } from '../../axis/cartesian';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static createComponent(spec: any, options: IComponentOption) {\n const compSpec = spec.dataZoom;\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return new DataZoom(compSpec, options);\n }\n const zooms: DataZoom[] = [];\n compSpec.forEach((s, i: number) => {\n zooms.push(new DataZoom(s, { ...options, specIndex: i }));\n });\n return zooms;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = (this._spec as any).roam;\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._originalSpec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n protected _prepareSpecBeforeMergingTheme(originalSpec: T): T {\n const newSpec: T = {\n ...originalSpec\n };\n // 为了减少主题更改造成的影响,如果用户在 spec 配置了主题默认关闭的 mark,则自动加上 visible: true\n const { selectedBackgroundChart = {} } = newSpec;\n const { line, area } = selectedBackgroundChart;\n if (line || area) {\n newSpec.selectedBackgroundChart = {\n ...selectedBackgroundChart,\n line:\n line && line.visible !== false\n ? {\n ...line,\n style: {\n ...line.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : line,\n area:\n area && area.visible !== false\n ? {\n ...area,\n style: {\n ...area.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : area\n };\n }\n return newSpec;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n if (this._cacheVisibility !== false) {\n super.onLayoutEnd(ctx);\n }\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [0, defaultSize];\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible ? [0, this._computeWidth() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component && this._cacheVisibility !== false) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === domain[1]) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n private _getAttrs(isNeedPreview: boolean) {\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: this._spec?.showDetail,\n brushSelect: this._spec?.brushSelect ?? false,\n zoomLock: this._spec?.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: this._spec?.delayType,\n delayTime: isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0,\n realTime: this._spec?.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n } as DataZoomAttributes;\n }\n\n protected _createOrUpdateComponent() {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);\n const attrs = this._getAttrs(isNeedPreview);\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n this._component.setUpdateStateCallback((start: number, end: number, tag?: string) => {\n this._handleChange(start, end, undefined, tag);\n });\n\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end), tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _getComponentAttrs() {\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: {\n visible: this._spec.middleHandler?.visible ?? false,\n icon: transformToGraphic(this._spec.middleHandler?.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: this._spec.middleHandler?.background?.size,\n style: transformToGraphic(this._spec.middleHandler.background?.style)\n } as any\n },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: this._spec.startText?.padding,\n formatMethod: this._spec.startText?.formatMethod,\n textStyle: transformToGraphic(this._spec.startText?.style)\n } as unknown,\n endTextStyle: {\n padding: this._spec.endText?.padding,\n formatMethod: this._spec.endText?.formatMethod,\n textStyle: transformToGraphic(this._spec.endText?.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.backgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.backgroundChart?.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(this._spec.selectedBackgroundChart?.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(this._spec.selectedBackgroundChart?.area?.style)\n }\n }\n };\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import { isArray, isBoolean, isNil, isNumber, isValid, maxInArray, minInArray, uniqArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutType } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { CartesianAxis } from '../../axis/cartesian';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static createComponent(spec: any, options: IComponentOption) {\n const compSpec = spec.dataZoom;\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return new DataZoom(compSpec, options);\n }\n const zooms: DataZoom[] = [];\n compSpec.forEach((s, i: number) => {\n zooms.push(new DataZoom(s, { ...options, specIndex: i }));\n });\n return zooms;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = (this._spec as any).roam;\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._originalSpec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._originalSpec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n protected _prepareSpecBeforeMergingTheme(originalSpec: T): T {\n const newSpec: T = {\n ...originalSpec\n };\n // 为了减少主题更改造成的影响,如果用户在 spec 配置了主题默认关闭的 mark,则自动加上 visible: true\n const { selectedBackgroundChart = {} } = newSpec;\n const { line, area } = selectedBackgroundChart;\n if (line || area) {\n newSpec.selectedBackgroundChart = {\n ...selectedBackgroundChart,\n line:\n line && line.visible !== false\n ? {\n ...line,\n style: {\n ...line.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : line,\n area:\n area && area.visible !== false\n ? {\n ...area,\n style: {\n ...area.style,\n visible: true // FIXME: visible 应该提到更上面,等 datazoom 支持\n }\n }\n : area\n };\n }\n return newSpec;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n if (this._cacheVisibility !== false) {\n super.onLayoutEnd(ctx);\n }\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [0, defaultSize];\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible ? [0, this._computeWidth() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component && this._cacheVisibility !== false) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === domain[1]) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n private _getAttrs(isNeedPreview: boolean) {\n const spec = this._spec ?? ({} as T);\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: spec.showDetail,\n brushSelect: spec.brushSelect ?? false,\n zoomLock: spec.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: spec.delayType,\n delayTime: isValid(spec.delayType) ? spec.delayTime ?? 30 : 0,\n realTime: spec.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n } as DataZoomAttributes;\n }\n\n protected _createOrUpdateComponent() {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);\n const attrs = this._getAttrs(isNeedPreview);\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n this._component.setUpdateStateCallback((start: number, end: number, tag?: string) => {\n this._handleChange(start, end, undefined, tag);\n });\n\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end), tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _getComponentAttrs() {\n const {\n middleHandler = {},\n startText = {},\n endText = {},\n backgroundChart = {},\n selectedBackgroundChart = {}\n } = this._spec as T;\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: {\n visible: middleHandler.visible ?? false,\n icon: transformToGraphic(middleHandler.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: middleHandler.background?.size,\n style: transformToGraphic(middleHandler.background?.style)\n } as any\n },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: startText.padding,\n formatMethod: startText.formatMethod,\n textStyle: transformToGraphic(startText.style)\n } as unknown,\n endTextStyle: {\n padding: endText.padding,\n formatMethod: endText.formatMethod,\n textStyle: transformToGraphic(endText.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(backgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(backgroundChart.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(selectedBackgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(selectedBackgroundChart.area?.style)\n }\n }\n };\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
|
|
@@ -34,14 +34,18 @@ class Projection {
|
|
|
34
34
|
return null === (_b = null === (_a = this.projection) || void 0 === _a ? void 0 : _a.invert) || void 0 === _b ? void 0 : _b.call(_a, point);
|
|
35
35
|
}
|
|
36
36
|
scale(scale) {
|
|
37
|
-
var _a
|
|
38
|
-
if (
|
|
39
|
-
|
|
37
|
+
var _a;
|
|
38
|
+
if (null === (_a = this.projection) || void 0 === _a ? void 0 : _a.scale) {
|
|
39
|
+
if (void 0 === scale) return this.projection.scale();
|
|
40
|
+
this.projection.scale(scale);
|
|
41
|
+
}
|
|
40
42
|
}
|
|
41
43
|
translate(point) {
|
|
42
|
-
var _a
|
|
43
|
-
if (
|
|
44
|
-
|
|
44
|
+
var _a;
|
|
45
|
+
if (null === (_a = this.projection) || void 0 === _a ? void 0 : _a.scale) {
|
|
46
|
+
if (void 0 === point) return this.projection.translate();
|
|
47
|
+
this.projection.translate(point);
|
|
48
|
+
}
|
|
45
49
|
}
|
|
46
50
|
evaluate(start, size, features) {
|
|
47
51
|
const tmp = this.projection.copy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/geo/projection.ts"],"names":[],"mappings":";;;AAAA,uEAA2D;AAK3D,MAAa,UAAU;IAGrB,YAAY,cAA+B;QAIzC,IAAI,CAAC,UAAU,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACjE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,MAAwB;;QAC7B,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,KAAuB;;QAC7B,OAAO,MAAA,IAAI,CAAC,UAAU,qDAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAwB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,mDAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAuB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;IAID,KAAK,CAAC,KAAc;;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;
|
|
1
|
+
{"version":3,"sources":["../src/component/geo/projection.ts"],"names":[],"mappings":";;;AAAA,uEAA2D;AAK3D,MAAa,UAAU;IAGrB,YAAY,cAA+B;QAIzC,IAAI,CAAC,UAAU,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACjE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,MAAwB;;QAC7B,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,KAAuB;;QAC7B,OAAO,MAAA,IAAI,CAAC,UAAU,qDAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAwB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,mDAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAuB;;QAC5B,OAAO,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,mDAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;IAID,KAAK,CAAC,KAAc;;QAClB,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;YAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC9B;iBAAM;gBACL,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAY,CAAC;aAC1C;SACF;IACH,CAAC;IAID,SAAS,CAAC,KAA+B;;QACvC,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;YAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAClC;iBAAM;gBACL,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;aACpC;SACF;IACH,CAAC;IAED,QAAQ,CAAC,KAAe,EAAE,IAAc,EAAE,QAA8B;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACnC,IAAI,EAAE,mBAAmB;YACzB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF;AA9DD,gCA8DC","file":"projection.js","sourcesContent":["import { projection } from '@visactor/vgrammar-projection';\nimport type { IProjectionSpec } from './interface';\n\n// TODO: 待 vgrammar 补充上后修改回去\ntype GeoJsonFeatureSpec = any;\nexport class Projection {\n projection: any;\n\n constructor(projectionSpec: IProjectionSpec) {\n // TODO: vgrammar 类型问题\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.projection = projection(projectionSpec.type)();\n }\n\n fit(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const fitData = { type: 'FeatureCollection', features };\n this.projection.fitExtent([start, size], fitData);\n }\n\n center(center: [number, number]) {\n this.projection?.center?.(center);\n }\n\n project(point: [number, number]) {\n return this.projection?.(point);\n }\n\n shape(data: GeoJsonFeatureSpec) {\n return this.projection?.path?.(data);\n }\n\n invert(point: [number, number]) {\n return this.projection?.invert?.(point);\n }\n\n scale(): number;\n scale(scale: number): void;\n scale(scale?: number): number | void {\n if (this.projection?.scale) {\n if (scale !== undefined) {\n this.projection.scale(scale);\n } else {\n return this.projection.scale() as number;\n }\n }\n }\n\n translate(): [number, number];\n translate(point: [number, number]): void;\n translate(point?: [number, number] | void) {\n if (this.projection?.scale) {\n if (point !== undefined) {\n this.projection.translate(point);\n } else {\n return this.projection.translate();\n }\n }\n }\n\n evaluate(start: number[], size: number[], features: GeoJsonFeatureSpec[]) {\n const tmp = this.projection.copy();\n return tmp?.fitExtent([start, size], {\n type: 'FeatureCollection',\n features\n });\n }\n}\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.BaseMarker = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), base_component_1 = require("../base/base-component"), space_1 = require("../../util/space"), utils_1 = require("./utils");
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), base_component_1 = require("../base/base-component"), space_1 = require("../../util/space"), utils_1 = require("./utils"), util_1 = require("../../util");
|
|
8
8
|
|
|
9
9
|
class BaseMarker extends base_component_1.BaseComponent {
|
|
10
10
|
constructor() {
|
|
@@ -110,15 +110,9 @@ class BaseMarker extends base_component_1.BaseComponent {
|
|
|
110
110
|
_getFirstSeries() {
|
|
111
111
|
var _a;
|
|
112
112
|
if (this._firstSeries) return this._firstSeries;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const s = series[j];
|
|
117
|
-
if (s) return this._firstSeries = s, s;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return null === (_a = this._option) || void 0 === _a || _a.onError("need at least one series"),
|
|
121
|
-
null;
|
|
113
|
+
const firstSeries = (0, util_1.getFirstSeries)(this._regions);
|
|
114
|
+
return firstSeries ? (this._firstSeries = firstSeries, firstSeries) : (null === (_a = this._option) || void 0 === _a || _a.onError("need at least one series"),
|
|
115
|
+
null);
|
|
122
116
|
}
|
|
123
117
|
_getNeedClearVRenderComponents() {
|
|
124
118
|
return [ this._markerComponent ];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/base-marker.ts"],"names":[],"mappings":"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","file":"base-marker.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { array, isValid, isNil, isString } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { ILayoutRect, ILayoutType, IRect, StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport type {\n IAggrType,\n ICoordinateOption,\n IDataPointSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerSpec\n} from './interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport { calcLayoutNumber } from '../../util/space';\nimport { isAggrSpec } from './utils';\n\nexport abstract class BaseMarker<T extends IMarkerSpec> extends BaseComponent<T> {\n layoutType: ILayoutType | 'none' = 'none';\n\n protected _startRelativeSeries!: ICartesianSeries;\n protected _endRelativeSeries!: ICartesianSeries;\n protected _relativeSeries!: ICartesianSeries;\n getRelativeSeries() {\n return this._relativeSeries;\n }\n\n // marker 组件数据\n protected _markerData!: DataView;\n // marker 组件\n protected _markerComponent!: any;\n\n protected _layoutOffsetX: number = 0;\n protected _layoutOffsetY: number = 0;\n\n private _firstSeries: ICartesianSeries;\n\n created() {\n super.created();\n // event\n this.initEvent();\n this._bindSeries();\n this._initDataView();\n }\n\n private _getAllRelativeSeries() {\n return {\n getRelativeSeries: () => this._relativeSeries,\n getStartRelativeSeries: () => this._startRelativeSeries,\n getEndRelativeSeries: () => this._endRelativeSeries\n };\n }\n\n private _getFieldInfoFromSpec(dim: 'x' | 'y', spec: IDataPos | IDataPosCallback, relativeSeries: ICartesianSeries) {\n const field = dim === 'x' ? relativeSeries.getSpec().xField : relativeSeries.getSpec().yField;\n if (isString(spec) && isAggrSpec(spec)) {\n return {\n field,\n aggrType: spec as unknown as IAggrType\n };\n }\n return spec;\n }\n\n protected _processSpecX(specX: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n return {\n x: this._getFieldInfoFromSpec('x', specX, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecY(specY: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n return {\n y: this._getFieldInfoFromSpec('y', specY, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecXY(specX: IDataPos | IDataPosCallback, specY: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n\n return {\n x: this._getFieldInfoFromSpec('x', specX, relativeSeries),\n y: this._getFieldInfoFromSpec('y', specY, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecCoo(spec: any) {\n const coordinates = spec.coordinates ?? array(spec.coordinate);\n return coordinates.map((coordinate: IDataPointSpec) => {\n const refRelativeSeries = this._getSeriesByIdOrIndex(\n coordinate.refRelativeSeriesId,\n coordinate.refRelativeSeriesIndex\n );\n\n const { xField, yField } = refRelativeSeries.getSpec();\n const { xFieldDim, xFieldIndex, yFieldDim, yFieldIndex } = coordinate;\n let bindXField = xField;\n if (isValid(xFieldIndex)) {\n bindXField = array(xField)[xFieldIndex];\n }\n if (xFieldDim && array(xField).includes(xFieldDim)) {\n bindXField = xFieldDim;\n }\n\n let bindYField = yField;\n if (isValid(yFieldIndex)) {\n bindYField = array(yField)[yFieldIndex];\n }\n if (yFieldDim && array(yField).includes(yFieldDim)) {\n bindYField = yFieldDim;\n }\n\n const option: ICoordinateOption = {\n x: undefined,\n y: undefined,\n ...this._getAllRelativeSeries()\n };\n\n if (isString(coordinate[bindXField]) && isAggrSpec(coordinate[bindXField] as IDataPos)) {\n option.x = { field: bindXField, aggrType: coordinate[bindXField] as IAggrType };\n } else {\n option.x = array(bindXField).map(field => coordinate[field]);\n }\n\n if (isString(coordinate[bindYField]) && isAggrSpec(coordinate[bindYField] as IDataPos)) {\n option.y = { field: bindYField, aggrType: coordinate[bindYField] as IAggrType };\n } else {\n option.y = array(bindYField).map(field => coordinate[field]);\n }\n option.getRefRelativeSeries = () => refRelativeSeries;\n return option;\n });\n }\n\n updateLayoutAttribute(): void {\n const markerVisible = this._spec.visible ?? true;\n if (markerVisible) {\n // 创建marker组件\n if (!this._markerComponent) {\n const markerComponent = this._createMarkerComponent();\n markerComponent.name = this._spec.name ?? this.type;\n markerComponent.id = this._spec.id ?? `${this.type}-${this.id}`;\n this._markerComponent = markerComponent;\n\n this.getContainer().add(this._markerComponent);\n // 代理 marker 组件上的事件\n this._markerComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._markerComponent as unknown as IGraphic, event, type)\n );\n }\n this._markerLayout();\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getSeriesByIdOrIndex(seriesUserId: StringOrNumber, seriesIndex: number) {\n let series: ICartesianSeries;\n series = this._option.getSeriesInUserIdOrIndex(isValid(seriesUserId) ? [seriesUserId] : [], [\n seriesIndex\n ])?.[0] as ICartesianSeries;\n if (!series) {\n series = this._relativeSeries ?? this._getFirstSeries();\n }\n return series;\n }\n\n protected _bindSeries() {\n const spec = this._spec;\n this._relativeSeries = this._getSeriesByIdOrIndex(spec.relativeSeriesId, spec.relativeSeriesIndex);\n this._startRelativeSeries = this._getSeriesByIdOrIndex(\n (spec as any).startRelativeSeriesId,\n (spec as any).startRelativeSeriesIndex\n );\n this._endRelativeSeries = this._getSeriesByIdOrIndex(\n (spec as any).endRelativeSeriesId,\n (spec as any).endRelativeSeriesIndex\n );\n }\n\n protected abstract _initDataView(): void;\n protected abstract _createMarkerComponent(): IGroup;\n protected abstract _markerLayout(): void;\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n clear(): void {\n super.clear();\n this._firstSeries = null;\n }\n\n private _getFirstSeries(): ICartesianSeries {\n if (this._firstSeries) {\n return this._firstSeries;\n }\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n this._firstSeries = s as ICartesianSeries;\n return s as ICartesianSeries;\n }\n }\n }\n this._option?.onError('need at least one series');\n return null;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._markerComponent] as unknown as IGroup[];\n }\n\n onLayoutStart(layoutRect: IRect, chartViewRect: ILayoutRect, ctx: any): void {\n // offset\n if (!isNil(this._spec.offsetX)) {\n this._layoutOffsetX = calcLayoutNumber(this._spec.offsetX, chartViewRect.width, chartViewRect);\n }\n if (!isNil(this._spec.offsetY)) {\n this._layoutOffsetY = calcLayoutNumber(this._spec.offsetY, chartViewRect.height, chartViewRect);\n }\n super.onLayoutStart(layoutRect, chartViewRect, ctx);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/base-marker.ts"],"names":[],"mappings":"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","file":"base-marker.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { array, isValid, isNil, isString } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { ILayoutRect, ILayoutType, IRect, StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport type {\n IAggrType,\n ICoordinateOption,\n IDataPointSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerSpec\n} from './interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport { calcLayoutNumber } from '../../util/space';\nimport { isAggrSpec } from './utils';\nimport { getFirstSeries } from '../../util';\n\nexport abstract class BaseMarker<T extends IMarkerSpec> extends BaseComponent<T> {\n layoutType: ILayoutType | 'none' = 'none';\n\n protected _startRelativeSeries!: ICartesianSeries;\n protected _endRelativeSeries!: ICartesianSeries;\n protected _relativeSeries!: ICartesianSeries;\n getRelativeSeries() {\n return this._relativeSeries;\n }\n\n // marker 组件数据\n protected _markerData!: DataView;\n // marker 组件\n protected _markerComponent!: any;\n\n protected _layoutOffsetX: number = 0;\n protected _layoutOffsetY: number = 0;\n\n private _firstSeries: ICartesianSeries;\n\n created() {\n super.created();\n // event\n this.initEvent();\n this._bindSeries();\n this._initDataView();\n }\n\n private _getAllRelativeSeries() {\n return {\n getRelativeSeries: () => this._relativeSeries,\n getStartRelativeSeries: () => this._startRelativeSeries,\n getEndRelativeSeries: () => this._endRelativeSeries\n };\n }\n\n private _getFieldInfoFromSpec(dim: 'x' | 'y', spec: IDataPos | IDataPosCallback, relativeSeries: ICartesianSeries) {\n const field = dim === 'x' ? relativeSeries.getSpec().xField : relativeSeries.getSpec().yField;\n if (isString(spec) && isAggrSpec(spec)) {\n return {\n field,\n aggrType: spec as unknown as IAggrType\n };\n }\n return spec;\n }\n\n protected _processSpecX(specX: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n return {\n x: this._getFieldInfoFromSpec('x', specX, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecY(specY: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n return {\n y: this._getFieldInfoFromSpec('y', specY, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecXY(specX: IDataPos | IDataPosCallback, specY: IDataPos | IDataPosCallback) {\n const relativeSeries = this._relativeSeries;\n\n return {\n x: this._getFieldInfoFromSpec('x', specX, relativeSeries),\n y: this._getFieldInfoFromSpec('y', specY, relativeSeries),\n ...this._getAllRelativeSeries()\n };\n }\n\n protected _processSpecCoo(spec: any) {\n const coordinates = spec.coordinates ?? array(spec.coordinate);\n return coordinates.map((coordinate: IDataPointSpec) => {\n const refRelativeSeries = this._getSeriesByIdOrIndex(\n coordinate.refRelativeSeriesId,\n coordinate.refRelativeSeriesIndex\n );\n\n const { xField, yField } = refRelativeSeries.getSpec();\n const { xFieldDim, xFieldIndex, yFieldDim, yFieldIndex } = coordinate;\n let bindXField = xField;\n if (isValid(xFieldIndex)) {\n bindXField = array(xField)[xFieldIndex];\n }\n if (xFieldDim && array(xField).includes(xFieldDim)) {\n bindXField = xFieldDim;\n }\n\n let bindYField = yField;\n if (isValid(yFieldIndex)) {\n bindYField = array(yField)[yFieldIndex];\n }\n if (yFieldDim && array(yField).includes(yFieldDim)) {\n bindYField = yFieldDim;\n }\n\n const option: ICoordinateOption = {\n x: undefined,\n y: undefined,\n ...this._getAllRelativeSeries()\n };\n\n if (isString(coordinate[bindXField]) && isAggrSpec(coordinate[bindXField] as IDataPos)) {\n option.x = { field: bindXField, aggrType: coordinate[bindXField] as IAggrType };\n } else {\n option.x = array(bindXField).map(field => coordinate[field]);\n }\n\n if (isString(coordinate[bindYField]) && isAggrSpec(coordinate[bindYField] as IDataPos)) {\n option.y = { field: bindYField, aggrType: coordinate[bindYField] as IAggrType };\n } else {\n option.y = array(bindYField).map(field => coordinate[field]);\n }\n option.getRefRelativeSeries = () => refRelativeSeries;\n return option;\n });\n }\n\n updateLayoutAttribute(): void {\n const markerVisible = this._spec.visible ?? true;\n if (markerVisible) {\n // 创建marker组件\n if (!this._markerComponent) {\n const markerComponent = this._createMarkerComponent();\n markerComponent.name = this._spec.name ?? this.type;\n markerComponent.id = this._spec.id ?? `${this.type}-${this.id}`;\n this._markerComponent = markerComponent;\n\n this.getContainer().add(this._markerComponent);\n // 代理 marker 组件上的事件\n this._markerComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._markerComponent as unknown as IGraphic, event, type)\n );\n }\n this._markerLayout();\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getSeriesByIdOrIndex(seriesUserId: StringOrNumber, seriesIndex: number) {\n let series: ICartesianSeries;\n series = this._option.getSeriesInUserIdOrIndex(isValid(seriesUserId) ? [seriesUserId] : [], [\n seriesIndex\n ])?.[0] as ICartesianSeries;\n if (!series) {\n series = this._relativeSeries ?? this._getFirstSeries();\n }\n return series;\n }\n\n protected _bindSeries() {\n const spec = this._spec;\n this._relativeSeries = this._getSeriesByIdOrIndex(spec.relativeSeriesId, spec.relativeSeriesIndex);\n this._startRelativeSeries = this._getSeriesByIdOrIndex(\n (spec as any).startRelativeSeriesId,\n (spec as any).startRelativeSeriesIndex\n );\n this._endRelativeSeries = this._getSeriesByIdOrIndex(\n (spec as any).endRelativeSeriesId,\n (spec as any).endRelativeSeriesIndex\n );\n }\n\n protected abstract _initDataView(): void;\n protected abstract _createMarkerComponent(): IGroup;\n protected abstract _markerLayout(): void;\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n clear(): void {\n super.clear();\n this._firstSeries = null;\n }\n\n private _getFirstSeries(): ICartesianSeries {\n if (this._firstSeries) {\n return this._firstSeries;\n }\n const firstSeries = getFirstSeries(this._regions) as ICartesianSeries;\n if (firstSeries) {\n this._firstSeries = firstSeries;\n return firstSeries;\n }\n this._option?.onError('need at least one series');\n return null;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._markerComponent] as unknown as IGroup[];\n }\n\n onLayoutStart(layoutRect: IRect, chartViewRect: ILayoutRect, ctx: any): void {\n // offset\n if (!isNil(this._spec.offsetX)) {\n this._layoutOffsetX = calcLayoutNumber(this._spec.offsetX, chartViewRect.width, chartViewRect);\n }\n if (!isNil(this._spec.offsetY)) {\n this._layoutOffsetY = calcLayoutNumber(this._spec.offsetY, chartViewRect.height, chartViewRect);\n }\n super.onLayoutStart(layoutRect, chartViewRect, ctx);\n }\n}\n"]}
|