@fluentui/react-charting 5.24.3 → 5.24.4

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 (129) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +16 -2
  3. package/dist/react-charting.d.ts +34 -1
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/etc/react-charting.api.md +7 -1
  7. package/lib/components/AreaChart/AreaChart.base.d.ts +1 -0
  8. package/lib/components/AreaChart/AreaChart.base.js +4 -1
  9. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  10. package/lib/components/CommonComponents/CartesianChart.base.js +2 -2
  11. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  12. package/lib/components/CommonComponents/CartesianChart.types.d.ts +12 -2
  13. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  14. package/lib/components/DeclarativeChart/PlotlyColorAdapter.d.ts +2 -1
  15. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +9 -1
  16. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  17. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +67 -66
  18. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  19. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +2 -0
  20. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +22 -3
  21. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  22. package/lib/components/HeatMapChart/HeatMapChart.base.d.ts +7 -0
  23. package/lib/components/HeatMapChart/HeatMapChart.base.js +95 -37
  24. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  25. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -0
  26. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +24 -3
  27. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  28. package/lib/components/ScatterChart/ScatterChart.base.js +84 -55
  29. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  30. package/lib/components/ScatterChart/ScatterChart.styles.js +12 -0
  31. package/lib/components/ScatterChart/ScatterChart.styles.js.map +1 -1
  32. package/lib/components/ScatterChart/ScatterChart.types.d.ts +5 -0
  33. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  34. package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -0
  35. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +27 -6
  36. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  37. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -0
  38. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +48 -31
  39. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  40. package/lib/index.d.ts +1 -1
  41. package/lib/index.js.map +1 -1
  42. package/lib/types/IDataPoint.d.ts +18 -0
  43. package/lib/types/IDataPoint.js.map +1 -1
  44. package/lib/utilities/utilities.d.ts +6 -3
  45. package/lib/utilities/utilities.js +58 -29
  46. package/lib/utilities/utilities.js.map +1 -1
  47. package/lib-amd/components/AreaChart/AreaChart.base.d.ts +1 -0
  48. package/lib-amd/components/AreaChart/AreaChart.base.js +4 -1
  49. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  50. package/lib-amd/components/CommonComponents/CartesianChart.base.js +2 -2
  51. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  52. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +12 -2
  53. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  54. package/lib-amd/components/DeclarativeChart/PlotlyColorAdapter.d.ts +2 -1
  55. package/lib-amd/components/DeclarativeChart/PlotlyColorAdapter.js +11 -2
  56. package/lib-amd/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  57. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +66 -66
  58. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  59. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +2 -0
  60. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +21 -2
  61. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  62. package/lib-amd/components/HeatMapChart/HeatMapChart.base.d.ts +7 -0
  63. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +94 -36
  64. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  65. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -0
  66. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +23 -2
  67. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  68. package/lib-amd/components/ScatterChart/ScatterChart.base.js +83 -54
  69. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  70. package/lib-amd/components/ScatterChart/ScatterChart.styles.js +12 -1
  71. package/lib-amd/components/ScatterChart/ScatterChart.styles.js.map +1 -1
  72. package/lib-amd/components/ScatterChart/ScatterChart.types.d.ts +5 -0
  73. package/lib-amd/components/ScatterChart/ScatterChart.types.js.map +1 -1
  74. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -0
  75. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +26 -5
  76. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  77. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -0
  78. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +47 -30
  79. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  80. package/lib-amd/index.d.ts +1 -1
  81. package/lib-amd/index.js.map +1 -1
  82. package/lib-amd/types/IDataPoint.d.ts +18 -0
  83. package/lib-amd/types/IDataPoint.js.map +1 -1
  84. package/lib-amd/utilities/utilities.d.ts +6 -3
  85. package/lib-amd/utilities/utilities.js +59 -30
  86. package/lib-amd/utilities/utilities.js.map +1 -1
  87. package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +1 -0
  88. package/lib-commonjs/components/AreaChart/AreaChart.base.js +4 -1
  89. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  90. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +2 -2
  91. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  92. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +12 -2
  93. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  94. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.d.ts +2 -1
  95. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js +11 -2
  96. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  97. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +66 -65
  98. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  99. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +2 -0
  100. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +21 -2
  101. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  102. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.d.ts +7 -0
  103. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +94 -36
  104. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  105. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -0
  106. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +23 -2
  107. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  108. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +83 -54
  109. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  110. package/lib-commonjs/components/ScatterChart/ScatterChart.styles.js +12 -0
  111. package/lib-commonjs/components/ScatterChart/ScatterChart.styles.js.map +1 -1
  112. package/lib-commonjs/components/ScatterChart/ScatterChart.types.d.ts +5 -0
  113. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  114. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +2 -0
  115. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +26 -5
  116. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  117. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -0
  118. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +47 -30
  119. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  120. package/lib-commonjs/index.d.ts +1 -1
  121. package/lib-commonjs/index.js.map +1 -1
  122. package/lib-commonjs/types/IDataPoint.d.ts +18 -0
  123. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  124. package/lib-commonjs/utilities/utilities.d.ts +6 -3
  125. package/lib-commonjs/utilities/utilities.js +59 -30
  126. package/lib-commonjs/utilities/utilities.js.map +1 -1
  127. package/package.json +2 -2
  128. package/src/components/CommonComponents/CartesianChart.types.ts +20 -1
  129. package/src/components/ScatterChart/ScatterChart.types.ts +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":";;;;AAAA,6BAA+B;AAC/B,qCAAsD;AACtD,6CAAkD;AAClD,qCAOkB;AAClB,2DAOuC;AAEvC,uDAA8D;AAC9D,0CAAsE;AACtE,qCAgBqB;AACrB,qDAA2D;AAC3D,6DAAqE;AACrE,+CAuB+B;AAE/B,yEAA6D;AAE7D,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAAsE,CAAC;AAG/G,IAAM,cAAc,GAAG,4BAA4B,CAAC;AAEpD,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,IAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,IAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,IAAM,iBAAiB,GAAG,CAAC,CAAC;AA0B5B;IACU,uDAA6E;IAmCrF,qCAAmB,KAAoC;;QACrD,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QAnBP,YAAM,GAAY,IAAA,kBAAM,GAAE,CAAC;QAclB,cAAQ,GAAW,CAAC,CAAC;QAE9B,kBAAY,GAAa,EAAE,CAAC;QAuK7B,aAAO,GAAG,UAAC,IAA0B;;YAC1C,OAAO,IAAA,4BAAO,EAAC,MAAA,KAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,EAAE,MAAA,KAAI,CAAC,WAAW,CAAC,OAAO,0CAAE,KAAK,EAAE,KAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtH,CAAC,CAAC;QAEF;;;;;;;WAOG;QACK,wBAAkB,GAAG,UAAC,cAAuB;YAC3C,IAAA,KAA8B,KAAI,CAAC,KAAK,kBAAf,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,CAAgB;YACjD,IAAI,oBAAoB,GAAY,KAAK,CAAC;YAC1C,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,KAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9C,oBAAoB,GAAG,KAAK,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,oBAAoB,GAAG,iBAAiB,CAAC;YAC3C,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC,CAAC;QAEM,4BAAsB,GAAG,UAC/B,MAAoB,EACpB,OAAiB,EACjB,KAAa,EACb,SAAqB,EACrB,KAAc,EACd,SAAqB,EACrB,QAAgB,EAChB,UAAyC,EACzC,MAAc;YAEd,IAAI,iBAAgC,CAAC;YACrC,IAAI,SAAS,KAAK,kBAAU,CAAC,WAAW,EAAE,CAAC;gBACzC,iBAAiB,GAAG,IAAA,gCAAwB,EAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAS,CAAC,CAAC;YACzF,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,IAAA,gCAAwB,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,iBAAiB,CAAC;QAC3B,CAAC,CAAC;QAEM,2BAAqB,GAAG,UAAC,IAAkC;YACjE,IAAM,SAAS,GAAgB,EAAE,CAAC;YAClC,IAAM,iBAAiB,GAAe,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAgC,EAAE,KAAa;gBAC3D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,gEAAgE;oBAChE,yEAAyE;oBACzE,iBAAiB;oBACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI;wBACxB,SAAS,CAAC,IAAI,uCACT,IAAI,KACP,KAAK,OAAA,EACL,KAAK,EAAE,IAAI,IACX,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI;gBACpB,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,iBAAiB,CAAC;QAC3B,CAAC,CAAC;QAEM,qBAAe,GAAG,UAAC,IAAkC;YAC3D,IAAM,UAAU,GAAe,KAAI,CAAC,WAAW,CAAC;YAChD,IAAM,WAAW,GAAkB,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY;gBAC3C,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;iBACjC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEM,kBAAY,GAAG;QACrB,8DAA8D;QAC9D,MAAW,EACX,aAAyC,EACzC,eAAuB,EACvB,cAAsB,EACtB,eAA8B;;YAE9B,IAAM,UAAU,GAAe,KAAI,CAAC,qBAAqB,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3E,IAAM,KAAK,GAAsB,EAAE,CAAC;YACpC,IAAM,cAAc,GAAsB,EAAE,CAAC;YAC7C,IAAM,IAAI,GAAsB,EAAE,CAAC;YAC3B,IAAA,KAAK,GAAK,KAAI,CAAC,KAAK,MAAf,CAAgB;YAC7B,IAAM,eAAe,GAAG,CAAA,MAAA,KAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe;gBAC7D,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,WAAY,CAAC,eAAgB,CAAC,QAAQ,EAAE,CAAC;gBACxE,CAAC,CAAC,CAAC,CAAC;YAEN,IAAM,wBAAwB,GAAG,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACxG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY,EAAE,KAAa;;gBAC1D,IAAM,eAAe,GAAG,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,sBAAsB;gBAC9G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC5D,IAAM,kBAAkB,GACtB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,eAAe,CAAC;oBAC1G,IAAM,EAAE,GAAG,kBAAkB;wBAC3B,CAAC,CAAC,eAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;wBACvD,CAAC,CAAC,6DAA6D;4BAC7D,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ,CAAC,CAAC;oBACpD,IAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACxD,IAAM,EAAE,GAAG,kBAAkB;wBAC3B,CAAC,CAAC,eAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;wBACnD,CAAC,CAAC,6DAA6D;4BAC7D,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC,CAAC;oBAChD,IAAM,wBAAwB,GAC5B,CAAC,kBAAkB,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU;wBAC7D,CAAC,CAAE,aAA6B,CAAC,SAAS,EAAE,GAAG,CAAC;wBAChD,CAAC,CAAC,CAAC,CAAC;oBAER,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;wBACxB,cAAc,CAAC,IAAI,CACjB,8BACE,GAAG,EAAE,UAAG,KAAK,cAAI,CAAC,gBAAa,EAC/B,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAClC,WAAW,EAAE,CAAC,GAAG,eAAe,GAAG,CAAC,EACpC,IAAI,EAAC,aAAa,EAClB,aAAa,EAAC,OAAO,EACrB,MAAM,EAAE,KAAM,CAAC,cAAc,CAAC,cAAc,EAC5C,SAAS,EAAE,oBAAa,wBAAwB,eAAK,wBAAwB,MAAG,GAChF,CACH,CAAC;oBACJ,CAAC;oBACD,KAAK,CAAC,IAAI,CACR,8BACE,GAAG,EAAE,UAAG,KAAK,cAAI,CAAC,UAAO,EACzB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAClC,WAAW,EAAE,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,WAAW,mCAAI,CAAC,EAC9D,aAAa,EAAE,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,aAAa,mCAAI,OAAO,EACxE,eAAe,EAAE,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,0CAAE,eAAe,EACjE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EACjC,SAAS,EAAE,oBAAa,wBAAwB,eAAK,wBAAwB,MAAG,EAChF,WAAW,EAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAChE,YAAY,EAAE,KAAI,CAAC,eAAe,GAClC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY,EAAE,KAAa;gBAC1D,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,WAAsB,EAAE,QAAgB;oBAChE,8GAA8G;oBAC9G,IAAM,SAAS,GAA4C,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBAChF,IAAM,YAAY,GAChB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAChC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,EAA1E,CAA0E,CACxF,CAAC,MAAM,KAAK,CAAC,CAAC;oBACjB,IAAM,wBAAwB,GAC5B,CAAC,WAAW,CAAC,kBAAkB,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU;wBACzE,CAAC,CAAE,aAA6B,CAAC,SAAS,EAAE,GAAG,CAAC;wBAChD,CAAC,CAAC,CAAC,CAAC;oBACR,IAAI,CAAC,IAAI,CACP,iDACE,GAAG,EAAE,UAAG,KAAK,cAAI,QAAQ,SAAM,EAC/B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EACxC,EAAE,EACA,WAAW,CAAC,kBAAkB,IAAI,eAAe;4BAC/C,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAW,CAAC;4BAC1C,CAAC,CAAC,8DAA8D;gCAC9D,aAAa,CAAC,WAAW,CAAC,CAAQ,CAAC,EAEzC,WAAW,EAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,WAAW,CAAC,EACpD,YAAY,EAAE,KAAI,CAAC,eAAe,EAClC,CAAC,EAAE,KAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAC3F,MAAM,EAAE,WAAW,CAAC,KAAK,EACzB,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,cAAc,EACrD,WAAW,EAAE,CAAC;wBACd,iGAAiG;wBACjG,2GAA2G;wBAC3G,OAAO,EAAE,KAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAClG,SAAS,EAAE,oBAAa,wBAAwB,eAAK,wBAAwB,MAAG,EAChF,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,EAA1B,CAA0B,IAChC,CAAC,YAAY,IAAI,CAAC,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBACnF,CAAC,CAAC;4BACE,mBAAmB,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW;4BAC5C,OAAO,EAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,WAAW,EAAE,SAAS,CAAC;4BAC3D,MAAM,EAAE,KAAI,CAAC,eAAe;4BAC5B,IAAI,EAAE,KAAK;4BACX,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC;yBACvE;wBACH,CAAC,CAAC,EAAE,CAAC,EACP,CACH,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,CACL;gBACG,cAAc;gBACd,KAAK;gBACL,IAAI,CACJ,CACJ,CAAC;QACJ,CAAC,CAAC;QAEM,gCAA0B,GAAG,UACnC,UAAkC,EAClC,MAAc;YAEN,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;YAC5C,IAAI,CAAC,KAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACjC,IAAI,UAAU,KAAK,oBAAoB,IAAI,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACnC,CAAC;qBAAM,IAAI,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACnC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,EAAE,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,MAAM,EAAE,CAAC;iBACV,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QA4CM,iBAAW,GAAG,UAAC,OAAiB;YACtC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC;QAcM,2BAAqB,GAAG;YAC9B,IAAM,cAAc,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;YACF,OAAO,KAAI,CAAC,KAAK,CAAC,uBAAuB;gBACvC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAClE,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,cAAc;oBAC3D,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,KAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAI,CAAC,cAAc,CAAC;oBAC/F,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,CAAC;QAiKM,gBAAU,GAAG,UAAC,QAAmB,EAAE,UAAwC;YACjF,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,KAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,QAAmB,EAAE,GAA4C;YACrF,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,KAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC;QAEM,qBAAe,GAAG,UAAC,QAAmB,EAAE,WAA4D;YAC1G,IAAI,KAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,IAAI,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9E,KAAI,CAAC,QAAQ,CAAC;wBACZ,WAAW,aAAA;wBACX,gBAAgB,EAAE,IAAI;wBACtB,aAAa,EAAE,UAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAE;wBAC7C,aAAa,EAAE,UAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAE;wBAC5E,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;wBAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAuDM,qBAAe,GAAG;YACxB,IAAI;QACN,CAAC,CAAC;QAEM,4BAAsB,GAAG;YAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;gBACvB,oBAAoB,EAAE,EAAE;aACzB,CAAC,CAAC;QACL,CAAC,CAAC;QAuDM,gBAAU,GAAG;QACnB,8DAA8D;QAC9D,SAAc,EACd,SAAqC,EACrC,eAAuB,EACvB,QAAoB;YAEd,IAAA,KAAgD,KAAI,CAAC,KAAK,EAAxD,uBAAmB,EAAnB,eAAe,mBAAG,CAAC,KAAA,EAAE,wBAAoB,EAApB,gBAAgB,mBAAG,CAAC,KAAe,CAAC;YACjE,IAAM,cAAc,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;YACF,IAAM,qBAAqB,GAAG,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAEtE,IAAI,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,EAAE,CAAC;gBAC9C,2FAA2F;gBAC3F,4EAA4E;gBAC5E,KAAI,CAAC,SAAS,GAAG,IAAA,mBAAW,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YACnG,CAAC;YAED,IAAM,IAAI,GAAG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,eAA2C,EAAE,WAAmB;gBAC7F,IAAM,MAAM,GAAG,SAAS,CACtB,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW;oBACxC,CAAC,CAAE,eAAe,CAAC,UAAqB;oBACxC,CAAC,CAAC,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,QAAQ;wBACzC,CAAC,CAAE,eAAe,CAAC,UAAmB;wBACtC,CAAC,CAAE,eAAe,CAAC,UAAqB,CAC3C,CAAC;gBACF,IAAM,wBAAwB,GAC5B,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAEjH,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,qCAAqC;gBACrC,IAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CACpD,UAAA,KAAK;oBACH,OAAA,KAAK,CAAC,IAAI,KAAK,CAAC;wBAChB,KAAK,CAAC,IAAI,KAAK,EAAE;wBACjB,CAAC,CACC,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU;4BACxC,OAAQ,SAAyB,CAAC,KAAK,CAAC,IAAc,CAAC,KAAK,WAAW,CACxE;gBALD,CAKC,CACJ,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;oBAC1B,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAEK,IAAA,KAAuD,KAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAtG,SAAS,eAAA,EAAE,gBAAgB,sBAAA,EAAE,mBAAmB,yBAAsD,CAAC;gBAE/G,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAED,IAAM,SAAS,GACb,eAAe;oBACf,KAAI,CAAC,OAAO,CAAC,MAAO;oBACpB,CAAC,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,SAA0B,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9F,IAAI,cAAc,GAAG,SAAS,CAAC;gBAC/B,IAAI,cAAc,GAAG,SAAS,CAAC;gBAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,eAAe,GAAG,CAAC,CAAC;gBAExB,IAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,KAAwB,EAAE,KAAa;;oBAC1E,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjE,IAAI,QAAQ,GAAG,UAAU,CAAC;oBAE1B,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;wBAC9B,UAAU,GAAG,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAG,CAAC,CAAC,KAAI,IAAA,uBAAe,EAAC,KAAK,EAAE,CAAC,EAAE,MAAA,KAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/F,QAAQ,GAAG,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAG,CAAC,CAAC,KAAI,IAAA,uBAAe,EAAC,KAAK,EAAE,CAAC,EAAE,MAAA,KAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7F,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;oBACtD,CAAC;oBAED,IAAM,GAAG,GAAkB,EAAE,CAAC;oBAE9B,IAAM,eAAe,GAAG,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC9G,KAAI,CAAC,WAAW,GAAG,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,MAAO,EAAE;wBACnD,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM;wBACxB,eAAe,iBAAA;wBACf,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI;qBACtB,CAAC,CAAC;oBACH,IAAM,cAAc,GAAG,CAAC,qBAAqB;wBAC3C,eAAe,IAAI;wBACjB,mBAAmB,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW;wBAC5C,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC;wBACxD,WAAW,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;wBACxF,WAAW,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;wBACxF,YAAY,EAAE,KAAI,CAAC,eAAe;wBAClC,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC;wBACzF,MAAM,EAAE,KAAI,CAAC,eAAe;wBAC5B,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,KAAK,CAAC;wBACxC,IAAI,EAAE,KAAK;qBACZ,CAAC;oBAEJ,IAAI,SAAiB,CAAC;oBACtB,IAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;wBAC7C,SAAS,GAAG,IAAI,CAAC,GAAG,CAClB,eAAe;4BACb,KAAI,CAAC,OAAO,CAAC,MAAO;4BACpB,CAAE,SAAyB,CAAC,KAAK,CAAC,IAAc,CAAE,GAAI,SAAyB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;4BAChG,SAAS,EACX,gBAAgB,EAChB,CAAC,CACF,CAAC;wBACF,cAAc,IAAI,SAAS,GAAG,SAAS,CAAC;wBACxC,MAAM,GAAG,cAAc,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAI,KAAK,CAAC,IAAe,CAAC,CAAC;wBAChE,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC,CAAC;wBAC/F,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;4BAC1B,SAAS,GAAG,SAAS,CAAC;wBACxB,CAAC;wBACD,IAAK,KAAK,CAAC,IAAe,IAAI,KAAI,CAAC,QAAQ,EAAE,CAAC;4BAC5C,cAAc,IAAI,SAAS,GAAG,SAAS,CAAC;4BACxC,MAAM,GAAG,cAAc,CAAC;wBAC1B,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;4BACpC,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;wBACtC,CAAC;wBAED,aAAa,IAAI,KAAK,CAAC,IAAc,CAAC;wBACtC,eAAe,GAAG,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvE,CAAC;oBAED,IAAM,UAAU,GAAG,IAAA,iBAAK,EAAC,eAAe,CAAC,GAAG,WAAI,WAAW,cAAI,KAAK,CAAE,CAAC;oBAEvE,8DAA8D;oBAC9D,IAAI,eAAe,IAAI,SAAS,GAAG,eAAe,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzF,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,GAAG,WAAW,GAAG,UAAG,qBAAqB,CAAE;4BAClE,KAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAC5B;gCACE,wCAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI;oCAC/D,8BAAM,MAAM,EAAC,GAAG,EAAC,SAAS,EAAE,UAAU,GAAI;oCAC1C,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAE,QAAQ,GAAI,CAC5B,CACZ,CACR;4BACD,+CACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,oBAAoB,EAChD,CAAC,EAAE,gCACG,MAAM,cAAI,MAAM,GAAG,eAAe,mCAClC,eAAe,cAAI,eAAe,oBAAU,eAAe,cAAI,CAAC,eAAe,mCAC/E,KAAI,CAAC,SAAS,GAAG,CAAC,GAAG,eAAe,mCACpC,eAAe,cAAI,eAAe,oBAAU,eAAe,cAAI,eAAe,mCAC9E,SAAS,GAAG,eAAe,mCAC3B,CAAC,KAAI,CAAC,SAAS,4CAEpB,EACD,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,eAAQ,UAAU,MAAG,CAAC,CAAC,CAAC,UAAU,EACpE,EAAE,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnC,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAApB,CAAoB,EAC9B,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IAClD,cAAc,EAClB,CACa,CAClB,CAAC;oBACJ,CAAC;oBACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;wBAClB,OAAO,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,GAAG,WAAW,QAAoB,CAAC;oBACtE,CAAC;oBACD,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,GAAG,WAAW;wBACrC,KAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAC5B;4BACE,wCAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI;gCAC/D,8BAAM,MAAM,EAAC,GAAG,EAAC,SAAS,EAAE,UAAU,GAAI;gCAC1C,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAE,QAAQ,GAAI,CAC5B,CACZ,CACR;wBACD,+CACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,oBAAoB,EAChD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAI,CAAC,SAAS,EACrB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,eAAQ,UAAU,MAAG,CAAC,CAAC,CAAC,UAAU,EACpE,EAAE,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnC,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAApB,CAAoB,IAC1B,cAAc,IAClB,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IACtD,CACa,CAClB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,IAAM,QAAQ,GAAkB,EAAE,CAAC;gBACnC,IAAM,cAAc,GAClB,eAAe,CAAC,SAAS,CAAC,MAAM,CAC9B,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,EAA1E,CAA0E,CACxF,CAAC,MAAM,GAAG,CAAC,CAAC;gBACf,qGAAqG;gBACrG,mGAAmG;gBACnG,qGAAqG;gBACrG,IAAM,eAAe,GAAG,qBAAqB;oBAC3C,cAAc,IAAI;oBAChB,mBAAmB,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW;oBAC5C,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,eAAe,CAAC;oBACjD,WAAW,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;oBAC3D,WAAW,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;oBAC3D,YAAY,EAAE,KAAI,CAAC,eAAe;oBAClC,OAAO,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,EAAE,QAAQ,CAAC;oBACjE,MAAM,EAAE,KAAI,CAAC,eAAe;oBAC5B,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;oBAClD,IAAI,EAAE,KAAK;iBACZ,CAAC;gBACJ,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;oBACvE,IAAI,KAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;wBAChC,SAAS,GAAG,IAAI,CAAC;wBACjB,QAAQ,GAAG,aAAa,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,OAAO,CAAC,UAAA,KAAK;4BACzB,IAAI,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC5C,SAAS,GAAG,IAAI,CAAC;gCACjB,QAAQ,IAAI,KAAK,CAAC,IAAc,CAAC;4BACnC,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,OAAO,CACL,2BAAG,GAAG,EAAE,WAAW,GAAG,UAAG,qBAAqB,CAAE;oBAC9C,4CAAG,EAAE,EAAE,UAAG,WAAW,eAAY,EAAE,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAzB,CAAyB,IAAM,eAAe,GACxF,SAAS,CACR;oBAKH,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAI,CAAC,SAAS,IAAI,EAAE,IAAI,SAAS,IAAI,CAC9D,8BACE,CAAC,EAAE,MAAM,GAAG,KAAI,CAAC,SAAS,GAAG,CAAC;wBAC9B,8EAA8E;wBAC9E,CAAC,EAAE,QAAQ,IAAI,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,eAAe,GAAG,EAAE,EACzE,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,QAAQ,gBACxB,iBAAU,QAAQ,CAAE,EAChC,IAAI,EAAC,KAAK,EACV,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IAErD,IAAA,kCAA0B,EAAC,QAAQ,CAAC,CAChC,CACR,CACC,CACL,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,mEAAmE;YACnE,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,oCAAoC;gBACtC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAChB,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACrE,IAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxD,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,oCAAoC;gBACtC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBACd,IAAM,YAAY,GAAG;oBACnB,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,OAAQ;oBACrC,EAAE,EAAE,KAAI,CAAC,UAAU;oBACnB,IAAI,EAAE,YAAY;iBACnB,CAAC;gBACF,YAAY,IAAI,IAAA,2BAAmB,EAAC,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,IAAyB,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;QACzD,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,eAAuB,EAAE,cAAsB;YACnE,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3F,IAAM,SAAS,GAAG,IAAA,sBAAa,GAAE;iBAC9B,MAAM,CAAC,OAAO,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,KAAI,CAAC,OAAO,CAAC,MAAO,GAAG,KAAI,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC,CAAC;YAC1E,IAAI,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAM,IAAI,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAmC,IAAK,OAAA,KAAK,CAAC,CAAW,EAAjB,CAAiB,CAAE,CAAC;gBAC/F,IAAM,IAAI,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAmC,IAAK,OAAA,KAAK,CAAC,CAAW,EAAjB,CAAiB,CAAE,CAAC;gBAE/F,IAAM,WAAS,GAAG,IAAA,sBAAa,GAAE;qBAC9B,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACjD,KAAK,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAAE,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/G,IAAI,CAAC,IAAA,6BAAqB,EAAC,KAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBAClF,WAAS,CAAC,IAAI,EAAE,CAAC;gBACnB,CAAC;gBAED,OAAO,EAAE,SAAS,aAAA,EAAE,SAAS,WAAA,EAAE,CAAC;YAClC,CAAC;YACD,IAAI,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAM,KAAK,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAmC;oBACrE,OAAO,KAAK,CAAC,CAAS,CAAC;gBACzB,CAAC,CAAE,CAAC;gBACJ,IAAM,KAAK,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAmC;oBACrE,OAAO,KAAK,CAAC,CAAS,CAAC;gBACzB,CAAC,CAAE,CAAC;gBACJ,IAAM,WAAS,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,mBAAU,GAAE,CAAC,CAAC,CAAC,IAAA,oBAAW,GAAE,CAAC;gBACnE,WAAS;qBACN,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;qBACrD,KAAK,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAAE,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAE/G,OAAO,EAAE,SAAS,aAAA,EAAE,SAAS,WAAA,EAAE,CAAC;YAClC,CAAC;YACD,IAAM,SAAS,GAAG,IAAA,oBAAW,GAAE;iBAC5B,MAAM,CAAC,KAAI,CAAC,YAAY,CAAC;iBACzB,KAAK,CACJ,KAAI,CAAC,MAAM;gBACT,CAAC,CAAC,CAAC,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,CAAC;gBACtG,CAAC,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAAE,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,CAAC,CACzG;iBACA,YAAY,CAAC,KAAI,CAAC,kBAAkB,CAAC;iBACrC,YAAY,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;YAEzC,OAAO,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAC;QAClC,CAAC,CAAC;QAEM,mBAAa,GAAG;QACtB,8DAA8D;QAC9D,MAAW,EACX,MAAkC,EAClC,eAAuB,EACvB,cAAsB,EACtB,QAA2B;YAErB,IAAA,KAA2B,KAAI,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,EAAzE,SAAS,eAAA,EAAE,SAAS,eAAqD,CAAC;YAClF,OAAO,CAAC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,UAAU,CAClC,SAAS,EACT,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC7D,eAAe,EACf,QAAS,CACV,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,mBAAa,GAAG;YACtB,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,kBAAY,GAAG,UAAC,SAAoB;YAC1C,IAAI,SAAS,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC5C,IAAmB,WAAW,GAAK,SAAS,kBAAd,CAAe;gBACrD,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAI,CAAC,QAAQ,CAAC,CAAC;gBAClG,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAI,CAAC,QAAQ,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC;QAEF;;;;;WAKG;QACK,0BAAoB,GAAG,UAAC,WAAmB;YACjD,OAAO,KAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF;;WAEG;QACK,0BAAoB,GAAG;YAC7B,OAAO,KAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC;QAEM,mBAAa,GAAG,UACtB,eAA2C,EAC3C,KAA8D,EAC9D,WAAqB;;YAErB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,uCAAuC;gBACvC,IAAM,QAAM,GACV,eAAe,CAAC,gBAAgB;oBAChC,CAAC,eAAe,CAAC,UAAU,YAAY,IAAI;wBACzC,CAAC,CAAC,IAAA,0CAAwB,EAAC,eAAe,CAAC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC7F,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAM,WAAW,GAAG,eAAe,CAAC,SAAS;qBAC1C,GAAG,CAAC,UAAA,EAAE;oBACL,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC;oBAC9C,OAAO,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAG,MAAM,eAAK,MAAM,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzG,CAAC,CAAC;qBACD,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,EAAE,EAAV,CAAU,CAAC;qBACzB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,QAAQ,0CACvC,GAAG,CAAC,UAAA,EAAE;oBACN,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;oBACtD,OAAO,KAAI,CAAC,oBAAoB,EAAE,IAAI,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAG,MAAM,eAAK,MAAM,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzG,CAAC,EACA,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,EAAE,EAAV,CAAU,EACxB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,OAAO,CACL,CAAA,MAAA,eAAe,CAAC,6BAA6B,0CAAE,SAAS;oBACxD,UAAG,QAAM,eAAK,WAAW,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,UAAU,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE,CAAC;YACJ,CAAC;YACD,wCAAwC;YACxC,IAAM,MAAM,GACV,eAAe,CAAC,gBAAgB;gBAChC,CAAC,CAAC,WAAW,IAAK,KAA2B,CAAC,gBAAgB,CAAC;gBAC/D,CAAC,eAAe,CAAC,UAAU,YAAY,IAAI;oBACzC,CAAC,CAAC,IAAA,0CAAwB,EAAC,eAAe,CAAC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7F,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAClC,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAM,MAAM,GACV,KAAK,CAAC,gBAAgB;gBACtB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAK,KAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7F,OAAO,CACL,CAAC,CAAC,WAAW,KAAI,MAAC,KAA2B,CAAC,wBAAwB,0CAAE,SAAS,CAAA,CAAC;gBAClF,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,CACnC,CAAC;QACJ,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAAC,cAAsB;;YACjD,KAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;YAEvC,+CAA+C;YAC/C,IAAM,UAAU,GACd,cAAc,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,iBAAiB,CAAC,CAAC;YACxG,yEAAyE;YACzE,IAAM,UAAU,GAAG,KAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,kBAAkB,CAAC,CAAC;YAE3E,IAAI,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,EAAE,CAAC;gBAC9C,IAAI,IAAA,6BAAqB,EAAC,KAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjF,uGAAuG;oBACvG,mEAAmE;oBACnE,KAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC1C,8DAA8D;oBAC9D,+DAA+D;oBAC/D,KAAI,CAAC,SAAS,GAAG,IAAA,mBAAW,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC1E,kFAAkF;oBAClF,IAAM,QAAQ,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC;oBAE3G,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;wBAC3B,4EAA4E;wBAC5E,KAAI,CAAC,aAAa,GAAG,iBAAiB,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxE,sFAAsF;oBACtF,IAAM,SAAS,GAAG,UAAU,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;oBACxG,IAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBACrF,IAAI,QAAQ,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC;oBACnG,IAAM,OAAO,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAE5C,IAAI,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;oBACvC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;wBAChC,gGAAgG;wBAChG,IAAM,IAAI,GAAG,IAAA,kCAA0B,EAAC,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;wBAChE,QAAQ,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;wBACvE,OAAO,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACxC,CAAC;oBAED,KAAI,CAAC,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAM,IAAI,GAAG,CAAC,MAAA,KAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,UAAU,EAAhB,CAAgB,CAAmC,KAAI,EAAE,CAAC;gBACtG,KAAI,CAAC,SAAS,GAAG,IAAA,mBAAW,EAC1B,KAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,KAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAA,oCAA4B,EAAC,IAAI,EAAE,UAAU,EAAE,KAAI,CAAC,kBAAkB,CAAC,CACxE,CAAC;gBACF,KAAI,CAAC,aAAa,GAAG,iBAAiB,GAAG,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9D,CAAC;YAED,6CACK,KAAI,CAAC,OAAO,KACf,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAC7C,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,IAC/C;QACJ,CAAC,CAAC;QAUM,oBAAc,GAAG;YACjB,IAAA,KAAuB,KAAI,CAAC,KAAK,EAA/B,UAAU,gBAAA,EAAE,IAAI,UAAe,CAAC;YACxC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YACtD,OAAO,CACL,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,UAAU,OAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,kCAA2B,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,CAAC,kBAAe;gBAC3D,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,eAAQ,QAAQ,WAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,IAAI,CACL,CAAC;QACJ,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAC1B,OAAqB,EACrB,SAAqB,EACrB,kBAA4B;YAE5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,IAAA,gCAAwB,EAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAED,IAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,MAAM;;gBAC5B,MAAA,MAAM,CAAC,QAAQ,0CAAE,OAAO,CAAC,UAAA,KAAK;oBAC5B,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAW,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,UAAU,EAAE,IAAA,cAAK,EAAC,MAAM,CAAE,EAAE,QAAQ,EAAE,IAAA,cAAK,EAAC,MAAM,CAAE,EAAE,CAAC;QAClE,CAAC,CAAC;QAEM,sBAAgB,GAAG;YACzB,IAAI,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,KAAI,CAAC,UAAU,GAAG,IAAA,qBAAa,EAAC,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAc,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU;oBAC9C,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;wBACxD,KAAI,CAAC,UAAU,GAAG,IAAA,qBAAa,EAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAc,CAAC;oBACzF,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,IAAM,iBAAe,GAA6B,EAAE,CAAC;gBACrD,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;oBACzB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,GAAG;wBAC1B,IAAI,CAAC,iBAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BACjC,iBAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAG,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;wBAChD,CAAC;6BAAM,CAAC;4BACN,iBAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAG,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;wBAClD,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAM,aAAW,GAAG,IAAI,GAAG,EAAU,CAAC;gBACtC,MAAM,CAAC,MAAM,CAAC,iBAAe,CAAC,CAAC,OAAO,CAAC,UAAA,OAAO;oBAC5C,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI;wBAClB,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU;oBAChD,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS;wBAC1B,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;4BAClC,aAAW,CAAC,GAAG,CAAC,UAAG,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;wBACpC,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,aAAW,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;QAEM,wBAAkB,GAAG,UAAC,eAAuB;YACnD;;;eAGG;YACH,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAE3B,gDAAgD;YAChD,IAAM,WAAW,GAAG,eAAe,GAAG,KAAI,CAAC,OAAO,CAAC,MAAO,GAAG,KAAI,CAAC,OAAO,CAAC,GAAI,CAAC;YAE/E,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,+GAA+G;gBAC/G,IAAI,sBAAoB,GAAG,CAAC,CAAC;gBAC7B,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;oBACzB,sGAAsG;oBACtG,IAAI,iBAAiB,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,GAAG;wBAC1B,iBAAiB,IAAI,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAG,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAC;oBACpE,CAAC,CAAC,CAAC;oBACH,sBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAoB,EAAE,iBAAiB,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;gBACH,6CAA6C;gBAC7C,IAAM,gBAAgB,GAAG,sBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,sBAAoB,CAAC;gBAC7F,kBAAkB,IAAI,gBAAgB,GAAG,CAAC,sBAAoB,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7F,CAAC;YAED,6CACK,KAAI,CAAC,OAAO,KACf,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,GAAI,GAAG,kBAAkB,IAC3C;QACJ,CAAC,CAAC;QAr1CA,IAAA,kCAAsB,EAAC,KAAI,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,GAAG;YACX,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,KAAI,EAAE;YACzD,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,CAAC;YACnB,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,oBAAoB,EAAE,EAAE;YACxB,aAAa,EAAE,EAAE;SAClB,CAAC;QACF,IAAA,4BAAgB,EAAC,cAAc,EAAE,KAAK,EAAE;YACtC,MAAM,EAAE,yBAAyB;YACjC,UAAU,EAAE,8BAA8B;SAC3C,CAAC,CAAC;QACH,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACvD,KAAI,CAAC,UAAU,GAAG,IAAA,iBAAK,EAAC,SAAS,CAAC,CAAC;QACnC,KAAI,CAAC,UAAU,GAAG,IAAA,iBAAK,EAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,KAAI,CAAC,YAAY,EAAE,CAAC;YACpB,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,CAAC;QACD,KAAI,CAAC,qBAAqB,GAAG,IAAA,2BAAe,EAAC,UAAC,IAAkC,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAA1B,CAA0B,CAAC,CAAC;QACjH,KAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,aAAa,CAAC,CAAC;QAC1C,KAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;QACvC,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5C,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;;IACvC,CAAC;IAEM,wDAAkB,GAAzB,UAA0B,SAAwC;;QAChE,IAAI,CAAC,IAAA,sBAAc,EAAC,MAAA,SAAS,CAAC,WAAW,0CAAE,eAAe,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC,QAAQ,CAAC;gBACZ,eAAe,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe,KAAI,EAAE;aAC/D,CAAC,CAAC;QACL,CAAC;QAED,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,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAEM,4CAAM,GAAb;QAAA,iBAyGC;QAxGC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAM,gBAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;YACF,IAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAc,CAAC,CAAC;YAC9D,IAAA,KAA8B,IAAI,CAAC,KAAK,kBAAf,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,CAAgB;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAM,UAAU,GAAgB,IAAI,CAAC,cAAc,CACjD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,OAAO,EACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAC5C,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;gBACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;gBACxB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK;aACvB,CAAC,CAAC;YACH,IAAM,YAAY,uCAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,EAAE,EAAE,iBAAU,IAAI,CAAC,UAAU,CAAE,EAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC9B,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAc,EACjC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EACzF,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,yBAAyB,EAAE,IAAI,IAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,GACvB,IAAA,+BAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAChE,CAAC;YACF,IAAM,UAAU,GAAG;gBACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;aAClC,CAAC;YAEF,OAAO,CACL,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,EACjC,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,SAAS,EAAE,kBAAU,CAAC,uBAAuB,EAC7C,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,0BAAkB,EAC/B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EACxC,qBAAqB,EAAE,IAAI,CAAC,YAAY,EACxC,iBAAiB,EAAE,qBAAqB,EACxC,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,iBAAiB,EAAE,yBAAiB,EACpC,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,kBAAkB,EAChB,iBAAiB,IAAI,gBAAc,CAAC,CAAC,CAAC,gCAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAkB,CAAC,QAAQ,EAEnG,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAC/C,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAC9C,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,IACpC,CAAC,IAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,IAAI;gBAChD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;gBAC1C,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;aAC3C,CAAC,IACF,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAC5B,uBAAuB,EAAE,CAAC,IAAA,6BAAqB,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EACtG,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,2BAA2B,yBAAG,EAAE,GAAK,IAAI,CAAC,YAAY,SACtD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;gBAC1C,sCAAsC;gBACtC,QAAQ,EAAE,UAAC,KAAkB;oBAC3B,OAAO,CACL;wBACE,+BAAI,KAAI,CAAC,KAAK,CAAK;wBACnB,+BACG,gBAAc;4BACb,KAAI,CAAC,YAAY,CACf,KAAK,CAAC,MAAO,EACb,KAAK,CAAC,aAAc,EACpB,KAAK,CAAC,eAAgB,EACtB,KAAK,CAAC,cAAe,EACrB,KAAK,CAAC,eAAe,CACtB,CACD,CACH,CACJ,CAAC;gBACJ,CAAC,IACD,CACH,CAAC;QACJ,CAAC;QACD,OAAO,CACL,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,uDAAc;aAAzB;;YACE,OAAO,CAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,KAAI,IAAI,CAAC;QACjE,CAAC;;;OAAA;IAwPO,kDAAY,GAApB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClE,IAAA,KAAK,GAAK,IAAI,CAAC,KAAK,MAAf,CAAgB;QACrB,IAAA,OAAO,GAAK,KAAM,QAAX,CAAY;QAC3B,4DAA4D;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACnH,IAAI,CAAC,UAAU,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAe,CAAC;QACnF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAA,uBAAe,EACvC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EACvB,IAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAC1D,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,yDAAmB,GAA3B;QAAA,iBAsBC;QArBC,IAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAM,OAAO,GAAmC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,eAAe;YAC9E,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,UAAoB,CAAC,CAAC;YAEnD,IAAI,KAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO;oBACL,CAAC,EAAE,eAAe,CAAC,UAAU;oBAC7B,CAAC,EAAE,CAAC;iBACL,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,GAAW,CAAC,CAAC;YACtB,eAAe,CAAC,SAAU,CAAC,OAAO,CAAC,UAAC,KAAwB;gBAC1D,KAAK,GAAG,KAAK,GAAI,KAAK,CAAC,IAAe,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,CAAC,EAAE,eAAe,CAAC,UAAU;gBAC7B,CAAC,EAAE,KAAK;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAMO,oDAAc,GAAtB,UAAuB,KAAyB;QAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,sBAAc,IACb,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAC3B,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAaO,oDAAc,GAAtB,UAAuB,WAAmB;QACxC,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;IACL,CAAC;IAEO,oDAAc,GAAtB;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;IACL,CAAC;IAEO,oDAAc,GAAtB,UACE,IAAkC,EAClC,OAAiB,EACjB,WAA0B;QAH5B,iBA0EC;QArEC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,yCAAK,CAAC;QACf,CAAC;QACD,IAAM,cAAc,GAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAChH,IAAM,OAAO,GAAc,EAAE,CAAC;QACxB,IAAA,KAAuC,IAAI,CAAC,KAAK,EAA/C,0BAAyB,EAAzB,kBAAkB,mBAAG,IAAI,KAAA,EAAE,KAAK,WAAe,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,UAAC,eAA2C;YACvD,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,KAAwB;;gBACzD,IAAI,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClG,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC9B,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAA,MAAA,eAAe,CAAC,SAAS,0CAAE,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAA5B,CAA4B,CAAC,KAAI,CAAC,EAC/E,CAAC,CACF,CAAC;oBACF,KAAK,GAAG,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAG,CAAC,CAAC,KAAI,IAAA,uBAAe,EAAC,UAAU,EAAE,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,CAAC;gBAED,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,GAAY,IAAK,OAAA,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAjD,CAAiD,CAAC,CAAC;gBAChH,IAAI,mBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,IAAM,MAAM,GAAY;oBACtB,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,KAAK,OAAA;oBACL,WAAW,EAAE,kBAAkB;wBAC7B,CAAC,CAAC;4BACE,KAAI,CAAC,sBAAsB,EAAE,CAAC;4BAC9B,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpC,CAAC;wBACH,CAAC,CAAC,SAAS;oBACb,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,SAAS;iBAC/E,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAM,aAAa,GAAc,EAAE,CAAC;QACpC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,WAAW,CAAC,OAAO,CAAC,UAAC,KAAkB;gBACrC,IAAM,MAAM,GAAY;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,sBAAsB,EAAE,IAAI;oBAC5B,WAAW,EAAE,kBAAkB;wBAC7B,CAAC,CAAC;4BACE,KAAI,CAAC,sBAAsB,EAAE,CAAC;4BAC9B,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;wBACH,CAAC,CAAC,SAAS;oBACb,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,SAAS;iBAC/E,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAM,YAAY,GAAc,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,OAAO,CACL,oBAAC,eAAO,qBACN,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAC9C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EACpD,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,mCAAmC,EACzE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,IACxC,IAAI,CAAC,KAAK,CAAC,WAAW,IAC1B,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAClD,GAAG,EAAE,IAAI,CAAC,WAAW,IACrB,CACH,CAAC;IACJ,CAAC;IAEO,8DAAwB,GAAhC,UACE,eAAyB,EACzB,KAA0C,EAC1C,aAAuB;;QAEvB,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,wBAAwB,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,2DAAqB,GAA7B;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe;YAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;gBACzB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC3B,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAEO,kDAAY,GAApB,UACE,UAAkB,EAClB,KAAwB,EACxB,KAAa,EACb,UAAwC;QAExC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAEO,uDAAiB,GAAzB,UACE,UAAkC,EAClC,KAAwB,EACxB,KAAa,EACb,WAAuD;;QAEvD,IAAI,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,MAAK,KAAK,IAAI,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,MAAK,UAAU,EAAE,CAAC;YAClH,IAAI,CAAC,mBAAmB,GAAG;gBACzB,cAAc,EAAE,KAAK;gBACrB,cAAc,EACZ,UAAU,YAAY,IAAI;oBACxB,CAAC,CAAC,IAAA,0CAAwB,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7E,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;aAC5B,CAAC;YACF,IAAM,aAAa,GACjB,KAAK,CAAC,gBAAgB;gBACtB,CAAC,UAAU,YAAY,IAAI;oBACzB,CAAC,CAAC,IAAA,0CAAwB,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7E,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE7B,IAAI,CAAC,QAAQ,CAAC;gBACZ,WAAW,aAAA;gBACX;;;mBAGG;gBACH,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxF,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,KAAK,CAAC,IAAI;gBAC5B,KAAK,OAAA;gBACL,aAAa,eAAA;gBACb,aAAa,EAAE,KAAK,CAAC,gBAAgB;gBACrC,qBAAqB,EAAE,KAAK;gBAC5B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IA8BO,mDAAa,GAArB,UAAsB,KAAiC,EAAE,UAAwC;QAC/F,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAEO,wDAAkB,GAA1B,UACE,KAAiC,EACjC,WAAuD;QAFzD,iBAkCC;;QA9BC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,KAAK,yCACA,KAAK,KACR,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,EAA3C,CAA2C,CAAC,EAC3F,QAAQ,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,EAA3C,CAA2C,CAAC,GAC3F,CAAC;QACJ,CAAC;QACD,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAM,cAAc,GAAY,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9E,IAAI,cAAc,EAAE,CAAC;YACnB,QAAS,CAAC,OAAO,CAAC,UAAC,IAA+E;gBAChG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC;YACZ,WAAW,aAAA;YACX,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC;YACjF,WAAW,EAAE,cAAc;gBACzB,CAAC,iDAAK,QAAS,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,IAAK,GAAG,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,SAAK,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAClG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;YACrC,WAAW,EACT,KAAK,CAAC,UAAU,YAAY,IAAI;gBAC9B,CAAC,CAAC,IAAA,0CAAwB,EAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnF,CAAC,CAAC,KAAK,CAAC,UAAU;YACtB,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,KAAK,CAAC,UAAU;YACtC,wBAAwB,EAAE,KAAK,CAAC,6BAA6B;SAC9D,CAAC,CAAC;IACL,CAAC;IAEO,kDAAY,GAApB,UAAqB,KAAwB,EAAE,UAAkB,EAAE,KAAa,EAAE,GAAkB;QAClG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,mDAAa,GAArB,UAAsB,KAAiC,EAAE,QAAuB;QAC9E,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAcO,8CAAQ,GAAhB,UACE,IAAoD,EACpD,UAAwC;;QAExC,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAEO,wDAAkB,GAA1B,UACE,IAAyB,EACzB,SAAqC,EACrC,kBAA2B;QAMnB,IAAA,KAAkB,IAAI,CAAC,KAAK,UAAf,EAAb,SAAS,mBAAG,CAAC,KAAA,CAAgB;QAErC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAmB,CAAC;QACxB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,YAAoB,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,EAAE,CAAC;YAC7C,WAAW;gBACT,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,IAAI,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,GAAG,IAAK,OAAA,KAAK,GAAI,SAAyB,CAAC,GAAG,CAAC,IAAc,CAAE,EAAvD,CAAuD,EAAE,CAAC,CAAC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,oEAAoE;YACpE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,EAArC,CAAqC,EAAE,CAAC,CAAC,CAAC;YACnF,WAAW;gBACT,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAClB,IAAI,CAAC,GAAG,CAAE,SAA0B,CAAC,SAAS,CAAC,GAAI,SAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,OAAO,CAAC,UAAA,KAAK;gBAChB,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;gBAC/D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC7B,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;gBACD,YAAY,IAAI,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAM,IAAI,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,IAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5G,IAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,KAAK,iBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,YAAa,CAAC,CAAC;QAChH,OAAO;YACL,SAAS,WAAA;YACT,gBAAgB,kBAAA;YAChB,mBAAmB,EAAE,YAAY;SACzB,CAAC;IACb,CAAC;IA2dO,mDAAa,GAArB;QACE,OAAO,CAAC,CACN,IAAI,CAAC,KAAK,CAAC,IAAI;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAxE,CAAwE,CAAC,CACvG,CAAC;IACJ,CAAC;IAhxCa,wCAAY,GAA2C;QACnE,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,IAAI;KACb,AAHyB,CAGxB;IAs3CJ,kCAAC;CAAA,AA73CD,CACU,KAAK,CAAC,SAAS,GA43CxB;AA73CY,kEAA2B","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n ScaleBand,\n} from 'd3-scale';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n warnDeprecations,\n memoizeFunction,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IVerticalStackedBarDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n IDataPoint,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n findVSBCNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextGradient,\n areArraysEqual,\n calculateLongestLabelWidth,\n YAxisType,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericScale = D3ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\n\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: IVSChartDataPoint;\n};\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string | Date;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n selectedLegends: string[];\n}\nexport class VerticalStackedBarChartBase\n extends React.Component<IVerticalStackedBarChartProps, IVerticalStackedBarChartState>\n implements IChart\n{\n public static defaultProps: Partial<IVerticalStackedBarChartProps> = {\n maxBarWidth: 24,\n useUTC: true,\n };\n\n private _points: IVerticalStackedChartProps[];\n private _dataset: IVerticalStackedBarDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _yMin: number;\n private _calloutAnchorPoint: CalloutAnchorPointData | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n private _xAxisInnerPadding: number;\n private _xAxisOuterPadding: number;\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private readonly Y_ORIGIN: number = 0;\n private _yAxisType: YAxisType;\n private _yAxisLabels: string[] = [];\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n isCalloutVisible: false,\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (!this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._emptyChartId = getId('_VSBC_empty');\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: this._xAxisInnerPadding,\n xAxisOuterPadding: this._xAxisOuterPadding,\n })}\n ref={this._cartesianChartRef}\n showRoundOffXTickValues={!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)}\n yAxisType={this._yAxisType}\n stringDatasetForYAxisDomain={['', ...this._yAxisLabels]}\n getYDomainMargins={this._getYDomainMargins}\n /* eslint-disable react/jsx-no-bind */\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\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 /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this._getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getDomainNRangeValues = (\n points: IDataPoint[],\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 (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\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 = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n ): JSX.Element => {\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n const xScaleBandwidthTranslate = this._xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._isLegendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i - 1].y as any);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i].y as any);\n const yScaleBandwidthTranslate =\n !useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.semanticColors.bodyBackground}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n onMouseOver={this._lineHover.bind(this, lineObject[item][i - 1])}\n onMouseLeave={this._handleMouseOut}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n const yScaleBandwidthTranslate =\n !circlePoint.useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(circlePoint.y as any)\n }\n onMouseOver={this._lineHover.bind(this, circlePoint)}\n onMouseLeave={this._handleMouseOut}\n r={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.semanticColors.bodyBackground}\n strokeWidth={3}\n // Elements with visibility: hidden cannot receive focus, so use opacity: 0 instead to hide them.\n // For more information, see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n opacity={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).opacity}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n ref={e => (circleRef.refElement = e)}\n {...(noBarsActive && (this._noLegendHighlighted() || this._isLegendHighlighted(item))\n ? {\n 'data-is-focusable': !this.props.hideTooltip,\n onFocus: this._lineFocus.bind(this, circlePoint, circleRef),\n onBlur: this._handleMouseOut,\n role: 'img',\n 'aria-label': this._getAriaLabel(circlePoint.xItem, circlePoint, true),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleOpacityAndRadius = (\n xAxisPoint: string | number | Date,\n legend: string,\n ): { opacity: number; radius: number } => {\n const { activeXAxisDataPoint } = this.state;\n if (!this._noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 8 };\n } else if (this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 0.3 };\n } else {\n return { opacity: 0, radius: 0 };\n }\n } else {\n return {\n opacity: activeXAxisDataPoint === xAxisPoint ? 1 : 0,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n this._xAxisInnerPadding = getScalePadding(\n this.props.xAxisInnerPadding,\n this.props.xAxisPadding,\n this._xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n this._xAxisOuterPadding = getScalePadding(this.props.xAxisOuterPadding, this.props.xAxisPadding, 0);\n this._initYAxisParams();\n }\n\n private _createDataSetLayer(): IVerticalStackedBarDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IVerticalStackedBarDataPoint[] = this._points.map(singlePointData => {\n tempArr.push(singlePointData.xAxisPoint as string);\n\n if (this._yAxisType === YAxisType.StringAxis) {\n return {\n x: singlePointData.xAxisPoint,\n y: 0,\n };\n }\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + (point.data as number);\n });\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true, theme } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n if (this.props.enableGradient) {\n const pointIndex = Math.max(\n singleChartData.chartData?.findIndex(item => item.legend === point.legend) || 0,\n 0,\n );\n color = point.gradient?.[0] || getNextGradient(pointIndex, 0, theme?.isInverted)[0];\n }\n\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n }\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string | Date | number,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint?.chartDataPoint !== point || this._calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n this._calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint:\n xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString(),\n };\n const xCalloutValue =\n point.xAxisCalloutData ||\n (xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString());\n\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this._noLegendHighlighted() || this._isLegendHighlighted(point.legend),\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this._lineHoverFocus(lineData, mouseEvent);\n };\n\n private _lineFocus = (lineData: LinePoint, ref: { refElement: SVGCircleElement | null }) => {\n if (ref.refElement) {\n this._lineHoverFocus(lineData, ref.refElement);\n }\n };\n\n private _lineHoverFocus = (lineData: LinePoint, refSelected: React.MouseEvent<SVGElement> | SVGCircleElement) => {\n if (this._getHighlightedLegend().length === 1) {\n if (this._noLegendHighlighted() || this._isLegendHighlighted(lineData.legend)) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n }\n } else {\n this._onStackHoverFocus(lineData.xItem, refSelected);\n }\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (!this._noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n\n this.setState({\n refSelected,\n isCalloutVisible: stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue:\n stack.xAxisPoint instanceof Date\n ? formatDateToLocaleString(stack.xAxisPoint, this.props.culture, this.props.useUTC)\n : stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale | StringScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly adjustedTotalHeight: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n let totalData = 0;\n let totalHeight: number;\n let sumOfPercent = 0;\n let scalingRatio: number;\n if (this._yAxisType === YAxisType.StringAxis) {\n totalHeight =\n defaultTotalHeight ?? bars.reduce((total, bar) => total + (yBarScale as StringScale)(bar.data as string)!, 0);\n } else {\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n totalData = bars.reduce((iter, value) => iter + Math.abs(value.data as number), 0);\n totalHeight =\n defaultTotalHeight ??\n Math.abs((yBarScale as NumericScale)(totalData) - (yBarScale as NumericScale)(this.Y_ORIGIN));\n bars.forEach(point => {\n let value = (Math.abs(point.data as number) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n }\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale =\n this._yAxisType === YAxisType.StringAxis ? 0 : (totalHeight - gapHeight * gaps) / (totalData * scalingRatio!);\n return {\n gapHeight,\n heightValueScale,\n adjustedTotalHeight: sumOfPercent,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale | StringScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : this._xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType !== XAxisTypes.StringAxis ? -this._barWidth / 2 : (xBarScale.bandwidth() - this._barWidth) / 2;\n\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(\n point =>\n point.data !== 0 &&\n point.data !== '' &&\n !(\n this._yAxisType === YAxisType.StringAxis &&\n typeof (yBarScale as StringScale)(point.data as string) === 'undefined'\n ),\n );\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, adjustedTotalHeight } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline =\n containerHeight -\n this.margins.bottom! -\n (this._yAxisType === YAxisType.StringAxis ? 0 : (yBarScale as NumericScale)(this.Y_ORIGIN));\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n let startColor = point.color ? point.color : this._colors[index];\n let endColor = startColor;\n\n if (this.props.enableGradient) {\n startColor = point.gradient?.[0] || getNextGradient(index, 0, this.props.theme?.isInverted)[0];\n endColor = point.gradient?.[1] || getNextGradient(index, 0, this.props.theme?.isInverted)[1];\n singleChartData.chartData[index].color = startColor;\n }\n\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._isLegendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack &&\n shouldHighlight && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, startColor, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight: number;\n const gapOffset = index ? gapHeight : 0;\n if (this._yAxisType === YAxisType.StringAxis) {\n barHeight = Math.max(\n containerHeight -\n this.margins.bottom! -\n ((yBarScale as StringScale)(point.data as string)! + (yBarScale as StringScale).bandwidth() / 2) -\n gapOffset,\n barMinimumHeight,\n 1,\n );\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n barHeight = Math.abs(heightValueScale * (point.data as number));\n const minHeight = Math.max((heightValueScale * adjustedTotalHeight) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n if ((point.data as number) >= this.Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data as number;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n }\n\n const gradientId = getId('VSBC_Gradient') + `_${indexNumber}_${index}`;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <path\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <rect\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: IRefArrayData = {};\n const someBarsActive =\n singleChartData.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length > 0;\n // FIXME: Making the entire stack focusable when stack callout is enabled adds unnecessary complexity\n // and can reduce usability in certain scenarios. Instead, each individual element within the stack\n // should be focusable on its own, with its own aria-label. This behavior is also seen in Highcharts.\n const stackFocusProps = shouldFocusWholeStack &&\n someBarsActive && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n let showLabel = false;\n let barLabel = 0;\n if (!this.props.hideLabels && this._yAxisType !== YAxisType.StringAxis) {\n if (this._noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (this._isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data as number;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {/*\n Note: No need to check hideLabels here, as showLabel is only set to true\n when hideLabels is false earlier in the code.\n */}\n {!this.props.hideLabels && this._barWidth >= 16 && showLabel && (\n <text\n x={xPoint + this._barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= this.Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {formatScientificLimitWidth(barLabel)}\n </text>\n )}\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(xBarScale);\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: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number) => {\n const yDomain = [Math.min(this.Y_ORIGIN, this._yMin), Math.max(this.Y_ORIGIN, this._yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n if (!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)) {\n xBarScale.nice();\n }\n\n return { xBarScale, yBarScale };\n }\n if (this._xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = this.props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(this._isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(this._xAxisInnerPadding)\n .paddingOuter(this._xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n return (this._bars = this._createBar(\n xBarScale,\n this._yAxisType === YAxisType.StringAxis ? yScale : yBarScale,\n containerHeight,\n xElement!,\n ));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || this.Y_ORIGIN);\n this._yMin = Math.min(domainValue[0], this.props.yMinValue || this.Y_ORIGIN);\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 _isLegendHighlighted = (legendTitle: string): boolean => {\n return this._getHighlightedLegend().includes(legendTitle);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getAriaLabel = (\n singleChartData: IVerticalStackedChartProps,\n point?: IVSChartDataPoint | ILineDataInVerticalStackedBarChart,\n isLinePoint?: boolean,\n ): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (!isLinePoint && (point as IVSChartDataPoint).xAxisCalloutData) ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (isLinePoint ? point.data || (point as ILineDataInVerticalStackedBarChart).y : point.data);\n return (\n (!isLinePoint && (point as IVSChartDataPoint).callOutAccessibilityData?.ariaLabel) ||\n `${xValue}. ${legend}, ${yValue}.`\n );\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n this._domainMargin = MIN_DOMAIN_MARGIN;\n\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the bars changes wrt the bar width */\n const barGapRate = this._xAxisInnerPadding / (1 - this._xAxisInnerPadding);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(this.props.xAxisOuterPadding, this.props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n this._domainMargin = 0;\n } else if (this.props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate) * this._barWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (this.props.mode === 'plotly' && this._xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering bars at their maximum allowable width\n const bandwidth = totalWidth / (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate);\n const barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, bandwidth);\n let reqWidth = (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate) * barWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n let margin2 = Number.POSITIVE_INFINITY;\n if (!this.props.hideTickOverlap) {\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(this._xAxisLabels) + 20;\n reqWidth = (this._xAxisLabels.length - this._xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n this._domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n } else {\n const data = (this.props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n this._barWidth = getBarWidth(\n this.props.barWidth,\n this.props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, this._xAxisInnerPadding),\n );\n this._domainMargin = MIN_DOMAIN_MARGIN + this._barWidth / 2;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, data } = this.props;\n const numLines = Object.keys(this._lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n };\n\n private _getMinMaxOfYAxis = (\n dataset: IDataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n this.props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n if (point.useSecondaryYScale) {\n values.push(point.y as number);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n };\n\n private _initYAxisParams = () => {\n if (this._points[0].chartData.length > 0) {\n this._yAxisType = getTypeOfAxis(this._points[0].chartData[0].data, false) as YAxisType;\n } else {\n Object.keys(this._lineObject).forEach(lineLegend => {\n if (!this._lineObject[lineLegend][0].useSecondaryYScale) {\n this._yAxisType = getTypeOfAxis(this._lineObject[lineLegend][0].y, false) as YAxisType;\n }\n });\n }\n\n if (this._yAxisType === YAxisType.StringAxis) {\n const legendToYValues: Record<string, string[]> = {};\n this._points.forEach(xPoint => {\n xPoint.chartData.forEach(bar => {\n if (!legendToYValues[bar.legend]) {\n legendToYValues[bar.legend] = [`${bar.data}`];\n } else {\n legendToYValues[bar.legend].push(`${bar.data}`);\n }\n });\n });\n\n const yAxisLabels = new Set<string>();\n Object.values(legendToYValues).forEach(yValues => {\n yValues.forEach(yVal => {\n yAxisLabels.add(yVal);\n });\n });\n Object.values(this._lineObject).forEach(linePoints => {\n linePoints.forEach(linePoint => {\n if (!linePoint.useSecondaryYScale) {\n yAxisLabels.add(`${linePoint.y}`);\n }\n });\n });\n this._yAxisLabels = Array.from(yAxisLabels);\n }\n };\n\n private _getYDomainMargins = (containerHeight: number): IMargins => {\n /**\n * Specifies the extra top margin to apply above the highest y-axis tick label.\n * Useful when stacked bars extend beyond the combined height of all y-axis labels (or categories).\n */\n let yAxisTickMarginTop = 0;\n\n /** Total height available to render the bars */\n const totalHeight = containerHeight - this.margins.bottom! - this.margins.top!;\n\n if (this._yAxisType === YAxisType.StringAxis) {\n /** Maximum height of the stacked bars, expressed in multiples of the height of a y-axis label (or category) */\n let maxBarHeightInLabels = 0;\n this._points.forEach(xPoint => {\n /** Height of the stacked bar, expressed in multiples of the height of a y-axis label (or category) */\n let barHeightInLabels = 0;\n xPoint.chartData.forEach(bar => {\n barHeightInLabels += this._yAxisLabels.indexOf(`${bar.data}`) + 1;\n });\n maxBarHeightInLabels = Math.max(maxBarHeightInLabels, barHeightInLabels);\n });\n /** Height of a y-axis label (or category) */\n const yAxisLabelHeight = maxBarHeightInLabels === 0 ? 0 : totalHeight / maxBarHeightInLabels;\n yAxisTickMarginTop += yAxisLabelHeight * (maxBarHeightInLabels - this._yAxisLabels.length);\n }\n\n return {\n ...this.margins,\n top: this.margins.top! + yAxisTickMarginTop,\n };\n };\n}\n"]}
1
+ {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n ScaleBand,\n} from 'd3-scale';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n warnDeprecations,\n memoizeFunction,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IVerticalStackedBarDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n IDataPoint,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n findVSBCNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextGradient,\n areArraysEqual,\n calculateLongestLabelWidth,\n YAxisType,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericScale = D3ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\n\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: IVSChartDataPoint;\n};\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string | Date;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n selectedLegends: string[];\n}\nexport class VerticalStackedBarChartBase\n extends React.Component<IVerticalStackedBarChartProps, IVerticalStackedBarChartState>\n implements IChart\n{\n public static defaultProps: Partial<IVerticalStackedBarChartProps> = {\n maxBarWidth: 24,\n useUTC: true,\n xAxisCategoryOrder: 'default',\n yAxisCategoryOrder: 'default',\n };\n\n private _points: IVerticalStackedChartProps[];\n private _dataset: IVerticalStackedBarDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _yMin: number;\n private _calloutAnchorPoint: CalloutAnchorPointData | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n private _xAxisInnerPadding: number;\n private _xAxisOuterPadding: number;\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private readonly Y_ORIGIN: number = 0;\n private _yAxisType: YAxisType;\n private _yAxisLabels: string[] = [];\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n isCalloutVisible: false,\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (!this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._emptyChartId = getId('_VSBC_empty');\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: this._xAxisInnerPadding,\n xAxisOuterPadding: this._xAxisOuterPadding,\n })}\n ref={this._cartesianChartRef}\n showRoundOffXTickValues={!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)}\n yAxisType={this._yAxisType}\n stringDatasetForYAxisDomain={['', ...this._yAxisLabels]}\n getYDomainMargins={this._getYDomainMargins}\n /* eslint-disable react/jsx-no-bind */\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\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 /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this._getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getDomainNRangeValues = (\n points: IDataPoint[],\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 (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\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 = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n ): JSX.Element => {\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n const xScaleBandwidthTranslate = this._xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._isLegendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i - 1].y as any);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i].y as any);\n const yScaleBandwidthTranslate =\n !useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.semanticColors.bodyBackground}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n onMouseOver={this._lineHover.bind(this, lineObject[item][i - 1])}\n onMouseLeave={this._handleMouseOut}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n const yScaleBandwidthTranslate =\n !circlePoint.useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(circlePoint.y as any)\n }\n onMouseOver={this._lineHover.bind(this, circlePoint)}\n onMouseLeave={this._handleMouseOut}\n r={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.semanticColors.bodyBackground}\n strokeWidth={3}\n // Elements with visibility: hidden cannot receive focus, so use opacity: 0 instead to hide them.\n // For more information, see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n opacity={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).opacity}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n ref={e => (circleRef.refElement = e)}\n {...(noBarsActive && (this._noLegendHighlighted() || this._isLegendHighlighted(item))\n ? {\n 'data-is-focusable': !this.props.hideTooltip,\n onFocus: this._lineFocus.bind(this, circlePoint, circleRef),\n onBlur: this._handleMouseOut,\n role: 'img',\n 'aria-label': this._getAriaLabel(circlePoint.xItem, circlePoint, true),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleOpacityAndRadius = (\n xAxisPoint: string | number | Date,\n legend: string,\n ): { opacity: number; radius: number } => {\n const { activeXAxisDataPoint } = this.state;\n if (!this._noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 8 };\n } else if (this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 0.3 };\n } else {\n return { opacity: 0, radius: 0 };\n }\n } else {\n return {\n opacity: activeXAxisDataPoint === xAxisPoint ? 1 : 0,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n this._xAxisInnerPadding = getScalePadding(\n this.props.xAxisInnerPadding,\n this.props.xAxisPadding,\n this._xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n this._xAxisOuterPadding = getScalePadding(this.props.xAxisOuterPadding, this.props.xAxisPadding, 0);\n this._initYAxisParams();\n }\n\n private _createDataSetLayer(): IVerticalStackedBarDataPoint[] {\n const dataset: IVerticalStackedBarDataPoint[] = this._points.map(singlePointData => {\n if (this._yAxisType === YAxisType.StringAxis) {\n return {\n x: singlePointData.xAxisPoint,\n y: 0,\n };\n }\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + (point.data as number);\n });\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = this._getOrderedXAxisLabels();\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true, theme } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n if (this.props.enableGradient) {\n const pointIndex = Math.max(\n singleChartData.chartData?.findIndex(item => item.legend === point.legend) || 0,\n 0,\n );\n color = point.gradient?.[0] || getNextGradient(pointIndex, 0, theme?.isInverted)[0];\n }\n\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n }\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string | Date | number,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint?.chartDataPoint !== point || this._calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n this._calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint:\n xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString(),\n };\n const xCalloutValue =\n point.xAxisCalloutData ||\n (xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString());\n\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this._noLegendHighlighted() || this._isLegendHighlighted(point.legend),\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this._lineHoverFocus(lineData, mouseEvent);\n };\n\n private _lineFocus = (lineData: LinePoint, ref: { refElement: SVGCircleElement | null }) => {\n if (ref.refElement) {\n this._lineHoverFocus(lineData, ref.refElement);\n }\n };\n\n private _lineHoverFocus = (lineData: LinePoint, refSelected: React.MouseEvent<SVGElement> | SVGCircleElement) => {\n if (this._getHighlightedLegend().length === 1) {\n if (this._noLegendHighlighted() || this._isLegendHighlighted(lineData.legend)) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n }\n } else {\n this._onStackHoverFocus(lineData.xItem, refSelected);\n }\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (!this._noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n\n this.setState({\n refSelected,\n isCalloutVisible: stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue:\n stack.xAxisPoint instanceof Date\n ? formatDateToLocaleString(stack.xAxisPoint, this.props.culture, this.props.useUTC)\n : stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale | StringScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly adjustedTotalHeight: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n let totalData = 0;\n let totalHeight: number;\n let sumOfPercent = 0;\n let scalingRatio: number;\n if (this._yAxisType === YAxisType.StringAxis) {\n totalHeight =\n defaultTotalHeight ?? bars.reduce((total, bar) => total + (yBarScale as StringScale)(bar.data as string)!, 0);\n } else {\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n totalData = bars.reduce((iter, value) => iter + Math.abs(value.data as number), 0);\n totalHeight =\n defaultTotalHeight ??\n Math.abs((yBarScale as NumericScale)(totalData) - (yBarScale as NumericScale)(this.Y_ORIGIN));\n bars.forEach(point => {\n let value = (Math.abs(point.data as number) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n }\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale =\n this._yAxisType === YAxisType.StringAxis ? 0 : (totalHeight - gapHeight * gaps) / (totalData * scalingRatio!);\n return {\n gapHeight,\n heightValueScale,\n adjustedTotalHeight: sumOfPercent,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale | StringScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : this._xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType !== XAxisTypes.StringAxis ? -this._barWidth / 2 : (xBarScale.bandwidth() - this._barWidth) / 2;\n\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(\n point =>\n point.data !== 0 &&\n point.data !== '' &&\n !(\n this._yAxisType === YAxisType.StringAxis &&\n typeof (yBarScale as StringScale)(point.data as string) === 'undefined'\n ),\n );\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, adjustedTotalHeight } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline =\n containerHeight -\n this.margins.bottom! -\n (this._yAxisType === YAxisType.StringAxis ? 0 : (yBarScale as NumericScale)(this.Y_ORIGIN));\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n let startColor = point.color ? point.color : this._colors[index];\n let endColor = startColor;\n\n if (this.props.enableGradient) {\n startColor = point.gradient?.[0] || getNextGradient(index, 0, this.props.theme?.isInverted)[0];\n endColor = point.gradient?.[1] || getNextGradient(index, 0, this.props.theme?.isInverted)[1];\n singleChartData.chartData[index].color = startColor;\n }\n\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._isLegendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack &&\n shouldHighlight && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, startColor, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight: number;\n const gapOffset = index ? gapHeight : 0;\n if (this._yAxisType === YAxisType.StringAxis) {\n barHeight = Math.max(\n containerHeight -\n this.margins.bottom! -\n ((yBarScale as StringScale)(point.data as string)! + (yBarScale as StringScale).bandwidth() / 2) -\n gapOffset,\n barMinimumHeight,\n 1,\n );\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n barHeight = Math.abs(heightValueScale * (point.data as number));\n const minHeight = Math.max((heightValueScale * adjustedTotalHeight) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n if ((point.data as number) >= this.Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data as number;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n }\n\n const gradientId = getId('VSBC_Gradient') + `_${indexNumber}_${index}`;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <path\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <rect\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: IRefArrayData = {};\n const someBarsActive =\n singleChartData.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length > 0;\n // FIXME: Making the entire stack focusable when stack callout is enabled adds unnecessary complexity\n // and can reduce usability in certain scenarios. Instead, each individual element within the stack\n // should be focusable on its own, with its own aria-label. This behavior is also seen in Highcharts.\n const stackFocusProps = shouldFocusWholeStack &&\n someBarsActive && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n let showLabel = false;\n let barLabel = 0;\n if (!this.props.hideLabels && this._yAxisType !== YAxisType.StringAxis) {\n if (this._noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (this._isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data as number;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {/*\n Note: No need to check hideLabels here, as showLabel is only set to true\n when hideLabels is false earlier in the code.\n */}\n {!this.props.hideLabels && this._barWidth >= 16 && showLabel && (\n <text\n x={xPoint + this._barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= this.Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {formatScientificLimitWidth(barLabel)}\n </text>\n )}\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(xBarScale);\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: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number) => {\n const yDomain = [Math.min(this.Y_ORIGIN, this._yMin), Math.max(this.Y_ORIGIN, this._yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n if (!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)) {\n xBarScale.nice();\n }\n\n return { xBarScale, yBarScale };\n }\n if (this._xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = this.props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(this._isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(this._xAxisInnerPadding)\n .paddingOuter(this._xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n return (this._bars = this._createBar(\n xBarScale,\n this._yAxisType === YAxisType.StringAxis ? yScale : yBarScale,\n containerHeight,\n xElement!,\n ));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || this.Y_ORIGIN);\n this._yMin = Math.min(domainValue[0], this.props.yMinValue || this.Y_ORIGIN);\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 _isLegendHighlighted = (legendTitle: string): boolean => {\n return this._getHighlightedLegend().includes(legendTitle);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getAriaLabel = (\n singleChartData: IVerticalStackedChartProps,\n point?: IVSChartDataPoint | ILineDataInVerticalStackedBarChart,\n isLinePoint?: boolean,\n ): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (!isLinePoint && (point as IVSChartDataPoint).xAxisCalloutData) ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (isLinePoint ? point.data || (point as ILineDataInVerticalStackedBarChart).y : point.data);\n return (\n (!isLinePoint && (point as IVSChartDataPoint).callOutAccessibilityData?.ariaLabel) ||\n `${xValue}. ${legend}, ${yValue}.`\n );\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n this._domainMargin = MIN_DOMAIN_MARGIN;\n\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the bars changes wrt the bar width */\n const barGapRate = this._xAxisInnerPadding / (1 - this._xAxisInnerPadding);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(this.props.xAxisOuterPadding, this.props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n this._domainMargin = 0;\n } else if (this.props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate) * this._barWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (this.props.mode === 'plotly' && this._xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering bars at their maximum allowable width\n const bandwidth = totalWidth / (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate);\n const barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, bandwidth);\n let reqWidth = (this._xAxisLabels.length + (this._xAxisLabels.length - 1) * barGapRate) * barWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n let margin2 = Number.POSITIVE_INFINITY;\n if (!this.props.hideTickOverlap) {\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(this._xAxisLabels) + 20;\n reqWidth = (this._xAxisLabels.length - this._xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n this._domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n } else {\n const data = (this.props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n this._barWidth = getBarWidth(\n this.props.barWidth,\n this.props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, this._xAxisInnerPadding),\n );\n this._domainMargin = MIN_DOMAIN_MARGIN + this._barWidth / 2;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, data } = this.props;\n const numLines = Object.keys(this._lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n };\n\n private _getMinMaxOfYAxis = (\n dataset: IDataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n this.props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n if (point.useSecondaryYScale) {\n values.push(point.y as number);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n };\n\n private _initYAxisParams = () => {\n if (this._points[0].chartData.length > 0) {\n this._yAxisType = getTypeOfAxis(this._points[0].chartData[0].data, false) as YAxisType;\n } else {\n Object.keys(this._lineObject).forEach(lineLegend => {\n if (!this._lineObject[lineLegend][0].useSecondaryYScale) {\n this._yAxisType = getTypeOfAxis(this._lineObject[lineLegend][0].y, false) as YAxisType;\n }\n });\n }\n\n this._yAxisLabels = this._getOrderedYAxisLabels();\n };\n\n private _getYDomainMargins = (containerHeight: number): IMargins => {\n /**\n * Specifies the extra top margin to apply above the highest y-axis tick label.\n * Useful when stacked bars extend beyond the combined height of all y-axis labels (or categories).\n */\n let yAxisTickMarginTop = 0;\n\n /** Total height available to render the bars */\n const totalHeight = containerHeight - this.margins.bottom! - this.margins.top!;\n\n if (this._yAxisType === YAxisType.StringAxis) {\n /** Maximum height of the stacked bars, expressed in multiples of the height of a y-axis label (or category) */\n let maxBarHeightInLabels = 0;\n this._points.forEach(xPoint => {\n /** Height of the stacked bar, expressed in multiples of the height of a y-axis label (or category) */\n let barHeightInLabels = 0;\n xPoint.chartData.forEach(bar => {\n barHeightInLabels += this._yAxisLabels.indexOf(`${bar.data}`) + 1;\n });\n maxBarHeightInLabels = Math.max(maxBarHeightInLabels, barHeightInLabels);\n });\n /** Height of a y-axis label (or category) */\n const yAxisLabelHeight = maxBarHeightInLabels === 0 ? 0 : totalHeight / maxBarHeightInLabels;\n yAxisTickMarginTop += yAxisLabelHeight * (maxBarHeightInLabels - this._yAxisLabels.length);\n }\n\n return {\n ...this.margins,\n top: this.margins.top! + yAxisTickMarginTop,\n };\n };\n\n private _getOrderedXAxisLabels = () => {\n if (this._xAxisType !== XAxisTypes.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(), this.props.xAxisCategoryOrder);\n };\n\n private _getOrderedYAxisLabels = () => {\n if (this._yAxisType !== YAxisType.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(true), this.props.yAxisCategoryOrder);\n };\n\n private _mapCategoryToValues = (isYAxis = false) => {\n const categoryToValues: Record<string, number[]> = {};\n this._points.forEach(point => {\n point.chartData.forEach(bar => {\n const category = (isYAxis ? bar.data : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : bar.data;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n point.lineData?.forEach(linePoint => {\n if (isYAxis && linePoint.useSecondaryYScale) {\n return;\n }\n const category = (isYAxis ? linePoint.y : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : linePoint.y;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n };\n}\n"]}
@@ -21,7 +21,7 @@ export type { IGroupedVerticalBarChartProps, IGroupedVerticalBarChartStyleProps,
21
21
  export { GroupedVerticalBarChart } from './GroupedVerticalBarChart';
22
22
  export type { ICartesianChartProps, ICartesianChartStyleProps, ICartesianChartStyles, IChildProps, IModifiedCartesianChartProps, IYValueHover, } from './CartesianChart';
23
23
  export { CartesianChart } from './CartesianChart';
24
- export type { IAccessibilityProps, IBasestate, IChartDataPoint, IChartProps, ICustomizedCalloutData, ICustomizedCalloutDataPoint, IDataPoint, IGVBarChartSeriesPoint, IGVDataPoint, IGVForBarChart, IGVSingleDataPoint, IGroupedVerticalBarChartData, IHeatMapChartData, IHeatMapChartDataPoint, IHorizontalBarChartWithAxisDataPoint, IHorizontalDataPoint, ILegendDataItem, ILineChartDataPoint, ILineChartGap, ILineChartLineOptions, ILineChartPoints, ILineDataInVerticalBarChart, ILineDataInVerticalStackedBarChart, IMargins, IRefArrayData, ISankeyChartData, IVSChartDataPoint, IVerticalBarChartDataPoint, IVerticalStackedBarDataPoint, IVerticalStackedChartProps, SLink, SNode, IChart, IImageExportOptions, IScatterChartPoints, IScatterChartDataPoint, IBaseDataPoint, } from './types/index';
24
+ export type { IAccessibilityProps, IBasestate, IChartDataPoint, IChartProps, ICustomizedCalloutData, ICustomizedCalloutDataPoint, IDataPoint, IGVBarChartSeriesPoint, IGVDataPoint, IGVForBarChart, IGVSingleDataPoint, IGroupedVerticalBarChartData, IHeatMapChartData, IHeatMapChartDataPoint, IHorizontalBarChartWithAxisDataPoint, IHorizontalDataPoint, ILegendDataItem, ILineChartDataPoint, ILineChartGap, ILineChartLineOptions, ILineChartPoints, ILineDataInVerticalBarChart, ILineDataInVerticalStackedBarChart, IMargins, IRefArrayData, ISankeyChartData, IVSChartDataPoint, IVerticalBarChartDataPoint, IVerticalStackedBarDataPoint, IVerticalStackedChartProps, SLink, SNode, IChart, IImageExportOptions, IScatterChartPoints, IScatterChartDataPoint, IBaseDataPoint, AxisCategoryOrder, } from './types/index';
25
25
  export type { IChartHoverCardProps, IChartHoverCardStyleProps, IChartHoverCardStyles, } from './utilities/ChartHoverCard/index';
26
26
  export { ChartHoverCard, getChartHoverCardStyles } from './utilities/ChartHoverCard/index';
27
27
  export type { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":";;;AAMA,2DAAqF;AAA5E,wHAAA,kBAAkB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAEtD,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAWnB,qCAA2C;AAAlC,kGAAA,OAAO,OAAA;AAAE,gGAAA,KAAK,OAAA;AASvB,yCAAiD;AAAxC,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA;AAC3B,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAUjB,qDAAuG;AAA9F,uHAAA,oBAAoB,OAAA;AAAE,8HAAA,2BAA2B,OAAA;AAAE,kHAAA,eAAe,OAAA;AAE3E,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAMzB,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAMhC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAShC,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AA6CvB,0DAA2F;AAAlF,uGAAA,cAAc,OAAA;AAAE,gHAAA,uBAAuB,OAAA;AAEhD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAQrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AASpB,yCAAwE;AAA/D,6GAAA,gBAAgB,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,yGAAA,YAAY,OAAA;AAElD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAMnB,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,6CAAqF;AAA5E,wGAAA,cAAc,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACxD,mDAAsG;AAA7F,mHAAA,sBAAsB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAEtE,2CAA+E;AAAtE,wGAAA,UAAU,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAExD,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,6DAAqF;AAA5E,0HAAA,mBAAmB,OAAA;AAAE,8HAAA,uBAAuB,OAAA;AAGrD,qBAAmB","sourcesContent":["export type {\n ChartDataMode,\n IHorizontalBarChartProps,\n IHorizontalBarChartStyleProps,\n IHorizontalBarChartStyles,\n} from './HorizontalBarChart';\nexport { HorizontalBarChart, HorizontalBarChartVariant } from './HorizontalBarChart';\nexport type { IDonutChart, IDonutChartProps, IDonutChartStyleProps, IDonutChartStyles } from './DonutChart';\nexport { DonutChart } from './DonutChart';\nexport type {\n ILegend,\n ILegendOverflowData,\n ILegendStyleProps,\n ILegendSubComponentStyles,\n ILegendsProps,\n ILegendsStyles,\n IShapeProps,\n LegendShape,\n} from './Legends';\nexport { Legends, Shape } from './Legends';\nexport type {\n IColorFillBarData,\n IColorFillBarsProps,\n IEventsAnnotationProps,\n ILineChartProps,\n ILineChartStyleProps,\n ILineChartStyles,\n} from './LineChart';\nexport { LineChart, Textbox } from './LineChart';\nexport { ScatterChart } from './ScatterChart';\nexport type { IAreaChartProps, IAreaChartStyleProps, IAreaChartStyles } from './AreaChart';\nexport { AreaChart } from './AreaChart';\nexport type { IPieChart, IPieChartProps, IPieChartStyleProps, IPieChartStyles } from './PieChart';\nexport { PieChart } from './PieChart';\nexport type {\n IMultiStackedBarChartProps,\n IMultiStackedBarChartStyleProps,\n IMultiStackedBarChartStyles,\n IStackedBarChart,\n IStackedBarChartProps,\n IStackedBarChartStyleProps,\n IStackedBarChartStyles,\n} from './StackedBarChart';\nexport { MultiStackedBarChart, MultiStackedBarChartVariant, StackedBarChart } from './StackedBarChart';\nexport type { IVerticalBarChartProps, IVerticalBarChartStyleProps, IVerticalBarChartStyles } from './VerticalBarChart';\nexport { VerticalBarChart } from './VerticalBarChart';\nexport type {\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n} from './VerticalStackedBarChart';\nexport { VerticalStackedBarChart } from './VerticalStackedBarChart';\nexport type {\n IGroupedVerticalBarChartProps,\n IGroupedVerticalBarChartStyleProps,\n IGroupedVerticalBarChartStyles,\n} from './GroupedVerticalBarChart';\nexport { GroupedVerticalBarChart } from './GroupedVerticalBarChart';\nexport type {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n IChildProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n} from './CartesianChart';\nexport { CartesianChart } from './CartesianChart';\nexport type {\n IAccessibilityProps,\n IBasestate,\n IChartDataPoint,\n IChartProps,\n ICustomizedCalloutData,\n ICustomizedCalloutDataPoint,\n IDataPoint,\n IGVBarChartSeriesPoint,\n IGVDataPoint,\n IGVForBarChart,\n IGVSingleDataPoint,\n IGroupedVerticalBarChartData,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IHorizontalBarChartWithAxisDataPoint,\n IHorizontalDataPoint,\n ILegendDataItem,\n ILineChartDataPoint,\n ILineChartGap,\n ILineChartLineOptions,\n ILineChartPoints,\n ILineDataInVerticalBarChart,\n ILineDataInVerticalStackedBarChart,\n IMargins,\n IRefArrayData,\n ISankeyChartData,\n IVSChartDataPoint,\n IVerticalBarChartDataPoint,\n IVerticalStackedBarDataPoint,\n IVerticalStackedChartProps,\n SLink,\n SNode,\n IChart,\n IImageExportOptions,\n IScatterChartPoints,\n IScatterChartDataPoint,\n IBaseDataPoint,\n} from './types/index';\nexport type {\n IChartHoverCardProps,\n IChartHoverCardStyleProps,\n IChartHoverCardStyles,\n} from './utilities/ChartHoverCard/index';\nexport { ChartHoverCard, getChartHoverCardStyles } from './utilities/ChartHoverCard/index';\nexport type { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart';\nexport { HeatMapChart } from './HeatMapChart';\nexport type {\n ISankeyChartAccessibilityProps,\n ISankeyChartProps,\n ISankeyChartStrings,\n ISankeyChartStyleProps,\n ISankeyChartStyles,\n} from './SankeyChart';\nexport { SankeyChart } from './SankeyChart';\nexport type {\n ITreeChartDataPoint,\n ITreeDataStructure,\n ITreeProps,\n ITreeState,\n ITreeStyleProps,\n ITreeStyles,\n} from './TreeChart';\nexport { NodesComposition, TreeChart, TreeTraverse } from './TreeChart';\nexport type { ISparklineProps, ISparklineStyleProps, ISparklineStyles } from './Sparkline';\nexport { Sparkline } from './Sparkline';\nexport type { IChartTableProps, IChartTableStyleProps, IChartTableStyles } from './ChartTable';\nexport { ChartTable } from './ChartTable';\nexport type {\n IHorizontalBarChartWithAxisProps,\n IHorizontalBarChartWithAxisStyleProps,\n IHorizontalBarChartWithAxisStyles,\n} from './HorizontalBarChartWithAxis';\nexport { HorizontalBarChartWithAxis } from './HorizontalBarChartWithAxis';\nexport { DataVizPalette, getColorFromToken, getNextColor } from './utilities/colors';\nexport { DataVizGradientPalette, getGradientFromToken, getNextGradient } from './utilities/gradients';\nexport type { IGaugeChartProps, IGaugeChartSegment, IGaugeChartStyleProps, IGaugeChartStyles } from './GaugeChart';\nexport { GaugeChart, GaugeChartVariant, GaugeValueFormat } from './GaugeChart';\nexport type { DeclarativeChartProps, Schema, IDeclarativeChart } from './DeclarativeChart';\nexport { DeclarativeChart } from './DeclarativeChart';\nexport type { IResponsiveContainerProps, IResponsiveChildProps } from './ResponsiveContainer';\nexport { ResponsiveContainer, withResponsiveContainer } from './ResponsiveContainer';\nexport type { IScatterChartProps, IScatterChartStyleProps, IScatterChartStyles } from './ScatterChart';\n\nimport './version';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":";;;AAMA,2DAAqF;AAA5E,wHAAA,kBAAkB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAEtD,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAWnB,qCAA2C;AAAlC,kGAAA,OAAO,OAAA;AAAE,gGAAA,KAAK,OAAA;AASvB,yCAAiD;AAAxC,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA;AAC3B,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAUjB,qDAAuG;AAA9F,uHAAA,oBAAoB,OAAA;AAAE,8HAAA,2BAA2B,OAAA;AAAE,kHAAA,eAAe,OAAA;AAE3E,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAMzB,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAMhC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAShC,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AA8CvB,0DAA2F;AAAlF,uGAAA,cAAc,OAAA;AAAE,gHAAA,uBAAuB,OAAA;AAEhD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAQrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AASpB,yCAAwE;AAA/D,6GAAA,gBAAgB,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,yGAAA,YAAY,OAAA;AAElD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAMnB,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,6CAAqF;AAA5E,wGAAA,cAAc,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACxD,mDAAsG;AAA7F,mHAAA,sBAAsB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAEtE,2CAA+E;AAAtE,wGAAA,UAAU,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAExD,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,6DAAqF;AAA5E,0HAAA,mBAAmB,OAAA;AAAE,8HAAA,uBAAuB,OAAA;AAGrD,qBAAmB","sourcesContent":["export type {\n ChartDataMode,\n IHorizontalBarChartProps,\n IHorizontalBarChartStyleProps,\n IHorizontalBarChartStyles,\n} from './HorizontalBarChart';\nexport { HorizontalBarChart, HorizontalBarChartVariant } from './HorizontalBarChart';\nexport type { IDonutChart, IDonutChartProps, IDonutChartStyleProps, IDonutChartStyles } from './DonutChart';\nexport { DonutChart } from './DonutChart';\nexport type {\n ILegend,\n ILegendOverflowData,\n ILegendStyleProps,\n ILegendSubComponentStyles,\n ILegendsProps,\n ILegendsStyles,\n IShapeProps,\n LegendShape,\n} from './Legends';\nexport { Legends, Shape } from './Legends';\nexport type {\n IColorFillBarData,\n IColorFillBarsProps,\n IEventsAnnotationProps,\n ILineChartProps,\n ILineChartStyleProps,\n ILineChartStyles,\n} from './LineChart';\nexport { LineChart, Textbox } from './LineChart';\nexport { ScatterChart } from './ScatterChart';\nexport type { IAreaChartProps, IAreaChartStyleProps, IAreaChartStyles } from './AreaChart';\nexport { AreaChart } from './AreaChart';\nexport type { IPieChart, IPieChartProps, IPieChartStyleProps, IPieChartStyles } from './PieChart';\nexport { PieChart } from './PieChart';\nexport type {\n IMultiStackedBarChartProps,\n IMultiStackedBarChartStyleProps,\n IMultiStackedBarChartStyles,\n IStackedBarChart,\n IStackedBarChartProps,\n IStackedBarChartStyleProps,\n IStackedBarChartStyles,\n} from './StackedBarChart';\nexport { MultiStackedBarChart, MultiStackedBarChartVariant, StackedBarChart } from './StackedBarChart';\nexport type { IVerticalBarChartProps, IVerticalBarChartStyleProps, IVerticalBarChartStyles } from './VerticalBarChart';\nexport { VerticalBarChart } from './VerticalBarChart';\nexport type {\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n} from './VerticalStackedBarChart';\nexport { VerticalStackedBarChart } from './VerticalStackedBarChart';\nexport type {\n IGroupedVerticalBarChartProps,\n IGroupedVerticalBarChartStyleProps,\n IGroupedVerticalBarChartStyles,\n} from './GroupedVerticalBarChart';\nexport { GroupedVerticalBarChart } from './GroupedVerticalBarChart';\nexport type {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n IChildProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n} from './CartesianChart';\nexport { CartesianChart } from './CartesianChart';\nexport type {\n IAccessibilityProps,\n IBasestate,\n IChartDataPoint,\n IChartProps,\n ICustomizedCalloutData,\n ICustomizedCalloutDataPoint,\n IDataPoint,\n IGVBarChartSeriesPoint,\n IGVDataPoint,\n IGVForBarChart,\n IGVSingleDataPoint,\n IGroupedVerticalBarChartData,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IHorizontalBarChartWithAxisDataPoint,\n IHorizontalDataPoint,\n ILegendDataItem,\n ILineChartDataPoint,\n ILineChartGap,\n ILineChartLineOptions,\n ILineChartPoints,\n ILineDataInVerticalBarChart,\n ILineDataInVerticalStackedBarChart,\n IMargins,\n IRefArrayData,\n ISankeyChartData,\n IVSChartDataPoint,\n IVerticalBarChartDataPoint,\n IVerticalStackedBarDataPoint,\n IVerticalStackedChartProps,\n SLink,\n SNode,\n IChart,\n IImageExportOptions,\n IScatterChartPoints,\n IScatterChartDataPoint,\n IBaseDataPoint,\n AxisCategoryOrder,\n} from './types/index';\nexport type {\n IChartHoverCardProps,\n IChartHoverCardStyleProps,\n IChartHoverCardStyles,\n} from './utilities/ChartHoverCard/index';\nexport { ChartHoverCard, getChartHoverCardStyles } from './utilities/ChartHoverCard/index';\nexport type { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart';\nexport { HeatMapChart } from './HeatMapChart';\nexport type {\n ISankeyChartAccessibilityProps,\n ISankeyChartProps,\n ISankeyChartStrings,\n ISankeyChartStyleProps,\n ISankeyChartStyles,\n} from './SankeyChart';\nexport { SankeyChart } from './SankeyChart';\nexport type {\n ITreeChartDataPoint,\n ITreeDataStructure,\n ITreeProps,\n ITreeState,\n ITreeStyleProps,\n ITreeStyles,\n} from './TreeChart';\nexport { NodesComposition, TreeChart, TreeTraverse } from './TreeChart';\nexport type { ISparklineProps, ISparklineStyleProps, ISparklineStyles } from './Sparkline';\nexport { Sparkline } from './Sparkline';\nexport type { IChartTableProps, IChartTableStyleProps, IChartTableStyles } from './ChartTable';\nexport { ChartTable } from './ChartTable';\nexport type {\n IHorizontalBarChartWithAxisProps,\n IHorizontalBarChartWithAxisStyleProps,\n IHorizontalBarChartWithAxisStyles,\n} from './HorizontalBarChartWithAxis';\nexport { HorizontalBarChartWithAxis } from './HorizontalBarChartWithAxis';\nexport { DataVizPalette, getColorFromToken, getNextColor } from './utilities/colors';\nexport { DataVizGradientPalette, getGradientFromToken, getNextGradient } from './utilities/gradients';\nexport type { IGaugeChartProps, IGaugeChartSegment, IGaugeChartStyleProps, IGaugeChartStyles } from './GaugeChart';\nexport { GaugeChart, GaugeChartVariant, GaugeValueFormat } from './GaugeChart';\nexport type { DeclarativeChartProps, Schema, IDeclarativeChart } from './DeclarativeChart';\nexport { DeclarativeChart } from './DeclarativeChart';\nexport type { IResponsiveContainerProps, IResponsiveChildProps } from './ResponsiveContainer';\nexport { ResponsiveContainer, withResponsiveContainer } from './ResponsiveContainer';\nexport type { IScatterChartProps, IScatterChartStyleProps, IScatterChartStyles } from './ScatterChart';\n\nimport './version';\n"]}
@@ -824,4 +824,22 @@ export interface IScatterChartPoints {
824
824
  */
825
825
  useSecondaryYScale?: boolean;
826
826
  }
827
+ /**
828
+ * Specifies the ordering options for axis categories in Cartesian charts.
829
+ *
830
+ * - `'default'`: Uses the original order before custom ordering was supported.
831
+ * In some charts, this behaves the same as `'data'`.
832
+ * - `'data'`: Preserves the order of categories as provided in the input data.
833
+ * - `string[]`: Explicitly defines the custom order of categories as an array of category names.
834
+ * - `'category ascending' | 'category descending'`: Orders categories alphanumerically.
835
+ * - `'total ascending' | 'total descending'`: Orders categories by the total of their associated values.
836
+ * - `'min ascending' | 'min descending'`: Orders by the minimum value within each category.
837
+ * - `'max ascending' | 'max descending'`: Orders by the maximum value within each category.
838
+ * - `'sum ascending' | 'sum descending'`: Orders by the sum of values for each category (same as 'total').
839
+ * - `'mean ascending' | 'mean descending'`: Orders by the average of values in each category.
840
+ * - `'median ascending' | 'median descending'`: Orders by the median value of each category.
841
+ *
842
+ * {@docCategory CartesianChart}
843
+ */
844
+ export type AxisCategoryOrder = 'default' | 'data' | string[] | 'category ascending' | 'category descending' | 'total ascending' | 'total descending' | 'min ascending' | 'min descending' | 'max ascending' | 'max descending' | 'sum ascending' | 'sum descending' | 'mean ascending' | 'mean descending' | 'median ascending' | 'median descending';
827
845
  export {};