@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.
- package/CHANGELOG.md +38 -2
- package/dist/index.d.ts +89 -6
- package/lib/components/AreaChart/AreaChart.js +18 -8
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.js +17 -13
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +4 -4
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +25 -13
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +3 -3
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +4 -4
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +45 -19
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +40 -36
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js +2 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +51 -22
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib/components/ResponsiveContainer/index.js +2 -0
- package/lib/components/ResponsiveContainer/index.js.map +1 -1
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js +19 -0
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +3 -3
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +1 -1
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +5 -5
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +62 -24
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/types/DataPoint.js.map +1 -1
- package/lib/utilities/SVGTooltipText.js +3 -3
- package/lib/utilities/SVGTooltipText.js.map +1 -1
- package/lib/utilities/utilities.js +27 -36
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.js +16 -7
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +17 -13
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +5 -5
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +25 -13
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +4 -4
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +6 -4
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +44 -18
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +40 -36
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +2 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +47 -21
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/index.js +2 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js +27 -0
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +4 -4
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +5 -5
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +61 -23
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/types/DataPoint.js.map +1 -1
- package/lib-commonjs/utilities/SVGTooltipText.js +3 -3
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +27 -36
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +10 -10
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -23
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +0 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -47
- 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
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
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:
|
|
1244
|
-
endValue:
|
|
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
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
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
|
-
|
|
1268
|
-
|
|
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:
|
|
1280
|
-
endValue:
|
|
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);
|