@antv/g2
Version:
the Grammar of Graphics in Javascript
40 lines • 1.46 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaybeTooltip = void 0;
const util_1 = require("@antv/util");
const helper_1 = require("../utils/helper");
/**
* Infer tooltip channel from specified channel.
*/
const MaybeTooltip = (options) => {
const { channel } = options;
return (I, mark) => {
const { encode, tooltip } = mark;
if ((0, helper_1.isUnset)(tooltip))
return [I, mark];
const { items = [] } = tooltip;
if (!items || items.length > 0)
return [I, mark];
const channels = Array.isArray(channel) ? channel : [channel];
const newItems = channels.flatMap((channel) => Object.keys(encode)
.filter((key) => key.startsWith(channel))
.map((key) => {
const { field, value, inferred = false, aggregate } = encode[key];
if (inferred)
return null;
// Do not show inferred column.
if (aggregate && value)
return { channel: key };
if (field)
return { field };
if (value)
return { channel: key };
return null;
})
.filter((d) => d !== null));
return [I, (0, util_1.deepMix)({}, mark, { tooltip: { items: newItems } })];
};
};
exports.MaybeTooltip = MaybeTooltip;
exports.MaybeTooltip.props = {};
//# sourceMappingURL=maybeTooltip.js.map
;