{"version":3,"file":"meter-gauge.js","sourceRoot":"","sources":["../../../../src/plots/gauge/shapes/meter-gauge.ts"],"names":[],"mappings":";;AAAA,+BAAsD;AACtD,mCAAmC;AAOnC;;;GAGG;AACH,IAAA,kBAAa,EAAC,UAAU,EAAE,aAAa,EAAE;IACvC,IAAI,YAAC,GAAa,EAAE,SAAS;QAC3B,qBAAqB;QACb,IAAA,KAAe,GAAG,CAAC,UAAU,MAAnB,EAAV,KAAK,mBAAG,EAAE,KAAA,CAAoB;QAChC,IAAA,KAAkD,KAAK,MAAvC,EAAT,IAAI,mBAAG,EAAE,KAAA,EAAE,KAAgC,KAAK,UAAV,EAAhB,UAAU,mBAAG,GAAG,KAAA,CAAW;QAC9D,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,yBAAyB;QACzB,UAAU,GAAG,IAAA,YAAK,EAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAA,KAA+D,IAAI,CAAC,UAAU,EAAhE,iBAAiB,gBAAA,EAAY,eAAe,cAAoB,CAAC;QACrF,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACpC,IAAM,KAAK,GAAG,eAAe,GAAG,iBAAiB,CAAC;YAClD,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACrE;QACD,IAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC;QAEvD,IAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACnC,iBAAiB;QACjB,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC3C,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACrC,IAAA,KAAmD,SAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EAAxE,WAAW,gBAAA,EAAY,SAAS,cAAwC,CAAC;QAE7F,KAAK,IAAI,UAAU,GAAG,WAAW,EAAE,UAAU,GAAG,SAAS,GAAI;YAC3D,IAAI,QAAQ,SAAA,CAAC;YACb,IAAM,CAAC,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,QAAQ,EAAE;gBAChB,QAAQ,GAAG,UAAU,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aACxC;iBAAM;gBACL,UAAU,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;gBACjC,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;aAClC;YACD,IAAM,IAAI,GAAG,SAAI,CAAC,aAAa,CAC7B,MAAM,CAAC,CAAC,EACR,MAAM,CAAC,CAAC,EACR,MAAM,EACN,UAAU,EACV,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC7B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CACrC,CAAC;YACF,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACrB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE;oBACL,IAAI,MAAA;oBACJ,IAAI,EAAE,GAAG,CAAC,KAAK;oBACf,MAAM,EAAE,GAAG,CAAC,KAAK;oBACjB,SAAS,EAAE,GAAG;iBACf;aACF,CAAC,CAAC;YACH,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC;SAC7B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { registerShape, Types, Util } from '@antv/g2';\nimport { clamp } from '@antv/util';\nimport { GaugeCustomInfo } from '../types';\n\ntype ShapeCfg = Omit & {\n customInfo: GaugeCustomInfo;\n};\n\n/**\n * 自定义 Shape 部分: 自定义米轨仪表盘\n * 定义 STEP, STEP_RATIO. 可绘制区域: 1 / (STEP + 1) * i -> 1 / (STEP + 1) * i + (STEP_RATIO / (STEP + 1))\n */\nregisterShape('interval', 'meter-gauge', {\n draw(cfg: ShapeCfg, container) {\n // 使用 customInfo 传递参数\n const { meter = {} } = cfg.customInfo;\n let { steps: STEP = 50, stepRatio: STEP_RATIO = 0.5 } = meter;\n STEP = STEP < 1 ? 1 : STEP;\n // stepRatio 取值范围: (0, 1]\n STEP_RATIO = clamp(STEP_RATIO, 0, 1);\n\n const { startAngle: COORD_START_ANGLE, endAngle: COORD_END_ANGLE } = this.coordinate;\n let GAP = 0;\n if (STEP_RATIO > 0 && STEP_RATIO < 1) {\n const TOTAL = COORD_END_ANGLE - COORD_START_ANGLE;\n GAP = TOTAL / STEP / (STEP_RATIO / (1 - STEP_RATIO) + 1 - 1 / STEP);\n }\n const INTERVAL = (GAP / (1 - STEP_RATIO)) * STEP_RATIO;\n\n const group = container.addGroup();\n // 绘制图形的时候,留下 gap\n const center = this.coordinate.getCenter();\n const radius = this.coordinate.getRadius();\n const { startAngle: START_ANGLE, endAngle: END_ANGLE } = Util.getAngle(cfg, this.coordinate);\n\n for (let startAngle = START_ANGLE; startAngle < END_ANGLE; ) {\n let endAngle;\n const r = (startAngle - COORD_START_ANGLE) % (INTERVAL + GAP);\n if (r < INTERVAL) {\n endAngle = startAngle + (INTERVAL - r);\n } else {\n startAngle += INTERVAL + GAP - r;\n endAngle = startAngle + INTERVAL;\n }\n const path = Util.getSectorPath(\n center.x,\n center.y,\n radius,\n startAngle,\n Math.min(endAngle, END_ANGLE),\n radius * this.coordinate.innerRadius\n );\n group.addShape('path', {\n name: 'meter-gauge',\n attrs: {\n path,\n fill: cfg.color,\n stroke: cfg.color,\n lineWidth: 0.5,\n },\n });\n startAngle = endAngle + GAP;\n }\n\n return group;\n },\n});\n"]}