@visactor/vchart 2.0.5-alpha.6 → 2.0.5-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.es.js +49 -9
- package/build/index.js +49 -9
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +6 -0
- package/cjs/component/axis/cartesian/axis.js +3 -0
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +2 -1
- package/cjs/component/crosshair/base.js +26 -9
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +15 -3
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/core/expression-function.js +1 -1
- package/cjs/core/factory.js +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +2 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/instance-manager.js +1 -1
- package/cjs/env/env.js +1 -1
- package/cjs/env/index.js +1 -1
- package/cjs/event/bubble.js +1 -1
- package/cjs/event/event-dispatcher.js +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +6 -0
- package/esm/component/axis/cartesian/axis.js +3 -0
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +2 -1
- package/esm/component/crosshair/base.js +26 -9
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +15 -3
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/core/expression-function.js +1 -1
- package/esm/core/factory.js +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +2 -2
- package/esm/core/index.js.map +1 -1
- package/esm/core/instance-manager.js +1 -1
- package/esm/env/env.js +1 -1
- package/esm/env/index.js +1 -1
- package/esm/event/bubble.js +1 -1
- package/esm/event/event-dispatcher.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,qEAAmD;AAGnD,6CAAuH;AACvH,sDAA2D;AAI3D,2DAAuD;AAEvD,0CAA8C;AAW9C,gDAAyF;AACzF,kDAAqD;AACrD,qCAAiE;AAIjE,2CAAkD;AAClD,6CAA8C;AAE9C,MAAM,UAAU,GAAG;IACjB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAsB,aACpB,SAAQ,8BAAgB;IAqBxB,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;IACpC,CAAC;IAID,YAAY,IAAO,EAAE,OAAyB;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAxBvB,YAAO,GAAG,WAAW,CAAC;QAEtB,eAAU,GAAW,MAAM,CAAC;QAC5B,eAAU,GAAW,qBAAY,CAAC,cAAc,CAAC;QACjD,gBAAW,GAAW,qBAAY,CAAC,SAAS,CAAC;QAC7C,YAAO,GAAqB,OAAO,CAAC;QA8O5B,cAAS,GAAG,CAAC,MAAW,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,OAAO;aACR;iBAAM,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;aACR;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,OAAO;aACR;YAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEvB,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC7B,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;gBAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,CAAC,EAAE,IAAI,CAAC,UAAoB,CAAsB,CAAC;aACpD;QACH,CAAC,CAAC;QAEM,wBAAmB,GAAG,IAAA,iBAAQ,EAAC,CAAC,MAAW,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,OAAO;aACR;YAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEC,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5D,OAAO;aACR;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;QAwCM,uBAAkB,GAAG,CAAC,MAA0B,EAAE,EAAE;YAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAEvC,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;gBAChE,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACnC,OAAO;aACR;YAED,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;gBACtC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE;oBACzD,IAAI,CAAC,2BAA2B,EAAE,CAAC;oBACnC,OAAO;iBACR;aACF;YAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;QApVA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAmBS,iBAAiB,CAAC,OAAyB,EAAE,KAAa,EAAE,KAAa;QAEjF,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,EAAE;oBACb,QAAQ,GAAG,IAAI,CAAC;iBACjB;qBAAM;oBACL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACrB;aACF;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEnD,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;gBACzC,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAID,cAAc;QACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAkD;QAC9D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC/B,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,CAAC,OAAO,CAAC,CAAC,CAA0C,EAAE,EAAE;YAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAES,eAAe;;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,0CAAE,WAAW,EAAE,mCAAI;gBACjF,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV,CAAC;YACF,IAAI,CAAC,YAAY,GAAG;gBAClB,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,MAAM;aACX,CAAC;SACH;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAES,2BAA2B;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAI,IAAI,CAAC,KAAa,CAAC,KAAK,CAAC,CAAC;YAE7C,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,aAAa,EAAE;gBAC7D,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,SAAS,CAAU,CAAC;gBAExG,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBAC/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;iBACxE;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,uBAAuB;QAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAI,IAAI,CAAC,KAAa,CAAC,KAAK,CAAC,CAAC;YAE7C,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE;gBACjF,UAAU,GAAG,IAAI,CAAC;aACnB;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;IACH,CAAC;IAES,qBAAqB;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;IACH,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAKD,YAAY,CAAC,IAAO,EAAE,QAAW;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YAC9C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACpC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;aAAM;YACL,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE9C,IAAI,aAAa,EAAE;gBACjB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC9C,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAEO,cAAc,CAAC,SAAkC,EAAE,KAAe,EAAE,KAAe;QACzF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC3G,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,EAAE,CAAC;QAE9F,IAAI,IAAA,gBAAO,EAAC,SAAS,CAAC,EAAE;YACrB,SAAyB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAsB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;SACrD;IACH,CAAC;IAEO,SAAS,CAAC,SAAkC,EAAE,KAAe,EAAE,KAAe;QACpF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC3G,IAAI,IAAA,gBAAO,EAAC,SAAS,CAAC,EAAE;YACrB,SAAyB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAsB,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,qBAAqB,CAAC,MAAW;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAyB,CAAC;QAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACjD,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAElF,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACzC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SAC1C,CAAC;IACJ,CAAC;IA2DO,gBAAgB;QACtB,MAAM,EAAE,IAAI,GAAG,uBAAc,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClE,MAAM,aAAa,GAAG,IAAA,8CAAqC,EAAC,IAAI,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE;YACjB,MAAM,OAAO,GAAa,IAAA,cAAK,EAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,CAAC,SAA2B,EAAE,EAAE;gBACjD,IAAI,SAAS,KAAK,OAAO,EAAE;oBACzB,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;iBACnE;gBACD,OAAO,aAAa,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC3D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC5B;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;YAED,MAAM,GAAG,GAAoF,EAAE,CAAC;YAC/F,OAA8B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC7C,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK,EAAE,IAAI,KAAK,OAAO;oBACvB,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC;oBACvB,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC7G,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,yBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClH,CAAC;IA+BS,mBAAmB,CAAY,KAAuC;;QAE9E,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,kBAAkB,mDAAG,MAAM,CAAY,CAAC;QAC5E,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAA,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,gBAAgB,GAAa,IAAA,YAAG,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,EAAE;YACrB,gBAAgB,GAAG,EAAE,CAAC;YACtB,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACrC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE;oBAChD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAiB,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;aACR;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBACrE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,EAAE,CAAC,CAAC;gBACrC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,EAAE,CAAC,CAAC;gBACrC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC/D,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAoB,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAE1D,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,aAAa;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,eAAe;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAI,IAAI,CAAC,KAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;gBAClC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAE1E,IAAI,aAAa,EAAE;oBACjB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;oBAC7D,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;oBAE7D,aAAa,CAAC,aAAa,CAAC;wBAC1B,CAAC,QAAQ,CAAC,EAAE,KAAK;qBAClB,CAAC,CAAC;iBACJ;aACF;iBAAM,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;gBAChD,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,mBAAmB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpE,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,IAAI,UAAU,KAAK,MAAM,IAAI,CAAC,IAAA,iBAAQ,EAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QACD,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAChC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;IACH,CAAC;IAES,WAAW,CAAC,KAAkC,EAAE,SAAiB;;QACzE,MAAM,IAAI,GAAG,EAAS,CAAC;QACvB,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAEjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;QAEhC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACjC;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAY,CAAC;YACjD,MAAM,KAAwD,KAAY,EAApE,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,OAA+B,EAA1B,SAAS,cAAnD,2CAAqD,CAAe,CAAC;YAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YACxC,IAAI,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5D,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,EAAE;gBAErB,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,CAAC,GAAG,OAAO,CAAC;aAC9C;YACD,IAAI,CAAC,KAAK,mBACR,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,IAAI,IACV,SAAS,CACb,CAAC;YAEF,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC;aAC3D;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC;gBACjC,IAAI,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAM,EAAE;oBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBAC7C;gBACD,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;oBAC/E,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;iBAClC;qBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBACzE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;iBAC5B;aACF;SACF;QAED,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;YACnB,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;YACpD,MAAM,kBAAkB,GAAG,MAAA,KAAK,CAAC,kBAAkB,mCAAI,KAAK,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,KAKF,eAAe,CAAC,KAAK,IAAI,EAAE,EALzB,EACJ,IAAI,EAAE,QAAQ,GAAG,uBAAuB,EACxC,MAAM,EAAE,UAAU,EAClB,WAAW,OAEkB,EAD1B,SAAS,cAJR,iCAKL,CAA8B,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG;gBACX,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,kBAAkB;gBAClB,SAAS,gCACP,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,KAAK,IACZ,UAAU,KACb,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,MAAM,EAC/B,MAAM,EAAE,IAAA,YAAG,EAAC,UAAU,EAAE,QAAQ,CAAC,GAClC;gBACD,KAAK,EAAE,CAAC,IAAA,kBAAS,EAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;oBACvF,CAAC,iBACG,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,UAAU,EAElB,WAAW,kBACT,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,IACT,WAAW,KAEb,SAAS,EAEhB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;gBACtB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,gBAAgB,EAAE,KAAK;gBACvB,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB,CAAI,OAAqB,EAAE,SAAiB,EAAE,SAAiB;QACzF,OAAO;YACL,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAqC,CAAC;gBACxD,IAAI,IAAA,kBAAW,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;oBAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;iBACrC;gBACD,IAAK,IAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;oBAErD,MAAM,MAAM,GAAI,IAAmB,CAAC,SAAS,EAAE,CAAC;oBAChD,MAAM,WAAW,GAAI,IAAmB,CAAC,cAAc,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAI,IAAmB,CAAC,cAAc,EAAE,CAAC;oBAC1D,MAAM,QAAQ,GAAG,qBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;oBACjF,IAAI,QAAQ,GAAG,WAAW,IAAI,QAAQ,GAAG,WAAW,EAAE;wBACpD,OAAO,CAAC,MAAM,CAAE,IAAmB,CAAC,YAAY,EAAE,CAAC,CAAC;qBACrD;iBACF;YACH,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,qBAAqB,CAAC,KAAU,EAAE,UAAe,EAAE,QAA8B;QAEzF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACjC;aAAM;YACL,KAAK,GAAG,IAAI,wBAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,KAAyB,CAAC,CAAC;YAC1C,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjB;QACD,IAAA,yBAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,CAAC;IAES,aAAa;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;IACH,CAAC;IAES,YAAY,CAAC,KAAa;QAClC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEhE,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAEzC,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,IAAI;QAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAES,8BAA8B;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC3D,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEhE,IAAI,aAAa,EAAE;gBACjB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACzB;YAED,IAAI,UAAU,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACpC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;;AA/oBH,sCAgpBC;AA5oBQ,qBAAO,GAAG,WAAW,CAAC","file":"base.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport { Tag } from '@visactor/vrender-components';\nimport type { IGraphic, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual, isArray, isNumber, get, isBoolean, isObject, array } from '@visactor/vutils';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IPoint, Maybe, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { outOfBounds } from '../../util/math';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairCategoryFieldSpec,\n IAxisInfo,\n CrossHairStateByField\n} from './interface';\nimport { ChartEvent, Event_Bubble_Level, Event_Source_Type } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { getDefaultCrosshairTriggerEventByMode } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\nimport type { TooltipEventParams } from '../tooltip/interface/event';\nimport { limitTagInBounds } from './utils/common';\nimport { isDiscrete } from '@visactor/vscale';\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n static specKey = 'crosshair';\n specKey = 'crosshair';\n\n layoutType: 'none' = 'none';\n gridZIndex: number = LayoutZIndex.CrossHair_Grid;\n labelZIndex: number = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: 'none' | number; // 为none则不消失\n\n protected _stateByField!: CrossHairStateByField;\n\n private _timer?: number;\n private _clickLock?: boolean;\n private _hasActive?: boolean;\n private _onlyLockClick?: boolean;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _layoutCrosshair(\n x: number,\n y: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ): void;\n\n abstract setAxisValue(v: StringOrNumber, axis: IAxis): void;\n abstract layoutByValue(enableRemain?: boolean): void;\n protected abstract _getDatumAtPoint(axis: IAxis, point: IPoint): number | string;\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n protected _setAllAxisValues(axisMap: IAxisInfo<IAxis>, point: IPoint, field: string): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n const { currentValue } = this._stateByField[field];\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currentValue.set(id, {\n datum: this._getDatumAtPoint(axis, point),\n axis\n });\n });\n return true;\n }\n /**\n * clear axis value of crosshair\n */\n clearAxisValue() {\n Object.keys(this._stateByField).forEach(field => {\n this._stateByField[field].currentValue.clear();\n });\n }\n\n hideCrosshair() {\n this.clearAxisValue();\n this.hide();\n }\n\n showCrosshair(dimInfo: { axis: IAxis; value: string | number }[]) {\n if (!dimInfo || !dimInfo.length) {\n return;\n }\n\n this.showDefault = false;\n this.clearAxisValue();\n dimInfo.forEach((d: { axis: IAxis; value: string | number }) => {\n const { axis, value } = d;\n this.setAxisValue(value, axis);\n });\n this.layoutByValue(false);\n }\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getViewRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n protected _showDefaultCrosshairBySpec() {\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n\n if (fieldSpec && fieldSpec.visible && fieldSpec.defaultSelect) {\n const { axisIndex = 0, datum } = fieldSpec.defaultSelect;\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IAxis;\n\n if (axis) {\n this._stateByField[field].currentValue.clear();\n this._stateByField[field].currentValue.set(axisIndex, { axis, datum });\n }\n }\n });\n }\n\n protected _updateVisibleCrosshair() {\n let hasVisible = false;\n\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n\n if (fieldSpec && fieldSpec.visible && this._stateByField[field].currentValue.size) {\n hasVisible = true;\n } else {\n this._hideByField(field);\n }\n });\n\n if (hasVisible) {\n this.layoutByValue(false);\n }\n }\n\n protected _showDefaultCrosshair() {\n if (this.showDefault) {\n this._showDefaultCrosshairBySpec();\n this.layoutByValue(false);\n } else {\n this._updateVisibleCrosshair();\n }\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake && !isEqual(prevSpec, spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n\n if (this._spec.followTooltip) {\n this._registerTooltipEvent();\n } else {\n const triggerConfig = this._getTriggerEvent();\n\n if (triggerConfig) {\n triggerConfig.forEach(cfg => {\n this._registerEvent(cfg.in, false, cfg.click);\n cfg.out && this._registerEvent(cfg.out, true);\n });\n }\n }\n }\n\n private _registerEvent(eventName: EventType | EventType[], isOut?: boolean, click?: boolean) {\n const handler = isOut ? this._handleOutEvent : click ? this._handleClickInEvent : this._handleHoverInEvent;\n const cfg = isOut ? { level: Event_Bubble_Level.chart } : { source: Event_Source_Type.chart };\n\n if (isArray(eventName)) {\n (eventName as EventType[]).forEach(evt => {\n this.event.on(evt, cfg, handler);\n });\n } else {\n this.event.on(eventName as EventType, cfg, handler);\n }\n }\n\n private _eventOff(eventName: EventType | EventType[], isOut?: boolean, click?: boolean) {\n const handler = isOut ? this._handleOutEvent : click ? this._handleClickInEvent : this._handleHoverInEvent;\n if (isArray(eventName)) {\n (eventName as EventType[]).forEach(evt => {\n this.event.off(evt, handler);\n });\n } else {\n this.event.off(eventName as EventType, handler);\n }\n }\n\n onBeforeRender(): void {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n protected calculateTriggerPoint(params: any) {\n const { event } = params as BaseEventParams;\n // compute layer offset\n const layer = this._option.getCompiler().getStage().getLayer(undefined);\n const point = { x: event.viewX, y: event.viewY };\n layer.globalTransMatrix.transformPoint({ x: event.viewX, y: event.viewY }, point);\n\n return {\n x: point.x - this.getLayoutStartPoint().x,\n y: point.y - this.getLayoutStartPoint().y\n };\n }\n\n private _handleIn = (params: any) => {\n if (!this._option) {\n return;\n }\n\n const { x, y } = this.calculateTriggerPoint(params);\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n\n const components = this._getNeedClearVRenderComponents();\n this._hasActive = components.some(comp => comp && comp.attribute.visible !== false);\n };\n\n private _handleClickInEvent = (params: any) => {\n if (this._hasActive && this._spec.lockAfterClick && !this._clickLock) {\n this._clickLock = true;\n return;\n } else if (this._clickLock) {\n this._clickLock = false;\n this._handleOutEvent();\n return;\n }\n\n if (this._onlyLockClick) {\n return;\n }\n\n this._handleIn(params);\n\n if (isNumber(this.triggerOff)) {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timer = setTimeout(() => {\n this._handleOutEvent();\n }, this.triggerOff as number) as unknown as number;\n }\n };\n\n private _handleHoverInEvent = throttle((params: any) => {\n if (this._clickLock) {\n return;\n }\n\n this._handleIn(params);\n }, 10);\n\n private _handleOutEvent = () => {\n if (this.enableRemain || this._clickLock || !this._hasActive) {\n return;\n }\n this.clearOutEvent();\n\n this.hide();\n };\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n const triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);\n if (triggerConfig) {\n const trigger: string[] = array(this.trigger || 'hover');\n const outTrigger = (inTrigger: CrossHairTrigger) => {\n if (inTrigger === 'click') {\n return this.triggerOff === 'none' ? null : triggerConfig.clickOut;\n }\n return triggerConfig.hoverOut;\n };\n\n if (this._spec.lockAfterClick && !trigger.includes('click')) {\n trigger.push('click');\n this._onlyLockClick = true;\n } else {\n this._onlyLockClick = false;\n }\n // 同时配置了多个触发事件\n const res: { in: EventType | EventType[]; out: EventType | EventType[]; click: boolean }[] = [];\n (trigger as ['click', 'hover']).forEach(item => {\n res.push({\n click: item === 'click',\n in: triggerConfig[item],\n out: outTrigger(item)\n });\n });\n return res;\n }\n return null;\n }\n\n private _registerTooltipEvent() {\n this.event.on(ChartEvent.tooltipHide, { source: Event_Source_Type.chart }, this._handleTooltipHideOrRelease);\n this.event.on(ChartEvent.tooltipShow, { source: Event_Source_Type.chart }, this._handleTooltipShow);\n this.event.on(ChartEvent.tooltipRelease, { source: Event_Source_Type.chart }, this._handleTooltipHideOrRelease);\n }\n\n private _handleTooltipShow = (params: TooltipEventParams) => {\n const tooltipData = params.tooltipData;\n\n if (params.isEmptyTooltip || !tooltipData || !tooltipData.length) {\n this._handleTooltipHideOrRelease();\n return;\n }\n\n if (isObject(this._spec.followTooltip)) {\n if (this._spec.followTooltip[params.activeType] === false) {\n this._handleTooltipHideOrRelease();\n return;\n }\n }\n\n const { x, y } = this.calculateTriggerPoint(params);\n this.showDefault = false;\n this._layoutCrosshair(x, y, tooltipData, params.activeType);\n\n const components = this._getNeedClearVRenderComponents();\n this._hasActive = components.some(comp => comp && comp.attribute.visible !== false);\n };\n\n private _handleTooltipHideOrRelease = () => {\n this.clearOutEvent();\n\n this.hide();\n };\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const regions = axis.getRegions();\n regions.forEach(r => {\n const { x: regionStartX, y: regionStartY } = r.getLayoutStartPoint();\n x1 = Math.min(x1, regionStartX - sx);\n y1 = Math.min(y1, regionStartY - sy);\n x2 = Math.max(x2, regionStartX + r.getLayoutRect().width - sx);\n y2 = Math.max(y2, regionStartY + r.getLayoutRect().height - sy);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n onLayoutEnd(): void {\n const region = this._regions[0];\n this.setLayoutRect(region.getLayoutRect());\n this.setLayoutStartPosition(region.getLayoutStartPoint());\n\n super.onLayoutEnd();\n }\n\n protected _releaseEvent(): void {\n this.clearOutEvent();\n\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n triggerConfig.forEach(cfg => {\n this._eventOff(cfg.in, false, cfg.click);\n cfg.out && this._eventOff(cfg.out, true);\n });\n }\n }\n\n protected _parseFieldInfo() {\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n const { crosshairComp } = this._stateByField[field];\n\n if (fieldSpec && fieldSpec.visible) {\n this._stateByField[field].attributes = this._parseField(fieldSpec, field);\n\n if (crosshairComp) {\n const { style, type } = this._stateByField[field].attributes;\n const styleKey = type === 'rect' ? 'rectStyle' : 'lineStyle';\n\n crosshairComp.setAttributes({\n [styleKey]: style\n });\n }\n } else if (crosshairComp && crosshairComp.parent) {\n crosshairComp.parent.removeChild(crosshairComp);\n }\n });\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._spec;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff === 'none' || (isNumber(triggerOff) && triggerOff > 0)) {\n this.triggerOff = triggerOff;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line = {}, label = {}, visible } = field;\n\n hair.visible = visible;\n hair.type = line.type || 'line';\n\n if (line.visible === false) {\n hair.style = { visible: false };\n } else {\n const style = line.style || {};\n const { stroke, fill, lineWidth } = style as any;\n const { strokeOpacity, fillOpacity, opacity, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n // FIXME: 之前的兼容逻辑,去掉可能会影响现有 crosshair 的展示效果\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: true,\n ...restStyle\n };\n\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = get(line, 'width', lineWidth || 2);\n } else {\n hair.style.fill = fill || stroke;\n if (field?.line?.style?.stroke) {\n hair.style.stroke = field.line.style.stroke;\n }\n const rectSize = get(line, 'width');\n if (typeof rectSize === 'string') {\n const percent = parseInt(rectSize.substring(0, rectSize.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof rectSize === 'number' || typeof rectSize === 'function') {\n hair.style.size = rectSize;\n }\n }\n }\n\n if (!!label.visible) {\n const labelBackground = label.labelBackground || {};\n const syncAxisLabelAngle = label.syncAxisLabelAngle ?? false;\n const labelStyle = label.style || {};\n const {\n fill: rectFill = 'rgba(47, 59, 82, 0.9)',\n stroke: rectStroke,\n outerBorder,\n ...rectStyle\n } = labelBackground.style || {};\n hair.label = {\n visible: true,\n formatMethod: label.formatMethod,\n formatter: label.formatter,\n minWidth: labelBackground.minWidth,\n maxWidth: labelBackground.maxWidth,\n padding: labelBackground.padding,\n syncAxisLabelAngle,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle.fill || '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: (isBoolean(labelBackground.visible) ? labelBackground.visible : !!labelBackground)\n ? {\n visible: true,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n // Note: 通过这个配置可以保证 label 和 轴 label 对齐\n outerBorder: {\n stroke: rectFill,\n distance: 0,\n lineWidth: 3,\n ...outerBorder\n },\n ...rectStyle\n }\n : { visible: false },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n } else {\n hair.label = { visible: false };\n }\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach(item => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n\n protected _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected clearOutEvent() {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n if (this._clickLock) {\n this._clickLock = null;\n }\n\n if (this._hasActive) {\n this._hasActive = null;\n }\n }\n\n protected _hideByField(field: string) {\n const { crosshairComp, labelsComp } = this._stateByField[field];\n\n crosshairComp && crosshairComp.hideAll();\n\n if (labelsComp) {\n Object.keys(labelsComp).forEach(key => {\n labelsComp[key] && labelsComp[key].hideAll();\n });\n }\n }\n\n hide() {\n // 隐藏\n Object.keys(this._stateByField).forEach(field => {\n this._hideByField(field);\n });\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return Object.keys(this._stateByField).reduce((res, field) => {\n const { crosshairComp, labelsComp } = this._stateByField[field];\n\n if (crosshairComp) {\n res.push(crosshairComp);\n }\n\n if (labelsComp) {\n Object.keys(labelsComp).forEach(key => {\n labelsComp[key] && res.push(labelsComp[key]);\n });\n }\n return res;\n }, []);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport { Tag } from '@visactor/vrender-components';\nimport type { IGraphic, INode } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual, isArray, isNumber, get, isBoolean, isObject, array } from '@visactor/vutils';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IPoint, Maybe, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { outOfBounds } from '../../util/math';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairCategoryFieldSpec,\n IAxisInfo,\n CrossHairStateByField\n} from './interface';\nimport { ChartEvent, Event_Bubble_Level, Event_Source_Type } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { getDefaultCrosshairTriggerEventByMode } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\nimport type { TooltipEventParams } from '../tooltip/interface/event';\nimport { limitTagInBounds } from './utils/common';\nimport { isDiscrete } from '@visactor/vscale';\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n static specKey = 'crosshair';\n specKey = 'crosshair';\n\n layoutType: 'none' = 'none';\n gridZIndex: number = LayoutZIndex.CrossHair_Grid;\n labelZIndex: number = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: 'none' | number; // 为none则不消失\n\n protected _stateByField!: CrossHairStateByField;\n\n private _timer?: number;\n private _clickLock?: boolean;\n private _hasActive?: boolean;\n private _onlyLockClick?: boolean;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _layoutCrosshair(\n x: number,\n y: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ): void;\n\n abstract setAxisValue(v: StringOrNumber, axis: IAxis): void;\n abstract layoutByValue(enableRemain?: boolean): void;\n protected abstract _getDatumAtPoint(axis: IAxis, point: IPoint): number | string;\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n protected _setAllAxisValues(axisMap: IAxisInfo<IAxis>, point: IPoint, field: string): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n const { currentValue } = this._stateByField[field];\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currentValue.set(id, {\n datum: this._getDatumAtPoint(axis, point),\n axis\n });\n });\n return true;\n }\n /**\n * clear axis value of crosshair\n */\n clearAxisValue() {\n Object.keys(this._stateByField).forEach(field => {\n this._stateByField[field].currentValue.clear();\n });\n }\n\n hideCrosshair() {\n this.clearAxisValue();\n this.hide();\n }\n\n showCrosshair(dimInfo: { axis: IAxis; value: string | number }[]) {\n if (!dimInfo || !dimInfo.length) {\n return;\n }\n\n this.showDefault = false;\n this.clearAxisValue();\n dimInfo.forEach((d: { axis: IAxis; value: string | number }) => {\n const { axis, value } = d;\n this.setAxisValue(value, axis);\n });\n this.layoutByValue(false);\n }\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getViewRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n protected _showDefaultCrosshairBySpec() {\n let hasDefaultCrosshair = false;\n\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n\n if (fieldSpec && fieldSpec.visible && fieldSpec.defaultSelect) {\n const { axisIndex = 0, datum } = fieldSpec.defaultSelect;\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IAxis;\n\n if (axis) {\n hasDefaultCrosshair = true;\n this._stateByField[field].currentValue.clear();\n this._stateByField[field].currentValue.set(axisIndex, { axis, datum });\n }\n }\n });\n\n return hasDefaultCrosshair;\n }\n\n protected _updateVisibleCrosshair() {\n let hasVisible = false;\n\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n\n if (fieldSpec && fieldSpec.visible && this._stateByField[field].currentValue.size) {\n hasVisible = true;\n } else {\n this._hideByField(field);\n }\n });\n\n if (hasVisible) {\n this.layoutByValue(false);\n }\n }\n\n protected _showDefaultCrosshair() {\n if (this.showDefault) {\n const hasDefault = this._showDefaultCrosshairBySpec();\n hasDefault && this.layoutByValue(false);\n } else {\n this._updateVisibleCrosshair();\n }\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake && !isEqual(prevSpec, spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n\n if (this._spec.followTooltip) {\n this._registerTooltipEvent();\n } else {\n const triggerConfig = this._getTriggerEvent();\n\n if (triggerConfig) {\n triggerConfig.forEach(cfg => {\n this._registerEvent(cfg.in, false, cfg.click);\n cfg.out && this._registerEvent(cfg.out, true);\n });\n }\n }\n }\n\n private _registerEvent(eventName: EventType | EventType[], isOut?: boolean, click?: boolean) {\n const handler = isOut ? this._handleOutEvent : click ? this._handleClickInEvent : this._handleHoverInEvent;\n const cfg = isOut ? { level: Event_Bubble_Level.chart } : { source: Event_Source_Type.chart };\n\n if (isArray(eventName)) {\n (eventName as EventType[]).forEach(evt => {\n this.event.on(evt, cfg, handler);\n });\n } else {\n this.event.on(eventName as EventType, cfg, handler);\n }\n }\n\n private _eventOff(eventName: EventType | EventType[], isOut?: boolean, click?: boolean) {\n const handler = isOut ? this._handleOutEvent : click ? this._handleClickInEvent : this._handleHoverInEvent;\n if (isArray(eventName)) {\n (eventName as EventType[]).forEach(evt => {\n this.event.off(evt, handler);\n });\n } else {\n this.event.off(eventName as EventType, handler);\n }\n }\n\n onBeforeRender(): void {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n protected calculateTriggerPoint(params: any) {\n const { event } = params as BaseEventParams;\n // compute layer offset\n const layer = this._option.getCompiler().getStage().getLayer(undefined);\n const point = { x: event.viewX, y: event.viewY };\n layer.globalTransMatrix.transformPoint({ x: event.viewX, y: event.viewY }, point);\n\n return {\n x: point.x - this.getLayoutStartPoint().x,\n y: point.y - this.getLayoutStartPoint().y\n };\n }\n\n private _handleIn = (params: any) => {\n if (!this._option) {\n return;\n }\n\n const { x, y } = this.calculateTriggerPoint(params);\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n\n const components = this._getNeedClearVRenderComponents();\n this._hasActive = components.some(comp => comp && comp.attribute.visible !== false);\n };\n\n private _handleClickInEvent = (params: any) => {\n if (this._hasActive && this._spec.lockAfterClick && !this._clickLock) {\n this._clickLock = true;\n return;\n } else if (this._clickLock) {\n this._clickLock = false;\n this._handleOutEvent();\n return;\n }\n\n if (this._onlyLockClick) {\n return;\n }\n\n this._handleIn(params);\n\n if (isNumber(this.triggerOff)) {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timer = setTimeout(() => {\n this._handleOutEvent();\n }, this.triggerOff as number) as unknown as number;\n }\n };\n\n private _handleHoverInEvent = throttle((params: any) => {\n if (this._clickLock) {\n return;\n }\n\n this._handleIn(params);\n }, 10);\n\n private _handleOutEvent = () => {\n if (this.enableRemain || this._clickLock || !this._hasActive) {\n return;\n }\n this.clearOutEvent();\n\n this.hideCrosshair();\n };\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n const triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);\n if (triggerConfig) {\n const trigger: string[] = array(this.trigger || 'hover');\n const outTrigger = (inTrigger: CrossHairTrigger) => {\n if (inTrigger === 'click') {\n return this.triggerOff === 'none' ? null : triggerConfig.clickOut;\n }\n return triggerConfig.hoverOut;\n };\n\n if (this._spec.lockAfterClick && !trigger.includes('click')) {\n trigger.push('click');\n this._onlyLockClick = true;\n } else {\n this._onlyLockClick = false;\n }\n // 同时配置了多个触发事件\n const res: { in: EventType | EventType[]; out: EventType | EventType[]; click: boolean }[] = [];\n (trigger as ['click', 'hover']).forEach(item => {\n res.push({\n click: item === 'click',\n in: triggerConfig[item],\n out: outTrigger(item)\n });\n });\n return res;\n }\n return null;\n }\n\n private _registerTooltipEvent() {\n this.event.on(ChartEvent.tooltipHide, { source: Event_Source_Type.chart }, this._handleTooltipHideOrRelease);\n this.event.on(ChartEvent.tooltipShow, { source: Event_Source_Type.chart }, this._handleTooltipShow);\n this.event.on(ChartEvent.tooltipRelease, { source: Event_Source_Type.chart }, this._handleTooltipHideOrRelease);\n }\n\n private _handleTooltipShow = (params: TooltipEventParams) => {\n const tooltipData = params.tooltipData;\n\n if (params.isEmptyTooltip || !tooltipData || !tooltipData.length) {\n this._handleTooltipHideOrRelease();\n return;\n }\n\n if (isObject(this._spec.followTooltip)) {\n if (this._spec.followTooltip[params.activeType] === false) {\n this._handleTooltipHideOrRelease();\n return;\n }\n }\n\n const { x, y } = this.calculateTriggerPoint(params);\n this.showDefault = false;\n this._layoutCrosshair(x, y, tooltipData, params.activeType);\n\n const components = this._getNeedClearVRenderComponents();\n this._hasActive = components.some(comp => comp && comp.attribute.visible !== false);\n this._renderNextFrame();\n };\n\n private _handleTooltipHideOrRelease = () => {\n this.clearOutEvent();\n\n this.hideCrosshair();\n this._renderNextFrame();\n };\n\n private _renderNextFrame() {\n (this._option.globalInstance.getStage() as any)?.renderNextFrame?.();\n }\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const innerOffset = (axis as any).getInnerOffset?.() || { left: 0, right: 0, top: 0, bottom: 0 };\n const regions = axis.getRegions();\n regions.forEach(r => {\n const { x: regionStartX, y: regionStartY } = r.getLayoutStartPoint();\n x1 = Math.min(x1, regionStartX - sx + innerOffset.left);\n y1 = Math.min(y1, regionStartY - sy + innerOffset.top);\n x2 = Math.max(x2, regionStartX + r.getLayoutRect().width - sx - innerOffset.right);\n y2 = Math.max(y2, regionStartY + r.getLayoutRect().height - sy - innerOffset.bottom);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n onLayoutEnd(): void {\n const region = this._regions[0];\n this.setLayoutRect(region.getLayoutRect());\n this.setLayoutStartPosition(region.getLayoutStartPoint());\n\n super.onLayoutEnd();\n }\n\n protected _releaseEvent(): void {\n this.clearOutEvent();\n\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n triggerConfig.forEach(cfg => {\n this._eventOff(cfg.in, false, cfg.click);\n cfg.out && this._eventOff(cfg.out, true);\n });\n }\n }\n\n protected _parseFieldInfo() {\n Object.keys(this._stateByField).forEach(field => {\n const fieldSpec = (this._spec as any)[field];\n const { crosshairComp } = this._stateByField[field];\n\n if (fieldSpec && fieldSpec.visible) {\n this._stateByField[field].attributes = this._parseField(fieldSpec, field);\n\n if (crosshairComp) {\n const { style, type } = this._stateByField[field].attributes;\n const styleKey = type === 'rect' ? 'rectStyle' : 'lineStyle';\n\n crosshairComp.setAttributes({\n [styleKey]: style\n });\n }\n } else if (crosshairComp && crosshairComp.parent) {\n crosshairComp.parent.removeChild(crosshairComp);\n }\n });\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._spec;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff === 'none' || (isNumber(triggerOff) && triggerOff > 0)) {\n this.triggerOff = triggerOff;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line = {}, label = {}, visible } = field;\n\n hair.visible = visible;\n hair.type = line.type || 'line';\n\n if (line.visible === false) {\n hair.style = { visible: false };\n } else {\n const style = line.style || {};\n const { stroke, fill, lineWidth } = style as any;\n const { strokeOpacity, fillOpacity, opacity, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n // FIXME: 之前的兼容逻辑,去掉可能会影响现有 crosshair 的展示效果\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: true,\n ...restStyle\n };\n\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = get(line, 'width', lineWidth || 2);\n } else {\n hair.style.fill = fill || stroke;\n if (field?.line?.style?.stroke) {\n hair.style.stroke = field.line.style.stroke;\n }\n const rectSize = get(line, 'width');\n if (typeof rectSize === 'string') {\n const percent = parseInt(rectSize.substring(0, rectSize.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof rectSize === 'number' || typeof rectSize === 'function') {\n hair.style.size = rectSize;\n }\n }\n }\n\n if (!!label.visible) {\n const labelBackground = label.labelBackground || {};\n const syncAxisLabelAngle = label.syncAxisLabelAngle ?? false;\n const labelStyle = label.style || {};\n const {\n fill: rectFill = 'rgba(47, 59, 82, 0.9)',\n stroke: rectStroke,\n outerBorder,\n ...rectStyle\n } = labelBackground.style || {};\n hair.label = {\n visible: true,\n formatMethod: label.formatMethod,\n formatter: label.formatter,\n minWidth: labelBackground.minWidth,\n maxWidth: labelBackground.maxWidth,\n padding: labelBackground.padding,\n syncAxisLabelAngle,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle.fill || '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: (isBoolean(labelBackground.visible) ? labelBackground.visible : !!labelBackground)\n ? {\n visible: true,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n // Note: 通过这个配置可以保证 label 和 轴 label 对齐\n outerBorder: {\n stroke: rectFill,\n distance: 0,\n lineWidth: 3,\n ...outerBorder\n },\n ...rectStyle\n }\n : { visible: false },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n } else {\n hair.label = { visible: false };\n }\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach(item => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n\n protected _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected clearOutEvent() {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n if (this._clickLock) {\n this._clickLock = null;\n }\n\n if (this._hasActive) {\n this._hasActive = null;\n }\n }\n\n protected _hideByField(field: string) {\n const { crosshairComp, labelsComp } = this._stateByField[field];\n\n crosshairComp && crosshairComp.hideAll();\n\n if (labelsComp) {\n Object.keys(labelsComp).forEach(key => {\n labelsComp[key] && labelsComp[key].hideAll();\n });\n }\n }\n\n hide() {\n // 隐藏\n Object.keys(this._stateByField).forEach(field => {\n this._hideByField(field);\n });\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return Object.keys(this._stateByField).reduce((res, field) => {\n const { crosshairComp, labelsComp } = this._stateByField[field];\n\n if (crosshairComp) {\n res.push(crosshairComp);\n }\n\n if (labelsComp) {\n Object.keys(labelsComp).forEach(key => {\n labelsComp[key] && res.push(labelsComp[key]);\n });\n }\n return res;\n }, []);\n }\n}\n"]}
|
|
@@ -55,9 +55,20 @@ class CartesianCrossHair extends base_1.BaseCrossHair {
|
|
|
55
55
|
}
|
|
56
56
|
_layoutCrosshair(relativeX, relativeY, tooltipData, activeType) {
|
|
57
57
|
var _a;
|
|
58
|
-
let x = relativeX, y = relativeY;
|
|
58
|
+
let tooltipAxisValue, x = relativeX, y = relativeY;
|
|
59
|
+
const setTooltipAxisValue = () => {
|
|
60
|
+
if (!tooltipAxisValue) return;
|
|
61
|
+
const field = (0, common_1.isXAxis)(tooltipAxisValue.axis.getOrient()) ? "xField" : "yField", {currentValue: currentValue} = this._stateByField[field];
|
|
62
|
+
currentValue.has(tooltipAxisValue.axis.getSpecIndex()) || currentValue.clear(),
|
|
63
|
+
this.setAxisValue(tooltipAxisValue.value, tooltipAxisValue.axis);
|
|
64
|
+
};
|
|
59
65
|
if (tooltipData && tooltipData.length) if ("dimension" === activeType) {
|
|
60
|
-
const dimensionInfo = tooltipData[0]
|
|
66
|
+
const dimensionInfo = tooltipData[0];
|
|
67
|
+
(null == dimensionInfo ? void 0 : dimensionInfo.axis) && (0, vutils_1.isValid)(dimensionInfo.value) && (tooltipAxisValue = {
|
|
68
|
+
axis: dimensionInfo.axis,
|
|
69
|
+
value: dimensionInfo.value
|
|
70
|
+
});
|
|
71
|
+
const datumIndex = dimensionInfo.data.findIndex((dimData => dimData.datum.length > 0));
|
|
61
72
|
let pos;
|
|
62
73
|
if (datumIndex > -1) {
|
|
63
74
|
const dimensionData = dimensionInfo.data[datumIndex];
|
|
@@ -72,6 +83,7 @@ class CartesianCrossHair extends base_1.BaseCrossHair {
|
|
|
72
83
|
this.clearAxisValue();
|
|
73
84
|
const {xAxisMap: xAxisMap, yAxisMap: yAxisMap} = this._findAllAxisContains(x, y);
|
|
74
85
|
if (xAxisMap && 0 === xAxisMap.size || yAxisMap && 0 === yAxisMap.size) {
|
|
86
|
+
if (tooltipAxisValue) return setTooltipAxisValue(), void this.layoutByValue(!1);
|
|
75
87
|
if (this.enableRemain) return;
|
|
76
88
|
this.hide();
|
|
77
89
|
} else xAxisMap && xAxisMap.size && this._setAllAxisValues(xAxisMap, {
|
|
@@ -80,7 +92,7 @@ class CartesianCrossHair extends base_1.BaseCrossHair {
|
|
|
80
92
|
}, "xField"), yAxisMap && yAxisMap.size && this._setAllAxisValues(yAxisMap, {
|
|
81
93
|
x: x,
|
|
82
94
|
y: y
|
|
83
|
-
}, "yField"), this.layoutByValue();
|
|
95
|
+
}, "yField"), tooltipAxisValue && setTooltipAxisValue(), this.layoutByValue();
|
|
84
96
|
}
|
|
85
97
|
layoutByValue(enableRemain) {
|
|
86
98
|
if (!this.enable) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { LineCrosshair, RectCrosshair } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { INode } from '@visactor/vrender-core';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, IPoint, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { layoutByValue, layoutCrosshair } from './utils/cartesian';\nimport { getFirstSeries } from '../../util';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\nimport { getSpecInfo } from '../util';\nimport { crosshair } from '../../theme/builtin/common/component/crosshair';\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static readonly builtInTheme = {\n crosshair\n };\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ICartesianCrosshairSpec>(chartSpec, this.specKey, this.type, (s: ICartesianCrosshairSpec) => {\n return (s.xField && s.xField.visible !== false) || (s.yField && s.yField.visible !== false);\n });\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._stateByField = {\n xField: {\n coordKey: 'x',\n anotherAxisKey: 'y',\n currentValue: new Map(),\n labelsComp: {\n top: null,\n bottom: null\n }\n },\n yField: {\n coordKey: 'y',\n anotherAxisKey: 'x',\n currentValue: new Map(),\n labelsComp: {\n left: null,\n right: null\n }\n }\n };\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n protected _getDatumAtPoint(axis: IAxis, point: IPoint): number | string {\n const dim = isXAxis(axis.getOrient() as unknown as IOrientType) ? 'x' : 'y';\n const coordByAxis = point[dim] - (axis.getLayoutStartPoint()[dim] - this.getLayoutStartPoint()[dim]);\n const value = axis.getScale().invert(coordByAxis);\n return value;\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(datum: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._stateByField.xField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n } else {\n this._stateByField.yField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n }\n }\n\n protected _layoutCrosshair(\n relativeX: number,\n relativeY: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ) {\n let x = relativeX;\n let y = relativeY;\n\n if (tooltipData && tooltipData.length) {\n if (activeType === 'dimension') {\n const dimensionInfo = (tooltipData as IDimensionInfo[])[0];\n // 图例筛选时, 找到第一个没有被筛选的系列\n const datumIndex = dimensionInfo.data.findIndex(dimData => dimData.datum.length > 0);\n let pos;\n if (datumIndex > -1) {\n const dimensionData = dimensionInfo.data[datumIndex];\n pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n }\n\n const isY = isValid(dimensionInfo.dimType)\n ? dimensionInfo.dimType === 'y'\n : isYAxis(dimensionInfo?.axis?.getOrient() as IOrientType);\n\n if (isY) {\n y = pos?.y;\n } else {\n x = pos?.x;\n }\n } else if (activeType === 'mark') {\n const dimensionData = (tooltipData as IDimensionData[])[0];\n const pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n\n x = pos?.x;\n y = pos?.y;\n }\n }\n // 删除之前的currValue\n this.clearAxisValue();\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(x, y);\n if ((xAxisMap && xAxisMap.size === 0) || (yAxisMap && yAxisMap.size === 0)) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._setAllAxisValues(xAxisMap, { x, y }, 'xField');\n yAxisMap && yAxisMap.size && this._setAllAxisValues(yAxisMap, { x, y }, 'yField');\n\n this.layoutByValue();\n }\n\n layoutByValue(enableRemain?: boolean) {\n if (!this.enable) {\n return;\n }\n const series = getFirstSeries(this._regions, 'cartesian') as ICartesianSeries;\n if (!series) {\n return;\n }\n\n layoutByValue(this._stateByField, series, this.getLayoutStartPoint(), enableRemain ?? this.enableRemain);\n\n Object.keys(this._stateByField).forEach(field => {\n this._layoutByField(field);\n });\n }\n\n private _layoutByField(field: string) {\n const { cacheInfo, attributes, labelsComp, bandSize, coordKey } = this._stateByField[field];\n if (!attributes || !cacheInfo || (cacheInfo._isCache && this.enableRemain)) {\n return;\n }\n\n const { coord, labels, visible, labelsTextStyle } = cacheInfo;\n\n if (visible) {\n // 外部设置的size\n const positionAttribute = layoutCrosshair(this._stateByField[field]);\n this._updateCrosshairByField(field, positionAttribute);\n\n Object.keys(labels).forEach(labelKey => {\n if (labels[labelKey].visible) {\n const updateAttrs = {\n [coordKey]: coord + bandSize / 2,\n ...labels[labelKey],\n ...attributes.label,\n angle: attributes.label.syncAxisLabelAngle ? cacheInfo.axisLabel?.attribute.angle ?? 0 : 0,\n textStyle: {\n ...attributes.label?.textStyle,\n ...labelsTextStyle[labelKey]\n },\n zIndex: this.labelZIndex,\n visible: true\n };\n this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {\n label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;\n labelsComp[labelKey] = label;\n });\n } else {\n labelsComp[labelKey] && labelsComp[labelKey].hideAll();\n }\n });\n } else {\n this._hideByField(field);\n }\n }\n\n private _updateCrosshairByField(field: string, positionAttribute: any) {\n const container = this.getContainer();\n const { attributes } = this._stateByField[field];\n let { crosshairComp } = this._stateByField[field];\n\n if (crosshairComp) {\n crosshairComp.setAttributes(positionAttribute);\n } else {\n const style = attributes.style;\n // 创建\n if (attributes.type === 'line') {\n crosshairComp = new LineCrosshair({\n ...positionAttribute,\n lineStyle: style,\n zIndex: this.gridZIndex + 1, // 样式优化:线盖在面上\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n } else if (attributes.type === 'rect') {\n crosshairComp = new RectCrosshair({\n ...positionAttribute,\n rectStyle: style,\n zIndex: this.gridZIndex,\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n }\n // 添加至场景树\n container?.add(crosshairComp as unknown as INode);\n\n this._stateByField[field].crosshairComp = crosshairComp;\n }\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { LineCrosshair, RectCrosshair } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { INode } from '@visactor/vrender-core';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, IPoint, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { layoutByValue, layoutCrosshair } from './utils/cartesian';\nimport { getFirstSeries } from '../../util';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\nimport { getSpecInfo } from '../util';\nimport { crosshair } from '../../theme/builtin/common/component/crosshair';\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static readonly builtInTheme = {\n crosshair\n };\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ICartesianCrosshairSpec>(chartSpec, this.specKey, this.type, (s: ICartesianCrosshairSpec) => {\n return (s.xField && s.xField.visible !== false) || (s.yField && s.yField.visible !== false);\n });\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._stateByField = {\n xField: {\n coordKey: 'x',\n anotherAxisKey: 'y',\n currentValue: new Map(),\n labelsComp: {\n top: null,\n bottom: null\n }\n },\n yField: {\n coordKey: 'y',\n anotherAxisKey: 'x',\n currentValue: new Map(),\n labelsComp: {\n left: null,\n right: null\n }\n }\n };\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n protected _getDatumAtPoint(axis: IAxis, point: IPoint): number | string {\n const dim = isXAxis(axis.getOrient() as unknown as IOrientType) ? 'x' : 'y';\n const coordByAxis = point[dim] - (axis.getLayoutStartPoint()[dim] - this.getLayoutStartPoint()[dim]);\n const value = axis.getScale().invert(coordByAxis);\n return value;\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(datum: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._stateByField.xField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n } else {\n this._stateByField.yField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n }\n }\n\n protected _layoutCrosshair(\n relativeX: number,\n relativeY: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ) {\n let x = relativeX;\n let y = relativeY;\n let tooltipAxisValue: { axis: IAxis; value: StringOrNumber } | undefined;\n const setTooltipAxisValue = () => {\n if (!tooltipAxisValue) {\n return;\n }\n\n const field = isXAxis(tooltipAxisValue.axis.getOrient() as IOrientType) ? 'xField' : 'yField';\n const { currentValue } = this._stateByField[field];\n if (!currentValue.has(tooltipAxisValue.axis.getSpecIndex())) {\n currentValue.clear();\n }\n this.setAxisValue(tooltipAxisValue.value, tooltipAxisValue.axis);\n };\n\n if (tooltipData && tooltipData.length) {\n if (activeType === 'dimension') {\n const dimensionInfo = (tooltipData as IDimensionInfo[])[0];\n if (dimensionInfo?.axis && isValid(dimensionInfo.value)) {\n tooltipAxisValue = {\n axis: dimensionInfo.axis as unknown as IAxis,\n value: dimensionInfo.value\n };\n }\n // 图例筛选时, 找到第一个没有被筛选的系列\n const datumIndex = dimensionInfo.data.findIndex(dimData => dimData.datum.length > 0);\n let pos;\n if (datumIndex > -1) {\n const dimensionData = dimensionInfo.data[datumIndex];\n pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n }\n\n const isY = isValid(dimensionInfo.dimType)\n ? dimensionInfo.dimType === 'y'\n : isYAxis(dimensionInfo?.axis?.getOrient() as IOrientType);\n\n if (isY) {\n y = pos?.y;\n } else {\n x = pos?.x;\n }\n } else if (activeType === 'mark') {\n const dimensionData = (tooltipData as IDimensionData[])[0];\n const pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n\n x = pos?.x;\n y = pos?.y;\n }\n }\n // 删除之前的currValue\n this.clearAxisValue();\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(x, y);\n if ((xAxisMap && xAxisMap.size === 0) || (yAxisMap && yAxisMap.size === 0)) {\n if (tooltipAxisValue) {\n setTooltipAxisValue();\n this.layoutByValue(false);\n return;\n }\n\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._setAllAxisValues(xAxisMap, { x, y }, 'xField');\n yAxisMap && yAxisMap.size && this._setAllAxisValues(yAxisMap, { x, y }, 'yField');\n if (tooltipAxisValue) {\n setTooltipAxisValue();\n }\n\n this.layoutByValue();\n }\n\n layoutByValue(enableRemain?: boolean) {\n if (!this.enable) {\n return;\n }\n const series = getFirstSeries(this._regions, 'cartesian') as ICartesianSeries;\n if (!series) {\n return;\n }\n\n layoutByValue(this._stateByField, series, this.getLayoutStartPoint(), enableRemain ?? this.enableRemain);\n\n Object.keys(this._stateByField).forEach(field => {\n this._layoutByField(field);\n });\n }\n\n private _layoutByField(field: string) {\n const { cacheInfo, attributes, labelsComp, bandSize, coordKey } = this._stateByField[field];\n if (!attributes || !cacheInfo || (cacheInfo._isCache && this.enableRemain)) {\n return;\n }\n\n const { coord, labels, visible, labelsTextStyle } = cacheInfo;\n\n if (visible) {\n // 外部设置的size\n const positionAttribute = layoutCrosshair(this._stateByField[field]);\n this._updateCrosshairByField(field, positionAttribute);\n\n Object.keys(labels).forEach(labelKey => {\n if (labels[labelKey].visible) {\n const updateAttrs = {\n [coordKey]: coord + bandSize / 2,\n ...labels[labelKey],\n ...attributes.label,\n angle: attributes.label.syncAxisLabelAngle ? cacheInfo.axisLabel?.attribute.angle ?? 0 : 0,\n textStyle: {\n ...attributes.label?.textStyle,\n ...labelsTextStyle[labelKey]\n },\n zIndex: this.labelZIndex,\n visible: true\n };\n this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {\n label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;\n labelsComp[labelKey] = label;\n });\n } else {\n labelsComp[labelKey] && labelsComp[labelKey].hideAll();\n }\n });\n } else {\n this._hideByField(field);\n }\n }\n\n private _updateCrosshairByField(field: string, positionAttribute: any) {\n const container = this.getContainer();\n const { attributes } = this._stateByField[field];\n let { crosshairComp } = this._stateByField[field];\n\n if (crosshairComp) {\n crosshairComp.setAttributes(positionAttribute);\n } else {\n const style = attributes.style;\n // 创建\n if (attributes.type === 'line') {\n crosshairComp = new LineCrosshair({\n ...positionAttribute,\n lineStyle: style,\n zIndex: this.gridZIndex + 1, // 样式优化:线盖在面上\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n } else if (attributes.type === 'rect') {\n crosshairComp = new RectCrosshair({\n ...positionAttribute,\n rectStyle: style,\n zIndex: this.gridZIndex,\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n }\n // 添加至场景树\n container?.add(crosshairComp as unknown as INode);\n\n this._stateByField[field].crosshairComp = crosshairComp;\n }\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
|
package/cjs/core/factory.js
CHANGED
package/cjs/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "2.0.5-alpha.
|
|
4
|
+
export declare const version = "2.0.5-alpha.6";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export type { IStateSpec, StateValueType } from '../compile/mark';
|
|
7
7
|
export type { IRegion } from '../region/interface';
|
package/cjs/core/index.js
CHANGED
|
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
|
|
|
35
35
|
get: function() {
|
|
36
36
|
return factory_1.Factory;
|
|
37
37
|
}
|
|
38
|
-
}), exports.version = "2.0.5-alpha.
|
|
38
|
+
}), exports.version = "2.0.5-alpha.6", __exportStar(require("../event/interface"), exports),
|
|
39
39
|
__exportStar(require("../theme/interface"), exports), __exportStar(require("../model/interface"), exports),
|
|
40
40
|
__exportStar(require("./interface"), exports), __exportStar(require("../typings"), exports),
|
|
41
41
|
__exportStar(require("../constant/base"), exports), __exportStar(require("../constant/data"), exports),
|
|
@@ -199,4 +199,4 @@ Object.defineProperty(exports, "measureText", {
|
|
|
199
199
|
return text_1.measureText;
|
|
200
200
|
}
|
|
201
201
|
});
|
|
202
|
-
//# sourceMappingURL=index.js.map
|
|
202
|
+
//# sourceMappingURL=index.js.map
|
package/cjs/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,eAAe,CAAC;AAOvC,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC;AAEnC,8CAA4B;AAC5B,6CAA2B;AAI3B,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,iDAAoD;AAA3C,4GAAA,cAAc,OAAA;AACvB,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AACzB,2CAA+C;AAAtC,mGAAA,UAAU,OAAA;AAKnB,wDAAsC;AACtC,oDAAkC;AAGlC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAUgC;AAT9B,uGAAA,OAAO,OAAA;AACP,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,0GAAA,UAAU,OAAA;AACV,yGAAA,SAAS,OAAA;AACT,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,4GAAA,YAAY,OAAA;AAEd,6DAAsE;AAA7D,+GAAA,YAAY,OAAA;AAAE,8GAAA,WAAW,OAAA;AAGlC,gDAA8B;AAC9B,uCAAmD;AAA1C,2GAAA,kBAAkB,OAAA;AAC3B,0CAAgD;AAAvC,mGAAA,WAAW,OAAA;AACpB,6CAAmG;AAA1F,yHAAA,6BAA6B,OAAA;AAAE,4HAAA,gCAAgC,OAAA;AACxE,oDAAmD;AAA1C,gGAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,6FAAA,IAAI,OAAA;AACb,qCAA2C;AAAlC,mGAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"2.0.5-alpha.
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,eAAe,CAAC;AAOvC,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC;AAEnC,8CAA4B;AAC5B,6CAA2B;AAI3B,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,iDAAoD;AAA3C,4GAAA,cAAc,OAAA;AACvB,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AACzB,2CAA+C;AAAtC,mGAAA,UAAU,OAAA;AAKnB,wDAAsC;AACtC,oDAAkC;AAGlC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAUgC;AAT9B,uGAAA,OAAO,OAAA;AACP,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,0GAAA,UAAU,OAAA;AACV,yGAAA,SAAS,OAAA;AACT,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,4GAAA,YAAY,OAAA;AAEd,6DAAsE;AAA7D,+GAAA,YAAY,OAAA;AAAE,8GAAA,WAAW,OAAA;AAGlC,gDAA8B;AAC9B,uCAAmD;AAA1C,2GAAA,kBAAkB,OAAA;AAC3B,0CAAgD;AAAvC,mGAAA,WAAW,OAAA;AACpB,6CAAmG;AAA1F,yHAAA,6BAA6B,OAAA;AAAE,4HAAA,gCAAgC,OAAA;AACxE,oDAAmD;AAA1C,gGAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,6FAAA,IAAI,OAAA;AACb,qCAA2C;AAAlC,mGAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"2.0.5-alpha.6\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../model/interface';\n\nexport * from './interface';\nexport * from '../typings';\nexport type { IMarkGraphic, IGraphicContext } from '../mark/interface/';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\nexport * from '../constant/layout';\nexport { AttributeLevel } from '../constant/attribute';\nexport { TransformLevel } from '../data/initialize';\nexport { STATE_VALUE_ENUM } from '../compile/mark/interface';\nexport { ChartEvent } from '../constant/event';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\nexport * from '../typings/visual';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport {\n vglobal,\n createGroup,\n createRichText,\n createText,\n createArc,\n createArea,\n createRect,\n createLine,\n createSymbol\n} from '@visactor/vrender-core';\nexport { ManualTicker, StreamLight } from '@visactor/vrender-animate';\n\n// utils\nexport * from '../util/space';\nexport { transformToGraphic } from '../util/style';\nexport { getSpecInfo } from '../component/util';\nexport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nexport { lookup } from '../data/transforms/lookup';\nexport { warn } from '../util/debug';\nexport { measureText } from '../util/text';\n"]}
|
package/cjs/env/env.js
CHANGED
package/cjs/env/index.js
CHANGED
package/cjs/event/bubble.js
CHANGED
|
@@ -52,6 +52,12 @@ export declare abstract class CartesianAxis<T extends ICartesianAxisCommonSpec =
|
|
|
52
52
|
left: number;
|
|
53
53
|
right: number;
|
|
54
54
|
};
|
|
55
|
+
getInnerOffset(): {
|
|
56
|
+
top: number;
|
|
57
|
+
bottom: number;
|
|
58
|
+
left: number;
|
|
59
|
+
right: number;
|
|
60
|
+
};
|
|
55
61
|
constructor(spec: T, options: IComponentOption);
|
|
56
62
|
static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
|
|
57
63
|
static createComponent(specInfo: IModelSpecInfo, options: IComponentOption): IAxis;
|
|
@@ -51,6 +51,9 @@ export class CartesianAxis extends AxisComponent {
|
|
|
51
51
|
getScales() {
|
|
52
52
|
return this._scales;
|
|
53
53
|
}
|
|
54
|
+
getInnerOffset() {
|
|
55
|
+
return this._innerOffset;
|
|
56
|
+
}
|
|
54
57
|
constructor(spec, options) {
|
|
55
58
|
super(spec, options), this.type = ComponentTypeEnum.cartesianAxis, this.name = ComponentTypeEnum.cartesianAxis,
|
|
56
59
|
this._defaultBandPosition = .5, this._defaultBandInnerPadding = .1, this._defaultBandOuterPadding = .3,
|