@visactor/vrender-components 0.13.5-alpha.2 → 0.13.5-alpha.6

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 (91) hide show
  1. package/cjs/axis/index.js +2 -1
  2. package/cjs/core/type.js +1 -2
  3. package/cjs/index.d.ts +1 -1
  4. package/cjs/index.js +1 -1
  5. package/cjs/index.js.map +1 -1
  6. package/cjs/label/arc.d.ts +69 -0
  7. package/cjs/label/arc.js +396 -0
  8. package/cjs/label/arc.js.map +1 -0
  9. package/cjs/label/base.d.ts +13 -10
  10. package/cjs/label/base.js +113 -56
  11. package/cjs/label/base.js.map +1 -1
  12. package/cjs/label/constant.d.ts +18 -0
  13. package/cjs/label/constant.js +15 -0
  14. package/cjs/label/constant.js.map +1 -0
  15. package/cjs/label/dataLabel.js +3 -2
  16. package/cjs/label/dataLabel.js.map +1 -1
  17. package/cjs/label/index.d.ts +1 -0
  18. package/cjs/label/index.js +2 -1
  19. package/cjs/label/index.js.map +1 -1
  20. package/cjs/label/overlap/place.d.ts +8 -4
  21. package/cjs/label/overlap/place.js +14 -2
  22. package/cjs/label/overlap/place.js.map +1 -1
  23. package/cjs/label/rect.d.ts +5 -3
  24. package/cjs/label/rect.js.map +1 -1
  25. package/cjs/label/symbol.d.ts +5 -3
  26. package/cjs/label/symbol.js.map +1 -1
  27. package/cjs/label/type.d.ts +48 -7
  28. package/cjs/label/type.js.map +1 -1
  29. package/cjs/label/util.d.ts +10 -0
  30. package/cjs/label/util.js +102 -0
  31. package/cjs/label/util.js.map +1 -0
  32. package/cjs/link-path/link-path.js +1 -2
  33. package/cjs/marker/base.js +2 -1
  34. package/cjs/marker/type.d.ts +5 -5
  35. package/cjs/marker/type.js +1 -1
  36. package/cjs/marker/type.js.map +1 -1
  37. package/cjs/pager/index.js +1 -1
  38. package/cjs/pager/pager.js +1 -1
  39. package/cjs/poptip/contribution.js +1 -1
  40. package/cjs/poptip/contribution.js.map +1 -1
  41. package/cjs/tag/tag.js +2 -2
  42. package/cjs/tag/tag.js.map +1 -1
  43. package/cjs/tag/type.d.ts +3 -4
  44. package/cjs/tag/type.js.map +1 -1
  45. package/dist/index.js +929 -77
  46. package/dist/index.min.js +1 -1
  47. package/es/axis/index.js +2 -1
  48. package/es/core/type.js +1 -2
  49. package/es/index.d.ts +1 -1
  50. package/es/index.js +1 -1
  51. package/es/index.js.map +1 -1
  52. package/es/label/arc.d.ts +69 -0
  53. package/es/label/arc.js +390 -0
  54. package/es/label/arc.js.map +1 -0
  55. package/es/label/base.d.ts +13 -10
  56. package/es/label/base.js +115 -59
  57. package/es/label/base.js.map +1 -1
  58. package/es/label/constant.d.ts +18 -0
  59. package/es/label/constant.js +36 -0
  60. package/es/label/constant.js.map +1 -0
  61. package/es/label/dataLabel.js +4 -1
  62. package/es/label/dataLabel.js.map +1 -1
  63. package/es/label/index.d.ts +1 -0
  64. package/es/label/index.js +2 -0
  65. package/es/label/index.js.map +1 -1
  66. package/es/label/overlap/place.d.ts +8 -4
  67. package/es/label/overlap/place.js +11 -0
  68. package/es/label/overlap/place.js.map +1 -1
  69. package/es/label/rect.d.ts +5 -3
  70. package/es/label/rect.js.map +1 -1
  71. package/es/label/symbol.d.ts +5 -3
  72. package/es/label/symbol.js.map +1 -1
  73. package/es/label/type.d.ts +48 -7
  74. package/es/label/type.js.map +1 -1
  75. package/es/label/util.d.ts +10 -0
  76. package/es/label/util.js +89 -0
  77. package/es/label/util.js.map +1 -0
  78. package/es/link-path/link-path.js +1 -2
  79. package/es/marker/base.js +2 -1
  80. package/es/marker/type.d.ts +5 -5
  81. package/es/marker/type.js +1 -1
  82. package/es/marker/type.js.map +1 -1
  83. package/es/pager/index.js +1 -1
  84. package/es/pager/pager.js +1 -1
  85. package/es/poptip/contribution.js +1 -1
  86. package/es/poptip/contribution.js.map +1 -1
  87. package/es/tag/tag.js +2 -2
  88. package/es/tag/tag.js.map +1 -1
  89. package/es/tag/type.d.ts +3 -4
  90. package/es/tag/type.js.map +1 -1
  91. package/package.json +4 -4
package/es/tag/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport type { IGroup, IRect, ISymbol, IText, ITextAttribute, ITextGraphicAttribute } from '@visactor/vrender';\nimport { isBoolean, isEmpty, isNil, isNumber, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { BackgroundAttributes } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\n\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\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) {\n super(merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state,\n formatMethod\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]);\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 const textAttrs = {\n text: formatMethod ? formatMethod(text) : text,\n visible: isValid(text) && visible !== false,\n lineHeight: textStyle?.fontSize,\n ...textStyle,\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = textAttrs.fontSize;\n }\n const textShape = group.createOrUpdateChild('tag-text', textAttrs, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text, textStyle);\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]);\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 if (textAlign === 'center') {\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 (textAlign === 'right' || textAlign === 'end') {\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 (textAlign === 'left' || textAlign === 'start') {\n group.setAttribute('x', parsedPadding[3]);\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 }\n }\n}\n"]}
1
+ {"version":3,"sources":["tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport type { IGroup, IRect, ISymbol, IText, ITextAttribute, ITextGraphicAttribute } from '@visactor/vrender';\nimport { isBoolean, isEmpty, isNil, isNumber, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { BackgroundAttributes } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\n\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\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) {\n super(merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state\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]);\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 const textAttrs = {\n text,\n visible: isValid(text) && visible !== false,\n lineHeight: textStyle?.fontSize,\n ...textStyle,\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = textAttrs.fontSize;\n }\n const textShape = group.createOrUpdateChild('tag-text', textAttrs, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text, textStyle);\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]);\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 if (textAlign === 'center') {\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 (textAlign === 'right' || textAlign === 'end') {\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 (textAlign === 'left' || textAlign === 'start') {\n group.setAttribute('x', parsedPadding[3]);\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 }\n }\n}\n"]}
package/es/tag/type.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { ITextGraphicAttribute, ISymbolGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender';
2
- import type { Padding, State } from '../core/type';
3
- import type { BackgroundAttributes } from '../interface';
1
+ import { ITextGraphicAttribute, ISymbolGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute } from '@visactor/vrender';
2
+ import { Padding, State } from '../core/type';
3
+ import { BackgroundAttributes } from '../interface';
4
4
  type StateStyle = {
5
5
  text?: State<Partial<ITextGraphicAttribute>>;
6
6
  shape?: State<Partial<ISymbolGraphicAttribute>>;
@@ -17,7 +17,6 @@ export type TagAttributes = {
17
17
  maxWidth?: number;
18
18
  visible?: boolean;
19
19
  state?: StateStyle;
20
- formatMethod?: (text: string | number | string[] | number[]) => string;
21
20
  } & Omit<IGroupGraphicAttribute, 'background'>;
22
21
  export type TagShapeAttributes = {
23
22
  visible: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["tag/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ITextGraphicAttribute,\n ISymbolGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute\n} from '@visactor/vrender';\nimport type { Padding, State } from '../core/type';\nimport type { BackgroundAttributes } from '../interface';\n\ntype StateStyle = {\n /**\n * text 文本的状态配置\n */\n text?: State<Partial<ITextGraphicAttribute>>;\n /**\n * shape 标记的状态配置\n */\n shape?: State<Partial<ISymbolGraphicAttribute>>;\n /**\n * panel 背景的状态配置ß\n */\n panel?: State<Partial<IRectGraphicAttribute>>;\n};\n\nexport type TagAttributes = {\n /**\n * 文本内容,如果需要进行换行,则使用数组形式,如 ['abc', '123']\n */\n text?: string | string[] | number | number[];\n /** 文本样式 */\n textStyle?: Partial<ITextGraphicAttribute>;\n /** 文本前 mark 图元 */\n shape?: TagShapeAttributes;\n /**\n * shape 同文本之间的间距\n */\n space?: number;\n /**\n * 内部边距\n */\n padding?: Padding;\n /**\n * 标签的背景面板配置, TODO: 支持symbol形状\n */\n panel?: BackgroundAttributes;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n visible?: boolean;\n state?: StateStyle;\n formatMethod?: (text: string | number | string[] | number[]) => string;\n} & Omit<IGroupGraphicAttribute, 'background'>;\n\nexport type TagShapeAttributes = {\n /**\n * 是否展示 shape\n */\n visible: boolean;\n} & Partial<ISymbolGraphicAttribute>;\n"]}
1
+ {"version":3,"sources":["tag/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import {\n ITextGraphicAttribute,\n ISymbolGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute\n} from '@visactor/vrender';\nimport { Padding, State } from '../core/type';\nimport { BackgroundAttributes } from '../interface';\n\ntype StateStyle = {\n /**\n * text 文本的状态配置\n */\n text?: State<Partial<ITextGraphicAttribute>>;\n /**\n * shape 标记的状态配置\n */\n shape?: State<Partial<ISymbolGraphicAttribute>>;\n /**\n * panel 背景的状态配置ß\n */\n panel?: State<Partial<IRectGraphicAttribute>>;\n};\n\nexport type TagAttributes = {\n /**\n * 文本内容,如果需要进行换行,则使用数组形式,如 ['abc', '123']\n */\n text?: string | string[] | number | number[];\n /** 文本样式 */\n textStyle?: Partial<ITextGraphicAttribute>;\n /** 文本前 mark 图元 */\n shape?: TagShapeAttributes;\n /**\n * shape 同文本之间的间距\n */\n space?: number;\n /**\n * 内部边距\n */\n padding?: Padding;\n /**\n * 标签的背景面板配置, TODO: 支持symbol形状\n */\n panel?: BackgroundAttributes;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n visible?: boolean;\n state?: StateStyle;\n} & Omit<IGroupGraphicAttribute, 'background'>;\n\nexport type TagShapeAttributes = {\n /**\n * 是否展示 shape\n */\n visible: boolean;\n} & Partial<ISymbolGraphicAttribute>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-components",
3
- "version": "0.13.5-alpha.2",
3
+ "version": "0.13.5-alpha.6",
4
4
  "description": "components library for dp visualization",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index.js",
@@ -12,7 +12,7 @@
12
12
  "dist"
13
13
  ],
14
14
  "dependencies": {
15
- "@visactor/vrender": "0.13.4",
15
+ "@visactor/vrender": "0.13.5-alpha.6",
16
16
  "@visactor/vutils": "~0.13.0",
17
17
  "@visactor/vscale": "~0.13.0",
18
18
  "inversify": "6.0.1"
@@ -28,9 +28,9 @@
28
28
  "eslint": "~8.18.0",
29
29
  "vite": "3.2.6",
30
30
  "typescript": "4.9.5",
31
- "@internal/ts-config": "0.0.1",
32
31
  "@internal/bundler": "0.0.1",
33
- "@internal/eslint-config": "0.0.1"
32
+ "@internal/eslint-config": "0.0.1",
33
+ "@internal/ts-config": "0.0.1"
34
34
  },
35
35
  "keywords": [
36
36
  "VisActor",