UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

43 lines (35 loc) 2.6 kB
import { vglobal } from "@visactor/vrender-core"; import { domDocument, isMiniAppLikeMode, isString, isTrueBrowser, isValid } from "../../util"; import { BaseComponentSpecTransformer } from "../base"; import { TOOLTIP_EL_CLASS_NAME } from "./constant"; import { getTooltipActualActiveType } from "./utils/common"; import { mergeSpec } from "@visactor/vutils-extension"; const TOOLTIP_STYLE_THEME_KEYS = [ "panel", "shape", "titleLabel", "keyLabel", "valueLabel", "spaceRow", "maxContentHeight", "align" ]; export class TooltipSpecTransformer extends BaseComponentSpecTransformer { _shouldMergeThemeToSpec() { return !1; } _initTheme(spec, chartSpec) { const {spec: newSpec, theme: theme} = super._initTheme(spec, chartSpec), themeStyle = mergeSpec({}, ...TOOLTIP_STYLE_THEME_KEYS.map((key => void 0 !== (null == theme ? void 0 : theme[key]) ? { [key]: theme[key] } : void 0)), null == theme ? void 0 : theme.style), themeSpec = mergeSpec({}, theme); TOOLTIP_STYLE_THEME_KEYS.forEach((key => { delete themeSpec[key]; })), delete themeSpec.style; const mergedSpec = mergeSpec({}, themeSpec, newSpec); return mergedSpec.style = mergeSpec({}, themeStyle, mergedSpec.style), { spec: mergedSpec, theme: theme }; } _transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) { var _a, _b, _c, _d, _e, _f, _g; super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo), spec.visible = null === (_a = spec.visible) || void 0 === _a || _a, spec.activeType = getTooltipActualActiveType(spec), spec.renderMode = null !== (_b = spec.renderMode) && void 0 !== _b ? _b : isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode) ? "canvas" : "html", spec.trigger = null !== (_c = spec.trigger) && void 0 !== _c ? _c : "hover", spec.className = null !== (_d = spec.className) && void 0 !== _d ? _d : TOOLTIP_EL_CLASS_NAME, spec.enterable = null !== (_e = spec.enterable) && void 0 !== _e && _e, spec.transitionDuration = null !== (_f = spec.transitionDuration) && void 0 !== _f ? _f : 150, spec.confine = null !== (_g = spec.confine) && void 0 !== _g ? _g : "canvas" === spec.renderMode, isValid(spec.parentElement) ? isString(spec.parentElement) && (spec.parentElement = vglobal.getElementById(spec.parentElement)) : isTrueBrowser(this._option.mode) && (spec.parentElement = null == domDocument ? void 0 : domDocument.body); } } //# sourceMappingURL=tooltip-transformer.js.map