UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

44 lines (38 loc) 1.72 kB
import { mergeSpec } from "@visactor/vutils-extension"; import { RenderModeEnum } from "../typings/spec/common"; import { isMiniAppLikeMode, isMobileLikeMode } from "../util"; import { isBoolean, isObject } from "@visactor/vutils"; export function getDefaultInteractionConfigByMode(mode) { return mode === RenderModeEnum["desktop-browser"] || mode === RenderModeEnum["desktop-miniApp"] ? { hover: { enable: !0, trigger: "pointermove", triggerOff: "view:pointerleave" }, select: { enable: !0, trigger: "pointertap" } } : isMobileLikeMode(mode) || isMiniAppLikeMode(mode) ? { hover: { enable: !0, trigger: [ "pointerdown", "pointermove" ], triggerOff: "view:pointerleave" }, select: { enable: !0, trigger: "tap" } } : null; } export const parseHoverSelect = (mode, hoverSpec, selectSpec) => { const defaultConfig = getDefaultInteractionConfigByMode(mode); let finalHoverSpec = Object.assign({}, null == defaultConfig ? void 0 : defaultConfig.hover), finalSelectSpec = Object.assign({}, null == defaultConfig ? void 0 : defaultConfig.select); return isBoolean(hoverSpec) ? finalHoverSpec.enable = hoverSpec : isObject(hoverSpec) && (finalHoverSpec.enable = !0, finalHoverSpec = mergeSpec(finalHoverSpec, hoverSpec)), isBoolean(selectSpec) ? finalSelectSpec.enable = selectSpec : isObject(selectSpec) && (finalSelectSpec.enable = !0, finalSelectSpec = mergeSpec(finalSelectSpec, selectSpec)), { select: finalSelectSpec, hover: finalHoverSpec }; }; //# sourceMappingURL=config.js.map