@visactor/vchart 1.5.1-alpha.2 → 1.5.1-alpha.4

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 (123) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +361 -288
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/compile/compiler.d.ts +0 -1
  6. package/cjs/compile/compiler.js +1 -1
  7. package/cjs/compile/compiler.js.map +1 -1
  8. package/cjs/compile/util.js.map +1 -1
  9. package/cjs/component/tooltip/handler/base.d.ts +2 -4
  10. package/cjs/component/tooltip/handler/base.js +15 -38
  11. package/cjs/component/tooltip/handler/base.js.map +1 -1
  12. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +2 -2
  13. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  14. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -2
  15. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  16. package/cjs/component/tooltip/handler/dom/util.d.ts +1 -2
  17. package/cjs/component/tooltip/handler/dom/util.js +14 -13
  18. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  19. package/cjs/component/tooltip/handler/interface/style.d.ts +4 -23
  20. package/cjs/component/tooltip/handler/interface/style.js.map +1 -1
  21. package/cjs/component/tooltip/handler/utils/attribute.d.ts +9 -11
  22. package/cjs/component/tooltip/handler/utils/attribute.js +136 -126
  23. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  24. package/cjs/component/tooltip/handler/utils/common.d.ts +8 -0
  25. package/cjs/component/tooltip/handler/utils/common.js +42 -2
  26. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  27. package/cjs/component/tooltip/handler/utils/index.d.ts +0 -1
  28. package/cjs/component/tooltip/handler/utils/index.js +1 -2
  29. package/cjs/component/tooltip/handler/utils/index.js.map +1 -1
  30. package/cjs/component/tooltip/interface/theme.d.ts +5 -3
  31. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  32. package/cjs/core/index.d.ts +1 -1
  33. package/cjs/core/index.js +1 -1
  34. package/cjs/core/index.js.map +1 -1
  35. package/cjs/core/vchart.js +1 -1
  36. package/cjs/core/vchart.js.map +1 -1
  37. package/cjs/env/env.d.ts +7 -0
  38. package/cjs/env/env.js +48 -0
  39. package/cjs/env/env.js.map +1 -0
  40. package/cjs/env/index.d.ts +1 -0
  41. package/cjs/env/index.js +21 -0
  42. package/cjs/env/index.js.map +1 -0
  43. package/cjs/index.d.ts +1 -0
  44. package/cjs/index.js +2 -1
  45. package/cjs/index.js.map +1 -1
  46. package/cjs/interaction/interaction.js +1 -2
  47. package/cjs/interaction/trigger.js +2 -1
  48. package/cjs/mark/arc.js +1 -1
  49. package/cjs/mark/area.js +1 -1
  50. package/cjs/series/gauge/gauge.d.ts +2 -0
  51. package/cjs/series/gauge/gauge.js +10 -4
  52. package/cjs/series/gauge/gauge.js.map +1 -1
  53. package/cjs/series/sankey/sankey.js +3 -18
  54. package/cjs/series/sankey/sankey.js.map +1 -1
  55. package/cjs/theme/builtin/common/series/gauge.js +1 -1
  56. package/cjs/theme/builtin/common/series/gauge.js.map +1 -1
  57. package/cjs/vchart-all.js +3 -2
  58. package/cjs/vchart-all.js.map +1 -1
  59. package/cjs/vchart-simple.js +3 -2
  60. package/cjs/vchart-simple.js.map +1 -1
  61. package/esm/compile/compiler.d.ts +0 -1
  62. package/esm/compile/compiler.js +1 -1
  63. package/esm/compile/compiler.js.map +1 -1
  64. package/esm/compile/util.js.map +1 -1
  65. package/esm/component/tooltip/handler/base.d.ts +2 -4
  66. package/esm/component/tooltip/handler/base.js +14 -39
  67. package/esm/component/tooltip/handler/base.js.map +1 -1
  68. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +2 -2
  69. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  70. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -2
  71. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  72. package/esm/component/tooltip/handler/dom/util.d.ts +1 -2
  73. package/esm/component/tooltip/handler/dom/util.js +14 -14
  74. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  75. package/esm/component/tooltip/handler/interface/style.d.ts +4 -23
  76. package/esm/component/tooltip/handler/interface/style.js.map +1 -1
  77. package/esm/component/tooltip/handler/utils/attribute.d.ts +9 -11
  78. package/esm/component/tooltip/handler/utils/attribute.js +131 -123
  79. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  80. package/esm/component/tooltip/handler/utils/common.d.ts +8 -0
  81. package/esm/component/tooltip/handler/utils/common.js +41 -1
  82. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  83. package/esm/component/tooltip/handler/utils/index.d.ts +0 -1
  84. package/esm/component/tooltip/handler/utils/index.js +0 -2
  85. package/esm/component/tooltip/handler/utils/index.js.map +1 -1
  86. package/esm/component/tooltip/interface/theme.d.ts +5 -3
  87. package/esm/component/tooltip/interface/theme.js.map +1 -1
  88. package/esm/core/index.d.ts +1 -1
  89. package/esm/core/index.js +1 -1
  90. package/esm/core/index.js.map +1 -1
  91. package/esm/core/vchart.js +3 -3
  92. package/esm/core/vchart.js.map +1 -1
  93. package/esm/env/env.d.ts +7 -0
  94. package/esm/env/env.js +32 -0
  95. package/esm/env/env.js.map +1 -0
  96. package/esm/env/index.d.ts +1 -0
  97. package/esm/env/index.js +2 -0
  98. package/esm/env/index.js.map +1 -0
  99. package/esm/index.d.ts +1 -0
  100. package/esm/index.js +2 -0
  101. package/esm/index.js.map +1 -1
  102. package/esm/interaction/interaction.js +1 -2
  103. package/esm/interaction/trigger.js +2 -1
  104. package/esm/mark/arc.js +1 -1
  105. package/esm/mark/area.js +1 -1
  106. package/esm/series/gauge/gauge.d.ts +2 -0
  107. package/esm/series/gauge/gauge.js +10 -4
  108. package/esm/series/gauge/gauge.js.map +1 -1
  109. package/esm/series/sankey/sankey.js +3 -17
  110. package/esm/series/sankey/sankey.js.map +1 -1
  111. package/esm/theme/builtin/common/series/gauge.js +1 -1
  112. package/esm/theme/builtin/common/series/gauge.js.map +1 -1
  113. package/esm/vchart-all.js +4 -1
  114. package/esm/vchart-all.js.map +1 -1
  115. package/esm/vchart-simple.js +4 -1
  116. package/esm/vchart-simple.js.map +1 -1
  117. package/package.json +14 -14
  118. package/cjs/component/tooltip/handler/utils/style.d.ts +0 -4
  119. package/cjs/component/tooltip/handler/utils/style.js +0 -32
  120. package/cjs/component/tooltip/handler/utils/style.js.map +0 -1
  121. package/esm/component/tooltip/handler/utils/style.d.ts +0 -4
  122. package/esm/component/tooltip/handler/utils/style.js +0 -26
  123. package/esm/component/tooltip/handler/utils/style.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/canvas/canvas-tooltip-handler.ts"],"names":[],"mappings":"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","file":"canvas-tooltip-handler.js","sourcesContent":["import type { ILayer, INode, Stage } from '@visactor/vrender-core';\nimport type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport { TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._tooltipCanvasId = (this._chartOption.modeParams as any)?.tooltipCanvasId;\n }\n\n private _initTooltipComponent(stage: Stage) {\n const layer = this._getLayer(stage);\n this._tooltipComponent = new TooltipComponent({\n autoCalculatePosition: false,\n autoMeasure: false\n });\n layer.add(this._tooltipComponent as unknown as INode);\n }\n\n private _getLayer(stage: Stage) {\n if (this._layer) {\n return this._layer;\n }\n\n this._layer = stage.createLayer(this._tooltipCanvasId);\n\n // 需要关闭 layer 对应的 canvas 的事件\n const layerCanvas = this._layer.layerHandler.canvas.nativeCanvas as HTMLCanvasElement;\n // TODO:待 vrender 支持\n if (layerCanvas && layerCanvas.style) {\n layerCanvas.style.touchAction = 'none';\n layerCanvas.style.pointerEvents = 'none';\n }\n\n return this._layer;\n }\n\n protected _removeTooltip() {\n if (this._layer) {\n this._layer.removeAllChild();\n // this._layer.render();\n }\n this._attributeCache = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n this._visible = visible;\n\n const stage = this._compiler.getStage();\n if (!stage) {\n return;\n }\n\n if (!visible) {\n if (this._tooltipComponent && this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.hideAll();\n this._tooltipComponent.setAttributes({\n visibleAll: false\n });\n }\n return;\n }\n\n if (!this._tooltipComponent) {\n this._initTooltipComponent(stage);\n }\n\n const pos = actualTooltip?.position;\n if (!params.changePositionOnly) {\n this._tooltipComponent.setAttributes({\n ...this._attributeCache,\n ...pos\n });\n } else if (isValid(pos)) {\n this._tooltipComponent.setAttributes(pos);\n }\n\n if (!this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.showAll();\n this._tooltipComponent.setAttributes({\n visibleAll: true\n });\n }\n }\n\n isTooltipShown() {\n return this._tooltipComponent?.attribute.visibleAll;\n }\n\n release() {\n super.release();\n this._layer?.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/canvas/canvas-tooltip-handler.ts"],"names":[],"mappings":"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","file":"canvas-tooltip-handler.js","sourcesContent":["import type { ILayer, INode, Stage } from '@visactor/vrender-core';\nimport type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport { TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._tooltipCanvasId = (this._chartOption.modeParams as any)?.tooltipCanvasId;\n }\n\n private _initTooltipComponent(stage: Stage) {\n const layer = this._getLayer(stage);\n this._tooltipComponent = new TooltipComponent({\n autoCalculatePosition: false,\n autoMeasure: false\n });\n layer.add(this._tooltipComponent as unknown as INode);\n }\n\n private _getLayer(stage: Stage) {\n if (this._layer) {\n return this._layer;\n }\n\n this._layer = stage.createLayer(this._tooltipCanvasId);\n\n // 需要关闭 layer 对应的 canvas 的事件\n const layerCanvas = this._layer.layerHandler.canvas.nativeCanvas as HTMLCanvasElement;\n // TODO:待 vrender 支持\n if (layerCanvas && layerCanvas.style) {\n layerCanvas.style.touchAction = 'none';\n layerCanvas.style.pointerEvents = 'none';\n }\n\n return this._layer;\n }\n\n protected _removeTooltip() {\n if (this._layer) {\n this._layer.removeAllChild();\n // this._layer.render();\n }\n this._attributes = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n this._visible = visible;\n\n const stage = this._compiler.getStage();\n if (!stage) {\n return;\n }\n\n if (!visible) {\n if (this._tooltipComponent && this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.hideAll();\n this._tooltipComponent.setAttributes({\n visibleAll: false\n });\n }\n return;\n }\n\n if (!this._tooltipComponent) {\n this._initTooltipComponent(stage);\n }\n\n const pos = actualTooltip?.position;\n if (!params.changePositionOnly) {\n this._tooltipComponent.setAttributes({\n ...this._attributes,\n ...pos\n });\n } else if (isValid(pos)) {\n this._tooltipComponent.setAttributes(pos);\n }\n\n if (!this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.showAll();\n this._tooltipComponent.setAttributes({\n visibleAll: true\n });\n }\n }\n\n isTooltipShown() {\n return this._tooltipComponent?.attribute.visibleAll;\n }\n\n release() {\n super.release();\n this._layer?.release();\n }\n}\n"]}
@@ -34,7 +34,7 @@ export class DomTooltipHandler extends BaseTooltipHandler {
34
34
  valueToHtml: this._option.sanitize,
35
35
  getTooltipStyle: () => this._domStyle,
36
36
  getTooltipActual: () => this._tooltipActual,
37
- getTooltipAttributes: () => this._attributeCache
37
+ getTooltipAttributes: () => this._attributes
38
38
  }, [ tooltipSpec.className ], this.id);
39
39
  }
40
40
  }
@@ -52,7 +52,7 @@ export class DomTooltipHandler extends BaseTooltipHandler {
52
52
  } else this.setVisibility(visible);
53
53
  }
54
54
  _initStyle() {
55
- this._domStyle = getDomStyles(this._style, this._attributeCache);
55
+ this._domStyle = getDomStyles(this._attributes);
56
56
  }
57
57
  _getParentElement(spec) {
58
58
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/dom/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { getDomStyles } from './util';\nimport type { IDomTooltipStyle } from './interface';\nimport { TooltipModel } from './model/tooltip-model';\nimport { TOOLTIP_CONTAINER_EL_CLASS_NAME, TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\nimport type { Maybe } from '@visactor/vutils';\nimport { domDocument } from '../../../../util/env';\n\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.dom;\n\n protected _tooltipContainer = domDocument?.body;\n protected _domStyle: IDomTooltipStyle;\n protected _tooltipActual?: IToolTipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n protected model: TooltipModel;\n\n getVisibility() {\n return !!this.model?.getVisibility();\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility()) {\n this.model?.setVisibility(_value);\n }\n }\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec();\n const parentElement = tooltipSpec.parentElement as HTMLElement | HTMLCanvasElement;\n if (domDocument && parentElement) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n this.model = new TooltipModel(\n this._container,\n {\n valueToHtml: this._option.sanitize,\n getTooltipStyle: () => this._domStyle,\n getTooltipActual: () => this._tooltipActual,\n getTooltipAttributes: () => this._attributeCache\n },\n [tooltipSpec.className],\n this.id\n );\n }\n }\n\n protected _removeTooltip() {\n this.model?.release();\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n if (!visible || !this.model) {\n this.setVisibility(visible);\n } else {\n if (!params.changePositionOnly) {\n this._tooltipActual = actualTooltip;\n this._initStyle();\n\n this.model.initAll();\n this.model.setStyle();\n this.model.setContent();\n }\n this.setVisibility(visible);\n\n // 位置\n const { x = 0, y = 0 } = actualTooltip.position ?? {};\n const el = this.model.product;\n if (el) {\n // https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n el.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n }\n\n protected _initStyle() {\n this._domStyle = getDomStyles(this._style, this._attributeCache);\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n isTooltipShown() {\n return this.getVisibility();\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/dom/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { getDomStyles } from './util';\nimport type { IDomTooltipStyle } from './interface';\nimport { TooltipModel } from './model/tooltip-model';\nimport { TOOLTIP_CONTAINER_EL_CLASS_NAME, TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\nimport type { Maybe } from '@visactor/vutils';\nimport { domDocument } from '../../../../util/env';\n\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.dom;\n\n protected _tooltipContainer = domDocument?.body;\n protected _domStyle: IDomTooltipStyle;\n protected _tooltipActual?: IToolTipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n protected model: TooltipModel;\n\n getVisibility() {\n return !!this.model?.getVisibility();\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility()) {\n this.model?.setVisibility(_value);\n }\n }\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec();\n const parentElement = tooltipSpec.parentElement as HTMLElement | HTMLCanvasElement;\n if (domDocument && parentElement) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n this.model = new TooltipModel(\n this._container,\n {\n valueToHtml: this._option.sanitize,\n getTooltipStyle: () => this._domStyle,\n getTooltipActual: () => this._tooltipActual,\n getTooltipAttributes: () => this._attributes\n },\n [tooltipSpec.className],\n this.id\n );\n }\n }\n\n protected _removeTooltip() {\n this.model?.release();\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n if (!visible || !this.model) {\n this.setVisibility(visible);\n } else {\n if (!params.changePositionOnly) {\n this._tooltipActual = actualTooltip;\n this._initStyle();\n\n this.model.initAll();\n this.model.setStyle();\n this.model.setContent();\n }\n this.setVisibility(visible);\n\n // 位置\n const { x = 0, y = 0 } = actualTooltip.position ?? {};\n const el = this.model.product;\n if (el) {\n // https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n el.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n }\n\n protected _initStyle() {\n this._domStyle = getDomStyles(this._attributes);\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n isTooltipShown() {\n return this.getVisibility();\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import type { Maybe } from '@visactor/vutils';
2
- import type { ITooltipStyle } from '../interface';
3
2
  import type { IDomTooltipStyle } from './interface';
4
3
  import type { TooltipAttributes } from '@visactor/vrender-components';
5
4
  export declare const getPixelPropertyStr: (num?: number | number[], defaultStr?: string) => string;
6
5
  export declare const pixelPropertyStrToNumber: (str: string) => number | number[];
7
- export declare function getDomStyles(style: Partial<ITooltipStyle>, attributeCache?: Maybe<TooltipAttributes>): IDomTooltipStyle;
6
+ export declare function getDomStyles(attributes?: Maybe<TooltipAttributes>): IDomTooltipStyle;
@@ -1,4 +1,4 @@
1
- import { isValid, mergeSpec, isArray } from "../../../../util";
1
+ import { isValid, mergeSpec, isArray, normalizeLayoutPaddingSpec } from "../../../../util";
2
2
 
3
3
  const DEFAULT_SHAPE_SPACING = 8, DEFAULT_KEY_SPACING = 26, DEFAULT_VALUE_SPACING = 0;
4
4
 
@@ -9,17 +9,17 @@ export const pixelPropertyStrToNumber = str => {
9
9
  return 1 === numArr.length ? numArr[0] : numArr;
10
10
  };
11
11
 
12
- export function getDomStyles(style, attributeCache) {
13
- var _a, _b, _c, _d, _e, _f, _g;
14
- const {panel: {fill: fillColor, shadow: shadow, shadowBlur: shadowBlur, shadowColor: shadowColor, shadowOffsetX: shadowOffsetX, shadowOffsetY: shadowOffsetY, shadowSpread: shadowSpread, cornerRadius: cornerRadius, stroke: strokeColor, lineWidth: lineWidth = 0}, padding: padding, key: key, value: value, title: title, shape: shape, enterable: enterable, transitionDuration: transitionDuration} = style, {panel: panelAttribute, title: titleAttribute, content: contentAttribute, keyWidth: keyWidth, valueWidth: valueWidth} = null != attributeCache ? attributeCache : {}, backgroundColor = fillColor, shapeStyle = getShapeStyle(shape), keyStyle = getLabelStyle(key), valueStyle = getLabelStyle(value);
12
+ export function getDomStyles(attributes) {
13
+ var _a, _b, _c, _d, _e;
14
+ const {panel: panel = {}, title: titleAttribute, content: contentAttribute, titleStyle: titleStyle = {}, contentStyle: contentStyle = {}, padding: padding, keyWidth: keyWidth, valueWidth: valueWidth, enterable: enterable, transitionDuration: transitionDuration} = null != attributes ? attributes : {}, {fill: backgroundColor, shadow: shadow, shadowBlur: shadowBlur, shadowColor: shadowColor, shadowOffsetX: shadowOffsetX, shadowOffsetY: shadowOffsetY, shadowSpread: shadowSpread, cornerRadius: cornerRadius, stroke: strokeColor, lineWidth: lineWidth = 0, width: width = 0, height: height = 0} = panel, {value: title = {}} = titleStyle, {shape: shape = {}, key: key = {}, value: value = {}} = contentStyle, shapeStyle = getShapeStyle(shape), keyStyle = getLabelStyle(key), valueStyle = getLabelStyle(value), {bottom: bottom, left: left, right: right, top: top} = normalizeLayoutPaddingSpec(padding);
15
15
  return {
16
16
  panel: {
17
- width: getPixelPropertyStr((null !== (_a = null == panelAttribute ? void 0 : panelAttribute.width) && void 0 !== _a ? _a : 0) + 2 * lineWidth),
18
- minHeight: getPixelPropertyStr((null !== (_b = null == panelAttribute ? void 0 : panelAttribute.height) && void 0 !== _b ? _b : 0) + 2 * lineWidth),
19
- paddingBottom: getPixelPropertyStr(padding.bottom),
20
- paddingLeft: getPixelPropertyStr(padding.left),
21
- paddingRight: getPixelPropertyStr(padding.right),
22
- paddingTop: getPixelPropertyStr(padding.top),
17
+ width: getPixelPropertyStr(width + 2 * lineWidth),
18
+ minHeight: getPixelPropertyStr(height + 2 * lineWidth),
19
+ paddingBottom: getPixelPropertyStr(bottom),
20
+ paddingLeft: getPixelPropertyStr(left),
21
+ paddingRight: getPixelPropertyStr(right),
22
+ paddingTop: getPixelPropertyStr(top),
23
23
  borderColor: strokeColor,
24
24
  borderWidth: getPixelPropertyStr(lineWidth),
25
25
  borderRadius: getPixelPropertyStr(cornerRadius),
@@ -39,8 +39,8 @@ export function getDomStyles(style, attributeCache) {
39
39
  common: shapeStyle,
40
40
  items: [],
41
41
  width: getPixelPropertyStr(shape.size),
42
- marginRight: getPixelPropertyStr(null !== (_c = shape.spacing) && void 0 !== _c ? _c : 8),
43
- marginBottom: getPixelPropertyStr(-(null !== (_e = null === (_d = null == contentAttribute ? void 0 : contentAttribute[(null == contentAttribute ? void 0 : contentAttribute.length) - 1]) || void 0 === _d ? void 0 : _d.spaceRow) && void 0 !== _e ? _e : 0))
42
+ marginRight: getPixelPropertyStr(null !== (_a = shape.spacing) && void 0 !== _a ? _a : 8),
43
+ marginBottom: getPixelPropertyStr(-(null !== (_c = null === (_b = null == contentAttribute ? void 0 : contentAttribute[(null == contentAttribute ? void 0 : contentAttribute.length) - 1]) || void 0 === _b ? void 0 : _b.spaceRow) && void 0 !== _c ? _c : 0))
44
44
  },
45
45
  keyColumn: {
46
46
  common: keyStyle,
@@ -51,7 +51,7 @@ export function getDomStyles(style, attributeCache) {
51
51
  width: getPixelPropertyStr(Math.ceil(key.width))
52
52
  } : void 0))),
53
53
  width: getPixelPropertyStr(keyWidth),
54
- marginRight: getPixelPropertyStr(null !== (_f = key.spacing) && void 0 !== _f ? _f : 26)
54
+ marginRight: getPixelPropertyStr(null !== (_d = key.spacing) && void 0 !== _d ? _d : 26)
55
55
  },
56
56
  valueColumn: {
57
57
  common: valueStyle,
@@ -62,7 +62,7 @@ export function getDomStyles(style, attributeCache) {
62
62
  width: getPixelPropertyStr(Math.ceil(value.width))
63
63
  } : void 0))),
64
64
  width: getPixelPropertyStr(valueWidth),
65
- marginRight: getPixelPropertyStr(null !== (_g = value.spacing) && void 0 !== _g ? _g : 0)
65
+ marginRight: getPixelPropertyStr(null !== (_e = value.spacing) && void 0 !== _e ? _e : 0)
66
66
  }
67
67
  };
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/dom/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport type { FontWeight, TextAlign } from '../../../../typings';\nimport { isValid, mergeSpec, isArray } from '../../../../util';\nimport type { ITooltipTheme } from '../../interface';\nimport type { ITooltipTextStyle, ITooltipStyle } from '../interface';\nimport type { ILabelStyle, IShapeStyle, IDomTooltipStyle } from './interface';\nimport type { TooltipAttributes } from '@visactor/vrender-components';\n\nconst DEFAULT_SHAPE_SPACING = 8;\nconst DEFAULT_KEY_SPACING = 26;\nconst DEFAULT_VALUE_SPACING = 0;\n\nexport const getPixelPropertyStr = (num?: number | number[], defaultStr?: string) => {\n if (isValid(num)) {\n if (isArray(num)) {\n return num.map(n => `${n}px`).join(' ');\n }\n return `${num}px`;\n }\n return defaultStr ?? 'initial';\n};\n\nexport const pixelPropertyStrToNumber = (str: string): number | number[] => {\n const strArr = str.split(' ');\n const numArr = strArr.map(n => {\n if (!Number.isNaN(n)) {\n return Number.parseFloat(n);\n }\n return Number.parseFloat(n.substring(0, n.length - 2));\n });\n if (numArr.length === 1) {\n return numArr[0];\n }\n return numArr;\n};\n\nexport function getDomStyles(\n style: Partial<ITooltipStyle>,\n attributeCache?: Maybe<TooltipAttributes>\n): IDomTooltipStyle {\n const {\n panel: {\n fill: fillColor,\n shadow,\n shadowBlur,\n shadowColor,\n shadowOffsetX,\n shadowOffsetY,\n shadowSpread,\n cornerRadius,\n stroke: strokeColor,\n lineWidth = 0\n },\n padding,\n key,\n value,\n title,\n shape,\n enterable,\n transitionDuration\n } = style;\n\n const {\n panel: panelAttribute,\n title: titleAttribute,\n content: contentAttribute,\n keyWidth,\n valueWidth\n } = attributeCache ?? {};\n\n const backgroundColor = fillColor as string;\n\n const shapeStyle = getShapeStyle(shape);\n const keyStyle = getLabelStyle(key);\n const valueStyle = getLabelStyle(value);\n\n const styles: IDomTooltipStyle = {\n panel: {\n width: getPixelPropertyStr((panelAttribute?.width ?? 0) + lineWidth * 2),\n minHeight: getPixelPropertyStr((panelAttribute?.height ?? 0) + lineWidth * 2),\n paddingBottom: getPixelPropertyStr(padding.bottom),\n paddingLeft: getPixelPropertyStr(padding.left),\n paddingRight: getPixelPropertyStr(padding.right),\n paddingTop: getPixelPropertyStr(padding.top),\n borderColor: strokeColor as string,\n borderWidth: getPixelPropertyStr(lineWidth),\n borderRadius: getPixelPropertyStr(cornerRadius),\n backgroundColor: backgroundColor ? `${backgroundColor}` : 'transparent',\n boxShadow: shadow\n ? `${shadowOffsetX}px ${shadowOffsetY}px ${shadowBlur}px ${shadowSpread}px ${shadowColor}`\n : 'initial',\n pointerEvents: enterable ? 'auto' : 'none',\n transitionDuration: transitionDuration ? `${transitionDuration}ms` : 'initial',\n transitionProperty: transitionDuration ? 'transform' : 'initial',\n transitionTimingFunction: transitionDuration ? 'ease-out' : 'initial'\n },\n title: {\n marginTop: '0px',\n marginBottom: contentAttribute?.length ? getPixelPropertyStr(titleAttribute?.spaceRow) : '0px',\n ...getLabelStyle(mergeSpec({}, title, titleAttribute?.value))\n },\n content: {},\n shapeColumn: {\n common: shapeStyle,\n items: [],\n width: getPixelPropertyStr(shape.size),\n marginRight: getPixelPropertyStr(shape.spacing ?? DEFAULT_SHAPE_SPACING),\n marginBottom: getPixelPropertyStr(-(contentAttribute?.[contentAttribute?.length - 1]?.spaceRow ?? 0))\n },\n keyColumn: {\n common: keyStyle,\n items: contentAttribute?.map(\n ({ key, spaceRow }, i) =>\n ({\n marginTop: '0px',\n marginBottom: i < contentAttribute.length - 1 ? getPixelPropertyStr(spaceRow) : '0px',\n ...keyStyle,\n ...getLabelStyle(key as ITooltipTextStyle),\n ...(key?.multiLine ? { width: getPixelPropertyStr(Math.ceil(key.width)) } : undefined) // 对多行文本使用定宽\n } as ILabelStyle)\n ),\n width: getPixelPropertyStr(keyWidth),\n marginRight: getPixelPropertyStr(key.spacing ?? DEFAULT_KEY_SPACING)\n },\n valueColumn: {\n common: valueStyle,\n items: contentAttribute?.map(\n ({ value, spaceRow }, i) =>\n ({\n marginTop: '0px',\n marginBottom: i < contentAttribute.length - 1 ? getPixelPropertyStr(spaceRow) : '0px',\n ...valueStyle,\n ...getLabelStyle(value as ITooltipTextStyle),\n ...(value?.multiLine ? { width: getPixelPropertyStr(Math.ceil(value.width)) } : undefined) // 对多行文本使用定宽\n } as ILabelStyle)\n ),\n width: getPixelPropertyStr(valueWidth),\n marginRight: getPixelPropertyStr(value.spacing ?? DEFAULT_VALUE_SPACING)\n }\n };\n return styles;\n}\n\nfunction getLabelStyle(\n labelStyle?: ITooltipTextStyle,\n defaultStyle?: Partial<ITooltipTextStyle>\n): ILabelStyle | undefined {\n if (!labelStyle) {\n return undefined;\n }\n const {\n fontFamily: labelFont,\n fontSize: labelFontSize,\n fill: labelColor,\n textAlign,\n lineHeight,\n fontWeight,\n multiLine,\n wordBreak,\n maxWidth\n } = mergeSpec({}, defaultStyle, labelStyle) as ITooltipTextStyle;\n const styleObj: ILabelStyle = {};\n\n styleObj.fontFamily = labelFont;\n styleObj.fontSize = getPixelPropertyStr(labelFontSize);\n styleObj.color = labelColor as string;\n styleObj.textAlign = textAlign as TextAlign;\n styleObj.lineHeight = getPixelPropertyStr(lineHeight);\n styleObj.fontWeight = fontWeight as FontWeight;\n styleObj.whiteSpace = multiLine ? 'initial' : 'nowrap';\n styleObj.wordBreak = wordBreak;\n styleObj.maxWidth = getPixelPropertyStr(maxWidth);\n return styleObj;\n}\n\nfunction getShapeStyle(\n shapeStyle?: ITooltipTheme['shape'],\n defaultStyle?: Partial<ITooltipTheme['shape']>\n): IShapeStyle | undefined {\n if (!shapeStyle) {\n return undefined;\n }\n const { size } = mergeSpec({}, defaultStyle, shapeStyle);\n const styleObj: IShapeStyle = {};\n\n styleObj.width = getPixelPropertyStr(size);\n return styleObj;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/dom/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport type { FontWeight, TextAlign } from '../../../../typings';\nimport { isValid, mergeSpec, isArray, normalizeLayoutPaddingSpec } from '../../../../util';\nimport type { ITooltipTheme } from '../../interface';\nimport type { ITooltipTextStyle } from '../interface';\nimport type { ILabelStyle, IShapeStyle, IDomTooltipStyle } from './interface';\nimport type { TooltipAttributes } from '@visactor/vrender-components';\n\nconst DEFAULT_SHAPE_SPACING = 8;\nconst DEFAULT_KEY_SPACING = 26;\nconst DEFAULT_VALUE_SPACING = 0;\n\nexport const getPixelPropertyStr = (num?: number | number[], defaultStr?: string) => {\n if (isValid(num)) {\n if (isArray(num)) {\n return num.map(n => `${n}px`).join(' ');\n }\n return `${num}px`;\n }\n return defaultStr ?? 'initial';\n};\n\nexport const pixelPropertyStrToNumber = (str: string): number | number[] => {\n const strArr = str.split(' ');\n const numArr = strArr.map(n => {\n if (!Number.isNaN(n)) {\n return Number.parseFloat(n);\n }\n return Number.parseFloat(n.substring(0, n.length - 2));\n });\n if (numArr.length === 1) {\n return numArr[0];\n }\n return numArr;\n};\n\nexport function getDomStyles(attributes?: Maybe<TooltipAttributes>): IDomTooltipStyle {\n const {\n panel = {},\n title: titleAttribute,\n content: contentAttribute,\n titleStyle = {},\n contentStyle = {},\n padding,\n keyWidth,\n valueWidth,\n enterable,\n transitionDuration\n } = attributes ?? {};\n\n const {\n fill: backgroundColor,\n shadow,\n shadowBlur,\n shadowColor,\n shadowOffsetX,\n shadowOffsetY,\n shadowSpread,\n cornerRadius,\n stroke: strokeColor,\n lineWidth = 0,\n width = 0,\n height = 0\n } = panel;\n\n const { value: title = {} } = titleStyle;\n const { shape = {}, key = {}, value = {} } = contentStyle;\n\n const shapeStyle = getShapeStyle(shape);\n const keyStyle = getLabelStyle(key);\n const valueStyle = getLabelStyle(value);\n const { bottom, left, right, top } = normalizeLayoutPaddingSpec(padding);\n\n const styles: IDomTooltipStyle = {\n panel: {\n width: getPixelPropertyStr(width + lineWidth * 2),\n minHeight: getPixelPropertyStr(height + lineWidth * 2),\n paddingBottom: getPixelPropertyStr(bottom as number),\n paddingLeft: getPixelPropertyStr(left as number),\n paddingRight: getPixelPropertyStr(right as number),\n paddingTop: getPixelPropertyStr(top as number),\n borderColor: strokeColor as string,\n borderWidth: getPixelPropertyStr(lineWidth),\n borderRadius: getPixelPropertyStr(cornerRadius),\n backgroundColor: backgroundColor ? `${backgroundColor}` : 'transparent',\n boxShadow: shadow\n ? `${shadowOffsetX}px ${shadowOffsetY}px ${shadowBlur}px ${shadowSpread}px ${shadowColor}`\n : 'initial',\n pointerEvents: enterable ? 'auto' : 'none',\n transitionDuration: transitionDuration ? `${transitionDuration}ms` : 'initial',\n transitionProperty: transitionDuration ? 'transform' : 'initial',\n transitionTimingFunction: transitionDuration ? 'ease-out' : 'initial'\n },\n title: {\n marginTop: '0px',\n marginBottom: contentAttribute?.length ? getPixelPropertyStr(titleAttribute?.spaceRow) : '0px',\n ...getLabelStyle(mergeSpec({}, title, titleAttribute?.value))\n },\n content: {},\n shapeColumn: {\n common: shapeStyle,\n items: [],\n width: getPixelPropertyStr(shape.size),\n marginRight: getPixelPropertyStr(shape.spacing ?? DEFAULT_SHAPE_SPACING),\n marginBottom: getPixelPropertyStr(-(contentAttribute?.[contentAttribute?.length - 1]?.spaceRow ?? 0))\n },\n keyColumn: {\n common: keyStyle,\n items: contentAttribute?.map(\n ({ key, spaceRow }, i) =>\n ({\n marginTop: '0px',\n marginBottom: i < contentAttribute.length - 1 ? getPixelPropertyStr(spaceRow) : '0px',\n ...keyStyle,\n ...getLabelStyle(key as ITooltipTextStyle),\n ...(key?.multiLine ? { width: getPixelPropertyStr(Math.ceil(key.width)) } : undefined) // 对多行文本使用定宽\n } as ILabelStyle)\n ),\n width: getPixelPropertyStr(keyWidth),\n marginRight: getPixelPropertyStr(key.spacing ?? DEFAULT_KEY_SPACING)\n },\n valueColumn: {\n common: valueStyle,\n items: contentAttribute?.map(\n ({ value, spaceRow }, i) =>\n ({\n marginTop: '0px',\n marginBottom: i < contentAttribute.length - 1 ? getPixelPropertyStr(spaceRow) : '0px',\n ...valueStyle,\n ...getLabelStyle(value as ITooltipTextStyle),\n ...(value?.multiLine ? { width: getPixelPropertyStr(Math.ceil(value.width)) } : undefined) // 对多行文本使用定宽\n } as ILabelStyle)\n ),\n width: getPixelPropertyStr(valueWidth),\n marginRight: getPixelPropertyStr(value.spacing ?? DEFAULT_VALUE_SPACING)\n }\n };\n return styles;\n}\n\nfunction getLabelStyle(\n labelStyle?: ITooltipTextStyle,\n defaultStyle?: Partial<ITooltipTextStyle>\n): ILabelStyle | undefined {\n if (!labelStyle) {\n return undefined;\n }\n const {\n fontFamily: labelFont,\n fontSize: labelFontSize,\n fill: labelColor,\n textAlign,\n lineHeight,\n fontWeight,\n multiLine,\n wordBreak,\n maxWidth\n } = mergeSpec({}, defaultStyle, labelStyle) as ITooltipTextStyle;\n const styleObj: ILabelStyle = {};\n\n styleObj.fontFamily = labelFont;\n styleObj.fontSize = getPixelPropertyStr(labelFontSize);\n styleObj.color = labelColor as string;\n styleObj.textAlign = textAlign as TextAlign;\n styleObj.lineHeight = getPixelPropertyStr(lineHeight);\n styleObj.fontWeight = fontWeight as FontWeight;\n styleObj.whiteSpace = multiLine ? 'initial' : 'nowrap';\n styleObj.wordBreak = wordBreak;\n styleObj.maxWidth = getPixelPropertyStr(maxWidth);\n return styleObj;\n}\n\nfunction getShapeStyle(\n shapeStyle?: ITooltipTheme['shape'],\n defaultStyle?: Partial<ITooltipTheme['shape']>\n): IShapeStyle | undefined {\n if (!shapeStyle) {\n return undefined;\n }\n const { size } = mergeSpec({}, defaultStyle, shapeStyle);\n const styleObj: IShapeStyle = {};\n\n styleObj.width = getPixelPropertyStr(size);\n return styleObj;\n}\n"]}
@@ -1,27 +1,8 @@
1
- import type { ITextAttribute, IFillStyle, IRectGraphicAttribute, RichTextWordBreak } from '@visactor/vrender-core';
2
- import type { IPadding } from '../../../../typings';
1
+ import type { ITextAttribute, IFillStyle, RichTextWordBreak } from '@visactor/vrender-core';
3
2
  export interface ITooltipTextStyle extends Partial<ITextAttribute & IFillStyle> {
4
- spacing: number;
5
- multiLine: boolean;
3
+ spacing?: number;
4
+ multiLine?: boolean;
6
5
  maxWidth?: number;
7
6
  wordBreak?: RichTextWordBreak;
8
- }
9
- export interface ITooltipPanelStyle extends Partial<IRectGraphicAttribute> {
10
- shadow: boolean;
11
- shadowSpread?: number;
12
- }
13
- export interface ITooltipStyle {
14
- panel: ITooltipPanelStyle;
15
- title: ITooltipTextStyle;
16
- shape: {
17
- fill: boolean;
18
- size: number;
19
- spacing: number;
20
- };
21
- key: ITooltipTextStyle;
22
- value: ITooltipTextStyle;
23
- padding: IPadding;
24
- spaceRow: number;
25
- enterable: boolean;
26
- transitionDuration: number;
7
+ autoWidth?: boolean;
27
8
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/interface/style.ts"],"names":[],"mappings":"","file":"style.js","sourcesContent":["import type { ITextAttribute, IFillStyle, IRectGraphicAttribute, RichTextWordBreak } from '@visactor/vrender-core';\nimport type { IPadding } from '../../../../typings';\n\nexport interface ITooltipTextStyle extends Partial<ITextAttribute & IFillStyle> {\n /** 和相邻元素的水平间距 */\n spacing: number;\n /** 是否支持换行 */\n multiLine: boolean;\n /** 文本元素的最大宽度 */\n maxWidth?: number;\n /** 换行模式 */\n wordBreak?: RichTextWordBreak;\n}\n\nexport interface ITooltipPanelStyle extends Partial<IRectGraphicAttribute> {\n shadow: boolean;\n shadowSpread?: number;\n}\n\nexport interface ITooltipStyle {\n panel: ITooltipPanelStyle;\n title: ITooltipTextStyle;\n shape: {\n fill: boolean;\n size: number;\n spacing: number;\n };\n key: ITooltipTextStyle;\n value: ITooltipTextStyle;\n padding: IPadding;\n spaceRow: number;\n enterable: boolean;\n transitionDuration: number;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/interface/style.ts"],"names":[],"mappings":"","file":"style.js","sourcesContent":["import type { ITextAttribute, IFillStyle, RichTextWordBreak } from '@visactor/vrender-core';\n\nexport interface ITooltipTextStyle extends Partial<ITextAttribute & IFillStyle> {\n /** 和相邻元素的水平间距 */\n spacing?: number;\n /** 是否支持换行 */\n multiLine?: boolean;\n /** 文本元素的最大宽度 */\n maxWidth?: number;\n /** 换行模式 */\n wordBreak?: RichTextWordBreak;\n /** 是否开启自动宽度 */\n autoWidth?: boolean;\n}\n"]}
@@ -1,11 +1,9 @@
1
- import type { TooltipAttributes } from '@visactor/vrender-components';
2
- import type { IToolTipActual, MaybeArray } from '../../../../typings';
3
- import type { ITooltipStyle, ITooltipTextStyle } from '../interface';
4
- export declare const getTooltipAttributes: (actualTooltip: IToolTipActual, style: Partial<ITooltipStyle>) => TooltipAttributes;
5
- interface ITooltipTextInfo {
6
- width: number;
7
- height: number;
8
- text: MaybeArray<number> | MaybeArray<string>;
9
- }
10
- export declare const measureTooltipText: (text: string, style: ITooltipTextStyle) => ITooltipTextInfo;
11
- export {};
1
+ import type { TooltipAttributes, TooltipPanelAttrs } from '@visactor/vrender-components';
2
+ import type { IToolTipActual } from '../../../../typings';
3
+ import type { ITooltipTextStyle } from '../interface';
4
+ import type { ITooltipSpec } from '../../interface/spec';
5
+ import type { ITheme } from '../../../../theme';
6
+ import type { ITooltipTextTheme, ITooltipTheme } from '../../interface/theme';
7
+ export declare function getTextAttributes(style?: ITooltipTextTheme, globalTheme?: ITheme, defaultAttributes?: Partial<ITooltipTextStyle>): ITooltipTextStyle;
8
+ export declare const getPanelAttributes: (style: ITooltipTheme['panel']) => TooltipPanelAttrs;
9
+ export declare const getTooltipAttributes: (actualTooltip: IToolTipActual, spec: ITooltipSpec, globalTheme: ITheme) => TooltipAttributes;
@@ -1,13 +1,59 @@
1
- import { isValid } from "@visactor/vutils";
1
+ import { isValid, normalizePadding } from "@visactor/vutils";
2
2
 
3
- import { initTextMeasure, mergeSpec } from "../../../../util";
3
+ import { mergeSpec, normalizeLayoutPaddingSpec } from "../../../../util";
4
4
 
5
- import { builtinSymbolsMap, getRichTextBounds } from "@visactor/vrender-core";
5
+ import { THEME_CONSTANTS } from "../../../../theme/builtin/common/constants";
6
6
 
7
- import { getTextAttributes } from "./style";
7
+ import { measureTooltipText } from "./common";
8
8
 
9
- export const getTooltipAttributes = (actualTooltip, style) => {
10
- const {spaceRow: commonSpaceRow, padding: padding, title: titleStyle, shape: shapeStyle, key: keyStyle, value: valueStyle} = style, attribute = Object.assign(Object.assign({}, style), {
9
+ const DEFAULT_TEXT_ATTRIBUTES = {
10
+ fontFamily: THEME_CONSTANTS.defaultFontFamily,
11
+ spacing: 10,
12
+ wordBreak: "break-word"
13
+ };
14
+
15
+ export function getTextAttributes(style = {}, globalTheme, defaultAttributes) {
16
+ var _a, _b;
17
+ return Object.assign(Object.assign({}, null != defaultAttributes ? defaultAttributes : DEFAULT_TEXT_ATTRIBUTES), {
18
+ fill: null !== (_a = style.fill) && void 0 !== _a ? _a : style.fontColor,
19
+ textAlign: style.textAlign,
20
+ textBaseline: style.textBaseline,
21
+ fontFamily: null !== (_b = style.fontFamily) && void 0 !== _b ? _b : null == globalTheme ? void 0 : globalTheme.fontFamily,
22
+ fontSize: style.fontSize,
23
+ fontWeight: style.fontWeight,
24
+ lineHeight: style.lineHeight,
25
+ spacing: style.spacing,
26
+ multiLine: style.multiLine,
27
+ maxWidth: style.maxWidth,
28
+ wordBreak: style.wordBreak,
29
+ autoWidth: style.autoWidth
30
+ });
31
+ }
32
+
33
+ export const getPanelAttributes = style => {
34
+ var _a;
35
+ const {backgroundColor: backgroundColor, border: border, shadow: shadow} = style, panelAttrs = {
36
+ lineWidth: null !== (_a = null == border ? void 0 : border.width) && void 0 !== _a ? _a : 0,
37
+ shadow: !!shadow
38
+ };
39
+ (null == border ? void 0 : border.color) && (panelAttrs.stroke = border.color),
40
+ backgroundColor && (panelAttrs.fill = backgroundColor), shadow && (panelAttrs.shadowColor = shadow.color,
41
+ panelAttrs.shadowBlur = shadow.blur, panelAttrs.shadowOffsetX = shadow.x, panelAttrs.shadowOffsetY = shadow.y,
42
+ panelAttrs.shadowSpread = shadow.spread);
43
+ const {radius: radius} = null != border ? border : {};
44
+ return isValid(radius) && (panelAttrs.cornerRadius = [ radius, radius, radius, radius ]),
45
+ panelAttrs;
46
+ };
47
+
48
+ export const getTooltipAttributes = (actualTooltip, spec, globalTheme) => {
49
+ var _a, _b, _c, _d, _e;
50
+ const {style: style = {}, enterable: enterable, transitionDuration: transitionDuration} = spec, {panel: panel = {}, titleLabel: titleLabel, shape: shape, keyLabel: keyLabel, valueLabel: valueLabel, spaceRow: commonSpaceRow} = style, padding = normalizePadding(panel.padding), paddingSpec = normalizeLayoutPaddingSpec(panel.padding), titleStyle = getTextAttributes(titleLabel, globalTheme), keyStyle = getTextAttributes(keyLabel, globalTheme), valueStyle = getTextAttributes(valueLabel, globalTheme), shapeStyle = {
51
+ fill: !0,
52
+ size: null !== (_a = null == shape ? void 0 : shape.size) && void 0 !== _a ? _a : 8,
53
+ spacing: null !== (_b = null == shape ? void 0 : shape.spacing) && void 0 !== _b ? _b : 6
54
+ }, attributes = {
55
+ panel: getPanelAttributes(panel),
56
+ padding: padding,
11
57
  title: {},
12
58
  content: [],
13
59
  titleStyle: {
@@ -22,126 +68,88 @@ export const getTooltipAttributes = (actualTooltip, style) => {
22
68
  },
23
69
  hasContentShape: !1,
24
70
  keyWidth: 0,
25
- valueWidth: 0
26
- });
27
- [ "key", "value", "shape" ].forEach((key => {
28
- delete attribute[key];
29
- }));
30
- const {title: title = {}, content: content = []} = actualTooltip;
31
- let maxWidth = 0, containerHeight = padding.top + padding.bottom, titleMaxHeight = 0;
32
- const {visible: titleVisible = !0, value: titleValue = "", valueStyle: titleValueStyle, hasShape: titleHasShape, shapeType: titleShapeType = "", shapeHollow: titleShapeHollow, shapeColor: titleShapeColor, spaceRow: titleSpaceRow} = title;
33
- if (attribute.title.visible = titleVisible, attribute.title.spaceRow = null != titleSpaceRow ? titleSpaceRow : commonSpaceRow,
34
- titleVisible) {
35
- const lineTitleStyle = mergeSpec({}, titleStyle, getTextAttributes(titleValueStyle, void 0, {})), {text: text, width: width, height: height} = measureTooltipText(titleValue, lineTitleStyle);
36
- if (attribute.title.value = Object.assign(Object.assign({
37
- width: width,
38
- height: height
39
- }, lineTitleStyle), {
40
- text: text
41
- }), maxWidth = width, titleMaxHeight = height, titleHasShape && builtinSymbolsMap[titleShapeType]) {
42
- const titleShapeAttrs = {
43
- symbolType: titleShapeType
71
+ valueWidth: 0,
72
+ enterable: enterable,
73
+ transitionDuration: transitionDuration
74
+ }, {title: title = {}, content: content = []} = actualTooltip;
75
+ let containerWidth = paddingSpec.left + paddingSpec.right, containerHeight = paddingSpec.top + paddingSpec.bottom, contentMaxWidth = 0;
76
+ const filteredContent = content.filter((item => (item.key || item.value) && !1 !== item.visible)), hasContent = !!filteredContent.length;
77
+ let maxKeyWidth = 0, maxAdaptiveKeyWidth = 0, maxValueWidth = 0, maxShapeWidth = 0;
78
+ if (hasContent) {
79
+ const keyWidths = [], adaptiveKeyWidths = [], valueWidths = [], shapeWidths = [];
80
+ attributes.content = filteredContent.map(((item, i) => {
81
+ let itemHeight = 0;
82
+ const {hasShape: actualHasShape, key: actualKey, shapeType: actualShapeType = "", shapeFill: actualShapeFill, shapeStroke: actualShapeStroke, shapeLineWidth: actualShapeLineWidth, shapeSize: actualShapeSize, value: actualValue, isKeyAdaptive: actualIsKeyAdaptive, spaceRow: actualSpaceRow, keyStyle: actualKeyStyle, valueStyle: actualValueStyle, shapeColor: actualShapeColor, shapeHollow: actualShapeHollow} = item, itemAttrs = {
83
+ height: 0,
84
+ spaceRow: null != actualSpaceRow ? actualSpaceRow : commonSpaceRow
44
85
  };
45
- titleShapeHollow ? titleShapeAttrs.stroke = titleShapeColor : titleShapeAttrs.fill = titleShapeColor,
46
- attribute.title.shape = titleShapeAttrs, maxWidth += shapeStyle.size + shapeStyle.spacing,
47
- titleMaxHeight = Math.max(shapeStyle.size, titleMaxHeight);
48
- }
49
- attribute.title.width = maxWidth, attribute.title.height = titleMaxHeight, containerHeight += titleMaxHeight;
50
- }
51
- if (content.length) {
52
- const filteredContent = content.filter((item => (item.key || item.value) && !1 !== item.visible));
53
- if (filteredContent.length) {
54
- titleVisible && (containerHeight += attribute.title.spaceRow);
55
- const keyWidths = [], adaptiveKeyWidths = [], valueWidths = [], shapeWidths = [];
56
- attribute.content = filteredContent.map(((item, i) => {
57
- let itemHeight = 0;
58
- const {hasShape: hasShape, key: key, shapeColor: shapeColor, shapeHollow: shapeHollow, shapeType: shapeType = "", shapeFill: shapeFill, shapeStroke: shapeStroke, shapeLineWidth: shapeLineWidth, shapeSize: shapeSize, value: value, isKeyAdaptive: isKeyAdaptive, spaceRow: lineSpaceRow} = item, itemAttrs = {
59
- height: 0,
60
- spaceRow: null != lineSpaceRow ? lineSpaceRow : commonSpaceRow
61
- };
62
- if (isValid(key)) {
63
- const lineKeyStyle = mergeSpec({}, keyStyle, getTextAttributes(item.keyStyle, void 0, {})), {width: width, height: height, text: text} = measureTooltipText(key, lineKeyStyle);
64
- itemAttrs.key = Object.assign(Object.assign({
65
- width: width,
66
- height: height
67
- }, lineKeyStyle), {
68
- text: text
69
- }), isKeyAdaptive ? adaptiveKeyWidths.push(width) : keyWidths.push(width), itemHeight = Math.max(itemHeight, height);
70
- }
71
- if (isValid(value)) {
72
- const lineValueStyle = mergeSpec({}, valueStyle, getTextAttributes(item.valueStyle, void 0, {})), {width: width, height: height, text: text} = measureTooltipText(value, lineValueStyle);
73
- itemAttrs.value = Object.assign(Object.assign({
74
- width: width,
75
- height: height
76
- }, lineValueStyle), {
77
- text: text
78
- }), valueWidths.push(width), itemHeight = Math.max(itemHeight, height);
79
- }
80
- if (hasShape) {
81
- const shape = {
82
- visible: !0,
83
- symbolType: shapeType
84
- }, adaptiveShapeFill = null != shapeFill ? shapeFill : shapeColor;
85
- shapeHollow ? shape.stroke = adaptiveShapeFill : shape.fill = adaptiveShapeFill,
86
- shape.stroke = null != shapeStroke ? shapeStroke : adaptiveShapeFill, shape.lineWidth = shapeLineWidth,
87
- itemAttrs.shape = shape;
88
- const shapeWidth = null != shapeSize ? shapeSize : shapeStyle.size;
89
- itemHeight = Math.max(shapeWidth, itemHeight), shapeWidths.push(shapeWidth);
90
- } else itemAttrs.shape = {
91
- visible: !1
92
- };
93
- return itemAttrs.height = itemHeight, containerHeight += itemHeight, i < filteredContent.length - 1 && (containerHeight += itemAttrs.spaceRow),
94
- itemAttrs;
95
- }));
96
- const maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0, maxAdaptiveKeyWidth = adaptiveKeyWidths.length ? Math.max(...adaptiveKeyWidths) : 0, maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0, shapeWidth = shapeWidths.length ? Math.max(...shapeWidths) + shapeStyle.spacing : 0;
97
- maxWidth = Math.max(maxKeyWidth + maxValueWidth + keyStyle.spacing + valueStyle.spacing + shapeWidth, maxAdaptiveKeyWidth + shapeWidth, maxWidth),
98
- attribute.hasContentShape = !!shapeWidths.length, attribute.keyWidth = maxKeyWidth,
99
- attribute.valueWidth = maxValueWidth;
100
- }
86
+ if (isValid(actualKey)) {
87
+ const itemKeyStyle = mergeSpec({}, keyStyle, getTextAttributes(actualKeyStyle, void 0, {})), {width: width, height: height, text: text} = measureTooltipText(actualKey, itemKeyStyle);
88
+ itemAttrs.key = Object.assign(Object.assign({
89
+ width: width,
90
+ height: height
91
+ }, itemKeyStyle), {
92
+ text: text
93
+ }), actualIsKeyAdaptive ? adaptiveKeyWidths.push(width) : keyWidths.push(width),
94
+ itemHeight = Math.max(itemHeight, height);
95
+ }
96
+ if (isValid(actualValue)) {
97
+ const itemValueStyle = mergeSpec({}, valueStyle, getTextAttributes(actualValueStyle, void 0, {})), {width: width, height: height, text: text} = measureTooltipText(actualValue, itemValueStyle);
98
+ itemAttrs.value = Object.assign(Object.assign({
99
+ width: width,
100
+ height: height
101
+ }, itemValueStyle), {
102
+ text: text
103
+ }), valueWidths.push(width), itemHeight = Math.max(itemHeight, height);
104
+ }
105
+ if (actualHasShape) {
106
+ const shape = {
107
+ visible: !0,
108
+ symbolType: actualShapeType
109
+ }, adaptiveShapeFill = null != actualShapeFill ? actualShapeFill : actualShapeColor;
110
+ actualShapeHollow ? shape.stroke = adaptiveShapeFill : shape.fill = adaptiveShapeFill,
111
+ shape.stroke = null != actualShapeStroke ? actualShapeStroke : adaptiveShapeFill,
112
+ shape.lineWidth = actualShapeLineWidth, itemAttrs.shape = shape;
113
+ const shapeWidth = null != actualShapeSize ? actualShapeSize : shapeStyle.size;
114
+ itemHeight = Math.max(shapeWidth, itemHeight), shapeWidths.push(shapeWidth);
115
+ } else itemAttrs.shape = {
116
+ visible: !1
117
+ };
118
+ return itemAttrs.height = itemHeight, containerHeight += itemHeight, i < filteredContent.length - 1 && (containerHeight += itemAttrs.spaceRow),
119
+ itemAttrs;
120
+ })), maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0, maxAdaptiveKeyWidth = adaptiveKeyWidths.length ? Math.max(...adaptiveKeyWidths) : 0,
121
+ maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0, maxShapeWidth = shapeWidths.length ? Math.max(...shapeWidths) + shapeStyle.spacing : 0,
122
+ contentMaxWidth = Math.max(maxShapeWidth + maxKeyWidth + keyStyle.spacing + maxValueWidth + valueStyle.spacing, maxShapeWidth + maxAdaptiveKeyWidth, contentMaxWidth),
123
+ attributes.hasContentShape = !!shapeWidths.length, attributes.keyWidth = maxKeyWidth,
124
+ attributes.valueWidth = maxValueWidth;
101
125
  }
102
- const containerSize = {
103
- width: maxWidth + padding.left + padding.right,
104
- height: containerHeight
105
- };
106
- return attribute.panel.width = containerSize.width, attribute.panel.height = containerSize.height,
107
- attribute;
108
- };
109
-
110
- export const measureTooltipText = (text, style) => {
111
- var _a;
112
- text = (null != text ? text : "").toString();
113
- const measure = initTextMeasure(style);
114
- if (!style.multiLine) {
115
- const {width: width, height: height} = measure.fullMeasure(text);
116
- return {
117
- width: width,
118
- height: height,
126
+ let titleMaxWidth = 0, titleMaxHeight = 0;
127
+ const {visible: actualTitleVisible = !0, value: actualTitleValue = "", valueStyle: actualTitleValueStyle, spaceRow: actualTitleSpaceRow} = title;
128
+ attributes.title.visible = actualTitleVisible, attributes.title.spaceRow = null != actualTitleSpaceRow ? actualTitleSpaceRow : commonSpaceRow;
129
+ let titleValueStyle = {};
130
+ const isAutoWidthMode = () => titleValueStyle.autoWidth && !1 !== titleValueStyle.multiLine;
131
+ if (actualTitleVisible) {
132
+ titleValueStyle = mergeSpec({}, titleStyle, getTextAttributes(actualTitleValueStyle, void 0, {})),
133
+ isAutoWidthMode() && (titleValueStyle.multiLine = null === (_c = titleValueStyle.multiLine) || void 0 === _c || _c,
134
+ titleValueStyle.maxWidth = null !== (_d = titleValueStyle.maxWidth) && void 0 !== _d ? _d : hasContent ? Math.ceil(contentMaxWidth) : void 0);
135
+ const {text: text, width: width, height: height} = measureTooltipText(actualTitleValue, titleValueStyle);
136
+ attributes.title.value = Object.assign(Object.assign({
137
+ width: isAutoWidthMode() ? Math.min(width, null !== (_e = titleValueStyle.maxWidth) && void 0 !== _e ? _e : Number.MAX_VALUE) : width,
138
+ height: height
139
+ }, titleValueStyle), {
119
140
  text: text
120
- };
141
+ }), titleMaxWidth = attributes.title.value.width, titleMaxHeight = attributes.title.value.height,
142
+ containerHeight += titleMaxHeight + (hasContent ? attributes.title.spaceRow : 0);
121
143
  }
122
- let textLines = text.split("\n");
123
- textLines = textLines.map(((line, i) => i < textLines.length - 1 ? line + "\n" : line));
124
- const {width: width, height: height} = measure.fullMeasure(textLines);
125
- if (style.maxWidth && style.maxWidth <= width) {
126
- const bound = getRichTextBounds({
127
- wordBreak: null !== (_a = style.wordBreak) && void 0 !== _a ? _a : "break-word",
128
- maxWidth: style.maxWidth,
129
- width: 0,
130
- height: 0,
131
- textConfig: textLines.map(((line, i) => Object.assign(Object.assign({}, style), {
132
- text: line
133
- })))
134
- });
135
- return {
136
- width: bound.width(),
137
- height: bound.height(),
138
- text: textLines
139
- };
140
- }
141
- return {
142
- width: width,
143
- height: height,
144
- text: textLines
145
- };
144
+ return attributes.title.width = titleMaxWidth, attributes.title.height = titleMaxHeight,
145
+ isAutoWidthMode() ? containerWidth += contentMaxWidth || titleMaxWidth : containerWidth += Math.max(titleMaxWidth, contentMaxWidth),
146
+ hasContent && attributes.content.forEach((item => {
147
+ var _a;
148
+ const value = item.value;
149
+ value && (null === (_a = value.autoWidth) || void 0 === _a || _a) && (value.width = containerWidth - paddingSpec.left - paddingSpec.right - maxShapeWidth - maxKeyWidth - keyStyle.spacing - valueStyle.spacing,
150
+ value.multiLine = !0, value.maxWidth || (value.maxWidth = Math.ceil(value.width)),
151
+ attributes.valueWidth = Math.max(attributes.valueWidth, value.width));
152
+ })), attributes.panel.width = containerWidth, attributes.panel.height = containerHeight,
153
+ attributes;
146
154
  };
147
155
  //# sourceMappingURL=attribute.js.map