{"version":3,"file":"square.js","sourceRoot":"","sources":["../../../../src/geometry/shape/polygon/square.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,SAAS,YAAY,CAAC,MAAa,EAAE,IAAY;IAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,EAAE;QACR,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;KAC/C;IACD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IACd,IAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,IAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEhD,OAAO;QACL,CAAC,EAAE,OAAO,GAAG,GAAG;QAChB,CAAC,EAAE,OAAO,GAAG,GAAG;QAChB,KAAK,EAAE,GAAG,GAAG,CAAC;QACd,MAAM,EAAE,GAAG,GAAG,CAAC;KAChB,CAAC;AACJ,CAAC;AAED,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE;IACjC,IAAI,YAAC,GAAc,EAAE,SAAiB;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxB,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YACvD,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAChC,KAAK,wBACA,UAAU,GACV,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAClC;gBACD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;SACJ;IACH,CAAC;IACD,SAAS,YAAC,SAAyB;QACzB,IAAA,KAAK,GAAK,SAAS,MAAd,CAAe;QAC5B,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC;gBACJ,IAAI,EAAE,KAAK;aACZ;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { isEmpty, clamp } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getRectAttrs(points: any[], size: number) {\n const width = Math.abs(points[0].x - points[2].x);\n const height = Math.abs(points[0].y - points[2].y);\n\n let len = Math.min(width, height);\n if (size) {\n len = clamp(size, 0, Math.min(width, height));\n }\n len = len / 2;\n const centerX = (points[0].x + points[2].x) / 2;\n const centerY = (points[0].y + points[2].y) / 2;\n\n return {\n x: centerX - len,\n y: centerY - len,\n width: len * 2,\n height: len * 2,\n };\n}\n\nregisterShape('polygon', 'square', {\n draw(cfg: ShapeInfo, container: IGroup) {\n if (!isEmpty(cfg.points)) {\n const shapeAttrs = getStyle(cfg, true, true);\n const points = this.parsePoints(cfg.points); // 转换为画布坐标\n return container.addShape('rect', {\n attrs: {\n ...shapeAttrs,\n ...getRectAttrs(points, cfg.size), // 获取 rect 绘图信息\n },\n name: 'polygon',\n });\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n"]}