{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/plots/waterfall/utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqB,EACrB,MAAc,EACd,MAAc,EACd,SAAiB,EACjB,KAAkC;;IAElC,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,CACJ,IAAI,EACJ,UAAC,CAAC,EAAE,CAAC;;QACH,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,UAAG,CAAC,CAAC,MAAM,CAAC,2BAAwB,CAAC,CAAC;QAC3E,IAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,uBAAM,CAAC,gBAAG,SAAS,IAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAG,CAAC;QAEpD,OAAO,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC,EACD,CAAC,CACF,CAAC;IACF,WAAW;IACX,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE;QAC3B,IAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI;YACV,GAAC,MAAM,IAAG,KAAK,CAAC,KAAK;YACrB,GAAC,MAAM,IAAG,GAAG;YACb,GAAC,SAAS,IAAG,CAAC,CAAC,EAAE,GAAG,CAAC;gBACrB,CAAC;KACJ;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAqB,EACrB,MAAc,EACd,MAAc,EACd,KAAkC;IAElC,IAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,IAAI;;QAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,CAAC,CAAC;SACV;QACD,6BACK,CAAC,gBACH,cAAc,IAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAC9B,UAAU,IAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAC1C,QAAQ,IAAG,IAAI,KAAK,IAAI,CAAC,MAAM,OAChC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { get, isNumber, isObject, isUndefined, reduce } from '@antv/util';\nimport { Options } from '../../types';\nimport { LEVEL, log } from '../../utils';\nimport { ABSOLUTE_FIELD, DIFF_FIELD, IS_TOTAL, Y_FIELD } from './constant';\n\n/**\n * @desc 数据处理函数,统一将数据处理成[start, end]\n * @param data\n * @param xField\n * @param yField\n * @param totalLabel\n */\nexport function processData(\n data: Options['data'],\n xField: string,\n yField: string,\n newYField: string,\n total?: false | { label?: string }\n) {\n const newData = [];\n reduce(\n data,\n (r, d) => {\n // 校验数据合法性\n log(LEVEL.WARN, isNumber(d[yField]), `${d[yField]} is not a valid number`);\n const value = isUndefined(d[yField]) ? null : d[yField];\n newData.push({ ...d, [newYField]: [r, r + value] });\n\n return r + value;\n },\n 0\n );\n // 如果需要展示总和\n if (newData.length && total) {\n const sum = get(newData, [[data.length - 1], newYField, [1]]);\n newData.push({\n [xField]: total.label,\n [yField]: sum,\n [newYField]: [0, sum],\n });\n }\n return newData;\n}\n\n/**\n * 处理为 瀑布图 数据\n */\nexport function transformData(\n data: Options['data'],\n xField: string,\n yField: string,\n total?: false | { label?: string }\n) {\n const processed = processData(data, xField, yField, Y_FIELD, total);\n return processed.map((d, dIdx) => {\n if (!isObject(d)) {\n return d;\n }\n return {\n ...d,\n [ABSOLUTE_FIELD]: d[Y_FIELD][1],\n [DIFF_FIELD]: d[Y_FIELD][1] - d[Y_FIELD][0],\n [IS_TOTAL]: dIdx === data.length,\n };\n });\n}\n"]}