@visactor/vrender-components 1.1.0-alpha.2 → 1.1.0-alpha.21

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 (112) hide show
  1. package/cjs/animation/axis-animate.d.ts +1 -0
  2. package/cjs/animation/axis-animate.js +11 -4
  3. package/cjs/animation/axis-animate.js.map +1 -1
  4. package/cjs/animation/exit-release.d.ts +13 -0
  5. package/cjs/animation/exit-release.js +39 -0
  6. package/cjs/animation/exit-release.js.map +1 -0
  7. package/cjs/animation/static-truth.d.ts +2 -0
  8. package/cjs/animation/static-truth.js +21 -0
  9. package/cjs/animation/static-truth.js.map +1 -0
  10. package/cjs/axis/animate/group-transition.d.ts +2 -2
  11. package/cjs/axis/animate/group-transition.js +7 -3
  12. package/cjs/axis/animate/group-transition.js.map +1 -1
  13. package/cjs/axis/base.d.ts +6 -2
  14. package/cjs/axis/base.js +80 -30
  15. package/cjs/axis/base.js.map +1 -1
  16. package/cjs/axis/line.d.ts +1 -1
  17. package/cjs/axis/line.js +2 -2
  18. package/cjs/axis/line.js.map +1 -1
  19. package/cjs/axis/util.js +1 -2
  20. package/cjs/brush/config.js +2 -1
  21. package/cjs/core/type.d.ts +7 -0
  22. package/cjs/core/type.js.map +1 -1
  23. package/cjs/crosshair/polygon-sector.js +1 -2
  24. package/cjs/crosshair/sector.js +2 -1
  25. package/cjs/empty-tip/register.js +1 -2
  26. package/cjs/index.d.ts +1 -1
  27. package/cjs/index.js +1 -1
  28. package/cjs/index.js.map +1 -1
  29. package/cjs/indicator/config.js +2 -1
  30. package/cjs/jsx/index.js +1 -1
  31. package/cjs/label/arc.js +14 -9
  32. package/cjs/label/arc.js.map +1 -1
  33. package/cjs/label/base.d.ts +8 -1
  34. package/cjs/label/base.js +86 -10
  35. package/cjs/label/base.js.map +1 -1
  36. package/cjs/label/dataLabel.d.ts +5 -1
  37. package/cjs/label/dataLabel.js +46 -1
  38. package/cjs/label/dataLabel.js.map +1 -1
  39. package/cjs/legend/discrete/discrete.js +17 -9
  40. package/cjs/legend/discrete/discrete.js.map +1 -1
  41. package/cjs/marker/animate/call-in.js +6 -2
  42. package/cjs/marker/animate/call-in.js.map +1 -1
  43. package/cjs/marker/animate/clip-in.js +6 -2
  44. package/cjs/marker/animate/clip-in.js.map +1 -1
  45. package/cjs/marker/animate/common.js +14 -5
  46. package/cjs/marker/animate/common.js.map +1 -1
  47. package/cjs/marker/base.d.ts +6 -2
  48. package/cjs/marker/base.js +51 -9
  49. package/cjs/marker/base.js.map +1 -1
  50. package/cjs/marker/type.d.ts +2 -1
  51. package/cjs/marker/type.js.map +1 -1
  52. package/cjs/timeline/timeline.js +35 -12
  53. package/cjs/timeline/timeline.js.map +1 -1
  54. package/cjs/title/title.js +5 -2
  55. package/cjs/title/title.js.map +1 -1
  56. package/dist/index.es.js +1631 -297
  57. package/es/animation/axis-animate.d.ts +1 -0
  58. package/es/animation/axis-animate.js +12 -4
  59. package/es/animation/axis-animate.js.map +1 -1
  60. package/es/animation/exit-release.d.ts +13 -0
  61. package/es/animation/exit-release.js +31 -0
  62. package/es/animation/exit-release.js.map +1 -0
  63. package/es/animation/static-truth.d.ts +2 -0
  64. package/es/animation/static-truth.js +14 -0
  65. package/es/animation/static-truth.js.map +1 -0
  66. package/es/axis/animate/group-transition.d.ts +2 -2
  67. package/es/axis/animate/group-transition.js +7 -2
  68. package/es/axis/animate/group-transition.js.map +1 -1
  69. package/es/axis/base.d.ts +6 -2
  70. package/es/axis/base.js +81 -28
  71. package/es/axis/base.js.map +1 -1
  72. package/es/axis/line.d.ts +1 -1
  73. package/es/axis/line.js +2 -2
  74. package/es/axis/line.js.map +1 -1
  75. package/es/axis/util.js +1 -2
  76. package/es/brush/config.js +2 -1
  77. package/es/core/type.d.ts +7 -0
  78. package/es/core/type.js.map +1 -1
  79. package/es/crosshair/polygon-sector.js +1 -2
  80. package/es/crosshair/sector.js +2 -1
  81. package/es/empty-tip/register.js +1 -2
  82. package/es/index.d.ts +1 -1
  83. package/es/index.js +1 -1
  84. package/es/index.js.map +1 -1
  85. package/es/indicator/config.js +2 -1
  86. package/es/jsx/index.js +1 -1
  87. package/es/label/arc.js +14 -9
  88. package/es/label/arc.js.map +1 -1
  89. package/es/label/base.d.ts +8 -1
  90. package/es/label/base.js +88 -9
  91. package/es/label/base.js.map +1 -1
  92. package/es/label/dataLabel.d.ts +5 -1
  93. package/es/label/dataLabel.js +46 -0
  94. package/es/label/dataLabel.js.map +1 -1
  95. package/es/legend/discrete/discrete.js +18 -8
  96. package/es/legend/discrete/discrete.js.map +1 -1
  97. package/es/marker/animate/call-in.js +7 -2
  98. package/es/marker/animate/call-in.js.map +1 -1
  99. package/es/marker/animate/clip-in.js +7 -2
  100. package/es/marker/animate/clip-in.js.map +1 -1
  101. package/es/marker/animate/common.js +10 -2
  102. package/es/marker/animate/common.js.map +1 -1
  103. package/es/marker/base.d.ts +6 -2
  104. package/es/marker/base.js +51 -8
  105. package/es/marker/base.js.map +1 -1
  106. package/es/marker/type.d.ts +2 -1
  107. package/es/marker/type.js.map +1 -1
  108. package/es/timeline/timeline.js +36 -11
  109. package/es/timeline/timeline.js.map +1 -1
  110. package/es/title/title.js +5 -2
  111. package/es/title/title.js.map +1 -1
  112. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/timeline/timeline.ts"],"names":[],"mappings":"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","file":"timeline.js","sourcesContent":["import { isArray, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { loadTimelineComponent } from './register';\nimport type { TimelineAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { getTheme, type IGraphicAttribute, type IGroup, type ILine, type IText } from '@visactor/vrender-core';\nimport type { ISymbol } from '@visactor/vrender-core';\n\nloadTimelineComponent();\n\nexport class Timeline extends AbstractComponent<Required<TimelineAttrs>> {\n name = 'timeline';\n\n private _line?: ILine;\n private _activeLine?: ILine;\n private _symbolGroup?: IGroup;\n private _labelGroup?: IGroup;\n private _timesPercent?: number[];\n\n static defaultAttributes: Partial<TimelineAttrs> = {\n labelSpace: 10,\n pointLayoutMode: 'space-around',\n animation: true,\n symbolStyle: {\n fill: 'black',\n size: 12,\n symbolType: 'circle'\n },\n activeSymbolStyle: {\n fill: 'orange',\n size: 16\n },\n lineStyle: {\n lineDash: [2, 2],\n lineCap: 'butt',\n stroke: 'black',\n lineWidth: 2\n },\n activeLineStyle: {\n stroke: 'orange',\n lineWidth: 4\n },\n labelStyle: {\n fontSize: 12,\n fill: 'black',\n textAlign: 'center',\n textBaseline: 'top'\n },\n activeLabelStyle: {\n fontSize: 14,\n fill: 'orange'\n },\n clipRange: 0\n };\n\n constructor(attributes: TimelineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Timeline.defaultAttributes, attributes));\n }\n\n protected render(): void {\n const {\n width,\n lineStyle,\n activeLineStyle,\n symbolStyle,\n activeSymbolStyle,\n labelStyle,\n activeLabelStyle,\n times,\n pointLayoutMode,\n labelSpace,\n clipRange,\n animation\n } = this.attribute;\n\n if (!(times && times.length)) {\n return;\n }\n\n // 计算线段中心的y位置,考虑线宽和symbol宽度\n const symbolHeight = (isArray(symbolStyle.size) ? symbolStyle.size[1] : symbolStyle.size) || 0;\n const activeSymbolHeight =\n (isArray(activeSymbolStyle.size) ? activeSymbolStyle.size[1] : activeSymbolStyle.size) || 0;\n const lineSymbolHeight = Math.max(\n lineStyle.lineWidth || 0,\n activeLineStyle.lineWidth || 0,\n symbolHeight,\n activeSymbolHeight\n );\n const lineY = lineSymbolHeight / 2;\n const lineAttr = {\n y: lineY,\n points: [\n { x: 0, y: 0 },\n { x: width, y: 0 }\n ]\n };\n this._line = this.createOrUpdateChild(\n 'line-axes',\n {\n ...lineStyle,\n ...lineAttr\n },\n 'line'\n ) as ILine;\n this._activeLine = this.createOrUpdateChild(\n 'active-line-axes',\n {\n ...activeLineStyle,\n ...lineAttr,\n clipRange\n },\n 'line'\n ) as ILine;\n\n const activeWidth = width * clipRange;\n\n const symbolGroup = this.createOrUpdateChild(\n 'symbol-group',\n {\n y: lineY\n },\n 'group'\n ) as IGroup;\n const symbolSpace =\n times.length === 1\n ? width\n : pointLayoutMode === 'space-between'\n ? width / (times.length - 1)\n : width / times.length;\n const symbolStartX = pointLayoutMode === 'space-between' ? 0 : symbolSpace / 2;\n this._timesPercent = times.map((_, i) => (symbolStartX + symbolSpace * i) / width);\n\n times.forEach((item, i) => {\n const x = this._timesPercent[i] * width;\n symbolGroup.createOrUpdateChild(\n item.label,\n {\n ...symbolStyle,\n x\n },\n 'symbol'\n );\n });\n this._symbolGroup = symbolGroup;\n\n const labelY = lineSymbolHeight + labelSpace;\n const labelGroup = this.createOrUpdateChild(\n 'label-group',\n {\n y: labelY\n },\n 'group'\n ) as IGroup;\n\n times.forEach((item, i) => {\n const x = this._timesPercent[i] * width;\n labelGroup.createOrUpdateChild(\n item.label,\n {\n ...labelStyle,\n x,\n text: item.label\n },\n 'text'\n );\n });\n this._labelGroup = labelGroup;\n\n const setActive = (group: IGroup, activeStyle: Partial<IGraphicAttribute>) => {\n group.forEachChildren((label: IText) => {\n if (label.currentStates) {\n const currentStates = label.currentStates;\n label.clearStates();\n label.useStates(currentStates, false);\n }\n label.states = {\n active: activeStyle\n };\n if (label.attribute.x <= activeWidth) {\n label.useStates(['active'], animation);\n }\n });\n };\n\n setActive(labelGroup, activeLabelStyle);\n setActive(symbolGroup, activeSymbolStyle);\n }\n\n appearAnimate(animateConfig: { duration?: number; easing?: string }) {\n // 基准时间,line[0, 500], point[100, 600] 100 onebyone, pointNormal[600, 1000] 90+90 onebyone, activeLine[500, 700]\n // line和activeLine的clipRange\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n const { activeLabelStyle, activeSymbolStyle } = this.attribute;\n const percent = duration / 1000;\n const lineDuration = percent * 500;\n const activeLineDuration = percent * 200;\n const perSymbolDuration = percent * 100;\n const perSymbolNormalDuration = percent * 90;\n const symbolDelay = percent * 100;\n const symbolNormalDelay = percent * 600;\n if (this._line) {\n this._line.setAttributes({ clipRange: 0 });\n this._line.animate().to({ clipRange: 1 }, lineDuration, easing as any);\n }\n if (this._activeLine) {\n this._activeLine.setAttributes({ opacity: 0 });\n this._activeLine\n .animate()\n .wait(500)\n .to({ opacity: 1 }, activeLineDuration, easing as any);\n }\n if (this._symbolGroup) {\n const size = this._symbolGroup.count - 1;\n const delay = percent * (size === 1 ? 0 : (500 - 100) / (size - 1));\n const delayNormal = percent * (size === 1 ? 0 : (400 - 160) / (size - 1));\n this._symbolGroup.forEachChildren((symbol: ISymbol, i) => {\n const originAttrs: Record<string, any> = {};\n Object.keys(activeSymbolStyle).forEach(k => {\n originAttrs[k] = (symbol.attribute as any)[k];\n });\n\n symbol.setAttributes({ opacity: 0 });\n symbol\n .animate()\n .wait(symbolDelay + delay * i)\n .to({ opacity: 1 }, perSymbolDuration, easing as any);\n symbol\n .animate()\n .wait(symbolNormalDelay + delayNormal * i)\n .to({ ...activeSymbolStyle }, perSymbolNormalDuration, easing as any)\n .to({ ...originAttrs }, perSymbolNormalDuration, easing as any);\n });\n }\n if (this._labelGroup) {\n const size = this._labelGroup.count - 1;\n const delay = percent * (size === 1 ? 0 : (500 - 100) / (size - 1));\n const delayNormal = percent * (size === 1 ? 0 : (400 - 160) / (size - 1));\n this._labelGroup.forEachChildren((label: IText, i) => {\n const originAttrs: Record<string, any> = {};\n Object.keys(activeLabelStyle).forEach(k => {\n originAttrs[k] = (label.attribute as any)[k];\n });\n label.setAttributes({ opacity: 0 });\n label\n .animate()\n .wait(symbolDelay + delay * i)\n .to({ opacity: 1 }, perSymbolDuration, easing as any);\n label\n .animate()\n .wait(symbolNormalDelay + delayNormal * i)\n .to({ dy: 10, ...activeLabelStyle }, perSymbolNormalDuration, easing as any)\n .to({ dy: 0, ...originAttrs }, perSymbolNormalDuration, easing as any);\n });\n }\n }\n\n goto(flag: 1 | -1, animateConfig: { duration?: number; easing?: string }) {\n let { clipRange } = this.attribute;\n const { animation } = this.attribute;\n\n // 合法性判断\n if (flag > 0) {\n if (clipRange >= 1) {\n return;\n } else if (clipRange < 0) {\n clipRange = 0;\n }\n } else {\n if (clipRange <= 0) {\n return;\n } else if (clipRange > 1) {\n clipRange = 1;\n }\n }\n\n if (clipRange !== this.attribute.clipRange) {\n this.setAttributes({ clipRange });\n }\n\n // 判断区间\n let i = 0;\n for (; i < this._timesPercent.length; i++) {\n if (clipRange < this._timesPercent[i]) {\n break;\n }\n }\n\n const nextClipRange = flag > 0 ? this._timesPercent[i] || 1 : this._timesPercent[i - 1] || 0;\n if (animation) {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n // const actDuration =\n // (Math.abs(nextClipRange - clipRange) / ((this._timesPercent[i] ?? 1) - (this._timesPercent[i - 1] ?? 0))) *\n // duration;\n this.animate().to({ clipRange: nextClipRange }, duration, easing as any);\n } else {\n this.setAttributes({ clipRange: nextClipRange });\n }\n }\n\n forward(animateConfig: { duration?: number; easing?: string }) {\n this.goto(1, animateConfig);\n }\n\n backward(animateConfig: { duration?: number; easing?: string }) {\n this.goto(-1, animateConfig);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/timeline/timeline.ts"],"names":[],"mappings":"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","file":"timeline.js","sourcesContent":["import { isArray, merge } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { loadTimelineComponent } from './register';\nimport type { TimelineAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport type { IGraphicAttribute, IGroup, ILine, ISymbol, IText } from '@visactor/vrender-core';\nimport { commitUpdateAnimationTarget } from '../animation/static-truth';\n\nloadTimelineComponent();\n\nexport class Timeline extends AbstractComponent<Required<TimelineAttrs>> {\n name = 'timeline';\n\n private _line?: ILine;\n private _activeLine?: ILine;\n private _symbolGroup?: IGroup;\n private _labelGroup?: IGroup;\n private _timesPercent?: number[];\n\n static defaultAttributes: Partial<TimelineAttrs> = {\n labelSpace: 10,\n pointLayoutMode: 'space-around',\n animation: true,\n symbolStyle: {\n fill: 'black',\n size: 12,\n symbolType: 'circle'\n },\n activeSymbolStyle: {\n fill: 'orange',\n size: 16\n },\n lineStyle: {\n lineDash: [2, 2],\n lineCap: 'butt',\n stroke: 'black',\n lineWidth: 2\n },\n activeLineStyle: {\n stroke: 'orange',\n lineWidth: 4\n },\n labelStyle: {\n fontSize: 12,\n fill: 'black',\n textAlign: 'center',\n textBaseline: 'top'\n },\n activeLabelStyle: {\n fontSize: 14,\n fill: 'orange'\n },\n clipRange: 0\n };\n\n constructor(attributes: TimelineAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Timeline.defaultAttributes, attributes));\n }\n\n protected render(): void {\n const {\n width,\n lineStyle,\n activeLineStyle,\n symbolStyle,\n activeSymbolStyle,\n labelStyle,\n activeLabelStyle,\n times,\n pointLayoutMode,\n labelSpace,\n clipRange,\n animation\n } = this.attribute;\n\n if (!(times && times.length)) {\n return;\n }\n\n // 计算线段中心的y位置,考虑线宽和symbol宽度\n const symbolHeight = (isArray(symbolStyle.size) ? symbolStyle.size[1] : symbolStyle.size) || 0;\n const activeSymbolHeight =\n (isArray(activeSymbolStyle.size) ? activeSymbolStyle.size[1] : activeSymbolStyle.size) || 0;\n const lineSymbolHeight = Math.max(\n lineStyle.lineWidth || 0,\n activeLineStyle.lineWidth || 0,\n symbolHeight,\n activeSymbolHeight\n );\n const lineY = lineSymbolHeight / 2;\n const lineAttr = {\n y: lineY,\n points: [\n { x: 0, y: 0 },\n { x: width, y: 0 }\n ]\n };\n this._line = this.createOrUpdateChild(\n 'line-axes',\n {\n ...lineStyle,\n ...lineAttr\n },\n 'line'\n ) as ILine;\n this._activeLine = this.createOrUpdateChild(\n 'active-line-axes',\n {\n ...activeLineStyle,\n ...lineAttr,\n clipRange\n },\n 'line'\n ) as ILine;\n\n const activeWidth = width * clipRange;\n\n const symbolGroup = this.createOrUpdateChild(\n 'symbol-group',\n {\n y: lineY\n },\n 'group'\n ) as IGroup;\n const symbolSpace =\n times.length === 1\n ? width\n : pointLayoutMode === 'space-between'\n ? width / (times.length - 1)\n : width / times.length;\n const symbolStartX = pointLayoutMode === 'space-between' ? 0 : symbolSpace / 2;\n this._timesPercent = times.map((_, i) => (symbolStartX + symbolSpace * i) / width);\n\n times.forEach((item, i) => {\n const x = this._timesPercent[i] * width;\n symbolGroup.createOrUpdateChild(\n item.label,\n {\n ...symbolStyle,\n x\n },\n 'symbol'\n );\n });\n this._symbolGroup = symbolGroup;\n\n const labelY = lineSymbolHeight + labelSpace;\n const labelGroup = this.createOrUpdateChild(\n 'label-group',\n {\n y: labelY\n },\n 'group'\n ) as IGroup;\n\n times.forEach((item, i) => {\n const x = this._timesPercent[i] * width;\n labelGroup.createOrUpdateChild(\n item.label,\n {\n ...labelStyle,\n x,\n text: item.label\n },\n 'text'\n );\n });\n this._labelGroup = labelGroup;\n\n const setActive = (group: IGroup, activeStyle: Partial<IGraphicAttribute>) => {\n group.forEachChildren((label: IText) => {\n if (label.currentStates) {\n const currentStates = label.currentStates;\n label.clearStates();\n label.useStates(currentStates, false);\n }\n label.states = {\n active: activeStyle\n };\n if (label.attribute.x <= activeWidth) {\n label.useStates(['active'], animation);\n }\n });\n };\n\n setActive(labelGroup, activeLabelStyle);\n setActive(symbolGroup, activeSymbolStyle);\n }\n\n appearAnimate(animateConfig: { duration?: number; easing?: string }) {\n // 基准时间,line[0, 500], point[100, 600] 100 onebyone, pointNormal[600, 1000] 90+90 onebyone, activeLine[500, 700]\n // line和activeLine的clipRange\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n const { activeLabelStyle, activeSymbolStyle } = this.attribute;\n const percent = duration / 1000;\n const lineDuration = percent * 500;\n const activeLineDuration = percent * 200;\n const perSymbolDuration = percent * 100;\n const perSymbolNormalDuration = percent * 90;\n const symbolDelay = percent * 100;\n const symbolNormalDelay = percent * 600;\n if (this._line) {\n commitUpdateAnimationTarget(this._line, { clipRange: 1 }, { clipRange: 0 });\n this._line.animate().to({ clipRange: 1 }, lineDuration, easing as any);\n }\n if (this._activeLine) {\n const opacity = this._activeLine.attribute.opacity ?? 1;\n commitUpdateAnimationTarget(this._activeLine, { opacity }, { opacity: 0 });\n this._activeLine\n .animate()\n .wait(500)\n .to({ opacity }, activeLineDuration, easing as any);\n }\n if (this._symbolGroup) {\n const size = this._symbolGroup.count - 1;\n const delay = percent * (size === 1 ? 0 : (500 - 100) / (size - 1));\n const delayNormal = percent * (size === 1 ? 0 : (400 - 160) / (size - 1));\n this._symbolGroup.forEachChildren((symbol: ISymbol, i) => {\n const originAttrs: Record<string, any> = {};\n Object.keys(activeSymbolStyle).forEach(k => {\n originAttrs[k] = (symbol.attribute as any)[k];\n });\n\n const opacity = symbol.attribute.opacity ?? 1;\n commitUpdateAnimationTarget(symbol, { opacity }, { opacity: 0 });\n symbol\n .animate()\n .wait(symbolDelay + delay * i)\n .to({ opacity }, perSymbolDuration, easing as any);\n symbol\n .animate()\n .wait(symbolNormalDelay + delayNormal * i)\n .to({ ...activeSymbolStyle }, perSymbolNormalDuration, easing as any)\n .to({ ...originAttrs }, perSymbolNormalDuration, easing as any);\n });\n }\n if (this._labelGroup) {\n const size = this._labelGroup.count - 1;\n const delay = percent * (size === 1 ? 0 : (500 - 100) / (size - 1));\n const delayNormal = percent * (size === 1 ? 0 : (400 - 160) / (size - 1));\n this._labelGroup.forEachChildren((label: IText, i) => {\n const originAttrs: Record<string, any> = {};\n Object.keys(activeLabelStyle).forEach(k => {\n originAttrs[k] = (label.attribute as any)[k];\n });\n const opacity = label.attribute.opacity ?? 1;\n commitUpdateAnimationTarget(label, { opacity }, { opacity: 0 });\n label\n .animate()\n .wait(symbolDelay + delay * i)\n .to({ opacity }, perSymbolDuration, easing as any);\n label\n .animate()\n .wait(symbolNormalDelay + delayNormal * i)\n .to({ dy: 10, ...activeLabelStyle }, perSymbolNormalDuration, easing as any)\n .to({ dy: 0, ...originAttrs }, perSymbolNormalDuration, easing as any);\n });\n }\n }\n\n goto(flag: 1 | -1, animateConfig: { duration?: number; easing?: string }) {\n let { clipRange } = this.attribute;\n const { animation } = this.attribute;\n\n // 合法性判断\n if (flag > 0) {\n if (clipRange >= 1) {\n return;\n } else if (clipRange < 0) {\n clipRange = 0;\n }\n } else {\n if (clipRange <= 0) {\n return;\n } else if (clipRange > 1) {\n clipRange = 1;\n }\n }\n\n if (clipRange !== this.attribute.clipRange) {\n this.setAttributes({ clipRange });\n }\n\n // 判断区间\n let i = 0;\n for (; i < this._timesPercent.length; i++) {\n if (clipRange < this._timesPercent[i]) {\n break;\n }\n }\n\n const nextClipRange = flag > 0 ? this._timesPercent[i] || 1 : this._timesPercent[i - 1] || 0;\n if (animation) {\n const { duration = 1000, easing = 'quadOut' } = animateConfig;\n // const actDuration =\n // (Math.abs(nextClipRange - clipRange) / ((this._timesPercent[i] ?? 1) - (this._timesPercent[i - 1] ?? 0))) *\n // duration;\n commitUpdateAnimationTarget(this as any, { clipRange: nextClipRange }, { clipRange });\n this.animate().to({ clipRange: nextClipRange }, duration, easing as any);\n } else {\n this.setAttributes({ clipRange: nextClipRange });\n }\n }\n\n forward(animateConfig: { duration?: number; easing?: string }) {\n this.goto(1, animateConfig);\n }\n\n backward(animateConfig: { duration?: number; easing?: string }) {\n this.goto(-1, animateConfig);\n }\n}\n"]}
@@ -115,8 +115,11 @@ class Title extends base_1.AbstractComponent {
115
115
  (0, vutils_1.isValid)(maxWidth) && totalWidth > maxWidth && (totalWidth = maxWidth),
116
116
  (0, vutils_1.isValid)(minHeight) && totalHeight < minHeight && (totalHeight = minHeight),
117
117
  (0, vutils_1.isValid)(maxHeight) && totalHeight > maxHeight && (totalHeight = maxHeight),
118
- group.attribute.width = totalWidth, group.attribute.height = totalHeight, group.attribute.boundsPadding = parsedPadding,
119
- this._mainTitle) {
118
+ group.setAttributes({
119
+ width: totalWidth,
120
+ height: totalHeight,
121
+ boundsPadding: parsedPadding
122
+ }), this._mainTitle) {
120
123
  if ((0, vutils_1.isValid)(align) || (0, vutils_1.isValid)(textStyle.align)) {
121
124
  const mainTitleAlign = textStyle.align ? textStyle.align : align, mainTitleWidth = null !== (_r = textStyle.width) && void 0 !== _r ? _r : totalWidth;
122
125
  "center" === mainTitleAlign ? (this._mainTitle.setAttribute("x", mainTitleWidth / 2),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type { IGroup, IText, IRichText, IRichTextCharacter } from '@visactor/vrender-core';\nimport { merge, isValid, normalizePadding, isArray } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { TitleAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTitleComponent } from './register';\nimport { Text } from '@visactor/vrender-core';\n\nloadTitleComponent();\nexport class Title extends AbstractComponent<Required<TitleAttrs>> {\n name = 'title';\n\n private _mainTitle?: IText | IRichText;\n private _subTitle?: IText | IRichText;\n\n static defaultAttributes: Partial<TitleAttrs> = {\n textStyle: {\n ellipsis: '...',\n fill: '#333',\n fontSize: 20,\n fontWeight: 'bold',\n textAlign: 'left',\n textBaseline: 'top'\n },\n subtextStyle: {\n ellipsis: '...',\n fill: '#6F6F6F',\n fontSize: 16,\n fontWeight: 'normal',\n textAlign: 'left',\n textBaseline: 'top'\n }\n };\n\n constructor(attributes: TitleAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Title.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n textType,\n text,\n subtextType,\n textStyle = {},\n subtext,\n subtextStyle = {},\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n align,\n verticalAlign,\n padding = 0\n } = this.attribute as TitleAttrs;\n\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild(\n 'title-container',\n { x: parsedPadding[3], y: parsedPadding[0], zIndex: 1 },\n 'group'\n ) as IGroup;\n\n const fixedMainTitleHeight = textStyle.height ?? height;\n if (this.attribute.visible !== false && textStyle.visible !== false) {\n const {\n width: mainTitleWidth,\n maxHeight: mainTitleMaxHeight,\n maxWidth: mainTitleMaxWidth,\n x = 0,\n y = 0,\n ellipsis = true,\n wordBreak = 'break-word',\n maxWidth,\n lineClamp\n } = textStyle;\n if (textType === 'rich' || isValid(textStyle.character)) {\n const attr = {\n x,\n y,\n width: mainTitleWidth ?? width ?? 0,\n height: fixedMainTitleHeight ?? 0,\n ellipsis: ellipsis ?? true,\n wordBreak: wordBreak ?? 'break-word',\n maxHeight: mainTitleMaxHeight ?? maxHeight,\n maxWidth: mainTitleMaxWidth ?? maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: textStyle.character ?? (text as IRichTextCharacter[]),\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (textType === 'html') {\n const attr = {\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n x,\n y,\n width: mainTitleWidth ?? width ?? 0,\n height: fixedMainTitleHeight ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: mainTitleMaxHeight ?? maxHeight,\n maxWidth: mainTitleMaxWidth ?? maxWidth,\n textConfig: [] as any[],\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (isValid(text)) {\n this._mainTitle = group.createOrUpdateChild(\n 'mainTitle',\n {\n text: isArray(text) ? (text as any) : [text as string],\n whiteSpace: 'normal',\n ...textStyle,\n maxLineWidth: textStyle.maxLineWidth ?? mainTitleWidth ?? width,\n heightLimit: textStyle.height ?? maxHeight,\n lineClamp,\n ellipsis,\n x,\n y\n },\n 'text'\n ) as IText;\n }\n }\n\n const mainTextBoundsHeight = this._mainTitle ? this._mainTitle.AABBBounds.height() : 0;\n const mainTextBoundsWidth = this._mainTitle ? this._mainTitle.AABBBounds.width() : 0;\n\n // 目前 height 限制等于 0 时,相当于 Infinity,无限制\n\n if (this.attribute.visible !== false && subtextStyle.visible !== false) {\n const {\n width: subTitleWidth,\n height: subTitleHeight,\n maxWidth: subTitleMaxWidth,\n maxHeight: subTitleMaxHeight,\n x = 0,\n y = 0,\n ellipsis = true,\n wordBreak = 'break-word',\n lineClamp\n } = subtextStyle;\n const maxSubTextHeight = Math.max(Number.MIN_VALUE, maxHeight - mainTextBoundsHeight);\n\n if (subtextType === 'rich' || isValid(subtextStyle.character)) {\n const attr: any = {\n x,\n y,\n width: subTitleWidth ?? width ?? 0,\n height: subTitleHeight ?? height ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: subTitleMaxHeight ?? maxSubTextHeight,\n maxWidth: subTitleMaxWidth ?? maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: subtextStyle.character ?? (subtext as IRichTextCharacter[]),\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (subtextType === 'html') {\n const attr: any = {\n html: {\n dom: subtext as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...subtextStyle\n },\n x,\n y,\n width: subTitleWidth ?? width ?? 0,\n height: subTitleHeight ?? height ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: subTitleMaxHeight ?? maxSubTextHeight,\n maxWidth: subTitleMaxWidth ?? maxWidth,\n textConfig: [] as any[],\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (isValid(subtext)) {\n this._subTitle = group.createOrUpdateChild(\n 'subTitle',\n {\n text: isArray(subtext) ? (subtext as any) : [subtext as string],\n whiteSpace: 'normal',\n ...subtextStyle,\n maxLineWidth: subtextStyle.maxLineWidth ?? width,\n heightLimit: subtextStyle.heightLimit ?? maxSubTextHeight,\n lineClamp,\n ellipsis,\n x: 0,\n y: mainTextBoundsHeight\n },\n 'text'\n ) as IText;\n }\n }\n\n const subTextBoundsHeight = this._subTitle ? this._subTitle.AABBBounds.height() : 0;\n const subTextBoundsWidth = this._subTitle ? this._subTitle.AABBBounds.width() : 0;\n\n // 设置宽高\n let totalWidth = Math.max(mainTextBoundsWidth, subTextBoundsWidth);\n let totalHeight = mainTextBoundsHeight + (subtextStyle.height ?? subTextBoundsHeight);\n\n if (isValid(width)) {\n totalWidth = width;\n }\n\n if (isValid(height)) {\n totalHeight = height;\n }\n\n if (isValid(minWidth) && totalWidth < minWidth) {\n totalWidth = minWidth;\n }\n if (isValid(maxWidth)) {\n if (totalWidth > maxWidth) {\n totalWidth = maxWidth;\n }\n }\n\n if (isValid(minHeight) && totalHeight < minHeight) {\n totalHeight = minHeight;\n }\n\n if (isValid(maxHeight)) {\n if (totalHeight > maxHeight) {\n totalHeight = maxHeight;\n }\n }\n\n group.attribute.width = totalWidth;\n group.attribute.height = totalHeight;\n group.attribute.boundsPadding = parsedPadding;\n\n // 设置对齐\n if (this._mainTitle) {\n if (isValid(align) || isValid(textStyle.align)) {\n const mainTitleAlign = textStyle.align ? textStyle.align : align;\n const mainTitleWidth = textStyle.width ?? totalWidth;\n if (mainTitleAlign === 'center') {\n this._mainTitle.setAttribute('x', mainTitleWidth / 2);\n this._mainTitle.setAttribute('textAlign', 'center');\n } else if (mainTitleAlign === 'right') {\n this._mainTitle.setAttribute('x', mainTitleWidth);\n this._mainTitle.setAttribute('textAlign', 'right');\n } else {\n this._mainTitle.setAttribute('x', 0);\n this._mainTitle.setAttribute('textAlign', 'left');\n }\n }\n\n const mainTitleVerticalAlign = textStyle.verticalAlign ? textStyle.verticalAlign : verticalAlign;\n const mainTitleHeight =\n fixedMainTitleHeight ?? (this._mainTitle.AABBBounds.empty() ? 0 : this._mainTitle.AABBBounds.height());\n\n if (mainTitleVerticalAlign === 'middle') {\n this._mainTitle.setAttribute('y', mainTitleHeight / 2);\n this._mainTitle.setAttribute('textBaseline', 'middle');\n } else if (mainTitleVerticalAlign === 'bottom') {\n this._mainTitle.setAttribute('y', mainTitleHeight);\n this._mainTitle.setAttribute('textBaseline', 'bottom');\n } else {\n // 如果没有显示的设置verticalAlign,默认top\n this._mainTitle.setAttribute('y', 0);\n this._mainTitle.setAttribute('textBaseline', 'top');\n }\n }\n\n if (this._subTitle) {\n if (isValid(align) || isValid(subtextStyle.align)) {\n const subTitleAlign = subtextStyle.align ? subtextStyle.align : align;\n // 当subText没有设置显示的宽度,但是mainText设置了显示的宽度的时候,为mainText为主,因为默认subText要和mainText对齐\n const subTitleWidth = subtextStyle.width ?? textStyle.width ?? totalWidth;\n if (subTitleAlign === 'center') {\n this._subTitle.setAttribute('x', subTitleWidth / 2);\n this._subTitle.setAttribute('textAlign', 'center');\n } else if (subTitleAlign === 'right') {\n this._subTitle.setAttribute('x', subTitleWidth);\n this._subTitle.setAttribute('textAlign', 'right');\n } else {\n this._subTitle.setAttribute('x', 0);\n this._subTitle.setAttribute('textAlign', 'left');\n }\n }\n\n const subTitleVerticalAlign = subtextStyle.verticalAlign ? subtextStyle.verticalAlign : verticalAlign;\n\n const subTitleYStart = this._mainTitle\n ? isValid(fixedMainTitleHeight)\n ? // 如果是用户指定的高度,根据bounds的height 和指定高度求最大值\n this._mainTitle.AABBBounds.y1 +\n Math.max(this._mainTitle.AABBBounds.empty() ? 0 : this._mainTitle.AABBBounds.height(), fixedMainTitleHeight)\n : this._mainTitle.AABBBounds.y2\n : 0;\n const subTitleHeight =\n subtextStyle.height ?? height ?? (this._subTitle.AABBBounds.empty() ? 0 : this._subTitle.AABBBounds.height());\n if (subTitleVerticalAlign === 'middle') {\n this._subTitle.setAttribute('y', subTitleYStart + subTitleHeight / 2);\n this._subTitle.setAttribute('textBaseline', 'middle');\n } else if (subTitleVerticalAlign === 'bottom') {\n this._subTitle.setAttribute('y', subTitleYStart + subTitleHeight);\n this._subTitle.setAttribute('textBaseline', 'bottom');\n } else {\n this._subTitle.setAttribute('y', subTitleYStart);\n this._subTitle.setAttribute('textBaseline', 'top');\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type { IGroup, IText, IRichText, IRichTextCharacter } from '@visactor/vrender-core';\nimport { merge, isValid, normalizePadding, isArray } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { TitleAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTitleComponent } from './register';\n\nloadTitleComponent();\nexport class Title extends AbstractComponent<Required<TitleAttrs>> {\n name = 'title';\n\n private _mainTitle?: IText | IRichText;\n private _subTitle?: IText | IRichText;\n\n static defaultAttributes: Partial<TitleAttrs> = {\n textStyle: {\n ellipsis: '...',\n fill: '#333',\n fontSize: 20,\n fontWeight: 'bold',\n textAlign: 'left',\n textBaseline: 'top'\n },\n subtextStyle: {\n ellipsis: '...',\n fill: '#6F6F6F',\n fontSize: 16,\n fontWeight: 'normal',\n textAlign: 'left',\n textBaseline: 'top'\n }\n };\n\n constructor(attributes: TitleAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Title.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n textType,\n text,\n subtextType,\n textStyle = {},\n subtext,\n subtextStyle = {},\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n align,\n verticalAlign,\n padding = 0\n } = this.attribute as TitleAttrs;\n\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild(\n 'title-container',\n { x: parsedPadding[3], y: parsedPadding[0], zIndex: 1 },\n 'group'\n ) as IGroup;\n\n const fixedMainTitleHeight = textStyle.height ?? height;\n if (this.attribute.visible !== false && textStyle.visible !== false) {\n const {\n width: mainTitleWidth,\n maxHeight: mainTitleMaxHeight,\n maxWidth: mainTitleMaxWidth,\n x = 0,\n y = 0,\n ellipsis = true,\n wordBreak = 'break-word',\n maxWidth,\n lineClamp\n } = textStyle;\n if (textType === 'rich' || isValid(textStyle.character)) {\n const attr = {\n x,\n y,\n width: mainTitleWidth ?? width ?? 0,\n height: fixedMainTitleHeight ?? 0,\n ellipsis: ellipsis ?? true,\n wordBreak: wordBreak ?? 'break-word',\n maxHeight: mainTitleMaxHeight ?? maxHeight,\n maxWidth: mainTitleMaxWidth ?? maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: textStyle.character ?? (text as IRichTextCharacter[]),\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (textType === 'html') {\n const attr = {\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n x,\n y,\n width: mainTitleWidth ?? width ?? 0,\n height: fixedMainTitleHeight ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: mainTitleMaxHeight ?? maxHeight,\n maxWidth: mainTitleMaxWidth ?? maxWidth,\n textConfig: [] as any[],\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (isValid(text)) {\n this._mainTitle = group.createOrUpdateChild(\n 'mainTitle',\n {\n text: isArray(text) ? (text as any) : [text as string],\n whiteSpace: 'normal',\n ...textStyle,\n maxLineWidth: textStyle.maxLineWidth ?? mainTitleWidth ?? width,\n heightLimit: textStyle.height ?? maxHeight,\n lineClamp,\n ellipsis,\n x,\n y\n },\n 'text'\n ) as IText;\n }\n }\n\n const mainTextBoundsHeight = this._mainTitle ? this._mainTitle.AABBBounds.height() : 0;\n const mainTextBoundsWidth = this._mainTitle ? this._mainTitle.AABBBounds.width() : 0;\n\n // 目前 height 限制等于 0 时,相当于 Infinity,无限制\n\n if (this.attribute.visible !== false && subtextStyle.visible !== false) {\n const {\n width: subTitleWidth,\n height: subTitleHeight,\n maxWidth: subTitleMaxWidth,\n maxHeight: subTitleMaxHeight,\n x = 0,\n y = 0,\n ellipsis = true,\n wordBreak = 'break-word',\n lineClamp\n } = subtextStyle;\n const maxSubTextHeight = Math.max(Number.MIN_VALUE, maxHeight - mainTextBoundsHeight);\n\n if (subtextType === 'rich' || isValid(subtextStyle.character)) {\n const attr: any = {\n x,\n y,\n width: subTitleWidth ?? width ?? 0,\n height: subTitleHeight ?? height ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: subTitleMaxHeight ?? maxSubTextHeight,\n maxWidth: subTitleMaxWidth ?? maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: subtextStyle.character ?? (subtext as IRichTextCharacter[]),\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (subtextType === 'html') {\n const attr: any = {\n html: {\n dom: subtext as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...subtextStyle\n },\n x,\n y,\n width: subTitleWidth ?? width ?? 0,\n height: subTitleHeight ?? height ?? 0,\n ellipsis,\n wordBreak,\n maxHeight: subTitleMaxHeight ?? maxSubTextHeight,\n maxWidth: subTitleMaxWidth ?? maxWidth,\n textConfig: [] as any[],\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (isValid(subtext)) {\n this._subTitle = group.createOrUpdateChild(\n 'subTitle',\n {\n text: isArray(subtext) ? (subtext as any) : [subtext as string],\n whiteSpace: 'normal',\n ...subtextStyle,\n maxLineWidth: subtextStyle.maxLineWidth ?? width,\n heightLimit: subtextStyle.heightLimit ?? maxSubTextHeight,\n lineClamp,\n ellipsis,\n x: 0,\n y: mainTextBoundsHeight\n },\n 'text'\n ) as IText;\n }\n }\n\n const subTextBoundsHeight = this._subTitle ? this._subTitle.AABBBounds.height() : 0;\n const subTextBoundsWidth = this._subTitle ? this._subTitle.AABBBounds.width() : 0;\n\n // 设置宽高\n let totalWidth = Math.max(mainTextBoundsWidth, subTextBoundsWidth);\n let totalHeight = mainTextBoundsHeight + (subtextStyle.height ?? subTextBoundsHeight);\n\n if (isValid(width)) {\n totalWidth = width;\n }\n\n if (isValid(height)) {\n totalHeight = height;\n }\n\n if (isValid(minWidth) && totalWidth < minWidth) {\n totalWidth = minWidth;\n }\n if (isValid(maxWidth)) {\n if (totalWidth > maxWidth) {\n totalWidth = maxWidth;\n }\n }\n\n if (isValid(minHeight) && totalHeight < minHeight) {\n totalHeight = minHeight;\n }\n\n if (isValid(maxHeight)) {\n if (totalHeight > maxHeight) {\n totalHeight = maxHeight;\n }\n }\n\n group.setAttributes({\n width: totalWidth,\n height: totalHeight,\n boundsPadding: parsedPadding\n });\n\n // 设置对齐\n if (this._mainTitle) {\n if (isValid(align) || isValid(textStyle.align)) {\n const mainTitleAlign = textStyle.align ? textStyle.align : align;\n const mainTitleWidth = textStyle.width ?? totalWidth;\n if (mainTitleAlign === 'center') {\n this._mainTitle.setAttribute('x', mainTitleWidth / 2);\n this._mainTitle.setAttribute('textAlign', 'center');\n } else if (mainTitleAlign === 'right') {\n this._mainTitle.setAttribute('x', mainTitleWidth);\n this._mainTitle.setAttribute('textAlign', 'right');\n } else {\n this._mainTitle.setAttribute('x', 0);\n this._mainTitle.setAttribute('textAlign', 'left');\n }\n }\n\n const mainTitleVerticalAlign = textStyle.verticalAlign ? textStyle.verticalAlign : verticalAlign;\n const mainTitleHeight =\n fixedMainTitleHeight ?? (this._mainTitle.AABBBounds.empty() ? 0 : this._mainTitle.AABBBounds.height());\n\n if (mainTitleVerticalAlign === 'middle') {\n this._mainTitle.setAttribute('y', mainTitleHeight / 2);\n this._mainTitle.setAttribute('textBaseline', 'middle');\n } else if (mainTitleVerticalAlign === 'bottom') {\n this._mainTitle.setAttribute('y', mainTitleHeight);\n this._mainTitle.setAttribute('textBaseline', 'bottom');\n } else {\n // 如果没有显示的设置verticalAlign,默认top\n this._mainTitle.setAttribute('y', 0);\n this._mainTitle.setAttribute('textBaseline', 'top');\n }\n }\n\n if (this._subTitle) {\n if (isValid(align) || isValid(subtextStyle.align)) {\n const subTitleAlign = subtextStyle.align ? subtextStyle.align : align;\n // 当subText没有设置显示的宽度,但是mainText设置了显示的宽度的时候,为mainText为主,因为默认subText要和mainText对齐\n const subTitleWidth = subtextStyle.width ?? textStyle.width ?? totalWidth;\n if (subTitleAlign === 'center') {\n this._subTitle.setAttribute('x', subTitleWidth / 2);\n this._subTitle.setAttribute('textAlign', 'center');\n } else if (subTitleAlign === 'right') {\n this._subTitle.setAttribute('x', subTitleWidth);\n this._subTitle.setAttribute('textAlign', 'right');\n } else {\n this._subTitle.setAttribute('x', 0);\n this._subTitle.setAttribute('textAlign', 'left');\n }\n }\n\n const subTitleVerticalAlign = subtextStyle.verticalAlign ? subtextStyle.verticalAlign : verticalAlign;\n\n const subTitleYStart = this._mainTitle\n ? isValid(fixedMainTitleHeight)\n ? // 如果是用户指定的高度,根据bounds的height 和指定高度求最大值\n this._mainTitle.AABBBounds.y1 +\n Math.max(this._mainTitle.AABBBounds.empty() ? 0 : this._mainTitle.AABBBounds.height(), fixedMainTitleHeight)\n : this._mainTitle.AABBBounds.y2\n : 0;\n const subTitleHeight =\n subtextStyle.height ?? height ?? (this._subTitle.AABBBounds.empty() ? 0 : this._subTitle.AABBBounds.height());\n if (subTitleVerticalAlign === 'middle') {\n this._subTitle.setAttribute('y', subTitleYStart + subTitleHeight / 2);\n this._subTitle.setAttribute('textBaseline', 'middle');\n } else if (subTitleVerticalAlign === 'bottom') {\n this._subTitle.setAttribute('y', subTitleYStart + subTitleHeight);\n this._subTitle.setAttribute('textBaseline', 'bottom');\n } else {\n this._subTitle.setAttribute('y', subTitleYStart);\n this._subTitle.setAttribute('textBaseline', 'top');\n }\n }\n }\n}\n"]}