@fluentui/react-charting 5.25.5 → 5.25.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +87 -1
- package/CHANGELOG.md +28 -2
- package/bundle-size/PolarChart.fixture.js +7 -0
- package/dist/react-charting.d.ts +388 -1
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +85 -1
- package/lib/PolarChart.d.ts +1 -0
- package/lib/PolarChart.js +2 -0
- package/lib/PolarChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.base.d.ts +0 -1
- package/lib/components/AreaChart/AreaChart.base.js +2 -31
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.base.js +12 -4
- package/lib/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.styles.js +3 -0
- package/lib/components/ChartTable/ChartTable.styles.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.types.d.ts +11 -0
- package/lib/components/ChartTable/ChartTable.types.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.base.d.ts +1 -1
- package/lib/components/CommonComponents/CartesianChart.base.js +82 -42
- package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.styles.js +31 -27
- package/lib/components/CommonComponents/CartesianChart.styles.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.d.ts +16 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +24 -28
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +202 -217
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.base.d.ts +1 -0
- package/lib/components/DonutChart/DonutChart.base.js +16 -4
- package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.styles.js +3 -1
- package/lib/components/DonutChart/DonutChart.styles.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.types.d.ts +13 -0
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.base.js +14 -8
- package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.styles.js +3 -0
- package/lib/components/FunnelChart/FunnelChart.styles.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.types.d.ts +13 -0
- package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.base.js +2 -2
- package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.styles.js +16 -22
- package/lib/components/GaugeChart/GaugeChart.styles.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.types.d.ts +9 -0
- package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +2 -18
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.d.ts +0 -1
- package/lib/components/LineChart/LineChart.base.js +1 -25
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/PolarChart/PolarChart.base.d.ts +3 -0
- package/lib/components/PolarChart/PolarChart.base.js +426 -0
- package/lib/components/PolarChart/PolarChart.base.js.map +1 -0
- package/lib/components/PolarChart/PolarChart.d.ts +7 -0
- package/lib/components/PolarChart/PolarChart.js +9 -0
- package/lib/components/PolarChart/PolarChart.js.map +1 -0
- package/lib/components/PolarChart/PolarChart.styles.d.ts +2 -0
- package/lib/components/PolarChart/PolarChart.styles.js +39 -0
- package/lib/components/PolarChart/PolarChart.styles.js.map +1 -0
- package/lib/components/PolarChart/PolarChart.types.d.ts +185 -0
- package/lib/components/PolarChart/PolarChart.types.js +2 -0
- package/lib/components/PolarChart/PolarChart.types.js.map +1 -0
- package/lib/components/PolarChart/PolarChart.utils.d.ts +43 -0
- package/lib/components/PolarChart/PolarChart.utils.js +180 -0
- package/lib/components/PolarChart/PolarChart.utils.js.map +1 -0
- package/lib/components/PolarChart/index.d.ts +2 -0
- package/lib/components/PolarChart/index.js +3 -0
- package/lib/components/PolarChart/index.js.map +1 -0
- package/lib/components/SankeyChart/SankeyChart.base.js +9 -2
- package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.styles.js +3 -0
- package/lib/components/SankeyChart/SankeyChart.styles.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.types.d.ts +18 -0
- package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.base.js +1 -28
- package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +1 -73
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -26
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +88 -0
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib/utilities/ChartTitle.d.ts +55 -0
- package/lib/utilities/ChartTitle.js +45 -0
- package/lib/utilities/ChartTitle.js.map +1 -0
- package/lib/utilities/Common.styles.d.ts +51 -0
- package/lib/utilities/Common.styles.js +70 -1
- package/lib/utilities/Common.styles.js.map +1 -1
- package/lib/utilities/image-export-utils.js +4 -4
- package/lib/utilities/image-export-utils.js.map +1 -1
- package/lib/utilities/index.d.ts +1 -0
- package/lib/utilities/index.js +1 -0
- package/lib/utilities/index.js.map +1 -1
- package/lib/utilities/utilities.d.ts +28 -6
- package/lib/utilities/utilities.js +210 -104
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-amd/PolarChart.d.ts +1 -0
- package/lib-amd/PolarChart.js +6 -0
- package/lib-amd/PolarChart.js.map +1 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.d.ts +0 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js +1 -29
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/ChartTable/ChartTable.base.js +12 -5
- package/lib-amd/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib-amd/components/ChartTable/ChartTable.styles.js +3 -1
- package/lib-amd/components/ChartTable/ChartTable.styles.js.map +1 -1
- package/lib-amd/components/ChartTable/ChartTable.types.d.ts +11 -0
- package/lib-amd/components/ChartTable/ChartTable.types.js.map +1 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.base.d.ts +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.base.js +81 -41
- package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.styles.js +30 -26
- package/lib-amd/components/CommonComponents/CartesianChart.styles.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +16 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +22 -28
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -219
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.d.ts +1 -0
- package/lib-amd/components/DonutChart/DonutChart.base.js +15 -3
- package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.styles.js +2 -0
- package/lib-amd/components/DonutChart/DonutChart.styles.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.types.d.ts +13 -0
- package/lib-amd/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-amd/components/FunnelChart/FunnelChart.base.js +14 -9
- package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib-amd/components/FunnelChart/FunnelChart.styles.js +3 -1
- package/lib-amd/components/FunnelChart/FunnelChart.styles.js.map +1 -1
- package/lib-amd/components/FunnelChart/FunnelChart.types.d.ts +13 -0
- package/lib-amd/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.base.js +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.styles.js +16 -23
- package/lib-amd/components/GaugeChart/GaugeChart.styles.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.types.d.ts +9 -0
- package/lib-amd/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +0 -16
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.d.ts +0 -1
- package/lib-amd/components/LineChart/LineChart.base.js +0 -24
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/PolarChart/PolarChart.base.d.ts +3 -0
- package/lib-amd/components/PolarChart/PolarChart.base.js +421 -0
- package/lib-amd/components/PolarChart/PolarChart.base.js.map +1 -0
- package/lib-amd/components/PolarChart/PolarChart.d.ts +7 -0
- package/lib-amd/components/PolarChart/PolarChart.js +11 -0
- package/lib-amd/components/PolarChart/PolarChart.js.map +1 -0
- package/lib-amd/components/PolarChart/PolarChart.styles.d.ts +2 -0
- package/lib-amd/components/PolarChart/PolarChart.styles.js +43 -0
- package/lib-amd/components/PolarChart/PolarChart.styles.js.map +1 -0
- package/lib-amd/components/PolarChart/PolarChart.types.d.ts +185 -0
- package/lib-amd/components/PolarChart/PolarChart.types.js +5 -0
- package/lib-amd/components/PolarChart/PolarChart.types.js.map +1 -0
- package/lib-amd/components/PolarChart/PolarChart.utils.d.ts +43 -0
- package/lib-amd/components/PolarChart/PolarChart.utils.js +183 -0
- package/lib-amd/components/PolarChart/PolarChart.utils.js.map +1 -0
- package/lib-amd/components/PolarChart/index.d.ts +2 -0
- package/lib-amd/components/PolarChart/index.js +7 -0
- package/lib-amd/components/PolarChart/index.js.map +1 -0
- package/lib-amd/components/SankeyChart/SankeyChart.base.js +9 -3
- package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.styles.js +3 -1
- package/lib-amd/components/SankeyChart/SankeyChart.styles.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.types.d.ts +18 -0
- package/lib-amd/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.base.js +0 -27
- package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +1 -72
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -25
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/index.d.ts +2 -0
- package/lib-amd/index.js +3 -2
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +88 -0
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-amd/utilities/ChartTitle.d.ts +55 -0
- package/lib-amd/utilities/ChartTitle.js +46 -0
- package/lib-amd/utilities/ChartTitle.js.map +1 -0
- package/lib-amd/utilities/Common.styles.d.ts +51 -0
- package/lib-amd/utilities/Common.styles.js +74 -2
- package/lib-amd/utilities/Common.styles.js.map +1 -1
- package/lib-amd/utilities/image-export-utils.js +3 -3
- package/lib-amd/utilities/image-export-utils.js.map +1 -1
- package/lib-amd/utilities/index.d.ts +1 -0
- package/lib-amd/utilities/index.js +2 -1
- package/lib-amd/utilities/index.js.map +1 -1
- package/lib-amd/utilities/utilities.d.ts +28 -6
- package/lib-amd/utilities/utilities.js +217 -107
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-commonjs/PolarChart.d.ts +1 -0
- package/lib-commonjs/PolarChart.js +5 -0
- package/lib-commonjs/PolarChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +0 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +0 -29
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.base.js +12 -4
- package/lib-commonjs/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.styles.js +3 -0
- package/lib-commonjs/components/ChartTable/ChartTable.styles.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.types.d.ts +11 -0
- package/lib-commonjs/components/ChartTable/ChartTable.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.d.ts +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +81 -41
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js +30 -26
- package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +16 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +23 -27
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -219
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.d.ts +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.base.js +15 -3
- package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.styles.js +2 -0
- package/lib-commonjs/components/DonutChart/DonutChart.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.types.d.ts +13 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +14 -8
- package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js +3 -0
- package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.types.d.ts +13 -0
- package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js +16 -22
- package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.d.ts +9 -0
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +0 -16
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.d.ts +0 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +0 -24
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/PolarChart/PolarChart.base.d.ts +3 -0
- package/lib-commonjs/components/PolarChart/PolarChart.base.js +429 -0
- package/lib-commonjs/components/PolarChart/PolarChart.base.js.map +1 -0
- package/lib-commonjs/components/PolarChart/PolarChart.d.ts +7 -0
- package/lib-commonjs/components/PolarChart/PolarChart.js +12 -0
- package/lib-commonjs/components/PolarChart/PolarChart.js.map +1 -0
- package/lib-commonjs/components/PolarChart/PolarChart.styles.d.ts +2 -0
- package/lib-commonjs/components/PolarChart/PolarChart.styles.js +43 -0
- package/lib-commonjs/components/PolarChart/PolarChart.styles.js.map +1 -0
- package/lib-commonjs/components/PolarChart/PolarChart.types.d.ts +185 -0
- package/lib-commonjs/components/PolarChart/PolarChart.types.js +3 -0
- package/lib-commonjs/components/PolarChart/PolarChart.types.js.map +1 -0
- package/lib-commonjs/components/PolarChart/PolarChart.utils.d.ts +43 -0
- package/lib-commonjs/components/PolarChart/PolarChart.utils.js +188 -0
- package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -0
- package/lib-commonjs/components/PolarChart/index.d.ts +2 -0
- package/lib-commonjs/components/PolarChart/index.js +6 -0
- package/lib-commonjs/components/PolarChart/index.js.map +1 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +9 -2
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js +3 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.d.ts +18 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +0 -27
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +0 -72
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +0 -25
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/index.d.ts +2 -0
- package/lib-commonjs/index.js +3 -1
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +88 -0
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/utilities/ChartTitle.d.ts +55 -0
- package/lib-commonjs/utilities/ChartTitle.js +49 -0
- package/lib-commonjs/utilities/ChartTitle.js.map +1 -0
- package/lib-commonjs/utilities/Common.styles.d.ts +51 -0
- package/lib-commonjs/utilities/Common.styles.js +74 -2
- package/lib-commonjs/utilities/Common.styles.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.js +3 -3
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
- package/lib-commonjs/utilities/index.d.ts +1 -0
- package/lib-commonjs/utilities/index.js +1 -0
- package/lib-commonjs/utilities/index.js.map +1 -1
- package/lib-commonjs/utilities/utilities.d.ts +28 -6
- package/lib-commonjs/utilities/utilities.js +217 -107
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +4 -12
- package/project.json +0 -1
- package/src/components/ChartTable/ChartTable.types.ts +13 -0
- package/src/components/CommonComponents/Annotations/ChartAnnotationLayer.types.ts +5 -0
- package/src/components/CommonComponents/CartesianChart.types.ts +17 -1
- package/src/components/DonutChart/DonutChart.types.ts +16 -0
- package/src/components/FunnelChart/FunnelChart.types.ts +16 -0
- package/src/components/GaugeChart/GaugeChart.types.ts +11 -0
- package/src/components/PolarChart/PolarChart.types.ts +232 -0
- package/src/components/SankeyChart/SankeyChart.types.ts +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScatterChart.base.js","sourceRoot":"../src/","sources":["components/ScatterChart/ScatterChart.base.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAA6B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,WAAW,EACX,4BAA4B,EAC5B,oDAAoD,EACpD,4CAA4C,EAC5C,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,cAAc,GAMf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAMtF,IAAM,aAAa,GAAG,kBAAkB,EAAgD,CAAC;AAEzF,8FAA8F;AAC9F;;;GAGG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAgD,KAAK,CAAC,UAAU,CAG3F,UAAC,KAAK,EAAE,YAAY;;IACpB,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,QAAQ,CAAC,EAAf,CAAe,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAM,SAAS,GAAW,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,EAAjB,CAAiB,EAAE,EAAE,CAAC,CAAC;IACrE,IAAM,aAAa,GAAW,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,cAAc,CAAC,EAArB,CAAqB,EAAE,EAAE,CAAC,CAAC;IAC7E,IAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,wBAAwB,CAAC,EAA/B,CAA+B,EAAE,EAAE,CAAC,CAAC;IACpF,IAAM,wBAAwB,GAAG,IAAI,CAAC;IACtC,IAAM,aAAa,GAAW,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,KAAK,CAAC,qBAAqB,CAAC,EAA5B,CAA4B,EAAE,EAAE,CAAC,CAAC;IACpF,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACpE,CAAC;IACF,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAlC,CAAkC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxF,8DAA8D;IAC9D,IAAM,WAAW,GAAQ,KAAK,CAAC,MAAM,CAAM,EAAE,CAAC,CAAC;IAC/C,8DAA8D;IAC9D,IAAM,WAAW,GAAQ,KAAK,CAAC,MAAM,CAAM,EAAE,CAAC,CAAC;IAC/C,IAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC3D,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,EAAE,EAAF,CAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAkB,IAAI,CAAC,CAAC;IAEpD,IAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAe,EAAE,CAAC,CAAC;IACpD,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAM,8BAA8B,GAAwB,EAAE,CAAC;IAC/D,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAS,CAAC,CAAC,CAAC;IAC5C,IAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAS,IAAI,CAAC,CAAC;IACrD,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAElD,IAAA,KAAgC,KAAK,CAAC,QAAQ,CAAkB,EAAE,CAAC,EAAlE,WAAW,QAAA,EAAE,cAAc,QAAuC,CAAC;IACpE,IAAA,KAAkC,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAC7D,IAAA,KAAgC,KAAK,CAAC,QAAQ,CAAiB,EAAE,CAAC,EAAjE,WAAW,QAAA,EAAE,cAAc,QAAsC,CAAC;IACzE,8DAA8D;IACxD,IAAA,KAAkD,KAAK,CAAC,QAAQ,CAAQ,EAAE,CAAC,EAA1E,oBAAoB,QAAA,EAAE,uBAAuB,QAA6B,CAAC;IAC5E,IAAA,KAA0C,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,EAAvE,gBAAgB,QAAA,EAAE,mBAAmB,QAAkC,CAAC;IACzE,IAAA,KAAgC,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,EAAzD,WAAW,QAAA,EAAE,cAAc,QAA8B,CAAC;IAC3D,IAAA,KAA4C,KAAK,CAAC,QAAQ,EAA0B,EAAnF,iBAAiB,QAAA,EAAE,oBAAoB,QAA4C,CAAC;IACrF,IAAA,KAAoD,KAAK,CAAC,QAAQ,EAA0B,EAA3F,qBAAqB,QAAA,EAAE,wBAAwB,QAA4C,CAAC;IAC7F,IAAA,KAAwC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA5D,gBAAgB,QAAA,EAAE,iBAAiB,QAAyB,CAAC;IAC9D,IAAA,KAAwC,KAAK,CAAC,QAAQ,CAAW,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,KAAI,EAAE,CAAC,EAAzG,eAAe,QAAA,EAAE,kBAAkB,QAAsE,CAAC;IAC3G,IAAA,KAAgC,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,EAAzD,WAAW,QAAA,EAAE,cAAc,QAA8B,CAAC;IACjE,IAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAuB,SAAS,CAAC,CAAC;IAC7E,IAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExC,IAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAO,EAAE;QAC9C,KAAK,EAAE,KAAK,CAAC,KAAM;KACpB,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CAAC;;QACd,IACE,sBAAsB,CAAC,OAAO;YAC9B,CAAC,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,CAAC,EACnF,CAAC;YACD,kBAAkB,CAAC,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,KAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,sBAAsB,CAAC,OAAO,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,CAAC;IACtE,CAAC,EAAE,CAAC,MAAA,KAAK,CAAC,WAAW,0CAAE,eAAe,CAAC,CAAC,CAAC;IAEzC,KAAK,CAAC,mBAAmB,CACvB,KAAK,CAAC,YAAY,EAClB;;QAAM,OAAA,CAAC;YACL,cAAc,EAAE,MAAA,MAAA,iBAAiB,CAAC,OAAO,0CAAE,cAAc,mCAAI,IAAI;YACjE,OAAO,EAAE,UAAC,IAA0B;;gBAClC,OAAO,mBAAmB,CACxB,CAAC,EAAE,SAAS,EAAE,MAAA,iBAAiB,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC,EAC1D,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAA,UAAU,CAAC,OAAO,0CAAE,KAAK,EACxD,MAAM,EAAE,EACR,IAAI,CACL,CAAC;YACJ,CAAC;SACF,CAAC,CAAA;KAAA,EACF,CAAC,KAAK,CAAC,UAAU,CAAC,CACnB,CAAC;IAEF,IAAM,UAAU,GACd,KAAK,CAAC,IAAI,CAAC,gBAAiB;QAC5B,KAAK,CAAC,IAAI,CAAC,gBAAiB,CAAC,MAAM,GAAG,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;QACpC,KAAK,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC7C,CAAC,CAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAgB;QAChF,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAE5B,yCAAyC;IACzC,IAAM,UAAU,GACd,KAAK,CAAC,IAAI,CAAC,gBAAgB;QAC3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;QACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC5C,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;YAC5D,CAAC,CAAC,SAAS,CAAC,UAAU;YACtB,CAAC,CAAC,SAAS,CAAC,WAAW;QACzB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;IAE5B,IAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmC,EAAE,CAAC,CAAC;IACrE,KAAK,CAAC,SAAS,CAAC;QACd;;WAEG;QAEH,IACE,OAAO,CAAC,OAAO,KAAK,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACvF,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAC9B,CAAC;YACD,SAAS,CAAC,OAAO,GAAG,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAErD,SAAS,sCAAsC,CAC7C,gBAAwC;QAExC,OAAO,gBAAgB;YACrB,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,IAAyB,EAAE,KAAa;gBAC5D,IAAI,KAAa,CAAC;gBAClB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBACtC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,6BACK,IAAI,KACP,KAAK,EAAE,CAAC,CAAC,EACT,KAAK,OAAA,IACL;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,QAAkB;QACvD,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,gBAAgB;QACvB,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC5B,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,cAAc,CAAC,IAAiC;QAC/C,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;QAC9B,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAC7F,IAAM,iBAAiB,GAAgD,EAAE,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,UAAC,KAAgC;YAC5C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACvC,CAAC;gBACD,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAM,eAAe,GAAc,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAqB;gBAApB,WAAW,QAAA,EAAE,MAAM,QAAA;YAC5F,IAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtC,qDAAqD;YACrD,IAAM,MAAM,cACV,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,mBAAmB,CAAC,KAAM,EACjC,gBAAgB,EAAE;oBAChB,eAAe,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC,EACD,WAAW,EAAE;oBACX,sBAAsB,EAAE,CAAC;oBACzB,eAAe,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC,IACE,CAAC,mBAAmB,CAAC,WAAW,IAAI;gBACrC,KAAK,EAAE,mBAAmB,CAAC,WAAW;aACvC,CAAC,CACH,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,oBAAC,OAAO,aACN,GAAG,EAAE,UAAU,EACf,OAAO,oBAAM,eAAe,SAC5B,gBAAgB,EAAE,KAAK,CAAC,uBAAuB,EAC/C,aAAa,EAAE,KAAK,CAAC,oBAAoB,EACzC,yBAAyB,EAAE,KAAK,CAAC,mCAAmC,EACpE,YAAY,EAAE,KAAK,CAAC,mBAAmB,IACnC,CAAC,0BAA0B,IAAI,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC,IAChF,QAAQ,EAAE,wBAAwB,IAC9B,KAAK,CAAC,WAAW,EACrB,CACH,CAAC;IACJ,CAAC;IAED,SAAS,sBAAsB;QAC7B,IAAM,qCAAqC,GACzC,UAAU,KAAK,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC;QAChF,IAAI,CAAC,qCAAqC,EAAE,CAAC;YAC3C,0FAA0F;YAC1F,IAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,KAAgB,UAAU,EAAV,KAAA,KAAK,CAAC,IAAI,EAAV,cAAU,EAAV,IAAU,EAAE,CAAC;wBAAxB,IAAM,CAAC,SAAA;wBACV,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,kBAAkB,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,oBAAoB;QAC3B,IAAM,gBAAgB,GAA6B,EAAE,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,KAAK;YAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;oBAClB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC5B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC7B,CAAC;wBACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC5B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,SAAS,wBAAwB,CAC/B,eAAyB,EACzB,KAA0C,EAC1C,aAAuB;;QAEvB,IAAI,MAAA,KAAK,CAAC,WAAW,0CAAE,wBAAwB,EAAE,CAAC;YAChD,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAA,KAAK,CAAC,WAAW,0CAAE,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,SAAiB,EAAE,OAAe;QACzB,IAAA,KAAK,GAAK,KAAK,MAAV,CAAW;QACxB,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO,KAAM,CAAC,cAAc,CAAC,cAAc,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAC;IAEF,IAAM,iCAAiC,GAAG,KAAK,CAAC,WAAW,CACzD;IACE,8DAA8D;IAC9D,MAAW,EACX,aAAuB,EACvB,KAAa,EACb,UAAsB,EACtB,KAAc,EACd,SAAqB,EACrB,SAAiB,EACjB,UAAoD;QAEpD,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,4CAA4C,CACjD,MAAM,EACN,aAAa,EACb,KAAK,EACL,KAAK,EACL,KAAK,CAAC,UAAU,EAChB,IAAI,CACL,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,oDAAoD,CACzD,MAAM,EACN,aAAa,EACb,KAAK,EACL,KAAK,EACL,UAAqB,EACrB,UAAU,CACX,CAAC;QACJ,CAAC;QACD,mBAAmB;QACnB,OAAO,wBAAwB,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC,EACD,CAAC,KAAK,CAAC,UAAU,CAAC,CACnB,CAAC;IAEF,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,UACE,QAAgB,EAChB,CAAyB,EACzB,gBAAoC,EACpC,QAAgB,EAChB,6BAAmD;QAEnD,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC;QACpC,IAAM,aAAa,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,IAAM,KAAK,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnD,oFAAoF;QACpF,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,WAAI,aAAa,CAAE,CAAC;iBAC1B,IAAI,CAAC,WAAW,EAAE,sBAAM,OAAA,oBAAa,CAAA,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,IAAG,WAAW,CAAC,OAAO,SAAM,CAAA,EAAA,CAAC;iBAC1F,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACpC,SAAS,CAAC,OAAO,CAAC,UAAC,GAAkB;gBACnC,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC3B,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACxB,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;oBACzF,cAAc,CAAC,WAAI,QAAQ,CAAE,CAAC,CAAC;oBAC/B,cAAc,CAAC,KAAM,CAAC,MAAM,CAAC,CAAC;oBAC9B,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAClG,CAAC;IAEF,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,UACE,CAAyB,EACzB,CAAS,EACT,UAAkB,EAClB,gBAAoC,EACpC,QAAgB,EAChB,6BAA8D,EAC9D,UAAwC;;QAExC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,CAAC;QACtB,IAAM,aAAa,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,IAAM,KAAK,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAuC,CAAC;QACzF,oFAAoF;QACpF,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,WAAI,aAAa,CAAE,CAAC;iBAC1B,IAAI,CACH,WAAW,EACX,0BAAM,OAAA,oBAAa,CAAA,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,IAAG,WAAW,CAAC,OAAO,eAAK,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,MAAG,CAAA,EAAA,CAClG;iBACA,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;iBAChC,IAAI,CAAC,IAAI,EAAE,UAAG,UAAU,IAAG,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC;YAE1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1C,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACpC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;gBACzF,cAAc,CAAC,WAAI,QAAQ,CAAE,CAAC,CAAC;gBAC/B,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,oBAAoB,CAAC,KAAM,CAAC,CAAC;gBAC7B,wBAAwB,CAAC,KAAM,CAAC,CAAC;gBACjC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CACvF,CAAC;IAEF,IAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC;QACxC,QAAQ,CAAC,WAAI,aAAa,CAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,IAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/C,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,gBAAgB,EAAE,CAAC;YACrB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE5E,IAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9C,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAEpC;4EACwE;IACxE,IAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7C,OAAO,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B;;;;gFAI4E;IAE5E,IAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,UAAC,MAAc;QACb,OAAO,qBAAqB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,qBAAqB,CAAC,CACxB,CAAC;IAEF,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,WAAmB,EAAE,UAAkB;;QACtC,IAAM,MAAM,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,WAAW,CAAC,CAAC;QAC9C,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,IAAM,aAAa,GACjB,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrG,IAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,aAAa,CAAC;QACvD,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC;QACjD,OAAO,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS,KAAI,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,CAAC;IACzF,CAAC,EACD,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CACvC,CAAC;IAEF,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,UAAC,QAAoB,EAAE,eAAuB;;QAC5C,IAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,GAAG,oBAAoB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,GAAG,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YACzC,WAAW,CAAC,OAAO,GAAG,CAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,SAAS,EAAE,IAAG,CAAC,CAAC;QAC7D,CAAC;QAED,IAAM,aAAa,GACjB,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,KAA0B;YAChD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAgC,EAAE,UAAC,IAA4B;gBAChF,OAAO,IAAI,CAAC,UAAoB,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,mCAAI,CAAC,CAAC;QACV,IAAM,aAAa,GACjB,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,KAA0B;YAChD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAgC,EAAE,UAAC,IAA4B;gBAChF,OAAO,IAAI,CAAC,UAAoB,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,mCAAI,CAAC,CAAC;QACV,IAAM,cAAc,GAAG,UAAU,KAAK,UAAU,CAAC,UAAU,IAAI,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC;QACnG,IAAM,cAAc,GAAG,cAAc;YACnC,CAAC,CAAC,4BAA4B,CAAC;gBAC3B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,MAAM,EAAE,WAAW,CAAC,OAAO;gBAC3B,aAAa,EAAE,WAAW,CAAC,OAAO;gBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC;gCAEG,CAAC;YACR,IAAM,eAAe,GAAiB,EAAE,CAAC;YAEzC,IAAM,SAAS,GAAW,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,MAAM,CAAC;YACvD,IAAM,WAAW,GAAW,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,KAAM,CAAC;YACzD,IAAM,iBAAiB,GAAG,eAAe,GAAG,CAAC,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oCAEtE,CAAC;gBACF,IAAA,MAA4D,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAvF,CAAC,QAAA,EAAE,CAAC,QAAA,EAAE,gBAAgB,uBAAA,EAAE,6BAA6B,oCAAkC,CAAC;gBAChG,IAAM,MAAM,GAAG,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,CAAC;gBACxC,oCAAoC;gBACpC,IAAM,MAAM,GACV,UAAU,KAAK,SAAS,CAAC,UAAU;oBACjC,CAAC,CAAC,CAAA,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,IAAG,CAAC,CAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,SAAS,EAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvG,CAAC,CAAC,MAAA,WAAW,CAAC,OAAO,4DAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;;gBAEnC,CAAC;gBAED,IAAM,QAAQ,GAAG,UAAG,SAAS,cAAI,CAAC,cAAI,CAAC,CAAE,CAAC;gBAC1C,IAAM,QAAQ,GAAG,UAAG,SAAS,cAAI,CAAC,cAAI,CAAC,CAAE,CAAC;gBAC1C,IAAM,eAAe,GAAG,CAAC,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,CAA4B,CAAA,CAAC,UAAU,CAAC;gBAC7F,IAAM,QAAQ,GAAG,CAAC,CAAC;gBACnB,IAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,IAAI,YAAY,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpD,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,cAAc,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;wBAC1C,YAAY,GAAG,CAAC,eAAe,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC;oBACpE,CAAC;yBAAM,IAAI,CAAC,cAAc,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;wBAC9D,YAAY;4BACV,QAAQ;gCACR,CAAC,CAAC,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oBAClG,CAAC;gBACH,CAAC;gBAED,IAAM,gBAAgB,GAAY,kBAAkB,CAAC,SAAS,CAAC,IAAI,oBAAoB,EAAE,IAAI,gBAAgB,CAAC;gBAE9G,IAAM,kBAAkB,GAAG,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,iBAAiB,KAAI,WAAW,KAAK,QAAQ,CAAC;gBAC/F,IAAM,IAAI,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,eAAe,CAAC,IAAI,CAClB;wBACE,yCACE,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,QAAQ,EACb,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAC5B,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAChC,EAAE,EAAE,MAAM,uBACS,gBAAgB,EACnC,WAAW,EAAE,UAAC,KAAmC;gCAC/C,OAAA,YAAY,CACV,CAAC,EACD,CAAC,EACD,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,KAAK,CACN;4BARD,CAQC,EAEH,WAAW,EAAE,UAAC,KAAmC;gCAC/C,OAAA,YAAY,CACV,CAAC,EACD,CAAC,EACD,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,6BAA6B,EAC7B,KAAK,CACN;4BARD,CAQC,EAEH,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,CAAC,EAApF,CAAoF,EACnG,MAAM,EAAE,eAAe,IACnB,gBAAgB,CAAC,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,CAAC,0CAAE,gBAAgB,CAAC,IACrE,OAAO,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAC1D,IAAI,EAAE,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,EAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAC,KAAK,gBACE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,QAAQ,EAAE,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,MAAM,MAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAC7D,CACD,CACJ,CAAC;gBACJ,CAAC;gBACD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,eAAe,CAAC,IAAI,CAClB,8BACE,GAAG,EAAE,UAAG,QAAQ,WAAQ,EACxB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAC/B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAC3C,SAAS,EAAE,UAAU,CAAC,WAAW,IAEhC,IAAI,CACA,CACR,CAAC;gBACJ,CAAC;;YA1FH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAE,MAAM,CAAA,EAAE,CAAC,EAAE;wBAAlD,CAAC;aA2FT;YAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,eAAe,CAAC,IAAI,OAApB,eAAe,EACV,gCAAgC,CAAC;oBAClC,UAAU,EAAE,WAAW,CAAC,OAAO;oBAC/B,UAAU,EAAE,WAAW,CAAC,OAAO;oBAC/B,SAAS,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE;oBACvC,WAAW,EAAE,MAAC,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAA+B,0CAAE,WAAW;iBAC9E,CAAC,EACF;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CACT,2BACE,GAAG,EAAE,iBAAU,CAAC,CAAE,EAClB,IAAI,EAAC,QAAQ,gBACD,UAAG,SAAS,sBAAY,CAAC,GAAG,CAAC,iBAAO,MAAA,OAAO,CAAC,OAAO,0CAAE,MAAM,mBACrE,OAAA,OAAA,MAAA,OAAO,CAAC,OAAO,0CAAG,CAAC,CAAC,4CAAE,IAAI,4CAAE,MAAM,kBACrB,IAEd,eAAe,CACd,CACL,CAAC;;QAzHJ,KAAK,IAAI,CAAC,GAAG,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAA5C,CAAC;SA0HT;QAED,mEAAmE;QACnE,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBACrF,oCAAoC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QACD,4CAA4C;QAC5C,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;YAC3D,IAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC;gBACH,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;gBACrF,oCAAoC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,IAAM,YAAY,GAAG;gBACnB,UAAU,EAAE,UAAU,CAAC,OAAQ;gBAC/B,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,YAAY;aACpB,CAAC;YACF,YAAY,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD;QACE,WAAW;QACX,WAAW;QACX,KAAK,CAAC,IAAI,CAAC,gBAAgB;QAC3B,KAAK,CAAC,sBAAsB;QAC5B,KAAK,CAAC,eAAe;QACrB,SAAS;QACT,aAAa;QACb,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,kBAAkB;QAClB,oBAAoB;QACpB,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,oBAAoB;QACpB,UAAU;QACV,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,UAAU;KACjB,CACF,CAAC;IAEF,IAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CACnD,UACE,MAAmB,EACnB,MAAmB,EACnB,eAAuB,EACvB,cAAsB,EACtB,QAA2B;QAE3B,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC;QAC7B,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC;QAC7B,kBAAkB,CAAC,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,QAAS,EAAE,eAAgB,CAAC,CAAC;IAClE,CAAC,EACD,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CACtD,CAAC;IAEF;;sFAEkF;IAElF,SAAS,gBAAgB,CAAC,IAAiB;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,aAAa;QACpB,OAAO,CAAC,CACN,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,IAAI,CAAC,gBAAgB;YAC3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAC,IAAyB,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAhB,CAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAC/F,CAAC;IACJ,CAAC;IAED,SAAS,aAAa;QACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,qBAAqB;QAC5B,OAAO,KAAK,CAAC,uBAAuB;YAClC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;YAClD,CAAC,CAAC,KAAK,CAAC,2BAA2B;gBACnC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,qBAAqB,CAAC;gBAC1D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,UAAC,MAA6B,EAAE,SAAqB;QAC7C,IAAA,KAA2B,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,EAA7F,UAAU,gBAAA,EAAE,QAAQ,cAAyE,CAAC;QACtG,IAAM,QAAQ,GAAG,0BAA0B,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpF,OAAO;YACL,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC,KAAK;YACvC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG;SAClC,CAAC;IACJ,CAAC,EACD,CAAC,KAAK,CAAC,UAAU,CAAC,CACnB,CAAC;IAEM,IAAA,WAAW,GAA6B,KAAK,YAAlC,EAAE,UAAU,GAAiB,KAAK,WAAtB,EAAE,UAAU,GAAK,KAAK,WAAV,CAAW;IACtD,OAAO,CAAC,OAAO,GAAG,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEtF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAgC,CAAC;IACtD,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;QAC1D,MAAM,GAAG,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACnF,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,sDAAsD;IACtD,+BAA+B;IAC/B,2EAA2E;IAC3E,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC9C,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC,CAAC,gDAAgD;IACjG,CAAC;IACD,IAAM,YAAY,cAChB,gBAAgB,kBAAA,EAChB,eAAe,EAAE,eAAe,CAAC,WAAW,EAC5C,WAAW,aAAA,EACX,WAAW,aAAA,EACX,EAAE,EAAE,iBAAU,gBAAgB,CAAC,OAAO,CAAE,EACxC,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,aAAa,EACxB,qBAAqB,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EACjC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,gBAAgB,CAAC,EACjD,kBAAkB,EAChB,KAAK,CAAC,4BAA4B,IAAI,iBAAiB;YACrD,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,iBAAiB,CAAC;YACvD,CAAC,CAAC,SAAS,EACf,mBAAmB,EAAE,IAAI,EACzB,6BAA6B,EAAE,8BAA8B,IAC1D,KAAK,CAAC,YAAY,CACtB,CAAC;IACF,IAAM,UAAU,GAAG;QACjB,UAAU,YAAA;QACV,UAAU,YAAA;KACX,CAAC;IAEF,IAAM,WAAW,GAAa,OAAO,CAAC,OAAO;SAC1C,GAAG,CAAC,UAAC,KAAgC,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,EAA0B,IAAK,OAAA,EAAE,CAAC,CAAW,EAAd,CAAc,CAAC,EAA9D,CAA8D,CAAC;SACzG,IAAI,EAAE,CAAC;IAEV,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAEhD,iDAAiD;IACjD,IAAM,YAAY,GAAa,sBAAsB,EAAE,CAAC;IAExD,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CACxB,oBAAC,cAAc,eACT,KAAK,IACT,GAAG,EAAE,iBAAiB,EACtB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EACjC,iBAAiB,QACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,CAAC,YAAY,EAClC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,WAAW,EACvB,gBAAgB,EAAE,oBAAoB,EACtC,qBAAqB,EAAE,iCAAiC,EACxD,WAAW,EAAE,kBAAkB,EAC/B,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,2BAA2B,EACzC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,IAEjB,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,2BAA2B,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAC9F,iBAAiB,EAAE,sBAAsB,EACzC,6BAA6B,EAAE,wBAAwB,EACvD,qBAAqB,EAAE,YAAY,EACnC,YAAY,EAAE,iBAAiB,IAC3B,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IACvE,iBAAiB,EAAE,qBAAqB,EAAE;QAC1C,sCAAsC;QAEtC,QAAQ,EAAE,UAAC,UAAuB;YAChC,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,MAAO,CAAC;YACzC,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,aAAc,CAAC;YAChD,OAAO,CACL;gBACE;oBACE,8BACE,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,UAAU,CAAC,eAAe,EAC9B,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,KAAK,GACtB;oBACF,+BAAI,YAAY,CAAC,OAAO,CAAK,CAC3B,CACH,CACJ,CAAC;QACJ,CAAC,IACD,CACH,CAAC,CAAC,CAAC,CACF,6BAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAc,8BAA8B,GAAI,CAC/G,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,GAAG,cAAc,CAAC","sourcesContent":["import * as React from 'react';\nimport { IChildProps, IScatterChartStyleProps, IScatterChartStyles, IScatterChartProps } from './ScatterChart.types';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n areArraysEqual,\n createNumericYAxis,\n createStringYAxis,\n domainRangeOfXStringAxis,\n findNumericMinMaxOfY,\n getDomainPaddingForMarkers,\n isScatterPolarSeries,\n isTextMode,\n YAxisType,\n isPlottable,\n getRangeForScatterMarkerSize,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfNumericForAreaLineScatterCharts,\n findCalloutPoints,\n} from '../../utilities/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IChart,\n IYValueHover,\n} from '../../index';\nimport {\n calloutData,\n ChartTypes,\n XAxisTypes,\n tooltipOfAxislabels,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { classNamesFunction, DirectionalHint, getId, getRTL } from '@fluentui/react';\nimport { IImageExportOptions, IScatterChartDataPoint, IScatterChartPoints } from '../../types/index';\nimport { ILineChartPoints } from '../../types/IDataPoint';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\nimport type { JSXElement } from '@fluentui/utilities';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\ntype ScatterChartDataWithIndex = IScatterChartPoints & { index: number };\nconst getClassNames = classNamesFunction<IScatterChartStyleProps, IScatterChartStyles>();\n\n// Create a ScatterChart variant which uses these default styles and this styled subcomponent.\n/**\n * ScatterChart component\n * {@docCategory ScatterChart}\n */\nexport const ScatterChartBase: React.FunctionComponent<IScatterChartProps> = React.forwardRef<\n HTMLDivElement,\n IScatterChartProps\n>((props, forwardedRef) => {\n const _circleId = React.useMemo(() => getId('circle'), []);\n const _seriesId: string = React.useMemo(() => getId('seriesID'), []);\n const _verticalLine: string = React.useMemo(() => getId('verticalLine'), []);\n const _tooltipId: string = React.useMemo(() => getId('ScatterChartTooltipId_'), []);\n const _firstRenderOptimization = true;\n const _emptyChartId: string = React.useMemo(() => getId('_ScatterChart_empty'), []);\n const _points = React.useRef<ScatterChartDataWithIndex[]>(\n _injectIndexPropertyInScatterChartData(props.data.scatterChartData),\n );\n let _calloutPoints = React.useMemo(() => calloutData(_points.current) || {}, [_points]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _xAxisScale: any = React.useRef<any>('');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _yAxisScale: any = React.useRef<any>('');\n const _uniqueCallOutID = React.useRef<string | null>(null);\n const _refArray = React.useMemo(() => [], []);\n const margins = React.useRef<IMargins | null>(null);\n\n const renderSeries = React.useRef<JSXElement[]>([]);\n let _xAxisLabels: string[] = [];\n const _xAxisCalloutAccessibilityData: IAccessibilityProps = {};\n const _xBandwidth = React.useRef<number>(0);\n const cartesianChartRef = React.useRef<IChart>(null);\n const legendsRef = React.useRef<ILegendContainer>(null);\n\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<IYValueHover[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [selectedLegendPoints, setSelectedLegendPoints] = React.useState<any[]>([]);\n const [isSelectedLegend, setIsSelectedLegend] = React.useState<boolean>(false);\n const [activePoint, setActivePoint] = React.useState<string>('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<ICustomizedCalloutData>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<ICustomizedCalloutData>();\n const [isCalloutVisible, setCalloutVisible] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [refSelected, setRefSelected] = React.useState<string>('');\n const prevSelectedLegendsRef = React.useRef<string[] | undefined>(undefined);\n const _isScatterPolarRef = React.useRef(false);\n const _isTextMode = React.useRef(false);\n\n const classNames = getClassNames(props.styles!, {\n theme: props.theme!,\n });\n\n React.useEffect(() => {\n if (\n prevSelectedLegendsRef.current &&\n !areArraysEqual(prevSelectedLegendsRef.current, props.legendProps?.selectedLegends)\n ) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n prevSelectedLegendsRef.current = props.legendProps?.selectedLegends;\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: cartesianChartRef.current?.chartContainer }],\n props.hideLegend ? undefined : legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\n\n const _xAxisType: XAxisTypes =\n props.data.scatterChartData! &&\n props.data.scatterChartData!.length > 0 &&\n props.data.scatterChartData![0].data &&\n props.data.scatterChartData![0].data.length > 0\n ? (getTypeOfAxis(props.data.scatterChartData![0].data[0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n\n // Detect y axis type (numeric or string)\n const _yAxisType: YAxisType =\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData[0].data &&\n props.data.scatterChartData[0].data.length > 0\n ? typeof props.data.scatterChartData[0].data[0].y === 'string'\n ? YAxisType.StringAxis\n : YAxisType.NumericAxis\n : YAxisType.NumericAxis;\n\n const pointsRef = React.useRef<ScatterChartDataWithIndex[] | []>([]);\n React.useEffect(() => {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n\n if (\n _points.current !== _injectIndexPropertyInScatterChartData(props.data.scatterChartData) ||\n props.data !== _points.current\n ) {\n pointsRef.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n }, [props.height, props.width, props.data, _points]);\n\n function _injectIndexPropertyInScatterChartData(\n scatterChartData?: IScatterChartPoints[],\n ): ScatterChartDataWithIndex[] | [] {\n return scatterChartData\n ? scatterChartData.map((item: IScatterChartPoints, index: number) => {\n let color: string;\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0);\n } else {\n color = getColorFromToken(item.color);\n }\n return {\n ...item,\n index: -1,\n color,\n };\n })\n : [];\n }\n\n const _getMargins = React.useCallback((_margins: IMargins) => {\n margins.current = _margins;\n }, []);\n\n function _onHoverCardHide() {\n setSelectedLegendPoints([]);\n setIsSelectedLegend(false);\n }\n\n function _createLegends(data: ScatterChartDataWithIndex[]): JSXElement {\n const { legendProps } = props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, ScatterChartDataWithIndex[]> = {};\n data.forEach((point: ScatterChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(legendTitle);\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n };\n return legend;\n });\n\n return (\n <Legends\n ref={legendsRef}\n legends={[...legendDataItems]}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowProps={props.legendsOverflowProps}\n focusZonePropsInHoverCard={props.focusZonePropsForLegendsInHoverCard}\n overflowText={props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: _onHoverCardHide })}\n onChange={_onLegendSelectionChange}\n {...props.legendProps}\n />\n );\n }\n\n function _getOrderedYAxisLabels() {\n const shouldOrderYAxisLabelsByCategoryOrder =\n _yAxisType === YAxisType.StringAxis && props.yAxisCategoryOrder !== 'default';\n if (!shouldOrderYAxisLabelsByCategoryOrder) {\n // Collect all unique string y values from all data points in all series, in reverse order\n const yLabelsSet = new Set<string>();\n for (let i = _points.current.length - 1; i >= 0; i--) {\n const point = _points.current[i];\n if (point.data && Array.isArray(point.data)) {\n for (const d of point.data) {\n if (typeof d.y === 'string') {\n yLabelsSet.add(d.y);\n }\n }\n }\n }\n return Array.from(yLabelsSet);\n }\n\n return sortAxisCategories(_mapCategoryToValues(), props.yAxisCategoryOrder);\n }\n\n function _mapCategoryToValues() {\n const categoryToValues: Record<string, number[]> = {};\n _points.current.forEach(point => {\n if (point.data && Array.isArray(point.data)) {\n point.data.forEach(d => {\n if (typeof d.y === 'string') {\n if (!categoryToValues[d.y]) {\n categoryToValues[d.y] = [];\n }\n if (typeof d.x === 'number') {\n categoryToValues[d.y].push(d.x);\n }\n }\n });\n }\n });\n return categoryToValues;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n const _getPointFill = React.useCallback(\n (lineColor: string, pointId: string) => {\n const { theme } = props;\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n },\n [activePoint, props],\n );\n\n const getDomainNRangeValuesScatterChart = React.useCallback(\n (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any,\n domainMargins: IMargins,\n width: number,\n _chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n _barWidth: number,\n tickValues: number[] | Date[] | string[] | undefined,\n ) => {\n if (xAxisType === XAxisTypes.NumericAxis) {\n return domainRangeOfNumericForAreaLineScatterCharts(\n points,\n domainMargins,\n width,\n isRTL,\n props.xScaleType,\n true,\n );\n } else if (xAxisType === XAxisTypes.DateAxis) {\n return domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n domainMargins,\n width,\n isRTL,\n tickValues! as Date[],\n _chartType,\n );\n }\n // String Axis type\n return domainRangeOfXStringAxis(domainMargins, width, isRTL);\n },\n [props.xScaleType],\n );\n\n const _handleFocus = React.useCallback(\n (\n seriesId: string,\n x: number | Date | string,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n _uniqueCallOutID.current = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC) : x;\n const found = findCalloutPoints(_calloutPoints, x);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale.current?.(x) + _xBandwidth.current}, 0)`)\n .attr('visibility', 'visibility');\n _refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === seriesId) {\n setCalloutVisible(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setRefSelected(`#${circleId}`);\n setYValueHover(found!.values);\n setActivePoint(circleId);\n }\n });\n } else {\n setActivePoint(circleId);\n }\n },\n [_verticalLine, _xAxisScale, _xBandwidth, _calloutPoints, _refArray, props.culture, props.useUTC],\n );\n\n const _handleHover = React.useCallback(\n (\n x: number | Date | string,\n y: number,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent?.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC) : x;\n const found = findCalloutPoints(_calloutPoints, x) as ICustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr(\n 'transform',\n () => `translate(${_xAxisScale.current?.(x) + _xBandwidth.current}, ${_yAxisScale.current?.(y)})`,\n )\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - _yAxisScale.current?.(y)}`);\n\n if (_uniqueCallOutID.current !== circleId) {\n _uniqueCallOutID.current = circleId;\n setCalloutVisible(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setRefSelected(`#${circleId}`);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n } else {\n setActivePoint(circleId);\n }\n },\n [_verticalLine, _xAxisScale, _xBandwidth, _calloutPoints, props.culture, props.useUTC],\n );\n\n const _handleMouseOut = React.useCallback(() => {\n d3Select(`#${_verticalLine}`).attr('visibility', 'hidden');\n }, [_verticalLine]);\n\n const _handleChartMouseLeave = React.useCallback(() => {\n _uniqueCallOutID.current = null;\n setActivePoint('');\n if (isCalloutVisible) {\n setCalloutVisible(false);\n }\n }, [_uniqueCallOutID, isCalloutVisible, setActivePoint, setCalloutVisible]);\n\n const _getHighlightedLegend = React.useCallback((): string[] => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }, [selectedLegends, activeLegend]);\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n const _noLegendHighlighted = React.useCallback((): boolean => {\n return _getHighlightedLegend().length === 0;\n }, [_getHighlightedLegend]);\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 const _legendHighlighted = React.useCallback(\n (legend: string): boolean => {\n return _getHighlightedLegend().includes(legend);\n },\n [_getHighlightedLegend],\n );\n\n const _getAriaLabel = React.useCallback(\n (seriesIndex: number, pointIndex: number): string => {\n const series = _points.current?.[seriesIndex];\n const point = series.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, props.culture, props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = series.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n },\n [_points, props.culture, props.useUTC],\n );\n\n const _createPlot = React.useCallback(\n (xElement: SVGElement, containerHeight: number): JSXElement[] => {\n const series: JSXElement[] = [];\n if (isSelectedLegend) {\n _points.current = selectedLegendPoints;\n } else {\n _points.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _xBandwidth.current = _xAxisScale.current?.bandwidth() / 2;\n }\n\n const minMarkerSize =\n d3Min(_points.current, (point: IScatterChartPoints) => {\n return d3Min(point.data as IScatterChartDataPoint[], (item: IScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const maxMarkerSize =\n d3Max(_points.current, (point: IScatterChartPoints) => {\n return d3Max(point.data as IScatterChartDataPoint[], (item: IScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const isContinuousXY = _xAxisType !== XAxisTypes.StringAxis && _yAxisType !== YAxisType.StringAxis;\n const extraMaxPixels = isContinuousXY\n ? getRangeForScatterMarkerSize({\n data: _points.current,\n xScale: _xAxisScale.current,\n yScalePrimary: _yAxisScale.current,\n xScaleType: props.xScaleType,\n yScaleType: props.yScaleType,\n })\n : 0;\n\n for (let i = _points.current?.length - 1; i >= 0; i--) {\n const pointsForSeries: JSXElement[] = [];\n\n const legendVal: string = _points.current?.[i]?.legend;\n const seriesColor: string = _points.current?.[i]?.color!;\n const verticaLineHeight = containerHeight - (margins.current?.bottom ?? 0) + 6;\n\n for (let j = 0; j < _points.current?.[i]?.data?.length; j++) {\n const { x, y, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points.current?.[i]?.data[j];\n const xPoint = _xAxisScale.current?.(x);\n // Use string y axis scale if needed\n const yPoint =\n _yAxisType === YAxisType.StringAxis\n ? _yAxisScale.current?.(y) + (_yAxisScale.current?.bandwidth ? _yAxisScale.current.bandwidth() / 2 : 0)\n : _yAxisScale.current?.(y);\n if (!isPlottable(xPoint, yPoint)) {\n continue;\n }\n\n const seriesId = `${_seriesId}_${i}_${j}`;\n const circleId = `${_circleId}_${i}_${j}`;\n const pointMarkerSize = (_points.current?.[i]?.data[j] as IScatterChartDataPoint).markerSize;\n const minPixel = 4;\n const maxPixel = 16;\n let circleRadius = activePoint === circleId ? 6 : 4;\n\n if (pointMarkerSize) {\n if (isContinuousXY && maxMarkerSize !== 0) {\n circleRadius = (pointMarkerSize * extraMaxPixels) / maxMarkerSize;\n } else if (!isContinuousXY && maxMarkerSize !== minMarkerSize) {\n circleRadius =\n minPixel +\n ((pointMarkerSize - minMarkerSize) / (maxMarkerSize - minMarkerSize)) * (maxPixel - minPixel);\n }\n }\n\n const isLegendSelected: boolean = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;\n\n const currentPointHidden = _points.current?.[i]?.hideNonActiveDots && activePoint !== circleId;\n const text = _points.current?.[i].data[j]?.text;\n if (!_isTextMode.current) {\n pointsForSeries.push(\n <>\n <circle\n id={circleId}\n key={circleId}\n r={Math.max(circleRadius, 4)}\n cx={xPoint + _xBandwidth.current}\n cy={yPoint}\n data-is-focusable={isLegendSelected}\n onMouseOver={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseMove={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseOut={_handleMouseOut}\n onFocus={() => _handleFocus(seriesId, x, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={_handleMouseOut}\n {..._getClickHandler(_points.current?.[i]?.data[j]?.onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.1}\n fill={_getPointFill(seriesColor, circleId)}\n stroke={seriesColor}\n role=\"img\"\n aria-label={_getAriaLabel(i, j)}\n tabIndex={_points.current?.[i]?.legend !== '' ? 0 : undefined}\n />\n </>,\n );\n }\n if (_isTextMode && text) {\n pointsForSeries.push(\n <text\n key={`${circleId}-label`}\n x={xPoint + _xBandwidth.current}\n y={yPoint + Math.max(circleRadius + 12, 16)}\n className={classNames.markerLabel}\n >\n {text}\n </text>,\n );\n }\n }\n\n if (_isScatterPolarRef.current) {\n pointsForSeries.push(\n ...renderScatterPolarCategoryLabels({\n xAxisScale: _xAxisScale.current,\n yAxisScale: _yAxisScale.current,\n className: classNames.markerLabel || '',\n lineOptions: (_points.current?.[i] as Partial<ILineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n series.push(\n <g\n key={`series_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, series ${i + 1} of ${_points.current?.length} with ${\n _points.current?.[i]?.data?.length\n } data points.`}\n >\n {pointsForSeries}\n </g>,\n );\n }\n\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(_xAxisScale.current);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: _tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return series;\n },\n [\n _xAxisScale,\n _yAxisScale,\n props.data.scatterChartData,\n props.showXAxisLablesTooltip,\n props.wrapXAxisLables,\n _circleId,\n _getAriaLabel,\n _getPointFill,\n _handleFocus,\n _handleHover,\n _handleMouseOut,\n _legendHighlighted,\n _noLegendHighlighted,\n _seriesId,\n _tooltipId,\n _xAxisType,\n _yAxisType,\n activePoint,\n isSelectedLegend,\n selectedLegendPoints,\n classNames,\n props.xScaleType,\n props.yScaleType,\n ],\n );\n\n const _initializeScatterChartData = React.useCallback(\n (\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n _xAxisScale.current = xScale;\n _yAxisScale.current = yScale;\n _isScatterPolarRef.current = isScatterPolarSeries(_points.current);\n _isTextMode.current = isTextMode(_points.current);\n renderSeries.current = _createPlot(xElement!, containerHeight!);\n },\n [renderSeries, _xAxisScale, _yAxisScale, _createPlot],\n );\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.*/\n\n function _getClickHandler(func?: () => void): { onClick?: () => void } {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n }\n\n function _isChartEmpty(): boolean {\n return !(\n props.data &&\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData.filter((item: IScatterChartPoints) => item.data.length).length > 0\n );\n }\n\n function _closeCallout() {\n setCalloutVisible(false);\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps)\n : null;\n }\n\n const _getNumericMinMaxOfY = React.useCallback(\n (points: IScatterChartPoints[], yAxisType?: YAxisType): { startValue: number; endValue: number } => {\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, undefined, props.yScaleType);\n const yPadding = getDomainPaddingForMarkers(startValue, endValue, props.yScaleType);\n\n return {\n startValue: startValue - yPadding.start,\n endValue: endValue + yPadding.end,\n };\n },\n [props.yScaleType],\n );\n\n const { legendProps, tickValues, tickFormat } = props;\n _points.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n\n let points = _points.current as IScatterChartPoints[];\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = selectedLegendPoints.length >= 1 ? selectedLegendPoints : _points.current;\n _calloutPoints = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!props.hideLegend && !_isTextMode.current) {\n legendBars = _createLegends(_points.current!); // ToDo: Memoize legends to improve performance.\n }\n const calloutProps = {\n isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover,\n hoverXValue,\n id: `toolTip${_uniqueCallOutID.current}`,\n target: refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: _closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!props.hideTooltip && isCalloutVisible),\n descriptionMessage:\n props.getCalloutDescriptionMessage && stackCalloutProps\n ? props.getCalloutDescriptionMessage(stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: _xAxisCalloutAccessibilityData,\n ...props.calloutProps,\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n const xAxisLabels: string[] = _points.current\n .map((point: ScatterChartDataWithIndex) => point.data.map((dp: IScatterChartDataPoint) => dp.x as string))\n .flat();\n\n _xAxisLabels = Array.from(new Set(xAxisLabels));\n\n // Compute unique y axis labels for string y axis\n const _yAxisLabels: string[] = _getOrderedYAxisLabels();\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n ref={cartesianChartRef}\n chartTitle={props.data.chartTitle}\n isCalloutForStack\n points={points}\n chartType={ChartTypes.ScatterChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={_getMargins}\n getMinMaxOfYAxis={_getNumericMinMaxOfY}\n getDomainNRangeValues={getDomainNRangeValuesScatterChart}\n createYAxis={createNumericYAxis}\n createStringYAxis={createStringYAxis}\n getGraphData={_initializeScatterChartData}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n // Pass stringDatasetForYAxisDomain only if y axis is string\n {...(_yAxisType === YAxisType.StringAxis ? { stringDatasetForYAxisDomain: _yAxisLabels } : {})}\n onChartMouseLeave={_handleChartMouseLeave}\n enableFirstRenderOptimization={_firstRenderOptimization}\n datasetForXAxisDomain={_xAxisLabels}\n componentRef={cartesianChartRef}\n {...(_isScatterPolarRef.current ? { yMaxValue: 1, yMinValue: -1 } : {})}\n customizedCallout={_getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n\n children={(childProps: IChildProps) => {\n _xAxisScale.current = childProps.xScale!;\n _yAxisScale.current = childProps.yScalePrimary!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={childProps.containerHeight}\n stroke={'#323130'}\n id={_verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>{renderSeries.current}</g>\n </g>\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nScatterChartBase.displayName = 'ScatterChart';\n"]}
|
|
1
|
+
{"version":3,"file":"ScatterChart.base.js","sourceRoot":"../src/","sources":["components/ScatterChart/ScatterChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IChildProps, IScatterChartStyleProps, IScatterChartStyles, IScatterChartProps } from './ScatterChart.types';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n areArraysEqual,\n createNumericYAxis,\n createStringYAxis,\n domainRangeOfXStringAxis,\n findNumericMinMaxOfY,\n getDomainPaddingForMarkers,\n isScatterPolarSeries,\n isTextMode,\n YAxisType,\n isPlottable,\n getRangeForScatterMarkerSize,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfNumericForAreaLineScatterCharts,\n findCalloutPoints,\n} from '../../utilities/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IChart,\n IYValueHover,\n} from '../../index';\nimport {\n calloutData,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { classNamesFunction, DirectionalHint, getId, getRTL } from '@fluentui/react';\nimport { IImageExportOptions, IScatterChartDataPoint, IScatterChartPoints } from '../../types/index';\nimport { ILineChartPoints } from '../../types/IDataPoint';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';\nimport type { JSXElement } from '@fluentui/utilities';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\ntype ScatterChartDataWithIndex = IScatterChartPoints & { index: number };\nconst getClassNames = classNamesFunction<IScatterChartStyleProps, IScatterChartStyles>();\n\n// Create a ScatterChart variant which uses these default styles and this styled subcomponent.\n/**\n * ScatterChart component\n * {@docCategory ScatterChart}\n */\nexport const ScatterChartBase: React.FunctionComponent<IScatterChartProps> = React.forwardRef<\n HTMLDivElement,\n IScatterChartProps\n>((props, forwardedRef) => {\n const _circleId = React.useMemo(() => getId('circle'), []);\n const _seriesId: string = React.useMemo(() => getId('seriesID'), []);\n const _verticalLine: string = React.useMemo(() => getId('verticalLine'), []);\n const _firstRenderOptimization = true;\n const _emptyChartId: string = React.useMemo(() => getId('_ScatterChart_empty'), []);\n const _points = React.useRef<ScatterChartDataWithIndex[]>(\n _injectIndexPropertyInScatterChartData(props.data.scatterChartData),\n );\n let _calloutPoints = React.useMemo(() => calloutData(_points.current) || {}, [_points]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _xAxisScale: any = React.useRef<any>('');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _yAxisScale: any = React.useRef<any>('');\n const _uniqueCallOutID = React.useRef<string | null>(null);\n const _refArray = React.useMemo(() => [], []);\n const margins = React.useRef<IMargins | null>(null);\n\n const renderSeries = React.useRef<JSXElement[]>([]);\n let _xAxisLabels: string[] = [];\n const _xAxisCalloutAccessibilityData: IAccessibilityProps = {};\n const _xBandwidth = React.useRef<number>(0);\n const cartesianChartRef = React.useRef<IChart>(null);\n const legendsRef = React.useRef<ILegendContainer>(null);\n\n const [hoverXValue, setHoverXValue] = React.useState<string | number>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<IYValueHover[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [selectedLegendPoints, setSelectedLegendPoints] = React.useState<any[]>([]);\n const [isSelectedLegend, setIsSelectedLegend] = React.useState<boolean>(false);\n const [activePoint, setActivePoint] = React.useState<string>('');\n const [stackCalloutProps, setStackCalloutProps] = React.useState<ICustomizedCalloutData>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<ICustomizedCalloutData>();\n const [isCalloutVisible, setCalloutVisible] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [refSelected, setRefSelected] = React.useState<string>('');\n const prevSelectedLegendsRef = React.useRef<string[] | undefined>(undefined);\n const _isScatterPolarRef = React.useRef(false);\n const _isTextMode = React.useRef(false);\n\n const classNames = getClassNames(props.styles!, {\n theme: props.theme!,\n });\n\n React.useEffect(() => {\n if (\n prevSelectedLegendsRef.current &&\n !areArraysEqual(prevSelectedLegendsRef.current, props.legendProps?.selectedLegends)\n ) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n prevSelectedLegendsRef.current = props.legendProps?.selectedLegends;\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: cartesianChartRef.current?.chartContainer }],\n props.hideLegend ? undefined : legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\n\n const _xAxisType: XAxisTypes =\n props.data.scatterChartData! &&\n props.data.scatterChartData!.length > 0 &&\n props.data.scatterChartData![0].data &&\n props.data.scatterChartData![0].data.length > 0\n ? (getTypeOfAxis(props.data.scatterChartData![0].data[0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n\n // Detect y axis type (numeric or string)\n const _yAxisType: YAxisType =\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData[0].data &&\n props.data.scatterChartData[0].data.length > 0\n ? typeof props.data.scatterChartData[0].data[0].y === 'string'\n ? YAxisType.StringAxis\n : YAxisType.NumericAxis\n : YAxisType.NumericAxis;\n\n const pointsRef = React.useRef<ScatterChartDataWithIndex[] | []>([]);\n React.useEffect(() => {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n\n if (\n _points.current !== _injectIndexPropertyInScatterChartData(props.data.scatterChartData) ||\n props.data !== _points.current\n ) {\n pointsRef.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n }, [props.height, props.width, props.data, _points]);\n\n function _injectIndexPropertyInScatterChartData(\n scatterChartData?: IScatterChartPoints[],\n ): ScatterChartDataWithIndex[] | [] {\n return scatterChartData\n ? scatterChartData.map((item: IScatterChartPoints, index: number) => {\n let color: string;\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0);\n } else {\n color = getColorFromToken(item.color);\n }\n return {\n ...item,\n index: -1,\n color,\n };\n })\n : [];\n }\n\n const _getMargins = React.useCallback((_margins: IMargins) => {\n margins.current = _margins;\n }, []);\n\n function _onHoverCardHide() {\n setSelectedLegendPoints([]);\n setIsSelectedLegend(false);\n }\n\n function _createLegends(data: ScatterChartDataWithIndex[]): JSXElement {\n const { legendProps } = props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, ScatterChartDataWithIndex[]> = {};\n data.forEach((point: ScatterChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n onMouseOutAction: () => {\n setActiveLegend('');\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n setActiveLegend(legendTitle);\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n };\n return legend;\n });\n\n return (\n <Legends\n ref={legendsRef}\n legends={[...legendDataItems]}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowProps={props.legendsOverflowProps}\n focusZonePropsInHoverCard={props.focusZonePropsForLegendsInHoverCard}\n overflowText={props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: _onHoverCardHide })}\n onChange={_onLegendSelectionChange}\n {...props.legendProps}\n />\n );\n }\n\n function _getOrderedYAxisLabels() {\n const shouldOrderYAxisLabelsByCategoryOrder =\n _yAxisType === YAxisType.StringAxis && props.yAxisCategoryOrder !== 'default';\n if (!shouldOrderYAxisLabelsByCategoryOrder) {\n // Collect all unique string y values from all data points in all series, in reverse order\n const yLabelsSet = new Set<string>();\n for (let i = _points.current.length - 1; i >= 0; i--) {\n const point = _points.current[i];\n if (point.data && Array.isArray(point.data)) {\n for (const d of point.data) {\n if (typeof d.y === 'string') {\n yLabelsSet.add(d.y);\n }\n }\n }\n }\n return Array.from(yLabelsSet);\n }\n\n return sortAxisCategories(_mapCategoryToValues(), props.yAxisCategoryOrder);\n }\n\n function _mapCategoryToValues() {\n const categoryToValues: Record<string, number[]> = {};\n _points.current.forEach(point => {\n if (point.data && Array.isArray(point.data)) {\n point.data.forEach(d => {\n if (typeof d.y === 'string') {\n if (!categoryToValues[d.y]) {\n categoryToValues[d.y] = [];\n }\n if (typeof d.x === 'number') {\n categoryToValues[d.y].push(d.x);\n }\n }\n });\n }\n });\n return categoryToValues;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n const _getPointFill = React.useCallback(\n (lineColor: string, pointId: string) => {\n const { theme } = props;\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n },\n [activePoint, props],\n );\n\n const getDomainNRangeValuesScatterChart = React.useCallback(\n (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any,\n domainMargins: IMargins,\n width: number,\n _chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n _barWidth: number,\n tickValues: number[] | Date[] | string[] | undefined,\n ) => {\n if (xAxisType === XAxisTypes.NumericAxis) {\n return domainRangeOfNumericForAreaLineScatterCharts(\n points,\n domainMargins,\n width,\n isRTL,\n props.xScaleType,\n true,\n );\n } else if (xAxisType === XAxisTypes.DateAxis) {\n return domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n domainMargins,\n width,\n isRTL,\n tickValues! as Date[],\n _chartType,\n );\n }\n // String Axis type\n return domainRangeOfXStringAxis(domainMargins, width, isRTL);\n },\n [props.xScaleType],\n );\n\n const _handleFocus = React.useCallback(\n (\n seriesId: string,\n x: number | Date | string,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n _uniqueCallOutID.current = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC) : x;\n const found = findCalloutPoints(_calloutPoints, x);\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr('transform', () => `translate(${_xAxisScale.current?.(x) + _xBandwidth.current}, 0)`)\n .attr('visibility', 'visibility');\n _refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === seriesId) {\n setCalloutVisible(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setRefSelected(`#${circleId}`);\n setYValueHover(found!.values);\n setActivePoint(circleId);\n }\n });\n } else {\n setActivePoint(circleId);\n }\n },\n [_verticalLine, _xAxisScale, _xBandwidth, _calloutPoints, _refArray, props.culture, props.useUTC],\n );\n\n const _handleHover = React.useCallback(\n (\n x: number | Date | string,\n y: number,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent?.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, props.culture, props.useUTC) : x;\n const found = findCalloutPoints(_calloutPoints, x) as ICustomizedCalloutData | undefined;\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(`#${_verticalLine}`)\n .attr(\n 'transform',\n () => `translate(${_xAxisScale.current?.(x) + _xBandwidth.current}, ${_yAxisScale.current?.(y)})`,\n )\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - _yAxisScale.current?.(y)}`);\n\n if (_uniqueCallOutID.current !== circleId) {\n _uniqueCallOutID.current = circleId;\n setCalloutVisible(true);\n xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);\n setRefSelected(`#${circleId}`);\n setYValueHover(found.values);\n setStackCalloutProps(found!);\n setDataPointCalloutProps(found!);\n setActivePoint(circleId);\n }\n } else {\n setActivePoint(circleId);\n }\n },\n [_verticalLine, _xAxisScale, _xBandwidth, _calloutPoints, props.culture, props.useUTC],\n );\n\n const _handleMouseOut = React.useCallback(() => {\n d3Select(`#${_verticalLine}`).attr('visibility', 'hidden');\n }, [_verticalLine]);\n\n const _handleChartMouseLeave = React.useCallback(() => {\n _uniqueCallOutID.current = null;\n setActivePoint('');\n if (isCalloutVisible) {\n setCalloutVisible(false);\n }\n }, [_uniqueCallOutID, isCalloutVisible, setActivePoint, setCalloutVisible]);\n\n const _getHighlightedLegend = React.useCallback((): string[] => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }, [selectedLegends, activeLegend]);\n\n /**\n * This function checks if none of the legends is selected or hovered.*/\n const _noLegendHighlighted = React.useCallback((): boolean => {\n return _getHighlightedLegend().length === 0;\n }, [_getHighlightedLegend]);\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 const _legendHighlighted = React.useCallback(\n (legend: string): boolean => {\n return _getHighlightedLegend().includes(legend);\n },\n [_getHighlightedLegend],\n );\n\n const _getAriaLabel = React.useCallback(\n (seriesIndex: number, pointIndex: number): string => {\n const series = _points.current?.[seriesIndex];\n const point = series.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, props.culture, props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = series.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n },\n [_points, props.culture, props.useUTC],\n );\n\n const _createPlot = React.useCallback(\n (xElement: SVGElement, containerHeight: number): JSXElement[] => {\n const series: JSXElement[] = [];\n if (isSelectedLegend) {\n _points.current = selectedLegendPoints;\n } else {\n _points.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n }\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n _xBandwidth.current = _xAxisScale.current?.bandwidth() / 2;\n }\n\n const minMarkerSize =\n d3Min(_points.current, (point: IScatterChartPoints) => {\n return d3Min(point.data as IScatterChartDataPoint[], (item: IScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const maxMarkerSize =\n d3Max(_points.current, (point: IScatterChartPoints) => {\n return d3Max(point.data as IScatterChartDataPoint[], (item: IScatterChartDataPoint) => {\n return item.markerSize as number;\n });\n }) ?? 0;\n const isContinuousXY = _xAxisType !== XAxisTypes.StringAxis && _yAxisType !== YAxisType.StringAxis;\n const extraMaxPixels = isContinuousXY\n ? getRangeForScatterMarkerSize({\n data: _points.current,\n xScale: _xAxisScale.current,\n yScalePrimary: _yAxisScale.current,\n xScaleType: props.xScaleType,\n yScaleType: props.yScaleType,\n })\n : 0;\n\n for (let i = _points.current?.length - 1; i >= 0; i--) {\n const pointsForSeries: JSXElement[] = [];\n\n const legendVal: string = _points.current?.[i]?.legend;\n const seriesColor: string = _points.current?.[i]?.color!;\n const verticaLineHeight = containerHeight - (margins.current?.bottom ?? 0) + 6;\n\n for (let j = 0; j < _points.current?.[i]?.data?.length; j++) {\n const { x, y, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points.current?.[i]?.data[j];\n const xPoint = _xAxisScale.current?.(x);\n // Use string y axis scale if needed\n const yPoint =\n _yAxisType === YAxisType.StringAxis\n ? _yAxisScale.current?.(y) + (_yAxisScale.current?.bandwidth ? _yAxisScale.current.bandwidth() / 2 : 0)\n : _yAxisScale.current?.(y);\n if (!isPlottable(xPoint, yPoint)) {\n continue;\n }\n\n const seriesId = `${_seriesId}_${i}_${j}`;\n const circleId = `${_circleId}_${i}_${j}`;\n const pointMarkerSize = (_points.current?.[i]?.data[j] as IScatterChartDataPoint).markerSize;\n const minPixel = 4;\n const maxPixel = 16;\n let circleRadius = activePoint === circleId ? 6 : 4;\n\n if (pointMarkerSize) {\n if (isContinuousXY && maxMarkerSize !== 0) {\n circleRadius = (pointMarkerSize * extraMaxPixels) / maxMarkerSize;\n } else if (!isContinuousXY && maxMarkerSize !== minMarkerSize) {\n circleRadius =\n minPixel +\n ((pointMarkerSize - minMarkerSize) / (maxMarkerSize - minMarkerSize)) * (maxPixel - minPixel);\n }\n }\n\n const isLegendSelected: boolean = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;\n\n const currentPointHidden = _points.current?.[i]?.hideNonActiveDots && activePoint !== circleId;\n const text = _points.current?.[i].data[j]?.text;\n if (!_isTextMode.current) {\n pointsForSeries.push(\n <>\n <circle\n id={circleId}\n key={circleId}\n r={Math.max(circleRadius, 4)}\n cx={xPoint + _xBandwidth.current}\n cy={yPoint}\n data-is-focusable={isLegendSelected}\n onMouseOver={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseMove={(event: React.MouseEvent<SVGElement>) =>\n _handleHover(\n x,\n y,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n event,\n )\n }\n onMouseOut={_handleMouseOut}\n onFocus={() => _handleFocus(seriesId, x, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={_handleMouseOut}\n {..._getClickHandler(_points.current?.[i]?.data[j]?.onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.1}\n fill={_getPointFill(seriesColor, circleId)}\n stroke={seriesColor}\n role=\"img\"\n aria-label={_getAriaLabel(i, j)}\n tabIndex={_points.current?.[i]?.legend !== '' ? 0 : undefined}\n />\n </>,\n );\n }\n if (_isTextMode && text) {\n pointsForSeries.push(\n <text\n key={`${circleId}-label`}\n x={xPoint + _xBandwidth.current}\n y={yPoint + Math.max(circleRadius + 12, 16)}\n className={classNames.markerLabel}\n >\n {text}\n </text>,\n );\n }\n }\n\n if (_isScatterPolarRef.current) {\n pointsForSeries.push(\n ...renderScatterPolarCategoryLabels({\n xAxisScale: _xAxisScale.current,\n yAxisScale: _yAxisScale.current,\n className: classNames.markerLabel || '',\n lineOptions: (_points.current?.[i] as Partial<ILineChartPoints>)?.lineOptions,\n }),\n );\n }\n\n series.push(\n <g\n key={`series_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, series ${i + 1} of ${_points.current?.length} with ${\n _points.current?.[i]?.data?.length\n } data points.`}\n >\n {pointsForSeries}\n </g>,\n );\n }\n return series;\n },\n [\n _xAxisScale,\n _yAxisScale,\n props.data.scatterChartData,\n _circleId,\n _getAriaLabel,\n _getPointFill,\n _handleFocus,\n _handleHover,\n _handleMouseOut,\n _legendHighlighted,\n _noLegendHighlighted,\n _seriesId,\n _xAxisType,\n _yAxisType,\n activePoint,\n isSelectedLegend,\n selectedLegendPoints,\n classNames,\n props.xScaleType,\n props.yScaleType,\n ],\n );\n\n const _initializeScatterChartData = React.useCallback(\n (\n xScale: NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n _xAxisScale.current = xScale;\n _yAxisScale.current = yScale;\n _isScatterPolarRef.current = isScatterPolarSeries(_points.current);\n _isTextMode.current = isTextMode(_points.current);\n renderSeries.current = _createPlot(xElement!, containerHeight!);\n },\n [renderSeries, _xAxisScale, _yAxisScale, _createPlot],\n );\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.*/\n\n function _getClickHandler(func?: () => void): { onClick?: () => void } {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n }\n\n function _isChartEmpty(): boolean {\n return !(\n props.data &&\n props.data.scatterChartData &&\n props.data.scatterChartData.length > 0 &&\n props.data.scatterChartData.filter((item: IScatterChartPoints) => item.data.length).length > 0\n );\n }\n\n function _closeCallout() {\n setCalloutVisible(false);\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerStack\n ? props.onRenderCalloutPerStack(stackCalloutProps)\n : props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps)\n : null;\n }\n\n const _getNumericMinMaxOfY = React.useCallback(\n (points: IScatterChartPoints[], yAxisType?: YAxisType): { startValue: number; endValue: number } => {\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, undefined, props.yScaleType);\n const yPadding = getDomainPaddingForMarkers(startValue, endValue, props.yScaleType);\n\n return {\n startValue: startValue - yPadding.start,\n endValue: endValue + yPadding.end,\n };\n },\n [props.yScaleType],\n );\n\n const { legendProps, tickValues, tickFormat } = props;\n _points.current = _injectIndexPropertyInScatterChartData(props.data.scatterChartData);\n\n let points = _points.current as IScatterChartPoints[];\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = selectedLegendPoints.length >= 1 ? selectedLegendPoints : _points.current;\n _calloutPoints = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!props.hideLegend && !_isTextMode.current) {\n legendBars = _createLegends(_points.current!); // ToDo: Memoize legends to improve performance.\n }\n const calloutProps = {\n isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover,\n hoverXValue,\n id: `toolTip${_uniqueCallOutID.current}`,\n target: refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: _closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!props.hideTooltip && isCalloutVisible),\n descriptionMessage:\n props.getCalloutDescriptionMessage && stackCalloutProps\n ? props.getCalloutDescriptionMessage(stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: _xAxisCalloutAccessibilityData,\n ...props.calloutProps,\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n const xAxisLabels: string[] = _points.current\n .map((point: ScatterChartDataWithIndex) => point.data.map((dp: IScatterChartDataPoint) => dp.x as string))\n .flat();\n\n _xAxisLabels = Array.from(new Set(xAxisLabels));\n\n // Compute unique y axis labels for string y axis\n const _yAxisLabels: string[] = _getOrderedYAxisLabels();\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n ref={cartesianChartRef}\n chartTitle={props.data.chartTitle}\n isCalloutForStack\n points={points}\n chartType={ChartTypes.ScatterChart}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n getmargins={_getMargins}\n getMinMaxOfYAxis={_getNumericMinMaxOfY}\n getDomainNRangeValues={getDomainNRangeValuesScatterChart}\n createYAxis={createNumericYAxis}\n createStringYAxis={createStringYAxis}\n getGraphData={_initializeScatterChartData}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n // Pass stringDatasetForYAxisDomain only if y axis is string\n {...(_yAxisType === YAxisType.StringAxis ? { stringDatasetForYAxisDomain: _yAxisLabels } : {})}\n onChartMouseLeave={_handleChartMouseLeave}\n enableFirstRenderOptimization={_firstRenderOptimization}\n datasetForXAxisDomain={_xAxisLabels}\n componentRef={cartesianChartRef}\n {...(_isScatterPolarRef.current ? { yMaxValue: 1, yMinValue: -1 } : {})}\n customizedCallout={_getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n\n children={(childProps: IChildProps) => {\n _xAxisScale.current = childProps.xScale!;\n _yAxisScale.current = childProps.yScalePrimary!;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={childProps.containerHeight}\n stroke={'#323130'}\n id={_verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n <g>{renderSeries.current}</g>\n </g>\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nScatterChartBase.displayName = 'ScatterChart';\n"]}
|
|
@@ -2,14 +2,13 @@ import { __assign, __extends } from "tslib";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { max as d3Max, min as d3Min } from 'd3-array';
|
|
4
4
|
import { line as d3Line } from 'd3-shape';
|
|
5
|
-
import { select as d3Select } from 'd3-selection';
|
|
6
5
|
import { scaleLinear as d3ScaleLinear, scaleBand as d3ScaleBand, scaleUtc as d3ScaleUtc, scaleTime as d3ScaleTime, } from 'd3-scale';
|
|
7
6
|
import { classNamesFunction, getId, getRTL, initializeComponentRef } from '@fluentui/react/lib/Utilities';
|
|
8
7
|
import { DirectionalHint } from '@fluentui/react/lib/Callout';
|
|
9
8
|
import { CartesianChart, ChartHoverCard, Legends, } from '../../index';
|
|
10
9
|
import { FocusZoneDirection } from '@fluentui/react-focus';
|
|
11
10
|
import { formatDateToLocaleString } from '@fluentui/chart-utilities';
|
|
12
|
-
import { ChartTypes, getAccessibleDataObject, XAxisTypes, getTypeOfAxis,
|
|
11
|
+
import { ChartTypes, getAccessibleDataObject, XAxisTypes, getTypeOfAxis, formatScientificLimitWidth, getBarWidth, getScalePadding, isScalePaddingDefined, calculateAppropriateBarWidth, findVerticalNumericMinMaxOfY, createNumericYAxis, domainRageOfVerticalNumeric, domainRangeOfDateForAreaLineScatterVerticalBarCharts, domainRangeOfXStringAxis, createStringYAxis, getNextGradient, areArraysEqual, calculateLongestLabelWidth, sortAxisCategories, calcTotalWidth, calcBandwidth, calcRequiredWidth, } from '../../utilities/index';
|
|
13
12
|
import { exportChartsAsImage } from '../../utilities/image-export-utils';
|
|
14
13
|
var CircleVisbility;
|
|
15
14
|
(function (CircleVisbility) {
|
|
@@ -526,7 +525,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
526
525
|
};
|
|
527
526
|
_this._isHavingLine = _this._checkForLine();
|
|
528
527
|
_this._calloutId = getId('callout');
|
|
529
|
-
_this._tooltipId = getId('VCTooltipID_');
|
|
530
528
|
_this._refArray = [];
|
|
531
529
|
_this._emptyChartId = getId('_VBC_empty');
|
|
532
530
|
_this._domainMargin = MIN_DOMAIN_MARGIN;
|
|
@@ -704,29 +702,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
704
702
|
}, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), "aria-label": _this._getAriaLabel(point), role: "img", onMouseLeave: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), onBlur: _this._onBarLeave, fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
|
|
705
703
|
_this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
|
|
706
704
|
});
|
|
707
|
-
// Removing un wanted tooltip div from DOM, when prop not provided.
|
|
708
|
-
if (!this.props.showXAxisLablesTooltip) {
|
|
709
|
-
try {
|
|
710
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
711
|
-
// eslint-disable-next-line no-empty
|
|
712
|
-
}
|
|
713
|
-
catch (e) { }
|
|
714
|
-
}
|
|
715
|
-
// Used to display tooltip at x axis labels.
|
|
716
|
-
if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {
|
|
717
|
-
var xAxisElement = d3Select(xElement).call(xBarScale);
|
|
718
|
-
try {
|
|
719
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
720
|
-
// eslint-disable-next-line no-empty
|
|
721
|
-
}
|
|
722
|
-
catch (e) { }
|
|
723
|
-
var tooltipProps = {
|
|
724
|
-
tooltipCls: this._classNames.tooltip,
|
|
725
|
-
id: this._tooltipId,
|
|
726
|
-
axis: xAxisElement,
|
|
727
|
-
};
|
|
728
|
-
xAxisElement && tooltipOfAxislabels(tooltipProps);
|
|
729
|
-
}
|
|
730
705
|
return bars;
|
|
731
706
|
};
|
|
732
707
|
VerticalBarChartBase.prototype._createStringBars = function (containerHeight, containerWidth, xElement) {
|
|
@@ -786,30 +761,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
786
761
|
}, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), onMouseLeave: _this._onBarLeave, onBlur: _this._onBarLeave, "data-is-focusable": !_this.props.hideTooltip && shouldHighlight, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
|
|
787
762
|
_this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
|
|
788
763
|
});
|
|
789
|
-
// Removing un wanted tooltip div from DOM, when prop not provided.
|
|
790
|
-
if (!this.props.showXAxisLablesTooltip) {
|
|
791
|
-
try {
|
|
792
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
793
|
-
// eslint-disable-next-line no-empty
|
|
794
|
-
}
|
|
795
|
-
catch (e) { }
|
|
796
|
-
}
|
|
797
|
-
// Used to display tooltip at x axis labels.
|
|
798
|
-
if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {
|
|
799
|
-
var xAxisElement = d3Select(xElement).call(xBarScale);
|
|
800
|
-
try {
|
|
801
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
802
|
-
// eslint-disable-next-line no-empty
|
|
803
|
-
}
|
|
804
|
-
catch (e) { }
|
|
805
|
-
var tooltipProps = {
|
|
806
|
-
tooltipCls: this._classNames.tooltip,
|
|
807
|
-
id: this._tooltipId,
|
|
808
|
-
axis: xAxisElement,
|
|
809
|
-
showTooltip: this.props.showXAxisLablesTooltip,
|
|
810
|
-
};
|
|
811
|
-
xAxisElement && tooltipOfAxislabels(tooltipProps);
|
|
812
|
-
}
|
|
813
764
|
return bars;
|
|
814
765
|
};
|
|
815
766
|
VerticalBarChartBase.prototype._createDateBars = function (containerHeight, containerWidth, xElement) {
|
|
@@ -867,29 +818,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
|
|
|
867
818
|
}, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), "aria-label": _this._getAriaLabel(point), role: "img", onMouseLeave: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), onBlur: _this._onBarLeave, fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
|
|
868
819
|
_this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
|
|
869
820
|
});
|
|
870
|
-
// Removing un wanted tooltip div from DOM, when prop not provided.
|
|
871
|
-
if (!this.props.showXAxisLablesTooltip) {
|
|
872
|
-
try {
|
|
873
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
874
|
-
// eslint-disable-next-line no-empty
|
|
875
|
-
}
|
|
876
|
-
catch (e) { }
|
|
877
|
-
}
|
|
878
|
-
// Used to display tooltip at x axis labels.
|
|
879
|
-
if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {
|
|
880
|
-
var xAxisElement = d3Select(xElement).call(xBarScale);
|
|
881
|
-
try {
|
|
882
|
-
document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();
|
|
883
|
-
// eslint-disable-next-line no-empty
|
|
884
|
-
}
|
|
885
|
-
catch (e) { }
|
|
886
|
-
var tooltipProps = {
|
|
887
|
-
tooltipCls: this._classNames.tooltip,
|
|
888
|
-
id: this._tooltipId,
|
|
889
|
-
axis: xAxisElement,
|
|
890
|
-
};
|
|
891
|
-
xAxisElement && tooltipOfAxislabels(tooltipProps);
|
|
892
|
-
}
|
|
893
821
|
return bars;
|
|
894
822
|
};
|
|
895
823
|
VerticalBarChartBase.prototype._onLegendHover = function (legendTitle) {
|