@visactor/vrender-components 0.19.19 → 0.20.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/cjs/axis/animate/index.d.ts +0 -1
  2. package/cjs/axis/animate/index.js +1 -1
  3. package/cjs/axis/animate/index.js.map +1 -1
  4. package/cjs/axis/base.js.map +1 -1
  5. package/cjs/axis/grid/base.d.ts +4 -0
  6. package/cjs/axis/grid/base.js +19 -0
  7. package/cjs/axis/grid/base.js.map +1 -1
  8. package/cjs/axis/grid/circle.js +3 -16
  9. package/cjs/axis/grid/circle.js.map +1 -1
  10. package/cjs/axis/grid/line.js +3 -17
  11. package/cjs/axis/grid/line.js.map +1 -1
  12. package/cjs/axis/mixin/circle.js.map +1 -1
  13. package/cjs/axis/tick-data/cartesian-ticks.d.ts +3 -0
  14. package/cjs/axis/tick-data/cartesian-ticks.js +13 -0
  15. package/cjs/axis/tick-data/cartesian-ticks.js.map +1 -0
  16. package/cjs/axis/tick-data/discrete/polar-angle.d.ts +3 -1
  17. package/cjs/axis/tick-data/discrete/polar-angle.js +24 -3
  18. package/cjs/axis/tick-data/discrete/polar-angle.js.map +1 -1
  19. package/cjs/axis/tick-data/index.d.ts +6 -3
  20. package/cjs/axis/tick-data/index.js +53 -10
  21. package/cjs/axis/tick-data/index.js.map +1 -1
  22. package/cjs/axis/tick-data/polar-ticks.d.ts +3 -0
  23. package/cjs/axis/tick-data/polar-ticks.js +13 -0
  24. package/cjs/axis/tick-data/polar-ticks.js.map +1 -0
  25. package/cjs/axis/tick-data/ticks.d.ts +3 -0
  26. package/cjs/axis/tick-data/ticks.js +17 -0
  27. package/cjs/axis/tick-data/ticks.js.map +1 -0
  28. package/cjs/axis/tick-data/util.d.ts +1 -2
  29. package/cjs/axis/tick-data/util.js +2 -23
  30. package/cjs/axis/tick-data/util.js.map +1 -1
  31. package/cjs/brush/brush.js +1 -2
  32. package/cjs/brush/type.js +2 -1
  33. package/cjs/index.d.ts +1 -1
  34. package/cjs/index.js +1 -1
  35. package/cjs/index.js.map +1 -1
  36. package/cjs/interface.d.ts +1 -3
  37. package/cjs/interface.js.map +1 -1
  38. package/cjs/label/arc.d.ts +1 -0
  39. package/cjs/label/arc.js +9 -3
  40. package/cjs/label/arc.js.map +1 -1
  41. package/cjs/label/data-label-register.d.ts +2 -0
  42. package/cjs/label/data-label-register.js +16 -0
  43. package/cjs/label/data-label-register.js.map +1 -0
  44. package/cjs/label/dataLabel.js +2 -9
  45. package/cjs/label/dataLabel.js.map +1 -1
  46. package/cjs/label/index.d.ts +0 -2
  47. package/cjs/label/index.js +0 -1
  48. package/cjs/label/index.js.map +1 -1
  49. package/cjs/label/line.d.ts +1 -0
  50. package/cjs/label/line.js +9 -3
  51. package/cjs/label/line.js.map +1 -1
  52. package/cjs/label/rect.d.ts +1 -0
  53. package/cjs/label/rect.js +9 -3
  54. package/cjs/label/rect.js.map +1 -1
  55. package/cjs/label/symbol.d.ts +1 -0
  56. package/cjs/label/symbol.js +8 -2
  57. package/cjs/label/symbol.js.map +1 -1
  58. package/cjs/marker/point.js +3 -4
  59. package/cjs/marker/point.js.map +1 -1
  60. package/cjs/player/base-player.js +3 -22
  61. package/cjs/player/base-player.js.map +1 -1
  62. package/cjs/poptip/poptip-plugin.d.ts +10 -11
  63. package/cjs/poptip/poptip-plugin.js +32 -27
  64. package/cjs/poptip/poptip-plugin.js.map +1 -1
  65. package/cjs/tag/tag.d.ts +1 -1
  66. package/cjs/tag/tag.js +3 -11
  67. package/cjs/tag/tag.js.map +1 -1
  68. package/cjs/util/matrix.d.ts +0 -1
  69. package/cjs/util/matrix.js +10 -12
  70. package/cjs/util/matrix.js.map +1 -1
  71. package/dist/index.es.js +6778 -7431
  72. package/es/axis/animate/index.d.ts +0 -1
  73. package/es/axis/animate/index.js +0 -2
  74. package/es/axis/animate/index.js.map +1 -1
  75. package/es/axis/base.js.map +1 -1
  76. package/es/axis/grid/base.d.ts +4 -0
  77. package/es/axis/grid/base.js +19 -0
  78. package/es/axis/grid/base.js.map +1 -1
  79. package/es/axis/grid/circle.js +3 -16
  80. package/es/axis/grid/circle.js.map +1 -1
  81. package/es/axis/grid/line.js +3 -17
  82. package/es/axis/grid/line.js.map +1 -1
  83. package/es/axis/mixin/circle.js.map +1 -1
  84. package/es/axis/tick-data/cartesian-ticks.d.ts +3 -0
  85. package/es/axis/tick-data/cartesian-ticks.js +10 -0
  86. package/es/axis/tick-data/cartesian-ticks.js.map +1 -0
  87. package/es/axis/tick-data/discrete/polar-angle.d.ts +3 -1
  88. package/es/axis/tick-data/discrete/polar-angle.js +24 -1
  89. package/es/axis/tick-data/discrete/polar-angle.js.map +1 -1
  90. package/es/axis/tick-data/index.d.ts +6 -3
  91. package/es/axis/tick-data/index.js +9 -14
  92. package/es/axis/tick-data/index.js.map +1 -1
  93. package/es/axis/tick-data/polar-ticks.d.ts +3 -0
  94. package/es/axis/tick-data/polar-ticks.js +10 -0
  95. package/es/axis/tick-data/polar-ticks.js.map +1 -0
  96. package/es/axis/tick-data/ticks.d.ts +3 -0
  97. package/es/axis/tick-data/ticks.js +19 -0
  98. package/es/axis/tick-data/ticks.js.map +1 -0
  99. package/es/axis/tick-data/util.d.ts +1 -2
  100. package/es/axis/tick-data/util.js +0 -19
  101. package/es/axis/tick-data/util.js.map +1 -1
  102. package/es/brush/brush.js +1 -2
  103. package/es/brush/type.js +2 -1
  104. package/es/index.d.ts +1 -1
  105. package/es/index.js +1 -1
  106. package/es/index.js.map +1 -1
  107. package/es/interface.d.ts +1 -3
  108. package/es/interface.js.map +1 -1
  109. package/es/label/arc.d.ts +1 -0
  110. package/es/label/arc.js +6 -0
  111. package/es/label/arc.js.map +1 -1
  112. package/es/label/data-label-register.d.ts +2 -0
  113. package/es/label/data-label-register.js +8 -0
  114. package/es/label/data-label-register.js.map +1 -0
  115. package/es/label/dataLabel.js +2 -21
  116. package/es/label/dataLabel.js.map +1 -1
  117. package/es/label/index.d.ts +0 -2
  118. package/es/label/index.js +0 -4
  119. package/es/label/index.js.map +1 -1
  120. package/es/label/line.d.ts +1 -0
  121. package/es/label/line.js +7 -1
  122. package/es/label/line.js.map +1 -1
  123. package/es/label/rect.d.ts +1 -0
  124. package/es/label/rect.js +7 -1
  125. package/es/label/rect.js.map +1 -1
  126. package/es/label/symbol.d.ts +1 -0
  127. package/es/label/symbol.js +6 -0
  128. package/es/label/symbol.js.map +1 -1
  129. package/es/marker/point.js +3 -4
  130. package/es/marker/point.js.map +1 -1
  131. package/es/player/base-player.js +2 -22
  132. package/es/player/base-player.js.map +1 -1
  133. package/es/poptip/poptip-plugin.d.ts +10 -11
  134. package/es/poptip/poptip-plugin.js +28 -26
  135. package/es/poptip/poptip-plugin.js.map +1 -1
  136. package/es/tag/tag.d.ts +1 -1
  137. package/es/tag/tag.js +2 -12
  138. package/es/tag/tag.js.map +1 -1
  139. package/es/util/matrix.d.ts +0 -1
  140. package/es/util/matrix.js +5 -8
  141. package/es/util/matrix.js.map +1 -1
  142. package/package.json +6 -6
  143. package/cjs/axis/animate/group-fade.d.ts +0 -18
  144. package/cjs/axis/animate/group-fade.js +0 -72
  145. package/cjs/axis/animate/group-fade.js.map +0 -1
  146. package/cjs/label/area.d.ts +0 -15
  147. package/cjs/label/area.js +0 -36
  148. package/cjs/label/area.js.map +0 -1
  149. package/cjs/label/line-data.d.ts +0 -13
  150. package/cjs/label/line-data.js +0 -26
  151. package/cjs/label/line-data.js.map +0 -1
  152. package/es/axis/animate/group-fade.d.ts +0 -18
  153. package/es/axis/animate/group-fade.js +0 -62
  154. package/es/axis/animate/group-fade.js.map +0 -1
  155. package/es/label/area.d.ts +0 -15
  156. package/es/label/area.js +0 -34
  157. package/es/label/area.js.map +0 -1
  158. package/es/label/line-data.d.ts +0 -13
  159. package/es/label/line-data.js +0 -24
  160. package/es/label/line-data.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport {\n type IGroup,\n type IRect,\n type ISymbol,\n type IText,\n type ITextAttribute,\n type ITextGraphicAttribute,\n type IRichTextGraphicAttribute,\n type IRichText,\n type IGraphicAttribute,\n CustomPath2D\n} from '@visactor/vrender-core';\nimport { isBoolean, isEmpty, isNil, isNumber, isObject, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { isRichText, measureTextSize, richTextAttributeTransform } from '../util';\nimport type { BackgroundAttributes, ComponentOptions } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\nimport { loadTagComponent } from './register';\nimport type { TextContent } from '../core/type';\n\nloadTagComponent();\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\n\n private _bgRect!: IRect;\n private _textShape!: IText | IRichText;\n\n getBgRect() {\n return this._bgRect;\n }\n\n getTextShape() {\n return this._textShape;\n }\n\n static defaultAttributes: Partial<TagAttributes> = {\n visible: true,\n textStyle: {\n fontSize: 12,\n fill: '#000',\n textAlign: 'left',\n textBaseline: 'top'\n },\n space: 4,\n padding: 4,\n // @ts-ignore\n shape: {\n fill: '#000'\n }\n };\n\n constructor(attributes: TagAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute | IRichTextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state,\n type,\n textAlwaysCenter,\n containerTextAlign\n } = this.attribute as TagAttributes;\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild('tag-content', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n let symbol;\n let tagWidth = parsedPadding[1] + parsedPadding[3];\n let tagHeight = parsedPadding[0] + parsedPadding[2];\n let textX = 0;\n let symbolPlaceWidth = 0;\n const { visible: shapeVisible, ...shapeStyle } = shape;\n if (isBoolean(shapeVisible)) {\n const size = shapeStyle?.size || 10;\n const maxSize = (isNumber(size) ? size : Math.max(size[0], size[1])) as number;\n\n symbol = group.createOrUpdateChild(\n 'tag-shape',\n {\n symbolType: 'circle',\n size,\n strokeBoundsBuffer: 0,\n ...shapeStyle,\n visible: shapeVisible,\n x: maxSize / 2,\n y: maxSize / 2\n },\n 'symbol'\n ) as ISymbol;\n if (!isEmpty(state?.shape)) {\n symbol.states = state.shape;\n }\n\n if (shapeVisible) {\n symbolPlaceWidth = maxSize + space;\n }\n }\n\n tagWidth += symbolPlaceWidth;\n textX += symbolPlaceWidth;\n\n let textShape;\n const isRich = isRichText({ text } as TextContent) || type === 'rich';\n if (isRich) {\n const richTextAttrs = {\n ...richTextAttributeTransform({ type, text, ...textStyle } as any),\n ...(textStyle as IRichTextGraphicAttribute),\n visible: isValid(text) && visible !== false,\n x: textX,\n y: 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n if (backgroundStyle.customShape) {\n const customShape = backgroundStyle.customShape;\n bgRect.pathProxy = (attrs: Partial<IGraphicAttribute>) => {\n return customShape(text as Pick<TextContent, 'text'>, attrs, new CustomPath2D());\n };\n }\n this._bgRect = bgRect;\n }\n } else {\n const textAttrs = {\n text: isObject(text) && 'type' in text && text.type === 'text' ? text.text : text,\n visible: isValid(text) && visible !== false,\n lineHeight: (textStyle as ITextGraphicAttribute)?.fontSize,\n ...(textStyle as ITextGraphicAttribute),\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = (textStyle as ITextGraphicAttribute).fontSize;\n }\n textShape = group.createOrUpdateChild('tag-text', textAttrs as ITextGraphicAttribute, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text as string, textStyle, this.stage?.getTheme()?.text);\n const textWidth = textBounds.width;\n const textHeight = textBounds.height;\n tagWidth += textWidth;\n const size = shape.size ?? 10;\n const maxSize = (isNumber(size) ? size : Math.max(size[0], size[1])) as number;\n tagHeight += Math.max(textHeight, shape.visible ? maxSize : 0);\n\n const { textAlign, textBaseline } = textStyle as ITextAttribute;\n\n if (isValid(minWidth) || isValid(maxWidth)) {\n if (isValid(minWidth) && tagWidth < minWidth) {\n tagWidth = minWidth;\n }\n if (isValid(maxWidth) && tagWidth > maxWidth) {\n tagWidth = maxWidth;\n textShape.setAttribute('maxLineWidth', maxWidth - parsedPadding[1] - parsedPadding[2]);\n }\n }\n\n let x = 0;\n let y = 0;\n let flag = 0;\n if (textAlign === 'left' || textAlign === 'start') {\n flag = 1;\n } else if (textAlign === 'right' || textAlign === 'end') {\n flag = -1;\n } else if (textAlign === 'center') {\n flag = 0;\n }\n if (!flag) {\n x -= tagWidth / 2;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth / 2);\n }\n\n group.setAttribute('x', -symbolPlaceWidth / 2);\n } else if (flag < 0) {\n x -= tagWidth;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth);\n }\n\n group.setAttribute('x', -parsedPadding[1] - symbolPlaceWidth);\n } else if (flag > 0) {\n group.setAttribute('x', parsedPadding[3]);\n }\n\n const shouldCenter = containerTextAlign ? containerTextAlign === 'center' : textAlwaysCenter;\n const shouldRight = containerTextAlign === 'right' || containerTextAlign === 'end';\n const shouldLeft = containerTextAlign === 'left' || containerTextAlign === 'start';\n\n if (shouldCenter && flag) {\n // 文本容器内居中\n // 剔除padding后的内宽度\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const tsWidth = textWidth + symbolPlaceWidth;\n const textX =\n flag === 1\n ? (containerWidth - tsWidth) / 2 + symbolPlaceWidth + textWidth / 2\n : parsedPadding[0] + symbolPlaceWidth - (tagWidth / 2 + tsWidth / 2 - symbolPlaceWidth) + textWidth / 2;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'center'\n });\n if (symbol) {\n const symbolX = textX - textWidth / 2 - symbolPlaceWidth + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (shouldLeft && flag !== 1) {\n // 文本容器内朝左展示\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const offset =\n flag === 0\n ? -containerWidth / 2 + symbolPlaceWidth / 2\n : -tagWidth + parsedPadding[3] + parsedPadding[1] + symbolPlaceWidth;\n const textX = offset + symbolPlaceWidth;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'left'\n });\n\n if (symbol) {\n const symbolX = offset + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (shouldRight && flag !== -1) {\n // 文本容器内朝右展示\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const textX = flag === 0 ? containerWidth / 2 + symbolPlaceWidth / 2 : containerWidth;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'right'\n });\n if (symbol) {\n const symbolX = textX - textWidth - symbolPlaceWidth + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (textBaseline === 'middle') {\n y -= tagHeight / 2;\n if (symbol) {\n symbol.setAttribute('y', 0);\n }\n } else if (textBaseline === 'bottom') {\n y -= tagHeight;\n if (symbol) {\n symbol.setAttribute('y', -textHeight / 2);\n }\n\n group.setAttribute('y', -parsedPadding[2]);\n } else if (textBaseline === 'top') {\n group.setAttribute('y', parsedPadding[0]);\n if (symbol) {\n symbol.setAttribute('y', textHeight / 2);\n }\n }\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x,\n y,\n width: tagWidth,\n height: tagHeight\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n if (backgroundStyle.customShape) {\n const customShape = backgroundStyle.customShape;\n bgRect.pathProxy = (attrs: Partial<IGraphicAttribute>) => {\n return customShape(text as Pick<TextContent, 'text'>, attrs, new CustomPath2D());\n };\n }\n this._bgRect = bgRect;\n }\n }\n this._textShape = textShape;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport type {\n IGroup,\n IRect,\n ISymbol,\n IText,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n IRichText\n} from '@visactor/vrender-core';\nimport { isBoolean, isEmpty, isNil, isNumber, isObject, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { isRichText, measureTextSize, richTextAttributeTransform } from '../util';\nimport type { BackgroundAttributes, ComponentOptions } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\nimport { loadTagComponent } from './register';\nimport type { TextContent } from '../core/type';\n\nloadTagComponent();\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\n\n private _bgRect!: IRect;\n private _textShape!: IText | IRichText;\n\n getBgRect() {\n return this._bgRect;\n }\n\n getTextShape() {\n return this._textShape;\n }\n\n static defaultAttributes: Partial<TagAttributes> = {\n visible: true,\n textStyle: {\n fontSize: 12,\n fill: '#000',\n textAlign: 'left',\n textBaseline: 'top'\n },\n space: 4,\n padding: 4,\n // @ts-ignore\n shape: {\n fill: '#000'\n }\n };\n\n constructor(attributes: TagAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute | IRichTextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state,\n type,\n textAlwaysCenter,\n containerTextAlign\n } = this.attribute as TagAttributes;\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild('tag-content', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n let symbol;\n let tagWidth = parsedPadding[1] + parsedPadding[3];\n let tagHeight = parsedPadding[0] + parsedPadding[2];\n let textX = 0;\n let symbolPlaceWidth = 0;\n const { visible: shapeVisible, ...shapeStyle } = shape;\n if (isBoolean(shapeVisible)) {\n const size = shapeStyle?.size || 10;\n const maxSize = (isNumber(size) ? size : Math.max(size[0], size[1])) as number;\n\n symbol = group.createOrUpdateChild(\n 'tag-shape',\n {\n symbolType: 'circle',\n size,\n strokeBoundsBuffer: 0,\n ...shapeStyle,\n visible: shapeVisible,\n x: maxSize / 2,\n y: maxSize / 2\n },\n 'symbol'\n ) as ISymbol;\n if (!isEmpty(state?.shape)) {\n symbol.states = state.shape;\n }\n\n if (shapeVisible) {\n symbolPlaceWidth = maxSize + space;\n }\n }\n\n tagWidth += symbolPlaceWidth;\n textX += symbolPlaceWidth;\n\n let textShape;\n const isRich = isRichText({ text } as TextContent) || type === 'rich';\n if (isRich) {\n const richTextAttrs = {\n ...richTextAttributeTransform({ type, text, ...textStyle } as any),\n ...(textStyle as IRichTextGraphicAttribute),\n visible: isValid(text) && visible !== false,\n x: textX,\n y: 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n this._bgRect = bgRect;\n }\n } else {\n const textAttrs = {\n text: isObject(text) && 'type' in text && text.type === 'text' ? text.text : text,\n visible: isValid(text) && visible !== false,\n lineHeight: (textStyle as ITextGraphicAttribute)?.fontSize,\n ...(textStyle as ITextGraphicAttribute),\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = (textStyle as ITextGraphicAttribute).fontSize;\n }\n textShape = group.createOrUpdateChild('tag-text', textAttrs as ITextGraphicAttribute, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text as string, textStyle, this.stage?.getTheme()?.text);\n const textWidth = textBounds.width;\n const textHeight = textBounds.height;\n tagWidth += textWidth;\n const size = shape.size ?? 10;\n const maxSize = (isNumber(size) ? size : Math.max(size[0], size[1])) as number;\n tagHeight += Math.max(textHeight, shape.visible ? maxSize : 0);\n\n const { textAlign, textBaseline } = textStyle as ITextAttribute;\n\n if (isValid(minWidth) || isValid(maxWidth)) {\n if (isValid(minWidth) && tagWidth < minWidth) {\n tagWidth = minWidth;\n }\n if (isValid(maxWidth) && tagWidth > maxWidth) {\n tagWidth = maxWidth;\n textShape.setAttribute('maxLineWidth', maxWidth - parsedPadding[1] - parsedPadding[2]);\n }\n }\n\n let x = 0;\n let y = 0;\n let flag = 0;\n if (textAlign === 'left' || textAlign === 'start') {\n flag = 1;\n } else if (textAlign === 'right' || textAlign === 'end') {\n flag = -1;\n } else if (textAlign === 'center') {\n flag = 0;\n }\n if (!flag) {\n x -= tagWidth / 2;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth / 2);\n }\n\n group.setAttribute('x', -symbolPlaceWidth / 2);\n } else if (flag < 0) {\n x -= tagWidth;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth);\n }\n\n group.setAttribute('x', -parsedPadding[1] - symbolPlaceWidth);\n } else if (flag > 0) {\n group.setAttribute('x', parsedPadding[3]);\n }\n\n const shouldCenter = containerTextAlign ? containerTextAlign === 'center' : textAlwaysCenter;\n const shouldRight = containerTextAlign === 'right' || containerTextAlign === 'end';\n const shouldLeft = containerTextAlign === 'left' || containerTextAlign === 'start';\n\n if (shouldCenter && flag) {\n // 文本容器内居中\n // 剔除padding后的内宽度\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const tsWidth = textWidth + symbolPlaceWidth;\n const textX =\n flag === 1\n ? (containerWidth - tsWidth) / 2 + symbolPlaceWidth + textWidth / 2\n : parsedPadding[0] + symbolPlaceWidth - (tagWidth / 2 + tsWidth / 2 - symbolPlaceWidth) + textWidth / 2;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'center'\n });\n if (symbol) {\n const symbolX = textX - textWidth / 2 - symbolPlaceWidth + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (shouldLeft && flag !== 1) {\n // 文本容器内朝左展示\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const offset =\n flag === 0\n ? -containerWidth / 2 + symbolPlaceWidth / 2\n : -tagWidth + parsedPadding[3] + parsedPadding[1] + symbolPlaceWidth;\n const textX = offset + symbolPlaceWidth;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'left'\n });\n\n if (symbol) {\n const symbolX = offset + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (shouldRight && flag !== -1) {\n // 文本容器内朝右展示\n const containerWidth = tagWidth - parsedPadding[1] - parsedPadding[3];\n const textX = flag === 0 ? containerWidth / 2 + symbolPlaceWidth / 2 : containerWidth;\n\n textShape.setAttributes({\n x: textX,\n textAlign: 'right'\n });\n if (symbol) {\n const symbolX = textX - textWidth - symbolPlaceWidth + maxSize / 2;\n symbol.setAttributes({\n x: symbolX\n });\n }\n }\n\n if (textBaseline === 'middle') {\n y -= tagHeight / 2;\n if (symbol) {\n symbol.setAttribute('y', 0);\n }\n } else if (textBaseline === 'bottom') {\n y -= tagHeight;\n if (symbol) {\n symbol.setAttribute('y', -textHeight / 2);\n }\n\n group.setAttribute('y', -parsedPadding[2]);\n } else if (textBaseline === 'top') {\n group.setAttribute('y', parsedPadding[0]);\n if (symbol) {\n symbol.setAttribute('y', textHeight / 2);\n }\n }\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x,\n y,\n width: tagWidth,\n height: tagHeight\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n this._bgRect = bgRect;\n }\n }\n this._textShape = textShape;\n }\n}\n"]}
@@ -3,5 +3,4 @@ export declare function scale(vector: Vector2, scale: number): [number, number];
3
3
  export declare function length(vector: Vector2): number;
4
4
  export declare function normalize(vector: Vector2): number[];
5
5
  export declare function angle(vector1: Vector2, vector2: Vector2): number;
6
- export declare function direction(v1: number[], v2: number[]): number;
7
6
  export declare function angleTo(v1: [number, number], v2: [number, number], direct: boolean): number;
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.angleTo = exports.angle = exports.normalize = exports.length = exports.scale = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils");
8
+
3
9
  function scale(vector, scale) {
4
10
  return [ vector[0] * scale, vector[1] * scale ];
5
11
  }
@@ -10,9 +16,8 @@ function length(vector) {
10
16
  }
11
17
 
12
18
  function normalize(vector) {
13
- const [x, y] = vector;
14
- let len = x * x + y * y;
15
- return len > 0 && (len = 1 / Math.sqrt(len)), [ vector[0] * len, vector[1] * len ];
19
+ let len = length(vector);
20
+ return len > 0 && (len = 1 / len), [ vector[0] * len, vector[1] * len ];
16
21
  }
17
22
 
18
23
  function angle(vector1, vector2) {
@@ -20,18 +25,11 @@ function angle(vector1, vector2) {
20
25
  return Math.acos(Math.min(Math.max(cosine, -1), 1));
21
26
  }
22
27
 
23
- function direction(v1, v2) {
24
- return v1[0] * v2[1] - v2[0] * v1[1];
25
- }
26
-
27
28
  function angleTo(v1, v2, direct) {
28
- const ang = angle(v1, v2), angleLargeThanPI = direction(v1, v2) >= 0;
29
+ const ang = angle(v1, v2), angleLargeThanPI = (0, vutils_1.crossProduct)(v1, v2) >= 0;
29
30
  return direct ? angleLargeThanPI ? 2 * Math.PI - ang : ang : angleLargeThanPI ? ang : 2 * Math.PI - ang;
30
31
  }
31
32
 
32
- Object.defineProperty(exports, "__esModule", {
33
- value: !0
34
- }), exports.angleTo = exports.direction = exports.angle = exports.normalize = exports.length = exports.scale = void 0,
35
33
  exports.scale = scale, exports.length = length, exports.normalize = normalize, exports.angle = angle,
36
- exports.direction = direction, exports.angleTo = angleTo;
34
+ exports.angleTo = angleTo;
37
35
  //# sourceMappingURL=matrix.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/matrix.ts"],"names":[],"mappings":";;;AAKA,SAAgB,KAAK,CAAC,MAAe,EAAE,KAAa;IAClD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,sBAEC;AAKD,SAAgB,MAAM,CAAC,MAAe;IACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAHD,wBAGC;AAKD,SAAgB,SAAS,CAAC,MAAe;IACvC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC;AAPD,8BAOC;AAKD,SAAgB,KAAK,CAAC,OAAgB,EAAE,OAAgB;IACtD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAND,sBAMC;AAQD,SAAgB,SAAS,CAAC,EAAY,EAAE,EAAY;IAClD,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAFD,8BAEC;AAQD,SAAgB,OAAO,CAAC,EAAoB,EAAE,EAAoB,EAAE,MAAe;IACjF,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,MAAM,EAAE;QACV,IAAI,gBAAgB,EAAE;YACpB,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,gBAAgB,EAAE;QACpB,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3B,CAAC;AAdD,0BAcC","file":"matrix.js","sourcesContent":["export type Vector2 = [number, number];\n\n/**\n * Scales a vec2 by a scalar number\n */\nexport function scale(vector: Vector2, scale: number): [number, number] {\n return [vector[0] * scale, vector[1] * scale];\n}\n\n/**\n * Calculates the length of a vec2\n */\nexport function length(vector: Vector2) {\n const [x, y] = vector;\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * Normalize a vec2\n */\nexport function normalize(vector: Vector2) {\n const [x, y] = vector;\n let len = x * x + y * y;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n return [vector[0] * len, vector[1] * len];\n}\n\n/**\n * Get the angle between two 2D vectors\n */\nexport function angle(vector1: Vector2, vector2: Vector2) {\n const [x1, y1] = vector1;\n const [x2, y2] = vector2;\n const mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2));\n const cosine = mag && (x1 * x2 + y1 * y2) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n\n/**\n * 向量 v1 到 向量 v2 夹角的方向\n * @param {Array} v1 向量\n * @param {Array} v2 向量\n * @return {Boolean} >= 0 顺时针 < 0 逆时针\n */\nexport function direction(v1: number[], v2: number[]): number {\n return v1[0] * v2[1] - v2[0] * v1[1];\n}\n\n/**\n * 二维向量 v1 到 v2 的夹角\n * @param v1\n * @param v2\n * @param direct\n */\nexport function angleTo(v1: [number, number], v2: [number, number], direct: boolean): number {\n const ang = angle(v1, v2);\n const angleLargeThanPI = direction(v1, v2) >= 0;\n if (direct) {\n if (angleLargeThanPI) {\n return Math.PI * 2 - ang;\n }\n return ang;\n }\n\n if (angleLargeThanPI) {\n return ang;\n }\n return Math.PI * 2 - ang;\n}\n"]}
1
+ {"version":3,"sources":["../src/util/matrix.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAOhD,SAAgB,KAAK,CAAC,MAAe,EAAE,KAAa;IAClD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,sBAEC;AAKD,SAAgB,MAAM,CAAC,MAAe;IACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAHD,wBAGC;AAKD,SAAgB,SAAS,CAAC,MAAe;IACvC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KACf;IACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC5C,CAAC;AAND,8BAMC;AAKD,SAAgB,KAAK,CAAC,OAAgB,EAAE,OAAgB;IACtD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAND,sBAMC;AAQD,SAAgB,OAAO,CAAC,EAAoB,EAAE,EAAoB,EAAE,MAAe;IACjF,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAA,qBAAY,EAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,EAAE;QACV,IAAI,gBAAgB,EAAE;YACpB,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,gBAAgB,EAAE;QACpB,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3B,CAAC;AAdD,0BAcC","file":"matrix.js","sourcesContent":["import { crossProduct } from '@visactor/vutils';\n\nexport type Vector2 = [number, number];\n\n/**\n * Scales a vec2 by a scalar number\n */\nexport function scale(vector: Vector2, scale: number): [number, number] {\n return [vector[0] * scale, vector[1] * scale];\n}\n\n/**\n * Calculates the length of a vec2\n */\nexport function length(vector: Vector2) {\n const [x, y] = vector;\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * Normalize a vec2\n */\nexport function normalize(vector: Vector2) {\n let len = length(vector);\n if (len > 0) {\n len = 1 / len;\n }\n return [vector[0] * len, vector[1] * len];\n}\n\n/**\n * Get the angle between two 2D vectors\n */\nexport function angle(vector1: Vector2, vector2: Vector2) {\n const [x1, y1] = vector1;\n const [x2, y2] = vector2;\n const mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2));\n const cosine = mag && (x1 * x2 + y1 * y2) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n\n/**\n * 二维向量 v1 到 v2 的夹角\n * @param v1\n * @param v2\n * @param direct\n */\nexport function angleTo(v1: [number, number], v2: [number, number], direct: boolean): number {\n const ang = angle(v1, v2);\n const angleLargeThanPI = crossProduct(v1, v2) >= 0;\n if (direct) {\n if (angleLargeThanPI) {\n return Math.PI * 2 - ang;\n }\n return ang;\n }\n\n if (angleLargeThanPI) {\n return ang;\n }\n return Math.PI * 2 - ang;\n}\n"]}