@visactor/vchart
Version:
charts lib based @visactor/VGrammar
44 lines (38 loc) • 1.72 kB
JavaScript
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