UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

32 lines (28 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.stackSplit = void 0; const vutils_1 = require("@visactor/vutils"), stackSplit = (data, op) => { const result = { nodes: {} }, {fields: fields} = op; if (!(null == fields ? void 0 : fields.length)) return result; const lastFieldIndex = fields.length - 1; let nextNode, leaf, temp = result; return data.forEach((dv => { dv.latestData && dv.latestData.forEach((d => { temp = result; for (let i = 0; i < fields.length; i++) { const f = fields[i], fV = d[f]; if ((0, vutils_1.isNil)(fV)) break; temp.groupField = f, temp.nodes[fV] || (i === lastFieldIndex ? temp.nodes[fV] = { values: [] } : (nextNode = { nodes: {} }, temp.nodes[fV] = nextNode)), i === lastFieldIndex ? (leaf = temp.nodes[fV], leaf.values.push(d)) : temp = temp.nodes[fV]; } })); })), result; }; exports.stackSplit = stackSplit; //# sourceMappingURL=stack-split.js.map