@visactor/vrender-components 1.1.0-alpha.24 → 1.1.0-alpha.25

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.
Files changed (52) hide show
  1. package/cjs/axis/animate/group-transition.d.ts +2 -1
  2. package/cjs/axis/animate/group-transition.js +2 -2
  3. package/cjs/axis/animate/group-transition.js.map +1 -1
  4. package/cjs/axis/base.js +2 -2
  5. package/cjs/axis/base.js.map +1 -1
  6. package/cjs/axis/overlap/auto-hide.d.ts +1 -1
  7. package/cjs/axis/overlap/auto-hide.js.map +1 -1
  8. package/cjs/core/base.d.ts +2 -2
  9. package/cjs/core/base.js +3 -3
  10. package/cjs/core/base.js.map +1 -1
  11. package/cjs/crosshair/polygon-sector.js +2 -1
  12. package/cjs/crosshair/rect.js +1 -2
  13. package/cjs/index.d.ts +1 -1
  14. package/cjs/index.js +1 -1
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/label/base.js +11 -11
  17. package/cjs/label/base.js.map +1 -1
  18. package/cjs/tooltip/tooltip.js +8 -8
  19. package/cjs/tooltip/tooltip.js.map +1 -1
  20. package/cjs/util/event.js +2 -2
  21. package/cjs/util/event.js.map +1 -1
  22. package/cjs/util/graphic-creator.js +1 -1
  23. package/cjs/util/graphic-creator.js.map +1 -1
  24. package/cjs/util/text.js +3 -3
  25. package/cjs/util/text.js.map +1 -1
  26. package/dist/index.es.js +1184 -1714
  27. package/es/axis/animate/group-transition.d.ts +2 -1
  28. package/es/axis/animate/group-transition.js +1 -1
  29. package/es/axis/animate/group-transition.js.map +1 -1
  30. package/es/axis/base.js +1 -1
  31. package/es/axis/base.js.map +1 -1
  32. package/es/axis/overlap/auto-hide.d.ts +1 -1
  33. package/es/axis/overlap/auto-hide.js.map +1 -1
  34. package/es/core/base.d.ts +2 -2
  35. package/es/core/base.js +3 -1
  36. package/es/core/base.js.map +1 -1
  37. package/es/crosshair/polygon-sector.js +2 -1
  38. package/es/crosshair/rect.js +1 -2
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/es/index.js.map +1 -1
  42. package/es/label/base.js +3 -1
  43. package/es/label/base.js.map +1 -1
  44. package/es/tooltip/tooltip.js +3 -1
  45. package/es/tooltip/tooltip.js.map +1 -1
  46. package/es/util/event.js +1 -1
  47. package/es/util/event.js.map +1 -1
  48. package/es/util/graphic-creator.js +1 -1
  49. package/es/util/graphic-creator.js.map +1 -1
  50. package/es/util/text.js +1 -1
  51. package/es/util/text.js.map +1 -1
  52. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type {\n IGroup,\n IText,\n IRichText,\n IRect,\n ISymbol,\n ITextGraphicAttribute,\n TextAlignType\n} from '@visactor/vrender-core';\nimport { builtinSymbolsMap, calculateLineHeight } from '@visactor/vrender-core';\nimport { merge, isValid, normalizePadding, isNil } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { alignTextInLine, initTextMeasure } from '../util/text';\nimport { isVisible } from '../util';\nimport type { TooltipAttributes, TooltipRowAttrs, TooltipRowStyleAttrs, TooltipRichTextAttrs } from './type';\nimport { getRichTextAttribute, mergeRowAttrs } from './util';\nimport { defaultAttributes, TOOLTIP_POSITION_ATTRIBUTES } from './config';\nimport type { ComponentOptions } from '../interface';\nimport type { TextMeasureInput } from '@visactor/vutils';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTooltipComponent } from './register';\n\nconst TOOLTIP_BACKGROUND_NAME = 'tooltip-background';\nconst TOOLTIP_TITLE_NAME = 'tooltip-title';\nconst TOOLTIP_CONTENT_NAME = 'tooltip-content';\n\nconst TOOLTIP_SHAPE_NAME_SUFFIX = 'shape';\nconst TOOLTIP_KEY_NAME_SUFFIX = 'key';\nconst TOOLTIP_VALUE_NAME_SUFFIX = 'value';\n\nloadTooltipComponent();\nexport class Tooltip extends AbstractComponent<Required<TooltipAttributes>> {\n name = 'tooltip';\n\n // tooltip 背景\n private _tooltipPanel!: IRect;\n // tooltip title 容器\n private _tooltipTitleContainer!: IGroup;\n // tooltip title shape\n private _tooltipTitleSymbol!: ISymbol;\n // tooltip title 文本\n private _tooltipTitle!: IText | IRichText;\n // tooltip 内容项容器\n private _tooltipContent!: IGroup;\n\n static defaultAttributes: Partial<TooltipAttributes> = defaultAttributes;\n\n constructor(attributes: TooltipAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tooltip.defaultAttributes, attributes), options);\n }\n\n protected render() {\n const {\n visible,\n content,\n panel,\n keyWidth,\n valueWidth,\n hasContentShape,\n autoCalculatePosition,\n autoMeasure,\n align\n } = this.attribute;\n\n if (!visible) {\n this.hideAll();\n return;\n }\n\n if (autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n if (autoCalculatePosition) {\n Tooltip.calculateTooltipPosition(this.attribute);\n }\n\n const padding = normalizePadding(this.attribute.padding);\n\n // 创建背景层\n this._tooltipPanel = this.createOrUpdateChild(\n TOOLTIP_BACKGROUND_NAME,\n {\n visible: true,\n ...panel\n },\n 'rect'\n ) as IRect;\n\n // 创建标题层\n this._tooltipTitleContainer = this.createOrUpdateChild(\n TOOLTIP_TITLE_NAME,\n { visible: true, x: padding[3], y: padding[0] },\n 'group'\n ) as IGroup;\n\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(this.attribute);\n\n // 创建标题 shape\n // 创建 symbol\n this._tooltipTitleSymbol = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n merge({ symbolType: 'circle' }, titleAttr.shape, {\n visible: isVisible(titleAttr) && isVisible(titleAttr.shape)\n }),\n 'symbol'\n ) as ISymbol;\n\n // 文本\n if (\n typeof titleAttr.value.text === 'object' &&\n titleAttr.value.text !== null &&\n ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (titleAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'html') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (titleAttr.value.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...titleAttr.value\n },\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n width: titleAttr.value.width,\n height: titleAttr.value.height,\n wordBreak: titleAttr.value.wordBreak as any,\n textAlign: titleAttr.value.textAlign as any,\n textBaseline: titleAttr.value.textBaseline as any,\n singleLine: false,\n textConfig: [],\n ...(titleAttr.value as any)\n },\n 'richtext'\n ) as IRichText;\n }\n } else if (titleAttr.value.multiLine) {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n text: (titleAttr.value.text ?? '') as any,\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...titleAttr.value\n },\n 'text'\n ) as IText;\n }\n\n // 调整标题的位置\n const titlePaddingLeft = isVisible(titleAttr.shape) ? titleAttr.shape.size + titleAttr.shape.spacing : 0;\n const { textAlign, textBaseline } = titleAttr.value;\n const contentWidth = panel.width - padding[3] - padding[0] - titlePaddingLeft;\n if (textAlign === 'center') {\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth);\n } else {\n // 默认左对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft);\n }\n if (textBaseline === 'bottom') {\n this._tooltipTitle.setAttribute('y', titleAttr.height);\n } else if (textBaseline === 'middle') {\n this._tooltipTitle.setAttribute('y', titleAttr.height / 2);\n } else {\n this._tooltipTitle.setAttribute('y', 0);\n }\n const titleHeight = isVisible(titleAttr) ? titleAttr.height + titleAttr.spaceRow : 0;\n\n // 创建内容层\n this._tooltipContent = this.createOrUpdateChild(TOOLTIP_CONTENT_NAME, { visible: true }, 'group') as IGroup;\n this._tooltipContent.removeAllChild(true); // 清空内容区\n\n if (content && content.length) {\n this._tooltipContent.setAttribute('x', padding[3]);\n this._tooltipContent.setAttribute('y', padding[0] + titleHeight);\n\n let lastYPos = 0;\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(this.attribute, i);\n\n if (!isVisible(itemAttr)) {\n return;\n }\n\n const itemGroupName = `${TOOLTIP_CONTENT_NAME}-${i}`;\n const itemGroup = this._tooltipContent.createOrUpdateChild(\n itemGroupName,\n { visible: true, x: 0, y: lastYPos },\n 'group'\n ) as IGroup;\n\n const shapeOffsetWidth = itemAttr.shape.size + itemAttr.shape.spacing;\n let x =\n align === 'right'\n ? (hasContentShape ? shapeOffsetWidth : 0) +\n (isVisible(itemAttr.key) ? keyWidth + itemAttr.key.spacing : 0) +\n (isVisible(itemAttr.value) ? valueWidth : 0)\n : 0;\n\n this._createShape(\n align === 'right' ? x - itemAttr.shape.size / 2 : x + itemAttr.shape.size / 2,\n itemAttr,\n itemGroup,\n itemGroupName\n );\n if (hasContentShape) {\n if (align === 'right') {\n x -= shapeOffsetWidth;\n } else {\n x += shapeOffsetWidth;\n }\n }\n\n const keyGraphic = this._createKey(itemAttr, itemGroup, itemGroupName);\n\n if (keyGraphic) {\n alignTextInLine(align, keyGraphic, itemAttr.key.textAlign, x, keyWidth);\n keyGraphic.setAttribute('y', 0);\n if (align === 'right') {\n x -= keyWidth + itemAttr.key.spacing;\n } else {\n x += keyWidth + itemAttr.key.spacing;\n }\n }\n const valueGraphic = this._createValue(itemAttr, itemGroup, itemGroupName);\n if (valueGraphic) {\n let textAlign: TextAlignType = 'right';\n\n if (isValid(itemAttr.value.textAlign)) {\n textAlign = itemAttr.value.textAlign;\n } else if (!isVisible(itemAttr.key) && align !== 'right') {\n textAlign = 'left';\n }\n valueGraphic.setAttribute('textAlign', textAlign);\n alignTextInLine(align, valueGraphic, textAlign, x, valueWidth);\n valueGraphic.setAttribute('y', 0);\n }\n\n lastYPos += itemAttr.height + itemAttr.spaceRow;\n });\n }\n }\n\n protected _createShape(\n x: number,\n itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs,\n itemGroup: IGroup,\n itemGroupName: string\n ) {\n if (isVisible(itemAttr.shape)) {\n // 存在 symbol\n return itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n {\n visible: true,\n x: x,\n y:\n itemAttr.shape.size / 2 +\n ((calculateLineHeight(itemAttr.key.lineHeight, itemAttr.key.fontSize) ?? itemAttr.key.fontSize) -\n itemAttr.shape.size) /\n 2,\n ...itemAttr.shape\n },\n 'symbol'\n ) as ISymbol;\n }\n\n return;\n }\n\n protected _createKey(itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs, itemGroup: IGroup, itemGroupName: string) {\n if (isVisible(itemAttr.key)) {\n let element: IRichText | IText;\n if (itemAttr.key.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.key.text === 'object' &&\n itemAttr.key.text !== null &&\n ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.key.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.key.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...itemAttr.key\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.key.text ?? '') as any,\n ...itemAttr.key,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n return element;\n }\n return;\n }\n\n protected _createValue(itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs, itemGroup: IGroup, itemGroupName: string) {\n if (isVisible(itemAttr.value)) {\n let element: IRichText | IText;\n if (itemAttr.value.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.value.text === 'object' &&\n itemAttr.value.text !== null &&\n ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.value.text as TooltipRichTextAttrs).text as string,\n container: '',\n width: 30,\n height: 30,\n style: {},\n ...itemAttr.value\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.value.text ?? '') as any,\n ...itemAttr.value,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n return element;\n }\n\n return;\n }\n\n setAttributes(params: Partial<Required<TooltipAttributes>>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof TooltipAttributes)[];\n // 优化:只更改 tooltip 位置\n if (this.attribute.autoCalculatePosition && keys.every(key => TOOLTIP_POSITION_ATTRIBUTES.includes(key))) {\n this._mergeAttributes(params, keys);\n // 计算 x y\n if (isNil(this.attribute.panel.width) && this.attribute.autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n Tooltip.calculateTooltipPosition(this.attribute);\n // 应用 x y\n super.setAttributes(\n {\n x: this.attribute.x,\n y: this.attribute.y\n },\n forceUpdateTag\n );\n } else {\n super.setAttributes(params, forceUpdateTag);\n }\n }\n\n static calculateTooltipPosition(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } = attribute.panel;\n\n const { offsetX, offsetY, pointerX, pointerY, positionX, positionY, parentBounds } = attribute;\n\n let x = pointerX;\n let y = pointerY;\n if (positionX === 'left') {\n x -= tooltipBoxWidth + offsetX;\n } else if (positionX === 'center') {\n x -= tooltipBoxWidth / 2;\n } else {\n x += offsetX;\n }\n if (positionY === 'top') {\n y -= tooltipBoxHeight + offsetY;\n } else if (positionY === 'middle') {\n y -= tooltipBoxHeight / 2;\n } else {\n y += offsetY;\n }\n\n /* 确保tooltip在视区内 */\n if (x + tooltipBoxWidth > parentBounds.x2) {\n // 位置不超出视区右界\n x -= tooltipBoxWidth + offsetX;\n }\n if (y + tooltipBoxHeight > parentBounds.y2) {\n // 位置不超出视区下界\n y -= tooltipBoxHeight + offsetY;\n }\n if (x < parentBounds.x1) {\n // 位置不超出视区左界\n x = parentBounds.x1;\n }\n if (y < parentBounds.y1) {\n // 位置不超出视区上界\n y = parentBounds.y1;\n }\n\n attribute.x = x;\n attribute.y = y;\n\n return attribute;\n }\n\n static measureTooltip(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { content, contentStyle } = attribute;\n const padding = normalizePadding(attribute.padding);\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(attribute);\n\n let maxWidth = 0;\n let containerHeight = padding[0] + padding[2];\n\n // calculate title\n let titleMaxHeight = 0;\n const { value: titleValue, shape: titleShape } = titleAttr;\n const { visible: titleHasShape = false, symbolType: titleShapeType = '' } = titleShape ?? {};\n\n if (isValid(titleValue) && typeof titleAttr.value.text !== 'object') {\n const { width, height } = initTextMeasure(titleValue as Partial<ITextGraphicAttribute>).quickMeasure(\n titleValue.text as TextMeasureInput\n );\n maxWidth = width;\n titleMaxHeight = height;\n }\n if (titleHasShape && builtinSymbolsMap[titleShapeType]) {\n maxWidth += titleShape.size + titleShape.spacing;\n titleMaxHeight = Math.max(titleShape.size, titleMaxHeight);\n }\n\n if (attribute.title) {\n attribute.title.width = maxWidth;\n attribute.title.height = titleMaxHeight;\n }\n\n if (isVisible(titleAttr)) {\n containerHeight += titleMaxHeight + titleAttr.spaceRow;\n }\n\n // calculate content\n if (content && content.length) {\n // filter content\n const filteredContent: [TooltipRowAttrs, TooltipRowAttrs][] = [];\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(attribute, i);\n if ((item.key || item.value) && isVisible(itemAttr)) {\n filteredContent.push([item, itemAttr]);\n }\n });\n\n if (filteredContent.length) {\n let hasContentShape = false;\n const shapeWidths: number[] = [];\n const keyWidths: number[] = [];\n const valueWidths: number[] = [];\n\n filteredContent.forEach(([item, itemAttr], i) => {\n const { key, value, shape, spaceRow } = itemAttr;\n const itemHasShape = isVisible(shape);\n const itemShapeType = shape?.symbolType ?? '';\n\n const keyTextMeasure = initTextMeasure(key as Partial<ITextGraphicAttribute>);\n const valueTextMeasure = initTextMeasure(value as Partial<ITextGraphicAttribute>);\n\n let itemHeight = 0;\n if (isVisible(key)) {\n const { width, height } = keyTextMeasure.quickMeasure(key.text as TextMeasureInput);\n keyWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (isVisible(value)) {\n const { width, height } = valueTextMeasure.quickMeasure(value.text as TextMeasureInput);\n valueWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (itemHasShape && builtinSymbolsMap[itemShapeType]) {\n hasContentShape = true;\n shapeWidths.push(shape.size);\n itemHeight = Math.max(shape.size, itemHeight);\n }\n\n item.height = itemHeight;\n containerHeight += itemHeight;\n if (i < filteredContent.length - 1) {\n containerHeight += spaceRow ?? contentStyle.spaceRow;\n }\n });\n\n const maxShapeWidth = shapeWidths.length ? Math.max(...shapeWidths) : 0; // shape 需要对齐\n const maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0; // name 需要对齐\n const maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0; // value 需要对齐\n maxWidth = Math.max(\n maxKeyWidth +\n maxValueWidth +\n contentStyle.key.spacing +\n contentStyle.value.spacing +\n (hasContentShape ? maxShapeWidth + contentStyle.shape.spacing : 0),\n maxWidth\n );\n content.forEach(item => {\n item.width = maxWidth;\n });\n attribute.hasContentShape = hasContentShape;\n attribute.keyWidth = maxKeyWidth;\n attribute.valueWidth = maxValueWidth;\n }\n }\n\n attribute.panel.width = maxWidth + padding[1] + padding[3];\n attribute.panel.height = containerHeight;\n\n return attribute;\n }\n\n static getTitleAttr(attribute: Partial<TooltipAttributes>): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs(\n {},\n Tooltip.defaultAttributes.titleStyle,\n Tooltip.defaultAttributes.title,\n attribute.titleStyle,\n attribute.title\n );\n }\n\n static getContentAttr(attribute: Partial<TooltipAttributes>, index: number): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs({}, Tooltip.defaultAttributes.contentStyle, attribute.contentStyle, attribute.content[index]);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type {\n IGroup,\n IText,\n IRichText,\n IRect,\n ISymbol,\n ITextGraphicAttribute,\n TextAlignType\n} from '@visactor/vrender-core';\nimport { builtinSymbolsMap } from '@visactor/vrender-core/graphic/builtin-symbol';\nimport { calculateLineHeight } from '@visactor/vrender-core/text';\nimport { merge, isValid, normalizePadding, isNil, type TextMeasureInput } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { alignTextInLine, initTextMeasure } from '../util/text';\nimport { isVisible } from '../util';\nimport type { TooltipAttributes, TooltipRowAttrs, TooltipRowStyleAttrs, TooltipRichTextAttrs } from './type';\nimport { getRichTextAttribute, mergeRowAttrs } from './util';\nimport { defaultAttributes, TOOLTIP_POSITION_ATTRIBUTES } from './config';\nimport type { ComponentOptions } from '../interface';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTooltipComponent } from './register';\n\nconst TOOLTIP_BACKGROUND_NAME = 'tooltip-background';\nconst TOOLTIP_TITLE_NAME = 'tooltip-title';\nconst TOOLTIP_CONTENT_NAME = 'tooltip-content';\n\nconst TOOLTIP_SHAPE_NAME_SUFFIX = 'shape';\nconst TOOLTIP_KEY_NAME_SUFFIX = 'key';\nconst TOOLTIP_VALUE_NAME_SUFFIX = 'value';\n\nloadTooltipComponent();\nexport class Tooltip extends AbstractComponent<Required<TooltipAttributes>> {\n name = 'tooltip';\n\n // tooltip 背景\n private _tooltipPanel!: IRect;\n // tooltip title 容器\n private _tooltipTitleContainer!: IGroup;\n // tooltip title shape\n private _tooltipTitleSymbol!: ISymbol;\n // tooltip title 文本\n private _tooltipTitle!: IText | IRichText;\n // tooltip 内容项容器\n private _tooltipContent!: IGroup;\n\n static defaultAttributes: Partial<TooltipAttributes> = defaultAttributes;\n\n constructor(attributes: TooltipAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tooltip.defaultAttributes, attributes), options);\n }\n\n protected render() {\n const {\n visible,\n content,\n panel,\n keyWidth,\n valueWidth,\n hasContentShape,\n autoCalculatePosition,\n autoMeasure,\n align\n } = this.attribute;\n\n if (!visible) {\n this.hideAll();\n return;\n }\n\n if (autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n if (autoCalculatePosition) {\n Tooltip.calculateTooltipPosition(this.attribute);\n }\n\n const padding = normalizePadding(this.attribute.padding);\n\n // 创建背景层\n this._tooltipPanel = this.createOrUpdateChild(\n TOOLTIP_BACKGROUND_NAME,\n {\n visible: true,\n ...panel\n },\n 'rect'\n ) as IRect;\n\n // 创建标题层\n this._tooltipTitleContainer = this.createOrUpdateChild(\n TOOLTIP_TITLE_NAME,\n { visible: true, x: padding[3], y: padding[0] },\n 'group'\n ) as IGroup;\n\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(this.attribute);\n\n // 创建标题 shape\n // 创建 symbol\n this._tooltipTitleSymbol = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n merge({ symbolType: 'circle' }, titleAttr.shape, {\n visible: isVisible(titleAttr) && isVisible(titleAttr.shape)\n }),\n 'symbol'\n ) as ISymbol;\n\n // 文本\n if (\n typeof titleAttr.value.text === 'object' &&\n titleAttr.value.text !== null &&\n ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (titleAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'html') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (titleAttr.value.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...titleAttr.value\n },\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n width: titleAttr.value.width,\n height: titleAttr.value.height,\n wordBreak: titleAttr.value.wordBreak as any,\n textAlign: titleAttr.value.textAlign as any,\n textBaseline: titleAttr.value.textBaseline as any,\n singleLine: false,\n textConfig: [],\n ...(titleAttr.value as any)\n },\n 'richtext'\n ) as IRichText;\n }\n } else if (titleAttr.value.multiLine) {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n text: (titleAttr.value.text ?? '') as any,\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...titleAttr.value\n },\n 'text'\n ) as IText;\n }\n\n // 调整标题的位置\n const titlePaddingLeft = isVisible(titleAttr.shape) ? titleAttr.shape.size + titleAttr.shape.spacing : 0;\n const { textAlign, textBaseline } = titleAttr.value;\n const contentWidth = panel.width - padding[3] - padding[0] - titlePaddingLeft;\n if (textAlign === 'center') {\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth);\n } else {\n // 默认左对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft);\n }\n if (textBaseline === 'bottom') {\n this._tooltipTitle.setAttribute('y', titleAttr.height);\n } else if (textBaseline === 'middle') {\n this._tooltipTitle.setAttribute('y', titleAttr.height / 2);\n } else {\n this._tooltipTitle.setAttribute('y', 0);\n }\n const titleHeight = isVisible(titleAttr) ? titleAttr.height + titleAttr.spaceRow : 0;\n\n // 创建内容层\n this._tooltipContent = this.createOrUpdateChild(TOOLTIP_CONTENT_NAME, { visible: true }, 'group') as IGroup;\n this._tooltipContent.removeAllChild(true); // 清空内容区\n\n if (content && content.length) {\n this._tooltipContent.setAttribute('x', padding[3]);\n this._tooltipContent.setAttribute('y', padding[0] + titleHeight);\n\n let lastYPos = 0;\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(this.attribute, i);\n\n if (!isVisible(itemAttr)) {\n return;\n }\n\n const itemGroupName = `${TOOLTIP_CONTENT_NAME}-${i}`;\n const itemGroup = this._tooltipContent.createOrUpdateChild(\n itemGroupName,\n { visible: true, x: 0, y: lastYPos },\n 'group'\n ) as IGroup;\n\n const shapeOffsetWidth = itemAttr.shape.size + itemAttr.shape.spacing;\n let x =\n align === 'right'\n ? (hasContentShape ? shapeOffsetWidth : 0) +\n (isVisible(itemAttr.key) ? keyWidth + itemAttr.key.spacing : 0) +\n (isVisible(itemAttr.value) ? valueWidth : 0)\n : 0;\n\n this._createShape(\n align === 'right' ? x - itemAttr.shape.size / 2 : x + itemAttr.shape.size / 2,\n itemAttr,\n itemGroup,\n itemGroupName\n );\n if (hasContentShape) {\n if (align === 'right') {\n x -= shapeOffsetWidth;\n } else {\n x += shapeOffsetWidth;\n }\n }\n\n const keyGraphic = this._createKey(itemAttr, itemGroup, itemGroupName);\n\n if (keyGraphic) {\n alignTextInLine(align, keyGraphic, itemAttr.key.textAlign, x, keyWidth);\n keyGraphic.setAttribute('y', 0);\n if (align === 'right') {\n x -= keyWidth + itemAttr.key.spacing;\n } else {\n x += keyWidth + itemAttr.key.spacing;\n }\n }\n const valueGraphic = this._createValue(itemAttr, itemGroup, itemGroupName);\n if (valueGraphic) {\n let textAlign: TextAlignType = 'right';\n\n if (isValid(itemAttr.value.textAlign)) {\n textAlign = itemAttr.value.textAlign;\n } else if (!isVisible(itemAttr.key) && align !== 'right') {\n textAlign = 'left';\n }\n valueGraphic.setAttribute('textAlign', textAlign);\n alignTextInLine(align, valueGraphic, textAlign, x, valueWidth);\n valueGraphic.setAttribute('y', 0);\n }\n\n lastYPos += itemAttr.height + itemAttr.spaceRow;\n });\n }\n }\n\n protected _createShape(\n x: number,\n itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs,\n itemGroup: IGroup,\n itemGroupName: string\n ) {\n if (isVisible(itemAttr.shape)) {\n // 存在 symbol\n return itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n {\n visible: true,\n x: x,\n y:\n itemAttr.shape.size / 2 +\n ((calculateLineHeight(itemAttr.key.lineHeight, itemAttr.key.fontSize) ?? itemAttr.key.fontSize) -\n itemAttr.shape.size) /\n 2,\n ...itemAttr.shape\n },\n 'symbol'\n ) as ISymbol;\n }\n\n return;\n }\n\n protected _createKey(itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs, itemGroup: IGroup, itemGroupName: string) {\n if (isVisible(itemAttr.key)) {\n let element: IRichText | IText;\n if (itemAttr.key.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.key.text === 'object' &&\n itemAttr.key.text !== null &&\n ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.key.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.key.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...itemAttr.key\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.key.text ?? '') as any,\n ...itemAttr.key,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n return element;\n }\n return;\n }\n\n protected _createValue(itemAttr: TooltipRowAttrs & TooltipRowStyleAttrs, itemGroup: IGroup, itemGroupName: string) {\n if (isVisible(itemAttr.value)) {\n let element: IRichText | IText;\n if (itemAttr.value.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.value.text === 'object' &&\n itemAttr.value.text !== null &&\n ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.value.text as TooltipRichTextAttrs).text as string,\n container: '',\n width: 30,\n height: 30,\n style: {},\n ...itemAttr.value\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.value.text ?? '') as any,\n ...itemAttr.value,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n return element;\n }\n\n return;\n }\n\n setAttributes(params: Partial<Required<TooltipAttributes>>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof TooltipAttributes)[];\n // 优化:只更改 tooltip 位置\n if (this.attribute.autoCalculatePosition && keys.every(key => TOOLTIP_POSITION_ATTRIBUTES.includes(key))) {\n this._mergeAttributes(params, keys);\n // 计算 x y\n if (isNil(this.attribute.panel.width) && this.attribute.autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n Tooltip.calculateTooltipPosition(this.attribute);\n // 应用 x y\n super.setAttributes(\n {\n x: this.attribute.x,\n y: this.attribute.y\n },\n forceUpdateTag\n );\n } else {\n super.setAttributes(params, forceUpdateTag);\n }\n }\n\n static calculateTooltipPosition(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } = attribute.panel;\n\n const { offsetX, offsetY, pointerX, pointerY, positionX, positionY, parentBounds } = attribute;\n\n let x = pointerX;\n let y = pointerY;\n if (positionX === 'left') {\n x -= tooltipBoxWidth + offsetX;\n } else if (positionX === 'center') {\n x -= tooltipBoxWidth / 2;\n } else {\n x += offsetX;\n }\n if (positionY === 'top') {\n y -= tooltipBoxHeight + offsetY;\n } else if (positionY === 'middle') {\n y -= tooltipBoxHeight / 2;\n } else {\n y += offsetY;\n }\n\n /* 确保tooltip在视区内 */\n if (x + tooltipBoxWidth > parentBounds.x2) {\n // 位置不超出视区右界\n x -= tooltipBoxWidth + offsetX;\n }\n if (y + tooltipBoxHeight > parentBounds.y2) {\n // 位置不超出视区下界\n y -= tooltipBoxHeight + offsetY;\n }\n if (x < parentBounds.x1) {\n // 位置不超出视区左界\n x = parentBounds.x1;\n }\n if (y < parentBounds.y1) {\n // 位置不超出视区上界\n y = parentBounds.y1;\n }\n\n attribute.x = x;\n attribute.y = y;\n\n return attribute;\n }\n\n static measureTooltip(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { content, contentStyle } = attribute;\n const padding = normalizePadding(attribute.padding);\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(attribute);\n\n let maxWidth = 0;\n let containerHeight = padding[0] + padding[2];\n\n // calculate title\n let titleMaxHeight = 0;\n const { value: titleValue, shape: titleShape } = titleAttr;\n const { visible: titleHasShape = false, symbolType: titleShapeType = '' } = titleShape ?? {};\n\n if (isValid(titleValue) && typeof titleAttr.value.text !== 'object') {\n const { width, height } = initTextMeasure(titleValue as Partial<ITextGraphicAttribute>).quickMeasure(\n titleValue.text as TextMeasureInput\n );\n maxWidth = width;\n titleMaxHeight = height;\n }\n if (titleHasShape && builtinSymbolsMap[titleShapeType]) {\n maxWidth += titleShape.size + titleShape.spacing;\n titleMaxHeight = Math.max(titleShape.size, titleMaxHeight);\n }\n\n if (attribute.title) {\n attribute.title.width = maxWidth;\n attribute.title.height = titleMaxHeight;\n }\n\n if (isVisible(titleAttr)) {\n containerHeight += titleMaxHeight + titleAttr.spaceRow;\n }\n\n // calculate content\n if (content && content.length) {\n // filter content\n const filteredContent: [TooltipRowAttrs, TooltipRowAttrs][] = [];\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(attribute, i);\n if ((item.key || item.value) && isVisible(itemAttr)) {\n filteredContent.push([item, itemAttr]);\n }\n });\n\n if (filteredContent.length) {\n let hasContentShape = false;\n const shapeWidths: number[] = [];\n const keyWidths: number[] = [];\n const valueWidths: number[] = [];\n\n filteredContent.forEach(([item, itemAttr], i) => {\n const { key, value, shape, spaceRow } = itemAttr;\n const itemHasShape = isVisible(shape);\n const itemShapeType = shape?.symbolType ?? '';\n\n const keyTextMeasure = initTextMeasure(key as Partial<ITextGraphicAttribute>);\n const valueTextMeasure = initTextMeasure(value as Partial<ITextGraphicAttribute>);\n\n let itemHeight = 0;\n if (isVisible(key)) {\n const { width, height } = keyTextMeasure.quickMeasure(key.text as TextMeasureInput);\n keyWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (isVisible(value)) {\n const { width, height } = valueTextMeasure.quickMeasure(value.text as TextMeasureInput);\n valueWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (itemHasShape && builtinSymbolsMap[itemShapeType]) {\n hasContentShape = true;\n shapeWidths.push(shape.size);\n itemHeight = Math.max(shape.size, itemHeight);\n }\n\n item.height = itemHeight;\n containerHeight += itemHeight;\n if (i < filteredContent.length - 1) {\n containerHeight += spaceRow ?? contentStyle.spaceRow;\n }\n });\n\n const maxShapeWidth = shapeWidths.length ? Math.max(...shapeWidths) : 0; // shape 需要对齐\n const maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0; // name 需要对齐\n const maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0; // value 需要对齐\n maxWidth = Math.max(\n maxKeyWidth +\n maxValueWidth +\n contentStyle.key.spacing +\n contentStyle.value.spacing +\n (hasContentShape ? maxShapeWidth + contentStyle.shape.spacing : 0),\n maxWidth\n );\n content.forEach(item => {\n item.width = maxWidth;\n });\n attribute.hasContentShape = hasContentShape;\n attribute.keyWidth = maxKeyWidth;\n attribute.valueWidth = maxValueWidth;\n }\n }\n\n attribute.panel.width = maxWidth + padding[1] + padding[3];\n attribute.panel.height = containerHeight;\n\n return attribute;\n }\n\n static getTitleAttr(attribute: Partial<TooltipAttributes>): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs(\n {},\n Tooltip.defaultAttributes.titleStyle,\n Tooltip.defaultAttributes.title,\n attribute.titleStyle,\n attribute.title\n );\n }\n\n static getContentAttr(attribute: Partial<TooltipAttributes>, index: number): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs({}, Tooltip.defaultAttributes.contentStyle, attribute.contentStyle, attribute.content[index]);\n }\n}\n"]}
package/cjs/util/event.js CHANGED
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.getEndTriggersOfDrag = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core");
7
+ const global_1 = require("@visactor/vrender-core/global");
8
8
 
9
9
  function getEndTriggersOfDrag() {
10
- return "browser" === vrender_core_1.vglobal.env ? [ "pointerup", "pointerleave", "pointercancel" ] : [ "pointerup", "pointerleave", "pointerupoutside" ];
10
+ return "browser" === global_1.vglobal.env ? [ "pointerup", "pointerleave", "pointercancel" ] : [ "pointerup", "pointerleave", "pointerupoutside" ];
11
11
  }
12
12
 
13
13
  exports.getEndTriggersOfDrag = getEndTriggersOfDrag;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/event.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAEjD,SAAgB,oBAAoB;IAElC,IAAI,sBAAO,CAAC,GAAG,KAAK,SAAS,EAAE;QAC7B,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;KACvD;IAGD,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC3D,CAAC;AARD,oDAQC","file":"event.js","sourcesContent":["import { vglobal } from '@visactor/vrender-core';\n\nexport function getEndTriggersOfDrag() {\n // 绑定到 canvas 上\n if (vglobal.env === 'browser') {\n return ['pointerup', 'pointerleave', 'pointercancel'];\n }\n\n // 绑定到stage节点上\n return ['pointerup', 'pointerleave', 'pointerupoutside'];\n}\n"]}
1
+ {"version":3,"sources":["../src/util/event.ts"],"names":[],"mappings":";;;AAAA,0DAAwD;AAExD,SAAgB,oBAAoB;IAElC,IAAI,gBAAO,CAAC,GAAG,KAAK,SAAS,EAAE;QAC7B,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;KACvD;IAGD,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC3D,CAAC;AARD,oDAQC","file":"event.js","sourcesContent":["import { vglobal } from '@visactor/vrender-core/global';\n\nexport function getEndTriggersOfDrag() {\n // 绑定到 canvas 上\n if (vglobal.env === 'browser') {\n return ['pointerup', 'pointerleave', 'pointercancel'];\n }\n\n // 绑定到stage节点上\n return ['pointerup', 'pointerleave', 'pointerupoutside'];\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.graphicCreator = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), createGraphic = vrender_core_1.createGraphic;
7
+ const creator_1 = require("@visactor/vrender-core/graphic/creator"), createGraphic = creator_1.createGraphic;
8
8
 
9
9
  exports.graphicCreator = {
10
10
  arc: attributes => createGraphic("arc", attributes),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/graphic-creator.ts"],"names":[],"mappings":";;;AAwBA,yDAA4E;AAE5E,MAAM,aAAa,GAAG,4BAA+F,CAAC;AAEzG,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,CAAC,UAAgC,EAAQ,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IACjF,MAAM,EAAE,CAAC,UAAmC,EAAW,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7F,KAAK,EAAE,CAAC,UAAkC,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;IACzF,KAAK,EAAE,CAAC,UAAkC,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;IACzF,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,OAAO,EAAE,CAAC,UAAoC,EAAY,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;IACjG,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,QAAQ,EAAE,CAAC,UAAqC,EAAa,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;IACrG,MAAM,EAAE,CAAC,UAAmC,EAAW,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7F,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;CACtF,CAAC","file":"graphic-creator.js","sourcesContent":["import type {\n IArc,\n IArcGraphicAttribute,\n ICircle,\n ICircleGraphicAttribute,\n IGroup,\n IGroupGraphicAttribute,\n IImage,\n IImageGraphicAttribute,\n ILine,\n ILineGraphicAttribute,\n IPath,\n IPathGraphicAttribute,\n IPolygon,\n IPolygonGraphicAttribute,\n IRect,\n IRectGraphicAttribute,\n IRichText,\n IRichTextGraphicAttribute,\n ISymbol,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport { createGraphic as createCoreGraphic } from '@visactor/vrender-core';\n\nconst createGraphic = createCoreGraphic as <TGraphic, TAttributes>(type: string, attributes: TAttributes) => TGraphic;\n\nexport const graphicCreator = {\n arc: (attributes: IArcGraphicAttribute): IArc => createGraphic('arc', attributes),\n circle: (attributes: ICircleGraphicAttribute): ICircle => createGraphic('circle', attributes),\n group: (attributes: IGroupGraphicAttribute): IGroup => createGraphic('group', attributes),\n image: (attributes: IImageGraphicAttribute): IImage => createGraphic('image', attributes),\n line: (attributes: ILineGraphicAttribute): ILine => createGraphic('line', attributes),\n path: (attributes: IPathGraphicAttribute): IPath => createGraphic('path', attributes),\n polygon: (attributes: IPolygonGraphicAttribute): IPolygon => createGraphic('polygon', attributes),\n rect: (attributes: IRectGraphicAttribute): IRect => createGraphic('rect', attributes),\n richtext: (attributes: IRichTextGraphicAttribute): IRichText => createGraphic('richtext', attributes),\n symbol: (attributes: ISymbolGraphicAttribute): ISymbol => createGraphic('symbol', attributes),\n text: (attributes: ITextGraphicAttribute): IText => createGraphic('text', attributes)\n};\n"]}
1
+ {"version":3,"sources":["../src/util/graphic-creator.ts"],"names":[],"mappings":";;;AAwBA,oEAA4F;AAE5F,MAAM,aAAa,GAAG,uBAA+F,CAAC;AAEzG,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,CAAC,UAAgC,EAAQ,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IACjF,MAAM,EAAE,CAAC,UAAmC,EAAW,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7F,KAAK,EAAE,CAAC,UAAkC,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;IACzF,KAAK,EAAE,CAAC,UAAkC,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC;IACzF,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,OAAO,EAAE,CAAC,UAAoC,EAAY,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;IACjG,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;IACrF,QAAQ,EAAE,CAAC,UAAqC,EAAa,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;IACrG,MAAM,EAAE,CAAC,UAAmC,EAAW,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7F,IAAI,EAAE,CAAC,UAAiC,EAAS,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC;CACtF,CAAC","file":"graphic-creator.js","sourcesContent":["import type {\n IArc,\n IArcGraphicAttribute,\n ICircle,\n ICircleGraphicAttribute,\n IGroup,\n IGroupGraphicAttribute,\n IImage,\n IImageGraphicAttribute,\n ILine,\n ILineGraphicAttribute,\n IPath,\n IPathGraphicAttribute,\n IPolygon,\n IPolygonGraphicAttribute,\n IRect,\n IRectGraphicAttribute,\n IRichText,\n IRichTextGraphicAttribute,\n ISymbol,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport { createGraphic as createCoreGraphic } from '@visactor/vrender-core/graphic/creator';\n\nconst createGraphic = createCoreGraphic as <TGraphic, TAttributes>(type: string, attributes: TAttributes) => TGraphic;\n\nexport const graphicCreator = {\n arc: (attributes: IArcGraphicAttribute): IArc => createGraphic('arc', attributes),\n circle: (attributes: ICircleGraphicAttribute): ICircle => createGraphic('circle', attributes),\n group: (attributes: IGroupGraphicAttribute): IGroup => createGraphic('group', attributes),\n image: (attributes: IImageGraphicAttribute): IImage => createGraphic('image', attributes),\n line: (attributes: ILineGraphicAttribute): ILine => createGraphic('line', attributes),\n path: (attributes: IPathGraphicAttribute): IPath => createGraphic('path', attributes),\n polygon: (attributes: IPolygonGraphicAttribute): IPolygon => createGraphic('polygon', attributes),\n rect: (attributes: IRectGraphicAttribute): IRect => createGraphic('rect', attributes),\n richtext: (attributes: IRichTextGraphicAttribute): IRichText => createGraphic('richtext', attributes),\n symbol: (attributes: ISymbolGraphicAttribute): ISymbol => createGraphic('symbol', attributes),\n text: (attributes: ITextGraphicAttribute): IText => createGraphic('text', attributes)\n};\n"]}
package/cjs/util/text.js CHANGED
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.alignTextInLine = exports.createTextGraphicByType = exports.reactAttributeTransform = exports.htmlAttributeTransform = exports.richTextAttributeTransform = exports.getTextType = exports.isRichText = exports.measureTextSize = exports.initTextMeasure = void 0;
6
6
 
7
- const vrender_core_1 = require("@visactor/vrender-core"), graphic_creator_1 = require("./graphic-creator"), vutils_1 = require("@visactor/vutils"), constant_1 = require("../constant"), initTextMeasure = (textSpec, option, useNaiveCanvas, defaultFontParams) => new vutils_1.TextMeasure(Object.assign({
7
+ const text_1 = require("@visactor/vrender-core/text"), graphic_creator_1 = require("./graphic-creator"), vutils_1 = require("@visactor/vutils"), constant_1 = require("../constant"), initTextMeasure = (textSpec, option, useNaiveCanvas, defaultFontParams) => new vutils_1.TextMeasure(Object.assign({
8
8
  defaultFontParams: Object.assign({
9
9
  fontFamily: constant_1.DEFAULT_TEXT_FONT_FAMILY,
10
10
  fontSize: constant_1.DEFAULT_TEXT_FONT_SIZE
11
11
  }, defaultFontParams),
12
- getTextBounds: useNaiveCanvas ? void 0 : vrender_core_1.getTextBounds,
12
+ getTextBounds: useNaiveCanvas ? void 0 : text_1.getTextBounds,
13
13
  specialCharSet: "-/: .,@%'\"~" + vutils_1.TextMeasure.ALPHABET_CHAR_SET + vutils_1.TextMeasure.ALPHABET_CHAR_SET.toUpperCase()
14
14
  }, null != option ? option : {}), textSpec);
15
15
 
@@ -18,7 +18,7 @@ function measureTextSize(text, textSpec, defaultTextTheme = {}) {
18
18
  width: 0,
19
19
  height: 0
20
20
  };
21
- const bounds = (0, vrender_core_1.getTextBounds)({
21
+ const bounds = (0, text_1.getTextBounds)({
22
22
  text: text,
23
23
  fontFamily: textSpec.fontFamily || defaultTextTheme.fontFamily || constant_1.DEFAULT_TEXT_FONT_FAMILY,
24
24
  fontSize: textSpec.fontSize || defaultTextTheme.fontSize || 12,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":"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","file":"text.js","sourcesContent":["import type {\n IRichText,\n IRichTextAttribute,\n IText,\n ITextGraphicAttribute,\n TextAlignType\n} from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { getTextBounds } from '@visactor/vrender-core';\nimport { graphicCreator } from './graphic-creator';\nimport type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { TextMeasure, isObject, isValid } from '@visactor/vutils';\nimport { DEFAULT_TEXT_FONT_FAMILY, DEFAULT_TEXT_FONT_SIZE } from '../constant';\nimport type { HTMLTextContent, ReactTextContent, TextContent } from '../core/type';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean,\n defaultFontParams?: Partial<ITextGraphicAttribute>\n): TextMeasure<ITextGraphicAttribute> => {\n return new TextMeasure<ITextGraphicAttribute>(\n {\n defaultFontParams: {\n fontFamily: DEFAULT_TEXT_FONT_FAMILY,\n fontSize: DEFAULT_TEXT_FONT_SIZE,\n ...defaultFontParams\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n\n// FIXME: 和上一个方法统一,使用 TextMeasure 类\nexport function measureTextSize(\n text: string | number | string[] | number[],\n textSpec: Partial<ITextGraphicAttribute>,\n defaultTextTheme: Partial<ITextGraphicAttribute> = {}\n) {\n if (!text) {\n return { width: 0, height: 0 };\n }\n const bounds = getTextBounds({\n text,\n fontFamily: textSpec.fontFamily || defaultTextTheme.fontFamily || DEFAULT_TEXT_FONT_FAMILY,\n fontSize: textSpec.fontSize || defaultTextTheme.fontSize || 12,\n fontWeight: textSpec.fontWeight || defaultTextTheme.fontWeight,\n textAlign: textSpec.textAlign || 'center',\n textBaseline: textSpec.textBaseline,\n ellipsis: !!textSpec.ellipsis,\n maxLineWidth: textSpec.maxLineWidth || Infinity,\n lineHeight: textSpec.fontSize || defaultTextTheme.fontSize || 12\n });\n\n return { width: bounds.width(), height: bounds.height() };\n}\n\nexport function isRichText(attributes: TextContent, typeKey = 'type') {\n return getTextType(attributes, typeKey) === 'rich';\n}\n\nexport function getTextType(attributes: TextContent, typeKey = 'type') {\n if (isObject(attributes.text) && 'type' in attributes.text) {\n return attributes.text.type ?? 'text';\n }\n\n if (typeKey in attributes) {\n return attributes[typeKey] ?? 'text';\n }\n\n return 'text';\n}\n\nexport function richTextAttributeTransform(attributes: ITextGraphicAttribute & IRichTextAttribute & TextContent) {\n if (isValid(attributes.maxLineWidth)) {\n attributes.maxWidth = attributes.maxLineWidth;\n delete attributes.maxLineWidth;\n }\n\n attributes.width = attributes.width ?? 0;\n attributes.height = attributes.height ?? 0;\n attributes.textConfig = (attributes.text as unknown as any).text || attributes.text;\n return attributes;\n}\n\nexport function htmlAttributeTransform(attributes: ITextGraphicAttribute) {\n const { text, _originText } = attributes as unknown as HTMLTextContent;\n const { text: html } = text;\n\n attributes.html = html;\n attributes.text = _originText;\n attributes.renderable = false; // 文字图元配置了 html,则不绘制原始文字\n return attributes;\n}\n\nexport function reactAttributeTransform(attributes: ITextGraphicAttribute) {\n const { text, _originText } = attributes as unknown as ReactTextContent;\n const { text: react } = text;\n\n attributes.react = react;\n attributes.text = _originText;\n attributes.renderable = false; // 文字图元配置了 react,则不绘制原始文字\n\n return attributes;\n}\n\nexport function createTextGraphicByType(textAttributes: ITextGraphicAttribute, typeKey = 'type') {\n const textType = getTextType(textAttributes, typeKey);\n if (textType === 'rich') {\n return graphicCreator.richtext(richTextAttributeTransform(textAttributes as IRichTextAttribute));\n }\n\n if (textType === 'html') {\n textAttributes = htmlAttributeTransform(textAttributes);\n } else if (textType === 'react') {\n textAttributes = reactAttributeTransform(textAttributes);\n }\n\n return graphicCreator.text(textAttributes as ITextGraphicAttribute);\n}\n\nexport function alignTextInLine(\n layoutAlign: 'left' | 'right',\n graphic: IText | IRichText,\n textAlign: TextAlignType,\n pos: number,\n textWidth: number\n) {\n if (layoutAlign === 'right') {\n if (textAlign === 'center') {\n graphic.setAttribute('x', pos - textWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n graphic.setAttribute('x', pos);\n } else {\n // 默认左对齐\n graphic.setAttribute('x', pos - textWidth);\n }\n } else {\n if (textAlign === 'center') {\n graphic.setAttribute('x', pos + textWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n graphic.setAttribute('x', pos + textWidth);\n } else {\n // 默认左对齐\n graphic.setAttribute('x', pos);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":"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","file":"text.js","sourcesContent":["import type {\n IRichText,\n IRichTextAttribute,\n IText,\n ITextGraphicAttribute,\n TextAlignType\n} from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { getTextBounds } from '@visactor/vrender-core/text';\nimport { graphicCreator } from './graphic-creator';\nimport type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { TextMeasure, isObject, isValid } from '@visactor/vutils';\nimport { DEFAULT_TEXT_FONT_FAMILY, DEFAULT_TEXT_FONT_SIZE } from '../constant';\nimport type { HTMLTextContent, ReactTextContent, TextContent } from '../core/type';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean,\n defaultFontParams?: Partial<ITextGraphicAttribute>\n): TextMeasure<ITextGraphicAttribute> => {\n return new TextMeasure<ITextGraphicAttribute>(\n {\n defaultFontParams: {\n fontFamily: DEFAULT_TEXT_FONT_FAMILY,\n fontSize: DEFAULT_TEXT_FONT_SIZE,\n ...defaultFontParams\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n\n// FIXME: 和上一个方法统一,使用 TextMeasure 类\nexport function measureTextSize(\n text: string | number | string[] | number[],\n textSpec: Partial<ITextGraphicAttribute>,\n defaultTextTheme: Partial<ITextGraphicAttribute> = {}\n) {\n if (!text) {\n return { width: 0, height: 0 };\n }\n const bounds = getTextBounds({\n text,\n fontFamily: textSpec.fontFamily || defaultTextTheme.fontFamily || DEFAULT_TEXT_FONT_FAMILY,\n fontSize: textSpec.fontSize || defaultTextTheme.fontSize || 12,\n fontWeight: textSpec.fontWeight || defaultTextTheme.fontWeight,\n textAlign: textSpec.textAlign || 'center',\n textBaseline: textSpec.textBaseline,\n ellipsis: !!textSpec.ellipsis,\n maxLineWidth: textSpec.maxLineWidth || Infinity,\n lineHeight: textSpec.fontSize || defaultTextTheme.fontSize || 12\n });\n\n return { width: bounds.width(), height: bounds.height() };\n}\n\nexport function isRichText(attributes: TextContent, typeKey = 'type') {\n return getTextType(attributes, typeKey) === 'rich';\n}\n\nexport function getTextType(attributes: TextContent, typeKey = 'type') {\n if (isObject(attributes.text) && 'type' in attributes.text) {\n return attributes.text.type ?? 'text';\n }\n\n if (typeKey in attributes) {\n return attributes[typeKey] ?? 'text';\n }\n\n return 'text';\n}\n\nexport function richTextAttributeTransform(attributes: ITextGraphicAttribute & IRichTextAttribute & TextContent) {\n if (isValid(attributes.maxLineWidth)) {\n attributes.maxWidth = attributes.maxLineWidth;\n delete attributes.maxLineWidth;\n }\n\n attributes.width = attributes.width ?? 0;\n attributes.height = attributes.height ?? 0;\n attributes.textConfig = (attributes.text as unknown as any).text || attributes.text;\n return attributes;\n}\n\nexport function htmlAttributeTransform(attributes: ITextGraphicAttribute) {\n const { text, _originText } = attributes as unknown as HTMLTextContent;\n const { text: html } = text;\n\n attributes.html = html;\n attributes.text = _originText;\n attributes.renderable = false; // 文字图元配置了 html,则不绘制原始文字\n return attributes;\n}\n\nexport function reactAttributeTransform(attributes: ITextGraphicAttribute) {\n const { text, _originText } = attributes as unknown as ReactTextContent;\n const { text: react } = text;\n\n attributes.react = react;\n attributes.text = _originText;\n attributes.renderable = false; // 文字图元配置了 react,则不绘制原始文字\n\n return attributes;\n}\n\nexport function createTextGraphicByType(textAttributes: ITextGraphicAttribute, typeKey = 'type') {\n const textType = getTextType(textAttributes, typeKey);\n if (textType === 'rich') {\n return graphicCreator.richtext(richTextAttributeTransform(textAttributes as IRichTextAttribute));\n }\n\n if (textType === 'html') {\n textAttributes = htmlAttributeTransform(textAttributes);\n } else if (textType === 'react') {\n textAttributes = reactAttributeTransform(textAttributes);\n }\n\n return graphicCreator.text(textAttributes as ITextGraphicAttribute);\n}\n\nexport function alignTextInLine(\n layoutAlign: 'left' | 'right',\n graphic: IText | IRichText,\n textAlign: TextAlignType,\n pos: number,\n textWidth: number\n) {\n if (layoutAlign === 'right') {\n if (textAlign === 'center') {\n graphic.setAttribute('x', pos - textWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n graphic.setAttribute('x', pos);\n } else {\n // 默认左对齐\n graphic.setAttribute('x', pos - textWidth);\n }\n } else {\n if (textAlign === 'center') {\n graphic.setAttribute('x', pos + textWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n graphic.setAttribute('x', pos + textWidth);\n } else {\n // 默认左对齐\n graphic.setAttribute('x', pos);\n }\n }\n}\n"]}