@fluentui/react-charts 9.1.1 → 9.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +38 -2
  2. package/dist/index.d.ts +89 -6
  3. package/lib/components/AreaChart/AreaChart.js +18 -8
  4. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  5. package/lib/components/CommonComponents/CartesianChart.js +17 -13
  6. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  7. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  8. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +4 -4
  9. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  10. package/lib/components/DeclarativeChart/DeclarativeChart.js +25 -13
  11. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
  13. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  14. package/lib/components/DonutChart/useDonutChartStyles.styles.js +3 -3
  15. package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  16. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +4 -4
  17. package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  18. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +45 -19
  19. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  20. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  21. package/lib/components/HeatMapChart/HeatMapChart.js +1 -1
  22. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  23. package/lib/components/LineChart/LineChart.js +40 -36
  24. package/lib/components/LineChart/LineChart.js.map +1 -1
  25. package/lib/components/LineChart/eventAnnotation/LabelLink.js +2 -1
  26. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  27. package/lib/components/ResponsiveContainer/ResponsiveContainer.js +51 -22
  28. package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  29. package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  30. package/lib/components/ResponsiveContainer/index.js +2 -0
  31. package/lib/components/ResponsiveContainer/index.js.map +1 -1
  32. package/lib/components/ResponsiveContainer/withResponsiveContainer.js +19 -0
  33. package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
  34. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +3 -3
  35. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  36. package/lib/components/ScatterChart/ScatterChart.js +1 -1
  37. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  38. package/lib/components/VerticalBarChart/VerticalBarChart.js +5 -5
  39. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  40. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +62 -24
  41. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  42. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  43. package/lib/types/DataPoint.js.map +1 -1
  44. package/lib/utilities/SVGTooltipText.js +3 -3
  45. package/lib/utilities/SVGTooltipText.js.map +1 -1
  46. package/lib/utilities/utilities.js +27 -36
  47. package/lib/utilities/utilities.js.map +1 -1
  48. package/lib-commonjs/components/AreaChart/AreaChart.js +16 -7
  49. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  50. package/lib-commonjs/components/CommonComponents/CartesianChart.js +17 -13
  51. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  52. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  53. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +5 -5
  54. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  55. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +25 -13
  56. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  57. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
  58. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  59. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +4 -4
  60. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  61. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +6 -4
  62. package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
  63. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +44 -18
  64. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  65. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
  66. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +1 -1
  67. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  68. package/lib-commonjs/components/LineChart/LineChart.js +40 -36
  69. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  70. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +2 -1
  71. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  72. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +47 -21
  73. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
  74. package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
  75. package/lib-commonjs/components/ResponsiveContainer/index.js +2 -0
  76. package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
  77. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js +27 -0
  78. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
  79. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +4 -4
  80. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  81. package/lib-commonjs/components/ScatterChart/ScatterChart.js +1 -1
  82. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  83. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +5 -5
  84. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  85. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +61 -23
  86. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  87. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  88. package/lib-commonjs/types/DataPoint.js.map +1 -1
  89. package/lib-commonjs/utilities/SVGTooltipText.js +3 -3
  90. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  91. package/lib-commonjs/utilities/utilities.js +27 -36
  92. package/lib-commonjs/utilities/utilities.js.map +1 -1
  93. package/package.json +10 -10
  94. package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -23
  95. package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +0 -1
  96. package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -47
  97. package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["SVGTooltipText.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { usePortalMountNode } from '@fluentui/react-shared-contexts';\nimport { Tooltip } from '@fluentui/react-tooltip';\nimport { Async } from './async-utils';\nimport { KeyCodes } from './KeyCodes';\nimport { useId } from '@fluentui/react-utilities';\n\ninterface SVGTooltipTextProps {\n closeDelay?: number;\n content: string;\n delay?: number;\n tooltipProps?: React.ComponentProps<typeof Tooltip>;\n textProps?: React.SVGAttributes<SVGTextElement>;\n maxWidth?: number;\n maxHeight?: number;\n shouldReceiveFocus?: boolean;\n isTooltipVisibleProp?: boolean;\n wrapContent?: (content: string, id: string, maxWidth: number, maxHeight?: number) => boolean;\n showBackground?: boolean;\n className?: string;\n}\n\nexport const SVGTooltipText: React.FunctionComponent<SVGTooltipTextProps> = React.forwardRef<\n HTMLDivElement,\n SVGTooltipTextProps\n>((props, forwardedRef) => {\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [textWidth, setTextWidth] = useState(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const tooltipHostRef = useRef<SVGTextElement>(null);\n const async = useRef(new Async()).current;\n const dismissTimerId = useRef<number>();\n const openTimerId = useRef<number>();\n const tooltipHostId = useRef(useId('tooltip-host')).current;\n const ignoreNextFocusEvent = useRef(false);\n const portalMountNode = usePortalMountNode();\n const PADDING = 4;\n\n const wrapContentCallback = useCallback(() => {\n if (\n props.content &&\n props.wrapContent &&\n props.wrapContent(props.content, tooltipHostId, props.maxWidth ?? 100, props.maxHeight)\n // ToDo - Specify a correct fallback value here\n ) {\n setIsOverflowing(true);\n } else {\n setIsOverflowing(false);\n }\n }, [props, tooltipHostId]);\n\n const measureText = useCallback((): void => {\n if (tooltipHostRef.current && typeof tooltipHostRef.current.getBBox === 'function') {\n const bbox = tooltipHostRef.current.getBBox();\n setTextWidth(bbox.width);\n setTextHeight(bbox.height);\n }\n }, []);\n\n useEffect(() => {\n wrapContentCallback();\n return () => {\n async.dispose();\n };\n }, [wrapContentCallback, async]);\n\n useEffect(() => {\n wrapContentCallback();\n }, [props.maxWidth, props.maxHeight, wrapContentCallback]);\n\n useEffect(() => {\n if (isTooltipVisible) {\n measureText();\n }\n }, [isTooltipVisible, measureText]);\n\n useEffect(() => {\n // Recalculate text dimensions when content or dimensions change\n measureText();\n }, [props.content, props.textProps, props.maxWidth, props.maxHeight, measureText]);\n\n const hideTooltip = useCallback(() => {\n async.clearTimeout(openTimerId.current!);\n async.clearTimeout(dismissTimerId.current!);\n setIsTooltipVisible(false);\n }, [async]);\n\n const onTooltipMouseEnter = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n if (!isOverflowing) {\n return;\n }\n\n if (ev.target && portalMountNode?.contains(ev.target as HTMLElement)) {\n return;\n }\n\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.delay !== 0) {\n openTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(true);\n }, props.delay!);\n } else {\n setIsTooltipVisible(true);\n }\n },\n [isOverflowing, portalMountNode, async, props.delay],\n );\n\n const onTooltipMouseLeave = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.closeDelay) {\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, props.closeDelay);\n } else {\n setIsTooltipVisible(false);\n }\n },\n [async, props.closeDelay],\n );\n\n const onTooltipFocus = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n if (ignoreNextFocusEvent.current) {\n ignoreNextFocusEvent.current = false;\n return;\n }\n onTooltipMouseEnter(ev as unknown as React.MouseEvent<SVGElement>);\n },\n [onTooltipMouseEnter],\n );\n\n const onTooltipBlur = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n ignoreNextFocusEvent.current = document?.activeElement === ev.target;\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, 0);\n },\n [async],\n );\n\n const onTooltipKeyDown = useCallback(\n (ev: React.KeyboardEvent<SVGElement>) => {\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && isTooltipVisible) {\n hideTooltip();\n ev.stopPropagation();\n }\n },\n [isTooltipVisible, hideTooltip],\n );\n\n const showTooltip =\n (props.isTooltipVisibleProp && isOverflowing && !!props.content) || (isTooltipVisible && !!props.content);\n\n const rectX = (typeof props.textProps?.x === 'number' ? props.textProps.x : 0) - (textWidth ?? 0) / 2 - PADDING;\n const rectY = (typeof props.textProps?.y === 'number' ? props.textProps.y : 0) - (textHeight ?? 0) / 2 - PADDING;\n\n return (\n <>\n {props.showBackground && (\n <rect\n x={rectX}\n y={rectY}\n width={(textWidth ?? 0) + 2 * PADDING}\n height={(textHeight ?? 0) + 2 * PADDING}\n transform={props.textProps?.transform}\n className={props.className}\n />\n )}\n <Tooltip\n relationship=\"description\"\n {...props.tooltipProps}\n withArrow\n content={props.content}\n // targetElement={getTargetElement()} ToDo - This assignment is causing build failure. Needs to be fixed.\n visible={showTooltip}\n >\n <text\n {...props.textProps}\n id={tooltipHostId}\n ref={tooltipHostRef}\n onFocusCapture={onTooltipFocus}\n onBlurCapture={onTooltipBlur}\n onMouseEnter={onTooltipMouseEnter}\n onMouseLeave={onTooltipMouseLeave}\n onKeyDown={onTooltipKeyDown}\n data-is-focusable={props.shouldReceiveFocus && isOverflowing}\n >\n {props.content}\n </text>\n </Tooltip>\n </>\n );\n});\n\nSVGTooltipText.defaultProps = {\n delay: 0,\n showBackground: false,\n};\n"],"names":["SVGTooltipText","React","forwardRef","props","forwardedRef","isTooltipVisible","setIsTooltipVisible","useState","isOverflowing","setIsOverflowing","textWidth","setTextWidth","textHeight","setTextHeight","tooltipHostRef","useRef","async","Async","current","dismissTimerId","openTimerId","tooltipHostId","useId","ignoreNextFocusEvent","portalMountNode","usePortalMountNode","PADDING","wrapContentCallback","useCallback","content","wrapContent","maxWidth","maxHeight","measureText","getBBox","bbox","width","height","useEffect","dispose","textProps","hideTooltip","clearTimeout","onTooltipMouseEnter","ev","target","contains","delay","setTimeout","onTooltipMouseLeave","closeDelay","onTooltipFocus","onTooltipBlur","document","activeElement","onTooltipKeyDown","which","KeyCodes","escape","ctrlKey","stopPropagation","showTooltip","isTooltipVisibleProp","rectX","x","rectY","y","createElement","Fragment","showBackground","rect","transform","className","Tooltip","relationship","tooltipProps","withArrow","visible","text","id","ref","onFocusCapture","onBlurCapture","onMouseEnter","onMouseLeave","onKeyDown","data-is-focusable","shouldReceiveFocus","defaultProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["SVGTooltipText.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { usePortalMountNode } from '@fluentui/react-shared-contexts';\nimport { Tooltip } from '@fluentui/react-tooltip';\nimport { Async } from './async-utils';\nimport { KeyCodes } from './KeyCodes';\nimport { useId } from '@fluentui/react-utilities';\n\ninterface SVGTooltipTextProps {\n closeDelay?: number;\n content: string;\n delay?: number;\n tooltipProps?: React.ComponentProps<typeof Tooltip>;\n textProps?: React.SVGAttributes<SVGTextElement>;\n maxWidth?: number;\n maxHeight?: number;\n shouldReceiveFocus?: boolean;\n isTooltipVisibleProp?: boolean;\n wrapContent?: (content: string, id: string, maxWidth: number, maxHeight?: number) => boolean;\n showBackground?: boolean;\n className?: string;\n}\n\nexport const SVGTooltipText: React.FunctionComponent<SVGTooltipTextProps> = React.forwardRef<\n HTMLDivElement,\n SVGTooltipTextProps\n>((props, forwardedRef) => {\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [textWidth, setTextWidth] = useState(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const tooltipHostRef = useRef<SVGTextElement>(null);\n const async = useRef(new Async()).current;\n const dismissTimerId = useRef<number>();\n const openTimerId = useRef<number>();\n const tooltipHostId = useRef(useId('tooltip-host')).current;\n const ignoreNextFocusEvent = useRef(false);\n const portalMountNode = usePortalMountNode();\n const PADDING = 3;\n\n const wrapContentCallback = useCallback(() => {\n if (\n props.content &&\n props.wrapContent &&\n props.wrapContent(props.content, tooltipHostId, props.maxWidth ?? 100, props.maxHeight)\n // ToDo - Specify a correct fallback value here\n ) {\n setIsOverflowing(true);\n } else {\n setIsOverflowing(false);\n }\n }, [props, tooltipHostId]);\n\n const measureText = useCallback((): void => {\n if (tooltipHostRef.current && typeof tooltipHostRef.current.getBBox === 'function') {\n const bbox = tooltipHostRef.current.getBBox();\n setTextWidth(bbox.width);\n setTextHeight(bbox.height);\n }\n }, []);\n\n useEffect(() => {\n wrapContentCallback();\n return () => {\n async.dispose();\n };\n }, [wrapContentCallback, async]);\n\n useEffect(() => {\n wrapContentCallback();\n }, [props.maxWidth, props.maxHeight, wrapContentCallback]);\n\n useEffect(() => {\n if (isTooltipVisible) {\n measureText();\n }\n }, [isTooltipVisible, measureText]);\n\n useEffect(() => {\n // Recalculate text dimensions when content or dimensions change\n measureText();\n }, [props.content, props.textProps, props.maxWidth, props.maxHeight, measureText]);\n\n const hideTooltip = useCallback(() => {\n async.clearTimeout(openTimerId.current!);\n async.clearTimeout(dismissTimerId.current!);\n setIsTooltipVisible(false);\n }, [async]);\n\n const onTooltipMouseEnter = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n if (!isOverflowing) {\n return;\n }\n\n if (ev.target && portalMountNode?.contains(ev.target as HTMLElement)) {\n return;\n }\n\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.delay !== 0) {\n openTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(true);\n }, props.delay!);\n } else {\n setIsTooltipVisible(true);\n }\n },\n [isOverflowing, portalMountNode, async, props.delay],\n );\n\n const onTooltipMouseLeave = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.closeDelay) {\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, props.closeDelay);\n } else {\n setIsTooltipVisible(false);\n }\n },\n [async, props.closeDelay],\n );\n\n const onTooltipFocus = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n if (ignoreNextFocusEvent.current) {\n ignoreNextFocusEvent.current = false;\n return;\n }\n onTooltipMouseEnter(ev as unknown as React.MouseEvent<SVGElement>);\n },\n [onTooltipMouseEnter],\n );\n\n const onTooltipBlur = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n ignoreNextFocusEvent.current = document?.activeElement === ev.target;\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, 0);\n },\n [async],\n );\n\n const onTooltipKeyDown = useCallback(\n (ev: React.KeyboardEvent<SVGElement>) => {\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && isTooltipVisible) {\n hideTooltip();\n ev.stopPropagation();\n }\n },\n [isTooltipVisible, hideTooltip],\n );\n\n const showTooltip =\n (props.isTooltipVisibleProp && isOverflowing && !!props.content) || (isTooltipVisible && !!props.content);\n\n const rectX = (typeof props.textProps?.x === 'number' ? props.textProps.x : 0) - (textWidth ?? 0) / 2 - PADDING;\n const rectY = (typeof props.textProps?.y === 'number' ? props.textProps.y : 0) - (textHeight ?? 0) / 2 - 2 * PADDING;\n\n return (\n <>\n {props.showBackground && (\n <rect\n x={rectX}\n y={rectY}\n width={(textWidth ?? 0) + 2 * PADDING}\n height={(textHeight ?? 0) + PADDING}\n transform={props.textProps?.transform}\n className={props.className}\n />\n )}\n <Tooltip\n relationship=\"description\"\n {...props.tooltipProps}\n withArrow\n content={props.content}\n // targetElement={getTargetElement()} ToDo - This assignment is causing build failure. Needs to be fixed.\n visible={showTooltip}\n >\n <text\n {...props.textProps}\n id={tooltipHostId}\n ref={tooltipHostRef}\n onFocusCapture={onTooltipFocus}\n onBlurCapture={onTooltipBlur}\n onMouseEnter={onTooltipMouseEnter}\n onMouseLeave={onTooltipMouseLeave}\n onKeyDown={onTooltipKeyDown}\n data-is-focusable={props.shouldReceiveFocus && isOverflowing}\n >\n {props.content}\n </text>\n </Tooltip>\n </>\n );\n});\n\nSVGTooltipText.defaultProps = {\n delay: 0,\n showBackground: false,\n};\n"],"names":["SVGTooltipText","React","forwardRef","props","forwardedRef","isTooltipVisible","setIsTooltipVisible","useState","isOverflowing","setIsOverflowing","textWidth","setTextWidth","textHeight","setTextHeight","tooltipHostRef","useRef","async","Async","current","dismissTimerId","openTimerId","tooltipHostId","useId","ignoreNextFocusEvent","portalMountNode","usePortalMountNode","PADDING","wrapContentCallback","useCallback","content","wrapContent","maxWidth","maxHeight","measureText","getBBox","bbox","width","height","useEffect","dispose","textProps","hideTooltip","clearTimeout","onTooltipMouseEnter","ev","target","contains","delay","setTimeout","onTooltipMouseLeave","closeDelay","onTooltipFocus","onTooltipBlur","document","activeElement","onTooltipKeyDown","which","KeyCodes","escape","ctrlKey","stopPropagation","showTooltip","isTooltipVisibleProp","rectX","x","rectY","y","createElement","Fragment","showBackground","rect","transform","className","Tooltip","relationship","tooltipProps","withArrow","visible","text","id","ref","onFocusCapture","onBlurCapture","onMouseEnter","onMouseLeave","onKeyDown","data-is-focusable","shouldReceiveFocus","defaultProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -261,7 +261,7 @@ function createNumericXAxis(xAxisParams, tickParams, chartType, culture) {
261
261
  if (hideTickOverlap && typeof xAxisCount === 'undefined') {
262
262
  const longestLabelWidth = calculateLongestLabelWidth(xAxisScale.ticks().map(tickFormat), '.fui-cart__xAxis text') + 20;
263
263
  const [start, end] = xAxisScale.range();
264
- tickCount = Math.max(1, Math.floor(Math.abs(end - start) / longestLabelWidth));
264
+ tickCount = Math.min(Math.max(1, Math.floor(Math.abs(end - start) / longestLabelWidth)), 10);
265
265
  }
266
266
  const xAxis = (0, _d3axis.axisBottom)(xAxisScale).tickSize(xAxistickSize).tickPadding(tickPadding).ticks(tickCount).tickFormat(tickFormat);
267
267
  if (chartType === 6) {
@@ -508,7 +508,7 @@ function createDateXAxis(xAxisParams, tickParams, culture, options, timeFormatLo
508
508
  };
509
509
  const longestLabelWidth = calculateLongestLabelWidth(xAxisScale.ticks().map(tickFormat), '.fui-cart__xAxis text') + 40;
510
510
  const [start, end] = xAxisScale.range();
511
- const maxPossibleTickCount = Math.max(1, Math.floor(Math.abs(end - start) / longestLabelWidth));
511
+ const maxPossibleTickCount = Math.min(Math.max(1, Math.floor(Math.abs(end - start) / longestLabelWidth)), 10);
512
512
  tickCount = Math.min(maxPossibleTickCount, xAxisCount !== null && xAxisCount !== void 0 ? xAxisCount : tickCount);
513
513
  const xAxis = (0, _d3axis.axisBottom)(xAxisScale).tickSize(xAxistickSize).tickPadding(tickPadding).ticks(tickCount).tickFormat(tickFormat);
514
514
  tickParams.tickValues ? xAxis.tickValues(tickParams.tickValues) : '';
@@ -664,9 +664,9 @@ function createNumericYAxisForOtherCharts(yAxisParams, isRtl, axisData, isIntegr
664
664
  endValue: 0
665
665
  }, yAxisElement = null, yMaxValue = 0, yMinValue = 0, containerHeight, containerWidth, margins, tickPadding = 12, maxOfYVal = 0, yAxisTickFormat, yAxisTickCount = 4, eventAnnotationProps, eventLabelHeight } = yAxisParams;
666
666
  // maxOfYVal coming from only area chart and Grouped vertical bar chart(Calculation done at base file)
667
- const tempVal = maxOfYVal || yMinMaxValues.endValue;
667
+ const tempVal = maxOfYVal || yMinMaxValues.endValue || 0;
668
668
  const finalYmax = tempVal > yMaxValue ? tempVal : yMaxValue;
669
- const finalYmin = Math.min(yMinMaxValues.startValue, yMinValue || 0);
669
+ const finalYmin = Math.min(yMinMaxValues.startValue || 0, yMinValue || 0);
670
670
  const domainValues = prepareDatapoints(finalYmax, finalYmin, yAxisTickCount, isIntegralDataset, roundedTicks);
671
671
  let yMin = finalYmin;
672
672
  let yMax = domainValues[domainValues.length - 1];
@@ -1232,16 +1232,18 @@ function getDomainNRangeValues(points, margins, width, chartType, isRTL, xAxisTy
1232
1232
  }
1233
1233
  return domainNRangeValue;
1234
1234
  }
1235
- function findNumericMinMaxOfY(points) {
1236
- const yMax = (0, _d3array.max)(points, (point)=>{
1237
- return (0, _d3array.max)(point.data, (item)=>item.y);
1238
- });
1239
- const yMin = (0, _d3array.min)(points, (point)=>{
1240
- return (0, _d3array.min)(point.data, (item)=>item.y);
1235
+ function findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale) {
1236
+ const values = [];
1237
+ points.forEach((point)=>{
1238
+ if (!useSecondaryYScale === !point.useSecondaryYScale) {
1239
+ point.data.forEach((data)=>{
1240
+ values.push(data.y);
1241
+ });
1242
+ }
1241
1243
  });
1242
1244
  return {
1243
- startValue: yMin,
1244
- endValue: yMax
1245
+ startValue: (0, _d3array.min)(values),
1246
+ endValue: (0, _d3array.max)(values)
1245
1247
  };
1246
1248
  }
1247
1249
  function findVSBCNumericMinMaxOfY(dataset) {
@@ -1252,32 +1254,21 @@ function findVSBCNumericMinMaxOfY(dataset) {
1252
1254
  endValue: yMax
1253
1255
  };
1254
1256
  }
1255
- function findVerticalNumericMinMaxOfY(points) {
1256
- const yMax = (0, _d3array.max)(points, (point)=>{
1257
- if (point.lineData !== undefined) {
1258
- if (point.y > point.lineData.y) {
1259
- return point.y;
1260
- } else {
1261
- return point.lineData.y;
1262
- }
1263
- } else {
1264
- return point.y;
1257
+ function findVerticalNumericMinMaxOfY(points, yAxisType, useSecondaryYScale) {
1258
+ const values = [];
1259
+ points.forEach((point)=>{
1260
+ if (!useSecondaryYScale) {
1261
+ values.push(point.y);
1265
1262
  }
1266
- });
1267
- const yMin = (0, _d3array.min)(points, (point)=>{
1268
- if (point.lineData !== undefined) {
1269
- if (point.y < point.lineData.y) {
1270
- return point.y;
1271
- } else {
1272
- return point.lineData.y;
1263
+ if (typeof point.lineData !== 'undefined') {
1264
+ if (!useSecondaryYScale === !point.lineData.useSecondaryYScale) {
1265
+ values.push(point.lineData.y);
1273
1266
  }
1274
- } else {
1275
- return point.y;
1276
1267
  }
1277
1268
  });
1278
1269
  return {
1279
- startValue: yMin,
1280
- endValue: yMax
1270
+ startValue: (0, _d3array.min)(values),
1271
+ endValue: (0, _d3array.max)(values)
1281
1272
  };
1282
1273
  }
1283
1274
  function findHBCWANumericMinMaxOfY(points, yAxisType) {
@@ -1294,19 +1285,19 @@ function findHBCWANumericMinMaxOfY(points, yAxisType) {
1294
1285
  endValue: 0
1295
1286
  };
1296
1287
  }
1297
- function getMinMaxOfYAxis(points, chartType, yAxisType = 0) {
1288
+ function getMinMaxOfYAxis(points, chartType, yAxisType = 0, useSecondaryYScale) {
1298
1289
  let minMaxValues;
1299
1290
  switch(chartType){
1300
1291
  case 0:
1301
1292
  case 1:
1302
1293
  case 7:
1303
- minMaxValues = findNumericMinMaxOfY(points);
1294
+ minMaxValues = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);
1304
1295
  break;
1305
1296
  case 3:
1306
1297
  minMaxValues = findVSBCNumericMinMaxOfY(points);
1307
1298
  break;
1308
1299
  case 2:
1309
- minMaxValues = findVerticalNumericMinMaxOfY(points);
1300
+ minMaxValues = findVerticalNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);
1310
1301
  break;
1311
1302
  case 6:
1312
1303
  minMaxValues = findHBCWANumericMinMaxOfY(points, yAxisType);