@carbon/charts 0.41.26 → 0.41.31

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +29 -8
  2. package/build/demo/data/combo.d.ts +1 -0
  3. package/build/src/components/graphs/lollipop.d.ts +3 -0
  4. package/build/src/configuration-non-customizable.d.ts +4 -0
  5. package/bundle.js +1 -1
  6. package/components/axes/zoom-bar.js +1 -1
  7. package/components/axes/zoom-bar.js.map +1 -1
  8. package/components/graphs/area-stacked.js +1 -1
  9. package/components/graphs/area-stacked.js.map +1 -1
  10. package/components/graphs/area.js +1 -1
  11. package/components/graphs/area.js.map +1 -1
  12. package/components/graphs/lollipop.d.ts +3 -0
  13. package/components/graphs/lollipop.js +31 -1
  14. package/components/graphs/lollipop.js.map +1 -1
  15. package/components/graphs/pie.js +2 -1
  16. package/components/graphs/pie.js.map +1 -1
  17. package/components/graphs/scatter.js +5 -3
  18. package/components/graphs/scatter.js.map +1 -1
  19. package/configuration-non-customizable.d.ts +4 -0
  20. package/configuration-non-customizable.js +4 -0
  21. package/configuration-non-customizable.js.map +1 -1
  22. package/configuration.js +3 -3
  23. package/configuration.js.map +1 -1
  24. package/demo/data/bundle.js +1 -1
  25. package/demo/data/combo.d.ts +1 -0
  26. package/demo/data/combo.js +1 -0
  27. package/demo/data/combo.js.map +1 -1
  28. package/demo/styles.css +24 -0
  29. package/demo/styles.css.map +1 -1
  30. package/demo/styles.min.css +1 -1
  31. package/demo/styles.min.css.map +1 -1
  32. package/demo/tsconfig.tsbuildinfo +2 -2
  33. package/package.json +4 -2
  34. package/styles/graphs/_lollipop.scss +9 -0
  35. package/styles/graphs/index.scss +1 -0
  36. package/styles-g10.css +7 -0
  37. package/styles-g10.css.map +1 -1
  38. package/styles-g10.min.css +1 -1
  39. package/styles-g10.min.css.map +1 -1
  40. package/styles-g100.css +7 -0
  41. package/styles-g100.css.map +1 -1
  42. package/styles-g100.min.css +1 -1
  43. package/styles-g100.min.css.map +1 -1
  44. package/styles-g90.css +7 -0
  45. package/styles-g90.css.map +1 -1
  46. package/styles-g90.min.css +1 -1
  47. package/styles-g90.min.css.map +1 -1
  48. package/styles.css +7 -0
  49. package/styles.css.map +1 -1
  50. package/styles.min.css +1 -1
  51. package/styles.min.css.map +1 -1
  52. package/tsconfig.tsbuildinfo +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"pie.js","sourceRoot":"","sources":["pie.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACN,iBAAiB,EACjB,KAAK,EACL,MAAM,EACN,UAAU,EACV,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,2BAA2B;AAC3B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO;IAA5B,iBAOC;IANA,IAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO,UAAC,CAAC;QACR,KAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,OAAO,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;AACH,CAAC;AAED;IAAyB,uBAAS;IAAlC;QAAA,qEAwcC;QAvcA,UAAI,GAAG,KAAK,CAAC;QAwVb,wDAAwD;QACxD,yBAAmB,GAAG,UAAC,KAAkB;YAChC,IAAA,4CAAc,CAAkB;YAChC,IAAA,iDAAW,CAA4B;YAE/C,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,YAAY,CAAC;iBACvB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAC3D;iBACA,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC;gBAClB,OAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAhE,CAAgE,CAChE,CAAC;QACJ,CAAC,CAAC;QAEF,4BAA4B;QAC5B,0BAAoB,GAAG,UAAC,KAAkB;YACzC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,YAAY,CAAC;iBACvB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAC9D;iBACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;;IAwFH,CAAC;IA/bA,kBAAI,GAAJ;QACC,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE5C,iDAAiD;QACjD,cAAc,CAAC,gBAAgB,CAC9B,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,IAAI,CAAC,mBAAmB,CACxB,CAAC;QAEF,gDAAgD;QAChD,cAAc,CAAC,gBAAgB,CAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,EAC3B,IAAI,CAAC,oBAAoB,CACzB,CAAC;IACH,CAAC;IAED,4BAAc,GAAd;QACC,OAAO,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,oBAAM,GAAN,UAAO,OAAc;QAArB,iBAoNC;QApNM,wBAAA,EAAA,cAAc;QACpB,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEnC,6GAA6G;QAC7G,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;aAC7C,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,GAAG,CAAC,EAAd,CAAc,CAAC,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,IAAA,sCAAW,CAAkB;QAErC,kCAAkC;QAClC,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAExE,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;aACnB,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aAClC,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAErE,uBAAuB;QACvB,IAAM,SAAS,GAAG,GAAG,EAAE;aACrB,KAAK,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC;aACV,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,oEAAoE;QACpE,IAAM,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAChD,UAAC,CAAM,EAAE,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CACrC,CAAC;QAEF,4BAA4B;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC;aAC1D,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;aACzB,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE9B,IAAM,KAAK,GAAG,WAAW;aACvB,SAAS,CAAC,YAAY,CAAC;aACvB,IAAI,CAAC,aAAa,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAElD,uCAAuC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAEzC,2CAA2C;QAC3C,IAAM,aAAa,GAAG,KAAK;aACzB,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aACtB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAErB,2DAA2D;QAC3D,aAAa;aACX,KAAK,CAAC,KAAK,CAAC;aACZ,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,OAAA,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAC5B,cAAc,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC1C,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;gBAClC,iBAAiB,EAAE,OAAO;aAC1B,CAAC;QAJF,CAIE,CACF;aACA,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAA5C,CAA4C,CAAC;aAClE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aACnB,UAAU,CACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,wBAAwB,EACxB,OAAO,CACP,CACD;aACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACnB,OAAO;aACN,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC;aACnC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC;aACrC,IAAI,CACJ,YAAY,EACZ,UAAC,CAAC;YACD,OAAG,CAAC,CAAC,KAAK,WACT,KAAK,CAAC,wBAAwB,CAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,EACZ,WAAW,CACX,GAAG,GAAG,CACN;QALF,CAKE,CACH;YACD,QAAQ;aACP,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,IAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;QAC3D,IAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC;aAC1D,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;aACzB,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE9B,IAAM,MAAM,GAAG,WAAW;aACxB,SAAS,CAAC,gBAAgB,CAAC;aAC3B,IAAI,CAAC,SAAS,EAAE,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAEnD,kCAAkC;QAClC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE1C,uCAAuC;QACvC,IAAM,cAAc,GAAG,MAAM;aAC3B,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE7B,yDAAyD;QACzD,IAAM,WAAW,GAAG,EAAE,CAAC;QACvB,cAAc;aACZ,KAAK,CAAC,MAAM,CAAC;aACb,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC9B,IAAI,CAAC,UAAC,CAAC;YACP,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;gBACjC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACvC;YAED,OAAO,CACN,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;gBACzD,GAAG,CACH,CAAC;QACH,CAAC,CAAC;YACF,6CAA6C;aAC5C,KAAK,CAAC,UAAU,CAAC;YACjB,IAAM,cAAc,GAAG,MAAM,GAAG,CAAC,CAAC;YAElC,IAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YAC7D,IAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAEpC,IAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChD,CAAC,CAAC,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;YAC/B,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/C,CAAC,CAAC,SAAS;gBACV,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,SAAS;gBACV,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;aACD,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;YAChC,IAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;YACrC,IAAM,aAAa,GAClB,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/C,4DAA4D;YAC5D,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;gBACzB,IACC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EACvD;oBACD,IAAI,eAAe,SAAA,EAAE,eAAe,SAAA,CAAC;oBACrC,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,GAAG,CAAC,EAAE;wBAChC,eAAe;4BACd,CAAC,CAAC,SAAS;gCACX,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;gCACjC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU;gCACpC,CAAC,CAAC,WAAW,CAAC;wBACf,eAAe;4BACd,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;wBAEjD,2BAA2B;wBAC3B,CAAC,CAAC,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC;wBACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;yBAAM;wBACN,eAAe;4BACd,CAAC,CAAC,SAAS;gCACX,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;gCACjC,CAAC,CAAC,WAAW;gCACb,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;wBACtC,eAAe;4BACd,CAAC,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;wBAEjD,2BAA2B;wBAC3B,CAAC,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC;wBACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpB;oBAED,OAAO,eAAa,eAAe,UAAK,eAAe,MAAG,CAAC;iBAC3D;aACD;YAED,OAAO,eAAa,CAAC,CAAC,SAAS,UAAK,CAAC,CAAC,SAAS,MAAG,CAAC;QACpD,CAAC,CAAC,CAAC;QAEJ,4BAA4B;QAC5B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEjC,IAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK,CAAC;QACT,IAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE9D,IAAA;;gBAAK,CAEV;QAEH,eAAe;QACf,IAAI,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;QACvD,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE;YACpC,aAAa,GAAG,KAAK,GAAG,CAAC,CAAC;SAC1B;aAAM,IAAI,SAAS,KAAK,UAAU,CAAC,KAAK,EAAE;YAC1C,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;SAC3D;QAED,IAAI,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;QACvD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;SAClD;QAED,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,eAAa,aAAa,UAAK,aAAa,MAAG,CAAC,CAAC;QAEvE,sBAAsB;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,4BAAc,GAAd,UAAe,WAAkB;QAChC,IAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAClC,IAAI,CAAC,eAAe,EAAE,EACtB,YAAY,CACZ;aACC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;aACzB,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEhC,0BAA0B;QAC1B,IAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9D,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAEzB,IAAM,gBAAgB,GAAG,QAAQ;aAC/B,KAAK,EAAE;aACP,MAAM,CAAC,GAAG,CAAC;aACX,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;YACzB,OAAO;aACN,IAAI,CAAC,MAAM,EAAK,KAAK,CAAC,eAAe,SAAI,KAAK,CAAC,KAAO,CAAC;aACvD,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;QAEhD,sCAAsC;QACtC,+CAA+C;QAC/C,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAA,uBAAS,EAAE,uBAAS,EAAE,uBAAS,CAAO;YAE9C,IAAI,SAAS,KAAK,iBAAiB,CAAC,KAAK,EAAE;gBAC1C,CAAC,CAAC,QAAQ,GAAG;oBACZ,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,WAAW;iBAC5B,CAAC;gBAEF,oCAAoC;gBACpC,CAAC,CAAC,MAAM,GAAG;oBACV,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;oBAChD,CAAC,EACA,SAAS;wBACT,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;wBACjC,CAAC,CAAC,WAAW;iBACd,CAAC;gBAEF,6DAA6D;gBAC7D,CAAC,CAAC,eAAe;oBAChB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;aAC7D;iBAAM;gBACN,sCAAsC;gBACtC,CAAC,CAAC,QAAQ,GAAG;oBACZ,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,WAAW;iBAC5B,CAAC;gBAEF,0EAA0E;gBAC1E,CAAC,CAAC,MAAM,GAAG;oBACV,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;oBAChD,CAAC,EACA,SAAS;wBACT,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;wBACjC,CAAC,CAAC,WAAW;iBACd,CAAC;gBAEF,6DAA6D;gBAC7D,CAAC,CAAC,eAAe;oBAChB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;aAC7D;YAED,8CAA8C;YAC9C,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAM,qBAAqB,GAAG,gBAAgB;aAC5C,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAEjC,qBAAqB;aACnB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;aAC1C,KAAK,CAAC,UAAU,CAAM;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC,CAAC;aACD,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;aAC5B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAZ,CAAY,CAAC;aAC/B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAZ,CAAY,CAAC;aAC/B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAjB,CAAiB,CAAC;aACpC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;QAEhC,uBAAuB;QACvB,IAAM,uBAAuB,GAAG,gBAAgB;aAC9C,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAEnC,uBAAuB;aACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;aAC5C,KAAK,CAAC,UAAU,CAAM;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC,CAAC;aACD,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC;aAC5B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAjB,CAAiB,CAAC;aACpC,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAV,CAAU,CAAC;aAC7B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAV,CAAU,CAAC;aAC7B,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;IACjC,CAAC;IA2BD,+BAAiB,GAAjB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,YAAY,CAAC;aACvB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK;YAC/B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,cAAc;iBACZ,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;iBACxB,UAAU,CACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,qBAAqB,CACrB,CACD;iBACA,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3B,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;gBAC9D,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;YAEK,IAAA,gDAAW,CAA4B;YAC/C,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;gBACd,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;wBAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;qBACvB;iBACD;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK;YAC/B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;gBAC9D,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CAAC,CAAC;YAEH,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK;YAC3B,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC1D,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK;YAC9B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc;iBACZ,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;iBACzB,UAAU,CACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,qBAAqB,CACrB,CACD;iBACA,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtB,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;gBAC7D,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CAAC,CAAC;YAEH,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACT,2BAAa,GAAvB;QACO,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QACH,IAAM,MAAM,GAAW,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnD,OAAO,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD,CAAC;IACF,UAAC;AAAD,CAAC,AAxcD,CAAyB,SAAS,GAwcjC","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tCalloutDirections,\n\tRoles,\n\tEvents,\n\tAlignments,\n\tColorClassNameTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { arc, pie } from 'd3-shape';\nimport { interpolate } from 'd3-interpolate';\n\n// Pie slice tween function\nfunction arcTween(a, arcFunc) {\n\tconst i = interpolate(this._current, a);\n\n\treturn (t) => {\n\t\tthis._current = i(t);\n\t\treturn arcFunc(this._current);\n\t};\n}\n\nexport class Pie extends Component {\n\ttype = 'pie';\n\n\t// We need to store our arcs\n\t// So that addEventListeners()\n\t// Can access them\n\tarc: any;\n\thoverArc: any;\n\n\tinit() {\n\t\tconst eventsFragment = this.services.events;\n\n\t\t// Highlight correct circle on legend item hovers\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\n\t\t// Un-highlight circles on legend item mouseouts\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tgetInnerRadius() {\n\t\treturn Configuration.pie.innerRadius;\n\t}\n\n\trender(animate = true) {\n\t\tconst self = this;\n\t\tconst svg = this.getContainerSVG();\n\n\t\t// remove any slices that are valued at 0 because they dont need to be rendered and will create extra padding\n\t\tconst displayData = this.model.getDisplayData()\n\t\t\t.filter(data => data.value > 0);\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\n\t\tthis.arc = arc().innerRadius(this.getInnerRadius()).outerRadius(radius);\n\n\t\t// Set the hover arc radius\n\t\tthis.hoverArc = arc()\n\t\t\t.innerRadius(this.getInnerRadius())\n\t\t\t.outerRadius(radius + Configuration.pie.hoverArc.outerRadiusOffset);\n\n\t\t// Setup the pie layout\n\t\tconst pieLayout = pie()\n\t\t\t.value((d: any) => d.value)\n\t\t\t.sort(null)\n\t\t\t.padAngle(Configuration.pie.padAngle);\n\n\t\t// Sort pie layout data based off of the indecies the layout creates\n\t\tconst pieLayoutData = pieLayout(displayData).sort(\n\t\t\t(a: any, b: any) => a.index - b.index\n\t\t);\n\n\t\t// Update data on all slices\n\t\tconst slicesGroup = DOMUtils.appendOrSelect(svg, 'g.slices')\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'slices');\n\n\t\tconst paths = slicesGroup\n\t\t\t.selectAll('path.slice')\n\t\t\t.data(pieLayoutData, (d) => d.data[groupMapsTo]);\n\n\t\t// Remove slices that need to be exited\n\t\tpaths.exit().attr('opacity', 0).remove();\n\n\t\t// Add new slices that are being introduced\n\t\tconst enteringPaths = paths\n\t\t\t.enter()\n\t\t\t.append('path')\n\t\t\t.classed('slice', true)\n\t\t\t.attr('opacity', 0);\n\n\t\t// Update styles & position on existing and entering slices\n\t\tenteringPaths\n\t\t\t.merge(paths)\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d.data[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'slice',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill', (d) => self.model.getFillColor(d.data[groupMapsTo]))\n\t\t\t.attr('d', this.arc)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'pie-slice-enter-update',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'slice')\n\t\t\t.attr(\n\t\t\t\t'aria-label',\n\t\t\t\t(d) =>\n\t\t\t\t\t`${d.value}, ${\n\t\t\t\t\t\tTools.convertValueToPercentage(\n\t\t\t\t\t\t\td.data.value,\n\t\t\t\t\t\t\tdisplayData\n\t\t\t\t\t\t) + '%'\n\t\t\t\t\t}`\n\t\t\t)\n\t\t\t// Tween\n\t\t\t.attrTween('d', function (a) {\n\t\t\t\treturn arcTween.bind(this)(a, self.arc);\n\t\t\t});\n\n\t\t// Draw the slice labels\n\t\tconst labelData = pieLayoutData.filter((x) => x.value > 0);\n\t\tconst labelsGroup = DOMUtils.appendOrSelect(svg, 'g.labels')\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'labels');\n\n\t\tconst labels = labelsGroup\n\t\t\t.selectAll('text.pie-label')\n\t\t\t.data(labelData, (d: any) => d.data[groupMapsTo]);\n\n\t\t// Remove labels that are existing\n\t\tlabels.exit().attr('opacity', 0).remove();\n\n\t\t// Add labels that are being introduced\n\t\tconst enteringLabels = labels\n\t\t\t.enter()\n\t\t\t.append('text')\n\t\t\t.classed('pie-label', true);\n\n\t\t// Update styles & position on existing & entering labels\n\t\tconst calloutData = [];\n\t\tenteringLabels\n\t\t\t.merge(labels)\n\t\t\t.style('text-anchor', 'middle')\n\t\t\t.text((d) => {\n\t\t\t\tif (options.pie.labels.formatter) {\n\t\t\t\t\treturn options.pie.labels.formatter(d);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tTools.convertValueToPercentage(d.data.value, displayData) +\n\t\t\t\t\t'%'\n\t\t\t\t);\n\t\t\t})\n\t\t\t// Calculate dimensions in order to transform\n\t\t\t.datum(function (d) {\n\t\t\t\tconst marginedRadius = radius + 7;\n\n\t\t\t\tconst theta = (d.endAngle - d.startAngle) / 2 + d.startAngle;\n\t\t\t\tconst deg = (theta / Math.PI) * 180;\n\n\t\t\t\tconst textLength = this.getComputedTextLength();\n\t\t\t\td.textOffsetX = textLength / 2;\n\t\t\t\td.textOffsetY = deg > 90 && deg < 270 ? 10 : 0;\n\n\t\t\t\td.xPosition =\n\t\t\t\t\t(d.textOffsetX + marginedRadius) * Math.sin(theta);\n\t\t\t\td.yPosition =\n\t\t\t\t\t(d.textOffsetY + marginedRadius) * -Math.cos(theta);\n\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.attr('transform', function (d, i) {\n\t\t\t\tconst totalSlices = labelData.length;\n\t\t\t\tconst sliceAngleDeg =\n\t\t\t\t\t(d.endAngle - d.startAngle) * (180 / Math.PI);\n\n\t\t\t\t// check if last 2 slices (or just last) are < the threshold\n\t\t\t\tif (i >= totalSlices - 2) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsliceAngleDeg < Configuration.pie.callout.minSliceDegree\n\t\t\t\t\t) {\n\t\t\t\t\t\tlet labelTranslateX, labelTranslateY;\n\t\t\t\t\t\tif (d.index === totalSlices - 1) {\n\t\t\t\t\t\t\tlabelTranslateX =\n\t\t\t\t\t\t\t\td.xPosition +\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.offsetX +\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.textMargin +\n\t\t\t\t\t\t\t\td.textOffsetX;\n\t\t\t\t\t\t\tlabelTranslateY =\n\t\t\t\t\t\t\t\td.yPosition - Configuration.pie.callout.offsetY;\n\n\t\t\t\t\t\t\t// Set direction of callout\n\t\t\t\t\t\t\td.direction = CalloutDirections.RIGHT;\n\t\t\t\t\t\t\tcalloutData.push(d);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlabelTranslateX =\n\t\t\t\t\t\t\t\td.xPosition -\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.offsetX -\n\t\t\t\t\t\t\t\td.textOffsetX -\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.textMargin;\n\t\t\t\t\t\t\tlabelTranslateY =\n\t\t\t\t\t\t\t\td.yPosition - Configuration.pie.callout.offsetY;\n\n\t\t\t\t\t\t\t// Set direction of callout\n\t\t\t\t\t\t\td.direction = CalloutDirections.LEFT;\n\t\t\t\t\t\t\tcalloutData.push(d);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn `translate(${labelTranslateX}, ${labelTranslateY})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn `translate(${d.xPosition}, ${d.yPosition})`;\n\t\t\t});\n\n\t\t// Render pie label callouts\n\t\tthis.renderCallouts(calloutData);\n\n\t\tconst optionName = Tools.getProperty(options, 'donut')\n\t\t\t? 'donut'\n\t\t\t: 'pie';\n\t\tconst alignment = Tools.getProperty(options, optionName, 'alignment');\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.getParent(), {\n\t\t\tuseAttr: true,\n\t\t});\n\n\t\t// Position Pie\n\t\tlet pieTranslateX = radius + Configuration.pie.xOffset;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\tpieTranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\tpieTranslateX = width - radius - Configuration.pie.xOffset;\n\t\t}\n\n\t\tlet pieTranslateY = radius + Configuration.pie.yOffset;\n\t\tif (calloutData.length > 0) {\n\t\t\tpieTranslateY += Configuration.pie.yOffsetCallout;\n\t\t}\n\n\t\tsvg.attr('transform', `translate(${pieTranslateX}, ${pieTranslateY})`);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\trenderCallouts(calloutData: any[]) {\n\t\tconst svg = DOMUtils.appendOrSelect(\n\t\t\tthis.getContainerSVG(),\n\t\t\t'g.callouts'\n\t\t)\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'callouts');\n\n\t\t// Update data on callouts\n\t\tconst callouts = svg.selectAll('g.callout').data(calloutData);\n\n\t\tcallouts.exit().remove();\n\n\t\tconst enteringCallouts = callouts\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.classed('callout', true)\n\t\t\t// a11y\n\t\t\t.attr('role', `${Roles.GRAPHICS_SYMBOL} ${Roles.GROUP}`)\n\t\t\t.attr('aria-roledescription', 'label callout');\n\n\t\t// Update data values for each callout\n\t\t// For the horizontal and vertical lines to use\n\t\tenteringCallouts.merge(callouts).datum(function (d) {\n\t\t\tconst { xPosition, yPosition, direction } = d;\n\n\t\t\tif (direction === CalloutDirections.RIGHT) {\n\t\t\t\td.startPos = {\n\t\t\t\t\tx: xPosition,\n\t\t\t\t\ty: yPosition + d.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// end position for the callout line\n\t\t\t\td.endPos = {\n\t\t\t\t\tx: xPosition + Configuration.pie.callout.offsetX,\n\t\t\t\t\ty:\n\t\t\t\t\t\tyPosition -\n\t\t\t\t\t\tConfiguration.pie.callout.offsetY +\n\t\t\t\t\t\td.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// the intersection point of the vertical and horizontal line\n\t\t\t\td.intersectPointX =\n\t\t\t\t\td.endPos.x - Configuration.pie.callout.horizontalLineLength;\n\t\t\t} else {\n\t\t\t\t// start position for the callout line\n\t\t\t\td.startPos = {\n\t\t\t\t\tx: xPosition,\n\t\t\t\t\ty: yPosition + d.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// end position for the callout line should be bottom aligned to the title\n\t\t\t\td.endPos = {\n\t\t\t\t\tx: xPosition - Configuration.pie.callout.offsetX,\n\t\t\t\t\ty:\n\t\t\t\t\t\tyPosition -\n\t\t\t\t\t\tConfiguration.pie.callout.offsetY +\n\t\t\t\t\t\td.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// the intersection point of the vertical and horizontal line\n\t\t\t\td.intersectPointX =\n\t\t\t\t\td.endPos.x + Configuration.pie.callout.horizontalLineLength;\n\t\t\t}\n\n\t\t\t// Store the necessary data in the DOM element\n\t\t\treturn d;\n\t\t});\n\n\t\t// draw vertical line\n\t\tconst enteringVerticalLines = enteringCallouts\n\t\t\t.append('line')\n\t\t\t.classed('vertical-line', true);\n\n\t\tenteringVerticalLines\n\t\t\t.merge(svg.selectAll('line.vertical-line'))\n\t\t\t.datum(function (d: any) {\n\t\t\t\treturn select(this.parentNode).datum();\n\t\t\t})\n\t\t\t.style('stroke-width', '1px')\n\t\t\t.attr('x1', (d) => d.startPos.x)\n\t\t\t.attr('y1', (d) => d.startPos.y)\n\t\t\t.attr('x2', (d) => d.intersectPointX)\n\t\t\t.attr('y2', (d) => d.endPos.y);\n\n\t\t// draw horizontal line\n\t\tconst enteringHorizontalLines = enteringCallouts\n\t\t\t.append('line')\n\t\t\t.classed('horizontal-line', true);\n\n\t\tenteringHorizontalLines\n\t\t\t.merge(svg.selectAll('line.horizontal-line'))\n\t\t\t.datum(function (d: any) {\n\t\t\t\treturn select(this.parentNode).datum();\n\t\t\t})\n\t\t\t.style('stroke-width', '1px')\n\t\t\t.attr('x1', (d) => d.intersectPointX)\n\t\t\t.attr('y1', (d) => d.endPos.y)\n\t\t\t.attr('x2', (d) => d.endPos.x)\n\t\t\t.attr('y2', (d) => d.endPos.y);\n\t}\n\n\t// Highlight elements that match the hovered legend item\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-bar')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td.data[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\t// Un-highlight all elements\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-mouseout-bar')\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.transition(\n\t\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t\t'pie_slice_mouseover'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.attr('d', self.hoverArc);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEOVER, {\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\tconst { groupMapsTo } = self.getOptions().data;\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.data[groupMapsTo],\n\t\t\t\t\t\t\tvalue: datum.data.value,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEMOVE, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_CLICK, {\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', false)\n\t\t\t\t\t.transition(\n\t\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t\t'pie_slice_mouseover'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.attr('d', self.arc);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEOUT, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Helper functions\n\tprotected computeRadius() {\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst radius: number = Math.min(width, height) / 2;\n\n\t\treturn radius + Configuration.pie.radiusOffset;\n\t}\n}\n"]}
1
+ {"version":3,"file":"pie.js","sourceRoot":"","sources":["pie.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tCalloutDirections,\n\tRoles,\n\tEvents,\n\tAlignments,\n\tColorClassNameTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { arc, pie } from 'd3-shape';\nimport { interpolate } from 'd3-interpolate';\n\n// Pie slice tween function\nfunction arcTween(a, arcFunc) {\n\tconst i = interpolate(this._current, a);\n\n\treturn (t) => {\n\t\tthis._current = i(t);\n\t\treturn arcFunc(this._current);\n\t};\n}\n\nexport class Pie extends Component {\n\ttype = 'pie';\n\n\t// We need to store our arcs\n\t// So that addEventListeners()\n\t// Can access them\n\tarc: any;\n\thoverArc: any;\n\n\tinit() {\n\t\tconst eventsFragment = this.services.events;\n\n\t\t// Highlight correct circle on legend item hovers\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\n\t\t// Un-highlight circles on legend item mouseouts\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tgetInnerRadius() {\n\t\treturn Configuration.pie.innerRadius;\n\t}\n\n\trender(animate = true) {\n\t\tconst self = this;\n\t\tconst svg = this.getContainerSVG();\n\n\t\t// remove any slices that are valued at 0 because they dont need to be rendered and will create extra padding\n\t\tconst displayData = this.model\n\t\t\t.getDisplayData()\n\t\t\t.filter((data) => data.value > 0);\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\n\t\tthis.arc = arc().innerRadius(this.getInnerRadius()).outerRadius(radius);\n\n\t\t// Set the hover arc radius\n\t\tthis.hoverArc = arc()\n\t\t\t.innerRadius(this.getInnerRadius())\n\t\t\t.outerRadius(radius + Configuration.pie.hoverArc.outerRadiusOffset);\n\n\t\t// Setup the pie layout\n\t\tconst pieLayout = pie()\n\t\t\t.value((d: any) => d.value)\n\t\t\t.sort(null)\n\t\t\t.padAngle(Configuration.pie.padAngle);\n\n\t\t// Sort pie layout data based off of the indecies the layout creates\n\t\tconst pieLayoutData = pieLayout(displayData).sort(\n\t\t\t(a: any, b: any) => a.index - b.index\n\t\t);\n\n\t\t// Update data on all slices\n\t\tconst slicesGroup = DOMUtils.appendOrSelect(svg, 'g.slices')\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'slices');\n\n\t\tconst paths = slicesGroup\n\t\t\t.selectAll('path.slice')\n\t\t\t.data(pieLayoutData, (d) => d.data[groupMapsTo]);\n\n\t\t// Remove slices that need to be exited\n\t\tpaths.exit().attr('opacity', 0).remove();\n\n\t\t// Add new slices that are being introduced\n\t\tconst enteringPaths = paths\n\t\t\t.enter()\n\t\t\t.append('path')\n\t\t\t.classed('slice', true)\n\t\t\t.attr('opacity', 0);\n\n\t\t// Update styles & position on existing and entering slices\n\t\tenteringPaths\n\t\t\t.merge(paths)\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d.data[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'slice',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill', (d) => self.model.getFillColor(d.data[groupMapsTo]))\n\t\t\t.attr('d', this.arc)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'pie-slice-enter-update',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'slice')\n\t\t\t.attr(\n\t\t\t\t'aria-label',\n\t\t\t\t(d) =>\n\t\t\t\t\t`${d.value}, ${\n\t\t\t\t\t\tTools.convertValueToPercentage(\n\t\t\t\t\t\t\td.data.value,\n\t\t\t\t\t\t\tdisplayData\n\t\t\t\t\t\t) + '%'\n\t\t\t\t\t}`\n\t\t\t)\n\t\t\t// Tween\n\t\t\t.attrTween('d', function (a) {\n\t\t\t\treturn arcTween.bind(this)(a, self.arc);\n\t\t\t});\n\n\t\t// Draw the slice labels\n\t\tconst labelData = pieLayoutData.filter((x) => x.value > 0);\n\t\tconst labelsGroup = DOMUtils.appendOrSelect(svg, 'g.labels')\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'labels');\n\n\t\tconst labels = labelsGroup\n\t\t\t.selectAll('text.pie-label')\n\t\t\t.data(labelData, (d: any) => d.data[groupMapsTo]);\n\n\t\t// Remove labels that are existing\n\t\tlabels.exit().attr('opacity', 0).remove();\n\n\t\t// Add labels that are being introduced\n\t\tconst enteringLabels = labels\n\t\t\t.enter()\n\t\t\t.append('text')\n\t\t\t.classed('pie-label', true);\n\n\t\t// Update styles & position on existing & entering labels\n\t\tconst calloutData = [];\n\t\tenteringLabels\n\t\t\t.merge(labels)\n\t\t\t.style('text-anchor', 'middle')\n\t\t\t.text((d) => {\n\t\t\t\tif (options.pie.labels.formatter) {\n\t\t\t\t\treturn options.pie.labels.formatter(d);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tTools.convertValueToPercentage(d.data.value, displayData) +\n\t\t\t\t\t'%'\n\t\t\t\t);\n\t\t\t})\n\t\t\t// Calculate dimensions in order to transform\n\t\t\t.datum(function (d) {\n\t\t\t\tconst marginedRadius = radius + 7;\n\n\t\t\t\tconst theta = (d.endAngle - d.startAngle) / 2 + d.startAngle;\n\t\t\t\tconst deg = (theta / Math.PI) * 180;\n\n\t\t\t\tconst textLength = this.getComputedTextLength();\n\t\t\t\td.textOffsetX = textLength / 2;\n\t\t\t\td.textOffsetY = deg > 90 && deg < 270 ? 10 : 0;\n\n\t\t\t\td.xPosition =\n\t\t\t\t\t(d.textOffsetX + marginedRadius) * Math.sin(theta);\n\t\t\t\td.yPosition =\n\t\t\t\t\t(d.textOffsetY + marginedRadius) * -Math.cos(theta);\n\n\t\t\t\treturn d;\n\t\t\t})\n\t\t\t.attr('transform', function (d, i) {\n\t\t\t\tconst totalSlices = labelData.length;\n\t\t\t\tconst sliceAngleDeg =\n\t\t\t\t\t(d.endAngle - d.startAngle) * (180 / Math.PI);\n\n\t\t\t\t// check if last 2 slices (or just last) are < the threshold\n\t\t\t\tif (i >= totalSlices - 2) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tsliceAngleDeg < Configuration.pie.callout.minSliceDegree\n\t\t\t\t\t) {\n\t\t\t\t\t\tlet labelTranslateX, labelTranslateY;\n\t\t\t\t\t\tif (d.index === totalSlices - 1) {\n\t\t\t\t\t\t\tlabelTranslateX =\n\t\t\t\t\t\t\t\td.xPosition +\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.offsetX +\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.textMargin +\n\t\t\t\t\t\t\t\td.textOffsetX;\n\t\t\t\t\t\t\tlabelTranslateY =\n\t\t\t\t\t\t\t\td.yPosition - Configuration.pie.callout.offsetY;\n\n\t\t\t\t\t\t\t// Set direction of callout\n\t\t\t\t\t\t\td.direction = CalloutDirections.RIGHT;\n\t\t\t\t\t\t\tcalloutData.push(d);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlabelTranslateX =\n\t\t\t\t\t\t\t\td.xPosition -\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.offsetX -\n\t\t\t\t\t\t\t\td.textOffsetX -\n\t\t\t\t\t\t\t\tConfiguration.pie.callout.textMargin;\n\t\t\t\t\t\t\tlabelTranslateY =\n\t\t\t\t\t\t\t\td.yPosition - Configuration.pie.callout.offsetY;\n\n\t\t\t\t\t\t\t// Set direction of callout\n\t\t\t\t\t\t\td.direction = CalloutDirections.LEFT;\n\t\t\t\t\t\t\tcalloutData.push(d);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn `translate(${labelTranslateX}, ${labelTranslateY})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn `translate(${d.xPosition}, ${d.yPosition})`;\n\t\t\t});\n\n\t\t// Render pie label callouts\n\t\tthis.renderCallouts(calloutData);\n\n\t\tconst optionName = Tools.getProperty(options, 'donut')\n\t\t\t? 'donut'\n\t\t\t: 'pie';\n\t\tconst alignment = Tools.getProperty(options, optionName, 'alignment');\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.getParent(), {\n\t\t\tuseAttr: true,\n\t\t});\n\n\t\t// Position Pie\n\t\tlet pieTranslateX = radius + Configuration.pie.xOffset;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\tpieTranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\tpieTranslateX = width - radius - Configuration.pie.xOffset;\n\t\t}\n\n\t\tlet pieTranslateY = radius + Configuration.pie.yOffset;\n\t\tif (calloutData.length > 0) {\n\t\t\tpieTranslateY += Configuration.pie.yOffsetCallout;\n\t\t}\n\n\t\tsvg.attr('transform', `translate(${pieTranslateX}, ${pieTranslateY})`);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\trenderCallouts(calloutData: any[]) {\n\t\tconst svg = DOMUtils.appendOrSelect(\n\t\t\tthis.getContainerSVG(),\n\t\t\t'g.callouts'\n\t\t)\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'callouts');\n\n\t\t// Update data on callouts\n\t\tconst callouts = svg.selectAll('g.callout').data(calloutData);\n\n\t\tcallouts.exit().remove();\n\n\t\tconst enteringCallouts = callouts\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.classed('callout', true)\n\t\t\t// a11y\n\t\t\t.attr('role', `${Roles.GRAPHICS_SYMBOL} ${Roles.GROUP}`)\n\t\t\t.attr('aria-roledescription', 'label callout');\n\n\t\t// Update data values for each callout\n\t\t// For the horizontal and vertical lines to use\n\t\tenteringCallouts.merge(callouts).datum(function (d) {\n\t\t\tconst { xPosition, yPosition, direction } = d;\n\n\t\t\tif (direction === CalloutDirections.RIGHT) {\n\t\t\t\td.startPos = {\n\t\t\t\t\tx: xPosition,\n\t\t\t\t\ty: yPosition + d.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// end position for the callout line\n\t\t\t\td.endPos = {\n\t\t\t\t\tx: xPosition + Configuration.pie.callout.offsetX,\n\t\t\t\t\ty:\n\t\t\t\t\t\tyPosition -\n\t\t\t\t\t\tConfiguration.pie.callout.offsetY +\n\t\t\t\t\t\td.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// the intersection point of the vertical and horizontal line\n\t\t\t\td.intersectPointX =\n\t\t\t\t\td.endPos.x - Configuration.pie.callout.horizontalLineLength;\n\t\t\t} else {\n\t\t\t\t// start position for the callout line\n\t\t\t\td.startPos = {\n\t\t\t\t\tx: xPosition,\n\t\t\t\t\ty: yPosition + d.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// end position for the callout line should be bottom aligned to the title\n\t\t\t\td.endPos = {\n\t\t\t\t\tx: xPosition - Configuration.pie.callout.offsetX,\n\t\t\t\t\ty:\n\t\t\t\t\t\tyPosition -\n\t\t\t\t\t\tConfiguration.pie.callout.offsetY +\n\t\t\t\t\t\td.textOffsetY,\n\t\t\t\t};\n\n\t\t\t\t// the intersection point of the vertical and horizontal line\n\t\t\t\td.intersectPointX =\n\t\t\t\t\td.endPos.x + Configuration.pie.callout.horizontalLineLength;\n\t\t\t}\n\n\t\t\t// Store the necessary data in the DOM element\n\t\t\treturn d;\n\t\t});\n\n\t\t// draw vertical line\n\t\tconst enteringVerticalLines = enteringCallouts\n\t\t\t.append('line')\n\t\t\t.classed('vertical-line', true);\n\n\t\tenteringVerticalLines\n\t\t\t.merge(svg.selectAll('line.vertical-line'))\n\t\t\t.datum(function (d: any) {\n\t\t\t\treturn select(this.parentNode).datum();\n\t\t\t})\n\t\t\t.style('stroke-width', '1px')\n\t\t\t.attr('x1', (d) => d.startPos.x)\n\t\t\t.attr('y1', (d) => d.startPos.y)\n\t\t\t.attr('x2', (d) => d.intersectPointX)\n\t\t\t.attr('y2', (d) => d.endPos.y);\n\n\t\t// draw horizontal line\n\t\tconst enteringHorizontalLines = enteringCallouts\n\t\t\t.append('line')\n\t\t\t.classed('horizontal-line', true);\n\n\t\tenteringHorizontalLines\n\t\t\t.merge(svg.selectAll('line.horizontal-line'))\n\t\t\t.datum(function (d: any) {\n\t\t\t\treturn select(this.parentNode).datum();\n\t\t\t})\n\t\t\t.style('stroke-width', '1px')\n\t\t\t.attr('x1', (d) => d.intersectPointX)\n\t\t\t.attr('y1', (d) => d.endPos.y)\n\t\t\t.attr('x2', (d) => d.endPos.x)\n\t\t\t.attr('y2', (d) => d.endPos.y);\n\t}\n\n\t// Highlight elements that match the hovered legend item\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-bar')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td.data[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\t// Un-highlight all elements\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-mouseout-bar')\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('path.slice')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.transition(\n\t\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t\t'pie_slice_mouseover'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.attr('d', self.hoverArc);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEOVER, {\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\tconst { groupMapsTo } = self.getOptions().data;\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.data[groupMapsTo],\n\t\t\t\t\t\t\tvalue: datum.data.value,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEMOVE, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_CLICK, {\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', false)\n\t\t\t\t\t.transition(\n\t\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t\t'pie_slice_mouseover'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.attr('d', self.arc);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Pie.SLICE_MOUSEOUT, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Helper functions\n\tprotected computeRadius() {\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst radius: number = Math.min(width, height) / 2;\n\n\t\treturn radius + Configuration.pie.radiusOffset;\n\t}\n}\n"]}
@@ -278,9 +278,11 @@ var Scatter = /** @class */ (function (_super) {
278
278
  var domainIdentifier_1 = self.services.cartesianScales.getDomainIdentifier(datum);
279
279
  hoveredElement
280
280
  .classed('unfilled', !self.model.getIsFilled(datum[groupMapsTo], datum[domainIdentifier_1], datum, filled_1))
281
- .style("fill", function (d) { return filled_1
282
- ? self.model.getFillColor(d[groupMapsTo], d[domainIdentifier_1], d)
283
- : null; });
281
+ .style('fill', function (d) {
282
+ return filled_1
283
+ ? self.model.getFillColor(d[groupMapsTo], d[domainIdentifier_1], d)
284
+ : null;
285
+ });
284
286
  }
285
287
  // Dispatch mouse event
286
288
  self.services.events.dispatchEvent(Events.Scatter.SCATTER_MOUSEOUT, {
@@ -1 +1 @@
1
- {"version":3,"file":"scatter.js","sourceRoot":"","sources":["scatter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Roles, Events, ColorClassNameTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\n\nexport class Scatter extends Component {\n\ttype = 'scatter';\n\tscatterData: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tif (fadeInOnChartHolderMouseover) {\n\t\t\t// Fade-in scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\t\tthis.handleChartHolderOnHover\n\t\t\t);\n\t\t\t// Fade-out scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\t\tthis.handleChartHolderOnMouseOut\n\t\t\t);\n\t\t}\n\t}\n\n\tfilterBasedOnZoomDomain(data) {\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier(\n\t\t\tdata\n\t\t);\n\t\tconst zoomDomain = this.model.get('zoomDomain');\n\t\tif (zoomDomain !== undefined) {\n\t\t\treturn data.filter(\n\t\t\t\t(d) =>\n\t\t\t\t\td[domainIdentifier].getTime() > zoomDomain[0].getTime() &&\n\t\t\t\t\td[domainIdentifier].getTime() < zoomDomain[1].getTime()\n\t\t\t);\n\t\t}\n\t\treturn data;\n\t}\n\n\tgetScatterData() {\n\t\tconst options = this.getOptions();\n\n\t\tconst { stacked } = this.configs;\n\n\t\tlet scatterData;\n\t\tif (stacked) {\n\t\t\tconst percentage = Object.keys(options.axes).some(\n\t\t\t\t(axis) => options.axes[axis].percentage\n\t\t\t);\n\t\t\tscatterData = this.model.getStackedData({\n\t\t\t\tgroups: this.configs.groups,\n\t\t\t\tpercentage,\n\t\t\t});\n\t\t} else {\n\t\t\tscatterData = this.model\n\t\t\t\t.getDisplayData(this.configs.groups)\n\t\t\t\t.filter((d) => {\n\t\t\t\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier(\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\td[rangeIdentifier] !== undefined &&\n\t\t\t\t\t\td[rangeIdentifier] !== null\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t}\n\n\t\t// filter out datapoints that aren't part of the zoomed domain\n\t\treturn this.filterBasedOnZoomDomain(scatterData);\n\t}\n\n\trender(animate: boolean) {\n\t\tconst isScatterEnabled =\n\t\t\tTools.getProperty(this.getOptions(), 'points', 'enabled') ||\n\t\t\tTools.getProperty(this.getOptions(), 'bubble', 'enabled');\n\n\t\tif (!isScatterEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab container SVG\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier();\n\n\t\t// Update data on dot groups\n\t\tconst circles = svg\n\t\t\t.selectAll('circle.dot')\n\t\t\t.data(\n\t\t\t\tthis.getScatterData(),\n\t\t\t\t(datum) => `${datum[groupMapsTo]}-${datum[domainIdentifier]}`\n\t\t\t);\n\n\t\t// Remove circles that need to be removed\n\t\tcircles.exit().attr('opacity', 0).remove();\n\n\t\t// Add the dot groups that need to be introduced\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('dot', true)\n\t\t\t.attr('opacity', 0);\n\n\t\t// Apply styling & position\n\t\tconst circlesToStyle = enteringCircles.merge(circles);\n\t\tthis.styleCircles(circlesToStyle, animate);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// A value is an anomaly if is above all defined domain and range thresholds\n\tisDatapointThresholdAnomaly(datum: any, index: number) {\n\t\tconst { handleThresholds } = this.configs;\n\t\tif (!handleThresholds) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { cartesianScales } = this.services;\n\t\tconst orientation = cartesianScales.getOrientation();\n\n\t\t// Get highest domain and range thresholds\n\t\tconst [\n\t\t\txThreshold,\n\t\t\tyThreshold,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tthis.services.cartesianScales.getHighestDomainThreshold(),\n\t\t\tthis.services.cartesianScales.getHighestRangeThreshold(),\n\t\t\torientation\n\t\t);\n\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\t(d, i) => this.services.cartesianScales.getDomainValue(d, i),\n\t\t\t(d, i) => this.services.cartesianScales.getRangeValue(d, i),\n\t\t\torientation\n\t\t);\n\n\t\t// Get datum x and y values\n\t\tconst xValue = getXValue(datum, index);\n\t\tconst yValue = getYValue(datum, index);\n\n\t\t// To be an anomaly, the value has to be higher or equal than the threshold value\n\t\t// (if are present, both range and domain threshold values)\n\t\tif (yThreshold && xThreshold) {\n\t\t\treturn (\n\t\t\t\tyValue <= yThreshold.scaleValue &&\n\t\t\t\txValue >= xThreshold.scaleValue\n\t\t\t);\n\t\t}\n\n\t\tif (yThreshold) {\n\t\t\treturn yValue <= yThreshold.scaleValue;\n\t\t}\n\n\t\tif (xThreshold) {\n\t\t\treturn xValue >= xThreshold.scaleValue;\n\t\t}\n\t}\n\n\tstyleCircles(selection: Selection<any, any, any, any>, animate: boolean) {\n\t\t// Chart options mixed with the internal configurations\n\t\tconst options = this.getOptions();\n\t\tconst { filled, fillOpacity } = options.points;\n\t\tconst { cartesianScales, transitions } = this.services;\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst getDomainValue = (d, i) => cartesianScales.getDomainValue(d, i);\n\t\tconst getRangeValue = (d, i) => cartesianScales.getRangeValue(d, i);\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tgetDomainValue,\n\t\t\tgetRangeValue,\n\t\t\tcartesianScales.getOrientation()\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tselection\n\t\t\t.raise()\n\t\t\t.classed('dot', true)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tconst isFilled = this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t\tconst classNamesNeeded = isFilled\n\t\t\t\t\t? [ColorClassNameTypes.FILL, ColorClassNameTypes.STROKE]\n\t\t\t\t\t: [ColorClassNameTypes.STROKE];\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: classNamesNeeded,\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'dot',\n\t\t\t\t});\n\t\t\t})\n\t\t\t// Set class to highlight the dots that are above all the thresholds, in both directions (vertical and horizontal)\n\t\t\t.classed('threshold-anomaly', (d, i) =>\n\t\t\t\tthis.isDatapointThresholdAnomaly(d, i)\n\t\t\t)\n\t\t\t.classed('filled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.classed('unfilled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn !this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.transition(\n\t\t\t\ttransitions.getTransition('scatter-update-enter', animate)\n\t\t\t)\n\t\t\t.attr('cx', getXValue)\n\t\t\t.attr('cy', getYValue)\n\t\t\t.attr('r', options.points.radius)\n\t\t\t.style('fill', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tif (\n\t\t\t\t\tthis.model.getIsFilled(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td,\n\t\t\t\t\t\tfilled\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn this.model.getFillColor(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.style('stroke', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getStrokeColor(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td\n\t\t\t\t);\n\t\t\t})\n\t\t\t.attr('fill-opacity', filled ? fillOpacity : 1)\n\t\t\t.attr('opacity', fadeInOnChartHolderMouseover ? 0 : 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'point')\n\t\t\t.attr('aria-label', (d) => {\n\t\t\t\tconst rangeIdentifier = cartesianScales.getRangeIdentifier(d);\n\t\t\t\treturn d[rangeIdentifier];\n\t\t\t});\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\thandleChartHolderOnHover = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-hover-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\thandleChartHolderOnMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 0);\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-scatter')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst { groupMapsTo } = self.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.attr('class', (d) =>\n\t\t\t\t\t\tself.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\t\t\toriginalClassName: hoveredElement.attr('class'),\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d) => {\n\t\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn self.model.getFillColor(\n\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.classed('unfilled', false);\n\n\t\t\t\t// Show tooltip for single datapoint\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\tdata: [datum],\n\t\t\t\t});\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (!self.configs.filled) {\n\t\t\t\t\tconst { filled } = self.getOptions().points;\n\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\tdatum\n\t\t\t\t\t);\n\t\t\t\t\thoveredElement\n\t\t\t\t\t\t.classed(\n\t\t\t\t\t\t\t'unfilled',\n\t\t\t\t\t\t\t!self.model.getIsFilled(\n\t\t\t\t\t\t\t\tdatum[groupMapsTo],\n\t\t\t\t\t\t\t\tdatum[domainIdentifier],\n\t\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t\t\tfilled\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.style(\"fill\", d => filled \n\t\t\t\t\t\t\t? self.model.getFillColor(\n\t\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\t\td\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\n\t\t// Remove legend listeners\n\t\tconst { events } = this.services;\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\tthis.handleChartHolderOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\tthis.handleChartHolderOnMouseOut\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"file":"scatter.js","sourceRoot":"","sources":["scatter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Roles, Events, ColorClassNameTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\n\nexport class Scatter extends Component {\n\ttype = 'scatter';\n\tscatterData: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tif (fadeInOnChartHolderMouseover) {\n\t\t\t// Fade-in scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\t\tthis.handleChartHolderOnHover\n\t\t\t);\n\t\t\t// Fade-out scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\t\tthis.handleChartHolderOnMouseOut\n\t\t\t);\n\t\t}\n\t}\n\n\tfilterBasedOnZoomDomain(data) {\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier(\n\t\t\tdata\n\t\t);\n\t\tconst zoomDomain = this.model.get('zoomDomain');\n\t\tif (zoomDomain !== undefined) {\n\t\t\treturn data.filter(\n\t\t\t\t(d) =>\n\t\t\t\t\td[domainIdentifier].getTime() > zoomDomain[0].getTime() &&\n\t\t\t\t\td[domainIdentifier].getTime() < zoomDomain[1].getTime()\n\t\t\t);\n\t\t}\n\t\treturn data;\n\t}\n\n\tgetScatterData() {\n\t\tconst options = this.getOptions();\n\n\t\tconst { stacked } = this.configs;\n\n\t\tlet scatterData;\n\t\tif (stacked) {\n\t\t\tconst percentage = Object.keys(options.axes).some(\n\t\t\t\t(axis) => options.axes[axis].percentage\n\t\t\t);\n\t\t\tscatterData = this.model.getStackedData({\n\t\t\t\tgroups: this.configs.groups,\n\t\t\t\tpercentage,\n\t\t\t});\n\t\t} else {\n\t\t\tscatterData = this.model\n\t\t\t\t.getDisplayData(this.configs.groups)\n\t\t\t\t.filter((d) => {\n\t\t\t\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier(\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\td[rangeIdentifier] !== undefined &&\n\t\t\t\t\t\td[rangeIdentifier] !== null\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t}\n\n\t\t// filter out datapoints that aren't part of the zoomed domain\n\t\treturn this.filterBasedOnZoomDomain(scatterData);\n\t}\n\n\trender(animate: boolean) {\n\t\tconst isScatterEnabled =\n\t\t\tTools.getProperty(this.getOptions(), 'points', 'enabled') ||\n\t\t\tTools.getProperty(this.getOptions(), 'bubble', 'enabled');\n\n\t\tif (!isScatterEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab container SVG\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier();\n\n\t\t// Update data on dot groups\n\t\tconst circles = svg\n\t\t\t.selectAll('circle.dot')\n\t\t\t.data(\n\t\t\t\tthis.getScatterData(),\n\t\t\t\t(datum) => `${datum[groupMapsTo]}-${datum[domainIdentifier]}`\n\t\t\t);\n\n\t\t// Remove circles that need to be removed\n\t\tcircles.exit().attr('opacity', 0).remove();\n\n\t\t// Add the dot groups that need to be introduced\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('dot', true)\n\t\t\t.attr('opacity', 0);\n\n\t\t// Apply styling & position\n\t\tconst circlesToStyle = enteringCircles.merge(circles);\n\t\tthis.styleCircles(circlesToStyle, animate);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// A value is an anomaly if is above all defined domain and range thresholds\n\tisDatapointThresholdAnomaly(datum: any, index: number) {\n\t\tconst { handleThresholds } = this.configs;\n\t\tif (!handleThresholds) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { cartesianScales } = this.services;\n\t\tconst orientation = cartesianScales.getOrientation();\n\n\t\t// Get highest domain and range thresholds\n\t\tconst [\n\t\t\txThreshold,\n\t\t\tyThreshold,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tthis.services.cartesianScales.getHighestDomainThreshold(),\n\t\t\tthis.services.cartesianScales.getHighestRangeThreshold(),\n\t\t\torientation\n\t\t);\n\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\t(d, i) => this.services.cartesianScales.getDomainValue(d, i),\n\t\t\t(d, i) => this.services.cartesianScales.getRangeValue(d, i),\n\t\t\torientation\n\t\t);\n\n\t\t// Get datum x and y values\n\t\tconst xValue = getXValue(datum, index);\n\t\tconst yValue = getYValue(datum, index);\n\n\t\t// To be an anomaly, the value has to be higher or equal than the threshold value\n\t\t// (if are present, both range and domain threshold values)\n\t\tif (yThreshold && xThreshold) {\n\t\t\treturn (\n\t\t\t\tyValue <= yThreshold.scaleValue &&\n\t\t\t\txValue >= xThreshold.scaleValue\n\t\t\t);\n\t\t}\n\n\t\tif (yThreshold) {\n\t\t\treturn yValue <= yThreshold.scaleValue;\n\t\t}\n\n\t\tif (xThreshold) {\n\t\t\treturn xValue >= xThreshold.scaleValue;\n\t\t}\n\t}\n\n\tstyleCircles(selection: Selection<any, any, any, any>, animate: boolean) {\n\t\t// Chart options mixed with the internal configurations\n\t\tconst options = this.getOptions();\n\t\tconst { filled, fillOpacity } = options.points;\n\t\tconst { cartesianScales, transitions } = this.services;\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst getDomainValue = (d, i) => cartesianScales.getDomainValue(d, i);\n\t\tconst getRangeValue = (d, i) => cartesianScales.getRangeValue(d, i);\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tgetDomainValue,\n\t\t\tgetRangeValue,\n\t\t\tcartesianScales.getOrientation()\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tselection\n\t\t\t.raise()\n\t\t\t.classed('dot', true)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tconst isFilled = this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t\tconst classNamesNeeded = isFilled\n\t\t\t\t\t? [ColorClassNameTypes.FILL, ColorClassNameTypes.STROKE]\n\t\t\t\t\t: [ColorClassNameTypes.STROKE];\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: classNamesNeeded,\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'dot',\n\t\t\t\t});\n\t\t\t})\n\t\t\t// Set class to highlight the dots that are above all the thresholds, in both directions (vertical and horizontal)\n\t\t\t.classed('threshold-anomaly', (d, i) =>\n\t\t\t\tthis.isDatapointThresholdAnomaly(d, i)\n\t\t\t)\n\t\t\t.classed('filled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.classed('unfilled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn !this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.transition(\n\t\t\t\ttransitions.getTransition('scatter-update-enter', animate)\n\t\t\t)\n\t\t\t.attr('cx', getXValue)\n\t\t\t.attr('cy', getYValue)\n\t\t\t.attr('r', options.points.radius)\n\t\t\t.style('fill', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tif (\n\t\t\t\t\tthis.model.getIsFilled(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td,\n\t\t\t\t\t\tfilled\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn this.model.getFillColor(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.style('stroke', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getStrokeColor(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td\n\t\t\t\t);\n\t\t\t})\n\t\t\t.attr('fill-opacity', filled ? fillOpacity : 1)\n\t\t\t.attr('opacity', fadeInOnChartHolderMouseover ? 0 : 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'point')\n\t\t\t.attr('aria-label', (d) => {\n\t\t\t\tconst rangeIdentifier = cartesianScales.getRangeIdentifier(d);\n\t\t\t\treturn d[rangeIdentifier];\n\t\t\t});\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\thandleChartHolderOnHover = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-hover-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\thandleChartHolderOnMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 0);\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-scatter')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst { groupMapsTo } = self.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.attr('class', (d) =>\n\t\t\t\t\t\tself.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\t\t\toriginalClassName: hoveredElement.attr('class'),\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d) => {\n\t\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn self.model.getFillColor(\n\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.classed('unfilled', false);\n\n\t\t\t\t// Show tooltip for single datapoint\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\tdata: [datum],\n\t\t\t\t});\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (!self.configs.filled) {\n\t\t\t\t\tconst { filled } = self.getOptions().points;\n\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\tdatum\n\t\t\t\t\t);\n\t\t\t\t\thoveredElement\n\t\t\t\t\t\t.classed(\n\t\t\t\t\t\t\t'unfilled',\n\t\t\t\t\t\t\t!self.model.getIsFilled(\n\t\t\t\t\t\t\t\tdatum[groupMapsTo],\n\t\t\t\t\t\t\t\tdatum[domainIdentifier],\n\t\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t\t\tfilled\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.style('fill', (d) =>\n\t\t\t\t\t\t\tfilled\n\t\t\t\t\t\t\t\t? self.model.getFillColor(\n\t\t\t\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\t\t\t\td\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\n\t\t// Remove legend listeners\n\t\tconst { events } = this.services;\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\tthis.handleChartHolderOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\tthis.handleChartHolderOnMouseOut\n\t\t);\n\t}\n}\n"]}
@@ -44,6 +44,10 @@ export declare const lines: {
44
44
  unselected: number;
45
45
  selected: number;
46
46
  };
47
+ weight: {
48
+ selected: number;
49
+ unselected: number;
50
+ };
47
51
  };
48
52
  export declare const meter: {
49
53
  statusBar: {
@@ -45,6 +45,10 @@ export var lines = {
45
45
  unselected: 0.3,
46
46
  selected: 1,
47
47
  },
48
+ weight: {
49
+ selected: 2,
50
+ unselected: 1,
51
+ },
48
52
  };
49
53
  export var meter = {
50
54
  statusBar: {
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZoomBarTypes } from './interfaces';\n\nexport const color = {\n\tpairingOptions: {\n\t\t'1-color': 4,\n\t\t'2-color': 5,\n\t\t'3-color': 5,\n\t\t'4-color': 3,\n\t\t'5-color': 2,\n\t\t'14-color': 1,\n\t},\n};\n\nexport const area = {\n\topacity: {\n\t\tunselected: 0,\n\t\tselected: 0.4,\n\t},\n};\n\nexport const axis = {\n\tticks: {\n\t\tnumber: 7,\n\t\trotateIfSmallerThan: 30,\n\t\tverticalSpaceRatio: 2.5,\n\t\thorizontalSpaceRatio: 3.5,\n\t},\n\tpaddingRatio: 0.1,\n};\n\nexport const legend = {\n\titems: {\n\t\tstatus: {\n\t\t\tACTIVE: 1,\n\t\t\tDISABLED: 0,\n\t\t},\n\t\thorizontalSpace: 12,\n\t\tverticalSpace: 24,\n\t\ttextYOffset: 8,\n\t},\n\tcheckbox: {\n\t\tradius: 6.5,\n\t\tspaceAfter: 4,\n\t},\n};\n\nexport const lines = {\n\topacity: {\n\t\tunselected: 0.3,\n\t\tselected: 1,\n\t},\n};\n\nexport const meter = {\n\tstatusBar: {\n\t\tpaddingRight: 5,\n\t},\n\tstatus: {\n\t\tindicatorSize: 16,\n\t\tpaddingLeft: 15,\n\t},\n};\n\nexport const pie = {\n\tradiusOffset: -15,\n\tinnerRadius: 2,\n\tpadAngle: 0.007,\n\thoverArc: {\n\t\touterRadiusOffset: 3,\n\t},\n\txOffset: 30,\n\tyOffset: 20,\n\tyOffsetCallout: 10,\n\tcallout: {\n\t\tminSliceDegree: 5,\n\t\toffsetX: 15,\n\t\toffsetY: 12,\n\t\thorizontalLineLength: 8,\n\t\ttextMargin: 2,\n\t},\n};\n\nexport const radar = {\n\topacity: {\n\t\tunselected: 0.1,\n\t\tselected: 0.3,\n\t},\n\txLabelPadding: 10,\n\tyLabelPadding: 8,\n\tyTicksNumber: 4,\n\tminRange: 10,\n\txAxisRectHeight: 50,\n\tdotsRadius: 5,\n};\n\nexport const spacers = {\n\tdefault: {\n\t\tsize: 24,\n\t},\n};\n\nexport const tooltips = {\n\thorizontalOffset: 10,\n};\n\n/**\n * Base transition configuration\n */\nexport const transitions = {\n\tdefault: {\n\t\tduration: 300,\n\t},\n\tpie_slice_mouseover: {\n\t\tduration: 100,\n\t},\n\tpie_chart_titles: {\n\t\tduration: 375,\n\t},\n\tgraph_element_mouseover_fill_update: {\n\t\tduration: 100,\n\t},\n\tgraph_element_mouseout_fill_update: {\n\t\tduration: 100,\n\t},\n};\n\nexport const toolbar = {\n\tbuttonSize: 32,\n\ticonSize: 20,\n\theight: 32,\n\tspacerHeight: 10,\n\ticonPadding: 6,\n};\n\nexport const zoomBar = {\n\theight: {\n\t\t[ZoomBarTypes.GRAPH_VIEW]: 32,\n\t\t[ZoomBarTypes.SLIDER_VIEW]: 10,\n\t},\n\tspacerHeight: 8,\n\thandleWidth: 5,\n\thandleBarWidth: 1,\n\thandleBarHeight: 12,\n};\n"]}
1
+ {"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZoomBarTypes } from './interfaces';\n\nexport const color = {\n\tpairingOptions: {\n\t\t'1-color': 4,\n\t\t'2-color': 5,\n\t\t'3-color': 5,\n\t\t'4-color': 3,\n\t\t'5-color': 2,\n\t\t'14-color': 1,\n\t},\n};\n\nexport const area = {\n\topacity: {\n\t\tunselected: 0,\n\t\tselected: 0.4,\n\t},\n};\n\nexport const axis = {\n\tticks: {\n\t\tnumber: 7,\n\t\trotateIfSmallerThan: 30,\n\t\tverticalSpaceRatio: 2.5,\n\t\thorizontalSpaceRatio: 3.5,\n\t},\n\tpaddingRatio: 0.1,\n};\n\nexport const legend = {\n\titems: {\n\t\tstatus: {\n\t\t\tACTIVE: 1,\n\t\t\tDISABLED: 0,\n\t\t},\n\t\thorizontalSpace: 12,\n\t\tverticalSpace: 24,\n\t\ttextYOffset: 8,\n\t},\n\tcheckbox: {\n\t\tradius: 6.5,\n\t\tspaceAfter: 4,\n\t},\n};\n\nexport const lines = {\n\topacity: {\n\t\tunselected: 0.3,\n\t\tselected: 1,\n\t},\n\tweight: {\n\t\tselected: 2,\n\t\tunselected: 1,\n\t},\n};\n\nexport const meter = {\n\tstatusBar: {\n\t\tpaddingRight: 5,\n\t},\n\tstatus: {\n\t\tindicatorSize: 16,\n\t\tpaddingLeft: 15,\n\t},\n};\n\nexport const pie = {\n\tradiusOffset: -15,\n\tinnerRadius: 2,\n\tpadAngle: 0.007,\n\thoverArc: {\n\t\touterRadiusOffset: 3,\n\t},\n\txOffset: 30,\n\tyOffset: 20,\n\tyOffsetCallout: 10,\n\tcallout: {\n\t\tminSliceDegree: 5,\n\t\toffsetX: 15,\n\t\toffsetY: 12,\n\t\thorizontalLineLength: 8,\n\t\ttextMargin: 2,\n\t},\n};\n\nexport const radar = {\n\topacity: {\n\t\tunselected: 0.1,\n\t\tselected: 0.3,\n\t},\n\txLabelPadding: 10,\n\tyLabelPadding: 8,\n\tyTicksNumber: 4,\n\tminRange: 10,\n\txAxisRectHeight: 50,\n\tdotsRadius: 5,\n};\n\nexport const spacers = {\n\tdefault: {\n\t\tsize: 24,\n\t},\n};\n\nexport const tooltips = {\n\thorizontalOffset: 10,\n};\n\n/**\n * Base transition configuration\n */\nexport const transitions = {\n\tdefault: {\n\t\tduration: 300,\n\t},\n\tpie_slice_mouseover: {\n\t\tduration: 100,\n\t},\n\tpie_chart_titles: {\n\t\tduration: 375,\n\t},\n\tgraph_element_mouseover_fill_update: {\n\t\tduration: 100,\n\t},\n\tgraph_element_mouseout_fill_update: {\n\t\tduration: 100,\n\t},\n};\n\nexport const toolbar = {\n\tbuttonSize: 32,\n\ticonSize: 20,\n\theight: 32,\n\tspacerHeight: 10,\n\ticonPadding: 6,\n};\n\nexport const zoomBar = {\n\theight: {\n\t\t[ZoomBarTypes.GRAPH_VIEW]: 32,\n\t\t[ZoomBarTypes.SLIDER_VIEW]: 10,\n\t},\n\tspacerHeight: 8,\n\thandleWidth: 5,\n\thandleBarWidth: 1,\n\thandleBarHeight: 12,\n};\n"]}
package/configuration.js CHANGED
@@ -229,11 +229,11 @@ var bubbleChart = Tools.merge({}, axisChart, {
229
229
  ];
230
230
  },
231
231
  fillOpacity: 0.2,
232
- enabled: true
232
+ enabled: true,
233
233
  },
234
234
  points: {
235
- filled: true
236
- }
235
+ filled: true,
236
+ },
237
237
  });
238
238
  /**
239
239
  * options specific to pie charts
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["configuration.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from './tools';\nimport {\n\tBaseChartOptions,\n\tAxisChartOptions,\n\tScatterChartOptions,\n\tLollipopChartOptions,\n\tLineChartOptions,\n\tBarChartOptions,\n\tStackedBarChartOptions,\n\tAreaChartOptions,\n\tPieChartOptions,\n\tGaugeChartOptions,\n\tDonutChartOptions,\n\tBubbleChartOptions,\n\tRadarChartOptions,\n\tComboChartOptions,\n\tTreemapChartOptions,\n\t// Components\n\tGridOptions,\n\tRulerOptions,\n\tAxesOptions,\n\tTimeScaleOptions,\n\tTooltipOptions,\n\tLegendOptions,\n\tStackedBarOptions,\n\tMeterChartOptions,\n\tToolbarOptions,\n\tToolbarControl,\n\tZoomBarsOptions,\n\t// ENUMS\n\tAlignments,\n\tGaugeTypes,\n\tLegendPositions,\n\tTruncationTypes,\n\tToolbarControlTypes,\n\tZoomBarTypes,\n} from './interfaces';\nimport enUSLocaleObject from 'date-fns/locale/en-US/index';\n\n/*\n *****************************\n * User configurable options *\n *****************************\n */\n\n/**\n * Default truncation configuration\n */\nconst standardTruncationOptions = {\n\ttype: TruncationTypes.END_LINE,\n\tthreshold: 16,\n\tnumCharacter: 14,\n};\n\n/**\n * Legend options\n */\nconst legend: LegendOptions = {\n\tenabled: true,\n\tposition: LegendPositions.BOTTOM,\n\tclickable: true,\n\ttruncation: standardTruncationOptions,\n\talignment: Alignments.LEFT,\n\torder: null,\n};\n\n/**\n * Grid options\n */\nexport const grid: GridOptions = {\n\tx: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 15,\n\t},\n\ty: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 5,\n\t},\n};\n\n/**\n * Ruler options\n */\nexport const ruler: RulerOptions = {\n\t// enable or disable ruler\n\tenabled: true,\n};\n\n/**\n * Tooltip options\n */\nexport const baseTooltip: TooltipOptions = {\n\tenabled: true,\n\tshowTotal: true,\n\tvalueFormatter: (d) => d.toLocaleString(),\n\ttruncation: standardTruncationOptions,\n};\n\n// These options will be managed by Tools.mergeDefaultChartOptions\n// by removing the ones the user is not providing,\n// and by TwoDimensionalAxes.\nconst axes: AxesOptions = {\n\ttop: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tbottom: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tleft: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tright: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n};\n\nexport const timeScale: TimeScaleOptions = {\n\taddSpaceOnEdges: 1,\n\tshowDayName: false,\n\tlocaleObject: enUSLocaleObject,\n\ttimeIntervalFormats: {\n\t\t'15seconds': { primary: 'MMM d, pp', secondary: 'pp' },\n\t\tminute: { primary: 'MMM d, p', secondary: 'p' },\n\t\t'30minutes': { primary: 'MMM d, p', secondary: 'p' },\n\t\thourly: { primary: 'MMM d, hh a', secondary: 'hh a' },\n\t\tdaily: { primary: 'MMM d', secondary: 'd' },\n\t\tweekly: { primary: 'eee, MMM d', secondary: 'eee' },\n\t\tmonthly: { primary: 'MMM yyyy', secondary: 'MMM' },\n\t\tquarterly: { primary: \"QQQ ''yy\", secondary: 'QQQ' },\n\t\tyearly: { primary: 'yyyy', secondary: 'yyyy' },\n\t},\n};\n\n/**\n * Base chart options common to any chart\n */\nconst chart: BaseChartOptions = {\n\twidth: null,\n\theight: null,\n\tresizable: true,\n\ttooltip: baseTooltip,\n\tlegend,\n\tstyle: {\n\t\tprefix: 'cc',\n\t},\n\tdata: {\n\t\tgroupMapsTo: 'group',\n\t\tloading: false,\n\t\tselectedGroups: [],\n\t},\n\tcolor: {\n\t\tscale: null,\n\t\tpairing: {\n\t\t\tnumberOfVariants: null,\n\t\t\toption: 1,\n\t\t},\n\t\tgradient: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n};\n\n/**\n * Options common to any chart with an axis\n */\nconst axisChart: AxisChartOptions = Tools.merge({}, chart, {\n\taxes,\n\ttimeScale,\n\tgrid,\n\truler,\n\tzoomBar: {\n\t\tzoomRatio: 0.4,\n\t\tminZoomRatio: 0.01,\n\t\ttop: {\n\t\t\tenabled: false,\n\t\t\ttype: ZoomBarTypes.GRAPH_VIEW,\n\t\t},\n\t} as ZoomBarsOptions,\n\ttoolbar: {\n\t\tenabled: false,\n\t\tnumberOfIcons: 3,\n\t\tcontrols: [],\n\t} as ToolbarOptions,\n} as AxisChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst baseBarChart: BarChartOptions = Tools.merge({}, axisChart, {\n\tbars: {\n\t\tmaxWidth: 16,\n\t},\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 1,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst simpleBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to simple bar charts\n */\nconst groupedBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to stacked bar charts\n */\nconst stackedBarChart: StackedBarChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: Tools.merge({}, baseBarChart.bars, {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions),\n} as BarChartOptions);\n\n/**\n * options specific to scatter charts\n */\nconst scatterChart: ScatterChartOptions = Tools.merge({}, axisChart, {\n\tpoints: {\n\t\t// default point radius to 4\n\t\tradius: 4,\n\t\tfillOpacity: 0.3,\n\t\tfilled: true,\n\t\tenabled: true,\n\t},\n} as ScatterChartOptions);\n\n/**\n * options specific to lollipop charts\n */\nconst lollipopChart: LollipopChartOptions = scatterChart as LollipopChartOptions;\n\n/**\n * options specific to line charts\n */\nconst lineChart: LineChartOptions = Tools.merge({}, scatterChart, {\n\tpoints: {\n\t\t// default point radius to 3\n\t\tradius: 3,\n\t\tfilled: false,\n\t\tenabled: true,\n\t},\n} as LineChartOptions);\n\n/**\n * options specific to area charts\n */\nconst areaChart: AreaChartOptions = Tools.merge({}, lineChart, {\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as LineChartOptions);\n\n/**\n * options specific to stacked area charts\n */\nconst stackedAreaChart = areaChart;\n\n/**\n * options specific to bubble charts\n */\nconst bubbleChart: BubbleChartOptions = Tools.merge({}, axisChart, {\n\tbubble: {\n\t\tradiusMapsTo: 'radius',\n\t\tradiusRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 3) / 400,\n\t\t\t\t(smallerChartDimension * 25) / 400,\n\t\t\t];\n\t\t},\n\t\tfillOpacity: 0.2,\n\t\tenabled: true\n\t},\n\tpoints: {\n\t\tfilled: true\n\t}\n} as BubbleChartOptions);\n\n/**\n * options specific to pie charts\n */\nconst pieChart: PieChartOptions = Tools.merge({}, chart, {\n\tpie: {\n\t\tlabels: {\n\t\t\tformatter: null,\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as PieChartOptions);\n\n/**\n * options specific to gauge charts\n */\nconst gaugeChart: GaugeChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tgauge: {\n\t\ttype: GaugeTypes.SEMI,\n\t\tarcWidth: 16,\n\t\tdeltaArrow: {\n\t\t\tsize: (radius) => radius / 8,\n\t\t\tenabled: true,\n\t\t},\n\t\tstatus: null,\n\t\tnumberSpacing: 10,\n\t\tdeltaFontSize: (radius) => radius / 8,\n\t\tvalueFontSize: (radius) => radius / 2.5,\n\t\tnumberFormatter: (number) =>\n\t\t\tnumber.toFixed(2) % 1 !== 0\n\t\t\t\t? number.toFixed(2).toLocaleString()\n\t\t\t\t: number.toFixed().toLocaleString(),\n\t\talignment: Alignments.LEFT,\n\t},\n} as GaugeChartOptions);\n\n/**\n * options specific to donut charts\n */\nconst donutChart: DonutChartOptions = Tools.merge({}, pieChart, {\n\tdonut: {\n\t\tcenter: {\n\t\t\tnumberFontSize: (radius) =>\n\t\t\t\tMath.min((radius / 100) * 24, 24) + 'px',\n\t\t\ttitleFontSize: (radius) => Math.min((radius / 100) * 15, 15) + 'px',\n\t\t\ttitleYPosition: (radius) => Math.min((radius / 80) * 20, 20),\n\t\t\tnumberFormatter: (number) => Math.floor(number).toLocaleString(),\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as DonutChartOptions);\n\nconst meterChart: MeterChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tmeter: {\n\t\theight: 8,\n\t\tstatusBar: {\n\t\t\tpercentageIndicator: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t},\n\t},\n} as MeterChartOptions);\n\n/**\n * options specific to radar charts\n */\nconst radarChart: RadarChartOptions = Tools.merge({}, chart, {\n\tradar: {\n\t\taxes: {\n\t\t\tangle: 'key',\n\t\t\tvalue: 'value',\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n\ttooltip: {\n\t\tgridline: {\n\t\t\tenabled: true,\n\t\t},\n\t\tvalueFormatter: (value) =>\n\t\t\tvalue !== null && value !== undefined ? value : 'N/A',\n\t},\n} as RadarChartOptions);\n\n/**\n * options specific to combo charts\n */\nconst comboChart: ComboChartOptions = Tools.merge({}, baseBarChart, {\n\tcomboChartTypes: [],\n} as ComboChartOptions);\n\n/*\n * options specific to treemap charts\n */\nconst treemapChart: TreemapChartOptions = Tools.merge({}, chart, {\n\tdata: Tools.merge(chart.data, {\n\t\tgroupMapsTo: 'name',\n\t}),\n} as TreemapChartOptions);\n\nexport const options = {\n\tchart,\n\taxisChart,\n\tsimpleBarChart,\n\tgroupedBarChart,\n\tstackedBarChart,\n\tbubbleChart,\n\tlineChart,\n\tareaChart,\n\tstackedAreaChart,\n\tscatterChart,\n\tlollipopChart,\n\tpieChart,\n\tdonutChart,\n\tmeterChart,\n\tradarChart,\n\tgaugeChart,\n\tcomboChart,\n\ttreemapChart,\n};\n\nexport * from './configuration-non-customizable';\n"]}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["configuration.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tools } from './tools';\nimport {\n\tBaseChartOptions,\n\tAxisChartOptions,\n\tScatterChartOptions,\n\tLollipopChartOptions,\n\tLineChartOptions,\n\tBarChartOptions,\n\tStackedBarChartOptions,\n\tAreaChartOptions,\n\tPieChartOptions,\n\tGaugeChartOptions,\n\tDonutChartOptions,\n\tBubbleChartOptions,\n\tRadarChartOptions,\n\tComboChartOptions,\n\tTreemapChartOptions,\n\t// Components\n\tGridOptions,\n\tRulerOptions,\n\tAxesOptions,\n\tTimeScaleOptions,\n\tTooltipOptions,\n\tLegendOptions,\n\tStackedBarOptions,\n\tMeterChartOptions,\n\tToolbarOptions,\n\tToolbarControl,\n\tZoomBarsOptions,\n\t// ENUMS\n\tAlignments,\n\tGaugeTypes,\n\tLegendPositions,\n\tTruncationTypes,\n\tToolbarControlTypes,\n\tZoomBarTypes,\n} from './interfaces';\nimport enUSLocaleObject from 'date-fns/locale/en-US/index';\n\n/*\n *****************************\n * User configurable options *\n *****************************\n */\n\n/**\n * Default truncation configuration\n */\nconst standardTruncationOptions = {\n\ttype: TruncationTypes.END_LINE,\n\tthreshold: 16,\n\tnumCharacter: 14,\n};\n\n/**\n * Legend options\n */\nconst legend: LegendOptions = {\n\tenabled: true,\n\tposition: LegendPositions.BOTTOM,\n\tclickable: true,\n\ttruncation: standardTruncationOptions,\n\talignment: Alignments.LEFT,\n\torder: null,\n};\n\n/**\n * Grid options\n */\nexport const grid: GridOptions = {\n\tx: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 15,\n\t},\n\ty: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 5,\n\t},\n};\n\n/**\n * Ruler options\n */\nexport const ruler: RulerOptions = {\n\t// enable or disable ruler\n\tenabled: true,\n};\n\n/**\n * Tooltip options\n */\nexport const baseTooltip: TooltipOptions = {\n\tenabled: true,\n\tshowTotal: true,\n\tvalueFormatter: (d) => d.toLocaleString(),\n\ttruncation: standardTruncationOptions,\n};\n\n// These options will be managed by Tools.mergeDefaultChartOptions\n// by removing the ones the user is not providing,\n// and by TwoDimensionalAxes.\nconst axes: AxesOptions = {\n\ttop: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tbottom: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tleft: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tright: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n};\n\nexport const timeScale: TimeScaleOptions = {\n\taddSpaceOnEdges: 1,\n\tshowDayName: false,\n\tlocaleObject: enUSLocaleObject,\n\ttimeIntervalFormats: {\n\t\t'15seconds': { primary: 'MMM d, pp', secondary: 'pp' },\n\t\tminute: { primary: 'MMM d, p', secondary: 'p' },\n\t\t'30minutes': { primary: 'MMM d, p', secondary: 'p' },\n\t\thourly: { primary: 'MMM d, hh a', secondary: 'hh a' },\n\t\tdaily: { primary: 'MMM d', secondary: 'd' },\n\t\tweekly: { primary: 'eee, MMM d', secondary: 'eee' },\n\t\tmonthly: { primary: 'MMM yyyy', secondary: 'MMM' },\n\t\tquarterly: { primary: \"QQQ ''yy\", secondary: 'QQQ' },\n\t\tyearly: { primary: 'yyyy', secondary: 'yyyy' },\n\t},\n};\n\n/**\n * Base chart options common to any chart\n */\nconst chart: BaseChartOptions = {\n\twidth: null,\n\theight: null,\n\tresizable: true,\n\ttooltip: baseTooltip,\n\tlegend,\n\tstyle: {\n\t\tprefix: 'cc',\n\t},\n\tdata: {\n\t\tgroupMapsTo: 'group',\n\t\tloading: false,\n\t\tselectedGroups: [],\n\t},\n\tcolor: {\n\t\tscale: null,\n\t\tpairing: {\n\t\t\tnumberOfVariants: null,\n\t\t\toption: 1,\n\t\t},\n\t\tgradient: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n};\n\n/**\n * Options common to any chart with an axis\n */\nconst axisChart: AxisChartOptions = Tools.merge({}, chart, {\n\taxes,\n\ttimeScale,\n\tgrid,\n\truler,\n\tzoomBar: {\n\t\tzoomRatio: 0.4,\n\t\tminZoomRatio: 0.01,\n\t\ttop: {\n\t\t\tenabled: false,\n\t\t\ttype: ZoomBarTypes.GRAPH_VIEW,\n\t\t},\n\t} as ZoomBarsOptions,\n\ttoolbar: {\n\t\tenabled: false,\n\t\tnumberOfIcons: 3,\n\t\tcontrols: [],\n\t} as ToolbarOptions,\n} as AxisChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst baseBarChart: BarChartOptions = Tools.merge({}, axisChart, {\n\tbars: {\n\t\tmaxWidth: 16,\n\t},\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 1,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst simpleBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to simple bar charts\n */\nconst groupedBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to stacked bar charts\n */\nconst stackedBarChart: StackedBarChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: Tools.merge({}, baseBarChart.bars, {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions),\n} as BarChartOptions);\n\n/**\n * options specific to scatter charts\n */\nconst scatterChart: ScatterChartOptions = Tools.merge({}, axisChart, {\n\tpoints: {\n\t\t// default point radius to 4\n\t\tradius: 4,\n\t\tfillOpacity: 0.3,\n\t\tfilled: true,\n\t\tenabled: true,\n\t},\n} as ScatterChartOptions);\n\n/**\n * options specific to lollipop charts\n */\nconst lollipopChart: LollipopChartOptions = scatterChart as LollipopChartOptions;\n\n/**\n * options specific to line charts\n */\nconst lineChart: LineChartOptions = Tools.merge({}, scatterChart, {\n\tpoints: {\n\t\t// default point radius to 3\n\t\tradius: 3,\n\t\tfilled: false,\n\t\tenabled: true,\n\t},\n} as LineChartOptions);\n\n/**\n * options specific to area charts\n */\nconst areaChart: AreaChartOptions = Tools.merge({}, lineChart, {\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as LineChartOptions);\n\n/**\n * options specific to stacked area charts\n */\nconst stackedAreaChart = areaChart;\n\n/**\n * options specific to bubble charts\n */\nconst bubbleChart: BubbleChartOptions = Tools.merge({}, axisChart, {\n\tbubble: {\n\t\tradiusMapsTo: 'radius',\n\t\tradiusRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 3) / 400,\n\t\t\t\t(smallerChartDimension * 25) / 400,\n\t\t\t];\n\t\t},\n\t\tfillOpacity: 0.2,\n\t\tenabled: true,\n\t},\n\tpoints: {\n\t\tfilled: true,\n\t},\n} as BubbleChartOptions);\n\n/**\n * options specific to pie charts\n */\nconst pieChart: PieChartOptions = Tools.merge({}, chart, {\n\tpie: {\n\t\tlabels: {\n\t\t\tformatter: null,\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as PieChartOptions);\n\n/**\n * options specific to gauge charts\n */\nconst gaugeChart: GaugeChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tgauge: {\n\t\ttype: GaugeTypes.SEMI,\n\t\tarcWidth: 16,\n\t\tdeltaArrow: {\n\t\t\tsize: (radius) => radius / 8,\n\t\t\tenabled: true,\n\t\t},\n\t\tstatus: null,\n\t\tnumberSpacing: 10,\n\t\tdeltaFontSize: (radius) => radius / 8,\n\t\tvalueFontSize: (radius) => radius / 2.5,\n\t\tnumberFormatter: (number) =>\n\t\t\tnumber.toFixed(2) % 1 !== 0\n\t\t\t\t? number.toFixed(2).toLocaleString()\n\t\t\t\t: number.toFixed().toLocaleString(),\n\t\talignment: Alignments.LEFT,\n\t},\n} as GaugeChartOptions);\n\n/**\n * options specific to donut charts\n */\nconst donutChart: DonutChartOptions = Tools.merge({}, pieChart, {\n\tdonut: {\n\t\tcenter: {\n\t\t\tnumberFontSize: (radius) =>\n\t\t\t\tMath.min((radius / 100) * 24, 24) + 'px',\n\t\t\ttitleFontSize: (radius) => Math.min((radius / 100) * 15, 15) + 'px',\n\t\t\ttitleYPosition: (radius) => Math.min((radius / 80) * 20, 20),\n\t\t\tnumberFormatter: (number) => Math.floor(number).toLocaleString(),\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as DonutChartOptions);\n\nconst meterChart: MeterChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tmeter: {\n\t\theight: 8,\n\t\tstatusBar: {\n\t\t\tpercentageIndicator: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t},\n\t},\n} as MeterChartOptions);\n\n/**\n * options specific to radar charts\n */\nconst radarChart: RadarChartOptions = Tools.merge({}, chart, {\n\tradar: {\n\t\taxes: {\n\t\t\tangle: 'key',\n\t\t\tvalue: 'value',\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n\ttooltip: {\n\t\tgridline: {\n\t\t\tenabled: true,\n\t\t},\n\t\tvalueFormatter: (value) =>\n\t\t\tvalue !== null && value !== undefined ? value : 'N/A',\n\t},\n} as RadarChartOptions);\n\n/**\n * options specific to combo charts\n */\nconst comboChart: ComboChartOptions = Tools.merge({}, baseBarChart, {\n\tcomboChartTypes: [],\n} as ComboChartOptions);\n\n/*\n * options specific to treemap charts\n */\nconst treemapChart: TreemapChartOptions = Tools.merge({}, chart, {\n\tdata: Tools.merge(chart.data, {\n\t\tgroupMapsTo: 'name',\n\t}),\n} as TreemapChartOptions);\n\nexport const options = {\n\tchart,\n\taxisChart,\n\tsimpleBarChart,\n\tgroupedBarChart,\n\tstackedBarChart,\n\tbubbleChart,\n\tlineChart,\n\tareaChart,\n\tstackedAreaChart,\n\tscatterChart,\n\tlollipopChart,\n\tpieChart,\n\tdonutChart,\n\tmeterChart,\n\tradarChart,\n\tgaugeChart,\n\tcomboChart,\n\ttreemapChart,\n};\n\nexport * from './configuration-non-customizable';\n"]}