@fluentui/react-charting 5.6.14 → 5.7.0

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 (32) hide show
  1. package/CHANGELOG.json +73 -1
  2. package/CHANGELOG.md +40 -2
  3. package/dist/react-charting.js +1 -1
  4. package/dist/react-charting.min.js +1 -1
  5. package/lib/components/AreaChart/AreaChart.base.d.ts +1 -0
  6. package/lib/components/AreaChart/AreaChart.base.js +10 -5
  7. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  8. package/lib/components/LineChart/LineChart.base.js +6 -7
  9. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  10. package/lib/types/IDataPoint.d.ts +14 -1
  11. package/lib/types/IDataPoint.js.map +1 -1
  12. package/lib/version.js +1 -1
  13. package/lib/version.js.map +1 -1
  14. package/lib-amd/components/AreaChart/AreaChart.base.d.ts +1 -0
  15. package/lib-amd/components/AreaChart/AreaChart.base.js +10 -5
  16. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  17. package/lib-amd/components/LineChart/LineChart.base.js +6 -7
  18. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  19. package/lib-amd/types/IDataPoint.d.ts +14 -1
  20. package/lib-amd/types/IDataPoint.js.map +1 -1
  21. package/lib-amd/version.js +1 -1
  22. package/lib-amd/version.js.map +1 -1
  23. package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +1 -0
  24. package/lib-commonjs/components/AreaChart/AreaChart.base.js +10 -5
  25. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  26. package/lib-commonjs/components/LineChart/LineChart.base.js +6 -7
  27. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  28. package/lib-commonjs/types/IDataPoint.d.ts +14 -1
  29. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  30. package/lib-commonjs/version.js +1 -1
  31. package/lib-commonjs/version.js.map +1 -1
  32. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.base.js","sourceRoot":"../src/","sources":["components/LineChart/LineChart.base.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAW,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAEL,cAAc,GAYf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,MAAM,EACN,UAAU,GACX,MAAM,uBAAuB,CAAC;AAG/B,IAAM,aAAa,GAAG,kBAAkB,EAA0C,CAAC;AAEnF,IAAK,SAGJ;AAHD,WAAK,SAAS;IACZ,oDAAc,CAAA;IACd,2DAAiB,CAAA;AACnB,CAAC,EAHI,SAAS,KAAT,SAAS,QAGb;AAED,IAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,6FAA6F;AAC7F,IAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;;GAMG;AACH,IAAM,aAAa,GAAG,UAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;IACnE,IAAM,aAAa,GAAG;QACpB,cAAc;QACd,OAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,gBACd,CAAC,GAAG,CAAC,SAAI,CAAC,GAAG,CAAC,gBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,iBACtC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,iBACb,CAAC,GAAG,CAAC,SAAI,CAAC,GAAG,CAAC,gBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,YACzC;QACF,QAAQ;QACR,OAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cACvB;QACH,UAAU;QACV,OAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,mBAC1B,CAAC,GAAG,CAAC,GAAG,CAAC,iBACV,CAAC,UAAI,CAAC,GAAG,MAAM,GAAG,CAAC,QAAI;QAC3B,SAAS;QACT,MAAI,CAAC,UAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBACd,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,gBACd,CAAC,UAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBACd,CAAC,GAAG,CAAC,GAAG,CAAC,UAAI,CAAC,aACf;QACH,SAAS;QACT,MAAI,CAAC,UAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBACnB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,QAAI;QACnC,SAAS;QACT,OAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC5B,CAAC,GAAG,GAAG,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC5B,CAAC,GAAG,CAAC,UAAI,CAAC,iBACV,CAAC,GAAG,GAAG,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC5B,CAAC,GAAG,GAAG,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC5B,CAAC,GAAG,CAAC,UAAI,CAAC,aACX;QACH,UAAU;QACV,MAAI,CAAC,UAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAClB,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,cACjC;QACH,SAAS;QACT,OAAI,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,WAAI,CAAC,GAAG,KAAK,GAAG,CAAC,kBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,kBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,cAChC;KACJ,CAAC;IACF,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AAsBF;IAAmC,iCAAiD;IAuBlF,uBAAY,KAAsB;QAAlC,cACE,kBAAM,KAAK,CAAC,SA2Bb;QA/CD,8DAA8D;QACtD,mBAAW,GAAQ,EAAE,CAAC;QAC9B,8DAA8D;QACtD,mBAAW,GAAQ,EAAE,CAAC;QAStB,wBAAgB,GAAW,EAAE,CAAC;QA4I9B,2CAAmC,GAAG,UAAC,aAAkC;YACvE,IAAA,KAAyC,OAAI,CAAC,KAAK,6BAAf,EAApC,4BAA4B,mBAAG,KAAK,KAAA,CAAgB;YAC5D,OAAO,aAAa;gBAClB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,IAAsB,EAAE,KAAa,IAAK,OAAA,uBACxD,IAAI,KACP,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAChD,EAH2D,CAG3D,CAAC;gBACL,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC;QAEM,6BAAqB,GAAG;YAC9B,OAAO,OAAI,CAAC,KAAK,CAAC,uBAAuB;gBACvC,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAClE,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC,2BAA2B;oBACxC,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,OAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBAC1E,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,CAAC;QAEM,mBAAW,GAAG,UAAC,OAAiB;YACtC,OAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC;QAEM,gCAAwB,GAAG,UACjC,MAAmB,EACnB,MAAmB,EACnB,eAAuB,EACvB,cAAsB,EACtB,QAA2B;YAE3B,OAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,OAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,OAAI,CAAC,sBAAsB,GAAG,OAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,YAAY,CAAC,QAAS,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEM,0CAAkC,GAAG,UAAC,aAA2D;YACvG,IAAI,OAAI,CAAC,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,MAAM,EAAE;gBACtD,OAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1E,OAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aAC9C;iBAAM;gBACL,OAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,aAAa,CAAC,MAAM;oBACpC,YAAY,EAAE,aAAa,CAAC,MAAM;iBACnC,CAAC,CAAC;gBACH,OAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;aAC9D;QACH,CAAC,CAAC;QAEM,wBAAgB,GAAG;YACzB,OAAI,CAAC,QAAQ,CAAC;gBACZ,oBAAoB,EAAE,EAAE;gBACxB,sBAAsB,EAAE,EAAE;gBAC1B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QA0EM,qBAAa,GAAG;YACtB,OAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,2BAAmB,GAAG,UAAC,OAAe,EAAE,UAAkB,EAAE,WAAoB;YAChF,IAAA,KAAmF,OAAI,CAAC,KAAK,EAA3F,oCAAoC,EAApC,4BAA4B,mBAAG,KAAK,KAAA,EAAE,mBAAsC,EAAtC,WAAW,mBAAG,wBAAwB,KAAe,CAAC;YAC5F,IAAA,WAAW,GAAK,OAAI,CAAC,KAAK,YAAf,CAAgB;YACnC,IAAI,4BAA4B,EAAE;gBAChC,IAAI,WAAW,KAAK,OAAO,EAAE;oBAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;iBAC5B;qBAAM,IAAI,UAAU,KAAK,CAAC,IAAI,WAAW,EAAE;oBAC1C,OAAO,WAAW,GAAG,kBAAkB,CAAC;iBACzC;qBAAM;oBACL,OAAO,SAAS,CAAC,aAAa,CAAC;iBAChC;aACF;iBAAM;gBACL,IAAI,WAAW,KAAK,OAAO,EAAE;oBAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;iBAC5B;qBAAM;oBACL,OAAO,SAAS,CAAC,aAAa,CAAC;iBAChC;aACF;QACH,CAAC,CAAC;QAEM,gBAAQ,GAAG,UACjB,IAAY,EACZ,IAAY,EACZ,OAAe,EACf,UAAkB,EAClB,WAAoB,EACpB,cAAsB;YAEd,IAAA,KAAyC,OAAI,CAAC,KAAK,6BAAf,EAApC,4BAA4B,mBAAG,KAAK,KAAA,CAAgB;YAC5D,IAAI,CAAC,GAAG,OAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACnE,IAAM,KAAK,GAAW,4BAA4B,CAAC,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzG,IAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;YAChD,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC;QACM,qBAAa,GAAG,UAAC,SAAiB,EAAE,OAAe,EAAE,UAAkB,EAAE,WAAoB;YAC3F,IAAA,WAAW,GAAK,OAAI,CAAC,KAAK,YAAf,CAAgB;YAC7B,IAAA,KAAkD,OAAI,CAAC,KAAK,EAA1D,KAAK,WAAA,EAAE,oCAAoC,EAApC,4BAA4B,mBAAG,KAAK,KAAe,CAAC;YACnE,IAAI,4BAA4B,EAAE;gBAChC,IAAI,UAAU,KAAK,CAAC,IAAI,WAAW,EAAE;oBACnC,IAAI,WAAW,KAAK,OAAO,EAAE;wBAC3B,OAAO,KAAM,CAAC,OAAO,CAAC,KAAK,CAAC;qBAC7B;yBAAM;wBACL,OAAO,SAAS,CAAC;qBAClB;iBACF;qBAAM;oBACL,IAAI,WAAW,KAAK,OAAO,EAAE;wBAC3B,OAAO,KAAM,CAAC,OAAO,CAAC,KAAK,CAAC;qBAC7B;yBAAM;wBACL,OAAO,SAAS,CAAC;qBAClB;iBACF;aACF;iBAAM;gBACL,IAAI,WAAW,KAAK,OAAO,EAAE;oBAC3B,OAAO,KAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC7B;qBAAM;oBACL,OAAO,SAAS,CAAC;iBAClB;aACF;QACH,CAAC,CAAC;QA8OM,4BAAoB,GAAG,UAAC,eAAuB;YACrD,IAAM,aAAa,GAAkB,EAAE,CAAC;YACxC,IAAI,OAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC/B,OAAI,CAAC,cAAc,GAAG,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;aACzD;iBAAM;gBACL,OAAI,CAAC,cAAc,GAAG,OAAI,CAAC,KAAK,CAAC,aAAc,CAAC;aACjD;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAM,YAAY,GAAG,OAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAErE,IAAI,YAAY,CAAC,YAAY,EAAE;oBAC7B,8FAA8F;oBAC9F,aAAa,CAAC,IAAI,CAAC,OAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBACnE;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3C,IAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvC,IAAM,OAAO,GACX,OAAI,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,MAAM;wBAC/C,OAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE;wBAC9B,OAAI,CAAC,KAAK,CAAC,gBAAgB;wBACzB,CAAC,CAAC,OAAI,CAAC,qBAAqB;wBAC5B,CAAC,CAAC,GAAG,CAAC;oBACV,aAAa,CAAC,IAAI,CAChB,8BACE,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,UAAQ,OAAI,CAAC,sBAAsB,GAAG,CAAC,MAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EACjG,WAAW,EAAE,OAAO,EACpB,CAAC,EAAE,OAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAC3B,CAAC,EAAE,OAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,eAAe,EACxC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAClE,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,KAAG,cAAc,GAAG,CAAG,GAC5B,CACH,CAAC;iBACH;aACF;YACD,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEM,yBAAiB,GAAG,UAAC,KAAa,EAAE,EAAU;YACpD,gEAAgE;YAChE,qFAAqF;YACrF,IAAM,UAAU,GAAG,wCAAwC,CAAC;YAC5D,OAAO,CACL,iCACE,EAAE,EAAE,KAAG,OAAI,CAAC,sBAAsB,GAAG,EAAI,EACzC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,KAAG,OAAI,CAAC,sBAAsB,GAAG,EAAI,EAC1C,YAAY,EAAE,gBAAgB;gBAE9B,8BAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAI,CAC9C,CACX,CAAC;QACJ,CAAC,CAAC;QAEM,mBAAW,GAAG,UAAC,UAAkB,EAAE,IAAqB,EAAE,eAAuB;YACvF,IAAI,QAAQ,GAAG,eAAe,CAAC;YAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBACrE,QAAQ,EAAE,CAAC;aACZ;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBAC7G,OAAO,GAAG,IAAI,CAAC;aAChB;YACD,OAAO,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;QAC/B,CAAC,CAAC;QAMM,oBAAY,GAAG,UACrB,MAAc,EACd,CAAgB,EAEhB,gBAAoC,EACpC,QAAgB,EAChB,6BAAmD;YAEnD,OAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,IAAM,aAAa,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAM,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,KAAK,GAAG,IAAI,CAAC,OAAI,CAAC,cAAc,EAAE,UAAC,OAA+B,IAAK,OAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;YACjG,oFAAoF;YACpF,IAAI,KAAK,EAAE;gBACT,IAAM,OAAK,GAAG,OAAI,CAAC;gBACnB,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAU,OAAI,CAAC,gBAAkB,CAAC,CAAC;gBACpF,QAAQ,CAAC,MAAI,OAAI,CAAC,aAAe,CAAC;qBAC/B,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,eAAa,OAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAM,EAAvC,CAAuC,CAAC;qBAChE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBACpC,OAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,GAAkB;oBACxC,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE;wBACxB,OAAI,CAAC,QAAQ,CAAC;4BACZ,gBAAgB,EAAE,IAAI;4BACtB,WAAW,EAAE,GAAG,CAAC,UAAU;4BAC3B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa;4BACrE,WAAW,EAAE,KAAK,CAAC,MAAM;4BACzB,iBAAiB,EAAE,KAAM;4BACzB,qBAAqB,EAAE,KAAM;4BAC7B,WAAW,EAAE,QAAQ;4BACrB,6BAA6B,+BAAA;yBAC9B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,QAAQ;iBACtB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,oBAAY,GAAG,UACrB,CAAgB,EAChB,gBAAwB,EACxB,QAAgB,EAChB,6BAAkD,EAClD,UAAwC;YAExC,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,OAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,IAAM,aAAa,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAM,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,KAAK,GAAG,OAAI,CAAC;YACnB,IAAM,KAAK,GAAG,IAAI,CAAC,OAAI,CAAC,cAAc,EAAE,UAAC,OAA+B,IAAK,OAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;YACjG,oFAAoF;YACpF,IAAI,KAAK,EAAE;gBACT,QAAQ,CAAC,MAAI,OAAI,CAAC,aAAe,CAAC;qBAC/B,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,eAAa,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAM,EAAvC,CAAuC,CAAC;qBAChE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBACpC,OAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa;oBACrE,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,iBAAiB,EAAE,KAAM;oBACzB,qBAAqB,EAAE,KAAM;oBAC7B,WAAW,EAAE,QAAQ;oBACrB,6BAA6B,+BAAA;iBAC9B,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,QAAQ;iBACtB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,oBAAY,GAAG,UAAC,IAAgB;YACtC,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC;QAEM,yBAAiB,GAAG,UAAC,IAAgB;YAC3C,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;QACH,CAAC,CAAC;QAEM,uBAAe,GAAG;YACxB,QAAQ,CAAC,MAAI,OAAI,CAAC,aAAe,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,0BAAkB,GAAG,UAC3B,aAA2D,EAC3D,cAAwC;YAExC,IAAI,aAAa,CAAC,aAAa,EAAE;gBAC/B,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC;QAEM,gDAAwC,GAAG,UAAC,YAAoC;YACtF,IAAM,iBAAiB,GAAG,OAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,EAAE,KAAK;gBAChF,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;oBACnD,OAAO,GAAG,CAAC;iBACZ;qBAAM;oBACL,OAAO,KAAK,CAAC;iBACd;YACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEP,IAAI,aAAuC,CAAC;YAC5C,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;gBAC5B,aAAa,mCAAO,OAAI,CAAC,KAAK,CAAC,oBAAoB,IAAE,YAAY,EAAC,CAAC;aACpE;iBAAM;gBACL,aAAa,GAAG,OAAI,CAAC,KAAK,CAAC,oBAAoB;qBAC5C,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;qBAC3B,MAAM,CAAC,OAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;aACzE;YAED,IAAM,yBAAyB,GAAG,OAAI,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,KAAK,OAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAc,CAAC,MAAM,CAAC;YAEpH,IACE,yBAAyB;gBACzB,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC,aAAa,IAAI,OAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC;oBACzG,CAAC,OAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAC5B;gBACA,iFAAiF;gBACjF,oFAAoF;gBACpF,OAAI,CAAC,8BAA8B,EAAE,CAAC;aACvC;iBAAM,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE;gBAC7E,gFAAgF;gBAChF,OAAI,CAAC,8BAA8B,EAAE,CAAC;aACvC;iBAAM;gBACL,+FAA+F;gBAC/F,OAAI,CAAC,QAAQ,CAAC;oBACZ,oBAAoB,EAAE,aAAa;oBACnC,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;aACJ;YAED,IAAM,0BAA0B,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,IAA4B,IAAK,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;YACpG,OAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,wDAAgD,GAAG,UAAC,oBAAyC;YACnG,IAAM,yBAAyB,GAAG,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,YAAY,EAAE,KAAK;gBAClG,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE;oBACnE,OAAO,GAAG,CAAC;iBACZ;qBAAM;oBACL,OAAO,KAAK,CAAC;iBACd;YACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEP,IAAI,qBAA4C,CAAC;YACjD,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE;gBACpC,qBAAqB,mCAAO,OAAI,CAAC,KAAK,CAAC,sBAAsB,IAAE,oBAAoB,EAAC,CAAC;aACtF;iBAAM;gBACL,qBAAqB,GAAG,OAAI,CAAC,KAAK,CAAC,sBAAsB;qBACtD,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC;qBACnC,MAAM,CAAC,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC,CAAC;aACnF;YAED,IAAM,iCAAiC,GACrC,qBAAqB,CAAC,MAAM,KAAK,CAAC,OAAI,CAAC,KAAK,CAAC,aAAa,IAAI,OAAI,CAAC,KAAK,CAAC,aAAc,CAAC,MAAM,CAAC,CAAC;YAElG,IACE,iCAAiC;gBACjC,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAc,CAAC,MAAM,KAAK,OAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC;oBACpG,CAAC,OAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EACnB;gBACA,yEAAyE;gBACzE,6EAA6E;gBAC7E,OAAI,CAAC,8BAA8B,EAAE,CAAC;aACvC;iBAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBACnF,uEAAuE;gBACvE,OAAI,CAAC,8BAA8B,EAAE,CAAC;aACvC;iBAAM;gBACL,0EAA0E;gBAC1E,OAAI,CAAC,QAAQ,CAAC;oBACZ,sBAAsB,EAAE,qBAAqB;oBAC7C,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;aACJ;YAED,IAAM,0BAA0B,GAAG,qBAAqB,CAAC,GAAG,CAC1D,UAAC,YAAiC,IAAK,OAAA,YAAY,CAAC,MAAM,EAAnB,CAAmB,CAC3D,CAAC;YACF,OAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEM,sCAA8B,GAAG;YACvC,OAAI,CAAC,QAAQ,CAAC;gBACZ,sBAAsB,EAAE,EAAE;gBAC1B,oBAAoB,EAAE,EAAE;gBACxB,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAt0BA,OAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;YAClB,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,EAAE;YACxB,sBAAsB,EAAE,EAAE;YAC1B,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,EAAE;SAChB,CAAC;QACF,OAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,OAAI,CAAC,OAAO,GAAG,OAAI,CAAC,mCAAmC,CAAC,OAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvF,OAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,OAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,OAAI,CAAC,cAAc,GAAG,WAAW,CAAC,OAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtD,OAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,OAAI,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3C,OAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3D,OAAI,CAAC,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC/C,KAAK,CAAC,oBAAoB;YACxB,KAAK,CAAC,oBAAoB,CAAC,WAAW;YACtC,CAAC,OAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;;IACrE,CAAC;IAEM,0CAAkB,GAAzB,UAA0B,SAA0B;QAClD;;WAEG;QACH,IACE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YACtC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;YACpC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAClC;YACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACvD;IACH,CAAC;IAEM,8BAAM,GAAb;QAAA,mBAuFC;QAtFO,IAAA,KAAsE,IAAI,CAAC,KAAK,EAA9E,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,oBAAoB,0BAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAe,CAAC;QACvF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5E,IAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,EAAE;YACzD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACtG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;SAC3C;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;QACtD,IAAM,YAAY,cAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,eAAe,EAAE,eAAe,CAAC,WAAW,EAC5C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,EAAE,EAAE,YAAU,IAAI,CAAC,gBAAkB,EACrC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC9B,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,qBAAqB,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EACjC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACjE,kBAAkB,EAChB,IAAI,CAAC,KAAK,CAAC,4BAA4B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB;gBACrE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACvE,CAAC,CAAC,SAAS,EACf,mBAAmB,EAAE,IAAI,EACzB,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,6BAA6B,IACpE,IAAI,CAAC,KAAK,CAAC,YAAY,CAC3B,CAAC;QACF,IAAM,UAAU,GAAG;YACjB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,UAAU;SACvB,CAAC;QAEF,OAAO,CACL,oBAAC,cAAc,eACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,iBAAiB,QACjB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,YAAY,EAAE,IAAI,CAAC,wBAAwB,EAC3C,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EACzE,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAC/C,sCAAsC;YACtC,kDAAkD;YAClD,QAAQ,EAAE,UAAC,KAAkB;gBAC3B,OAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAO,CAAC;gBACjC,OAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAO,CAAC;gBACjC,OAAO,CACL;oBACE;wBACE,8BACE,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,KAAK,CAAC,eAAe,EACzB,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,OAAI,CAAC,aAAa,EACtB,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,KAAK,GACtB;wBACF;4BACG,OAAI,CAAC,sBAAsB;4BAC3B,OAAI,CAAC,KAAK,CACT;wBACH,oBAAoB,IAAI,CACvB,oBAAC,gBAAgB,eACX,oBAAoB,IACxB,KAAK,EAAE,KAAK,CAAC,MAAO,EACpB,SAAS,EAAE,OAAI,CAAC,OAAO,CAAC,GAAI,GAAG,OAAI,CAAC,gBAAgB,EACpD,YAAY,EAAE,KAAK,CAAC,eAAgB,GAAG,EAAE,IACzC,CACH,CACC,CACH,CACJ,CAAC;YACJ,CAAC,IACD,CACH,CAAC;IACJ,CAAC;IA0DO,sCAAc,GAAtB,UAAuB,IAA8B;QAArD,mBAsEC;QArEO,IAAA,KAAwD,IAAI,CAAC,KAAK,EAAhE,WAAW,iBAAA,EAAE,oCAAoC,EAApC,4BAA4B,mBAAG,KAAK,KAAe,CAAC;QACzE,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAC7F,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,KAA6B;YAC7D,IAAM,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC;YAClC,qDAAqD;YACrD,IAAM,MAAM,uBACV,KAAK,EAAE,KAAK,CAAC,MAAO,EACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE;oBACN,IAAI,0BAA0B,EAAE;wBAC9B,OAAI,CAAC,wCAAwC,CAAC,KAAK,CAAC,CAAC;qBACtD;yBAAM;wBACL,OAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;qBAChD;gBACH,CAAC,EACD,gBAAgB,EAAE;oBAChB,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtC,CAAC,EACD,WAAW,EAAE;oBACX,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChD,CAAC,IACE,CAAC,KAAK,CAAC,WAAW,IAAI;gBACvB,KAAK,EAAE,KAAK,CAAC,WAAW;aACzB,CAAC,GACC,CAAC,4BAA4B,IAAI;gBAClC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAqB;aAChF,CAAC,CACH,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAM,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;YAC3D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,YAAiC,EAAE,KAAa;gBAC5E,IAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;gBAClC,IAAM,MAAM,GAAY;oBACtB,KAAK,OAAA;oBACL,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,MAAM,EAAE;wBACN,IAAI,0BAA0B,EAAE;4BAC9B,OAAI,CAAC,gDAAgD,CAAC,YAAY,CAAC,CAAC;yBACrE;6BAAM;4BACL,OAAI,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;yBACvD;oBACH,CAAC;oBACD,gBAAgB,EAAE;wBAChB,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtC,CAAC;oBACD,WAAW,EAAE;wBACX,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,OAAO,EAAE,OAAI,CAAC,qBAAqB;oBACnC,aAAa,EAAE,YAAY,CAAC,YAAY;iBACzC,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QAEP,IAAM,OAAO,GAAG,CACd,oBAAC,OAAO,aACN,OAAO,kCAAM,eAAe,GAAK,4BAA4B,GAC7D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EACpD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAC9C,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,mCAAmC,EACzE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,IACxC,CAAC,0BAA0B,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,EACjF,IAAI,CAAC,KAAK,CAAC,WAAW,EAC1B,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAqEO,oCAAY,GAApB,UAAqB,QAAoB;QAAzC,mBA2OC;;QA1OC,IAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;SAChD;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACxF;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAM,YAAY,GAAkB,EAAE,CAAC;YACvC,IAAM,cAAc,GAAkB,EAAE,CAAC;YACzC,IAAM,aAAa,GAAkB,EAAE,CAAC;YAExC,IAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjD,IAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,IAAA,WAAW,GAAK,IAAI,CAAC,KAAK,YAAf,CAAgB;YAC3B,IAAA,KAAK,GAAK,IAAI,CAAC,KAAK,MAAf,CAAgB;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,IAAA,KAAoE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAtF,EAAE,OAAA,EAAK,EAAE,OAAA,EAAE,gBAAgB,sBAAA,EAAE,6BAA6B,mCAA4B,CAAC;gBAClG,IAAM,QAAQ,GAAG,KAAG,IAAI,CAAC,SAAS,GAAG,CAAG,CAAC;gBACzC,aAAa,CAAC,IAAI,CAChB,gCACE,EAAE,EAAE,KAAG,IAAI,CAAC,SAAS,GAAG,CAAG,EAC3B,GAAG,EAAE,KAAG,IAAI,CAAC,SAAS,GAAG,CAAG,EAC5B,CAAC,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACvC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACjE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EACxG,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EACxG,UAAU,EAAE,IAAI,CAAC,eAAe,EAChC,WAAW,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GACjD,CACH,CAAC;aACH;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,0CAAE,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,EAA3B,CAA2B,CAAC,mCAAI,EAAE,CAAC;oCAE5E,CAAC;gBACR,IAAM,SAAS,GAAG,OAAK,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACtD,IAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBAClC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAE9B,IAAM,MAAM,GAAG,KAAG,OAAK,OAAO,GAAG,CAAC,GAAG,CAAG,CAAC;gBACzC,IAAM,QAAQ,GAAG,KAAG,OAAK,SAAS,GAAG,CAAC,GAAG,CAAG,CAAC;gBAC7C,IAAM,QAAQ,GAAG,KAAG,OAAK,SAAS,GAAG,CAAC,GAAG,CAAG,CAAC;gBACvC,IAAA,KAAoE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAA1F,EAAE,OAAA,EAAK,EAAE,OAAA,EAAE,gBAAgB,sBAAA,EAAE,6BAA6B,mCAAgC,CAAC;gBAChG,IAAA,KAAmB,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAArC,EAAE,OAAA,EAAK,EAAE,OAA4B,CAAC;gBACjD,IAAI,IAAI,GAAG,OAAK,QAAQ,CAAC,OAAK,WAAW,CAAC,EAAE,CAAC,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAChH,IAAM,WAAW,GACf,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,WAAW,KAAI,OAAK,KAAK,CAAC,WAAW,IAAI,wBAAwB,CAAC;gBAEjG,IAAM,gBAAgB,GACpB,OAAK,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,OAAK,KAAK,CAAC,YAAY,KAAK,EAAE,IAAI,OAAK,KAAK,CAAC,gBAAgB,CAAC;gBAEzG,IAAM,iBAAiB,GAAG,WAAW,KAAK,QAAQ,IAAI,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACxF,aAAa,CAAC,IAAI,CAChB,8BACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,CAAC,EAAE,IAAI,uBACY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACzC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAAO,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EACxG,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAAO,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EACxG,UAAU,EAAE,OAAK,eAAe,EAChC,OAAO,EAAE,cAAM,OAAA,OAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EAAxF,CAAwF,EACvG,MAAM,EAAE,OAAK,eAAe,EAC5B,OAAO,EAAE,OAAK,iBAAiB,CAAC,IAAI,SAAO,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,EACxF,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACpD,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACpC,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EACvD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,GACd,CACH,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,KAAK,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;oBACzC,IAAM,cAAY,GAAG,KAAG,QAAQ,GAAG,CAAC,MAAG,CAAC;oBACxC,IAAI,GAAG,OAAK,QAAQ,CAClB,OAAK,WAAW,CAAC,EAAE,CAAC,EACpB,OAAK,WAAW,CAAC,EAAE,CAAC,EACpB,cAAY,EACZ,CAAC,EACD,IAAI,EACJ,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CACtB,CAAC;oBACI,IAAA,KAGF,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAFP,oBAAkB,sBAAA,EACL,qCAAmC,mCACzC,CAAC;oBAC5B,aAAa,CAAC,IAAI,CAChB,8BACE,EAAE,EAAE,cAAY,EAChB,GAAG,EAAE,cAAY,EACjB,CAAC,EAAE,IAAI,uBACY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACzC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,CACpC,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,CACpC,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,OAAO,EAAE;4BACP,OAAA,OAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,oBAAkB,EAAE,cAAY,EAAE,qCAAmC,CAAC;wBAApG,CAAoG,EAEtG,MAAM,EAAE,OAAK,eAAe,EAC5B,OAAO,EAAE,OAAK,iBAAiB,CAAC,IAAI,SAAO,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EACpF,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACpD,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACpC,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,cAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAC1D,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,GACd,CACH,CAAC;oBACF,qCAAqC;iBACtC;gBAED,IAAI,gBAAgB,EAAE;oBACpB,oCAAoC;oBACpC,IAAI,CAAC,OAAO,EAAE;wBACZ,IAAM,eAAe,GAAG,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe;4BAClE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAY,CAAC,eAAgB,CAAC,QAAQ,EAAE,CAAC;4BAC7E,CAAC,CAAC,CAAC,CAAC;wBACN,IAAI,eAAe,GAAG,CAAC,EAAE;4BACvB,cAAc,CAAC,IAAI,CACjB,8BACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,aAAa,EAAE,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,aAAa,mCAAI,OAAO,EACpE,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,eAAe,EACxE,MAAM,EAAE,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe,KAAI,KAAM,CAAC,OAAO,CAAC,KAAK,EAC5E,OAAO,EAAE,CAAC,GACV,CACH,CAAC;yBACH;wBAED,YAAY,CAAC,IAAI,CACf,8BACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,UAAC,CAAwB;gCAC5B,OAAI,CAAC,YAAY,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC;4BAChC,CAAC,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,CAC9B,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,CAC9B,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,aAAa,mCAAI,OAAO,EACpE,eAAe,EAAE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe,EAC7D,gBAAgB,EAAE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,gBAAgB,EAC/D,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,OAAK,YAAY,CAAC,IAAI,SAAO,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAClE,CACH,CAAC;qBACH;iBACF;qBAAM;oBACL,IAAI,CAAC,OAAO,EAAE;wBACZ,YAAY,CAAC,IAAI,CACf,8BACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,aAAa,mCAAI,OAAO,EACpE,eAAe,EAAE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe,EAC7D,gBAAgB,EAAE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,gBAAgB,EAC/D,OAAO,EAAE,GAAG,GACZ,CACH,CAAC;qBACH;iBACF;;;YArKH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;wBAA3C,CAAC;aAsKT;YACD,KAAK,CAAC,IAAI,OAAV,KAAK,kCAAS,cAAc,GAAK,YAAY,GAAE;YAC/C,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,aAAa,EAAE;SAC/B;QACD,IAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;SACzB,CAAC,CAAC;QACH,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACtC,IAAI;gBACF,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBAC/F,oCAAoC;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QACD,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACpE,IAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI;gBACF,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBAC/F,oCAAoC;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,IAAM,YAAY,GAAG;gBACnB,UAAU,EAAE,UAAU,CAAC,OAAQ;gBAC/B,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,KAAK,EAAE,YAAY;aACpB,CAAC;YACF,YAAY,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;SACpD;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IA0EO,oCAAY,GAApB,UAAqB,OAAoB,EAAE,WAAmB;QAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IA0MH,oBAAC;AAAD,CAAC,AAh2BD,CAAmC,KAAK,CAAC,SAAS,GAg2BjD","sourcesContent":["import * as React from 'react';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { ILegend, Legends } from '../Legends/index';\nimport { classNamesFunction, getId, find } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfXAxislabels,\n Points,\n pointTypes,\n} from '../../utilities/index';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\nconst DEFAULT_LINE_STROKE_SIZE = 4;\n// The given shape of a icon must be 2.5 times bigger than line width (known as stroke width)\nconst PATH_MULTIPLY_SIZE = 2.5;\n\n/**\n *\n * @param x units from origin\n * @param y units from origin\n * @param w is the legnth of the each side of a shape\n * @param index index to get the shape path\n */\nconst _getPointPath = (x: number, y: number, w: number, index: number): string => {\n const allPointPaths = [\n // circle path\n `M${x - w / 2} ${y}\n A${w / 2} ${w / 2} 0 1 0 ${x + w / 2} ${y}\n M${x - w / 2} ${y}\n A ${w / 2} ${w / 2} 0 1 1 ${x + w / 2} ${y}\n `,\n //square\n `M${x - w / 2} ${y - w / 2}\n L${x + w / 2} ${y - w / 2}\n L${x + w / 2} ${y + w / 2}\n L${x - w / 2} ${y + w / 2}\n Z`,\n //triangle\n `M${x - w / 2} ${y - 0.2886 * w}\n H ${x + w / 2}\n L${x} ${y + 0.5774 * w} Z`,\n //diamond\n `M${x} ${y - w / 2}\n L${x + w / 2} ${y}\n L${x} ${y + w / 2}\n L${x - w / 2} ${y}\n Z`,\n //pyramid\n `M${x} ${y - 0.5774 * w}\n L${x + w / 2} ${y + 0.2886 * w}\n L${x - w / 2} ${y + 0.2886 * w} Z`,\n //hexagon\n `M${x - 0.5 * w} ${y - 0.866 * w}\n L${x + 0.5 * w} ${y - 0.866 * w}\n L${x + w} ${y}\n L${x + 0.5 * w} ${y + 0.866 * w}\n L${x - 0.5 * w} ${y + 0.866 * w}\n L${x - w} ${y}\n Z`,\n //pentagon\n `M${x} ${y - 0.851 * w}\n L${x + 0.6884 * w} ${y - 0.2633 * w}\n L${x + 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.6884 * w} ${y - 0.2633 * w}\n Z`,\n //octagon\n `M${x - 0.5001 * w} ${y - 1.207 * w}\n L${x + 0.5001 * w} ${y - 1.207 * w}\n L${x + 1.207 * w} ${y - 0.5001 * w}\n L${x + 1.207 * w} ${y + 0.5001 * w}\n L${x + 0.5001 * w} ${y + 1.207 * w}\n L${x - 0.5001 * w} ${y + 1.207 * w}\n L${x - 1.207 * w} ${y + 0.5001 * w}\n L${x - 1.207 * w} ${y - 0.5001 * w}\n Z`,\n ];\n return allPointPaths[index];\n};\n\ntype LineChartDataWithIndex = ILineChartPoints & { index: number };\n\nexport interface ILineChartState extends IBasestate {\n // This array contains data of selected legends for points\n selectedLegendPoints: LineChartDataWithIndex[];\n // This array contains data of selected legends for color bars\n selectedColorBarLegend: IColorFillBarsProps[];\n // This is a boolean value which is set to true\n // when at least one legend is selected\n isSelectedLegend: boolean;\n // This value will be used as customized callout props - point callout.\n dataPointCalloutProps?: ICustomizedCalloutData;\n // This value will be used as Customized callout props - For stack callout.\n stackCalloutProps?: ICustomizedCalloutData;\n // active or hovered point\n activePoint?: string;\n // x-axis callout accessibility data\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> {\n private _points: LineChartDataWithIndex[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yAxisScale: any = '';\n private _circleId: string;\n private _lineId: string;\n private _borderId: string;\n private _verticalLine: string;\n private _colorFillBarPatternId: string;\n private _uniqueCallOutID: string;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n private lines: JSX.Element[];\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _colorFillBarsOpacity: number;\n private _tooltipId: string;\n\n constructor(props: ILineChartProps) {\n super(props);\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n refSelected: '',\n selectedLegend: '',\n isCalloutVisible: false,\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n activePoint: '',\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\n this._colorFillBarsOpacity = 0.4;\n this._calloutPoints = calloutData(this._points) || [];\n this._circleId = getId('circle');\n this._lineId = getId('lineID');\n this._borderId = getId('borderID');\n this._verticalLine = getId('verticalLine');\n this._colorFillBarPatternId = getId('colorFillBarPattern');\n this._tooltipId = getId('LineChartTooltipId_');\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._calloutPoints = calloutData(this._points) || [];\n }\n }\n\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n const isXAxisDateType = getXAxisType(this._points);\n let points = this._points;\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = this.state.selectedLegendPoints.length >= 1 ? this.state.selectedLegendPoints : this._points;\n this._calloutPoints = calloutData(points);\n }\n\n const legendBars = this._createLegends(this._points!);\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: this._closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible),\n descriptionMessage:\n this.props.getCalloutDescriptionMessage && this.state.stackCalloutProps\n ? this.props.getCalloutDescriptionMessage(this.state.stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n const tickParams = {\n tickValues: tickValues,\n tickFormat: tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={data.chartTitle}\n points={points}\n chartType={ChartTypes.LineChart}\n isCalloutForStack\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={this._getMargins}\n getGraphData={this._initializeLineChartData}\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n customizedCallout={this._getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale!;\n this._yAxisScale = props.yScale!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'steelblue'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n {...eventAnnotationProps}\n scale={props.xScale!}\n chartYTop={this.margins.top! + this.eventLabelHeight}\n chartYBottom={props.containerHeight! - 35}\n />\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n\n private _injectIndexPropertyInLineChartData = (lineChartData?: ILineChartPoints[]): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n return lineChartData\n ? lineChartData.map((item: ILineChartPoints, index: number) => ({\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n }))\n : [];\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._xAxisScale = xScale;\n this._yAxisScale = yScale;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '', activeLegend: lineChartItem.legend });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({\n selectedLegend: lineChartItem.legend,\n activeLegend: lineChartItem.legend,\n });\n this._handleLegendClick(lineChartItem, lineChartItem.legend);\n }\n };\n\n private _onHoverCardHide = () => {\n this.setState({\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n });\n };\n\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const legendDataItems = data.map((point: LineChartDataWithIndex) => {\n const color: string = point.color;\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleLineLegendSelectionAction(point);\n } else {\n this._handleSingleLegendSelectionAction(point);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this.setState({ activeLegend: point.legend });\n },\n ...(point.legendShape && {\n shape: point.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[point.index % Object.keys(pointTypes).length] as ILegend['shape'],\n }),\n };\n return legend;\n });\n\n const colorFillBarsLegendDataItems = this.props.colorFillBars\n ? this.props.colorFillBars.map((colorFillBar: IColorFillBarsProps, index: number) => {\n const title = colorFillBar.legend;\n const legend: ILegend = {\n title,\n color: colorFillBar.color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);\n } else {\n this._handleSingleLegendSelectionAction(colorFillBar);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this.setState({ activeLegend: title });\n },\n opacity: this._colorFillBarsOpacity,\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n const legends = (\n <Legends\n legends={[...legendDataItems, ...colorFillBarsLegendDataItems]}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide })}\n {...this.props.legendProps}\n />\n );\n return legends;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getBoxWidthOfShape = (pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { allowMultipleShapesForPoints = false, strokeWidth = DEFAULT_LINE_STROKE_SIZE } = this.props;\n const { activePoint } = this.state;\n if (allowMultipleShapesForPoints) {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else if (pointIndex === 1 || isLastPoint) {\n return strokeWidth * PATH_MULTIPLY_SIZE;\n } else {\n return PointSize.invisibleSize;\n }\n } else {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else {\n return PointSize.invisibleSize;\n }\n }\n };\n\n private _getPath = (\n xPos: number,\n yPos: number,\n pointId: string,\n pointIndex: number,\n isLastPoint: boolean,\n pointOftheLine: number,\n ): string => {\n const { allowMultipleShapesForPoints = false } = this.props;\n let w = this._getBoxWidthOfShape(pointId, pointIndex, isLastPoint);\n const index: number = allowMultipleShapesForPoints ? pointOftheLine % Object.keys(pointTypes).length : 0;\n const widthRatio = pointTypes[index].widthRatio;\n w = widthRatio > 1 ? w / widthRatio : w;\n\n return _getPointPath(xPos, yPos, w, index);\n };\n private _getPointFill = (lineColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { activePoint } = this.state;\n const { theme, allowMultipleShapesForPoints = false } = this.props;\n if (allowMultipleShapesForPoints) {\n if (pointIndex === 1 || isLastPoint) {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n }\n };\n private _createLines(xElement: SVGElement): JSX.Element[] {\n const lines: JSX.Element[] = [];\n const points: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._points = this.state.selectedLegendPoints;\n } else {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n }\n for (let i = 0; i < this._points.length; i++) {\n const linesForLine: JSX.Element[] = [];\n const bordersForLine: JSX.Element[] = [];\n const pointsForLine: JSX.Element[] = [];\n\n const legendVal: string = this._points[i].legend;\n const lineColor: string = this._points[i].color;\n const { activePoint } = this.state;\n const { theme } = this.props;\n if (this._points[i].data.length === 1) {\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[0];\n const circleId = `${this._circleId}${i}`;\n pointsForLine.push(\n <circle\n id={`${this._circleId}${i}`}\n key={`${this._circleId}${i}`}\n r={activePoint === circleId ? 5.5 : 3.5}\n cx={this._xAxisScale(x1)}\n cy={this._yAxisScale(y1)}\n fill={activePoint === circleId ? theme!.palette.white : lineColor}\n onMouseOver={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseMove={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? 2 : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n />,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n\n for (let j = 1; j < this._points[i].data.length; j++) {\n const gapResult = this._checkInGap(j, gaps, gapIndex);\n const isInGap = gapResult.isInGap;\n gapIndex = gapResult.gapIndex;\n\n const lineId = `${this._lineId}${i}${j}`;\n const borderId = `${this._borderId}${i}${j}`;\n const circleId = `${this._circleId}${i}${j}`;\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[j - 1];\n const { x: x2, y: y2 } = this._points[i].data[j];\n let path = this._getPath(this._xAxisScale(x1), this._yAxisScale(y1), circleId, j, false, this._points[i].index);\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this.state.activeLegend === legendVal || this.state.activeLegend === '' || this.state.isSelectedLegend;\n\n const hideNonActiveDots = activePoint !== circleId && this._points[i].hideNonActiveDots;\n pointsForLine.push(\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={i === 0 ? true : false}\n onMouseOver={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseMove={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n onClick={this._onDataPointClick.bind(this, this._points[i].data[j - 1].onDataPointClick)}\n visibility={hideNonActiveDots ? 'hidden' : 'visible'}\n opacity={isLegendSelected ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={2}\n />,\n );\n if (j + 1 === this._points[i].data.length) {\n const lastCircleId = `${circleId}${j}L`;\n path = this._getPath(\n this._xAxisScale(x2),\n this._yAxisScale(y2),\n lastCircleId,\n j,\n true,\n this._points[i].index,\n );\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n pointsForLine.push(\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={i === 0 ? true : false}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x2, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n onClick={this._onDataPointClick.bind(this, this._points[i].data[j].onDataPointClick)}\n visibility={hideNonActiveDots ? 'hidden' : 'visible'}\n opacity={isLegendSelected ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={2}\n />,\n );\n /* eslint-enable react/jsx-no-bind */\n }\n\n if (isLegendSelected) {\n // don't draw line if it is in a gap\n if (!isInGap) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <line\n id={borderId}\n key={borderId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.palette.white}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeWidth={strokeWidth}\n ref={(e: SVGLineElement | null) => {\n this._refCallback(e!, lineId);\n }}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n )}\n onMouseOut={this._handleMouseOut}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={1}\n onClick={this._onLineClick.bind(this, this._points[i].onLineClick)}\n />,\n );\n }\n } else {\n if (!isInGap) {\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeWidth={strokeWidth}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={0.1}\n />,\n );\n }\n }\n }\n lines.push(...bordersForLine, ...linesForLine);\n points.push(...pointsForLine);\n }\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(this._xAxisScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return lines.concat(points);\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n const colorFillBars: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._colorFillBars = this.state.selectedColorBarLegend;\n } else {\n this._colorFillBars = this.props.colorFillBars!;\n }\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const colorFillBarId = getId(colorFillBar.legend.replace(/\\W/g, ''));\n\n if (colorFillBar.applyPattern) {\n // Using a pattern element because CSS was unable to render diagonal stripes for rect elements\n colorFillBars.push(this._getStripePattern(colorFillBar.color, i));\n }\n\n for (let j = 0; j < colorFillBar.data.length; j++) {\n const startX = colorFillBar.data[j].startX;\n const endX = colorFillBar.data[j].endX;\n const opacity =\n this.state.activeLegend === colorFillBar.legend ||\n this.state.activeLegend === '' ||\n this.state.isSelectedLegend\n ? this._colorFillBarsOpacity\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}${i})` : colorFillBar.color}\n fillOpacity={opacity}\n x={this._xAxisScale(startX)}\n y={this._yAxisScale(0) - containerHeight}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={containerHeight}\n key={`${colorFillBarId}${j}`}\n />,\n );\n }\n }\n return colorFillBars;\n };\n\n private _getStripePattern = (color: string, id: number) => {\n // This describes a tile pattern that resembles diagonal stripes\n // For more information: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n const stripePath = 'M-4,4 l8,-8 M0,16 l16,-16 M12,20 l8,-8';\n return (\n <pattern\n id={`${this._colorFillBarPatternId}${id}`}\n width={16}\n height={16}\n key={`${this._colorFillBarPatternId}${id}`}\n patternUnits={'userSpaceOnUse'}\n >\n <path d={stripePath} stroke={color} strokeWidth={2} />\n </pattern>\n );\n };\n\n private _checkInGap = (pointIndex: number, gaps: ILineChartGap[], currentGapIndex: number) => {\n let gapIndex = currentGapIndex;\n let isInGap = false;\n\n while (gapIndex < gaps.length && pointIndex > gaps[gapIndex].endIndex) {\n gapIndex++;\n }\n\n if (gapIndex < gaps.length && pointIndex > gaps[gapIndex].startIndex && pointIndex <= gaps[gapIndex].endIndex) {\n isInGap = true;\n }\n return { isInGap, gapIndex };\n };\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _handleFocus = (\n lineId: string,\n x: number | Date,\n\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n const _this = this;\n d3Select('#' + circleId).attr('aria-labelledby', `toolTip${this._uniqueCallOutID}`);\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this._refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === lineId) {\n this.setState({\n isCalloutVisible: true,\n refSelected: obj.refElement,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n }\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _handleHover = (\n x: number | Date,\n xAxisCalloutData: string,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this.setState({\n isCalloutVisible: true,\n refSelected: mouseEvent,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _onLineClick = (func: () => void) => {\n if (func) {\n func();\n }\n };\n\n private _onDataPointClick = (func: () => void) => {\n if (func) {\n func();\n }\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n });\n };\n\n private _handleLegendClick = (\n lineChartItem: LineChartDataWithIndex | IColorFillBarsProps,\n selectedLegend: string | null | string[],\n ): void => {\n if (lineChartItem.onLegendClick) {\n lineChartItem.onLegendClick(selectedLegend);\n }\n };\n\n private _handleMultipleLineLegendSelectionAction = (selectedLine: LineChartDataWithIndex) => {\n const selectedLineIndex = this.state.selectedLegendPoints.reduce((acc, line, index) => {\n if (acc > -1 || line.legend !== selectedLine.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedLines: LineChartDataWithIndex[];\n if (selectedLineIndex === -1) {\n selectedLines = [...this.state.selectedLegendPoints, selectedLine];\n } else {\n selectedLines = this.state.selectedLegendPoints\n .slice(0, selectedLineIndex)\n .concat(this.state.selectedLegendPoints.slice(selectedLineIndex + 1));\n }\n\n const areAllLineLegendsSelected = this.props.data && selectedLines.length === this.props.data.lineChartData!.length;\n\n if (\n areAllLineLegendsSelected &&\n ((this.props.colorFillBars && this.props.colorFillBars.length === this.state.selectedColorBarLegend.length) ||\n !this.props.colorFillBars)\n ) {\n // Clear all legends if all legends including color fill bar legends are selected\n // Or clear all legends if all legends are selected and there are no color fill bars\n this._clearMultipleLegendSelections();\n } else if (!selectedLines.length && !this.state.selectedColorBarLegend.length) {\n // Clear all legends if no legends including color fill bar legends are selected\n this._clearMultipleLegendSelections();\n } else {\n // Otherwise, set state when one or more legends are selected, including color fill bar legends\n this.setState({\n selectedLegendPoints: selectedLines,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedLines.map((line: LineChartDataWithIndex) => line.legend);\n this._handleLegendClick(selectedLine, selectedLegendTitlesToPass);\n };\n\n private _handleMultipleColorFillBarLegendSelectionAction = (selectedColorFillBar: IColorFillBarsProps) => {\n const selectedColorFillBarIndex = this.state.selectedColorBarLegend.reduce((acc, colorFillBar, index) => {\n if (acc > -1 || colorFillBar.legend !== selectedColorFillBar.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedColorFillBars: IColorFillBarsProps[];\n if (selectedColorFillBarIndex === -1) {\n selectedColorFillBars = [...this.state.selectedColorBarLegend, selectedColorFillBar];\n } else {\n selectedColorFillBars = this.state.selectedColorBarLegend\n .slice(0, selectedColorFillBarIndex)\n .concat(this.state.selectedColorBarLegend.slice(selectedColorFillBarIndex + 1));\n }\n\n const areAllColorFillBarLegendsSelected =\n selectedColorFillBars.length === (this.props.colorFillBars && this.props.colorFillBars!.length);\n\n if (\n areAllColorFillBarLegendsSelected &&\n ((this.props.data && this.props.data.lineChartData!.length === this.state.selectedLegendPoints.length) ||\n !this.props.data)\n ) {\n // Clear all legends if all legends, including line legends, are selected\n // Or clear all legends if all legends are selected and there is no line data\n this._clearMultipleLegendSelections();\n } else if (!selectedColorFillBars.length && !this.state.selectedLegendPoints.length) {\n // Clear all legends if no legends are selected, including line legends\n this._clearMultipleLegendSelections();\n } else {\n // set state when one or more legends are selected, including line legends\n this.setState({\n selectedColorBarLegend: selectedColorFillBars,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedColorFillBars.map(\n (colorFillBar: IColorFillBarsProps) => colorFillBar.legend,\n );\n this._handleLegendClick(selectedColorFillBar, selectedLegendTitlesToPass);\n };\n\n private _clearMultipleLegendSelections = () => {\n this.setState({\n selectedColorBarLegend: [],\n selectedLegendPoints: [],\n isSelectedLegend: false,\n });\n };\n}\n"]}
1
+ {"version":3,"file":"LineChart.base.js","sourceRoot":"../src/","sources":["components/LineChart/LineChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { ILegend, Legends } from '../Legends/index';\nimport { classNamesFunction, getId, find } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfXAxislabels,\n Points,\n pointTypes,\n} from '../../utilities/index';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\nconst DEFAULT_LINE_STROKE_SIZE = 4;\n// The given shape of a icon must be 2.5 times bigger than line width (known as stroke width)\nconst PATH_MULTIPLY_SIZE = 2.5;\n\n/**\n *\n * @param x units from origin\n * @param y units from origin\n * @param w is the legnth of the each side of a shape\n * @param index index to get the shape path\n */\nconst _getPointPath = (x: number, y: number, w: number, index: number): string => {\n const allPointPaths = [\n // circle path\n `M${x - w / 2} ${y}\n A${w / 2} ${w / 2} 0 1 0 ${x + w / 2} ${y}\n M${x - w / 2} ${y}\n A ${w / 2} ${w / 2} 0 1 1 ${x + w / 2} ${y}\n `,\n //square\n `M${x - w / 2} ${y - w / 2}\n L${x + w / 2} ${y - w / 2}\n L${x + w / 2} ${y + w / 2}\n L${x - w / 2} ${y + w / 2}\n Z`,\n //triangle\n `M${x - w / 2} ${y - 0.2886 * w}\n H ${x + w / 2}\n L${x} ${y + 0.5774 * w} Z`,\n //diamond\n `M${x} ${y - w / 2}\n L${x + w / 2} ${y}\n L${x} ${y + w / 2}\n L${x - w / 2} ${y}\n Z`,\n //pyramid\n `M${x} ${y - 0.5774 * w}\n L${x + w / 2} ${y + 0.2886 * w}\n L${x - w / 2} ${y + 0.2886 * w} Z`,\n //hexagon\n `M${x - 0.5 * w} ${y - 0.866 * w}\n L${x + 0.5 * w} ${y - 0.866 * w}\n L${x + w} ${y}\n L${x + 0.5 * w} ${y + 0.866 * w}\n L${x - 0.5 * w} ${y + 0.866 * w}\n L${x - w} ${y}\n Z`,\n //pentagon\n `M${x} ${y - 0.851 * w}\n L${x + 0.6884 * w} ${y - 0.2633 * w}\n L${x + 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.6884 * w} ${y - 0.2633 * w}\n Z`,\n //octagon\n `M${x - 0.5001 * w} ${y - 1.207 * w}\n L${x + 0.5001 * w} ${y - 1.207 * w}\n L${x + 1.207 * w} ${y - 0.5001 * w}\n L${x + 1.207 * w} ${y + 0.5001 * w}\n L${x + 0.5001 * w} ${y + 1.207 * w}\n L${x - 0.5001 * w} ${y + 1.207 * w}\n L${x - 1.207 * w} ${y + 0.5001 * w}\n L${x - 1.207 * w} ${y - 0.5001 * w}\n Z`,\n ];\n return allPointPaths[index];\n};\n\ntype LineChartDataWithIndex = ILineChartPoints & { index: number };\n\nexport interface ILineChartState extends IBasestate {\n // This array contains data of selected legends for points\n selectedLegendPoints: LineChartDataWithIndex[];\n // This array contains data of selected legends for color bars\n selectedColorBarLegend: IColorFillBarsProps[];\n // This is a boolean value which is set to true\n // when at least one legend is selected\n isSelectedLegend: boolean;\n // This value will be used as customized callout props - point callout.\n dataPointCalloutProps?: ICustomizedCalloutData;\n // This value will be used as Customized callout props - For stack callout.\n stackCalloutProps?: ICustomizedCalloutData;\n // active or hovered point\n activePoint?: string;\n // x-axis callout accessibility data\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> {\n private _points: LineChartDataWithIndex[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yAxisScale: any = '';\n private _circleId: string;\n private _lineId: string;\n private _borderId: string;\n private _verticalLine: string;\n private _colorFillBarPatternId: string;\n private _uniqueCallOutID: string;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n private lines: JSX.Element[];\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _colorFillBarsOpacity: number;\n private _tooltipId: string;\n\n constructor(props: ILineChartProps) {\n super(props);\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n refSelected: '',\n selectedLegend: '',\n isCalloutVisible: false,\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n activePoint: '',\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\n this._colorFillBarsOpacity = 0.4;\n this._calloutPoints = calloutData(this._points) || [];\n this._circleId = getId('circle');\n this._lineId = getId('lineID');\n this._borderId = getId('borderID');\n this._verticalLine = getId('verticalLine');\n this._colorFillBarPatternId = getId('colorFillBarPattern');\n this._tooltipId = getId('LineChartTooltipId_');\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._calloutPoints = calloutData(this._points) || [];\n }\n }\n\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n const isXAxisDateType = getXAxisType(this._points);\n let points = this._points;\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = this.state.selectedLegendPoints.length >= 1 ? this.state.selectedLegendPoints : this._points;\n this._calloutPoints = calloutData(points);\n }\n\n const legendBars = this._createLegends(this._points!);\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: this._closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible),\n descriptionMessage:\n this.props.getCalloutDescriptionMessage && this.state.stackCalloutProps\n ? this.props.getCalloutDescriptionMessage(this.state.stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n const tickParams = {\n tickValues: tickValues,\n tickFormat: tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={data.chartTitle}\n points={points}\n chartType={ChartTypes.LineChart}\n isCalloutForStack\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={this._getMargins}\n getGraphData={this._initializeLineChartData}\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n customizedCallout={this._getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale!;\n this._yAxisScale = props.yScale!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'steelblue'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n {...eventAnnotationProps}\n scale={props.xScale!}\n chartYTop={this.margins.top! + this.eventLabelHeight}\n chartYBottom={props.containerHeight! - 35}\n />\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n\n private _injectIndexPropertyInLineChartData = (lineChartData?: ILineChartPoints[]): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n return lineChartData\n ? lineChartData.map((item: ILineChartPoints, index: number) => ({\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n }))\n : [];\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._xAxisScale = xScale;\n this._yAxisScale = yScale;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '', activeLegend: lineChartItem.legend });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({\n selectedLegend: lineChartItem.legend,\n activeLegend: lineChartItem.legend,\n });\n this._handleLegendClick(lineChartItem, lineChartItem.legend);\n }\n };\n\n private _onHoverCardHide = () => {\n this.setState({\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n });\n };\n\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const legendDataItems = data.map((point: LineChartDataWithIndex) => {\n const color: string = point.color;\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleLineLegendSelectionAction(point);\n } else {\n this._handleSingleLegendSelectionAction(point);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this.setState({ activeLegend: point.legend });\n },\n ...(point.legendShape && {\n shape: point.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[point.index % Object.keys(pointTypes).length] as ILegend['shape'],\n }),\n };\n return legend;\n });\n\n const colorFillBarsLegendDataItems = this.props.colorFillBars\n ? this.props.colorFillBars.map((colorFillBar: IColorFillBarsProps, index: number) => {\n const title = colorFillBar.legend;\n const legend: ILegend = {\n title,\n color: colorFillBar.color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);\n } else {\n this._handleSingleLegendSelectionAction(colorFillBar);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this.setState({ activeLegend: title });\n },\n opacity: this._colorFillBarsOpacity,\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n const legends = (\n <Legends\n legends={[...legendDataItems, ...colorFillBarsLegendDataItems]}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide })}\n {...this.props.legendProps}\n />\n );\n return legends;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getBoxWidthOfShape = (pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { allowMultipleShapesForPoints = false, strokeWidth = DEFAULT_LINE_STROKE_SIZE } = this.props;\n const { activePoint } = this.state;\n if (allowMultipleShapesForPoints) {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else if (pointIndex === 1 || isLastPoint) {\n return strokeWidth * PATH_MULTIPLY_SIZE;\n } else {\n return PointSize.invisibleSize;\n }\n } else {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else {\n return PointSize.invisibleSize;\n }\n }\n };\n\n private _getPath = (\n xPos: number,\n yPos: number,\n pointId: string,\n pointIndex: number,\n isLastPoint: boolean,\n pointOftheLine: number,\n ): string => {\n const { allowMultipleShapesForPoints = false } = this.props;\n let w = this._getBoxWidthOfShape(pointId, pointIndex, isLastPoint);\n const index: number = allowMultipleShapesForPoints ? pointOftheLine % Object.keys(pointTypes).length : 0;\n const widthRatio = pointTypes[index].widthRatio;\n w = widthRatio > 1 ? w / widthRatio : w;\n\n return _getPointPath(xPos, yPos, w, index);\n };\n private _getPointFill = (lineColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { activePoint } = this.state;\n const { theme, allowMultipleShapesForPoints = false } = this.props;\n if (allowMultipleShapesForPoints) {\n if (pointIndex === 1 || isLastPoint) {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.palette.white;\n } else {\n return lineColor;\n }\n }\n };\n private _createLines(xElement: SVGElement): JSX.Element[] {\n const lines: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._points = this.state.selectedLegendPoints;\n } else {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n }\n for (let i = 0; i < this._points.length; i++) {\n const linesForLine: JSX.Element[] = [];\n const bordersForLine: JSX.Element[] = [];\n const pointsForLine: JSX.Element[] = [];\n\n const legendVal: string = this._points[i].legend;\n const lineColor: string = this._points[i].color;\n const { activePoint } = this.state;\n const { theme } = this.props;\n if (this._points[i].data.length === 1) {\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[0];\n const circleId = `${this._circleId}${i}`;\n pointsForLine.push(\n <circle\n id={`${this._circleId}${i}`}\n key={`${this._circleId}${i}`}\n r={activePoint === circleId ? 5.5 : 3.5}\n cx={this._xAxisScale(x1)}\n cy={this._yAxisScale(y1)}\n fill={activePoint === circleId ? theme!.palette.white : lineColor}\n onMouseOver={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseMove={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? 2 : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n />,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n\n for (let j = 1; j < this._points[i].data.length; j++) {\n const gapResult = this._checkInGap(j, gaps, gapIndex);\n const isInGap = gapResult.isInGap;\n gapIndex = gapResult.gapIndex;\n\n const lineId = `${this._lineId}${i}${j}`;\n const borderId = `${this._borderId}${i}${j}`;\n const circleId = `${this._circleId}${i}${j}`;\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[j - 1];\n const { x: x2, y: y2 } = this._points[i].data[j];\n let path = this._getPath(this._xAxisScale(x1), this._yAxisScale(y1), circleId, j, false, this._points[i].index);\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this.state.activeLegend === legendVal || this.state.activeLegend === '' || this.state.isSelectedLegend;\n\n const currentPointHidden = this._points[i].hideNonActiveDots && activePoint !== circleId;\n pointsForLine.push(\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={i === 0 ? true : false}\n onMouseOver={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseMove={this._handleHover.bind(this, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n onClick={this._onDataPointClick.bind(this, this._points[i].data[j - 1].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={2}\n />,\n );\n if (j + 1 === this._points[i].data.length) {\n const lastCircleId = `${circleId}${j}L`;\n const lastPointHidden = this._points[i].hideNonActiveDots && activePoint !== lastCircleId;\n path = this._getPath(\n this._xAxisScale(x2),\n this._yAxisScale(y2),\n lastCircleId,\n j,\n true,\n this._points[i].index,\n );\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n pointsForLine.push(\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={i === 0 ? true : false}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x2, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n onClick={this._onDataPointClick.bind(this, this._points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !lastPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={2}\n />,\n );\n /* eslint-enable react/jsx-no-bind */\n }\n\n if (isLegendSelected) {\n // don't draw line if it is in a gap\n if (!isInGap) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <line\n id={borderId}\n key={borderId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.palette.white}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeWidth={strokeWidth}\n ref={(e: SVGLineElement | null) => {\n this._refCallback(e!, lineId);\n }}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n )}\n onMouseOut={this._handleMouseOut}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={1}\n onClick={this._onLineClick.bind(this, this._points[i].onLineClick)}\n />,\n );\n }\n } else {\n if (!isInGap) {\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={this._yAxisScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={this._yAxisScale(y2)}\n strokeWidth={strokeWidth}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={0.1}\n />,\n );\n }\n }\n }\n lines.push(...bordersForLine, ...linesForLine, ...pointsForLine);\n }\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(this._xAxisScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return lines;\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n const colorFillBars: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._colorFillBars = this.state.selectedColorBarLegend;\n } else {\n this._colorFillBars = this.props.colorFillBars!;\n }\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const colorFillBarId = getId(colorFillBar.legend.replace(/\\W/g, ''));\n\n if (colorFillBar.applyPattern) {\n // Using a pattern element because CSS was unable to render diagonal stripes for rect elements\n colorFillBars.push(this._getStripePattern(colorFillBar.color, i));\n }\n\n for (let j = 0; j < colorFillBar.data.length; j++) {\n const startX = colorFillBar.data[j].startX;\n const endX = colorFillBar.data[j].endX;\n const opacity =\n this.state.activeLegend === colorFillBar.legend ||\n this.state.activeLegend === '' ||\n this.state.isSelectedLegend\n ? this._colorFillBarsOpacity\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}${i})` : colorFillBar.color}\n fillOpacity={opacity}\n x={this._xAxisScale(startX)}\n y={this._yAxisScale(0) - containerHeight}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={containerHeight}\n key={`${colorFillBarId}${j}`}\n />,\n );\n }\n }\n return colorFillBars;\n };\n\n private _getStripePattern = (color: string, id: number) => {\n // This describes a tile pattern that resembles diagonal stripes\n // For more information: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n const stripePath = 'M-4,4 l8,-8 M0,16 l16,-16 M12,20 l8,-8';\n return (\n <pattern\n id={`${this._colorFillBarPatternId}${id}`}\n width={16}\n height={16}\n key={`${this._colorFillBarPatternId}${id}`}\n patternUnits={'userSpaceOnUse'}\n >\n <path d={stripePath} stroke={color} strokeWidth={2} />\n </pattern>\n );\n };\n\n private _checkInGap = (pointIndex: number, gaps: ILineChartGap[], currentGapIndex: number) => {\n let gapIndex = currentGapIndex;\n let isInGap = false;\n\n while (gapIndex < gaps.length && pointIndex > gaps[gapIndex].endIndex) {\n gapIndex++;\n }\n\n if (gapIndex < gaps.length && pointIndex > gaps[gapIndex].startIndex && pointIndex <= gaps[gapIndex].endIndex) {\n isInGap = true;\n }\n return { isInGap, gapIndex };\n };\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _handleFocus = (\n lineId: string,\n x: number | Date,\n\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n const _this = this;\n d3Select('#' + circleId).attr('aria-labelledby', `toolTip${this._uniqueCallOutID}`);\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this._refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === lineId) {\n this.setState({\n isCalloutVisible: true,\n refSelected: obj.refElement,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n }\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _handleHover = (\n x: number | Date,\n xAxisCalloutData: string,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this.setState({\n isCalloutVisible: true,\n refSelected: mouseEvent,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _onLineClick = (func: () => void) => {\n if (func) {\n func();\n }\n };\n\n private _onDataPointClick = (func: () => void) => {\n if (func) {\n func();\n }\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n });\n };\n\n private _handleLegendClick = (\n lineChartItem: LineChartDataWithIndex | IColorFillBarsProps,\n selectedLegend: string | null | string[],\n ): void => {\n if (lineChartItem.onLegendClick) {\n lineChartItem.onLegendClick(selectedLegend);\n }\n };\n\n private _handleMultipleLineLegendSelectionAction = (selectedLine: LineChartDataWithIndex) => {\n const selectedLineIndex = this.state.selectedLegendPoints.reduce((acc, line, index) => {\n if (acc > -1 || line.legend !== selectedLine.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedLines: LineChartDataWithIndex[];\n if (selectedLineIndex === -1) {\n selectedLines = [...this.state.selectedLegendPoints, selectedLine];\n } else {\n selectedLines = this.state.selectedLegendPoints\n .slice(0, selectedLineIndex)\n .concat(this.state.selectedLegendPoints.slice(selectedLineIndex + 1));\n }\n\n const areAllLineLegendsSelected = this.props.data && selectedLines.length === this.props.data.lineChartData!.length;\n\n if (\n areAllLineLegendsSelected &&\n ((this.props.colorFillBars && this.props.colorFillBars.length === this.state.selectedColorBarLegend.length) ||\n !this.props.colorFillBars)\n ) {\n // Clear all legends if all legends including color fill bar legends are selected\n // Or clear all legends if all legends are selected and there are no color fill bars\n this._clearMultipleLegendSelections();\n } else if (!selectedLines.length && !this.state.selectedColorBarLegend.length) {\n // Clear all legends if no legends including color fill bar legends are selected\n this._clearMultipleLegendSelections();\n } else {\n // Otherwise, set state when one or more legends are selected, including color fill bar legends\n this.setState({\n selectedLegendPoints: selectedLines,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedLines.map((line: LineChartDataWithIndex) => line.legend);\n this._handleLegendClick(selectedLine, selectedLegendTitlesToPass);\n };\n\n private _handleMultipleColorFillBarLegendSelectionAction = (selectedColorFillBar: IColorFillBarsProps) => {\n const selectedColorFillBarIndex = this.state.selectedColorBarLegend.reduce((acc, colorFillBar, index) => {\n if (acc > -1 || colorFillBar.legend !== selectedColorFillBar.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedColorFillBars: IColorFillBarsProps[];\n if (selectedColorFillBarIndex === -1) {\n selectedColorFillBars = [...this.state.selectedColorBarLegend, selectedColorFillBar];\n } else {\n selectedColorFillBars = this.state.selectedColorBarLegend\n .slice(0, selectedColorFillBarIndex)\n .concat(this.state.selectedColorBarLegend.slice(selectedColorFillBarIndex + 1));\n }\n\n const areAllColorFillBarLegendsSelected =\n selectedColorFillBars.length === (this.props.colorFillBars && this.props.colorFillBars!.length);\n\n if (\n areAllColorFillBarLegendsSelected &&\n ((this.props.data && this.props.data.lineChartData!.length === this.state.selectedLegendPoints.length) ||\n !this.props.data)\n ) {\n // Clear all legends if all legends, including line legends, are selected\n // Or clear all legends if all legends are selected and there is no line data\n this._clearMultipleLegendSelections();\n } else if (!selectedColorFillBars.length && !this.state.selectedLegendPoints.length) {\n // Clear all legends if no legends are selected, including line legends\n this._clearMultipleLegendSelections();\n } else {\n // set state when one or more legends are selected, including line legends\n this.setState({\n selectedColorBarLegend: selectedColorFillBars,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedColorFillBars.map(\n (colorFillBar: IColorFillBarsProps) => colorFillBar.legend,\n );\n this._handleLegendClick(selectedColorFillBar, selectedLegendTitlesToPass);\n };\n\n private _clearMultipleLegendSelections = () => {\n this.setState({\n selectedColorBarLegend: [],\n selectedLegendPoints: [],\n isSelectedLegend: false,\n });\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import { SVGProps } from 'react';
1
2
  import { LegendShape } from '../components/Legends/Legends.types';
2
3
  import * as d3Sankey from 'd3-sankey';
3
4
  export interface IBasestate {
@@ -213,7 +214,7 @@ export interface ILineChartGap {
213
214
  */
214
215
  endIndex: number;
215
216
  }
216
- export interface ILineChartLineOptions {
217
+ export interface ILineChartLineOptions extends SVGProps<SVGPathElement> {
217
218
  /**
218
219
  * Width of the line/stroke.
219
220
  * Overrides the strokeWidth set on ICartesianChartProps level.
@@ -267,6 +268,10 @@ export interface ILineChartPoints {
267
268
  * color for the legend in the chart
268
269
  */
269
270
  color: string;
271
+ /**
272
+ * opacity for chart fill color
273
+ */
274
+ opacity?: number;
270
275
  /**
271
276
  * options for the line drawn
272
277
  */
@@ -309,6 +314,14 @@ export interface IChartProps {
309
314
  * data for the points in the line chart
310
315
  */
311
316
  SankeyChartData?: ISankeyChartData;
317
+ /**
318
+ * data for the points in the line chart
319
+ */
320
+ pointOptions?: SVGProps<SVGCircleElement>;
321
+ /**
322
+ * data for the dotted line on hovering the point
323
+ */
324
+ pointLineOptions?: SVGProps<SVGLineElement>;
312
325
  }
313
326
  export interface ISankeyChartData {
314
327
  nodes: SNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"IDataPoint.js","sourceRoot":"../src/","sources":["types/IDataPoint.ts"],"names":[],"mappings":"","sourcesContent":["import { LegendShape } from '../components/Legends/Legends.types';\nimport * as d3Sankey from 'd3-sankey';\nexport interface IBasestate {\n _width?: number;\n _height?: number;\n activeLegend?: string;\n color?: string;\n dataForHoverCard?: number;\n isCalloutVisible: boolean;\n isLegendSelected?: boolean;\n isLegendHovered?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n refSelected?: any;\n YValueHover?: { legend?: string; y?: number; color?: string }[];\n hoverYValue?: string | number | null;\n hoverXValue?: string | number | null;\n xCalloutValue?: string;\n yCalloutValue?: string;\n lineColor?: string;\n hoveredLineColor?: string;\n selectedLegend?: string;\n containerWidth?: number;\n containerHeight?: number;\n}\n\nexport interface IRefArrayData {\n index?: string;\n refElement?: SVGGElement;\n}\n\nexport interface IMargins {\n /**\n * left margin for the chart.\n */\n left?: number;\n /**\n * Right margin for the chart.\n */\n right?: number;\n /**\n * Top margin for the chart.\n */\n top?: number;\n /**\n * Bottom margin for the chart.\n */\n bottom?: number;\n}\n\nexport interface IDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n // NOTE: VerticalStackedBarChart, PieChart\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n}\n\nexport interface IHorizontalDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n}\n\nexport interface IChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * data the datapoint in the chart\n */\n data?: number;\n\n /**\n * data the datapoint in the chart\n */\n horizontalBarChartdata?: IHorizontalDataPoint;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * placeholder data point\n */\n placeHolder?: boolean;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IVerticalBarChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * data to render the line along with bars\n */\n lineData?: ILineDataInVerticalBarChart;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineDataInVerticalBarChart {\n y: IVerticalBarChartDataPoint['y'];\n yAxisCalloutData?: string | undefined;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n}\n\nexport interface ILineChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If data type on x is Date, then the data is spaced evenly by d3-scale\n */\n x: number | Date;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onDataPointClick?: () => void;\n\n /**\n * Callout data for x axis\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n */\n yAxisCalloutData?: string | { [id: string]: number };\n\n /**\n * Whether to hide callout data for the point.\n */\n hideCallout?: boolean;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n\n /**\n * X axis Accessibility data for callout\n */\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineChartGap {\n /**\n * Starting index of the gap.\n */\n startIndex: number;\n\n /**\n * Ending index of the gap.\n */\n endIndex: number;\n}\n\nexport interface ILineChartLineOptions {\n /**\n * Width of the line/stroke.\n * Overrides the strokeWidth set on ICartesianChartProps level.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width\n */\n strokeWidth?: number | string;\n\n /**\n * Pattern of dashes and gaps.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray\n */\n strokeDasharray?: string | number;\n\n /**\n * Offset on rendering of stroke dash array.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset\n */\n strokeDashoffset?: string | number;\n\n /**\n * Shape at the end of a subpath.\n * Default round.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap\n */\n strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit';\n\n /**\n * Width of border around the line. Default no border.\n */\n lineBorderWidth?: string | number;\n\n /**\n * Color of border around the line. Default white.\n */\n lineBorderColor?: string;\n}\n\nexport interface ILineChartPoints {\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * The shape for the legend\n * default: show the rect legend\n */\n legendShape?: LegendShape;\n\n /**\n * dataPoints for the line chart\n */\n data: ILineChartDataPoint[];\n\n /**\n * gaps in the line chart where a line is not drawn\n */\n gaps?: ILineChartGap[];\n\n /**\n * color for the legend in the chart\n */\n color: string;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * hide dots for points that are not active\n */\n hideNonActiveDots?: boolean;\n\n /**\n * Defines the function that is executed on clicking this legend\n */\n onLegendClick?: (selectedLegend: string | null | string[]) => void;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onLineClick?: () => void;\n}\n\nexport interface IChartProps {\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * Accessibility data for chart title\n */\n chartTitleAccessibilityData?: IAccessibilityProps;\n /**\n * data for the points in the chart\n */\n chartData?: IChartDataPoint[];\n\n /**\n * Accessibility data for chart data\n */\n chartDataAccessibilityData?: IAccessibilityProps;\n\n /**\n * data for the points in the line chart\n */\n lineChartData?: ILineChartPoints[];\n\n /**\n * data for the points in the line chart\n */\n SankeyChartData?: ISankeyChartData;\n}\n\nexport interface ISankeyChartData {\n nodes: SNode[];\n links: SLink[];\n}\n\ninterface ISNodeExtra {\n nodeId: number | string;\n name: string;\n color: string;\n}\n\ninterface ISLinkExtra {\n source: number;\n target: number;\n value: number;\n}\n\nexport type SNode = d3Sankey.SankeyNode<ISNodeExtra, ISLinkExtra>;\nexport type SLink = d3Sankey.SankeyLink<ISNodeExtra, ISLinkExtra>;\n\nexport interface IAccessibilityProps {\n /**\n * Accessibility aria-label\n */\n ariaLabel?: string;\n\n /**\n * Accessibility aria-labelledBy\n */\n ariaLabelledBy?: string;\n\n /**\n * Accessibility aria-describedBy\n */\n ariaDescribedBy?: string;\n}\n\nexport interface IVSChartDataPoint {\n /**\n * data the datapoint in the chart\n */\n data: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IVerticalStackedChartProps {\n /**\n * data for the points in the chart\n */\n chartData: IVSChartDataPoint[];\n\n /**\n * Data for x axis label for multistacked Vertical bar chart\n */\n xAxisPoint: number | string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven't given, legend will take\n */\n xAxisCalloutData?: string;\n /**\n * line data to render lines on stacked bar chart\n */\n lineData?: ILineDataInVerticalStackedBarChart[];\n /**\n * Accessibility data for Whole stack callout\n */\n stackCallOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineDataInVerticalStackedBarChart {\n y: number;\n color: string;\n legend: string;\n /**\n * Data to show in callout\n */\n data?: number;\n yAxisCalloutData?: string;\n}\n\nexport interface IGVBarChartSeriesPoint {\n /**\n * Text for // need to check use of this\n */\n key: string;\n\n /**\n * Data for bar height of Grouped vertical bar chart\n */\n data: number;\n\n /**\n * Color for the legend in the chart\n */\n color: string;\n\n /**\n * Legend text in the chart\n */\n legend: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IGroupedVerticalBarChartData {\n /**\n * Data for X axis label\n */\n name: string;\n\n /**\n * Data points for Grouped vertical bar chart\n */\n series: IGVBarChartSeriesPoint[];\n\n /**\n * Accessibility data for Group Bars Stack Callout\n */\n stackCallOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IGVDataPoint {\n /**\n * This interface used for - While forming datapoints from given prop \"data\" in code\n * datapoints are used for to draw graph\n */\n [key: string]: number | string;\n}\n\nexport interface IGVSingleDataPoint {\n /**\n * While forming datapoints from given prop \"data\" in code.\n * These datapoints are used for to draw graph easily.\n */\n [key: string]: IGVDataPoint;\n}\n\nexport interface IGVForBarChart {\n /**\n * While forming datapoints from given prop \"data\"\n * These datapoints are used for to draw graph.\n */\n [key: string]: IGVBarChartSeriesPoint;\n}\n\nexport interface IHeatMapChartDataPoint {\n x: string | Date | number;\n y: string | Date | number;\n value: number;\n /**\n * The value/ text to be rendered in the rectange\n */\n rectText?: string | number;\n /**\n * denomination to show in the callout\n */\n ratio?: [number, number];\n /**\n * description message to the callout\n */\n descriptionMessage?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IHeatMapChartData {\n /**\n * name of the legend\n */\n legend: string;\n data: IHeatMapChartDataPoint[];\n /**\n * This number will be used to get the color for the legend\n */\n value: number;\n}\n\nexport interface ICustomizedCalloutDataPoint {\n legend: string;\n y: number;\n color: string;\n xAxisCalloutData?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n}\n\n/**\n * Used for custom callout data interface. As Area chart callout data will be prepared from given props.data,\n * Those required data passing to onRenderCalloutPerDataPoint and onRenderCalloutPerStack.\n */\nexport interface ICustomizedCalloutData {\n x: number | string | Date;\n values: ICustomizedCalloutDataPoint[];\n}\n"]}
1
+ {"version":3,"file":"IDataPoint.js","sourceRoot":"../src/","sources":["types/IDataPoint.ts"],"names":[],"mappings":"","sourcesContent":["import { SVGProps } from 'react';\nimport { LegendShape } from '../components/Legends/Legends.types';\nimport * as d3Sankey from 'd3-sankey';\nexport interface IBasestate {\n _width?: number;\n _height?: number;\n activeLegend?: string;\n color?: string;\n dataForHoverCard?: number;\n isCalloutVisible: boolean;\n isLegendSelected?: boolean;\n isLegendHovered?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n refSelected?: any;\n YValueHover?: { legend?: string; y?: number; color?: string }[];\n hoverYValue?: string | number | null;\n hoverXValue?: string | number | null;\n xCalloutValue?: string;\n yCalloutValue?: string;\n lineColor?: string;\n hoveredLineColor?: string;\n selectedLegend?: string;\n containerWidth?: number;\n containerHeight?: number;\n}\n\nexport interface IRefArrayData {\n index?: string;\n refElement?: SVGGElement;\n}\n\nexport interface IMargins {\n /**\n * left margin for the chart.\n */\n left?: number;\n /**\n * Right margin for the chart.\n */\n right?: number;\n /**\n * Top margin for the chart.\n */\n top?: number;\n /**\n * Bottom margin for the chart.\n */\n bottom?: number;\n}\n\nexport interface IDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n // NOTE: VerticalStackedBarChart, PieChart\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n}\n\nexport interface IHorizontalDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n}\n\nexport interface IChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * data the datapoint in the chart\n */\n data?: number;\n\n /**\n * data the datapoint in the chart\n */\n horizontalBarChartdata?: IHorizontalDataPoint;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * placeholder data point\n */\n placeHolder?: boolean;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IVerticalBarChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * data to render the line along with bars\n */\n lineData?: ILineDataInVerticalBarChart;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineDataInVerticalBarChart {\n y: IVerticalBarChartDataPoint['y'];\n yAxisCalloutData?: string | undefined;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n}\n\nexport interface ILineChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If data type on x is Date, then the data is spaced evenly by d3-scale\n */\n x: number | Date;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onDataPointClick?: () => void;\n\n /**\n * Callout data for x axis\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n */\n yAxisCalloutData?: string | { [id: string]: number };\n\n /**\n * Whether to hide callout data for the point.\n */\n hideCallout?: boolean;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n\n /**\n * X axis Accessibility data for callout\n */\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineChartGap {\n /**\n * Starting index of the gap.\n */\n startIndex: number;\n\n /**\n * Ending index of the gap.\n */\n endIndex: number;\n}\n\nexport interface ILineChartLineOptions extends SVGProps<SVGPathElement> {\n /**\n * Width of the line/stroke.\n * Overrides the strokeWidth set on ICartesianChartProps level.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width\n */\n strokeWidth?: number | string;\n\n /**\n * Pattern of dashes and gaps.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray\n */\n strokeDasharray?: string | number;\n\n /**\n * Offset on rendering of stroke dash array.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset\n */\n strokeDashoffset?: string | number;\n\n /**\n * Shape at the end of a subpath.\n * Default round.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap\n */\n strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit';\n\n /**\n * Width of border around the line. Default no border.\n */\n lineBorderWidth?: string | number;\n\n /**\n * Color of border around the line. Default white.\n */\n lineBorderColor?: string;\n}\n\nexport interface ILineChartPoints {\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * The shape for the legend\n * default: show the rect legend\n */\n legendShape?: LegendShape;\n\n /**\n * dataPoints for the line chart\n */\n data: ILineChartDataPoint[];\n\n /**\n * gaps in the line chart where a line is not drawn\n */\n gaps?: ILineChartGap[];\n\n /**\n * color for the legend in the chart\n */\n color: string;\n\n /**\n * opacity for chart fill color\n */\n opacity?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * hide dots for points that are not active\n */\n hideNonActiveDots?: boolean;\n\n /**\n * Defines the function that is executed on clicking this legend\n */\n onLegendClick?: (selectedLegend: string | null | string[]) => void;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onLineClick?: () => void;\n}\n\nexport interface IChartProps {\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * Accessibility data for chart title\n */\n chartTitleAccessibilityData?: IAccessibilityProps;\n /**\n * data for the points in the chart\n */\n chartData?: IChartDataPoint[];\n\n /**\n * Accessibility data for chart data\n */\n chartDataAccessibilityData?: IAccessibilityProps;\n\n /**\n * data for the points in the line chart\n */\n lineChartData?: ILineChartPoints[];\n\n /**\n * data for the points in the line chart\n */\n SankeyChartData?: ISankeyChartData;\n\n /**\n * data for the points in the line chart\n */\n pointOptions?: SVGProps<SVGCircleElement>;\n\n /**\n * data for the dotted line on hovering the point\n */\n pointLineOptions?: SVGProps<SVGLineElement>;\n}\n\nexport interface ISankeyChartData {\n nodes: SNode[];\n links: SLink[];\n}\n\ninterface ISNodeExtra {\n nodeId: number | string;\n name: string;\n color: string;\n}\n\ninterface ISLinkExtra {\n source: number;\n target: number;\n value: number;\n}\n\nexport type SNode = d3Sankey.SankeyNode<ISNodeExtra, ISLinkExtra>;\nexport type SLink = d3Sankey.SankeyLink<ISNodeExtra, ISLinkExtra>;\n\nexport interface IAccessibilityProps {\n /**\n * Accessibility aria-label\n */\n ariaLabel?: string;\n\n /**\n * Accessibility aria-labelledBy\n */\n ariaLabelledBy?: string;\n\n /**\n * Accessibility aria-describedBy\n */\n ariaDescribedBy?: string;\n}\n\nexport interface IVSChartDataPoint {\n /**\n * data the datapoint in the chart\n */\n data: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IVerticalStackedChartProps {\n /**\n * data for the points in the chart\n */\n chartData: IVSChartDataPoint[];\n\n /**\n * Data for x axis label for multistacked Vertical bar chart\n */\n xAxisPoint: number | string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven't given, legend will take\n */\n xAxisCalloutData?: string;\n /**\n * line data to render lines on stacked bar chart\n */\n lineData?: ILineDataInVerticalStackedBarChart[];\n /**\n * Accessibility data for Whole stack callout\n */\n stackCallOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface ILineDataInVerticalStackedBarChart {\n y: number;\n color: string;\n legend: string;\n /**\n * Data to show in callout\n */\n data?: number;\n yAxisCalloutData?: string;\n}\n\nexport interface IGVBarChartSeriesPoint {\n /**\n * Text for // need to check use of this\n */\n key: string;\n\n /**\n * Data for bar height of Grouped vertical bar chart\n */\n data: number;\n\n /**\n * Color for the legend in the chart\n */\n color: string;\n\n /**\n * Legend text in the chart\n */\n legend: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IGroupedVerticalBarChartData {\n /**\n * Data for X axis label\n */\n name: string;\n\n /**\n * Data points for Grouped vertical bar chart\n */\n series: IGVBarChartSeriesPoint[];\n\n /**\n * Accessibility data for Group Bars Stack Callout\n */\n stackCallOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IGVDataPoint {\n /**\n * This interface used for - While forming datapoints from given prop \"data\" in code\n * datapoints are used for to draw graph\n */\n [key: string]: number | string;\n}\n\nexport interface IGVSingleDataPoint {\n /**\n * While forming datapoints from given prop \"data\" in code.\n * These datapoints are used for to draw graph easily.\n */\n [key: string]: IGVDataPoint;\n}\n\nexport interface IGVForBarChart {\n /**\n * While forming datapoints from given prop \"data\"\n * These datapoints are used for to draw graph.\n */\n [key: string]: IGVBarChartSeriesPoint;\n}\n\nexport interface IHeatMapChartDataPoint {\n x: string | Date | number;\n y: string | Date | number;\n value: number;\n /**\n * The value/ text to be rendered in the rectange\n */\n rectText?: string | number;\n /**\n * denomination to show in the callout\n */\n ratio?: [number, number];\n /**\n * description message to the callout\n */\n descriptionMessage?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IHeatMapChartData {\n /**\n * name of the legend\n */\n legend: string;\n data: IHeatMapChartDataPoint[];\n /**\n * This number will be used to get the color for the legend\n */\n value: number;\n}\n\nexport interface ICustomizedCalloutDataPoint {\n legend: string;\n y: number;\n color: string;\n xAxisCalloutData?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n}\n\n/**\n * Used for custom callout data interface. As Area chart callout data will be prepared from given props.data,\n * Those required data passing to onRenderCalloutPerDataPoint and onRenderCalloutPerStack.\n */\nexport interface ICustomizedCalloutData {\n x: number | string | Date;\n values: ICustomizedCalloutDataPoint[];\n}\n"]}
package/lib/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Do not modify this file; it is generated as part of publish.
2
2
  // The checked in version is a placeholder only and will not be updated.
3
3
  import { setVersion } from '@fluentui/set-version';
4
- setVersion('@fluentui/react-charting', '5.6.14');
4
+ setVersion('@fluentui/react-charting', '5.7.0');
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,UAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.6.14');"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,UAAU,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.7.0');"]}
@@ -32,6 +32,7 @@ export declare class AreaChartBase extends React.Component<IAreaChartProps, IAre
32
32
  private _calloutPoints;
33
33
  private _createSet;
34
34
  private _colors;
35
+ private _opacity;
35
36
  private _uniqueIdForGraph;
36
37
  private _verticalLineId;
37
38
  private _circleId;
@@ -139,11 +139,13 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
139
139
  var allChartPoints = [];
140
140
  var dataSet = [];
141
141
  var colors = [];
142
+ var opacity = [];
142
143
  var calloutPoints = index_2.calloutData(points);
143
144
  points &&
144
145
  points.length &&
145
146
  points.forEach(function (singleChartPoint) {
146
147
  colors.push(singleChartPoint.color);
148
+ opacity.push(singleChartPoint.opacity || 1);
147
149
  allChartPoints.push.apply(allChartPoints, singleChartPoint.data);
148
150
  });
149
151
  var tempArr = allChartPoints;
@@ -175,6 +177,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
175
177
  var stackedInfo = _this._getStackedData(keys, dataSet);
176
178
  return {
177
179
  colors: colors,
180
+ opacity: opacity,
178
181
  keys: keys,
179
182
  stackedInfo: stackedInfo,
180
183
  calloutPoints: calloutPoints,
@@ -267,6 +270,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
267
270
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
268
271
  _this._drawGraph = function (containerHeight, xScale, yScale, xElement) {
269
272
  var points = _this.props.data.lineChartData;
273
+ var _a = _this.props.data, pointOptions = _a.pointOptions, pointLineOptions = _a.pointLineOptions;
270
274
  var area = d3_shape_1.area()
271
275
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
276
  .x(function (d) { return xScale(d.xVal); })
@@ -286,8 +290,8 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
286
290
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
287
291
  _this._stackedData.forEach(function (singleStackedData, index) {
288
292
  graph.push(React.createElement(React.Fragment, { key: index + "-graph-" + _this._uniqueIdForGraph },
289
- React.createElement("path", { id: index + "-line-" + _this._uniqueIdForGraph, d: line(singleStackedData), fill: 'transparent', strokeWidth: 3, stroke: _this._colors[index], opacity: _this._getLineOpacity(points[index].legend), onMouseMove: _this._onRectMouseMove, onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove }),
290
- React.createElement("path", { id: index + "-graph-" + _this._uniqueIdForGraph, d: area(singleStackedData), fill: _this._colors[index], fillOpacity: _this._getOpacity(points[index].legend), onMouseMove: _this._onRectMouseMove, onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove })));
293
+ React.createElement("path", tslib_1.__assign({ id: index + "-line-" + _this._uniqueIdForGraph, d: line(singleStackedData), fill: 'transparent', strokeWidth: 3, stroke: _this._colors[index], opacity: _this._getLineOpacity(points[index].legend), onMouseMove: _this._onRectMouseMove, onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove }, points[index].lineOptions)),
294
+ React.createElement("path", { id: index + "-graph-" + _this._uniqueIdForGraph, d: area(singleStackedData), fill: _this._colors[index], opacity: _this._opacity[index], fillOpacity: _this._getOpacity(points[index].legend), onMouseMove: _this._onRectMouseMove, onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove })));
291
295
  });
292
296
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
293
297
  _this._stackedData.forEach(function (singleStackedData, index) {
@@ -298,10 +302,10 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
298
302
  var circleId = _this._circleId + "_" + (index * _this._stackedData[0].length + pointIndex);
299
303
  var xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;
300
304
  lineColor = points[index].color;
301
- return (React.createElement("circle", { key: circleId, id: circleId, "data-is-focusable": true, cx: xScale(singlePoint.xVal), cy: yScale(singlePoint.values[1]), r: _this._getCircleRadius(xDataPoint), stroke: lineColor, strokeWidth: 3, visibility: _this.state.nearestCircleToHighlight ? 'visibility' : 'hidden', fill: _this._updateCircleFillColor(xDataPoint, lineColor), onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove, onClick: _this._onDataPointClick.bind(_this, points[index].data[pointIndex].onDataPointClick) }));
305
+ return (React.createElement("circle", tslib_1.__assign({ key: circleId, id: circleId, "data-is-focusable": true, cx: xScale(singlePoint.xVal), cy: yScale(singlePoint.values[1]), r: _this._getCircleRadius(xDataPoint), stroke: lineColor, strokeWidth: 3, visibility: _this.state.nearestCircleToHighlight ? 'visibility' : 'hidden', fill: _this._updateCircleFillColor(xDataPoint, lineColor), onMouseOut: _this._onRectMouseOut, onMouseOver: _this._onRectMouseMove, onClick: _this._onDataPointClick.bind(_this, points[index].data[pointIndex].onDataPointClick) }, pointOptions)));
302
306
  })));
303
307
  });
304
- graph.push(React.createElement("line", { id: _this._verticalLineId, key: _this._verticalLineId, x1: _this.state.lineXValue, y1: 0, x2: _this.state.lineXValue, y2: containerHeight, strokeWidth: 1, strokeDasharray: 5.5, stroke: lineColor, opacity: 0.5, visibility: _this.state.displayOfLine }));
308
+ graph.push(React.createElement("line", tslib_1.__assign({ id: _this._verticalLineId, key: _this._verticalLineId, x1: _this.state.lineXValue, y1: 0, x2: _this.state.lineXValue, y2: containerHeight, strokeWidth: 1, strokeDasharray: 5.5, stroke: lineColor, opacity: 0.5, visibility: _this.state.displayOfLine }, pointLineOptions)));
305
309
  var classNames = getClassNames(_this.props.styles, {
306
310
  theme: _this.props.theme,
307
311
  });
@@ -374,10 +378,11 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
374
378
  AreaChartBase.prototype.render = function () {
375
379
  var _this = this;
376
380
  var _a = this.props.data, lineChartData = _a.lineChartData, chartTitle = _a.chartTitle;
377
- var _b = this._createSet(this.props.data), colors = _b.colors, stackedInfo = _b.stackedInfo, calloutPoints = _b.calloutPoints;
381
+ var _b = this._createSet(this.props.data), colors = _b.colors, opacity = _b.opacity, stackedInfo = _b.stackedInfo, calloutPoints = _b.calloutPoints;
378
382
  this._calloutPoints = calloutPoints;
379
383
  var isXAxisDateType = index_2.getXAxisType(lineChartData);
380
384
  this._colors = colors;
385
+ this._opacity = opacity;
381
386
  this._stackedData = stackedInfo.stackedData;
382
387
  var legends = this._getLegendData(this.props.theme.palette, lineChartData);
383
388
  var tickParams = {