{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/geometry/shape/violin/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,SAAS,aAAa,CAAC,GAAa;IAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC;KACX;IACD,IAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC,GAAG,EAAE,UAAC,GAAG,IAAK,OAAA,GAAG,GAAG,QAAQ,EAAd,CAAc,CAAC,CAAC;AAC3C,CAAC;AAED,IAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,QAAQ;IAC1B,gBAAgB,YAAC,SAA2B;QAC1C,IAAM,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QAClC,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,CAAC,CAAa,EAAE,UAAC,CAAC,EAAE,KAAK;YACrC,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,IAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC;YAC1B,IAAM,KAAK,GAAG,KAAK,KAAM,SAAS,CAAC,CAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,OAAA;gBACL,KAAK,OAAA;gBACL,CAAC,EAAG,SAAS,CAAC,CAAY,GAAG,MAAM;gBACnC,CAAC,GAAA;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC;gBACb,KAAK,OAAA;gBACL,KAAK,OAAA;gBACL,CAAC,EAAG,SAAS,CAAC,CAAY,GAAG,MAAM;gBACnC,CAAC,GAAA;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAChC,IAAI,YAAC,GAAc,EAAE,SAAiB;QACpC,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;YAChC,KAAK,wBACA,UAAU,KACb,IAAI,MAAA,GACL;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IACD,SAAS,YAAC,SAAyB;QACzB,IAAA,KAAK,GAAK,SAAS,MAAd,CAAe;QAE5B,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC;gBACJ,IAAI,EAAE,KAAK;aACZ;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC","sourcesContent":["import { each, max, map, isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg, ViolinShapePoint } from '../../../interface';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\nfunction normalizeSize(arr: number[]) {\n if (!isArray(arr)) {\n return [];\n }\n const maxValue = max(arr);\n return map(arr, (num) => num / maxValue);\n}\n\nconst ViolinShapeFactory = registerShapeFactory('violin', {\n defaultShapeType: 'violin',\n getDefaultPoints(pointInfo: ViolinShapePoint) {\n const radius = pointInfo.size / 2;\n const points = [];\n const sizeArr = normalizeSize(pointInfo._size);\n\n each(pointInfo.y as number[], (y, index) => {\n const offset = sizeArr[index] * radius;\n const isMin = index === 0;\n const isMax = index === (pointInfo.y as number[]).length - 1;\n points.push({\n isMin,\n isMax,\n x: (pointInfo.x as number) - offset,\n y,\n });\n points.unshift({\n isMin,\n isMax,\n x: (pointInfo.x as number) + offset,\n y,\n });\n });\n return points;\n },\n});\n\nregisterShape('violin', 'violin', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const shapeAttrs = getStyle(cfg, true, true);\n const path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...shapeAttrs,\n path,\n },\n name: 'violin',\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default ViolinShapeFactory;\n"]}