@fluentui/react-charting 5.24.17 → 5.24.19

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 (44) hide show
  1. package/CHANGELOG.json +49 -1
  2. package/CHANGELOG.md +23 -2
  3. package/dist/react-charting.js +1 -1
  4. package/dist/react-charting.min.js +1 -1
  5. package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
  6. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  7. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
  8. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  9. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
  10. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  11. package/lib/components/LineChart/LineChart.base.js +0 -7
  12. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  13. package/lib/components/ScatterChart/ScatterChart.base.js +1 -8
  14. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  15. package/lib/utilities/scatterpolar-utils.d.ts +2 -8
  16. package/lib/utilities/scatterpolar-utils.js +7 -15
  17. package/lib/utilities/scatterpolar-utils.js.map +1 -1
  18. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +1 -1
  19. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  20. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
  21. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  22. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
  23. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  24. package/lib-amd/components/LineChart/LineChart.base.js +0 -7
  25. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  26. package/lib-amd/components/ScatterChart/ScatterChart.base.js +1 -8
  27. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  28. package/lib-amd/utilities/scatterpolar-utils.d.ts +2 -8
  29. package/lib-amd/utilities/scatterpolar-utils.js +7 -15
  30. package/lib-amd/utilities/scatterpolar-utils.js.map +1 -1
  31. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
  32. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  33. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
  34. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  35. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
  36. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  37. package/lib-commonjs/components/LineChart/LineChart.base.js +0 -7
  38. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  39. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +1 -8
  40. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  41. package/lib-commonjs/utilities/scatterpolar-utils.d.ts +2 -8
  42. package/lib-commonjs/utilities/scatterpolar-utils.js +7 -15
  43. package/lib-commonjs/utilities/scatterpolar-utils.js.map +1 -1
  44. 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,6BAA+B;AAE/B,6CAA2D;AAC3D,qCAAoC;AACpC,0CAAsE;AACtE,qCAA0C;AAC1C,qCAAsD;AACtD,2DAOuC;AACvC,qCAgBqB;AACrB,uDAA8D;AAC9D,6DAAqE;AACrE,qEAAqE;AACrE,+CAqB+B;AAE/B,yEAA6D;AAE7D,yEAAsF;AAGtF,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAA0C,CAAC;AAEnF,IAAK,SAGJ;AAHD,WAAK,SAAS;IACZ,oDAAc,CAAA;IACd,2DAAiB,CAAA;AACnB,CAAC,EAHI,SAAS,KAAT,SAAS,QAGb;AAED,8DAA8D;AAC9D,IAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,IAAI,CAAC;AAE9C,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,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,qBACd,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,oBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,qBACtC,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,sBACb,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,oBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,YACzC;QACF,QAAQ;QACR,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBACtB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aACvB;QACH,UAAU;QACV,WAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,sBAC1B,CAAC,GAAG,CAAC,GAAG,CAAC,qBACV,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,OAAI;QAC3B,SAAS;QACT,WAAI,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBACd,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,qBACd,CAAC,cAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBACd,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,aACf;QACH,SAAS;QACT,WAAI,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBACnB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,OAAI;QACnC,SAAS;QACT,WAAI,CAAC,GAAG,GAAG,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC5B,CAAC,GAAG,GAAG,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC5B,CAAC,GAAG,CAAC,cAAI,CAAC,qBACV,CAAC,GAAG,GAAG,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC5B,CAAC,GAAG,GAAG,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC5B,CAAC,GAAG,CAAC,cAAI,CAAC,aACX;QACH,UAAU;QACV,WAAI,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAClB,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAChC,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,aACjC;QACH,SAAS;QACT,WAAI,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC/B,CAAC,GAAG,MAAM,GAAG,CAAC,cAAI,CAAC,GAAG,KAAK,GAAG,CAAC,qBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,qBAC/B,CAAC,GAAG,KAAK,GAAG,CAAC,cAAI,CAAC,GAAG,MAAM,GAAG,CAAC,aAChC;KACJ,CAAC;IACF,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AA8BF;IAAmC,yCAAiD;IAgDlF,uBAAY,KAAsB;;QAChC,cAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QAvCf,8DAA8D;QACtD,mBAAW,GAAQ,EAAE,CAAC;QAC9B,8DAA8D;QACtD,sBAAc,GAAQ,EAAE,CAAC;QASzB,wBAAgB,GAAW,EAAE,CAAC;QAa9B,cAAM,GAAY,IAAA,kBAAM,GAAE,CAAC;QAG3B,aAAK,GAAW,MAAM,CAAC,iBAAiB,CAAC;QACzC,aAAK,GAAW,MAAM,CAAC,iBAAiB,CAAC;QACzC,iBAAS,GAAW,CAAC,CAAC;QACtB,wBAAgB,GAAW,CAAC,CAAC;QAE7B,0BAAkB,GAAW,CAAC,CAAC;QAC/B,uBAAe,GAAY,KAAK,CAAC;QACjC,wBAAgB,GAAY,KAAK,CAAC;QAClC,uBAAe,GAAY,KAAK,CAAC;QAyMlC,eAAO,GAAG,UAAC,IAA0B;;YAC1C,OAAO,IAAA,4BAAO,EAAC,MAAA,OAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,EAAE,MAAA,OAAI,CAAC,WAAW,CAAC,OAAO,0CAAE,KAAK,EAAE,OAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtH,CAAC,CAAC;QAEM,8BAAsB,GAAG,UAC/B,MAA0B,EAC1B,OAAiB,EACjB,KAAa,EACb,SAAqB,EACrB,KAAc,EACd,SAAqB,EACrB,QAAgB,EAChB,UAAyC,EACzC,MAAc;YAEd,IAAI,iBAAgC,CAAC;YACrC,IAAI,OAAI,CAAC,eAAe,IAAI,SAAS,KAAK,kBAAU,CAAC,WAAW,EAAE,CAAC;gBACjE,iBAAiB,GAAG,OAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,OAAI,CAAC,eAAe,IAAI,SAAS,KAAK,kBAAU,CAAC,QAAQ,EAAE,CAAC;gBACrE,iBAAiB,GAAG,OAAI,CAAC,uCAAuC,CAC9D,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAqB,EACrB,SAAS,EACT,QAAQ,CACT,CAAC;YACJ,CAAC;iBAAM,IAAI,SAAS,KAAK,kBAAU,CAAC,WAAW,EAAE,CAAC;gBAChD,iBAAiB,GAAG,IAAA,wCAAgC,EAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;iBAAM,IAAI,SAAS,KAAK,kBAAU,CAAC,QAAQ,EAAE,CAAC;gBAC7C,iBAAiB,GAAG,IAAA,oDAA4C,EAC9D,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAqB,EACrB,SAAS,EACT,QAAQ,CACT,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YACrF,CAAC;YACD,OAAO,iBAAiB,CAAC;QAC3B,CAAC,CAAC;QAEM,2CAAmC,GAAG,UAC5C,aAAkC,EAClC,uBAAwC;;YAAxC,wCAAA,EAAA,+BAAwC;YAEhC,IAAA,KAAyC,OAAI,CAAC,KAAK,6BAAf,EAApC,4BAA4B,mBAAG,KAAK,KAAA,CAAgB;YAC5D,4CAA4C;YAC5C,IAAM,YAAY,GAAG,uBAAuB;gBAC1C,CAAC,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CACnB,UAAC,IAAsB;;oBACrB,OAAA,CAAA,MAAA,MAAA,OAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,0CAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC9D,CAAA,MAAA,OAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,MAAK,IAAI,CAAC,MAAM,CAAA;iBAAA,CACzD;gBACH,CAAC,CAAC,aAAa,CAAC;YAClB,OAAI,CAAC,eAAe;gBAClB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,UAAC,IAAsB,oBAAK,OAAA,MAAA,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,mDAAG,SAAS,CAAC,CAAA,EAAA,CAAC,mCAAI,KAAK,CAAC;YACzG,OAAI,CAAC,eAAe,GAAG,IAAA,4BAAoB,EAAC,YAAa,CAAC,CAAC;YAC3D,OAAO,YAAY;gBACjB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,IAAsB,EAAE,KAAa;;oBACrD,IAAI,KAAa,CAAC;oBAClB,sDAAsD;oBACtD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBACtC,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,EAAE,CAAC,EAAE,MAAA,OAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,MAAA,OAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;oBACtE,CAAC;oBAED,6CACK,IAAI,KACP,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,KAAK,OAAA,IACL;gBACJ,CAAC,CAAC;gBACJ,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,4BAAoB,GAAG,UAC7B,MAA0B,EAC1B,SAAqB,EACrB,kBAA4B;YAE5B,wDAAwD;YAClD,IAAA,KAA2B,IAAA,4BAAoB,EAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAApF,UAAU,gBAAA,EAAE,QAAQ,cAAgE,CAAC;YAC7F,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,OAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,QAAQ,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;gBACzC,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,OAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,OAAO;gBACL,UAAU,EAAE,UAAU,GAAG,QAAQ;gBACjC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;aAC9B,CAAC;QACJ,CAAC,CAAC;QAEM,mBAAW,GAAG,UAAC,OAAiB;YACtC,OAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC;QAEM,gCAAwB,GAAG,UACjC,MAAmB,EACnB,aAA0B,EAC1B,eAAuB,EACvB,cAAsB,EACtB,QAA2B,EAC3B,YAAgC,EAChC,eAA6C;YAE7C,OAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,OAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;YACxC,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,EAAE,eAAgB,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEM,0CAAkC,GAAG,UAAC,aAA2D;YACvG,IAAI,OAAI,CAAC,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtC,OAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,OAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;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;QAwFM,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,CAAC;gBACjC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC7B,CAAC;qBAAM,IAAI,UAAU,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC3C,OAAO,WAAW,GAAG,kBAAkB,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC,aAAa,CAAC;gBACjC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC,aAAa,CAAC;gBACjC,CAAC;YACH,CAAC;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,kBAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzG,IAAM,UAAU,GAAG,kBAAU,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,CAAC;gBACjC,IAAI,UAAU,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBACpC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;wBAC5B,OAAO,KAAM,CAAC,cAAc,CAAC,cAAc,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,OAAO,SAAS,CAAC;oBACnB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;wBAC5B,OAAO,KAAM,CAAC,cAAc,CAAC,cAAc,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,OAAO,SAAS,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,OAAO,KAAM,CAAC,cAAc,CAAC,cAAc,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QA4qBM,4BAAoB,GAAG,UAAC,eAAuB;;YACrD,4DAA4D;YAC5D,IAAM,aAAa,GAAkB,EAAE,CAAC;YACxC,IAAI,OAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAChC,OAAI,CAAC,cAAc,GAAG,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAI,CAAC,cAAc,GAAG,OAAI,CAAC,KAAK,CAAC,aAAc,CAAC;YAClD,CAAC;YAED,IAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,OAAI,CAAC,OAAO,CAAC,CAAC;YACzD,IAAM,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAM,YAAY,GAAG,OAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAM,MAAM,GAAG,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,IAAM,cAAc,GAAG,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC;gBACrC,sDAAsD;gBACtD,IAAM,KAAK,GAAG,IAAA,yBAAiB,EAAC,YAAY,CAAC,KAAK,EAAE,MAAA,OAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;gBAElF,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;oBAC9B,8FAA8F;oBAC9F,aAAa,CAAC,IAAI,CAAC,OAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,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,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,OAAI,CAAC,oBAAoB,EAAE,IAAI,OAAI,CAAC,KAAK,CAAC,gBAAgB;wBACxG,CAAC,CAAC,OAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;wBAC5C,CAAC,CAAC,GAAG,CAAC;oBACV,aAAa,CAAC,IAAI,CAChB,8BACE,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,eAAQ,OAAI,CAAC,sBAAsB,cAAI,CAAC,MAAG,CAAC,CAAC,CAAC,KAAK,EACrF,WAAW,EAAE,OAAO,EACpB,CAAC,EAAE,OAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAClE,CAAC,EAAE,OAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,cAAc,EAC/D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAClE,MAAM,EACJ,OAAI,CAAC,cAAc,CAAC,OAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;4BAC9C,OAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;4BAC3C,cAAc,EAEhB,GAAG,EAAE,UAAG,cAAc,SAAG,CAAC,CAAE,GAC5B,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;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,UAAG,OAAI,CAAC,sBAAsB,cAAI,EAAE,CAAE,EAC1C,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,UAAG,OAAI,CAAC,sBAAsB,cAAI,EAAE,CAAE,EAC3C,YAAY,EAAE,gBAAgB;gBAE9B,8BAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAI,CACjD,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,CAAC;gBACtE,QAAQ,EAAE,CAAC;YACb,CAAC;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,CAAC;gBAC9G,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;QAC/B,CAAC,CAAC;QAMM,gCAAwB,GAAG,UACjC,UAAkB,EAClB,UAAkB,EAClB,MAAmC,EACnC,UAAgF;YAEhF,UAAU,CAAC,OAAO,EAAE,CAAC;YACb,IAAA,IAAI,GAAK,OAAI,CAAC,KAAK,KAAf,CAAgB;YACpB,IAAA,aAAa,GAAK,IAAI,cAAT,CAAU;YAE/B,8DAA8D;YAC9D,IAAM,OAAO,GAAG,OAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAA,sBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAI,CAAC,OAAO,CAAE,CAAC,CAAC;YACxG,IAAM,CAAC,GAAG,MAAM,CAAC,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAM,EAAE,GAAG,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAwB,CAAC;YACzE,IAAM,EAAE,GAAG,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC;YACrE,IAAI,QAAQ,GAAsB,IAAI,CAAC;YACvC,IAAI,iBAAiB,GAAkC,IAAI,CAAC;YAC5D,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACzC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACzB,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBAChD,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACzB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAA,qBAAa,EAAC,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAe,CAAC;gBACnF,IAAI,EAAE,SAAA,CAAC;gBACP,IAAI,MAAM,SAAA,CAAC;gBACX,IAAI,MAAM,SAAA,CAAC;gBACX,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,kBAAU,CAAC,QAAQ;wBACtB,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;wBACjC,MAAM,GAAI,EAAE,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAClC,MAAM,GAAI,EAAE,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAClC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChF,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClE,MAAM;oBACR,KAAK,kBAAU,CAAC,WAAW;wBACzB,EAAE,GAAG,OAAiB,CAAC;wBACvB,MAAM,GAAG,EAAE,CAAC,CAAW,CAAC;wBACxB,MAAM,GAAG,EAAE,CAAC,CAAW,CAAC;wBACxB,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChF,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClE,MAAM;oBACR;wBACE,MAAM;gBACV,CAAC;YACH,CAAC;YAEK,IAAA,KAAsD,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAe,CAAC,EAApG,gBAAgB,sBAAA,EAAE,6BAA6B,mCAAqD,CAAC;YAC7G,IAAM,aAAa,GACjB,iBAAiB,YAAY,IAAI;gBAC/B,CAAC,CAAC,IAAA,0CAAwB,EAAC,iBAAiB,EAAE,OAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACpF,CAAC,CAAC,iBAAiB,CAAC;YACxB,IAAM,YAAY,GAAG,iBAAiB,YAAY,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACzG,8DAA8D;YAC9D,IAAM,KAAK,GAAQ,IAAA,gBAAI,EAAC,OAAI,CAAC,cAAc,EAAE,UAAC,OAA+B;gBAC3E,OAAO,OAAO,CAAC,CAAC,KAAK,YAAY,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAM,gBAAgB,GAAwB,aAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;YACtF,IAAM,uBAAuB,GAC3B,OAAI,CAAC,KAAK,CAAC,wBAAwB,KAAK,IAAI;gBAC5C,CAAC,OAAI,CAAC,KAAK,CAAC,wBAAwB,KAAK,IAAI;oBAC3C,gBAAgB,KAAK,IAAI;oBACzB,CAAC,OAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC;wBAC3D,OAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,oFAAoF;YACpF,IAAI,KAAK,IAAI,uBAAuB,EAAE,CAAC;gBACrC,OAAI,CAAC,gBAAgB,GAAG,WAAI,OAAI,CAAC,sBAAsB,cAAI,UAAU,CAAE,CAAC;gBAExE,IAAA,qBAAQ,EAAC,WAAI,OAAI,CAAC,sBAAsB,cAAI,UAAU,CAAE,CAAC;qBACtD,IAAI,CAAC,IAAI,EAAE,UAAG,OAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,CAAC;qBACrD,IAAI,CAAC,IAAI,EAAE,UAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,CAAC;qBAC3C,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAEpC,IAAA,qBAAQ,EAAC,WAAI,OAAI,CAAC,aAAa,CAAE,CAAC;qBAC/B,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,oBAAa,OAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAK,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAG,EAAnF,CAAmF,CAAC;qBAC5G,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;qBAChC,IAAI,CAAC,IAAI,EAAE,UAAG,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;gBAE5D,OAAI,CAAC,QAAQ,CAAC;oBACZ,wBAAwB,EAAE,gBAAgB;oBAC1C,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE,WAAI,OAAI,CAAC,sBAAsB,cAAI,UAAU,CAAE;oBAC5D,iBAAiB,EAAE,KAAM;oBACzB,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,qBAAqB,EAAE,KAAM;oBAC7B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa;oBAChE,6BAA6B,+BAAA;oBAC7B,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,UAAU;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;oBACvB,wBAAwB,EAAE,gBAAgB;oBAC1C,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,UAAU;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEM,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,IAAA,0CAAwB,EAAC,CAAC,EAAE,OAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjH,IAAM,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,KAAK,GAAG,IAAA,gBAAI,EAAC,OAAI,CAAC,cAAc,EAAE,UAAC,OAA+B,IAAK,OAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;YACjG,oFAAoF;YAEpF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAM,OAAK,GAAG,OAAI,CAAC;gBACnB,IAAA,qBAAQ,EAAC,WAAI,OAAI,CAAC,aAAa,CAAE,CAAC;qBAC/B,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,oBAAa,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,CAAC;wBACzB,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;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,QAAQ;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEM,oBAAY,GAAG,UACrB,CAAgB,EAChB,CAAgB,EAChB,UAAkB,EAClB,gBAAoC,EACpC,QAAgB,EAChB,6BAA8D,EAC9D,MAAmC,EACnC,SAAiB,EACjB,SAAiB,EACjB,UAAwC;YAExC,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,IAAM,aAAa,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAA,0CAAwB,EAAC,CAAC,EAAE,OAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjH,IAAM,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,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,IAAA,gBAAI,EAAC,OAAI,CAAC,cAAc,EAAE,UAAC,OAA+B,IAAK,OAAA,OAAO,CAAC,CAAC,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;YACjG,IAAI,OAAO,GAAuC,SAAS,CAAC;YAE5D,IAAI,OAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,KAAK,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,EAAE,CAAC;gBAC5D,IAAM,EAAE,GAAG,IAAA,gBAAI,EAAC,KAAK,CAAC,MAAM,EAAE,UAAC,GAAgC,IAAK,OAAA,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,CAAC,MAAK,IAAI,EAAf,CAAe,CAAC,CAAC;gBACrF,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,GAAG;wBACR,CAAC,EAAE,IAAI;wBACP,MAAM,EAAE,CAAC,EAAE,CAAC;qBACb,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,oFAAoF;YAEpF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAA,qBAAQ,EAAC,WAAI,OAAI,CAAC,aAAa,CAAE,CAAC;qBAC/B,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,oBAAa,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,MAAM,CAAC,CAAC,CAAC,MAAG,EAAlD,CAAkD,CAAC;qBAC3E,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;qBAChC,IAAI,CAAC,IAAI,EAAE,UAAG,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC3C,IAAI,OAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;oBACvC,OAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;oBACjC,OAAI,CAAC,QAAQ,CAAC;wBACZ,gBAAgB,EAAE,IAAI;wBACtB,WAAW,EAAE,WAAI,QAAQ,CAAE;wBAC3B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa;wBACrE,WAAW,EAAE,KAAK,CAAC,MAAM;wBACzB,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE,SAAU;wBACrB,SAAS,WAAA;wBACT,iBAAiB,EAAE,KAAM;wBACzB,qBAAqB,EAAE,OAAO;wBAC9B,WAAW,EAAE,QAAQ;wBACrB,6BAA6B,+BAAA;wBAC7B,wBAAwB,EAAE,IAAI;wBAC9B,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,QAAQ;oBACrB,wBAAwB,EAAE,IAAI;oBAC9B,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF;;;WAGG;QACK,wBAAgB,GAAG,UAAC,IAAiB;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;oBACL,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEM,uBAAe,GAAG;YACxB,IAAA,qBAAQ,EAAC,WAAI,OAAI,CAAC,aAAa,CAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAC;QAEM,8BAAsB,GAAG;YAC/B,OAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,OAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,0BAAkB,GAAG,UAC3B,aAA2D,EAC3D,cAAwC;YAExC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;gBAChC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9C,CAAC;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,CAAC;oBACpD,OAAO,GAAG,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEP,IAAI,aAAuC,CAAC;YAC5C,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7B,aAAa,mDAAO,OAAI,CAAC,KAAK,CAAC,oBAAoB,UAAE,YAAY,SAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,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;YAC1E,CAAC;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,CAAC;gBACD,iFAAiF;gBACjF,oFAAoF;gBACpF,OAAI,CAAC,8BAA8B,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;gBAC9E,gFAAgF;gBAChF,OAAI,CAAC,8BAA8B,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,+FAA+F;gBAC/F,OAAI,CAAC,QAAQ,CAAC;oBACZ,oBAAoB,EAAE,aAAa;oBACnC,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;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,CAAC;oBACpE,OAAO,GAAG,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEP,IAAI,qBAA4C,CAAC;YACjD,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrC,qBAAqB,mDAAO,OAAI,CAAC,KAAK,CAAC,sBAAsB,UAAE,oBAAoB,SAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,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;YACpF,CAAC;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,CAAC;gBACD,yEAAyE;gBACzE,6EAA6E;gBAC7E,OAAI,CAAC,8BAA8B,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;gBACpF,uEAAuE;gBACvE,OAAI,CAAC,8BAA8B,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,0EAA0E;gBAC1E,OAAI,CAAC,QAAQ,CAAC;oBACZ,sBAAsB,EAAE,qBAAqB;oBAC7C,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;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;QAEF;;;;;WAKG;QACK,0BAAkB,GAAG,UAAC,MAAc;YAC1C,OAAO,CACL,OAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,OAAI,CAAC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,CACjH,CAAC;QACJ,CAAC,CAAC;QAEF;;WAEG;QACK,4BAAoB,GAAG;YAC7B,OAAO,OAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,OAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;QAC5E,CAAC,CAAC;QAEM,+BAAuB,GAAG,UAAC,YAAiC;YAClE,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC,CAAC;QAEM,qBAAa,GAAG,UAAC,SAAiB,EAAE,UAAkB;;YAC5D,IAAM,IAAI,GAAG,OAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,IAAM,aAAa,GACjB,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAA,0CAAwB,EAAC,KAAK,CAAC,CAAC,EAAE,OAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/G,IAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,aAAa,CAAC;YACvD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC;YACjD,OAAO,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS,KAAI,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,CAAC;QACzF,CAAC,CAAC;QAEM,+CAAuC,GAAG,UAChD,MAA0B,EAC1B,OAAiB,EACjB,KAAa,EACb,KAAc,EACd,UAAuB,EACvB,SAAqB,EACrB,QAAiB;YAFjB,2BAAA,EAAA,eAAuB;YAIvB,OAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/B,gCAAgC;YAChC,IAAM,KAAK,GACT,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAE,IAAA,cAAK,kDAAK,UAAU,UAAE,IAAI,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,UAAY;gBACzD,CAAC,CAAC,IAAI,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAM,KAAK,GACT,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAE,IAAA,cAAK,kDAAK,UAAU,UAAE,IAAI,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,UAAY;gBACzD,CAAC,CAAC,IAAI,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,CAAC;YAE3B,4DAA4D;YAC5D,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACpD,IAAM,WAAW,GAAG,OAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/D,IAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC;YAC5D,IAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC;YAE5D,IAAM,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC;YAClC,IAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,KAAM,CAAC;YAEzC,OAAO,KAAK;gBACV,CAAC,CAAC;oBACE,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,WAAW;oBACtB,WAAW,aAAA;oBACX,SAAS,WAAA;iBACV;gBACH,CAAC,CAAC;oBACE,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,WAAW;oBACtB,WAAW,aAAA;oBACX,SAAS,WAAA;iBACV,CAAC;QACR,CAAC,CAAC;QAEM,yCAAiC,GAAG,UAC1C,MAA0B,EAC1B,OAAiB,EACjB,KAAa,EACb,KAAc;YAEd,OAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE/B,IAAI,OAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,OAAI,CAAC,SAAS,GAAG,CAAC,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACnD,CAAC;YACD,IAAM,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC;YAClC,IAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,KAAM,CAAC;YAEzC,OAAO,KAAK;gBACV,CAAC,CAAC;oBACE,WAAW,EAAE,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,SAAS;oBACxC,SAAS,EAAE,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,SAAS;oBACtC,WAAW,aAAA;oBACX,SAAS,WAAA;iBACV;gBACH,CAAC,CAAC;oBACE,WAAW,EAAE,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,SAAS;oBACxC,SAAS,EAAE,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,SAAS;oBACtC,WAAW,aAAA;oBACX,SAAS,WAAA;iBACV,CAAC;QACR,CAAC,CAAC;QAWM,sBAAc,GAAG;YACjB,IAAA,KAAgC,OAAI,CAAC,KAAK,CAAC,IAAI,EAA7C,UAAU,gBAAA,EAAE,aAAa,mBAAoB,CAAC;YACtD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,UAAU,OAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,0BAAmB,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,KAAI,CAAC,aAAU,CAAC;QACzG,CAAC,CAAC;QAEM,yBAAiB,GAAG,UAAC,MAA0B;YACrD,IAAM,IAAI,GAAG,UAAC,IAAyB,IAAK,OAAA,CAAC,OAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,IAAI,CAAC,CAAU,CAAC,CAAC,CAAE,IAAI,CAAC,CAAY,CAAC,EAA/D,CAA+D,CAAC;YAE5G,IAAM,MAAM,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE,UAAC,KAAuB,IAAK,OAAA,IAAA,cAAK,EAAC,KAAK,CAAC,IAA6B,EAAE,IAAI,CAAC,EAAhD,CAAgD,CAAC,CAAC;YAC5G,IAAM,MAAM,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE,UAAC,KAAuB,IAAK,OAAA,IAAA,cAAK,EAAC,KAAK,CAAC,IAA6B,EAAE,IAAI,CAAC,EAAhD,CAAgD,CAAC,CAAC;YAE5G,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,MAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAE,MAAiB,CAAC;YACrF,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,MAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAE,MAAiB,CAAC;YACrF,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,KAAK,KAAK,MAAM,CAAC,iBAAiB,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC;YACrF,OAAI,CAAC,KAAK,GAAG,OAAI,CAAC,KAAK,KAAK,MAAM,CAAC,iBAAiB,IAAI,CAAC,OAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAI,CAAC,KAAK,CAAC;QACvF,CAAC,CAAC;QA3sDA,IAAA,kCAAsB,EAAC,OAAI,CAAC,CAAC;QAE7B,OAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,MAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;YACvD,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,OAAI,CAAC,mCAAmC,CAAC,OAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YACnG,sBAAsB,EAAE,EAAE;YAC1B,gBAAgB,EAAE,CAAC,MAAA,MAAA,MAAA,OAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC;YAC5E,WAAW,EAAE,EAAE;YACf,wBAAwB,EAAE,IAAI;YAC9B,UAAU,EAAE,IAAI;SACjB,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,cAAc,GAAG,IAAA,mBAAW,EAAC,OAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtD,OAAI,CAAC,SAAS,GAAG,IAAA,iBAAK,EAAC,QAAQ,CAAC,CAAC;QACjC,OAAI,CAAC,OAAO,GAAG,IAAA,iBAAK,EAAC,QAAQ,CAAC,CAAC;QAC/B,OAAI,CAAC,SAAS,GAAG,IAAA,iBAAK,EAAC,UAAU,CAAC,CAAC;QACnC,OAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,cAAc,CAAC,CAAC;QAC3C,OAAI,CAAC,sBAAsB,GAAG,IAAA,iBAAK,EAAC,qBAAqB,CAAC,CAAC;QAC3D,OAAI,CAAC,UAAU,GAAG,IAAA,iBAAK,EAAC,qBAAqB,CAAC,CAAC;QAC/C,OAAI,CAAC,OAAO,GAAG,IAAA,iBAAK,EAAC,iBAAiB,CAAC,CAAC;QACxC,OAAI,CAAC,sBAAsB,GAAG,IAAA,iBAAK,EAAC,uBAAuB,CAAC,CAAC;QAC7D,OAAI,CAAC,sBAAsB,GAAG,IAAA,2BAAe,EAAC,UAAC,IAA8B,IAAK,OAAA,OAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAC7G,OAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,OAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,kBAAkB,CAAC,CAAC;QAC/C,OAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,OAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAErC,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,IACE,CAAA,MAAA,SAAS,CAAC,WAAW,0CAAE,cAAc,OAAK,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,CAAA;YAChF,CAAC,IAAA,sBAAc,EAAC,MAAA,SAAS,CAAC,WAAW,0CAAE,eAAe,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,CAAC,EAChG,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC;gBACZ,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;gBAC5D,oBAAoB,EAAE,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBACnG,gBAAgB,EAAE,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC;aAC7E,CAAC,CAAC;QACL,CAAC;QAED;;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,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,cAAc,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,4DAA4D;IACrD,8BAAM,GAAb;QAAA,mBA2HC;QA1HO,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,IAAI,CAAC,gBAAgB,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;YAC1D,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,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,sDAAsD;QACtD,+BAA+B;QAC/B,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3B,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,IAAM,YAAY,sBAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAsB,EACzC,EAAE,EAAE,iBAAU,IAAI,CAAC,gBAAgB,CAAE,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,YAAA;YACV,UAAU,YAAA;SACX,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAC7B,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,EACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,kBAAU,CAAC,SAAS,EAC/B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,0BAAkB,EAC/B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAC3C,YAAY,EAAE,IAAI,CAAC,wBAAwB,EAC3C,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAU,CAAC,WAAW,IAC3E,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IACjE,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAC/C,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,iBAAiB,EAAE,yBAAiB,EACpC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAC9C,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,CAAC,wBAAwB,EACjG,GAAG,EAAE,IAAI,CAAC,kBAAkB;YAC5B,sCAAsC;YACtC,kDAAkD;YAClD,QAAQ,EAAE,UAAC,KAAkB;gBAC3B,OAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAO,CAAC;gBACjC,OAAI,CAAC,cAAc,GAAG,KAAK,CAAC,aAAc,CAAC;gBAC3C,OAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC;gBAC9C,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,SAAS,EACjB,EAAE,EAAE,OAAI,CAAC,aAAa,EACtB,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,KAAK,GACtB;wBACD,OAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAC9B,8BACE,EAAE,EAAE,OAAI,CAAC,OAAO,EAChB,KAAK,EAAE,KAAK,CAAC,cAAc,EAC3B,MAAM,EAAE,KAAK,CAAC,eAAe,EAC7B,IAAI,EAAE,aAAa,GACnB,CACH,CAAC,CAAC,CAAC,CACF,yCAAK,CACN;wBACD;4BACG,OAAI,CAAC,sBAAsB;4BAC3B,OAAI,CAAC,KAAK,CACT;wBACH,oBAAoB,IAAI,CACvB,oBAAC,kCAAgB,qBACf,KAAK,EAAE,OAAI,CAAC,KAAK,CAAC,KAAK,IACnB,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,CAAC,CAAC,CACF,6BACE,EAAE,EAAE,IAAI,CAAC,aAAa,EACtB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBACX,8BAA8B,GAC1C,CACH,CAAC;IACJ,CAAC;IAED,sBAAW,yCAAc;aAAzB;;YACE,OAAO,CAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,KAAI,IAAI,CAAC;QACjE,CAAC;;;OAAA;IAuJD,4DAA4D;IACpD,sCAAc,GAAtB,UAAuB,IAA8B;QAArD,mBAmFC;QAlFO,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,iBAAiB,GAA6C,EAAE,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,UAAC,KAA6B;YACzC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACvC,CAAC;gBACD,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAM,eAAe,GAAc,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAqB;gBAApB,WAAW,QAAA,EAAE,MAAM,QAAA;YAC5F,IAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtC,qDAAqD;YACrD,IAAM,MAAM,uCACV,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,mBAAmB,CAAC,KAAM,EACjC,MAAM,EAAE;oBACN,IAAI,0BAA0B,EAAE,CAAC;wBAC/B,MAAM,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,OAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAhD,CAAgD,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,OAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAA1C,CAA0C,CAAC,CAAC;oBAClE,CAAC;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,sBAAsB,EAAE,CAAC;oBAC9B,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,CAAC,IACE,CAAC,mBAAmB,CAAC,WAAW,IAAI;gBACrC,KAAK,EAAE,mBAAmB,CAAC,WAAW;aACvC,CAAC,GACC,CAAC,4BAA4B,IAAI;gBAClC,KAAK,EAAE,cAAM,CAAC,mBAAmB,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAC,MAAM,CAAqB;aAC9F,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,sDAAsD;gBACtD,IAAM,KAAK,GAAG,IAAA,yBAAiB,EAAC,YAAY,CAAC,KAAK,EAAE,MAAA,OAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;gBAClF,IAAM,MAAM,GAAY;oBACtB,KAAK,OAAA;oBACL,KAAK,OAAA;oBACL,MAAM,EAAE;wBACN,IAAI,0BAA0B,EAAE,CAAC;4BAC/B,OAAI,CAAC,gDAAgD,CAAC,YAAY,CAAC,CAAC;wBACtE,CAAC;6BAAM,CAAC;4BACN,OAAI,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;wBACxD,CAAC;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,sBAAsB,EAAE,CAAC;wBAC9B,OAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,OAAO,EAAE,OAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;oBACnD,aAAa,EAAE,YAAY,CAAC,YAAY;iBACzC,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CACL,oBAAC,eAAO,qBACN,OAAO,kDAAM,eAAe,SAAK,4BAA4B,SAC7D,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,IAC1B,GAAG,EAAE,IAAI,CAAC,WAAW,IACrB,CACH,CAAC;IACJ,CAAC;IAqEO,qDAA6B,GAArC,UAAsC,MAAmC,EAAE,QAAgB;QACzF,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM;YAC9B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjF,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,4DAA4D;IACpD,oCAAY,GAApB,UAAqB,QAAoB,EAAE,eAAuB;QAAlE,mBA+pBC;;QA9pBC,4DAA4D;QAC5D,IAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzF,CAAC;QACD,IAAM,aAAa,GAAG,IAAA,cAAK,EAAC,IAAI,CAAC,OAAO,EAAE,UAAC,KAAuB;YAChE,OAAO,IAAA,cAAK,EAAC,KAAK,CAAC,IAAI,EAAE,UAAC,IAAyB;gBACjD,OAAO,IAAI,CAAC,UAAoB,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAE,CAAC;QAEJ,IAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;SACzB,CAAC,CAAC;gCAEM,CAAC;YACR,4DAA4D;YAC5D,IAAM,YAAY,GAAkB,EAAE,CAAC;YACvC,4DAA4D;YAC5D,IAAM,cAAc,GAAkB,EAAE,CAAC;YACzC,4DAA4D;YAC5D,IAAM,aAAa,GAAkB,EAAE,CAAC;YAExC,IAAM,SAAS,GAAW,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjD,IAAM,SAAS,GAAW,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAM,CAAC;YACzC,IAAA,WAAW,GAAK,OAAK,KAAK,YAAf,CAAgB;YAC3B,IAAA,KAAK,GAAK,OAAK,KAAK,MAAf,CAAgB;YAC7B,IAAM,iBAAiB,GAAG,eAAe,GAAG,OAAK,OAAO,CAAC,MAAO,GAAG,CAAC,CAAC;YACrE,IAAM,MAAM,GACV,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,OAAK,gBAAgB,CAAC,CAAC,CAAC,OAAK,gBAAgB,CAAC,CAAC,CAAC,OAAK,cAAc,CAAC;YAC5G,IAAM,QAAQ,GACZ,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,OAAK,gBAAgB,CAAC,CAAC,CAAC,OAAK,kBAAkB,CAAC,CAAC,CAAC,OAAK,gBAAgB,CAAC;YAChH,IAAM,cAAc,GAAG,OAAK,eAAe,CAAC,CAAC,CAAC,OAAK,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvG,IAAI,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAA,MAAoE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAtF,IAAE,QAAA,EAAK,EAAE,QAAA,EAAE,kBAAgB,uBAAA,EAAE,+BAA6B,oCAA4B,CAAC;gBAClG,IAAM,UAAQ,GAAG,UAAG,OAAK,SAAS,cAAI,CAAC,CAAE,CAAC;gBAC1C,IAAM,gBAAgB,GACpB,OAAK,kBAAkB,CAAC,SAAS,CAAC,IAAI,OAAK,oBAAoB,EAAE,IAAI,OAAK,KAAK,CAAC,gBAAgB,CAAC;gBACnG,IAAM,iBAAiB,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAW,CAAC;gBAC9D,IAAM,gBAAgB,GAAG,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7E,IAAM,IAAI,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE1C,aAAa,CAAC,IAAI,CAChB,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,UAAG,UAAQ,cAAW;oBACzC,iDACE,EAAE,EAAE,UAAQ,EACZ,GAAG,EAAE,UAAQ,EACb,CAAC,EACC,iBAAiB;4BACf,CAAC,CAAC,CAAC,iBAAkB,GAAG,cAAc,CAAC,GAAG,aAAa;4BACvD,CAAC,CAAC,WAAW,KAAK,UAAQ;gCAC1B,CAAC,CAAC,GAAG;gCACL,CAAC,CAAC,GAAG,EAET,EAAE,EAAE,OAAK,WAAW,CAAC,IAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,EAAE,WAAW,KAAK,UAAQ,CAAC,CAAC,CAAC,KAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EACjF,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EACnC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,IAAE,EACF,EAAE,EACF,iBAAiB,EACjB,kBAAgB,EAChB,UAAQ,EACR,+BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,IAAE,EACF,EAAE,EACF,iBAAiB,EACjB,kBAAgB,EAChB,UAAQ,EACR,+BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,WAAW,EAAE,WAAW,KAAK,UAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,EAAE,WAAW,KAAK,UAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EACjD,IAAI,EAAC,KAAK,gBACE,OAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,uBACjB,gBAAgB,EACnC,GAAG,EAAE,UAAC,CAA0B;4BAC9B,OAAI,CAAC,YAAY,CAAC,CAAE,EAAE,UAAQ,CAAC,CAAC;wBAClC,CAAC,EACD,OAAO,EAAE,cAAM,OAAA,OAAI,CAAC,YAAY,CAAC,UAAQ,EAAE,IAAE,EAAE,kBAAgB,EAAE,UAAQ,EAAE,+BAA6B,CAAC,EAA1F,CAA0F,EACzG,MAAM,EAAE,OAAK,eAAe,IACxB,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EACnE;oBACD,CAAC,OAAK,eAAe,IAAI,gBAAgB,IAAI,IAAI,IAAI,CACpD,8BACE,GAAG,EAAE,UAAG,UAAQ,WAAQ,EACxB,CAAC,EAAE,OAAK,WAAW,CAAC,IAAE,CAAC,EACvB,CAAC,EACC,MAAM,CAAC,EAAE,CAAC;4BACV,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;4BAC3F,EAAE,EAEJ,SAAS,EAAE,UAAU,CAAC,WAAW,EACjC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAElC,IAAI,CACA,CACR,CACc,CAClB,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAM,IAAI,GAAG,MAAA,MAAA,OAAK,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;YACrF,IAAM,SAAS,GAAG,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,KAAK,CAAC;YAErD,4EAA4E;YAC5E,IAAI,CAAC,OAAK,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC,IAAI,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnF,IAAM,IAAI,GAAG,IAAA,eAAM,GAAE;oBACnB,8DAA8D;qBAC7D,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,OAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC;oBACtC,8DAA8D;qBAC7D,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAZ,CAAY,CAAC;qBAC3B,KAAK,CAAC,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;gBAErC,IAAM,MAAM,GAAG,UAAG,OAAK,OAAO,cAAI,CAAC,CAAE,CAAC;gBACtC,IAAM,QAAQ,GAAG,UAAG,OAAK,SAAS,cAAI,CAAC,CAAE,CAAC;gBAC1C,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,kBAAkB,CAAC,SAAS,CAAC,IAAI,OAAK,oBAAoB,EAAE,IAAI,OAAK,KAAK,CAAC,gBAAgB,CAAC;gBAEnG,IAAM,QAAQ,GAAuB,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrD,QAAQ,CAAC,IAAI,CAAC;wBACZ,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI;4BACvC,CAAC,CAAE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE;4BAC/C,CAAC,CAAE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAY;wBACzC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,gBAAgB,EAAE,CAAC;oBACrB,IAAM,eAAe,GAAG,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe;wBAClE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAY,CAAC,eAAgB,CAAC,QAAQ,EAAE,CAAC;wBAC7E,CAAC,CAAC,CAAC,CAAC;oBACN,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;wBACxB,cAAc,CAAC,IAAI,CACjB,8BACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,EAClB,IAAI,EAAC,aAAa,EAClB,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,cAAc,CAAC,cAAc,EAC5F,OAAO,EAAE,CAAC,GACV,CACH,CAAC;oBACJ,CAAC;oBAED,YAAY,CAAC,IAAI,CACf,+CACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,EAClB,IAAI,EAAC,aAAa,uBACC,IAAI,EACvB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,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,WAAW,EAAE,OAAK,wBAAwB,CAAC,IAAI,SAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EACnF,WAAW,EAAE,OAAK,wBAAwB,CAAC,IAAI,SAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EACnF,UAAU,EAAE,OAAK,eAAe,IAC5B,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IACtD,OAAO,EAAE,CAAC,IACV,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,CACf,8BACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,EAClB,IAAI,EAAC,aAAa,uBACC,KAAK,EACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,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,OAAO,EAAE,GAAG,GACZ,CACH,CAAC;gBACJ,CAAC;gBAED,IAAM,kBAAkB,GAAG,OAAK,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,OAAK,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC;gBACzF,aAAa,CAAC,IAAI,CAChB,gCACE,EAAE,EAAE,UAAG,OAAK,sBAAsB,cAAI,CAAC,CAAE,EACzC,GAAG,EAAE,UAAG,OAAK,sBAAsB,cAAI,CAAC,CAAE,EAC1C,CAAC,EAAE,GAAG,EACN,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,IAAI,EAAE,KAAM,CAAC,cAAc,CAAC,cAAc,EAC1C,WAAW,EAAE,wBAAwB,EACrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EACxD,WAAW,EAAE,OAAK,wBAAwB,CAAC,IAAI,SAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EACnF,WAAW,EAAE,OAAK,wBAAwB,CAAC,IAAI,SAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EACnF,UAAU,EAAE,OAAK,eAAe,GAChC,CACH,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,OAAK,KAAK,CAAC,iBAAiB,EAAE,CAAC;wCAChC,CAAC;oBACR,IAAM,SAAS,GAAG,OAAK,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACtD,IAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;oBAClC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAE9B,IAAM,MAAM,GAAG,UAAG,OAAK,OAAO,cAAI,CAAC,cAAI,CAAC,CAAE,CAAC;oBAC3C,IAAM,QAAQ,GAAG,UAAG,OAAK,SAAS,cAAI,CAAC,cAAI,CAAC,CAAE,CAAC;oBAC/C,IAAM,QAAQ,GAAG,UAAG,OAAK,SAAS,cAAI,CAAC,cAAI,CAAC,CAAE,CAAC;oBACzC,IAAA,MAAoE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAA1F,EAAE,QAAA,EAAK,EAAE,QAAA,EAAE,gBAAgB,uBAAA,EAAE,6BAA6B,oCAAgC,CAAC;oBAChG,IAAA,MAAmB,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAArC,EAAE,QAAA,EAAK,EAAE,QAA4B,CAAC;oBACjD,IAAI,IAAI,GAAG,OAAK,QAAQ,CAAC,OAAK,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACtG,IAAM,WAAW,GACf,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,WAAW,KAAI,OAAK,KAAK,CAAC,WAAW,IAAI,wBAAwB,CAAC;oBAEjG,IAAM,gBAAgB,GACpB,OAAK,kBAAkB,CAAC,SAAS,CAAC,IAAI,OAAK,oBAAoB,EAAE,IAAI,OAAK,KAAK,CAAC,gBAAgB,CAAC;oBAEnG,IAAM,kBAAkB,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,WAAW,KAAK,QAAQ,CAAC;oBACzF,IAAM,gBAAgB,GAAG,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC7E,IAAM,IAAI,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9C,IAAI,iBAAiB,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAW,CAAC;oBAChE,aAAa,CAAC,IAAI,CAChB,CAAA,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,KAAI,gBAAgB,CAAC,CAAC,CAAC,CAC3E;wBACE,iDACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAkB,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAChF,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,uBACK,gBAAgB,EACnC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,OAAO,EAAE;gCACP,OAAA,OAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC;4BAAxF,CAAwF,EAE1F,MAAM,EAAE,OAAK,eAAe,IACxB,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,IACvE,OAAO,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EACvD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,KAAK,gBACE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,mCAAI,OAAK,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAC5E;wBACD,CAAC,OAAK,eAAe,IAAI,gBAAgB,IAAI,IAAI,IAAI,CACpD,8BACE,GAAG,EAAE,UAAG,QAAQ,WAAQ,EACxB,CAAC,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACvB,CAAC,EACC,MAAM,CAAC,EAAE,CAAC;gCACV,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACzF,EAAE,EAEJ,SAAS,EAAE,UAAU,CAAC,WAAW,EACjC,OAAO,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAE1D,IAAI,CACA,CACR,CACA,CACJ,CAAC,CAAC,CAAC,CACF,+CACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,CAAC,EAAE,IAAI,uBACY,gBAAgB,EACnC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,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,IACxB,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,IACvE,OAAO,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EACvD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,KAAK,gBACE,OAAK,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IACxC,CACH,CACF,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,KAAK,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC1C,6CAA6C;wBAC7C,IAAM,cAAY,GAAG,UAAG,QAAQ,SAAG,CAAC,MAAG,CAAC;wBACxC,IAAM,mBAAmB,GAAG,UAAG,QAAQ,SAAG,CAAC,MAAG,CAAC;wBAC/C,IAAM,eAAe,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,WAAW,KAAK,cAAY,CAAC;wBAC1F,IAAI,GAAG,OAAK,QAAQ,CAAC,OAAK,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,cAAY,EAAE,CAAC,EAAE,IAAI,EAAE,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC/F,IAAA,MAGF,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAFP,oBAAkB,uBAAA,EACL,qCAAmC,oCACzC,CAAC;wBAC5B,iBAAiB,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAW,CAAC;wBACxD,IAAM,oBAAoB,GAAG,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACjF,IAAM,QAAQ,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC9C,aAAa,CAAC,IAAI,CAChB,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,UAAG,cAAY,eAAY;4BAC7C,CAAA,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,KAAI,oBAAoB,CAAC,CAAC,CAAC,CAChF;gCACE,iDACE,EAAE,EAAE,cAAY,EAChB,GAAG,EAAE,cAAY,EACjB,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAkB,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAChF,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,uBACK,gBAAgB,EACnC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,OAAO,EAAE;wCACP,OAAA,OAAI,CAAC,YAAY,CACf,MAAM,EACN,EAAE,EACF,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,CACpC;oCAND,CAMC,EAEH,MAAM,EAAE,OAAK,eAAe,IACxB,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IACnE,OAAO,EAAE,gBAAgB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,cAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAC1D,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,KAAK,gBACE,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,mCAAI,OAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IACpE;gCACD,CAAC,OAAK,eAAe,IAAI,oBAAoB,IAAI,QAAQ,IAAI,CAC5D,8BACE,GAAG,EAAE,UAAG,cAAY,WAAQ,EAC5B,CAAC,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACvB,CAAC,EACC,MAAM,CAAC,EAAE,CAAC;wCACV,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wCACzF,EAAE,EAEJ,SAAS,EAAE,UAAU,CAAC,WAAW,EACjC,OAAO,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAE1D,IAAI,CACA,CACR,CACA,CACJ,CAAC,CAAC,CAAC,CACF,+CACE,EAAE,EAAE,cAAY,EAChB,GAAG,EAAE,cAAY,EACjB,CAAC,EAAE,IAAI,uBACY,gBAAgB,EACnC,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,OAAO,EAAE;oCACP,OAAA,OAAI,CAAC,YAAY,CACf,MAAM,EACN,EAAE,EACF,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,CACpC;gCAND,CAMC,EAEH,MAAM,EAAE,OAAK,eAAe,IACxB,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IACnE,OAAO,EAAE,gBAAgB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,IAAI,EAAE,OAAK,aAAa,CAAC,SAAS,EAAE,cAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAC1D,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,KAAK,gBACE,OAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IACpC,CACH;4BAED,gCACE,EAAE,EAAE,mBAAmB,EACvB,GAAG,EAAE,mBAAmB,EACxB,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,oBAAkB,EAClB,cAAY,EACZ,qCAAmC,EACnC,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,OAAK,eAAe,GAC5B,CACa,CAClB,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC,OAAK,eAAe,KAAI,MAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,IAAI,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE,CAAC;wBAClF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,oCAAoC;4BACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gCACb,IAAM,eAAe,GAAG,CAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe;oCAClE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAY,CAAC,eAAgB,CAAC,QAAQ,EAAE,CAAC;oCAC7E,CAAC,CAAC,CAAC,CAAC;gCACN,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;oCACxB,cAAc,CAAC,IAAI,CACjB,8BACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,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,cAAc,CAAC,cAAc,EAC5F,OAAO,EAAE,CAAC,GACV,CACH,CAAC;gCACJ,CAAC;gCAED,YAAY,CAAC,IAAI,CACf,+CACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,UAAC,CAAwB;wCAC5B,OAAI,CAAC,YAAY,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC;oCAChC,CAAC,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,WAAW,EAAE,OAAK,YAAY,CAAC,IAAI,SAEjC,EAAE,EACF,EAAE,EACF,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,MAAM,EACN,SAAS,EACT,SAAS,CACV,EACD,UAAU,EAAE,OAAK,eAAe,EAChC,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,OAAA,MAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,aAAa,qCAAI,OAAO,EACpE,eAAe,EAAE,OAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,4CAAE,eAAe,EAC7D,gBAAgB,EAAE,OAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,4CAAE,gBAAgB,EAC/D,OAAO,EAAE,CAAC,IACN,OAAK,gBAAgB,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EACtD,CACH,CAAC;4BACJ,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,OAAO,EAAE,CAAC;gCACb,YAAY,CAAC,IAAI,CACf,8BACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,EAAE,EAAE,OAAK,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,OAAA,OAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,4CAAE,aAAa,qCAAI,OAAO,EACpE,eAAe,EAAE,OAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,4CAAE,eAAe,EAC7D,gBAAgB,EAAE,OAAA,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,4CAAE,gBAAgB,EAC/D,OAAO,EAAE,GAAG,GACZ,CACH,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;;gBAxYH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;4BAA3C,CAAC;iBAyYT;YACH,CAAC;YAED,IAAI,OAAK,eAAe,EAAE,CAAC;gBACzB,iEAAiE;gBACjE,IAAM,aAAa,GAAG,OAAK,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC;oBAChD,IAAI,EAAE,MAAM,CAAC,IAAI;yBACd,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,EAApD,CAAoD,CAAC;yBAClE,GAAG,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAzD,CAAyD,CAAC;iBACxE,CAAC,EAJ+C,CAI/C,CAAC,CAAC;gBACJ,aAAa,CAAC,IAAI,OAAlB,aAAa,EACR,IAAA,qDAAgC,EAAC;oBAClC,aAAa,eAAA;oBACb,UAAU,EAAE,OAAK,WAAW;oBAC5B,UAAU,EAAE,MAAM;oBAClB,SAAS,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE;oBACvC,WAAW,EAAE,OAAC,OAAK,OAAO,CAAC,CAAC,CAA+B,4CAAE,WAAW;iBACzE,CAAC,EACF;YACJ,CAAC;YAED,KAAK,CAAC,IAAI,CACR,2BACE,GAAG,EAAE,eAAQ,CAAC,CAAE,EAChB,IAAI,EAAC,QAAQ,gBACD,UAAG,SAAS,oBAAU,CAAC,GAAG,CAAC,iBAAO,OAAK,OAAO,CAAC,MAAM,mBAC/D,OAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,kBACd;gBAEd,cAAc;gBACd,YAAY;gBACZ,aAAa,CACZ,CACL,CAAC;;;QArnBJ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAAxC,CAAC;SAsnBT;QACD,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBAC/F,oCAAoC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QACD,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACrE,IAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBAC/F,oCAAoC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,IAAM,YAAY,GAAG;gBACnB,UAAU,EAAE,UAAU,CAAC,OAAQ;gBAC/B,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB,CAAC;YACF,YAAY,IAAI,IAAA,2BAAmB,EAAC,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAmFO,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;IAmcO,qCAAa,GAArB;QACE,OAAO,CAAC,CACN,IAAI,CAAC,KAAK,CAAC,IAAI;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAC,IAAsB,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAhB,CAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAC9F,CAAC;IACJ,CAAC;IA5uDa,0BAAY,GAA6B;QACrD,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,iBAAiB,EAAE,IAAI;KACxB,AAJyB,CAIxB;IA0vDJ,oBAAC;CAAA,AA/vDD,CAAmC,KAAK,CAAC,SAAS,GA+vDjD;AA/vDY,sCAAa","sourcesContent":["import * as React from 'react';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select, pointer } from 'd3-selection';\nimport { bisector } from 'd3-array';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { line as d3Line } from 'd3-shape';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n classNamesFunction,\n getId,\n find,\n memoizeFunction,\n getRTL,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n ICustomizedCalloutDataPoint,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n ILineChartDataPoint,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfAxislabels,\n Points,\n pointTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfNumericForAreaChart,\n createStringYAxis,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n isScatterPolarSeries,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\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 nearestCircleToHighlight: ILineChartDataPoint | null;\n\n activeLine: number | null;\n\n YValue: string | number;\n\n legendVal: string;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> implements IChart {\n public static defaultProps: Partial<ILineChartProps> = {\n enableReflow: true,\n useUTC: true,\n isCalloutForStack: true,\n };\n\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 _yScalePrimary: 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 | null;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private lines: JSX.Element[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _tooltipId: string;\n private _rectId: string;\n private _staticHighlightCircle: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLegendsMemoized: (data: LineChartDataWithIndex[]) => JSX.Element;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _isRTL: boolean = getRTL();\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private _xMin: number = Number.NEGATIVE_INFINITY;\n private _xMax: number = Number.POSITIVE_INFINITY;\n private _xPadding: number = 0;\n private _yPaddingPrimary: number = 0;\n private _yScaleSecondary: ScaleLinear<number, number> | undefined;\n private _yPaddingSecondary: number = 0;\n private _hasMarkersMode: boolean = false;\n private _isXAxisDateType: boolean = false;\n private _isScatterPolar: boolean = false;\n\n constructor(props: ILineChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n YValue: '',\n legendVal: '',\n refSelected: '',\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n isCalloutVisible: false,\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n selectedColorBarLegend: [],\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n activePoint: '',\n nearestCircleToHighlight: null,\n activeLine: null,\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\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 this._rectId = getId('containerRectLD');\n this._staticHighlightCircle = getId('staticHighlightCircle');\n this._createLegendsMemoized = memoizeFunction((data: LineChartDataWithIndex[]) => this._createLegends(data));\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_LineChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n if (\n prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend ||\n !areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)\n ) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n });\n }\n\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responsible 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 // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n this._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 let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!this.props.hideLegend) {\n legendBars = this._createLegendsMemoized(this._points!);\n }\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n YValue: this.state.YValue,\n legend: this.state.legendVal,\n color: this.state.lineColor,\n XValue: this.state.hoverXValue! as string,\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,\n tickFormat,\n };\n\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.LineChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n createYAxis={createNumericYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getNumericMinMaxOfY}\n getGraphData={this._initializeLineChartData}\n xAxisType={this._isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n {...(this._isScatterPolar ? { yMaxValue: 1, yMinValue: -1 } : {})}\n customizedCallout={this._getCustomizedCallout()}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\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._yScalePrimary = props.yScalePrimary!;\n this._yScaleSecondary = props.yScaleSecondary;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n {this.props.optimizeLargeData ? (\n <rect\n id={this._rectId}\n width={props.containerWidth}\n height={props.containerHeight}\n fill={'transparent'}\n />\n ) : (\n <></>\n )}\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n theme={this.props.theme}\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 <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, this._isRTL, opts);\n };\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (this._hasMarkersMode && xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = this._getDomainNRangeValuesWithPadding(points, margins, width, isRTL);\n } else if (this._hasMarkersMode && xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = this._getDomainNRangeValuesOfDateWithPadding(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _injectIndexPropertyInLineChartData = (\n lineChartData?: ILineChartPoints[],\n isFilterSelectedLegends: boolean = false,\n ): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n // Apply filter only if isPropChange is true\n const filteredData = isFilterSelectedLegends\n ? lineChartData?.filter(\n (item: ILineChartPoints) =>\n this.props.legendProps?.selectedLegends?.includes(item.legend) ||\n this.props.legendProps?.selectedLegend === item.legend,\n )\n : lineChartData;\n this._hasMarkersMode =\n filteredData?.some((item: ILineChartPoints) => item.lineOptions?.mode?.includes?.('markers')) ?? false;\n this._isScatterPolar = isScatterPolarSeries(filteredData!);\n return filteredData\n ? filteredData.map((item: ILineChartPoints, index: number) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return {\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n color,\n };\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 _getNumericMinMaxOfY = (\n points: ILineChartPoints[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n let yPadding = 0;\n if (this._hasMarkersMode) {\n yPadding = (endValue - startValue) * 0.1;\n if (useSecondaryYScale) {\n this._yPaddingSecondary = yPadding;\n } else {\n this._yPaddingPrimary = yPadding;\n }\n }\n return {\n startValue: startValue - yPadding,\n endValue: endValue + yPadding,\n };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScalePrimary: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._xAxisScale = xScale;\n this._yScalePrimary = yScalePrimary;\n this._yScaleSecondary = yScaleSecondary;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!, containerHeight!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '' });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({ selectedLegend: lineChartItem.legend });\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 // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, LineChartDataWithIndex[]> = {};\n data.forEach((point: LineChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n points.forEach(p => this._handleMultipleLineLegendSelectionAction(p));\n } else {\n points.forEach(p => this._handleSingleLegendSelectionAction(p));\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: legendTitle });\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[representativePoint.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 // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n const legend: ILegend = {\n title,\n 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._handleChartMouseLeave();\n this.setState({ activeLegend: title });\n },\n opacity: this._getColorFillBarOpacity(colorFillBar),\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n return (\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 ref={this._legendsRef}\n />\n );\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!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n };\n private _getRangeForScatterMarkerSize(yScale: ScaleLinear<number, number>, yPadding: number): number {\n const extraXPixels = this._isRTL\n ? this._xAxisScale(this._xMax - this._xPadding) - this._xAxisScale(this._xMax)\n : this._xAxisScale(this._xMin + this._xPadding) - this._xAxisScale(this._xMin);\n\n const yMin = yScale.domain()[0];\n const extraYPixels = yScale(yMin) - yScale(yMin + yPadding);\n return Math.min(extraXPixels, extraYPixels);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLines(xElement: SVGElement, containerHeight: number): JSX.Element[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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 const maxMarkerSize = d3Max(this._points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.markerSize as number;\n });\n })!;\n\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n\n for (let i = this._points.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const linesForLine: JSX.Element[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const bordersForLine: JSX.Element[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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 const verticaLineHeight = containerHeight - this.margins.bottom! + 6;\n const yScale =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yScaleSecondary : this._yScalePrimary;\n const yPadding =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yPaddingSecondary : this._yPaddingPrimary;\n const extraMaxPixels = this._hasMarkersMode ? this._getRangeForScatterMarkerSize(yScale, yPadding) : 0;\n\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 const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n const currentMarkerSize = this._points[i].data[0].markerSize!;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[0].text;\n\n pointsForLine.push(\n <React.Fragment key={`${circleId}_fragment`}>\n <circle\n id={circleId}\n key={circleId}\n r={\n currentMarkerSize\n ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize\n : activePoint === circleId\n ? 5.5\n : 3.5\n }\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n fill={activePoint === circleId ? theme!.semanticColors.bodyBackground : lineColor}\n opacity={isLegendSelected ? 1 : 0.1}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n role=\"img\"\n aria-label={this._getAriaLabel(i, 0)}\n data-is-focusable={isLegendSelected}\n ref={(e: SVGCircleElement | null) => {\n this._refCallback(e!, circleId);\n }}\n onFocus={() => this._handleFocus(circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[0].onDataPointClick)}\n />\n {!this._isScatterPolar && supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 3.5, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected ? 1 : 0.1}\n >\n {text}\n </text>\n )}\n </React.Fragment>,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n const lineCurve = this._points[i].lineOptions?.curve;\n\n // Use path rendering technique for larger datasets to optimize performance.\n if ((this.props.optimizeLargeData || lineCurve) && this._points[i].data.length > 1) {\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => this._xAxisScale(d[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d[1]))\n .curve(getCurveFactory(lineCurve));\n\n const lineId = `${this._lineId}_${i}`;\n const borderId = `${this._borderId}_${i}`;\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const lineData: [number, number][] = [];\n for (let k = 0; k < this._points[i].data.length; k++) {\n lineData.push([\n this._points[i].data[k].x instanceof Date\n ? (this._points[i].data[k].x as Date).getTime()\n : (this._points[i].data[k].x as number),\n this._points[i].data[k].y,\n ]);\n }\n\n if (isLegendSelected) {\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 <path\n id={borderId}\n key={borderId}\n d={line(lineData)!}\n fill=\"transparent\"\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={true}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].onLineClick)}\n opacity={1}\n />,\n );\n } else {\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={false}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n opacity={0.1}\n />,\n );\n }\n\n const isPointHighlighted = this.state.activeLine !== null && this.state.activeLine === i;\n pointsForLine.push(\n <circle\n id={`${this._staticHighlightCircle}_${i}`}\n key={`${this._staticHighlightCircle}_${i}`}\n r={5.5}\n cx={0}\n cy={0}\n fill={theme!.semanticColors.bodyBackground}\n strokeWidth={DEFAULT_LINE_STROKE_SIZE}\n stroke={lineColor}\n visibility={isPointHighlighted ? 'visibility' : 'hidden'}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n />,\n );\n } else if (!this.props.optimizeLargeData) {\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), yScale(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._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const currentPointHidden = this._points[i].hideNonActiveDots && activePoint !== circleId;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[j - 1].text;\n let currentMarkerSize = this._points[i].data[j - 1].markerSize!;\n pointsForLine.push(\n this._points[i].lineOptions?.mode?.includes('markers') || supportsTextMode ? (\n <>\n <circle\n id={circleId}\n key={circleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j - 1].text ?? this._getAriaLabel(i, j - 1)}\n />\n {!this._isScatterPolar && supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j - 1)}\n />\n ),\n );\n if (j + 1 === this._points[i].data.length) {\n // If this is last point of the line segment.\n const lastCircleId = `${circleId}${j}L`;\n const hiddenHoverCircleId = `${circleId}${j}D`;\n const lastPointHidden = this._points[i].hideNonActiveDots && activePoint !== lastCircleId;\n path = this._getPath(this._xAxisScale(x2), yScale(y2), lastCircleId, j, true, this._points[i].index);\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n currentMarkerSize = this._points[i].data[j].markerSize!;\n const lastSupportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const lastText = this._points[i].data[j].text;\n pointsForLine.push(\n <React.Fragment key={`${lastCircleId}_container`}>\n {this._points[i].lineOptions?.mode?.includes('markers') || lastSupportsTextMode ? (\n <>\n <circle\n id={lastCircleId}\n key={lastCircleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j].text ?? this._getAriaLabel(i, j)}\n />\n {!this._isScatterPolar && lastSupportsTextMode && lastText && (\n <text\n key={`${lastCircleId}-label`}\n x={this._xAxisScale(x2)}\n y={\n yScale(y2) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j)}\n />\n )}\n {/* Dummy circle acting as magnetic latch for last callout point */}\n <circle\n id={hiddenHoverCircleId}\n key={hiddenHoverCircleId}\n r={8}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n opacity={0}\n width={0}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={0}\n focusable={false}\n onBlur={this._handleMouseOut}\n />\n </React.Fragment>,\n );\n }\n\n if (!this._hasMarkersMode || this._points[i].lineOptions?.mode?.includes('lines')) {\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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(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 y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\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 {...this._getClickHandler(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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(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 }\n }\n\n if (this._isScatterPolar) {\n // Render category labels for all series at once to avoid overlap\n const allSeriesData = this._points.map(series => ({\n data: series.data\n .filter(pt => typeof pt.x === 'number' && typeof pt.y === 'number')\n .map(pt => ({ x: pt.x as number, y: pt.y as number, text: pt.text })),\n }));\n pointsForLine.push(\n ...renderScatterPolarCategoryLabels({\n allSeriesData,\n xAxisScale: this._xAxisScale,\n yAxisScale: yScale,\n className: classNames.markerLabel || '',\n lineOptions: (this._points[i] as Partial<ILineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n lines.push(\n <g\n key={`line_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, line ${i + 1} of ${this._points.length} with ${\n this._points[i].data.length\n } data points.`}\n >\n {bordersForLine}\n {linesForLine}\n {pointsForLine}\n </g>,\n );\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 axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return lines;\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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\n const yMinMaxValues = findNumericMinMaxOfY(this._points);\n const FILL_Y_PADDING = 3;\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const legend = typeof colorFillBar.legend === 'string' ? colorFillBar.legend.replace(/\\W/g, '') : '';\n const colorFillBarId = getId(legend);\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\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(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._legendHighlighted(colorFillBar.legend) || this._noLegendHighlighted() || this.state.isSelectedLegend\n ? this._getColorFillBarOpacity(colorFillBar)\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}_${i})` : color}\n fillOpacity={opacity}\n x={this._isRTL ? this._xAxisScale(endX) : this._xAxisScale(startX)}\n y={this._yScalePrimary(yMinMaxValues.endValue) - FILL_Y_PADDING}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={\n this._yScalePrimary(this.props.yMinValue || 0) -\n this._yScalePrimary(yMinMaxValues.endValue) +\n FILL_Y_PADDING\n }\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={1.25} />\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 _onMouseOverLargeDataset = (\n linenumber: number,\n lineHeight: number,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>,\n ) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![linenumber].data, xOffset);\n const d0 = lineChartData![linenumber].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![linenumber].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let xPointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n xPointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n xPointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![linenumber].data[0].x, true) as XAxisTypes;\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n xPointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n xPointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![linenumber].data[index as number];\n const formattedDate =\n xPointToHighlight instanceof Date\n ? formatDateToLocaleString(xPointToHighlight, this.props.culture, this.props.useUTC)\n : xPointToHighlight;\n const modifiedXVal = xPointToHighlight instanceof Date ? xPointToHighlight.getTime() : xPointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const pointToHighlight: ILineChartDataPoint = lineChartData![linenumber].data[index!];\n const pointToHighlightUpdated =\n this.state.nearestCircleToHighlight === null ||\n (this.state.nearestCircleToHighlight !== null &&\n pointToHighlight !== null &&\n (this.state.nearestCircleToHighlight.x !== pointToHighlight.x ||\n this.state.nearestCircleToHighlight.y !== pointToHighlight.y));\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated) {\n this._uniqueCallOutID = `#${this._staticHighlightCircle}_${linenumber}`;\n\n d3Select(`#${this._staticHighlightCircle}_${linenumber}`)\n .attr('cx', `${this._xAxisScale(pointToHighlight.x)}`)\n .attr('cy', `${yScale(pointToHighlight.y)}`)\n .attr('visibility', 'visibility');\n\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${this._xAxisScale(pointToHighlight.x)}, ${yScale(pointToHighlight.y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(pointToHighlight.y)}`);\n\n this.setState({\n nearestCircleToHighlight: pointToHighlight,\n isCalloutVisible: true,\n refSelected: `#${this._staticHighlightCircle}_${linenumber}`,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: pointToHighlight,\n activePoint: '',\n activeLine: linenumber,\n });\n }\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 ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : 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\n if (found) {\n const _this = this;\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 y: number | Date,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n yScale: ScaleLinear<number, number>,\n legendVal: string,\n lineColor: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const yVal = y instanceof Date ? y.getTime() : y;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n let hoverDp: ICustomizedCalloutData | undefined = undefined;\n\n if (this.props.isCalloutForStack === false && found?.values) {\n const dp = find(found.values, (val: ICustomizedCalloutDataPoint) => val?.y === yVal);\n if (dp) {\n hoverDp = {\n x: xVal,\n values: [dp],\n };\n }\n }\n\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, ${yScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(y)}`);\n if (this._uniqueCallOutID !== circleId) {\n this._uniqueCallOutID = circleId;\n this.setState({\n isCalloutVisible: true,\n refSelected: `#${circleId}`,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n YValue: yVal,\n legendVal: legendVal!,\n lineColor,\n stackCalloutProps: found!,\n dataPointCalloutProps: hoverDp,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n } else {\n this.setState({\n activePoint: circleId,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n };\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.\n */\n private _getClickHandler = (func?: () => void): { onClick?: () => void } => {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n };\n\n private _handleChartMouseLeave = () => {\n this._uniqueCallOutID = null;\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n activeLine: null,\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 /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return (\n this.state.selectedLegend === legend || (this.state.selectedLegend === '' && this.state.activeLegend === legend)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getColorFillBarOpacity = (colorFillBar: IColorFillBarsProps) => {\n return colorFillBar.applyPattern ? 1 : 0.4;\n };\n\n private _getAriaLabel = (lineIndex: number, pointIndex: number): string => {\n const line = this._points[lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainNRangeValuesOfDateWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n chartType: ChartTypes,\n barWidth?: number,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n // Include tickValues if present\n const sDate =\n tickValues && tickValues.length > 0\n ? (d3Min([...tickValues, new Date(this._xMin)])! as Date)\n : new Date(this._xMin);\n const lDate =\n tickValues && tickValues.length > 0\n ? (d3Max([...tickValues, new Date(this._xMax)])! as Date)\n : new Date(this._xMax);\n\n // Calculate time-based padding (e.g. 10% of the date range)\n const dateRange = lDate.getTime() - sDate.getTime();\n const datePadding = this._hasMarkersMode ? dateRange * 0.1 : 0;\n\n const paddedSDate = new Date(sDate.getTime() - datePadding);\n const paddedLDate = new Date(lDate.getTime() + datePadding);\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: paddedLDate,\n dEndValue: paddedSDate,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: paddedSDate,\n dEndValue: paddedLDate,\n rStartValue,\n rEndValue,\n };\n };\n\n private _getDomainNRangeValuesWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n\n if (this._hasMarkersMode) {\n this._xPadding = (this._xMax - this._xMin) * 0.1;\n }\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: this._xMax + this._xPadding,\n dEndValue: this._xMin - this._xPadding,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: this._xMin - this._xPadding,\n dEndValue: this._xMax + this._xPadding,\n rStartValue,\n rEndValue,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter((item: ILineChartPoints) => item.data.length).length > 0\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Line chart with ${lineChartData?.length || 0} lines. `;\n };\n\n private _setXMinMaxValues = (points: ILineChartPoints[]) => {\n const getX = (item: ILineChartDataPoint) => (this._isXAxisDateType ? (item.x as Date) : (item.x as number));\n\n const minVal = d3Min(points, (point: ILineChartPoints) => d3Min(point.data as ILineChartDataPoint[], getX));\n const maxVal = d3Max(points, (point: ILineChartPoints) => d3Max(point.data as ILineChartDataPoint[], getX));\n\n this._xMin = this._isXAxisDateType ? (minVal as Date).getTime() : (minVal as number);\n this._xMax = this._isXAxisDateType ? (maxVal as Date).getTime() : (maxVal as number);\n this._xMin = this._xMin === Number.NEGATIVE_INFINITY || !this._xMin ? 0 : this._xMin;\n this._xMax = this._xMax === Number.POSITIVE_INFINITY || !this._xMax ? 0 : this._xMax;\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, pointer } from 'd3-selection';\nimport { bisector } from 'd3-array';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { line as d3Line } from 'd3-shape';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n classNamesFunction,\n getId,\n find,\n memoizeFunction,\n getRTL,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n ICustomizedCalloutDataPoint,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n ILineChartDataPoint,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfAxislabels,\n Points,\n pointTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfNumericForAreaChart,\n createStringYAxis,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n isScatterPolarSeries,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\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 nearestCircleToHighlight: ILineChartDataPoint | null;\n\n activeLine: number | null;\n\n YValue: string | number;\n\n legendVal: string;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> implements IChart {\n public static defaultProps: Partial<ILineChartProps> = {\n enableReflow: true,\n useUTC: true,\n isCalloutForStack: true,\n };\n\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 _yScalePrimary: 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 | null;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private lines: JSX.Element[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _tooltipId: string;\n private _rectId: string;\n private _staticHighlightCircle: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLegendsMemoized: (data: LineChartDataWithIndex[]) => JSX.Element;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _isRTL: boolean = getRTL();\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private _xMin: number = Number.NEGATIVE_INFINITY;\n private _xMax: number = Number.POSITIVE_INFINITY;\n private _xPadding: number = 0;\n private _yPaddingPrimary: number = 0;\n private _yScaleSecondary: ScaleLinear<number, number> | undefined;\n private _yPaddingSecondary: number = 0;\n private _hasMarkersMode: boolean = false;\n private _isXAxisDateType: boolean = false;\n private _isScatterPolar: boolean = false;\n\n constructor(props: ILineChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n YValue: '',\n legendVal: '',\n refSelected: '',\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n isCalloutVisible: false,\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n selectedColorBarLegend: [],\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n activePoint: '',\n nearestCircleToHighlight: null,\n activeLine: null,\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\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 this._rectId = getId('containerRectLD');\n this._staticHighlightCircle = getId('staticHighlightCircle');\n this._createLegendsMemoized = memoizeFunction((data: LineChartDataWithIndex[]) => this._createLegends(data));\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_LineChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n if (\n prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend ||\n !areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)\n ) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n });\n }\n\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responsible 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 // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n this._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 let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!this.props.hideLegend) {\n legendBars = this._createLegendsMemoized(this._points!);\n }\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n YValue: this.state.YValue,\n legend: this.state.legendVal,\n color: this.state.lineColor,\n XValue: this.state.hoverXValue! as string,\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,\n tickFormat,\n };\n\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.LineChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n createYAxis={createNumericYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getNumericMinMaxOfY}\n getGraphData={this._initializeLineChartData}\n xAxisType={this._isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n {...(this._isScatterPolar ? { yMaxValue: 1, yMinValue: -1 } : {})}\n customizedCallout={this._getCustomizedCallout()}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\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._yScalePrimary = props.yScalePrimary!;\n this._yScaleSecondary = props.yScaleSecondary;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n {this.props.optimizeLargeData ? (\n <rect\n id={this._rectId}\n width={props.containerWidth}\n height={props.containerHeight}\n fill={'transparent'}\n />\n ) : (\n <></>\n )}\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n theme={this.props.theme}\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 <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, this._isRTL, opts);\n };\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (this._hasMarkersMode && xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = this._getDomainNRangeValuesWithPadding(points, margins, width, isRTL);\n } else if (this._hasMarkersMode && xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = this._getDomainNRangeValuesOfDateWithPadding(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _injectIndexPropertyInLineChartData = (\n lineChartData?: ILineChartPoints[],\n isFilterSelectedLegends: boolean = false,\n ): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n // Apply filter only if isPropChange is true\n const filteredData = isFilterSelectedLegends\n ? lineChartData?.filter(\n (item: ILineChartPoints) =>\n this.props.legendProps?.selectedLegends?.includes(item.legend) ||\n this.props.legendProps?.selectedLegend === item.legend,\n )\n : lineChartData;\n this._hasMarkersMode =\n filteredData?.some((item: ILineChartPoints) => item.lineOptions?.mode?.includes?.('markers')) ?? false;\n this._isScatterPolar = isScatterPolarSeries(filteredData!);\n return filteredData\n ? filteredData.map((item: ILineChartPoints, index: number) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return {\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n color,\n };\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 _getNumericMinMaxOfY = (\n points: ILineChartPoints[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n let yPadding = 0;\n if (this._hasMarkersMode) {\n yPadding = (endValue - startValue) * 0.1;\n if (useSecondaryYScale) {\n this._yPaddingSecondary = yPadding;\n } else {\n this._yPaddingPrimary = yPadding;\n }\n }\n return {\n startValue: startValue - yPadding,\n endValue: endValue + yPadding,\n };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScalePrimary: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._xAxisScale = xScale;\n this._yScalePrimary = yScalePrimary;\n this._yScaleSecondary = yScaleSecondary;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!, containerHeight!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '' });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({ selectedLegend: lineChartItem.legend });\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 // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, LineChartDataWithIndex[]> = {};\n data.forEach((point: LineChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n points.forEach(p => this._handleMultipleLineLegendSelectionAction(p));\n } else {\n points.forEach(p => this._handleSingleLegendSelectionAction(p));\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: legendTitle });\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[representativePoint.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 // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n const legend: ILegend = {\n title,\n 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._handleChartMouseLeave();\n this.setState({ activeLegend: title });\n },\n opacity: this._getColorFillBarOpacity(colorFillBar),\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n return (\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 ref={this._legendsRef}\n />\n );\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!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n };\n private _getRangeForScatterMarkerSize(yScale: ScaleLinear<number, number>, yPadding: number): number {\n const extraXPixels = this._isRTL\n ? this._xAxisScale(this._xMax - this._xPadding) - this._xAxisScale(this._xMax)\n : this._xAxisScale(this._xMin + this._xPadding) - this._xAxisScale(this._xMin);\n\n const yMin = yScale.domain()[0];\n const extraYPixels = yScale(yMin) - yScale(yMin + yPadding);\n return Math.min(extraXPixels, extraYPixels);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _createLines(xElement: SVGElement, containerHeight: number): JSX.Element[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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 const maxMarkerSize = d3Max(this._points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.markerSize as number;\n });\n })!;\n\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n\n for (let i = this._points.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const linesForLine: JSX.Element[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const bordersForLine: JSX.Element[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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 const verticaLineHeight = containerHeight - this.margins.bottom! + 6;\n const yScale =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yScaleSecondary : this._yScalePrimary;\n const yPadding =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yPaddingSecondary : this._yPaddingPrimary;\n const extraMaxPixels = this._hasMarkersMode ? this._getRangeForScatterMarkerSize(yScale, yPadding) : 0;\n\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 const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n const currentMarkerSize = this._points[i].data[0].markerSize!;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[0].text;\n\n pointsForLine.push(\n <React.Fragment key={`${circleId}_fragment`}>\n <circle\n id={circleId}\n key={circleId}\n r={\n currentMarkerSize\n ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize\n : activePoint === circleId\n ? 5.5\n : 3.5\n }\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n fill={activePoint === circleId ? theme!.semanticColors.bodyBackground : lineColor}\n opacity={isLegendSelected ? 1 : 0.1}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n role=\"img\"\n aria-label={this._getAriaLabel(i, 0)}\n data-is-focusable={isLegendSelected}\n ref={(e: SVGCircleElement | null) => {\n this._refCallback(e!, circleId);\n }}\n onFocus={() => this._handleFocus(circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[0].onDataPointClick)}\n />\n {!this._isScatterPolar && supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 3.5, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected ? 1 : 0.1}\n >\n {text}\n </text>\n )}\n </React.Fragment>,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n const lineCurve = this._points[i].lineOptions?.curve;\n\n // Use path rendering technique for larger datasets to optimize performance.\n if ((this.props.optimizeLargeData || lineCurve) && this._points[i].data.length > 1) {\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => this._xAxisScale(d[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d[1]))\n .curve(getCurveFactory(lineCurve));\n\n const lineId = `${this._lineId}_${i}`;\n const borderId = `${this._borderId}_${i}`;\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const lineData: [number, number][] = [];\n for (let k = 0; k < this._points[i].data.length; k++) {\n lineData.push([\n this._points[i].data[k].x instanceof Date\n ? (this._points[i].data[k].x as Date).getTime()\n : (this._points[i].data[k].x as number),\n this._points[i].data[k].y,\n ]);\n }\n\n if (isLegendSelected) {\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 <path\n id={borderId}\n key={borderId}\n d={line(lineData)!}\n fill=\"transparent\"\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={true}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].onLineClick)}\n opacity={1}\n />,\n );\n } else {\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={false}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n opacity={0.1}\n />,\n );\n }\n\n const isPointHighlighted = this.state.activeLine !== null && this.state.activeLine === i;\n pointsForLine.push(\n <circle\n id={`${this._staticHighlightCircle}_${i}`}\n key={`${this._staticHighlightCircle}_${i}`}\n r={5.5}\n cx={0}\n cy={0}\n fill={theme!.semanticColors.bodyBackground}\n strokeWidth={DEFAULT_LINE_STROKE_SIZE}\n stroke={lineColor}\n visibility={isPointHighlighted ? 'visibility' : 'hidden'}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n />,\n );\n } else if (!this.props.optimizeLargeData) {\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), yScale(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._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const currentPointHidden = this._points[i].hideNonActiveDots && activePoint !== circleId;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[j - 1].text;\n let currentMarkerSize = this._points[i].data[j - 1].markerSize!;\n pointsForLine.push(\n this._points[i].lineOptions?.mode?.includes('markers') || supportsTextMode ? (\n <>\n <circle\n id={circleId}\n key={circleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j - 1].text ?? this._getAriaLabel(i, j - 1)}\n />\n {!this._isScatterPolar && supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j - 1)}\n />\n ),\n );\n if (j + 1 === this._points[i].data.length) {\n // If this is last point of the line segment.\n const lastCircleId = `${circleId}${j}L`;\n const hiddenHoverCircleId = `${circleId}${j}D`;\n const lastPointHidden = this._points[i].hideNonActiveDots && activePoint !== lastCircleId;\n path = this._getPath(this._xAxisScale(x2), yScale(y2), lastCircleId, j, true, this._points[i].index);\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n currentMarkerSize = this._points[i].data[j].markerSize!;\n const lastSupportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const lastText = this._points[i].data[j].text;\n pointsForLine.push(\n <React.Fragment key={`${lastCircleId}_container`}>\n {this._points[i].lineOptions?.mode?.includes('markers') || lastSupportsTextMode ? (\n <>\n <circle\n id={lastCircleId}\n key={lastCircleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j].text ?? this._getAriaLabel(i, j)}\n />\n {!this._isScatterPolar && lastSupportsTextMode && lastText && (\n <text\n key={`${lastCircleId}-label`}\n x={this._xAxisScale(x2)}\n y={\n yScale(y2) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(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={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j)}\n />\n )}\n {/* Dummy circle acting as magnetic latch for last callout point */}\n <circle\n id={hiddenHoverCircleId}\n key={hiddenHoverCircleId}\n r={8}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n opacity={0}\n width={0}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={0}\n focusable={false}\n onBlur={this._handleMouseOut}\n />\n </React.Fragment>,\n );\n }\n\n if (!this._hasMarkersMode || this._points[i].lineOptions?.mode?.includes('lines')) {\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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(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 y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n legendVal,\n lineColor,\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 {...this._getClickHandler(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={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(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 }\n }\n\n if (this._isScatterPolar) {\n pointsForLine.push(\n ...renderScatterPolarCategoryLabels({\n xAxisScale: this._xAxisScale,\n yAxisScale: yScale,\n className: classNames.markerLabel || '',\n lineOptions: (this._points[i] as Partial<ILineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n lines.push(\n <g\n key={`line_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, line ${i + 1} of ${this._points.length} with ${\n this._points[i].data.length\n } data points.`}\n >\n {bordersForLine}\n {linesForLine}\n {pointsForLine}\n </g>,\n );\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 axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return lines;\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\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\n const yMinMaxValues = findNumericMinMaxOfY(this._points);\n const FILL_Y_PADDING = 3;\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const legend = typeof colorFillBar.legend === 'string' ? colorFillBar.legend.replace(/\\W/g, '') : '';\n const colorFillBarId = getId(legend);\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\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(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._legendHighlighted(colorFillBar.legend) || this._noLegendHighlighted() || this.state.isSelectedLegend\n ? this._getColorFillBarOpacity(colorFillBar)\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}_${i})` : color}\n fillOpacity={opacity}\n x={this._isRTL ? this._xAxisScale(endX) : this._xAxisScale(startX)}\n y={this._yScalePrimary(yMinMaxValues.endValue) - FILL_Y_PADDING}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={\n this._yScalePrimary(this.props.yMinValue || 0) -\n this._yScalePrimary(yMinMaxValues.endValue) +\n FILL_Y_PADDING\n }\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={1.25} />\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 _onMouseOverLargeDataset = (\n linenumber: number,\n lineHeight: number,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>,\n ) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![linenumber].data, xOffset);\n const d0 = lineChartData![linenumber].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![linenumber].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let xPointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n xPointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n xPointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![linenumber].data[0].x, true) as XAxisTypes;\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n xPointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n xPointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![linenumber].data[index as number];\n const formattedDate =\n xPointToHighlight instanceof Date\n ? formatDateToLocaleString(xPointToHighlight, this.props.culture, this.props.useUTC)\n : xPointToHighlight;\n const modifiedXVal = xPointToHighlight instanceof Date ? xPointToHighlight.getTime() : xPointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const pointToHighlight: ILineChartDataPoint = lineChartData![linenumber].data[index!];\n const pointToHighlightUpdated =\n this.state.nearestCircleToHighlight === null ||\n (this.state.nearestCircleToHighlight !== null &&\n pointToHighlight !== null &&\n (this.state.nearestCircleToHighlight.x !== pointToHighlight.x ||\n this.state.nearestCircleToHighlight.y !== pointToHighlight.y));\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated) {\n this._uniqueCallOutID = `#${this._staticHighlightCircle}_${linenumber}`;\n\n d3Select(`#${this._staticHighlightCircle}_${linenumber}`)\n .attr('cx', `${this._xAxisScale(pointToHighlight.x)}`)\n .attr('cy', `${yScale(pointToHighlight.y)}`)\n .attr('visibility', 'visibility');\n\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${this._xAxisScale(pointToHighlight.x)}, ${yScale(pointToHighlight.y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(pointToHighlight.y)}`);\n\n this.setState({\n nearestCircleToHighlight: pointToHighlight,\n isCalloutVisible: true,\n refSelected: `#${this._staticHighlightCircle}_${linenumber}`,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: pointToHighlight,\n activePoint: '',\n activeLine: linenumber,\n });\n }\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 ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : 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\n if (found) {\n const _this = this;\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 y: number | Date,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n yScale: ScaleLinear<number, number>,\n legendVal: string,\n lineColor: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const yVal = y instanceof Date ? y.getTime() : y;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n let hoverDp: ICustomizedCalloutData | undefined = undefined;\n\n if (this.props.isCalloutForStack === false && found?.values) {\n const dp = find(found.values, (val: ICustomizedCalloutDataPoint) => val?.y === yVal);\n if (dp) {\n hoverDp = {\n x: xVal,\n values: [dp],\n };\n }\n }\n\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, ${yScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(y)}`);\n if (this._uniqueCallOutID !== circleId) {\n this._uniqueCallOutID = circleId;\n this.setState({\n isCalloutVisible: true,\n refSelected: `#${circleId}`,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n YValue: yVal,\n legendVal: legendVal!,\n lineColor,\n stackCalloutProps: found!,\n dataPointCalloutProps: hoverDp,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n } else {\n this.setState({\n activePoint: circleId,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n };\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.\n */\n private _getClickHandler = (func?: () => void): { onClick?: () => void } => {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n };\n\n private _handleChartMouseLeave = () => {\n this._uniqueCallOutID = null;\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n activeLine: null,\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 /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return (\n this.state.selectedLegend === legend || (this.state.selectedLegend === '' && this.state.activeLegend === legend)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getColorFillBarOpacity = (colorFillBar: IColorFillBarsProps) => {\n return colorFillBar.applyPattern ? 1 : 0.4;\n };\n\n private _getAriaLabel = (lineIndex: number, pointIndex: number): string => {\n const line = this._points[lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainNRangeValuesOfDateWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n chartType: ChartTypes,\n barWidth?: number,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n // Include tickValues if present\n const sDate =\n tickValues && tickValues.length > 0\n ? (d3Min([...tickValues, new Date(this._xMin)])! as Date)\n : new Date(this._xMin);\n const lDate =\n tickValues && tickValues.length > 0\n ? (d3Max([...tickValues, new Date(this._xMax)])! as Date)\n : new Date(this._xMax);\n\n // Calculate time-based padding (e.g. 10% of the date range)\n const dateRange = lDate.getTime() - sDate.getTime();\n const datePadding = this._hasMarkersMode ? dateRange * 0.1 : 0;\n\n const paddedSDate = new Date(sDate.getTime() - datePadding);\n const paddedLDate = new Date(lDate.getTime() + datePadding);\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: paddedLDate,\n dEndValue: paddedSDate,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: paddedSDate,\n dEndValue: paddedLDate,\n rStartValue,\n rEndValue,\n };\n };\n\n private _getDomainNRangeValuesWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n\n if (this._hasMarkersMode) {\n this._xPadding = (this._xMax - this._xMin) * 0.1;\n }\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: this._xMax + this._xPadding,\n dEndValue: this._xMin - this._xPadding,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: this._xMin - this._xPadding,\n dEndValue: this._xMax + this._xPadding,\n rStartValue,\n rEndValue,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter((item: ILineChartPoints) => item.data.length).length > 0\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Line chart with ${lineChartData?.length || 0} lines. `;\n };\n\n private _setXMinMaxValues = (points: ILineChartPoints[]) => {\n const getX = (item: ILineChartDataPoint) => (this._isXAxisDateType ? (item.x as Date) : (item.x as number));\n\n const minVal = d3Min(points, (point: ILineChartPoints) => d3Min(point.data as ILineChartDataPoint[], getX));\n const maxVal = d3Max(points, (point: ILineChartPoints) => d3Max(point.data as ILineChartDataPoint[], getX));\n\n this._xMin = this._isXAxisDateType ? (minVal as Date).getTime() : (minVal as number);\n this._xMax = this._isXAxisDateType ? (maxVal as Date).getTime() : (maxVal as number);\n this._xMin = this._xMin === Number.NEGATIVE_INFINITY || !this._xMin ? 0 : this._xMin;\n this._xMax = this._xMax === Number.POSITIVE_INFINITY || !this._xMax ? 0 : this._xMax;\n };\n}\n"]}