@visactor/vrender-components 0.17.6 → 0.17.7-alpha.1
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/cjs/axis/line.js +2 -2
- package/cjs/axis/line.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/dist/index.js +11 -7
- package/dist/index.min.js +1 -1
- package/es/axis/line.js +2 -2
- package/es/axis/line.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/package.json +4 -4
package/es/axis/line.js
CHANGED
|
@@ -85,11 +85,11 @@ export class LineAxis extends AxisBase {
|
|
|
85
85
|
labelLength += space;
|
|
86
86
|
const layerCount = Object.keys(this.axisLabelLayerSize).length;
|
|
87
87
|
if (0 === axisVector[1]) {
|
|
88
|
-
const labelBoundsHeight = this.axisLabelsContainer.AABBBounds.height();
|
|
88
|
+
const labelBoundsHeight = this.axisLabelsContainer ? this.axisLabelsContainer.AABBBounds.height() : 0;
|
|
89
89
|
isFinite(labelBoundsHeight) ? labelLength += labelBoundsHeight + (layerCount - 1) * space : labelLength = 0;
|
|
90
90
|
} else {
|
|
91
91
|
if (0 === axisVector[0]) {
|
|
92
|
-
const boundsWidth = this.axisLabelsContainer.AABBBounds.width();
|
|
92
|
+
const boundsWidth = this.axisLabelsContainer ? this.axisLabelsContainer.AABBBounds.width() : 0;
|
|
93
93
|
isFinite(boundsWidth) ? labelLength += boundsWidth + (layerCount - 1) * space : labelLength = 0;
|
|
94
94
|
} else Object.keys(this.axisLabelLayerSize).forEach(((layer, index) => {
|
|
95
95
|
labelLength += this.axisLabelLayerSize[layer].width + (index > 0 ? space : 0);
|
package/es/axis/line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/axis/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["/**\n * @description 直线型坐标轴\n */\n// eslint-disable-next-line no-duplicate-imports\nimport {\n get,\n isNil,\n merge,\n isNumberClose,\n isEmpty,\n isFunction,\n isValidNumber,\n isValid,\n normalizePadding,\n mixin,\n last as peek\n} from '@visactor/vutils';\nimport { graphicCreator } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TextAlignType, IGroup, INode, IText, TextBaselineType } from '@visactor/vrender-core';\nimport type { SegmentAttributes } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { angleTo } from '../util/matrix';\nimport type { TagAttributes } from '../tag';\nimport type { LineAttributes, LineAxisAttributes, TitleAttributes, AxisItem } from './type';\nimport { AxisBase } from './base';\nimport { DEFAULT_AXIS_THEME } from './config';\nimport { AXIS_ELEMENT_NAME, DEFAULT_STATES } from './constant';\nimport { measureTextSize } from '../util';\nimport { autoHide as autoHideFunc } from './overlap/auto-hide';\nimport { autoRotate as autoRotateFunc, getXAxisLabelAlign, getYAxisLabelAlign } from './overlap/auto-rotate';\nimport { autoLimit as autoLimitFunc } from './overlap/auto-limit';\nimport { alignAxisLabels } from '../util/align';\nimport { LineAxisMixin } from './mixin/line';\nimport type { ComponentOptions } from '../interface';\nimport { loadLineAxisComponent } from './register';\n\nloadLineAxisComponent();\nexport interface LineAxis\n extends Pick<LineAxisMixin, 'isInValidValue' | 'getTickCoord' | 'getVerticalVector' | 'getRelativeVector'>,\n AxisBase<LineAxisAttributes> {}\n\nexport class LineAxis extends AxisBase<LineAxisAttributes> {\n static defaultAttributes = DEFAULT_AXIS_THEME;\n\n constructor(attributes: LineAxisAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, LineAxis.defaultAttributes, attributes), options);\n }\n\n protected _renderInner(container: IGroup) {\n super._renderInner(container);\n const { panel } = this.attribute;\n\n // TODO: 目前是通过包围盒绘制,在一些情况下会有那问题,比如圆弧轴、带了箭头的坐标轴等\n // 坐标轴主体 panel\n if (panel && panel.visible) {\n const axisContainer = this.axisContainer;\n const axisContainerBounds = axisContainer.AABBBounds;\n const bgRect = graphicCreator.rect({\n x: axisContainerBounds.x1,\n y: axisContainerBounds.y1,\n width: axisContainerBounds.width(),\n height: axisContainerBounds.height(),\n ...panel.style\n });\n bgRect.name = AXIS_ELEMENT_NAME.background;\n bgRect.id = this._getNodeId('background');\n\n bgRect.states = merge({}, DEFAULT_STATES, panel.state ?? {});\n axisContainer.insertBefore(bgRect, axisContainer.firstChild);\n }\n }\n\n // TODO: break\n protected renderLine(container: IGroup): void {\n const { start, end, line } = this.attribute as LineAxisAttributes;\n const { startSymbol, endSymbol, style, breakRange, breakShape, breakShapeStyle, state, ...restLineAttrs } =\n line as LineAttributes;\n const lineAttrs = {\n points: [start, end],\n startSymbol,\n endSymbol,\n lineStyle: style,\n ...restLineAttrs\n } as SegmentAttributes;\n\n if (!isEmpty(state)) {\n lineAttrs.state = {\n line: merge({}, DEFAULT_STATES, state),\n symbol: merge({}, DEFAULT_STATES, state)\n };\n }\n\n const axisLineGroup = new Segment(lineAttrs);\n axisLineGroup.name = AXIS_ELEMENT_NAME.line;\n axisLineGroup.id = this._getNodeId('line');\n container.add(axisLineGroup as unknown as INode);\n }\n\n // TODO: 太 hack 了,需要静心优化\n protected getTitleAttribute() {\n const {\n position = 'middle',\n space = 4,\n textStyle = {},\n autoRotate = true,\n shape,\n background,\n state,\n ...restAttrs\n } = this.attribute.title as TitleAttributes;\n let percent = 0.5;\n if (position === 'start') {\n percent = 0;\n } else if (position === 'end') {\n percent = 1;\n }\n const { verticalFactor = 1 } = this.attribute;\n const factor = -1 * verticalFactor;\n const point = this.getTickCoord(percent);\n const axisVector = this.getRelativeVector();\n // HACK;\n let labelLength = 0;\n if (this.attribute.label?.visible && this.attribute.label?.inside === false) {\n const space = +get(this.attribute, 'label.space', 4);\n labelLength += space;\n const layerCount = Object.keys(this.axisLabelLayerSize).length;\n if (axisVector[1] === 0) {\n const labelBoundsHeight = this.axisLabelsContainer.AABBBounds.height();\n if (isFinite(labelBoundsHeight)) {\n labelLength += labelBoundsHeight + (layerCount - 1) * space;\n } else {\n labelLength = 0;\n }\n } else {\n if (axisVector[0] === 0) {\n const boundsWidth = this.axisLabelsContainer.AABBBounds.width();\n if (isFinite(boundsWidth)) {\n labelLength += boundsWidth + (layerCount - 1) * space;\n } else {\n labelLength = 0;\n }\n } else {\n // 发生了旋转\n Object.keys(this.axisLabelLayerSize).forEach((layer, index) => {\n labelLength += this.axisLabelLayerSize[layer].width + (index > 0 ? space : 0);\n });\n }\n\n const textAlign = this.axisLabelLayerSize[0].textAlign;\n const isTextAlignStart = textAlign === 'start' || textAlign === 'left';\n const isTextCenter = textAlign === 'center';\n const isReverse = axisVector[1] > 0;\n if (factor === 1) {\n labelLength = isReverse\n ? isTextAlignStart\n ? labelLength\n : isTextCenter\n ? labelLength / 2\n : space\n : isTextAlignStart\n ? space\n : isTextCenter\n ? labelLength / 2\n : labelLength;\n } else {\n labelLength = isReverse\n ? isTextAlignStart\n ? space\n : isTextCenter\n ? labelLength / 2\n : labelLength\n : isTextAlignStart\n ? labelLength\n : isTextCenter\n ? labelLength / 2\n : space;\n }\n }\n }\n\n // 标题都默认朝外\n let tickLength = 0;\n if (this.attribute.tick?.visible && this.attribute.tick?.inside === false) {\n tickLength = this.attribute.tick?.length || 4;\n }\n if (this.attribute.subTick?.visible && this.attribute.subTick?.inside === false) {\n tickLength = Math.max(tickLength, this.attribute.subTick?.length || 2);\n }\n\n const offset = tickLength + labelLength + space;\n const titlePoint = this.getVerticalCoord(point, offset, false); // 标题的点\n const vector = this.getVerticalVector(offset, false, { x: 0, y: 0 });\n\n let { angle } = restAttrs; // 用户设置的是角度\n let textAlign;\n if (position === 'start') {\n textAlign = 'start';\n } else if (position === 'end') {\n textAlign = 'end';\n } else {\n textAlign = 'center';\n }\n let textBaseline;\n if (isNil(angle) && autoRotate) {\n const v1: [number, number] = [1, 0]; // 水平方向的向量\n const radian = angleTo(axisVector, v1, true);\n angle = radian;\n const { verticalFactor = 1 } = this.attribute;\n const factor = -1 * verticalFactor;\n if (factor === 1) {\n textBaseline = 'bottom';\n } else {\n textBaseline = 'top';\n }\n } else {\n // if (isValid(angle)) {\n // angle = degreeToRadian(angle);\n // }\n textAlign = this.getTextAlign(vector as number[]);\n textBaseline = this.getTextBaseline(vector as number[], false);\n }\n\n const attrs: TagAttributes = {\n ...titlePoint,\n ...restAttrs,\n textStyle: {\n // @ts-ignore\n textAlign,\n // @ts-ignore\n textBaseline,\n ...textStyle\n },\n state: {\n text: merge({}, DEFAULT_STATES, state?.text),\n shape: merge({}, DEFAULT_STATES, state?.shape),\n panel: merge({}, DEFAULT_STATES, state?.background)\n }\n };\n attrs.angle = angle;\n\n if (shape && shape.visible) {\n attrs.shape = {\n visible: true,\n ...shape.style\n };\n if (shape.space) {\n attrs.space = shape.space;\n }\n }\n\n if (background && background.visible) {\n attrs.panel = {\n visible: true,\n ...background.style\n };\n }\n\n return attrs;\n }\n\n protected getTextBaseline(vector: number[], inside?: boolean): TextBaselineType {\n let base: TextBaselineType = 'middle';\n const { verticalFactor = 1 } = this.attribute;\n const factor = (inside ? 1 : -1) * verticalFactor;\n if (isNumberClose(vector[1], 0)) {\n if (isNumberClose(vector[0], 0) && !Object.is(vector[0], -0) && !Object.is(vector[1], -0)) {\n base = factor === 1 ? 'bottom' : 'top';\n } else {\n base = 'middle';\n }\n } else if (vector[1] > 0) {\n base = 'top';\n } else if (vector[1] < 0) {\n base = 'bottom';\n }\n return base;\n }\n\n protected getLabelAlign(\n vector: [number, number],\n inside?: boolean,\n angle?: number\n ): { textAlign: TextAlignType; textBaseline: TextBaselineType } {\n const orient = this.attribute.orient;\n if (isValidNumber(angle)) {\n if (orient === 'top' || orient === 'bottom') {\n return getXAxisLabelAlign(orient, angle);\n }\n if (orient === 'left' || orient === 'right') {\n return getYAxisLabelAlign(orient, angle);\n }\n }\n\n return {\n textAlign: this.getTextAlign(vector),\n textBaseline: this.getTextBaseline(vector, inside)\n };\n }\n\n protected beforeLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ): void {\n const { flush = false } = this.attribute.label || {};\n if (flush && labelShapes.length) {\n // 首尾标签向内偏移\n const { orient, start: axisStart, end: axisEnd } = this.attribute;\n const isX = orient === 'bottom' || orient === 'top';\n const first = labelShapes[0];\n const last = peek(labelShapes);\n const isInverse = isX ? first.attribute.x > last.attribute.x : first.attribute.y < last.attribute.y;\n if (isX) {\n if (isInverse) {\n const start = axisEnd.x;\n const end = axisStart.x;\n const startBound = first.AABBBounds.x2;\n const endBound = last.AABBBounds.x1;\n\n if (startBound > start) {\n first.setAttributes({\n x: start,\n textAlign: 'right'\n });\n }\n\n if (endBound < end) {\n last.setAttributes({\n x: end,\n textAlign: 'left'\n });\n }\n } else {\n const start = axisStart.x;\n const end = axisEnd.x;\n const startBound = first.AABBBounds.x1;\n const endBound = last.AABBBounds.x2;\n if (startBound < start) {\n first.setAttributes({\n x: start,\n textAlign: 'left'\n });\n }\n\n if (endBound > end) {\n last.setAttributes({\n x: end,\n textAlign: 'right'\n });\n }\n }\n } else {\n if (isInverse) {\n const startBound = first.AABBBounds.y1;\n const endBound = last.AABBBounds.y2;\n const start = axisStart.y;\n const end = axisEnd.y;\n\n if (startBound < start) {\n first.setAttributes({\n y: start,\n textBaseline: 'top'\n });\n }\n\n if (endBound > end) {\n last.setAttributes({\n y: end,\n textBaseline: 'bottom'\n });\n }\n } else {\n const start = axisEnd.y;\n const end = axisStart.y;\n const startBound = first.AABBBounds.y2;\n const endBound = last.AABBBounds.y1;\n\n if (startBound > start) {\n first.setAttributes({\n y: start,\n textBaseline: 'bottom'\n });\n }\n\n if (endBound < end) {\n last.setAttributes({\n y: end,\n textBaseline: 'top'\n });\n }\n }\n }\n }\n\n return;\n }\n protected handleLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ): void {\n if (isEmpty(labelShapes)) {\n return;\n }\n\n const { verticalLimitSize, label, orient } = this.attribute;\n const limitLength = this._getAxisLabelLimitLength(verticalLimitSize, layerCount);\n\n const {\n layoutFunc,\n autoRotate,\n autoRotateAngle,\n autoLimit,\n limitEllipsis,\n autoHide,\n autoHideMethod,\n autoHideSeparation\n } = label;\n\n if (isFunction(layoutFunc)) {\n // 自定义布局\n layoutFunc(labelShapes, labelData, layer, this);\n } else {\n // order: autoRotate -> autoLimit -> autoHide\n if (autoRotate) {\n autoRotateFunc(labelShapes, {\n labelRotateAngle: autoRotateAngle,\n orient\n });\n }\n if (autoLimit && isValidNumber(limitLength) && limitLength > 0) {\n autoLimitFunc(labelShapes, {\n limitLength,\n ellipsis: limitEllipsis,\n orient\n });\n }\n if (autoHide) {\n autoHideFunc(labelShapes, {\n orient,\n method: autoHideMethod,\n separation: autoHideSeparation\n });\n }\n }\n }\n\n protected afterLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ) {\n const { verticalLimitSize, orient } = this.attribute;\n\n // 处理 verticalMinSize,根据 verticalMinSize 调整 labelContainer 的大小\n const isHorizontal = orient === 'bottom' || orient === 'top';\n const axisLabelContainerBounds = labelContainer.AABBBounds;\n let axisLabelContainerSize = isHorizontal ? axisLabelContainerBounds.height() : axisLabelContainerBounds.width();\n const { verticalMinSize } = this.attribute;\n\n if (isValidNumber(verticalMinSize) && (!isValidNumber(verticalLimitSize) || verticalMinSize <= verticalLimitSize)) {\n const minSize = this._getAxisLabelLimitLength(verticalMinSize, layerCount);\n axisLabelContainerSize = Math.max(axisLabelContainerSize, minSize);\n\n let x;\n let y;\n if (orient === 'left') {\n x = axisLabelContainerBounds.x2 - axisLabelContainerSize;\n y = axisLabelContainerBounds.y1;\n } else if (orient === 'right') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y1;\n } else if (orient === 'top') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y2 - axisLabelContainerSize;\n } else if (orient === 'bottom') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y1;\n }\n\n const bgRect = graphicCreator.rect({\n x,\n y,\n width: isHorizontal ? axisLabelContainerBounds.width() : axisLabelContainerSize,\n height: isHorizontal ? axisLabelContainerSize : axisLabelContainerBounds.height(),\n pickable: false\n });\n bgRect.name = AXIS_ELEMENT_NAME.axisLabelBackground;\n bgRect.id = this._getNodeId('axis-label-background');\n labelContainer.insertBefore(bgRect, labelContainer.firstChild);\n }\n\n // 处理 align,进行整体的对齐操作\n if (isValid(this.attribute.label.containerAlign)) {\n let start;\n if (orient === 'left') {\n start = axisLabelContainerBounds.x2;\n } else if (orient === 'right') {\n start = axisLabelContainerBounds.x1;\n } else if (orient === 'top') {\n start = axisLabelContainerBounds.y2;\n } else if (orient === 'bottom') {\n start = axisLabelContainerBounds.y1;\n }\n\n alignAxisLabels(labelShapes, start, axisLabelContainerSize, orient, this.attribute.label.containerAlign);\n }\n }\n\n private _getAxisLabelLimitLength(limitSize: number, layerCount: number): number {\n const { label, title, line, tick } = this.attribute;\n const labelSpace = label.space ?? 4;\n let limitLength = limitSize;\n let titleHeight = 0;\n let titleSpacing = 0;\n const axisLineWidth = line?.visible ? line.style.lineWidth ?? 1 : 0;\n const tickLength = tick?.visible ? tick.length ?? 4 : 0;\n if (title?.visible && typeof title.text === 'string') {\n titleHeight = measureTextSize(title.text, title.textStyle).height;\n const padding = normalizePadding(title.padding);\n titleSpacing = title.space + padding[0] + padding[2];\n }\n if (limitLength) {\n limitLength = (limitLength - labelSpace - titleSpacing - titleHeight - axisLineWidth - tickLength) / layerCount;\n }\n return limitLength;\n }\n}\n\nmixin(LineAxis, LineAxisMixin);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/axis/line.ts"],"names":[],"mappings":"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","file":"line.js","sourcesContent":["/**\n * @description 直线型坐标轴\n */\n// eslint-disable-next-line no-duplicate-imports\nimport {\n get,\n isNil,\n merge,\n isNumberClose,\n isEmpty,\n isFunction,\n isValidNumber,\n isValid,\n normalizePadding,\n mixin,\n last as peek\n} from '@visactor/vutils';\nimport { graphicCreator } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TextAlignType, IGroup, INode, IText, TextBaselineType } from '@visactor/vrender-core';\nimport type { SegmentAttributes } from '../segment';\n// eslint-disable-next-line no-duplicate-imports\nimport { Segment } from '../segment';\nimport { angleTo } from '../util/matrix';\nimport type { TagAttributes } from '../tag';\nimport type { LineAttributes, LineAxisAttributes, TitleAttributes, AxisItem } from './type';\nimport { AxisBase } from './base';\nimport { DEFAULT_AXIS_THEME } from './config';\nimport { AXIS_ELEMENT_NAME, DEFAULT_STATES } from './constant';\nimport { measureTextSize } from '../util';\nimport { autoHide as autoHideFunc } from './overlap/auto-hide';\nimport { autoRotate as autoRotateFunc, getXAxisLabelAlign, getYAxisLabelAlign } from './overlap/auto-rotate';\nimport { autoLimit as autoLimitFunc } from './overlap/auto-limit';\nimport { alignAxisLabels } from '../util/align';\nimport { LineAxisMixin } from './mixin/line';\nimport type { ComponentOptions } from '../interface';\nimport { loadLineAxisComponent } from './register';\n\nloadLineAxisComponent();\nexport interface LineAxis\n extends Pick<LineAxisMixin, 'isInValidValue' | 'getTickCoord' | 'getVerticalVector' | 'getRelativeVector'>,\n AxisBase<LineAxisAttributes> {}\n\nexport class LineAxis extends AxisBase<LineAxisAttributes> {\n static defaultAttributes = DEFAULT_AXIS_THEME;\n\n constructor(attributes: LineAxisAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, LineAxis.defaultAttributes, attributes), options);\n }\n\n protected _renderInner(container: IGroup) {\n super._renderInner(container);\n const { panel } = this.attribute;\n\n // TODO: 目前是通过包围盒绘制,在一些情况下会有那问题,比如圆弧轴、带了箭头的坐标轴等\n // 坐标轴主体 panel\n if (panel && panel.visible) {\n const axisContainer = this.axisContainer;\n const axisContainerBounds = axisContainer.AABBBounds;\n const bgRect = graphicCreator.rect({\n x: axisContainerBounds.x1,\n y: axisContainerBounds.y1,\n width: axisContainerBounds.width(),\n height: axisContainerBounds.height(),\n ...panel.style\n });\n bgRect.name = AXIS_ELEMENT_NAME.background;\n bgRect.id = this._getNodeId('background');\n\n bgRect.states = merge({}, DEFAULT_STATES, panel.state ?? {});\n axisContainer.insertBefore(bgRect, axisContainer.firstChild);\n }\n }\n\n // TODO: break\n protected renderLine(container: IGroup): void {\n const { start, end, line } = this.attribute as LineAxisAttributes;\n const { startSymbol, endSymbol, style, breakRange, breakShape, breakShapeStyle, state, ...restLineAttrs } =\n line as LineAttributes;\n const lineAttrs = {\n points: [start, end],\n startSymbol,\n endSymbol,\n lineStyle: style,\n ...restLineAttrs\n } as SegmentAttributes;\n\n if (!isEmpty(state)) {\n lineAttrs.state = {\n line: merge({}, DEFAULT_STATES, state),\n symbol: merge({}, DEFAULT_STATES, state)\n };\n }\n\n const axisLineGroup = new Segment(lineAttrs);\n axisLineGroup.name = AXIS_ELEMENT_NAME.line;\n axisLineGroup.id = this._getNodeId('line');\n container.add(axisLineGroup as unknown as INode);\n }\n\n // TODO: 太 hack 了,需要静心优化\n protected getTitleAttribute() {\n const {\n position = 'middle',\n space = 4,\n textStyle = {},\n autoRotate = true,\n shape,\n background,\n state,\n ...restAttrs\n } = this.attribute.title as TitleAttributes;\n let percent = 0.5;\n if (position === 'start') {\n percent = 0;\n } else if (position === 'end') {\n percent = 1;\n }\n const { verticalFactor = 1 } = this.attribute;\n const factor = -1 * verticalFactor;\n const point = this.getTickCoord(percent);\n const axisVector = this.getRelativeVector();\n // HACK;\n let labelLength = 0;\n if (this.attribute.label?.visible && this.attribute.label?.inside === false) {\n const space = +get(this.attribute, 'label.space', 4);\n labelLength += space;\n const layerCount = Object.keys(this.axisLabelLayerSize).length;\n if (axisVector[1] === 0) {\n const labelBoundsHeight = this.axisLabelsContainer ? this.axisLabelsContainer.AABBBounds.height() : 0;\n if (isFinite(labelBoundsHeight)) {\n labelLength += labelBoundsHeight + (layerCount - 1) * space;\n } else {\n labelLength = 0;\n }\n } else {\n if (axisVector[0] === 0) {\n const boundsWidth = this.axisLabelsContainer ? this.axisLabelsContainer.AABBBounds.width() : 0;\n if (isFinite(boundsWidth)) {\n labelLength += boundsWidth + (layerCount - 1) * space;\n } else {\n labelLength = 0;\n }\n } else {\n // 发生了旋转\n Object.keys(this.axisLabelLayerSize).forEach((layer, index) => {\n labelLength += this.axisLabelLayerSize[layer].width + (index > 0 ? space : 0);\n });\n }\n\n const textAlign = this.axisLabelLayerSize[0].textAlign;\n const isTextAlignStart = textAlign === 'start' || textAlign === 'left';\n const isTextCenter = textAlign === 'center';\n const isReverse = axisVector[1] > 0;\n if (factor === 1) {\n labelLength = isReverse\n ? isTextAlignStart\n ? labelLength\n : isTextCenter\n ? labelLength / 2\n : space\n : isTextAlignStart\n ? space\n : isTextCenter\n ? labelLength / 2\n : labelLength;\n } else {\n labelLength = isReverse\n ? isTextAlignStart\n ? space\n : isTextCenter\n ? labelLength / 2\n : labelLength\n : isTextAlignStart\n ? labelLength\n : isTextCenter\n ? labelLength / 2\n : space;\n }\n }\n }\n\n // 标题都默认朝外\n let tickLength = 0;\n if (this.attribute.tick?.visible && this.attribute.tick?.inside === false) {\n tickLength = this.attribute.tick?.length || 4;\n }\n if (this.attribute.subTick?.visible && this.attribute.subTick?.inside === false) {\n tickLength = Math.max(tickLength, this.attribute.subTick?.length || 2);\n }\n\n const offset = tickLength + labelLength + space;\n const titlePoint = this.getVerticalCoord(point, offset, false); // 标题的点\n const vector = this.getVerticalVector(offset, false, { x: 0, y: 0 });\n\n let { angle } = restAttrs; // 用户设置的是角度\n let textAlign;\n if (position === 'start') {\n textAlign = 'start';\n } else if (position === 'end') {\n textAlign = 'end';\n } else {\n textAlign = 'center';\n }\n let textBaseline;\n if (isNil(angle) && autoRotate) {\n const v1: [number, number] = [1, 0]; // 水平方向的向量\n const radian = angleTo(axisVector, v1, true);\n angle = radian;\n const { verticalFactor = 1 } = this.attribute;\n const factor = -1 * verticalFactor;\n if (factor === 1) {\n textBaseline = 'bottom';\n } else {\n textBaseline = 'top';\n }\n } else {\n // if (isValid(angle)) {\n // angle = degreeToRadian(angle);\n // }\n textAlign = this.getTextAlign(vector as number[]);\n textBaseline = this.getTextBaseline(vector as number[], false);\n }\n\n const attrs: TagAttributes = {\n ...titlePoint,\n ...restAttrs,\n textStyle: {\n // @ts-ignore\n textAlign,\n // @ts-ignore\n textBaseline,\n ...textStyle\n },\n state: {\n text: merge({}, DEFAULT_STATES, state?.text),\n shape: merge({}, DEFAULT_STATES, state?.shape),\n panel: merge({}, DEFAULT_STATES, state?.background)\n }\n };\n attrs.angle = angle;\n\n if (shape && shape.visible) {\n attrs.shape = {\n visible: true,\n ...shape.style\n };\n if (shape.space) {\n attrs.space = shape.space;\n }\n }\n\n if (background && background.visible) {\n attrs.panel = {\n visible: true,\n ...background.style\n };\n }\n\n return attrs;\n }\n\n protected getTextBaseline(vector: number[], inside?: boolean): TextBaselineType {\n let base: TextBaselineType = 'middle';\n const { verticalFactor = 1 } = this.attribute;\n const factor = (inside ? 1 : -1) * verticalFactor;\n if (isNumberClose(vector[1], 0)) {\n if (isNumberClose(vector[0], 0) && !Object.is(vector[0], -0) && !Object.is(vector[1], -0)) {\n base = factor === 1 ? 'bottom' : 'top';\n } else {\n base = 'middle';\n }\n } else if (vector[1] > 0) {\n base = 'top';\n } else if (vector[1] < 0) {\n base = 'bottom';\n }\n return base;\n }\n\n protected getLabelAlign(\n vector: [number, number],\n inside?: boolean,\n angle?: number\n ): { textAlign: TextAlignType; textBaseline: TextBaselineType } {\n const orient = this.attribute.orient;\n if (isValidNumber(angle)) {\n if (orient === 'top' || orient === 'bottom') {\n return getXAxisLabelAlign(orient, angle);\n }\n if (orient === 'left' || orient === 'right') {\n return getYAxisLabelAlign(orient, angle);\n }\n }\n\n return {\n textAlign: this.getTextAlign(vector),\n textBaseline: this.getTextBaseline(vector, inside)\n };\n }\n\n protected beforeLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ): void {\n const { flush = false } = this.attribute.label || {};\n if (flush && labelShapes.length) {\n // 首尾标签向内偏移\n const { orient, start: axisStart, end: axisEnd } = this.attribute;\n const isX = orient === 'bottom' || orient === 'top';\n const first = labelShapes[0];\n const last = peek(labelShapes);\n const isInverse = isX ? first.attribute.x > last.attribute.x : first.attribute.y < last.attribute.y;\n if (isX) {\n if (isInverse) {\n const start = axisEnd.x;\n const end = axisStart.x;\n const startBound = first.AABBBounds.x2;\n const endBound = last.AABBBounds.x1;\n\n if (startBound > start) {\n first.setAttributes({\n x: start,\n textAlign: 'right'\n });\n }\n\n if (endBound < end) {\n last.setAttributes({\n x: end,\n textAlign: 'left'\n });\n }\n } else {\n const start = axisStart.x;\n const end = axisEnd.x;\n const startBound = first.AABBBounds.x1;\n const endBound = last.AABBBounds.x2;\n if (startBound < start) {\n first.setAttributes({\n x: start,\n textAlign: 'left'\n });\n }\n\n if (endBound > end) {\n last.setAttributes({\n x: end,\n textAlign: 'right'\n });\n }\n }\n } else {\n if (isInverse) {\n const startBound = first.AABBBounds.y1;\n const endBound = last.AABBBounds.y2;\n const start = axisStart.y;\n const end = axisEnd.y;\n\n if (startBound < start) {\n first.setAttributes({\n y: start,\n textBaseline: 'top'\n });\n }\n\n if (endBound > end) {\n last.setAttributes({\n y: end,\n textBaseline: 'bottom'\n });\n }\n } else {\n const start = axisEnd.y;\n const end = axisStart.y;\n const startBound = first.AABBBounds.y2;\n const endBound = last.AABBBounds.y1;\n\n if (startBound > start) {\n first.setAttributes({\n y: start,\n textBaseline: 'bottom'\n });\n }\n\n if (endBound < end) {\n last.setAttributes({\n y: end,\n textBaseline: 'top'\n });\n }\n }\n }\n }\n\n return;\n }\n protected handleLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ): void {\n if (isEmpty(labelShapes)) {\n return;\n }\n\n const { verticalLimitSize, label, orient } = this.attribute;\n const limitLength = this._getAxisLabelLimitLength(verticalLimitSize, layerCount);\n\n const {\n layoutFunc,\n autoRotate,\n autoRotateAngle,\n autoLimit,\n limitEllipsis,\n autoHide,\n autoHideMethod,\n autoHideSeparation\n } = label;\n\n if (isFunction(layoutFunc)) {\n // 自定义布局\n layoutFunc(labelShapes, labelData, layer, this);\n } else {\n // order: autoRotate -> autoLimit -> autoHide\n if (autoRotate) {\n autoRotateFunc(labelShapes, {\n labelRotateAngle: autoRotateAngle,\n orient\n });\n }\n if (autoLimit && isValidNumber(limitLength) && limitLength > 0) {\n autoLimitFunc(labelShapes, {\n limitLength,\n ellipsis: limitEllipsis,\n orient\n });\n }\n if (autoHide) {\n autoHideFunc(labelShapes, {\n orient,\n method: autoHideMethod,\n separation: autoHideSeparation\n });\n }\n }\n }\n\n protected afterLabelsOverlap(\n labelShapes: IText[],\n labelData: AxisItem[],\n labelContainer: IGroup,\n layer: number,\n layerCount: number\n ) {\n const { verticalLimitSize, orient } = this.attribute;\n\n // 处理 verticalMinSize,根据 verticalMinSize 调整 labelContainer 的大小\n const isHorizontal = orient === 'bottom' || orient === 'top';\n const axisLabelContainerBounds = labelContainer.AABBBounds;\n let axisLabelContainerSize = isHorizontal ? axisLabelContainerBounds.height() : axisLabelContainerBounds.width();\n const { verticalMinSize } = this.attribute;\n\n if (isValidNumber(verticalMinSize) && (!isValidNumber(verticalLimitSize) || verticalMinSize <= verticalLimitSize)) {\n const minSize = this._getAxisLabelLimitLength(verticalMinSize, layerCount);\n axisLabelContainerSize = Math.max(axisLabelContainerSize, minSize);\n\n let x;\n let y;\n if (orient === 'left') {\n x = axisLabelContainerBounds.x2 - axisLabelContainerSize;\n y = axisLabelContainerBounds.y1;\n } else if (orient === 'right') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y1;\n } else if (orient === 'top') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y2 - axisLabelContainerSize;\n } else if (orient === 'bottom') {\n x = axisLabelContainerBounds.x1;\n y = axisLabelContainerBounds.y1;\n }\n\n const bgRect = graphicCreator.rect({\n x,\n y,\n width: isHorizontal ? axisLabelContainerBounds.width() : axisLabelContainerSize,\n height: isHorizontal ? axisLabelContainerSize : axisLabelContainerBounds.height(),\n pickable: false\n });\n bgRect.name = AXIS_ELEMENT_NAME.axisLabelBackground;\n bgRect.id = this._getNodeId('axis-label-background');\n labelContainer.insertBefore(bgRect, labelContainer.firstChild);\n }\n\n // 处理 align,进行整体的对齐操作\n if (isValid(this.attribute.label.containerAlign)) {\n let start;\n if (orient === 'left') {\n start = axisLabelContainerBounds.x2;\n } else if (orient === 'right') {\n start = axisLabelContainerBounds.x1;\n } else if (orient === 'top') {\n start = axisLabelContainerBounds.y2;\n } else if (orient === 'bottom') {\n start = axisLabelContainerBounds.y1;\n }\n\n alignAxisLabels(labelShapes, start, axisLabelContainerSize, orient, this.attribute.label.containerAlign);\n }\n }\n\n private _getAxisLabelLimitLength(limitSize: number, layerCount: number): number {\n const { label, title, line, tick } = this.attribute;\n const labelSpace = label.space ?? 4;\n let limitLength = limitSize;\n let titleHeight = 0;\n let titleSpacing = 0;\n const axisLineWidth = line?.visible ? line.style.lineWidth ?? 1 : 0;\n const tickLength = tick?.visible ? tick.length ?? 4 : 0;\n if (title?.visible && typeof title.text === 'string') {\n titleHeight = measureTextSize(title.text, title.textStyle).height;\n const padding = normalizePadding(title.padding);\n titleSpacing = title.space + padding[0] + padding[2];\n }\n if (limitLength) {\n limitLength = (limitLength - labelSpace - titleSpacing - titleHeight - axisLineWidth - tickLength) / layerCount;\n }\n return limitLength;\n }\n}\n\nmixin(LineAxis, LineAxisMixin);\n"]}
|
package/es/index.d.ts
CHANGED
package/es/index.js
CHANGED
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["// 导出版本号\nexport const version = \"0.17.7-alpha.1\";\n\nexport * from './core/base';\nexport * from './scrollbar';\nexport * from './tag';\nexport * from './poptip';\nexport * from './crosshair';\nexport * from './label';\nexport * from './axis';\nexport * from './axis/grid';\nexport * from './segment';\nexport * from './data-zoom';\nexport * from './marker';\nexport * from './pager';\nexport * from './legend';\nexport * from './title';\nexport * from './indicator';\nexport * from './slider';\nexport * from './link-path';\nexport * from './player';\nexport * from './brush';\nexport * from './tooltip';\nexport * from './interface';\nexport * from './jsx';\nexport * from './checkbox';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vrender-components",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.7-alpha.1",
|
|
4
4
|
"description": "components library for dp visualization",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@visactor/vrender-core": "0.17.
|
|
16
|
-
"@visactor/vrender-kits": "0.17.
|
|
15
|
+
"@visactor/vrender-core": "0.17.7-alpha.1",
|
|
16
|
+
"@visactor/vrender-kits": "0.17.7-alpha.1",
|
|
17
17
|
"@visactor/vutils": "~0.17.0",
|
|
18
18
|
"@visactor/vscale": "~0.17.0"
|
|
19
19
|
},
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"eslint": "~8.18.0",
|
|
29
29
|
"vite": "3.2.6",
|
|
30
30
|
"typescript": "4.9.5",
|
|
31
|
-
"@internal/ts-config": "0.0.1",
|
|
32
31
|
"@internal/bundler": "0.0.1",
|
|
32
|
+
"@internal/ts-config": "0.0.1",
|
|
33
33
|
"@internal/eslint-config": "0.0.1"
|
|
34
34
|
},
|
|
35
35
|
"keywords": [
|