{"version":3,"file":"drill-down.js","sourceRoot":"","sources":["../../src/interactions/drill-down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAO;IAClC,IAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,OAAO;IACvB,IAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,IAAA,WAAW,GAAK,UAAU,YAAf,CAAgB;IACnC,IAAI,WAAW,EAAE;QACT,IAAA,KAAW,OAAO,CAAC,KAAK,EAAtB,CAAC,OAAA,EAAE,CAAC,OAAkB,CAAC;QACzB,IAAA,KAA6B,UAAU,CAAC,MAAM,EAAzC,OAAO,OAAA,EAAK,OAAO,OAAsB,CAAC;QACrD,IAAM,CAAC,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC;QAC/C,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAA,CAAC,OAAO,GAAG,CAAC,CAAC,EAAI,CAAC,CAAA,GAAG,SAAA,CAAC,OAAO,GAAG,CAAC,CAAC,EAAI,CAAC,CAAA,CAAC,CAAC;QACpE,OAAO,QAAQ,GAAG,CAAC,CAAC;KACrB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,cAAc,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AACrD,mBAAmB,CAAC,YAAY,EAAE;IAChC,UAAU,EAAE;QACV,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE;QACnF,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE;QAC3D,kCAAkC;QAClC,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE;KAChF;IACD,KAAK,EAAE;QACL;YACE,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,CAAC,yBAAyB,CAAC;SACpC;QACD;YACE,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,CAAC,iCAAiC,CAAC;SAC5C;QACD;YACE,aAAa;YACb,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,CAAC,wBAAwB,CAAC;SACnC;KACF;CACF,CAAC,CAAC","sourcesContent":["import { registerAction, registerInteraction } from '@antv/g2';\nimport { get, isArray } from '@antv/util';\nimport { DrillDownAction } from './actions/drill-down';\n\n/**\n * 判断是否为父节点\n */\nexport function isParentNode(context) {\n const data = get(context, ['event', 'data', 'data'], {});\n return isArray(data.children) && data.children.length > 0;\n}\n\n/**\n * 判断是否在中心\n */\nfunction inCenter(context) {\n const coordinate = context.view.getCoordinate();\n const { innerRadius } = coordinate;\n if (innerRadius) {\n const { x, y } = context.event;\n const { x: centerX, y: centerY } = coordinate.center;\n const r = coordinate.getRadius() * innerRadius;\n const distance = Math.sqrt((centerX - x) ** 2 + (centerY - y) ** 2);\n return distance < r;\n }\n return false;\n}\n\nregisterAction('drill-down-action', DrillDownAction);\nregisterInteraction('drill-down', {\n showEnable: [\n { trigger: 'element:mouseenter', action: 'cursor:pointer', isEnable: isParentNode },\n { trigger: 'element:mouseleave', action: 'cursor:default' },\n // 中心处,肯定会触发 element:mouseleave 操作\n { trigger: 'element:mouseleave', action: 'cursor:pointer', isEnable: inCenter },\n ],\n start: [\n {\n trigger: 'element:click',\n isEnable: isParentNode,\n action: ['drill-down-action:click'],\n },\n {\n trigger: 'afterchangesize',\n action: ['drill-down-action:resetPosition'],\n },\n {\n // 点击中心,返回上一层\n trigger: 'click',\n isEnable: inCenter,\n action: ['drill-down-action:back'],\n },\n ],\n});\n"]}