UNPKG

40.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/chart/controller/tooltip.ts"],"names":[],"mappings":";;;AAAA,mCAAiH;AACjH,+CAAkE;AAElE,oDAAwH;AACxH,gDAAuD;AACvD,8CAAuD;AACvD,wCAAuC;AACvC,+BAAoC;AACpC,2DAA6B;AAG7B,2FAA2F;AAC3F,SAAS,IAAI,CAAC,KAAK;IACjB,IAAM,SAAS,GAAG,EAAE,CAAC;4BACZ,KAAK;QACZ,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAM,MAAM,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,UAAC,OAAO;YACrC,OAAO,CACL,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;gBAC5B,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBAC1B,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;gBAC5B,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE;YACX,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;;IAZH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;gBAAxC,KAAK;KAab;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,cAAc;AACd;IAAqC,mCAAyB;IAA9D;QAAA,qEAwsBC;QAhsBS,cAAQ,GAAY,KAAK,CAAC;;IAgsBpC,CAAC;IA3rBC,sBAAW,yBAAI;aAAf;YACE,OAAO,SAAS,CAAC;QACnB,CAAC;;;OAAA;IAEM,sBAAI,GAAX,cAAgB,CAAC;IAET,2BAAS,GAAjB;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAC9C,OAAO,MAAM,KAAK,KAAK,CAAC;IAC1B,CAAC;IAEM,wBAAM,GAAb,cAAkB,CAAC;IAEnB;;;OAGG;IACI,6BAAW,GAAlB,UAAmB,KAAY;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,6BAA6B;YAC7B,OAAO;SACR;QACD,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,0BAA0B;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;SACR;QACD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,IAAM,SAAS,GAAG;YAChB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACd,CAAC,CAAC,QAAQ;QAEX,IAAI,CAAC,IAAI,CACP,cAAc,EACd,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,qBACjC,KAAK,OAAA,EACL,KAAK,OAAA,IACF,KAAK,EACR,CACH,CAAC;QAEF,IAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,IAAA,MAAM,GAAuD,GAAG,OAA1D,EAAE,WAAW,GAA0C,GAAG,YAA7C,EAAE,cAAc,GAA0B,GAAG,eAA7B,EAAE,WAAW,GAAa,GAAG,YAAhB,EAAE,MAAM,GAAK,GAAG,OAAR,CAAS;QACzE,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,IAAA,cAAO,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC5D,oBAAoB;YACpB,IAAI,CAAC,IAAI,CACP,gBAAgB,EAChB,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,qBACnC,KAAK,OAAA,EACL,KAAK,OAAA,IACF,KAAK,EACR,CACH,CAAC;YAEF,IAAI,IAAA,iBAAU,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAC9D,4BAA4B;gBAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjB,OAAO;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAA,UAAG,EACD,EAAE,EACF,GAAG,EACH;oBACE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;oBACvC,KAAK,OAAA;iBACN,EACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACpB,CACF,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACrB;YAED,IAAI,WAAW,EAAE;gBACf,wCAAwC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC1C;SACF;aAAM;YACL,gBAAgB;YAChB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE;gBAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,0BAA0B;aAChD;YAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;aACjC;SACF;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,cAAc,EAAE;YAClB,iBAAiB;YACjB,IAAM,wBAAwB,GAAG,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;YACzF,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;SAC1E;IACH,CAAC;IAEM,6BAAW,GAAlB;QACU,IAAA,MAAM,GAAK,IAAI,CAAC,aAAa,EAAE,OAAzB,CAA0B;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;SACR;QACD,0BAA0B;QAC1B,IAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,IAAI,EAAE,CAAC;SAC5B;QAED,kBAAkB;QAClB,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,IAAI,EAAE,CAAC;SACnB;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,IAAI,EAAE,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,6BAAW,GAAlB;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,0BAA0B;YAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED;;OAEG;IACI,+BAAa,GAApB;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,gBAAgB;YAChB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtC;IACH,CAAC;IAED;;OAEG;IACI,iCAAe,GAAtB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,uBAAK,GAAZ;QACQ,IAAA,KAA2D,IAAI,EAA7D,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,mBAAmB,yBAAS,CAAC;QACtE,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;QAED,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,KAAK,EAAE,CAAC;SACpB;QAED,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,KAAK,EAAE,CAAC;SACpB;QAED,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,qCAAqC;QACrC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,eAAe,CAAC,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,4CAA4C;QAC5C,qFAAqF;QACrF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,yBAAO,GAAd;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEM,uBAAK,GAAZ;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,+BAAa,GAApB,UAAqB,OAAgB;QACnC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC5B,OAAO;SACR;QACK,IAAA,KAA2D,IAAI,EAA7D,OAAO,aAAA,EAAE,mBAAmB,yBAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAAS,CAAC;QACtE,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;YACD,IAAI,mBAAmB,EAAE;gBACvB,mBAAmB,CAAC,IAAI,EAAE,CAAC;aAC5B;YACD,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;YACD,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;SACF;aAAM;YACL,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;YACD,IAAI,mBAAmB,EAAE;gBACvB,mBAAmB,CAAC,IAAI,EAAE,CAAC;aAC5B;YACD,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;YACD,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;SACF;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,iCAAe,GAAtB,UAAuB,KAAY;;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK;YACL,KAAK,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC;;gBACvB,KAAsB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;oBAAxB,IAAM,OAAO,kBAAA;;wBAChB,KAAmB,IAAA,2BAAA,iBAAA,OAAO,CAAA,CAAA,gCAAA,qDAAE;4BAAvB,IAAM,IAAI,oBAAA;4BACP,IAAA,KAAW,IAAI,CAAC,WAAW,EAAzB,CAAC,OAAA,EAAE,CAAC,OAAqB,CAAC;4BAClC,IAAI,CAAC,CAAC,GAAG,IAAA,cAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1C,IAAI,CAAC,CAAC,GAAG,IAAA,cAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC3C;;;;;;;;;iBACF;;;;;;;;;YAEO,IAAA,MAAM,GAAK,IAAI,CAAC,aAAa,EAAE,OAAzB,CAA0B;YACxC,gFAAgF;YAChF,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxC,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;oBAC5C,KAAoB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;wBAAtB,IAAM,KAAK,kBAAA;wBACd,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,IAAI,SAAS,IAAI,GAAG,EAAE;4BACpB,QAAQ,GAAG,KAAK,CAAC;4BACjB,GAAG,GAAG,SAAS,CAAC;yBACjB;qBACF;;;;;;;;;gBACD,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;aACpB;YAED,OAAO,IAAI,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,wBAAM,GAAb,cAAkB,CAAC;IAEZ,wBAAM,GAAb;QACE,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,+BAA+B;YAC/B,oBAAoB;YACpB,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,oDAAoD;YACpD,YAAY;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACzB,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACrB,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;aACzD,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;OAGG;IACI,iCAAe,GAAtB,UAAuB,KAAY;QACjC,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAM,EAAE,GAAgB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACpD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,EAAE,IAAI,OAAO,EAAE;gBACX,IAAA,KAA0B,EAAE,CAAC,qBAAqB,EAAE,EAAlD,CAAC,OAAA,EAAE,CAAC,OAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAA+B,CAAC;gBAC3D,OAAO,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACvD;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qEAAqE;IAC9D,+BAAa,GAApB;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QACzC,IAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAM,UAAU,GAAG,IAAA,UAAG,EAAC,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAM,SAAS,GAAG,IAAA,UAAG,EAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,IAAA,cAAO,EAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE;YAC5C,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;SACnD,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IACd,sCAAoB,GAA9B,UAA+B,MAAqB;QAClD,IAAI,IAAA,gBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,MAAM,EAAE,eAAe,CAAC,EAAE;YACtD,OAAO,MAAM,CAAC;SACf;QACD,IAAM,oBAAoB,GAAG,MAAM,CAAC,aAAa,CAAC;QAClD,IAAM,aAAa,GAAG,UAAC,KAAa,EAAE,KAAY;YAChD,IAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,IAAA,eAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,CAAC,CAAC;QACF,6CACK,MAAM,KACT,aAAa,eAAA,IACb;IACJ,CAAC;IAEO,0BAAQ,GAAhB,UAAiB,KAAK;QACpB,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,+BAAa,GAArB;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,IAAM,MAAM,GAAG;YACb,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACrB,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;SACzD,CAAC;QAEF,IAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,wBAAW,qCAC7B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EACnC,MAAM,QAAA,IACH,GAAG,KACN,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,IAAI,IAChB,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,sCAAoB,GAA5B,UAA6B,KAAK,EAAE,MAAM;;QACxC,IAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1D,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAA,WAAW,GAAK,QAAQ,YAAb,CAAc;;YACjC,KAAmB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAArB,IAAM,IAAI,kBAAA;gBACL,IAAA,CAAC,GAAQ,IAAI,EAAZ,EAAE,CAAC,GAAK,IAAI,EAAT,CAAU;gBAEtB,SAAS;gBACT,IAAI,WAAW,KAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,EAAE,CAAA,EAAE;oBAC3C,IAAA,KAAkB,IAAA,iCAAoB,EAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,EAA9D,IAAI,UAAA,EAAE,OAAK,WAAmD,CAAC;oBACvE,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC;wBAC3B,IAAI,MAAA;wBACJ,KAAK,SAAA;qBACN,CAAC,CAAC;iBACJ;qBAAM;oBACL,aAAa;oBACb,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,SAAS,CAAC,CAAC;iBACzC;gBAED,IAAM,KAAK,uCACT,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,IAAI,CAAC,KAAK,IACpB,MAAM,KACT,CAAC,GAAA,EACD,CAAC,GAAA,GACF,CAAC;gBAEF,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACrC,KAAK,OAAA;iBACN,CAAC,CAAC;aACJ;;;;;;;;;IACH,CAAC;IAEO,kCAAgB,GAAxB,UAAyB,KAAY,EAAE,GAAG;QACxC,IAAM,cAAc,GAAG,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB;QAC9E,IAAI,cAAc,KAAK,GAAG,EAAE;YAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACxB;YACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM,IAAI,cAAc,KAAK,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACxB;YACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM,IAAI,cAAc,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAED,uBAAuB;IACf,mCAAiB,GAAzB,UAA0B,KAAY,EAAE,UAAU;QAChD,IAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACvE,IAAI,CAAC,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YAC3C,OAAO;SACR;QACD,IAAI,KAAK,CAAC;QACV,IAAI,GAAG,CAAC;QACR,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,IAAI,UAAU,CAAC,YAAY,EAAE;gBAC3B,KAAK,GAAG;oBACN,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;iBACX,CAAC;gBACF,GAAG,GAAG;oBACJ,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;oBACnB,CAAC,EAAE,KAAK,CAAC,CAAC;iBACX,CAAC;aACH;iBAAM;gBACL,KAAK,GAAG;oBACN,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;iBACpB,CAAC;gBACF,GAAG,GAAG;oBACJ,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;iBACtB,CAAC;aACH;SACF;aAAM;YACL,8BAA8B;YAC9B,IAAM,KAAK,GAAG,IAAA,4BAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACjD,IAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,IAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,GAAG,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1D,KAAK,GAAG,MAAM,CAAC;SAChB;QAED,IAAM,GAAG,GAAG,IAAA,cAAO,EACjB;YACE,KAAK,OAAA;YACL,GAAG,KAAA;YACH,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE;SAC5C,EACD,IAAA,UAAG,EAAC,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,EACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAC/C,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,8BAA8B;QAE/C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACxB;aAAM;YACL,UAAU,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,cAAc;IACN,mCAAiB,GAAzB,UAA0B,KAAY,EAAE,UAAU;QAChD,IAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACvE,IAAI,CAAC,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YAC3C,OAAO;SACR;QACD,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,CAAC;QACT,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,IAAI,KAAK,SAAA,CAAC;YACV,IAAI,GAAG,SAAA,CAAC;YACR,IAAI,UAAU,CAAC,YAAY,EAAE;gBAC3B,KAAK,GAAG;oBACN,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;iBACpB,CAAC;gBACF,GAAG,GAAG;oBACJ,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;iBACtB,CAAC;aACH;iBAAM;gBACL,KAAK,GAAG;oBACN,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC,EAAE,KAAK,CAAC,CAAC;iBACX,CAAC;gBACF,GAAG,GAAG;oBACJ,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;oBACnB,CAAC,EAAE,KAAK,CAAC,CAAC;iBACX,CAAC;aACH;YACD,GAAG,GAAG;gBACJ,KAAK,OAAA;gBACL,GAAG,KAAA;aACJ,CAAC;YACF,IAAI,GAAG,MAAM,CAAC;SACf;aAAM;YACL,8BAA8B;YAC9B,GAAG,GAAG;gBACJ,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE;gBAC9B,aAAa;gBACb,MAAM,EAAE,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC;gBAC9C,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC;YACF,IAAI,GAAG,QAAQ,CAAC;SACjB;QAED,GAAG,GAAG,IAAA,cAAO,EACX;YACE,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE;SAC5C,EACD,GAAG,EACH,IAAA,UAAG,EAAC,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,EACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAC/C,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,8BAA8B;QAE/C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,UAAU,EAAE;YACd,wBAAwB;YACxB,IACE,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;gBAC1D,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EACzD;gBACA,UAAU,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtC,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;iBAAM;gBACL,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACxB;SACF;aAAM;YACL,UAAU,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACtC,UAAU,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEO,mCAAiB,GAAzB,UAA0B,IAAI,EAAE,KAAY,EAAE,UAAU;QACtD,IAAI,OAAO,GAAG,IAAA,UAAG,EAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAM,MAAM,GAAG,IAAA,UAAG,EAAC,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,OAAO,EAAE;YACX,IAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,SAAS;YACT,IAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,MAAM,SAAA,CAAC;YACX,IAAI,MAAM,SAAA,CAAC;YACX,IAAI,MAAM,EAAE;gBACV,iCAAiC;gBACjC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aACjD;iBAAM;gBACL,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACvC;YAED,IAAM,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/C,IAAI,IAAA,iBAAU,EAAC,OAAO,CAAC,EAAE;gBACvB,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;aAChD;iBAAM;gBACL,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;aAC3B;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;aACd,CAAC;SACH;IACH,CAAC;IAED,uCAAuC;IAC/B,+BAAa,GAArB;QACE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;YAClD,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC;gBACzC,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,0BAA0B;IAClB,wCAAsB,GAA9B;QACE,IAAI,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACnD,IAAI,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YACzD,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC5B,mBAAmB,CAAC,IAAI,EAAE,CAAC;SAC5B;aAAM;YACL,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;gBAClD,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAC;YACH,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAChD;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,8BAA8B;IACtB,2CAAyB,GAAjC;QACE,IAAI,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACzD,IAAI,CAAC,sBAAsB,EAAE;YAC3B,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;gBACrD,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;SACtD;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAEO,mCAAiB,GAAzB,UAA0B,IAAU,EAAE,KAAY;;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,KAAK,KAAK,EAAE;YACvC,sBAAsB;YACtB,OAAO,EAAE,CAAC;SACX;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;;YACxD,aAAa;YACb,KAAwB,IAAA,KAAA,iBAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;gBAA/B,IAAM,SAAS,WAAA;gBAClB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;aAClE;;;;;;;;;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iBAAiB;IACjB,qFAAqF;IAC7E,qCAAmB,GAA3B,UAA4B,IAAI;QAAhC,iBAMC;QALC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,KAAK,EAAE,UAAC,SAAS,IAAK,OAAA,KAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAnC,CAAmC,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACK,sCAAoB,GAA5B,UAA6B,aAA4B;QAC/C,IAAA,WAAW,GAAK,IAAI,CAAC,aAAa,EAAE,YAAzB,CAA0B;QAC7C,IAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;QAEhD,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IACH,cAAC;AAAD,CAAC,AAxsBD,CAAqC,iBAAU,GAwsB9C","sourcesContent":["import { deepMix, find, get, isEqual, isFunction, mix, isString, isBoolean, flatten, isArray } from '@antv/util';\nimport { Crosshair, HtmlTooltip, IGroup } from '../../dependents';\nimport { Point, TooltipItem, TooltipOption } from '../../interface';\nimport { getAngleByPoint, getDistanceToCenter, isPointInCoordinate, getCoordinateClipCfg } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { findItemsFromView } from '../../util/tooltip';\nimport { BBox } from '../../util/bbox';\nimport { Controller } from './base';\nimport Event from '../event';\nimport View from '../view';\n\n// Filter duplicates, use `name`, `color`, `value` and `title` property values as condition\nfunction uniq(items) {\n const uniqItems = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const result = find(uniqItems, (subItem) => {\n return (\n subItem.color === item.color &&\n subItem.name === item.name &&\n subItem.value === item.value &&\n subItem.title === item.title\n );\n });\n if (!result) {\n uniqItems.push(item);\n }\n }\n return uniqItems;\n}\n\n/** @ignore */\nexport default class Tooltip extends Controller<TooltipOption> {\n private tooltip;\n private tooltipMarkersGroup: IGroup;\n private tooltipCrosshairsGroup: IGroup;\n private xCrosshair;\n private yCrosshair;\n private guideGroup: IGroup;\n\n private isLocked: boolean = false;\n private items;\n private title: string;\n private point: Point;\n\n public get name(): string {\n return 'tooltip';\n }\n\n public init() { }\n\n private isVisible() {\n const option = this.view.getOptions().tooltip;\n return option !== false;\n }\n\n public render() { }\n\n /**\n * Shows tooltip\n * @param point\n */\n public showTooltip(point: Point) {\n this.point = point;\n if (!this.isVisible()) {\n // 如果设置 tooltip(false) 则始终不显示\n return;\n }\n const view = this.view;\n const items = this.getTooltipItems(point);\n if (!items.length) {\n // 无内容则不展示,同时 tooltip 需要隐藏\n this.hideTooltip();\n return;\n }\n const title = this.getTitle(items);\n const dataPoint = {\n x: items[0].x,\n y: items[0].y,\n }; // 数据点位置\n\n view.emit(\n 'tooltip:show',\n Event.fromData(view, 'tooltip:show', {\n items,\n title,\n ...point,\n })\n );\n\n const cfg = this.getTooltipCfg();\n const { follow, showMarkers, showCrosshairs, showContent, marker } = cfg;\n const lastItems = this.items;\n const lastTitle = this.title;\n if (!isEqual(lastTitle, title) || !isEqual(lastItems, items)) {\n // 内容发生变化了更新 tooltip\n view.emit(\n 'tooltip:change',\n Event.fromData(view, 'tooltip:change', {\n items,\n title,\n ...point,\n })\n );\n\n if (isFunction(showContent) ? showContent(items) : showContent) {\n // 展示 tooltip 内容框才渲染 tooltip\n if (!this.tooltip) {\n // 延迟生成\n this.renderTooltip();\n }\n this.tooltip.update(\n mix(\n {},\n cfg,\n {\n items: this.getItemsAfterProcess(items),\n title,\n },\n follow ? point : {}\n )\n );\n this.tooltip.show();\n }\n\n if (showMarkers) {\n // 展示 tooltipMarkers,tooltipMarkers 跟随数据\n this.renderTooltipMarkers(items, marker);\n }\n } else {\n // 内容未发生变化,则更新位置\n if (this.tooltip && follow) {\n this.tooltip.update(point);\n this.tooltip.show(); // tooltip 有可能被隐藏,需要保证显示状态\n }\n\n if (this.tooltipMarkersGroup) {\n this.tooltipMarkersGroup.show();\n }\n }\n\n this.items = items;\n this.title = title;\n\n if (showCrosshairs) {\n // 展示 tooltip 辅助线\n const isCrosshairsFollowCursor = get(cfg, ['crosshairs', 'follow'], false); // 辅助线是否要跟随鼠标\n this.renderCrosshairs(isCrosshairsFollowCursor ? point : dataPoint, cfg);\n }\n }\n\n public hideTooltip() {\n const { follow } = this.getTooltipCfg();\n if (!follow) {\n this.point = null;\n return;\n }\n // hide the tooltipMarkers\n const tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n\n // hide crosshairs\n const xCrosshair = this.xCrosshair;\n const yCrosshair = this.yCrosshair;\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n\n const tooltip = this.tooltip;\n if (tooltip) {\n tooltip.hide();\n }\n\n this.view.emit('tooltip:hide', Event.fromData(this.view, 'tooltip:hide', {}));\n\n this.point = null;\n }\n\n /**\n * lockTooltip\n */\n public lockTooltip() {\n this.isLocked = true;\n if (this.tooltip) {\n // tooltip contianer 可捕获事件\n this.tooltip.setCapture(true);\n }\n }\n\n /**\n * unlockTooltip\n */\n public unlockTooltip() {\n this.isLocked = false;\n const cfg = this.getTooltipCfg();\n if (this.tooltip) {\n // 重置 capture 属性\n this.tooltip.setCapture(cfg.capture);\n }\n }\n\n /**\n * isTooltipLocked\n */\n public isTooltipLocked() {\n return this.isLocked;\n }\n\n public clear() {\n const { tooltip, xCrosshair, yCrosshair, tooltipMarkersGroup } = this;\n if (tooltip) {\n tooltip.hide();\n tooltip.clear();\n }\n\n if (xCrosshair) {\n xCrosshair.clear();\n }\n\n if (yCrosshair) {\n yCrosshair.clear();\n }\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.clear();\n }\n\n // 如果 customContent 不为空,就重新生成 tooltip\n if (tooltip?.get('customContent')) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n // title 和 items 需要清空, 否则 tooltip 内容会出现置空的情况\n // 即:需要走进 !isEqual(lastTitle, title) || !isEqual(lastItems, items) 的逻辑,更新 tooltip 的内容\n this.title = null;\n this.items = null;\n }\n\n public destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n if (this.xCrosshair) {\n this.xCrosshair.destroy();\n }\n if (this.yCrosshair) {\n this.yCrosshair.destroy();\n }\n\n if (this.guideGroup) {\n this.guideGroup.remove(true);\n }\n\n this.reset();\n }\n\n public reset() {\n this.items = null;\n this.title = null;\n this.tooltipMarkersGroup = null;\n this.tooltipCrosshairsGroup = null;\n this.xCrosshair = null;\n this.yCrosshair = null;\n this.tooltip = null;\n this.guideGroup = null;\n this.isLocked = false;\n this.point = null;\n }\n\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n const { tooltip, tooltipMarkersGroup, xCrosshair, yCrosshair } = this;\n if (visible) {\n if (tooltip) {\n tooltip.show();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.show();\n }\n if (xCrosshair) {\n xCrosshair.show();\n }\n if (yCrosshair) {\n yCrosshair.show();\n }\n } else {\n if (tooltip) {\n tooltip.hide();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n }\n this.visible = visible;\n }\n\n public getTooltipItems(point: Point) {\n let items = this.findItemsFromView(this.view, point);\n if (items.length) {\n // 三层\n items = flatten(items);\n for (const itemArr of items) {\n for (const item of itemArr) {\n const { x, y } = item.mappingData;\n item.x = isArray(x) ? x[x.length - 1] : x;\n item.y = isArray(y) ? y[y.length - 1] : y;\n }\n }\n\n const { shared } = this.getTooltipCfg();\n // shared: false 代表只显示当前拾取到的 shape 的数据,但是一个 view 会有多个 Geometry,所以有可能会拾取到多个 shape\n if (shared === false && items.length > 1) {\n let snapItem = items[0];\n let min = Math.abs(point.y - snapItem[0].y);\n for (const aItem of items) {\n const yDistance = Math.abs(point.y - aItem[0].y);\n if (yDistance <= min) {\n snapItem = aItem;\n min = yDistance;\n }\n }\n items = [snapItem];\n }\n\n return uniq(flatten(items));\n }\n\n return [];\n }\n\n public layout() { }\n\n public update() {\n if (this.point) {\n this.showTooltip(this.point);\n }\n\n if (this.tooltip) {\n // #2279 修复resize之后tooltip越界的问题\n // 确保tooltip已经创建的情况下\n const canvas = this.view.getCanvas();\n // TODO 逍为 tooltip 的区域不应该是 canvas,而应该是整个 特别是在图比较小的时候\n // 更新 region\n this.tooltip.set('region', {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n });\n }\n }\n\n /**\n * 当前鼠标点是在 enter tooltip 中\n * @param point\n */\n public isCursorEntered(point: Point) {\n // 是可捕获的,并且点在 tooltip dom 上\n if (this.tooltip) {\n const el: HTMLElement = this.tooltip.getContainer();\n const capture = this.tooltip.get('capture');\n\n if (el && capture) {\n const { x, y, width, height } = el.getBoundingClientRect();\n return new BBox(x, y, width, height).isPointIn(point);\n }\n }\n\n return false;\n }\n\n // 获取 tooltip 配置,因为用户可能会通过 view.tooltip() 重新配置 tooltip,所以就不做缓存,每次直接读取\n public getTooltipCfg() {\n const view = this.view;\n const option = view.getOptions().tooltip;\n const processOption = this.processCustomContent(option);\n const theme = view.getTheme();\n const defaultCfg = get(theme, ['components', 'tooltip'], {});\n const enterable = get(processOption, 'enterable', defaultCfg.enterable);\n return deepMix({}, defaultCfg, processOption, {\n capture: enterable || this.isLocked ? true : false,\n });\n }\n\n // process customContent\n protected processCustomContent(option: TooltipOption) {\n if (isBoolean(option) || !get(option, 'customContent')) {\n return option;\n }\n const currentCustomContent = option.customContent;\n const customContent = (title: string, items: any[]) => {\n const content = currentCustomContent(title, items) || '';\n return isString(content) ? '<div class=\"g2-tooltip\">' + content + '</div>' : content;\n };\n return {\n ...option,\n customContent,\n };\n }\n\n private getTitle(items) {\n const title = items[0].title || items[0].name;\n this.title = title;\n\n return title;\n }\n\n private renderTooltip() {\n const canvas = this.view.getCanvas();\n const region = {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n };\n\n const cfg = this.getTooltipCfg();\n const tooltip = new HtmlTooltip({\n parent: canvas.get('el').parentNode,\n region,\n ...cfg,\n visible: false,\n crosshairs: null,\n });\n\n tooltip.init();\n this.tooltip = tooltip;\n }\n\n private renderTooltipMarkers(items, marker) {\n const tooltipMarkersGroup = this.getTooltipMarkersGroup();\n const rootView = this.view.getRootView();\n const { limitInPlot } = rootView;\n for (const item of items) {\n const { x, y } = item;\n\n // 有裁剪就剪切\n if (limitInPlot || tooltipMarkersGroup?.getClip()) {\n const { type, attrs } = getCoordinateClipCfg(rootView.getCoordinate());\n tooltipMarkersGroup?.setClip({\n type,\n attrs,\n });\n } else {\n // 清除已有的 clip\n tooltipMarkersGroup?.setClip(undefined);\n }\n\n const attrs = {\n fill: item.color,\n symbol: 'circle',\n shadowColor: item.color,\n ...marker,\n x,\n y,\n };\n\n tooltipMarkersGroup.addShape('marker', {\n attrs,\n });\n }\n }\n\n private renderCrosshairs(point: Point, cfg) {\n const crosshairsType = get(cfg, ['crosshairs', 'type'], 'x'); // 默认展示 x 轴上的辅助线\n if (crosshairsType === 'x') {\n if (this.yCrosshair) {\n this.yCrosshair.hide();\n }\n this.renderXCrosshairs(point, cfg);\n } else if (crosshairsType === 'y') {\n if (this.xCrosshair) {\n this.xCrosshair.hide();\n }\n this.renderYCrosshairs(point, cfg);\n } else if (crosshairsType === 'xy') {\n this.renderXCrosshairs(point, cfg);\n this.renderYCrosshairs(point, cfg);\n }\n }\n\n // 渲染 x 轴上的 tooltip 辅助线\n private renderXCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n if (!isPointInCoordinate(coordinate, point)) {\n return;\n }\n let start;\n let end;\n if (coordinate.isRect) {\n if (coordinate.isTransposed) {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n } else {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n }\n } else {\n // 极坐标下 x 轴上的 crosshairs 表现为半径\n const angle = getAngleByPoint(coordinate, point);\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n end = polarToCartesian(center.x, center.y, radius, angle);\n start = center;\n }\n\n const cfg = deepMix(\n {\n start,\n end,\n container: this.getTooltipCrosshairsGroup(),\n },\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('x', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let xCrosshair = this.xCrosshair;\n if (xCrosshair) {\n xCrosshair.update(cfg);\n } else {\n xCrosshair = new Crosshair.Line(cfg);\n xCrosshair.init();\n }\n xCrosshair.render();\n xCrosshair.show();\n this.xCrosshair = xCrosshair;\n }\n\n // 渲染 y 轴上的辅助线\n private renderYCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n if (!isPointInCoordinate(coordinate, point)) {\n return;\n }\n let cfg;\n let type;\n if (coordinate.isRect) {\n let start;\n let end;\n if (coordinate.isTransposed) {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n } else {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n }\n cfg = {\n start,\n end,\n };\n type = 'Line';\n } else {\n // 极坐标下 y 轴上的 crosshairs 表现为圆弧\n cfg = {\n center: coordinate.getCenter(),\n // @ts-ignore\n radius: getDistanceToCenter(coordinate, point),\n startAngle: coordinate.startAngle,\n endAngle: coordinate.endAngle,\n };\n type = 'Circle';\n }\n\n cfg = deepMix(\n {\n container: this.getTooltipCrosshairsGroup(),\n },\n cfg,\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('y', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let yCrosshair = this.yCrosshair;\n if (yCrosshair) {\n // 如果坐标系发生直角坐标系与极坐标的切换操作\n if (\n (coordinate.isRect && yCrosshair.get('type') === 'circle') ||\n (!coordinate.isRect && yCrosshair.get('type') === 'line')\n ) {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n } else {\n yCrosshair.update(cfg);\n }\n } else {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n }\n yCrosshair.render();\n yCrosshair.show();\n this.yCrosshair = yCrosshair;\n }\n\n private getCrosshairsText(type, point: Point, tooltipCfg) {\n let textCfg = get(tooltipCfg, ['crosshairs', 'text']);\n const follow = get(tooltipCfg, ['crosshairs', 'follow']);\n const items = this.items;\n\n if (textCfg) {\n const view = this.getViewWithGeometry(this.view);\n // 需要展示文本\n const firstItem = items[0];\n const xScale = view.getXScale();\n const yScale = view.getYScales()[0];\n let xValue;\n let yValue;\n if (follow) {\n // 如果需要跟随鼠标移动,就需要将当前鼠标坐标点转换为对应的数值\n const invertPoint = this.view.getCoordinate().invert(point);\n xValue = xScale.invert(invertPoint.x); // 转换为原始值\n yValue = yScale.invert(invertPoint.y); // 转换为原始值\n } else {\n xValue = firstItem.data[xScale.field];\n yValue = firstItem.data[yScale.field];\n }\n\n const content = type === 'x' ? xValue : yValue;\n if (isFunction(textCfg)) {\n textCfg = textCfg(type, content, items, point);\n } else {\n textCfg.content = content;\n }\n\n return {\n text: textCfg,\n };\n }\n }\n\n // 获取存储 tooltipMarkers 和 crosshairs 的容器\n private getGuideGroup() {\n if (!this.guideGroup) {\n const foregroundGroup = this.view.foregroundGroup;\n this.guideGroup = foregroundGroup.addGroup({\n name: 'tooltipGuide',\n capture: false,\n });\n }\n\n return this.guideGroup;\n }\n\n // 获取 tooltipMarkers 存储的容器\n private getTooltipMarkersGroup() {\n let tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup && !tooltipMarkersGroup.destroyed) {\n tooltipMarkersGroup.clear();\n tooltipMarkersGroup.show();\n } else {\n tooltipMarkersGroup = this.getGuideGroup().addGroup({\n name: 'tooltipMarkersGroup',\n });\n tooltipMarkersGroup.toFront();\n this.tooltipMarkersGroup = tooltipMarkersGroup;\n }\n return tooltipMarkersGroup;\n }\n\n // 获取 tooltip crosshairs 存储的容器\n private getTooltipCrosshairsGroup() {\n let tooltipCrosshairsGroup = this.tooltipCrosshairsGroup;\n if (!tooltipCrosshairsGroup) {\n tooltipCrosshairsGroup = this.getGuideGroup().addGroup({\n name: 'tooltipCrosshairsGroup',\n capture: false,\n });\n tooltipCrosshairsGroup.toBack();\n this.tooltipCrosshairsGroup = tooltipCrosshairsGroup;\n }\n return tooltipCrosshairsGroup;\n }\n\n private findItemsFromView(view: View, point: Point) {\n if (view.getOptions().tooltip === false) {\n // 如果 view 关闭了 tooltip\n return [];\n }\n\n const tooltipCfg = this.getTooltipCfg();\n let result = findItemsFromView(view, point, tooltipCfg);\n // 递归查找,并合并结果\n for (const childView of view.views) {\n result = result.concat(this.findItemsFromView(childView, point));\n }\n\n return result;\n }\n\n // FIXME: hack 方法\n // 因为 tooltip 的交互是挂载在 Chart 上,所以当chart 上没有绘制 Geometry 的时候,就查找不到数据,并且绘图区域同子 View 的区域不同\n private getViewWithGeometry(view) {\n if (view.geometries.length) {\n return view;\n }\n\n return find(view.views, (childView) => this.getViewWithGeometry(childView));\n }\n\n /**\n * 根据用户配置的 items 配置,来进行用户自定义的处理,并返回最终的 items\n * 默认不做任何处理\n */\n private getItemsAfterProcess(originalItems: TooltipItem[]): TooltipItem[] {\n const { customItems } = this.getTooltipCfg();\n const fn = customItems ? customItems : (v) => v;\n\n return fn(originalItems);\n }\n}\n"]}
\No newline at end of file