{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../src/plots/funnel/geometries/basic.ts"],"names":[],"mappings":";;;;AACA,mCAAqC;AACrC,wCAAoD;AACpD,kDAA2D;AAG3D,yDAA4E;AAE5E,wCAAwF;AACxF,mCAAiE;AAEjE;;;GAGG;AACH,SAAS,KAAK,CAAC,MAA6B;IAClC,IAAA,KAAK,GAAc,MAAM,MAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAC1B,IAAA,KAAwC,OAAO,KAAtC,EAAT,IAAI,mBAAG,EAAE,KAAA,EAAE,MAAM,GAAuB,OAAO,OAA9B,EAAE,OAAO,GAAc,OAAO,QAArB,EAAE,OAAO,GAAK,OAAO,QAAZ,CAAa;IACxD,IAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,EAAE,IAAI,EAAE;QAC3C,MAAM,QAAA;QACN,OAAO,SAAA;QACP,OAAO,SAAA;KACR,CAAC,CAAC;IAEH,QAAQ;IACR,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAA6B;IACrC,IAAA,KAAK,GAAc,MAAM,MAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAC1B,IAAA,MAAM,GAA0E,OAAO,OAAjF,EAAE,MAAM,GAAkE,OAAO,OAAzE,EAAE,KAAK,GAA2D,OAAO,MAAlE,EAAE,OAAO,GAAkD,OAAO,QAAzD,EAAE,KAAK,GAA2C,OAAO,MAAlD,EAAE,KAAyC,OAAO,MAAhC,EAAhB,KAAK,mBAAG,QAAQ,KAAA,EAAE,WAAW,GAAY,OAAO,YAAnB,EAAE,KAAK,GAAK,OAAO,MAAZ,CAAa;IAE1F,IAAA,KAAwB,2BAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAlE,MAAM,YAAA,EAAE,SAAS,eAAiD,CAAC;IAE3E,eAAY,CAAC;QACX,KAAK,OAAA;QACL,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,+BAAoB;YAC5B,UAAU,EAAE,MAAM;YAClB,aAAa,EAAE,cAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,yBAAc,EAAE,8BAAmB,CAAC,CAAC;YACtF,OAAO,EAAE;gBACP,KAAK,OAAA;gBACL,OAAO,EAAE,SAAS;gBAClB,KAAK,OAAA;gBACL,KAAK,EAAE,WAAW;aACnB;YACD,KAAK,OAAA;YACL,KAAK,OAAA;SACN;KACF,CAAC,CAAC;IAEH,IAAM,GAAG,GAAG,oBAAY,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,MAA6B;IACtC,IAAA,KAAK,GAAc,MAAM,MAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAC1B,IAAA,YAAY,GAAK,OAAO,aAAZ,CAAa;IACjC,KAAK,CAAC,UAAU,CAAC;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KAChE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,MAA6B;IAC1C,IAAA,OAAO,GAAK,MAAM,QAAX,CAAY;IACnB,IAAA,OAAO,GAAK,OAAO,QAAZ,CAAa;IAE5B,IAAM,iBAAiB,GAAG,UACxB,KAAY,EACZ,UAAkB,EAClB,IAAU,EACV,cAAmC;QAEnC,IAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,+BAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;QACtE,6CACK,cAAc,KACjB,KAAK,EAAE,CAAC,UAAU,GAAG,GAAG,EAAE,OAAO,CAAC,EAClC,GAAG,EAAE,CAAC,UAAU,GAAG,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,IACvC;IACJ,CAAC,CAAC;IAEF,+BAAsB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,MAA6B;IACvD,OAAO,YAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC;AAFD,kCAEC","sourcesContent":["import { Types } from '@antv/g2';\nimport { isArray } from '@antv/util';\nimport { flow, findGeometry } from '../../../utils';\nimport { getTooltipMapping } from '../../../utils/tooltip';\nimport { Params } from '../../../core/adaptor';\nimport { Datum, Data } from '../../../types/common';\nimport { geometry as baseGeometry } from '../../../adaptor/geometries/base';\nimport { FunnelOptions } from '../types';\nimport { FUNNEL_CONVERSATION, FUNNEL_PERCENT, FUNNEL_MAPPING_VALUE } from '../constant';\nimport { conversionTagComponent, transformData } from './common';\n\n/**\n * 处理字段数据\n * @param params\n */\nfunction field(params: Params): Params {\n const { chart, options } = params;\n const { data = [], yField, maxSize, minSize } = options;\n const formatData = transformData(data, data, {\n yField,\n maxSize,\n minSize,\n });\n\n // 绘制漏斗图\n chart.data(formatData);\n return params;\n}\n\n/**\n * geometry处理\n * @param params\n */\nfunction geometry(params: Params): Params {\n const { chart, options } = params;\n const { xField, yField, color, tooltip, label, shape = 'funnel', funnelStyle, state } = options;\n\n const { fields, formatter } = getTooltipMapping(tooltip, [xField, yField]);\n\n baseGeometry({\n chart,\n options: {\n type: 'interval',\n xField: xField,\n yField: FUNNEL_MAPPING_VALUE,\n colorField: xField,\n tooltipFields: isArray(fields) && fields.concat([FUNNEL_PERCENT, FUNNEL_CONVERSATION]),\n mapping: {\n shape,\n tooltip: formatter,\n color,\n style: funnelStyle,\n },\n label,\n state,\n },\n });\n\n const geo = findGeometry(params.chart, 'interval');\n geo.adjust('symmetric');\n\n return params;\n}\n\n/**\n * 转置处理\n * @param params\n */\nfunction transpose(params: Params): Params {\n const { chart, options } = params;\n const { isTransposed } = options;\n chart.coordinate({\n type: 'rect',\n actions: !isTransposed ? [['transpose'], ['scale', 1, -1]] : [],\n });\n return params;\n}\n\n/**\n * 转化率组件\n * @param params\n */\nfunction conversionTag(params: Params): Params {\n const { options } = params;\n const { maxSize } = options;\n\n const getLineCoordinate = (\n datum: Datum,\n datumIndex: number,\n data: Data,\n initLineOption: Record\n ): Types.LineOption => {\n const percent = maxSize - (maxSize - datum[FUNNEL_MAPPING_VALUE]) / 2;\n return {\n ...initLineOption,\n start: [datumIndex - 0.5, percent],\n end: [datumIndex - 0.5, percent + 0.05],\n };\n };\n\n conversionTagComponent(getLineCoordinate)(params);\n\n return params;\n}\n\n/**\n * 基础漏斗\n * @param chart\n * @param options\n */\nexport function basicFunnel(params: Params) {\n return flow(field, geometry, transpose, conversionTag)(params);\n}\n"]}