@visactor/vchart 1.12.15 → 1.13.0
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.
- package/build/es5/index.js +1 -1
- package/build/index.js +2381 -1727
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/utils.js +8 -6
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -0
- package/cjs/chart/base/base-chart.js +3 -0
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/index.d.ts +5 -3
- package/cjs/chart/index.js +16 -2
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/type.d.ts +2 -1
- package/cjs/chart/interface/type.js +1 -1
- package/cjs/chart/interface/type.js.map +1 -1
- package/cjs/chart/pictogram/index.d.ts +3 -0
- package/cjs/{plugin/components/tooltip-handler/canvas → chart/pictogram}/index.js +2 -1
- package/cjs/chart/pictogram/index.js.map +1 -0
- package/cjs/chart/pictogram/interface.d.ts +6 -0
- package/cjs/chart/pictogram/interface.js.map +1 -0
- package/cjs/chart/pictogram/pictogram-transformer.d.ts +8 -0
- package/cjs/chart/pictogram/pictogram-transformer.js +38 -0
- package/cjs/chart/pictogram/pictogram-transformer.js.map +1 -0
- package/cjs/chart/pictogram/pictogram.d.ts +12 -0
- package/cjs/chart/pictogram/pictogram.js +24 -0
- package/cjs/chart/pictogram/pictogram.js.map +1 -0
- package/cjs/chart/sankey/sankey-transformer.js +2 -1
- package/cjs/chart/sankey/sankey-transformer.js.map +1 -1
- package/cjs/chart/sankey/sankey.js +3 -2
- package/cjs/chart/sankey/sankey.js.map +1 -1
- package/cjs/compile/mark/compilable-mark.js +1 -1
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +7 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.js +6 -6
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +2 -2
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/utils/get-value.js +3 -1
- package/cjs/component/tooltip/utils/get-value.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/vchart.d.ts +4 -1
- package/cjs/core/vchart.js +21 -7
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/pictogram.d.ts +84 -0
- package/cjs/data/transforms/pictogram.js +149 -0
- package/cjs/data/transforms/pictogram.js.map +1 -0
- package/cjs/mark/group.d.ts +3 -2
- package/cjs/mark/group.js +12 -2
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/type.d.ts +2 -1
- package/cjs/mark/interface/type.js +2 -1
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.d.ts +4 -6
- package/cjs/plugin/components/tooltip-handler/base.js +3 -20
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/{canvas/canvas-tooltip-handler.d.ts → canvas-tooltip-handler.d.ts} +8 -3
- package/cjs/plugin/components/tooltip-handler/{canvas/canvas-tooltip-handler.js → canvas-tooltip-handler.js} +15 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -0
- package/cjs/plugin/components/tooltip-handler/constants.d.ts +7 -8
- package/cjs/plugin/components/tooltip-handler/constants.js +6 -9
- package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/{dom/dom-tooltip-handler.d.ts → dom-tooltip-handler.d.ts} +20 -9
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +187 -0
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -0
- package/cjs/plugin/components/tooltip-handler/index.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/index.js +1 -1
- package/cjs/plugin/components/tooltip-handler/index.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/interface/index.d.ts +15 -2
- package/cjs/plugin/components/tooltip-handler/interface/index.js +1 -16
- package/cjs/plugin/components/tooltip-handler/interface/index.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.d.ts +9 -2
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js +36 -18
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/common.d.ts +1 -12
- package/cjs/plugin/components/tooltip-handler/utils/common.js +7 -35
- package/cjs/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.d.ts +18 -0
- package/cjs/plugin/components/tooltip-handler/utils/style.js +94 -0
- package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -0
- package/cjs/plugin/components/tooltip-handler/utils/svg.d.ts +2 -0
- package/cjs/plugin/components/tooltip-handler/utils/svg.js +48 -0
- package/cjs/plugin/components/tooltip-handler/utils/svg.js.map +1 -0
- package/cjs/series/base/base-series.d.ts +22 -6
- package/cjs/series/base/base-series.js +33 -24
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/interface/type.d.ts +4 -2
- package/cjs/series/interface/type.js +4 -2
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/pictogram/constant.d.ts +2 -0
- package/cjs/series/pictogram/constant.js +15 -0
- package/cjs/series/pictogram/constant.js.map +1 -0
- package/cjs/series/pictogram/interface.d.ts +15 -0
- package/cjs/series/pictogram/interface.js.map +1 -0
- package/cjs/series/pictogram/pictogram-transformer.d.ts +5 -0
- package/cjs/series/pictogram/pictogram-transformer.js +23 -0
- package/cjs/series/pictogram/pictogram-transformer.js.map +1 -0
- package/cjs/series/pictogram/pictogram.d.ts +77 -0
- package/cjs/series/pictogram/pictogram.js +303 -0
- package/cjs/series/pictogram/pictogram.js.map +1 -0
- package/cjs/series/pictogram/svg-source.d.ts +7 -0
- package/cjs/series/pictogram/svg-source.js +38 -0
- package/cjs/series/pictogram/svg-source.js.map +1 -0
- package/cjs/series/pictogram/tooltip-helper.d.ts +9 -0
- package/cjs/series/pictogram/tooltip-helper.js +26 -0
- package/cjs/series/pictogram/tooltip-helper.js.map +1 -0
- package/cjs/series/sankey/interface.d.ts +1 -0
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.js +4 -0
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +1 -0
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/common.d.ts +3 -1
- package/cjs/typings/tooltip/common.js.map +1 -1
- package/esm/animation/utils.js +8 -6
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -0
- package/esm/chart/base/base-chart.js +3 -0
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/index.d.ts +5 -3
- package/esm/chart/index.js +4 -2
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/type.d.ts +2 -1
- package/esm/chart/interface/type.js +1 -1
- package/esm/chart/interface/type.js.map +1 -1
- package/esm/chart/pictogram/index.d.ts +3 -0
- package/esm/chart/pictogram/index.js +6 -0
- package/esm/chart/pictogram/index.js.map +1 -0
- package/esm/chart/pictogram/interface.d.ts +6 -0
- package/esm/chart/pictogram/interface.js.map +1 -0
- package/esm/chart/pictogram/pictogram-transformer.d.ts +8 -0
- package/esm/chart/pictogram/pictogram-transformer.js +32 -0
- package/esm/chart/pictogram/pictogram-transformer.js.map +1 -0
- package/esm/chart/pictogram/pictogram.d.ts +12 -0
- package/esm/chart/pictogram/pictogram.js +24 -0
- package/esm/chart/pictogram/pictogram.js.map +1 -0
- package/esm/chart/sankey/sankey-transformer.js +2 -1
- package/esm/chart/sankey/sankey-transformer.js.map +1 -1
- package/esm/chart/sankey/sankey.js +3 -1
- package/esm/chart/sankey/sankey.js.map +1 -1
- package/esm/compile/mark/compilable-mark.js +1 -1
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +7 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/geo/geo-coordinate.js +6 -6
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +2 -2
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/utils/get-value.js +3 -2
- package/esm/component/tooltip/utils/get-value.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/vchart.d.ts +4 -1
- package/esm/core/vchart.js +23 -6
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/pictogram.d.ts +84 -0
- package/esm/data/transforms/pictogram.js +145 -0
- package/esm/data/transforms/pictogram.js.map +1 -0
- package/esm/mark/group.d.ts +3 -2
- package/esm/mark/group.js +12 -2
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/type.d.ts +2 -1
- package/esm/mark/interface/type.js +2 -1
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.d.ts +4 -6
- package/esm/plugin/components/tooltip-handler/base.js +3 -22
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/{canvas/canvas-tooltip-handler.d.ts → canvas-tooltip-handler.d.ts} +8 -3
- package/esm/plugin/components/tooltip-handler/{canvas/canvas-tooltip-handler.js → canvas-tooltip-handler.js} +19 -5
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -0
- package/esm/plugin/components/tooltip-handler/constants.d.ts +7 -8
- package/esm/plugin/components/tooltip-handler/constants.js +9 -4
- package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/{dom/dom-tooltip-handler.d.ts → dom-tooltip-handler.d.ts} +20 -9
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +191 -0
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -0
- package/esm/plugin/components/tooltip-handler/index.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/index.js +2 -2
- package/esm/plugin/components/tooltip-handler/index.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/interface/index.d.ts +15 -2
- package/esm/plugin/components/tooltip-handler/interface/index.js +1 -3
- package/esm/plugin/components/tooltip-handler/interface/index.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.d.ts +9 -2
- package/esm/plugin/components/tooltip-handler/utils/attribute.js +31 -11
- package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/common.d.ts +1 -12
- package/esm/plugin/components/tooltip-handler/utils/common.js +3 -31
- package/esm/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/style.d.ts +18 -0
- package/esm/plugin/components/tooltip-handler/utils/style.js +80 -0
- package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -0
- package/esm/plugin/components/tooltip-handler/utils/svg.d.ts +2 -0
- package/esm/plugin/components/tooltip-handler/utils/svg.js +42 -0
- package/esm/plugin/components/tooltip-handler/utils/svg.js.map +1 -0
- package/esm/series/base/base-series.d.ts +22 -6
- package/esm/series/base/base-series.js +33 -23
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/interface/type.d.ts +4 -2
- package/esm/series/interface/type.js +4 -2
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/pictogram/constant.d.ts +2 -0
- package/esm/series/pictogram/constant.js +9 -0
- package/esm/series/pictogram/constant.js.map +1 -0
- package/esm/series/pictogram/interface.d.ts +15 -0
- package/esm/series/pictogram/interface.js.map +1 -0
- package/esm/series/pictogram/pictogram-transformer.d.ts +5 -0
- package/esm/series/pictogram/pictogram-transformer.js +19 -0
- package/esm/series/pictogram/pictogram-transformer.js.map +1 -0
- package/esm/series/pictogram/pictogram.d.ts +77 -0
- package/esm/series/pictogram/pictogram.js +329 -0
- package/esm/series/pictogram/pictogram.js.map +1 -0
- package/esm/series/pictogram/svg-source.d.ts +7 -0
- package/esm/series/pictogram/svg-source.js +35 -0
- package/esm/series/pictogram/svg-source.js.map +1 -0
- package/esm/series/pictogram/tooltip-helper.d.ts +9 -0
- package/esm/series/pictogram/tooltip-helper.js +18 -0
- package/esm/series/pictogram/tooltip-helper.js.map +1 -0
- package/esm/series/sankey/interface.d.ts +1 -0
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.js +4 -0
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/typings/spec/common.d.ts +1 -0
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/common.d.ts +3 -1
- package/esm/typings/tooltip/common.js.map +1 -1
- package/package.json +15 -15
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/canvas/index.d.ts +0 -1
- package/cjs/plugin/components/tooltip-handler/canvas/index.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/constant.d.ts +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/constant.js +0 -6
- package/cjs/plugin/components/tooltip-handler/dom/constant.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +0 -98
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/index.d.ts +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/index.js +0 -21
- package/cjs/plugin/components/tooltip-handler/dom/index.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/interface.d.ts +0 -58
- package/cjs/plugin/components/tooltip-handler/dom/interface.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +0 -25
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js +0 -73
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +0 -23
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +0 -126
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/content-model.d.ts +0 -14
- package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js +0 -54
- package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.d.ts +0 -10
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.d.ts +0 -23
- package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js +0 -69
- package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.d.ts +0 -7
- package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.js +0 -34
- package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/text-model.d.ts +0 -5
- package/cjs/plugin/components/tooltip-handler/dom/model/text-model.js +0 -21
- package/cjs/plugin/components/tooltip-handler/dom/model/text-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/title-model.d.ts +0 -15
- package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js +0 -66
- package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.d.ts +0 -21
- package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js +0 -79
- package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/utils/common.d.ts +0 -3
- package/cjs/plugin/components/tooltip-handler/dom/utils/common.js +0 -33
- package/cjs/plugin/components/tooltip-handler/dom/utils/common.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/utils/index.d.ts +0 -2
- package/cjs/plugin/components/tooltip-handler/dom/utils/index.js +0 -21
- package/cjs/plugin/components/tooltip-handler/dom/utils/index.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/dom/utils/style.d.ts +0 -4
- package/cjs/plugin/components/tooltip-handler/dom/utils/style.js +0 -91
- package/cjs/plugin/components/tooltip-handler/dom/utils/style.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/interface/common.d.ts +0 -4
- package/cjs/plugin/components/tooltip-handler/interface/common.js +0 -6
- package/cjs/plugin/components/tooltip-handler/interface/common.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/interface/style.d.ts +0 -13
- package/cjs/plugin/components/tooltip-handler/interface/style.js +0 -6
- package/cjs/plugin/components/tooltip-handler/interface/style.js.map +0 -1
- package/cjs/plugin/components/tooltip-handler/utils/index.d.ts +0 -3
- package/cjs/plugin/components/tooltip-handler/utils/index.js +0 -22
- package/cjs/plugin/components/tooltip-handler/utils/index.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/canvas/index.d.ts +0 -1
- package/esm/plugin/components/tooltip-handler/canvas/index.js +0 -2
- package/esm/plugin/components/tooltip-handler/canvas/index.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/constant.d.ts +0 -1
- package/esm/plugin/components/tooltip-handler/dom/constant.js +0 -2
- package/esm/plugin/components/tooltip-handler/dom/constant.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +0 -104
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/index.d.ts +0 -1
- package/esm/plugin/components/tooltip-handler/dom/index.js +0 -2
- package/esm/plugin/components/tooltip-handler/dom/index.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/interface.d.ts +0 -58
- package/esm/plugin/components/tooltip-handler/dom/interface.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +0 -25
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js +0 -67
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +0 -23
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +0 -130
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/content-model.d.ts +0 -14
- package/esm/plugin/components/tooltip-handler/dom/model/content-model.js +0 -52
- package/esm/plugin/components/tooltip-handler/dom/model/content-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/interface.d.ts +0 -10
- package/esm/plugin/components/tooltip-handler/dom/model/interface.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/shape-model.d.ts +0 -23
- package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js +0 -66
- package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/style-constants.d.ts +0 -7
- package/esm/plugin/components/tooltip-handler/dom/model/style-constants.js +0 -41
- package/esm/plugin/components/tooltip-handler/dom/model/style-constants.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/text-model.d.ts +0 -5
- package/esm/plugin/components/tooltip-handler/dom/model/text-model.js +0 -13
- package/esm/plugin/components/tooltip-handler/dom/model/text-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/title-model.d.ts +0 -15
- package/esm/plugin/components/tooltip-handler/dom/model/title-model.js +0 -65
- package/esm/plugin/components/tooltip-handler/dom/model/title-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.d.ts +0 -21
- package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js +0 -82
- package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/utils/common.d.ts +0 -3
- package/esm/plugin/components/tooltip-handler/dom/utils/common.js +0 -22
- package/esm/plugin/components/tooltip-handler/dom/utils/common.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/utils/index.d.ts +0 -2
- package/esm/plugin/components/tooltip-handler/dom/utils/index.js +0 -4
- package/esm/plugin/components/tooltip-handler/dom/utils/index.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/dom/utils/style.d.ts +0 -4
- package/esm/plugin/components/tooltip-handler/dom/utils/style.js +0 -87
- package/esm/plugin/components/tooltip-handler/dom/utils/style.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/interface/common.d.ts +0 -4
- package/esm/plugin/components/tooltip-handler/interface/common.js +0 -2
- package/esm/plugin/components/tooltip-handler/interface/common.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/interface/style.d.ts +0 -13
- package/esm/plugin/components/tooltip-handler/interface/style.js +0 -2
- package/esm/plugin/components/tooltip-handler/interface/style.js.map +0 -1
- package/esm/plugin/components/tooltip-handler/utils/index.d.ts +0 -3
- package/esm/plugin/components/tooltip-handler/utils/index.js +0 -6
- package/esm/plugin/components/tooltip-handler/utils/index.js.map +0 -1
- /package/cjs/{plugin/components/tooltip-handler/dom → chart/pictogram}/interface.js +0 -0
- /package/cjs/{plugin/components/tooltip-handler/dom/model → series/pictogram}/interface.js +0 -0
- /package/esm/{plugin/components/tooltip-handler/dom → chart/pictogram}/interface.js +0 -0
- /package/esm/{plugin/components/tooltip-handler/dom/model → series/pictogram}/interface.js +0 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { BaseTooltipHandler } from '
|
|
1
|
+
import { BaseTooltipHandler } from './base';
|
|
2
2
|
import { Tooltip as TooltipComponent } from '@visactor/vrender-components';
|
|
3
|
-
import type { TooltipHandlerParams } from '
|
|
4
|
-
import type { IComponentPluginService } from '
|
|
3
|
+
import type { TooltipHandlerParams } from '../../../component/tooltip';
|
|
4
|
+
import type { IComponentPluginService } from '../interface';
|
|
5
|
+
import type { ITooltipActual } from '../../../typings';
|
|
6
|
+
import type { IContainerSize } from '@visactor/vrender-components';
|
|
7
|
+
import type { ITooltipAttributes } from './interface';
|
|
5
8
|
export declare class CanvasTooltipHandler extends BaseTooltipHandler {
|
|
6
9
|
static readonly type: string;
|
|
7
10
|
readonly type: string;
|
|
@@ -9,10 +12,12 @@ export declare class CanvasTooltipHandler extends BaseTooltipHandler {
|
|
|
9
12
|
protected _el?: HTMLCanvasElement;
|
|
10
13
|
protected _tooltipCanvasId?: string;
|
|
11
14
|
protected _tooltipComponent: TooltipComponent;
|
|
15
|
+
protected _attributes?: ITooltipAttributes | null;
|
|
12
16
|
constructor();
|
|
13
17
|
onAdd(service: IComponentPluginService<any>): void;
|
|
14
18
|
private _initTooltipComponent;
|
|
15
19
|
private _getLayer;
|
|
20
|
+
protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined;
|
|
16
21
|
protected _removeTooltip(): void;
|
|
17
22
|
protected _updateTooltip(visible: boolean, params: TooltipHandlerParams): void;
|
|
18
23
|
isTooltipShown(): boolean;
|
|
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerCanvasTooltipHandler = exports.CanvasTooltipHandler = void 0;
|
|
6
6
|
|
|
7
|
-
const base_1 = require("
|
|
7
|
+
const base_1 = require("./base"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), register_1 = require("../register"), constant_1 = require("../../../component/tooltip/constant"), attribute_1 = require("./utils/attribute");
|
|
8
8
|
|
|
9
9
|
class CanvasTooltipHandler extends base_1.BaseTooltipHandler {
|
|
10
10
|
constructor() {
|
|
11
|
-
super(CanvasTooltipHandler.type), this.type = constant_1.TooltipHandlerType.canvas
|
|
11
|
+
super(CanvasTooltipHandler.type), this.type = constant_1.TooltipHandlerType.canvas,
|
|
12
|
+
this._attributes = null;
|
|
12
13
|
}
|
|
13
14
|
onAdd(service) {
|
|
14
15
|
var _a;
|
|
@@ -28,6 +29,18 @@ class CanvasTooltipHandler extends base_1.BaseTooltipHandler {
|
|
|
28
29
|
return layerCanvas && layerCanvas.style && (layerCanvas.style.touchAction = "none",
|
|
29
30
|
layerCanvas.style.pointerEvents = "none"), this._layer;
|
|
30
31
|
}
|
|
32
|
+
_getTooltipBoxSize(actualTooltip, changePositionOnly) {
|
|
33
|
+
var _a, _b, _c;
|
|
34
|
+
if (!changePositionOnly || (0, vutils_1.isNil)(this._attributes)) {
|
|
35
|
+
const chartTheme = null !== (_b = null === (_a = this._chartOption) || void 0 === _a ? void 0 : _a.getTheme()) && void 0 !== _b ? _b : {};
|
|
36
|
+
this._attributes = (0, attribute_1.getTooltipAttributes)(actualTooltip, this._component.getSpec(), chartTheme);
|
|
37
|
+
}
|
|
38
|
+
const {panel: panel} = null !== (_c = this._attributes) && void 0 !== _c ? _c : {};
|
|
39
|
+
return {
|
|
40
|
+
width: panel.width + panel.lineWidth,
|
|
41
|
+
height: panel.height + panel.lineWidth
|
|
42
|
+
};
|
|
43
|
+
}
|
|
31
44
|
_removeTooltip() {
|
|
32
45
|
this._layer && this._layer.removeAllChild(), this._attributes = null;
|
|
33
46
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/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 { BaseTooltipHandler } from './base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { isValid, isNil } from '@visactor/vutils';\nimport type { TooltipHandlerParams } from '../../../component/tooltip';\nimport type { IComponentPluginService } from '../interface';\nimport { registerComponentPlugin } from '../register';\nimport { TooltipHandlerType } from '../../../component/tooltip/constant';\nimport type { ITooltipActual } from '../../../typings';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport { getTooltipAttributes } from './utils/attribute';\nimport type { ITooltipAttributes } from './interface';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n static readonly type = TooltipHandlerType.canvas;\n readonly type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n protected _attributes?: ITooltipAttributes | null = null;\n\n constructor() {\n super(CanvasTooltipHandler.type);\n }\n\n onAdd(service: IComponentPluginService<any>): void {\n super.onAdd(service);\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 // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!changePositionOnly || isNil(this._attributes)) {\n const chartTheme = this._chartOption?.getTheme() ?? {};\n this._attributes = getTooltipAttributes(actualTooltip, this._component.getSpec(), chartTheme);\n }\n const { panel } = this._attributes ?? {};\n // canvas模式下, size需要考虑border size, 目的是为了精准判断边界是否超出画布,达到confine效果\n // html模式不提供confine, 所以不考虑精准计算size\n\n return {\n width: panel.width + panel.lineWidth,\n height: panel.height + panel.lineWidth\n };\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) {\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 { activeTooltipSpec } = params;\n const pos = activeTooltipSpec.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\nexport const registerCanvasTooltipHandler = () => {\n registerComponentPlugin(CanvasTooltipHandler);\n};\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const
|
|
1
|
+
import type { ITooltipHandlerOptions } from './interface';
|
|
2
|
+
export declare const TOOLTIP_PREFIX = "vchart-tooltip";
|
|
3
|
+
export declare const TOOLTIP_CONTAINER_EL_CLASS_NAME: string;
|
|
4
|
+
export declare const TOOLTIP_TITLE_CLASS_NAME: string;
|
|
5
|
+
export declare const TOOLTIP_CONTENT_BOX_CLASS_NAME: string;
|
|
3
6
|
export declare const TOOLTIP_EMPTY_STRING = "";
|
|
4
|
-
export declare const DEFAULT_OPTIONS:
|
|
5
|
-
|
|
6
|
-
offsetY: number;
|
|
7
|
-
sanitize: typeof escapeHTML;
|
|
8
|
-
};
|
|
9
|
-
export type Options = typeof DEFAULT_OPTIONS;
|
|
7
|
+
export declare const DEFAULT_OPTIONS: ITooltipHandlerOptions;
|
|
8
|
+
export declare const DEFAULT_TOOLTIP_Z_INDEX = "99999999999999";
|
|
@@ -2,14 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.DEFAULT_OPTIONS = exports.TOOLTIP_EMPTY_STRING = exports.TOOLTIP_CONTAINER_EL_CLASS_NAME = void 0
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.TOOLTIP_CONTAINER_EL_CLASS_NAME = "vchart-tooltip-container", exports.TOOLTIP_EMPTY_STRING = "",
|
|
10
|
-
exports.DEFAULT_OPTIONS = {
|
|
5
|
+
}), exports.DEFAULT_TOOLTIP_Z_INDEX = exports.DEFAULT_OPTIONS = exports.TOOLTIP_EMPTY_STRING = exports.TOOLTIP_CONTENT_BOX_CLASS_NAME = exports.TOOLTIP_TITLE_CLASS_NAME = exports.TOOLTIP_CONTAINER_EL_CLASS_NAME = exports.TOOLTIP_PREFIX = void 0,
|
|
6
|
+
exports.TOOLTIP_PREFIX = "vchart-tooltip", exports.TOOLTIP_CONTAINER_EL_CLASS_NAME = `${exports.TOOLTIP_PREFIX}-container`,
|
|
7
|
+
exports.TOOLTIP_TITLE_CLASS_NAME = `${exports.TOOLTIP_PREFIX}-title`, exports.TOOLTIP_CONTENT_BOX_CLASS_NAME = `${exports.TOOLTIP_PREFIX}-content-box`,
|
|
8
|
+
exports.TOOLTIP_EMPTY_STRING = "", exports.DEFAULT_OPTIONS = {
|
|
11
9
|
offsetX: 10,
|
|
12
|
-
offsetY: 10
|
|
13
|
-
|
|
14
|
-
};
|
|
10
|
+
offsetY: 10
|
|
11
|
+
}, exports.DEFAULT_TOOLTIP_Z_INDEX = "99999999999999";
|
|
15
12
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/tooltip-handler/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAClC,QAAA,+BAA+B,GAAG,GAAG,sBAAc,YAAY,CAAC;AAChE,QAAA,wBAAwB,GAAG,GAAG,sBAAc,QAAQ,CAAC;AACrD,QAAA,8BAA8B,GAAG,GAAG,sBAAc,cAAc,CAAC;AACjE,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAE1B,QAAA,eAAe,GAA2B;IAIrD,OAAO,EAAE,EAAE;IAKX,OAAO,EAAE,EAAE;CACZ,CAAC;AACW,QAAA,uBAAuB,GAAG,gBAAgB,CAAC","file":"constants.js","sourcesContent":["import type { ITooltipHandlerOptions } from './interface';\n\nexport const TOOLTIP_PREFIX = 'vchart-tooltip';\nexport const TOOLTIP_CONTAINER_EL_CLASS_NAME = `${TOOLTIP_PREFIX}-container`;\nexport const TOOLTIP_TITLE_CLASS_NAME = `${TOOLTIP_PREFIX}-title`;\nexport const TOOLTIP_CONTENT_BOX_CLASS_NAME = `${TOOLTIP_PREFIX}-content-box`;\nexport const TOOLTIP_EMPTY_STRING = '';\n\nexport const DEFAULT_OPTIONS: ITooltipHandlerOptions = {\n /**\n * X offset.\n */\n offsetX: 10,\n\n /**\n * Y offset.\n */\n offsetY: 10\n};\nexport const DEFAULT_TOOLTIP_Z_INDEX = '99999999999999';\n"]}
|
|
@@ -1,28 +1,39 @@
|
|
|
1
|
-
import type { ITooltipActual, ITooltipPositionActual } from '
|
|
2
|
-
import { BaseTooltipHandler } from '
|
|
3
|
-
import type { IDomTooltipStyle } from './interface';
|
|
4
|
-
import { TooltipModel } from './model/tooltip-model';
|
|
1
|
+
import type { ITooltipActual, ITooltipPositionActual } from '../../../typings/tooltip';
|
|
2
|
+
import { BaseTooltipHandler } from './base';
|
|
5
3
|
import { type Maybe } from '@visactor/vutils';
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
4
|
+
import type { IContainerSize } from '@visactor/vrender-components';
|
|
5
|
+
import type { ITooltipSpec, TooltipHandlerParams } from '../../../component/tooltip';
|
|
6
|
+
import type { IComponentPluginService } from '../interface';
|
|
7
|
+
import type { ILayoutPoint } from '../../../typings';
|
|
9
8
|
export declare class DomTooltipHandler extends BaseTooltipHandler {
|
|
10
9
|
static readonly type: string;
|
|
11
10
|
readonly type: string;
|
|
12
11
|
protected _tooltipContainer: HTMLElement;
|
|
13
|
-
protected _domStyle:
|
|
12
|
+
protected _domStyle: {
|
|
13
|
+
panelPadding?: number[];
|
|
14
|
+
panel: Partial<CSSStyleDeclaration>;
|
|
15
|
+
row: Partial<CSSStyleDeclaration>;
|
|
16
|
+
title: Partial<CSSStyleDeclaration>;
|
|
17
|
+
shape: Partial<CSSStyleDeclaration>;
|
|
18
|
+
key: Partial<CSSStyleDeclaration>;
|
|
19
|
+
value: Partial<CSSStyleDeclaration>;
|
|
20
|
+
};
|
|
21
|
+
protected _rootDom?: HTMLElement;
|
|
14
22
|
protected _tooltipActual?: ITooltipActual;
|
|
15
23
|
protected _container: Maybe<HTMLDivElement>;
|
|
24
|
+
protected _domString?: string;
|
|
16
25
|
protected _cacheCustomTooltipPosition: ILayoutPoint;
|
|
17
|
-
protected model: TooltipModel;
|
|
18
26
|
getVisibility(): boolean;
|
|
19
27
|
setVisibility(_value: boolean): void;
|
|
20
28
|
constructor();
|
|
21
29
|
onAdd(service: IComponentPluginService<any>): void;
|
|
22
30
|
initEl(): void;
|
|
31
|
+
protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined;
|
|
23
32
|
protected _removeTooltip(): void;
|
|
24
33
|
protected _updateTooltip(visible: boolean, params: TooltipHandlerParams): void;
|
|
25
34
|
protected _initStyle(): void;
|
|
35
|
+
protected _updateDomStringByCol(actualTooltip?: ITooltipActual): void;
|
|
36
|
+
protected _updateDomStyle(sizeKey?: 'width' | 'height'): void;
|
|
26
37
|
protected _getParentElement(spec: ITooltipSpec): HTMLElement;
|
|
27
38
|
isTooltipShown(): boolean;
|
|
28
39
|
reInit(): void;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.registerDomTooltipHandler = exports.DomTooltipHandler = void 0;
|
|
6
|
+
|
|
7
|
+
const base_1 = require("./base"), style_1 = require("./utils/style"), constants_1 = require("./constants"), vutils_1 = require("@visactor/vutils"), env_1 = require("../../../util/env"), register_1 = require("../register"), constant_1 = require("../../../component/tooltip/constant"), svg_1 = require("./utils/svg"), common_1 = require("./utils/common"), token_1 = require("../../../theme/token"), space_1 = require("../../../util/space");
|
|
8
|
+
|
|
9
|
+
class DomTooltipHandler extends base_1.BaseTooltipHandler {
|
|
10
|
+
getVisibility() {
|
|
11
|
+
return !!this._rootDom && "visible" === this._rootDom.style.visibility;
|
|
12
|
+
}
|
|
13
|
+
setVisibility(_value) {
|
|
14
|
+
_value !== this.getVisibility() && this._rootDom && (this._rootDom.style.visibility = _value ? "visible" : "hidden");
|
|
15
|
+
}
|
|
16
|
+
constructor() {
|
|
17
|
+
super(DomTooltipHandler.type), this.type = constant_1.TooltipHandlerType.dom, this._tooltipContainer = null === env_1.domDocument || void 0 === env_1.domDocument ? void 0 : env_1.domDocument.body;
|
|
18
|
+
}
|
|
19
|
+
onAdd(service) {
|
|
20
|
+
super.onAdd(service), this._initStyle(), this.initEl();
|
|
21
|
+
}
|
|
22
|
+
initEl() {
|
|
23
|
+
var _a, _b, _c, _d;
|
|
24
|
+
const parentElement = this._component.getSpec().parentElement;
|
|
25
|
+
if (env_1.domDocument && parentElement && parentElement.children && parentElement.children.length) {
|
|
26
|
+
for (let i = 0; i < parentElement.children.length; i++) if (parentElement.children[i].classList.contains(constants_1.TOOLTIP_CONTAINER_EL_CLASS_NAME)) {
|
|
27
|
+
this._container = parentElement.children[i];
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
this._container || (this._container = env_1.domDocument.createElement("div"), this._container.style.position = "relative",
|
|
31
|
+
this._container.style.zIndex = constants_1.DEFAULT_TOOLTIP_Z_INDEX, this._container.classList.add(constants_1.TOOLTIP_CONTAINER_EL_CLASS_NAME),
|
|
32
|
+
parentElement.appendChild(this._container));
|
|
33
|
+
const tooltipElement = document.createElement("div"), globalTheme = null !== (_b = null === (_a = this._chartOption) || void 0 === _a ? void 0 : _a.getTheme()) && void 0 !== _b ? _b : {};
|
|
34
|
+
(0, style_1.setStyleToDom)(tooltipElement, Object.assign({
|
|
35
|
+
left: "0",
|
|
36
|
+
top: "0",
|
|
37
|
+
pointerEvents: "none",
|
|
38
|
+
padding: "12px",
|
|
39
|
+
position: "absolute",
|
|
40
|
+
zIndex: constants_1.DEFAULT_TOOLTIP_Z_INDEX,
|
|
41
|
+
fontFamily: null !== (_c = null == globalTheme ? void 0 : globalTheme.fontFamily) && void 0 !== _c ? _c : token_1.token.fontFamily,
|
|
42
|
+
fontSize: "11px",
|
|
43
|
+
borderRadius: "3px",
|
|
44
|
+
borderStyle: "solid",
|
|
45
|
+
lineHeight: "initial",
|
|
46
|
+
background: "#fff",
|
|
47
|
+
boxShadow: "2px 2px 4px rgba(0, 0, 0, 0.1)",
|
|
48
|
+
maxWidth: "100wh",
|
|
49
|
+
maxHeight: "100vh"
|
|
50
|
+
}, null === (_d = this._domStyle) || void 0 === _d ? void 0 : _d.panel)), this._container.appendChild(tooltipElement),
|
|
51
|
+
this._rootDom = tooltipElement;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
_getTooltipBoxSize(actualTooltip, changePositionOnly) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
changePositionOnly && !(0, vutils_1.isNil)(this._domString) || this._updateDomStringByCol(actualTooltip),
|
|
57
|
+
this._rootDom.innerHTML = null !== (_a = this._domString) && void 0 !== _a ? _a : "",
|
|
58
|
+
this._updateDomStyle("height");
|
|
59
|
+
const rect = null === (_b = this._rootDom) || void 0 === _b ? void 0 : _b.getBoundingClientRect();
|
|
60
|
+
return {
|
|
61
|
+
width: null == rect ? void 0 : rect.width,
|
|
62
|
+
height: null == rect ? void 0 : rect.height
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
_removeTooltip() {
|
|
66
|
+
this._rootDom && this._rootDom.parentNode && (this._rootDom.parentNode.removeChild(this._rootDom),
|
|
67
|
+
this._rootDom = null), this._container = null;
|
|
68
|
+
}
|
|
69
|
+
_updateTooltip(visible, params) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
if (visible && this._rootDom) {
|
|
72
|
+
const {tooltipSpec: tooltipSpec, activeTooltipSpec: activeTooltipSpec} = params;
|
|
73
|
+
params.changePositionOnly || (this._tooltipActual = activeTooltipSpec), this.setVisibility(visible);
|
|
74
|
+
const el = this._rootDom;
|
|
75
|
+
if (el) {
|
|
76
|
+
const {x: x = 0, y: y = 0} = null !== (_a = activeTooltipSpec.position) && void 0 !== _a ? _a : {};
|
|
77
|
+
if (tooltipSpec.updateElement) {
|
|
78
|
+
this._updatePosition(null !== (_b = this._cacheCustomTooltipPosition) && void 0 !== _b ? _b : {
|
|
79
|
+
x: x,
|
|
80
|
+
y: y
|
|
81
|
+
}), tooltipSpec.updateElement(el, activeTooltipSpec, params);
|
|
82
|
+
const position = this._getActualTooltipPosition(activeTooltipSpec, params, {
|
|
83
|
+
width: el.offsetWidth,
|
|
84
|
+
height: el.offsetHeight
|
|
85
|
+
});
|
|
86
|
+
this._updatePosition(position), this._cacheCustomTooltipPosition = position;
|
|
87
|
+
} else this._updatePosition({
|
|
88
|
+
x: x,
|
|
89
|
+
y: y
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
} else this.setVisibility(visible), this._cacheCustomTooltipPosition = void 0;
|
|
93
|
+
}
|
|
94
|
+
_initStyle() {
|
|
95
|
+
const tooltipSpec = this._component.getSpec();
|
|
96
|
+
this._domStyle = (0, style_1.getDomStyle)(tooltipSpec);
|
|
97
|
+
}
|
|
98
|
+
_updateDomStringByCol(actualTooltip) {
|
|
99
|
+
var _a;
|
|
100
|
+
let domString = "";
|
|
101
|
+
const {title: title = {}, content: content} = actualTooltip, hasContent = content && content.length, rowStyle = this._domStyle.row;
|
|
102
|
+
if (!1 !== title.visible && (domString += `<h2 class="${constants_1.TOOLTIP_TITLE_CLASS_NAME}" style="${(0,
|
|
103
|
+
style_1.cssToStyleString)(Object.assign(Object.assign(Object.assign({}, this._domStyle.title), hasContent ? rowStyle : {
|
|
104
|
+
marginBottom: "0px"
|
|
105
|
+
}), {
|
|
106
|
+
marginTop: "0px"
|
|
107
|
+
}))}"><span>${null !== (_a = title.value) && void 0 !== _a ? _a : ""}</span></h2>`),
|
|
108
|
+
hasContent) {
|
|
109
|
+
let shapeItems = "", keyItems = "", valueItems = "";
|
|
110
|
+
content.forEach(((entry, index) => {
|
|
111
|
+
const styleByRow = index === content.length - 1 ? null : rowStyle;
|
|
112
|
+
shapeItems += `<div class="${constants_1.TOOLTIP_PREFIX}-shape" style="${(0, style_1.cssToStyleString)(styleByRow)}">${(0,
|
|
113
|
+
svg_1.getSvgHtml)(entry)}</div>`, keyItems += `<div class="${constants_1.TOOLTIP_PREFIX}-key" style="${(0,
|
|
114
|
+
style_1.cssToStyleString)(Object.assign(Object.assign({}, styleByRow), entry.keyStyle ? (0,
|
|
115
|
+
style_1.getTextStyle)(entry.keyStyle) : null))}">${(0, common_1.formatContent)(entry.key)}</div>`,
|
|
116
|
+
valueItems += `<div class="${constants_1.TOOLTIP_PREFIX}-value" style="${(0, style_1.cssToStyleString)(Object.assign(Object.assign({}, styleByRow), entry.valueStyle ? (0,
|
|
117
|
+
style_1.getTextStyle)(entry.valueStyle) : null))}">${(0, common_1.formatContent)(entry.value)}</div>`;
|
|
118
|
+
})), domString += `<div class="${constants_1.TOOLTIP_CONTENT_BOX_CLASS_NAME}">\n <div class="${constants_1.TOOLTIP_PREFIX}-shape-column" style="${(0,
|
|
119
|
+
style_1.cssToStyleString)(Object.assign(Object.assign({}, this._domStyle.shape), {
|
|
120
|
+
display: "inline-block",
|
|
121
|
+
verticalAlign: "top"
|
|
122
|
+
}))}">\n ${shapeItems}\n </div>\n <div class="${constants_1.TOOLTIP_PREFIX}-key-column" style="${(0,
|
|
123
|
+
style_1.cssToStyleString)(Object.assign(Object.assign({}, this._domStyle.key), {
|
|
124
|
+
display: "inline-block",
|
|
125
|
+
verticalAlign: "top"
|
|
126
|
+
}))}">\n ${keyItems}\n </div>\n <div class="${constants_1.TOOLTIP_PREFIX}-value-column" style="${(0,
|
|
127
|
+
style_1.cssToStyleString)(Object.assign(Object.assign({}, this._domStyle.value), {
|
|
128
|
+
display: "inline-block",
|
|
129
|
+
verticalAlign: "top"
|
|
130
|
+
}))}">\n ${valueItems}\n </div>\n </div>`;
|
|
131
|
+
}
|
|
132
|
+
this._domString = domString;
|
|
133
|
+
}
|
|
134
|
+
_updateDomStyle(sizeKey = "width") {
|
|
135
|
+
var _a, _b, _c, _d;
|
|
136
|
+
const rootDom = this._rootDom;
|
|
137
|
+
if (rootDom) {
|
|
138
|
+
const contentDom = rootDom.children[rootDom.children.length - 1];
|
|
139
|
+
if (contentDom.className.includes(constants_1.TOOLTIP_CONTENT_BOX_CLASS_NAME)) {
|
|
140
|
+
const tooltipSpec = this._component.getSpec(), contentStyle = {};
|
|
141
|
+
if ((0, vutils_1.isValid)(null === (_a = null == tooltipSpec ? void 0 : tooltipSpec.style) || void 0 === _a ? void 0 : _a.maxContentHeight)) {
|
|
142
|
+
const titleDom = rootDom.children[0], titleHeight = titleDom && titleDom.className.includes(constants_1.TOOLTIP_TITLE_CLASS_NAME) ? titleDom.getBoundingClientRect().height + (null !== (_b = tooltipSpec.style.spaceRow) && void 0 !== _b ? _b : 0) : 0, viewRect = this._chartOption.getChartViewRect(), maxHeight = (0,
|
|
143
|
+
space_1.calcLayoutNumber)(tooltipSpec.style.maxContentHeight, Math.min(viewRect.height, document.body.clientHeight) - titleHeight - (this._domStyle.panelPadding ? this._domStyle.panelPadding[0] + this._domStyle.panelPadding[1] : 0));
|
|
144
|
+
maxHeight > 0 && (contentStyle.maxHeight = `${maxHeight}px`, contentStyle.overflowY = "auto",
|
|
145
|
+
contentStyle.width = `calc(100% + ${this._domStyle.panelPadding ? this._domStyle.panelPadding[1] + "px" : "10px"})`,
|
|
146
|
+
(0, style_1.setStyleToDom)(contentDom, contentStyle));
|
|
147
|
+
}
|
|
148
|
+
const rows = contentDom.children, widthByCol = [];
|
|
149
|
+
if (rows) {
|
|
150
|
+
for (let i = 0; i < rows.length; i++) {
|
|
151
|
+
const cols = null !== (_c = rows[i].children) && void 0 !== _c ? _c : [];
|
|
152
|
+
for (let j = 0; j < cols.length; j++) {
|
|
153
|
+
const width = cols[j].getBoundingClientRect()[sizeKey];
|
|
154
|
+
(void 0 === widthByCol[j] || widthByCol[j] < width) && (widthByCol[j] = width);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
for (let i = 0; i < rows.length; i++) {
|
|
158
|
+
const cols = null !== (_d = rows[i].children) && void 0 !== _d ? _d : [];
|
|
159
|
+
for (let j = 0; j < cols.length; j++) cols[j].style[sizeKey] = `${widthByCol[j]}px`;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
_getParentElement(spec) {
|
|
166
|
+
var _a;
|
|
167
|
+
return null !== (_a = this._container) && void 0 !== _a ? _a : super._getParentElement(spec);
|
|
168
|
+
}
|
|
169
|
+
isTooltipShown() {
|
|
170
|
+
return this.getVisibility();
|
|
171
|
+
}
|
|
172
|
+
reInit() {
|
|
173
|
+
super.reInit(), this._initStyle();
|
|
174
|
+
}
|
|
175
|
+
_updatePosition({x: x, y: y}) {
|
|
176
|
+
this._rootDom && (this._rootDom.style.transform = `translate3d(${x}px, ${y}px, 0)`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
exports.DomTooltipHandler = DomTooltipHandler, DomTooltipHandler.type = constant_1.TooltipHandlerType.dom;
|
|
181
|
+
|
|
182
|
+
const registerDomTooltipHandler = () => {
|
|
183
|
+
(0, register_1.registerComponentPlugin)(DomTooltipHandler);
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
exports.registerDomTooltipHandler = registerDomTooltipHandler;
|
|
187
|
+
//# sourceMappingURL=dom-tooltip-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { ITooltipActual, ITooltipPositionActual } from '../../../typings/tooltip';\nimport { BaseTooltipHandler } from './base';\nimport { cssToStyleString, getDomStyle, getTextStyle, setStyleToDom } from './utils/style';\nimport {\n TOOLTIP_CONTAINER_EL_CLASS_NAME,\n DEFAULT_TOOLTIP_Z_INDEX,\n TOOLTIP_PREFIX,\n TOOLTIP_CONTENT_BOX_CLASS_NAME,\n TOOLTIP_TITLE_CLASS_NAME\n} from './constants';\nimport { type Maybe, isNil, isValid } from '@visactor/vutils';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport { domDocument } from '../../../util/env';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../../component/tooltip';\nimport type { IComponentPluginService } from '../interface';\nimport { registerComponentPlugin } from '../register';\nimport type { ILayoutPoint } from '../../../typings';\nimport { TooltipHandlerType } from '../../../component/tooltip/constant';\nimport { getSvgHtml } from './utils/svg';\nimport { formatContent } from './utils/common';\nimport { token } from '../../../theme/token';\nimport { calcLayoutNumber } from '../../../util/space';\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n static readonly type = TooltipHandlerType.dom;\n readonly type = TooltipHandlerType.dom;\n\n protected _tooltipContainer = domDocument?.body;\n protected _domStyle: {\n panelPadding?: number[];\n panel: Partial<CSSStyleDeclaration>;\n row: Partial<CSSStyleDeclaration>;\n title: Partial<CSSStyleDeclaration>;\n shape: Partial<CSSStyleDeclaration>;\n key: Partial<CSSStyleDeclaration>;\n value: Partial<CSSStyleDeclaration>;\n };\n protected _rootDom?: HTMLElement;\n protected _tooltipActual?: ITooltipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n protected _domString?: string;\n\n /** 自定义 tooltip 的位置缓存 */\n protected _cacheCustomTooltipPosition: ILayoutPoint;\n\n getVisibility() {\n return this._rootDom ? this._rootDom.style.visibility === 'visible' : false;\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility() && this._rootDom) {\n this._rootDom.style.visibility = _value ? 'visible' : 'hidden';\n }\n }\n\n constructor() {\n super(DomTooltipHandler.type);\n }\n\n onAdd(service: IComponentPluginService<any>): void {\n super.onAdd(service);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const parentElement = tooltipSpec.parentElement as HTMLElement | HTMLCanvasElement;\n if (domDocument && parentElement && parentElement.children && parentElement.children.length) {\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.style.zIndex = DEFAULT_TOOLTIP_Z_INDEX;\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n const tooltipElement = document.createElement('div');\n const globalTheme = this._chartOption?.getTheme() ?? {};\n\n setStyleToDom(tooltipElement, {\n left: '0',\n top: '0',\n pointerEvents: 'none',\n padding: '12px',\n position: 'absolute',\n zIndex: DEFAULT_TOOLTIP_Z_INDEX,\n fontFamily: (globalTheme?.fontFamily ?? token.fontFamily) as string,\n fontSize: '11px',\n borderRadius: '3px',\n borderStyle: 'solid',\n lineHeight: 'initial',\n background: '#fff',\n boxShadow: '2px 2px 4px rgba(0, 0, 0, 0.1)',\n maxWidth: '100wh',\n maxHeight: '100vh',\n ...this._domStyle?.panel\n } as CSSStyleDeclaration);\n\n this._container.appendChild(tooltipElement);\n this._rootDom = tooltipElement;\n }\n }\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!changePositionOnly || isNil(this._domString)) {\n this._updateDomStringByCol(actualTooltip);\n }\n this._rootDom.innerHTML = this._domString ?? '';\n\n this._updateDomStyle('height');\n\n const rect = this._rootDom?.getBoundingClientRect();\n\n return {\n width: rect?.width,\n height: rect?.height\n };\n }\n\n protected _removeTooltip() {\n if (this._rootDom && this._rootDom.parentNode) {\n this._rootDom.parentNode.removeChild(this._rootDom);\n this._rootDom = null;\n }\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams) {\n if (!visible || !this._rootDom) {\n this.setVisibility(visible);\n this._cacheCustomTooltipPosition = undefined;\n } else {\n const { tooltipSpec, activeTooltipSpec } = params;\n\n if (!params.changePositionOnly) {\n this._tooltipActual = activeTooltipSpec;\n }\n this.setVisibility(visible);\n\n // 位置\n const el = this._rootDom;\n if (el) {\n const { x = 0, y = 0 } = activeTooltipSpec.position ?? {};\n if (tooltipSpec.updateElement) {\n // 此处先设定一次位置,防止页面暂时出现滚动条(优先设置上次的位置)\n this._updatePosition(this._cacheCustomTooltipPosition ?? { x, y });\n // 更新 tooltip dom\n tooltipSpec.updateElement(el, activeTooltipSpec, params);\n // 重新计算 tooltip 位置\n const position = this._getActualTooltipPosition(activeTooltipSpec, params, {\n width: el.offsetWidth,\n height: el.offsetHeight\n });\n // 更新位置\n this._updatePosition(position);\n // 更新缓存\n this._cacheCustomTooltipPosition = position;\n } else {\n this._updatePosition({ x, y });\n }\n }\n }\n }\n\n protected _initStyle() {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n\n this._domStyle = getDomStyle(tooltipSpec);\n }\n\n protected _updateDomStringByCol(actualTooltip?: ITooltipActual) {\n let domString = '';\n const { title = {}, content } = actualTooltip;\n const hasContent = content && content.length;\n const rowStyle = this._domStyle.row;\n\n if (title.visible !== false) {\n domString += `<h2 class=\"${TOOLTIP_TITLE_CLASS_NAME}\" style=\"${cssToStyleString({\n ...this._domStyle.title,\n ...(hasContent ? rowStyle : { marginBottom: '0px' }),\n marginTop: '0px'\n })}\"><span>${title.value ?? ''}</span></h2>`;\n }\n if (hasContent) {\n let shapeItems = '';\n let keyItems = '';\n let valueItems = '';\n content.forEach((entry, index) => {\n const styleByRow = index === content.length - 1 ? null : rowStyle;\n\n shapeItems += `<div class=\"${TOOLTIP_PREFIX}-shape\" style=\"${cssToStyleString(styleByRow)}\">${getSvgHtml(\n entry\n )}</div>`;\n\n keyItems += `<div class=\"${TOOLTIP_PREFIX}-key\" style=\"${cssToStyleString({\n ...styleByRow,\n ...(entry.keyStyle ? getTextStyle(entry.keyStyle) : null)\n })}\">${formatContent(entry.key)}</div>`;\n\n valueItems += `<div class=\"${TOOLTIP_PREFIX}-value\" style=\"${cssToStyleString({\n ...styleByRow,\n ...(entry.valueStyle ? getTextStyle(entry.valueStyle) : null)\n })}\">${formatContent(entry.value)}</div>`;\n });\n\n domString += `<div class=\"${TOOLTIP_CONTENT_BOX_CLASS_NAME}\">\n <div class=\"${TOOLTIP_PREFIX}-shape-column\" style=\"${cssToStyleString({\n ...this._domStyle.shape,\n display: 'inline-block',\n verticalAlign: 'top'\n })}\">\n ${shapeItems}\n </div>\n <div class=\"${TOOLTIP_PREFIX}-key-column\" style=\"${cssToStyleString({\n ...this._domStyle.key,\n display: 'inline-block',\n verticalAlign: 'top'\n })}\">\n ${keyItems}\n </div>\n <div class=\"${TOOLTIP_PREFIX}-value-column\" style=\"${cssToStyleString({\n ...this._domStyle.value,\n display: 'inline-block',\n verticalAlign: 'top'\n })}\">\n ${valueItems}\n </div>\n </div>`;\n }\n\n this._domString = domString;\n }\n protected _updateDomStyle(sizeKey: 'width' | 'height' = 'width') {\n const rootDom = this._rootDom;\n\n if (rootDom) {\n const contentDom = rootDom.children[rootDom.children.length - 1];\n\n if (contentDom.className.includes(TOOLTIP_CONTENT_BOX_CLASS_NAME)) {\n const tooltipSpec = this._component.getSpec() as ITooltipSpec;\n const contentStyle: Partial<CSSStyleDeclaration> = {};\n\n if (isValid(tooltipSpec?.style?.maxContentHeight)) {\n const titleDom = rootDom.children[0];\n const titleHeight =\n titleDom && titleDom.className.includes(TOOLTIP_TITLE_CLASS_NAME)\n ? titleDom.getBoundingClientRect().height + (tooltipSpec.style.spaceRow ?? 0)\n : 0;\n const viewRect = (this._chartOption as any).getChartViewRect();\n const maxHeight = calcLayoutNumber(\n tooltipSpec.style.maxContentHeight,\n Math.min(viewRect.height, document.body.clientHeight) -\n titleHeight -\n (this._domStyle.panelPadding ? this._domStyle.panelPadding[0] + this._domStyle.panelPadding[1] : 0)\n );\n\n if (maxHeight > 0) {\n contentStyle.maxHeight = `${maxHeight}px`;\n contentStyle.overflowY = 'auto';\n // todo 让内容宽度往外阔一点,给滚动条留出位置\n contentStyle.width = `calc(100% + ${\n this._domStyle.panelPadding ? this._domStyle.panelPadding[1] + 'px' : '10px'\n })`;\n\n setStyleToDom(contentDom as HTMLElement, contentStyle);\n }\n }\n\n const rows = contentDom.children;\n const widthByCol: number[] = [];\n if (rows) {\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n const width = cols[j].getBoundingClientRect()[sizeKey];\n if (widthByCol[j] === undefined || widthByCol[j] < width) {\n widthByCol[j] = width;\n }\n }\n }\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const cols = row.children ?? ([] as HTMLElement[]);\n\n for (let j = 0; j < cols.length; j++) {\n (cols[j] as HTMLElement).style[sizeKey] = `${widthByCol[j]}px`;\n }\n }\n }\n }\n }\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 protected _updatePosition({ x, y }: ITooltipPositionActual) {\n if (this._rootDom) {\n // translate3d 性能较好:https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n this._rootDom.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n}\n\nexport const registerDomTooltipHandler = () => {\n registerComponentPlugin(DomTooltipHandler);\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './dom';
|
|
2
|
-
export * from './canvas';
|
|
1
|
+
export * from './dom-tooltip-handler';
|
|
2
|
+
export * from './canvas-tooltip-handler';
|
|
@@ -17,5 +17,5 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
|
-
}), __exportStar(require("./dom"), exports), __exportStar(require("./canvas"), exports);
|
|
20
|
+
}), __exportStar(require("./dom-tooltip-handler"), exports), __exportStar(require("./canvas-tooltip-handler"), exports);
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/tooltip-handler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC","file":"index.js","sourcesContent":["export * from './dom-tooltip-handler';\nexport * from './canvas-tooltip-handler';\n"]}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { TooltipAttributes } from '@visactor/vrender-components';
|
|
2
|
+
import type { ITextAttribute, IFillStyle } from '@visactor/vrender-core';
|
|
3
|
+
export interface ITooltipTextStyle extends Partial<ITextAttribute & IFillStyle> {
|
|
4
|
+
spacing?: number;
|
|
5
|
+
multiLine?: boolean;
|
|
6
|
+
maxWidth?: number;
|
|
7
|
+
autoWidth?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ITooltipAttributes extends TooltipAttributes {
|
|
10
|
+
align?: 'left' | 'right';
|
|
11
|
+
}
|
|
12
|
+
export interface ITooltipHandlerOptions {
|
|
13
|
+
offsetX?: number;
|
|
14
|
+
offsetY?: number;
|
|
15
|
+
}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
-
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
3
|
Object.defineProperty(exports, "__esModule", {
|
|
19
4
|
value: !0
|
|
20
|
-
})
|
|
5
|
+
});
|
|
21
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/tooltip-handler/interface/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/interface/index.ts"],"names":[],"mappings":"","file":"index.js","sourcesContent":["import type { TooltipAttributes } from '@visactor/vrender-components';\nimport type { ITextAttribute, IFillStyle } 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 autoWidth?: boolean;\n}\n\nexport interface ITooltipAttributes extends TooltipAttributes {\n /**\n * @since 1.11.5\n *\n * shape、key、value的对齐方式,可选项如下:\n * 'left': 从左到右对齐\n * 'right': 从右到左对齐\n */\n align?: 'left' | 'right';\n}\n\nexport interface ITooltipHandlerOptions {\n offsetX?: number;\n offsetY?: number;\n}\n"]}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type { TooltipPanelAttrs } from '@visactor/vrender-components';
|
|
2
|
-
import type { ITooltipActual } from '../../../../typings';
|
|
1
|
+
import type { TooltipPanelAttrs, TooltipRichTextAttrs } from '@visactor/vrender-components';
|
|
2
|
+
import type { ITooltipActual, MaybeArray } from '../../../../typings';
|
|
3
3
|
import type { ITooltipAttributes, ITooltipTextStyle } from '../interface';
|
|
4
4
|
import type { ITheme } from '../../../../theme';
|
|
5
5
|
import type { ITooltipSpec, ITooltipTextTheme, ITooltipTheme } from '../../../../component/tooltip';
|
|
6
|
+
interface ITooltipTextInfo {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
text: MaybeArray<number> | MaybeArray<string> | TooltipRichTextAttrs;
|
|
10
|
+
}
|
|
11
|
+
export declare const measureTooltipText: (text: string | TooltipRichTextAttrs, style: ITooltipTextStyle) => ITooltipTextInfo;
|
|
6
12
|
export declare function getTextAttributes(style?: ITooltipTextTheme, globalTheme?: ITheme, defaultAttributes?: Partial<ITooltipTextStyle>): ITooltipTextStyle;
|
|
7
13
|
export declare const getPanelAttributes: (style: ITooltipTheme['panel']) => TooltipPanelAttrs;
|
|
8
14
|
export declare const getTooltipAttributes: (actualTooltip: ITooltipActual, spec: ITooltipSpec, globalTheme: ITheme) => ITooltipAttributes;
|
|
15
|
+
export {};
|