@visactor/vchart
Version:
charts lib based @visactor/VGrammar
59 lines (49 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.highlightDefaultOptions = exports.generateFilterValue = exports.filterMarksOfInteraction = exports.groupMarksByState = exports.parseTriggerOffOfSelect = void 0;
const vutils_1 = require("@visactor/vutils"), util_1 = require("../../util"), interface_1 = require("../../compile/mark/interface"), parseTriggerOffOfSelect = triggerOff => {
const triggerOffArray = (0, vutils_1.array)(triggerOff), resetType = [], eventNames = [];
return triggerOffArray.forEach((off => {
"empty" === off ? resetType.push("view") : (0, vutils_1.isString)(off) && "none" !== off ? off.includes("view:") ? (eventNames.push(off.replace("view:", "")),
resetType.push("view")) : (eventNames.push(off), resetType.push("self")) : (0, vutils_1.isNumber)(off) && resetType.push("timeout");
})), {
eventNames: eventNames,
resetType: resetType
};
};
exports.parseTriggerOffOfSelect = parseTriggerOffOfSelect;
const groupMarksByState = (marks, states) => {
if (!states || !marks) return null;
const res = {};
return marks.forEach((mark => {
const stateStyle = mark.stateStyle;
stateStyle && states.forEach((state => {
state && stateStyle[state] && (res[state] || (res[state] = []), res[state].push(mark.id));
}));
})), res;
};
exports.groupMarksByState = groupMarksByState;
const filterMarksOfInteraction = (interactionSpec, marks) => {
if (!marks || !marks.length) return [];
const selector = [];
return interactionSpec.markIds ? marks.filter((mark => {
interactionSpec.markIds.includes(mark.getProductId()) && selector.push(mark);
})) : interactionSpec.markNames ? marks.forEach((mark => {
interactionSpec.markNames.includes(mark.name) && selector.push(mark);
})) : marks.forEach((mark => {
selector.push(mark);
})), selector;
};
exports.filterMarksOfInteraction = filterMarksOfInteraction;
const generateFilterValue = options => options.filterField ? g => {
var _a;
return null === (_a = (0, util_1.getDatumOfGraphic)(g)) || void 0 === _a ? void 0 : _a[options.filterField];
} : el => el.context[options.filterType];
exports.generateFilterValue = generateFilterValue, exports.highlightDefaultOptions = {
highlightState: interface_1.STATE_VALUE_ENUM.STATE_HIGHLIGHT,
blurState: interface_1.STATE_VALUE_ENUM.STATE_BLUR,
trigger: "pointerover",
triggerOff: "pointerout"
};
//# sourceMappingURL=util.js.map