@oracle/oraclejet-preact 20.0.2 → 20.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/amd/{BarChart-f429b382.js → BarChart-994cb8f0.js} +2 -2
- package/amd/{BarChart-f429b382.js.map → BarChart-994cb8f0.js.map} +1 -1
- package/amd/{Chart-57965de4.js → Chart-d9eafc7a.js} +2 -2
- package/amd/{Chart-57965de4.js.map → Chart-d9eafc7a.js.map} +1 -1
- package/amd/{ComboChart-c42ed049.js → ComboChart-5a6f6c8a.js} +2 -2
- package/amd/{ComboChart-c42ed049.js.map → ComboChart-5a6f6c8a.js.map} +1 -1
- package/amd/ExpandableList-233c279e.js +2 -0
- package/amd/{ExpandableList-a9a86ad8.js.map → ExpandableList-233c279e.js.map} +1 -1
- package/amd/{InlineSelectSingle-7c1cc5b5.js → InlineSelectSingle-87bc8a45.js} +2 -2
- package/amd/{InlineSelectSingle-7c1cc5b5.js.map → InlineSelectSingle-87bc8a45.js.map} +1 -1
- package/amd/{LineAreaChart-48efb7f7.js → LineAreaChart-47fc17d2.js} +2 -2
- package/amd/{LineAreaChart-48efb7f7.js.map → LineAreaChart-47fc17d2.js.map} +1 -1
- package/amd/ListView-02a92d18.js +2 -0
- package/amd/{ListView-6d21e8f9.js.map → ListView-02a92d18.js.map} +1 -1
- package/amd/PRIVATE_Chart.js +1 -1
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/{ScatterChart-6427e7ec.js → ScatterChart-7bd0f601.js} +2 -2
- package/amd/{ScatterChart-6427e7ec.js.map → ScatterChart-7bd0f601.js.map} +1 -1
- package/amd/{SelectMobileFieldInput-d499ef86.js → SelectMobileFieldInput-4795a794.js} +2 -2
- package/amd/{SelectMobileFieldInput-d499ef86.js.map → SelectMobileFieldInput-4795a794.js.map} +1 -1
- package/amd/{SelectMultiple-cc9bffc6.js → SelectMultiple-e216b16c.js} +2 -2
- package/amd/{SelectMultiple-cc9bffc6.js.map → SelectMultiple-e216b16c.js.map} +1 -1
- package/amd/{SelectSingle-2bb35b67.js → SelectSingle-d53cf202.js} +2 -2
- package/amd/{SelectSingle-2bb35b67.js.map → SelectSingle-d53cf202.js.map} +1 -1
- package/amd/Theme-redwood/theme.css +209 -209
- package/amd/Theme-stable/theme.css +160 -160
- package/amd/UNSAFE_BarChart/__test__/BarChart.spec.js +1 -1
- package/amd/UNSAFE_BarChart.js +1 -1
- package/amd/UNSAFE_ComboChart.js +1 -1
- package/amd/UNSAFE_ExpandableList.js +1 -1
- package/amd/UNSAFE_InlineSelectSingle.js +1 -1
- package/amd/UNSAFE_LineAreaChart.js +1 -1
- package/amd/UNSAFE_ListView.js +1 -1
- package/amd/UNSAFE_ScatterChart.js +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_VirtualizedListView.js +1 -1
- package/amd/VirtualizedListView-a0f338c2.js +2 -0
- package/amd/{VirtualizedListView-1ae7151d.js.map → VirtualizedListView-a0f338c2.js.map} +1 -1
- package/amd/{useDisplayValue-0e90bf4c.js → useDisplayValue-9b671893.js} +2 -2
- package/amd/{useDisplayValue-0e90bf4c.js.map → useDisplayValue-9b671893.js.map} +1 -1
- package/amd/useSelectCommon-f33709d2.js +2 -0
- package/amd/{useSelectCommon-a02ddf3c.js.map → useSelectCommon-f33709d2.js.map} +1 -1
- package/cjs/{BaseCardView-c0909427.js → BaseCardView-ba63723a.js} +4 -1
- package/cjs/{BaseCardView-c0909427.js.map → BaseCardView-ba63723a.js.map} +1 -1
- package/cjs/PRIVATE_BaseCardView.js +1 -1
- package/cjs/PRIVATE_TableList.js +4 -4
- package/cjs/SegmentStyles.styles.css +9 -12
- package/cjs/SegmentStyles.styles2.css +12 -9
- package/cjs/{TabBar-27ae2c21.js → TabBar-4bc753a9.js} +3 -1
- package/{es/TabBar-67ca442c.js.map → cjs/TabBar-4bc753a9.js.map} +1 -1
- package/cjs/Theme-redwood/theme.css +146 -146
- package/cjs/Theme-stable/theme.css +311 -311
- package/cjs/UNSAFE_CardFlexView.js +1 -1
- package/cjs/UNSAFE_CardGridView.js +1 -1
- package/cjs/UNSAFE_ListView.js +53 -53
- package/cjs/UNSAFE_OverflowTabBar.js +10 -10
- package/cjs/UNSAFE_ReorderableTabBar.js +12 -12
- package/cjs/UNSAFE_TabBar.js +10 -10
- package/cjs/UNSAFE_TabBarMixed.js +8 -8
- package/es/{BaseCardView-b3d8bae0.js → BaseCardView-85b9a71e.js} +1 -4
- package/es/{BaseCardView-b3d8bae0.js.map → BaseCardView-85b9a71e.js.map} +1 -1
- package/es/ButtonLayoutVariants.styles.css +2 -2
- package/es/ButtonLayoutVariants.styles2.css +2 -2
- package/es/{Chart-b866a74c.js → Chart-8c63da28.js} +2 -2
- package/es/{Chart-b866a74c.js.map → Chart-8c63da28.js.map} +1 -1
- package/es/CheckboxSetContext-1be56556.js +9 -0
- package/es/CheckboxSetContext-1be56556.js.map +1 -0
- package/es/{ColorPicker-ae648c4c.js → ColorPicker-fa103067.js} +2 -2
- package/es/{ColorPicker-ae648c4c.js.map → ColorPicker-fa103067.js.map} +1 -1
- package/es/PRIVATE_BaseCardView.js +1 -1
- package/es/PRIVATE_Chart.js +4 -4
- package/es/PRIVATE_CollapsibleNavigationList.js +25 -25
- package/es/PRIVATE_TableList.js +4 -4
- package/es/SegmentStyles.styles.css +12 -9
- package/es/SegmentStyles.styles2.css +9 -12
- package/es/{TabBar-67ca442c.js → TabBar-10488830.js} +1 -3
- package/{cjs/TabBar-27ae2c21.js.map → es/TabBar-10488830.js.map} +1 -1
- package/es/Theme-redwood/theme.css +506 -506
- package/es/Theme-stable/theme.css +427 -427
- package/es/UNSAFE_BarChart.js +4 -4
- package/es/UNSAFE_ButtonLayout/themes/redwood/ButtonLayoutTheme.js +1 -1
- package/es/UNSAFE_ButtonLayout/themes/redwood/ButtonLayoutVariants.css.js +1 -1
- package/es/UNSAFE_ButtonLayout/themes/stable/ButtonLayoutTheme.js +1 -1
- package/es/UNSAFE_ButtonLayout/themes/stable/ButtonLayoutVariants.css.js +1 -1
- package/es/UNSAFE_ButtonLayout.js +1 -1
- package/es/UNSAFE_CardFlexView.js +1 -1
- package/es/UNSAFE_CardGridView.js +1 -1
- package/es/UNSAFE_CheckboxItem.js +61 -122
- package/es/UNSAFE_CheckboxItem.js.map +1 -1
- package/es/UNSAFE_CheckboxSet.js +49 -15
- package/es/UNSAFE_CheckboxSet.js.map +1 -1
- package/es/UNSAFE_ColorPicker.js +25 -25
- package/es/UNSAFE_ComboChart.js +4 -4
- package/es/UNSAFE_FlatTreeView.js +14 -14
- package/es/UNSAFE_InputColor.js +2 -2
- package/es/UNSAFE_InputDateMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputDateMask.js +1 -1
- package/es/UNSAFE_InputDatePicker.js +1 -1
- package/es/UNSAFE_InputTimeMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputTimeMask.js +1 -1
- package/es/UNSAFE_LineAreaChart.js +4 -4
- package/es/UNSAFE_ListView.js +53 -53
- package/es/UNSAFE_OverflowTabBar.js +10 -10
- package/es/UNSAFE_ReorderableTabBar.js +12 -12
- package/es/UNSAFE_RichCheckboxSet.js +42 -46
- package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
- package/es/UNSAFE_RichSelectionItem.js +89 -152
- package/es/UNSAFE_RichSelectionItem.js.map +1 -1
- package/es/UNSAFE_ScatterChart.js +4 -4
- package/es/UNSAFE_TabBar.js +10 -10
- package/es/UNSAFE_TabBarMixed.js +8 -8
- package/es/UNSAFE_Toolbar.js +1 -1
- package/package.json +2 -2
- package/amd/ExpandableList-a9a86ad8.js +0 -2
- package/amd/ListView-6d21e8f9.js +0 -2
- package/amd/VirtualizedListView-1ae7151d.js +0 -2
- package/amd/useSelectCommon-a02ddf3c.js +0 -2
- package/es/CheckboxSet-3aab5935.js +0 -51
- package/es/CheckboxSet-3aab5935.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart-57965de4.js","sources":["../../src/PRIVATE_Axis/utils/axisNavUtils.ts","../../src/PRIVATE_VisOverview/OverviewBackground.tsx","../../src/PRIVATE_PlotArea/ReferenceObjects.tsx","../../src/PRIVATE_Chart/ChartWithDimensions.tsx","../../src/utils/PRIVATE_chartUtils/refObjectsNavUtils.ts","../../src/PRIVATE_VisSVGText/useTextTruncation.ts","../../src/PRIVATE_VisOverview/utils.ts","../../src/PRIVATE_Chart/overviewUtils.tsx","../../src/PRIVATE_Chart/Chart.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { GroupLevelItem } from '#PRIVATE_Axis/groupAxis/hierarchicalUtils';\nimport { ChartGroupInfo } from '#utils/UNSAFE_visTypes/chart';\n\ntype isGroupNavigableType = (levelIndex: number, groupIndex: number) => boolean;\n\n/**\n * Returns the parent group for the navigable item.\n * @param levelsArray The levels array.\n * @param levelIndex The levelIndex of current naviable group..\n * @param groupIndex The groupIndex of current navigable group.\n * @returns\n */\nexport function getParentGroup(\n levelsArray: GroupLevelItem[][],\n levelIndex: number,\n groupIndex: number,\n isGroupNavigable: isGroupNavigableType\n) {\n const path = levelsArray[levelIndex][groupIndex].path;\n if (path.length === 1) {\n return {\n levelIndex,\n groupIndex\n };\n }\n\n let lIndex = Math.max(0, levelIndex - 1);\n const groupItem = levelsArray[levelIndex][groupIndex];\n const { start, end } = groupItem;\n\n while (lIndex >= 0) {\n for (let i = 0; i < levelsArray[lIndex].length; i++) {\n const { start: s, end: e } = levelsArray[lIndex][i];\n if (s <= start && end <= e) {\n if (isGroupNavigable(lIndex, i)) {\n return { groupIndex: i, levelIndex: lIndex };\n }\n }\n }\n lIndex -= 1;\n }\n\n return {\n levelIndex,\n groupIndex\n };\n}\n\n/**\n * @param levelsArray The levels array.\n * @param levelIndex The levelIndex of current navigable item.\n * @param groupIndex The groupIndex of current navigable item.\n * @returns\n */\nexport function getChildGroup(\n levelsArray: GroupLevelItem[][],\n levelIndex: number,\n groupIndex: number,\n isGroupNavigable: isGroupNavigableType\n) {\n if (levelIndex === levelsArray.length - 1) {\n return { levelIndex, groupIndex };\n }\n\n const lIndex = Math.min(levelsArray.length - 1, levelIndex + 1);\n\n const groupItem = levelsArray[levelIndex][groupIndex];\n const { start, end } = groupItem;\n\n while (lIndex <= levelsArray.length - 1) {\n for (let i = 0; i < levelsArray[lIndex].length; i++) {\n const { start: s, end: e } = levelsArray[lIndex][i];\n if (start <= s && e <= end) {\n if (isGroupNavigable(lIndex, i)) {\n return { groupIndex: i, levelIndex: lIndex };\n }\n }\n }\n }\n return {\n levelIndex,\n groupIndex\n };\n}\n\nexport function getNextGroup(\n levelsArray: GroupLevelItem[][],\n info: ChartGroupInfo,\n isGroupNavigable: isGroupNavigableType\n): ChartGroupInfo | undefined {\n const groupIndex = info.groupIndex! + 1;\n const levelIndex = info.levelIndex!;\n\n const maxgroup = levelsArray[levelIndex].length - 1;\n\n if (groupIndex > maxgroup) {\n return;\n }\n\n if (isGroupNavigable(levelIndex!, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n return getNextGroup(levelsArray, { groupIndex, levelIndex }, isGroupNavigable);\n}\n\nexport function getPreviousGroup(\n info: ChartGroupInfo,\n isGroupNavigable: isGroupNavigableType\n): ChartGroupInfo | undefined {\n const groupIndex = info.groupIndex! - 1;\n const levelIndex = info.levelIndex;\n if (groupIndex < 0) {\n return;\n }\n if (isGroupNavigable(levelIndex!, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n return getPreviousGroup({ groupIndex, levelIndex }, isGroupNavigable);\n}\n\nexport function getGroupNavUtil(\n levelsArray: GroupLevelItem[][],\n drilling: 'on' | 'off' | 'groupsOnly',\n isRtl: boolean,\n isHoriz: boolean,\n isGroupLabelRendered?: (levelIndex: number, groupIndex: number) => boolean\n) {\n const isGroupNavigable = (levelIndex: number, groupIndex: number) => {\n const group = levelsArray[levelIndex][groupIndex].item;\n const groupName = group.name || group.id;\n const groupsDrilling = group.drilling;\n const isLabelRendered = !!isGroupLabelRendered?.(levelIndex, groupIndex);\n return (\n isLabelRendered &&\n groupName != null &&\n (drilling === 'on' || drilling === 'groupsOnly') &&\n groupsDrilling != 'off'\n );\n };\n\n const getDefaultNavGroup = () => {\n for (let levelIndex = 0; levelIndex < levelsArray.length; levelIndex++) {\n const numGroups = levelsArray[levelIndex].length;\n for (let groupIndex = 0; groupIndex < numGroups; groupIndex++) {\n if (isGroupNavigable(levelIndex, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n }\n }\n return { groupIndex: 0, levelIndex: 0 };\n };\n\n const getNextNavGroup = (\n info: ChartGroupInfo,\n arrow: 'ArrowRight' | 'ArrowLeft' | 'ArrowUp' | 'ArrowDown'\n ) => {\n let nextGroup;\n\n if (arrow === 'ArrowRight') {\n if (isHoriz) {\n nextGroup = !isRtl\n ? getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else {\n nextGroup = isRtl\n ? getPreviousGroup(info, isGroupNavigable)\n : getNextGroup(levelsArray, info, isGroupNavigable);\n }\n } else if (arrow === 'ArrowLeft') {\n if (isHoriz) {\n nextGroup = isRtl\n ? getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else {\n nextGroup = isRtl\n ? getNextGroup(levelsArray, info, isGroupNavigable)\n : getPreviousGroup(info, isGroupNavigable);\n }\n } else if (arrow === 'ArrowDown') {\n nextGroup = isHoriz\n ? getNextGroup(levelsArray, info, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else if (arrow === 'ArrowUp') {\n nextGroup = isHoriz\n ? getPreviousGroup(info, isGroupNavigable)\n : getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n }\n return nextGroup || info;\n };\n\n return { getNextNavGroup, getDefaultNavGroup };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { OverviewProps } from './overview.types';\nimport { styles } from './themes/VisOverview.css';\n\nexport function OverviewBackground({\n x,\n width,\n height,\n y,\n windowX,\n windowHeight,\n windowWidth,\n windowY\n}: OverviewProps) {\n return (\n <>\n <rect\n x={x}\n y={y}\n width={Math.max(0, windowX - x)}\n height={height}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX + windowWidth}\n width={Math.max(0, x + width - windowX - windowWidth)}\n y={y}\n height={height}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX}\n y={y}\n height={Math.max(0, windowY - y)}\n width={windowWidth}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX}\n y={windowY + windowHeight}\n width={windowWidth}\n class={styles.overviewBackground}\n height={Math.max(y + height - windowY - windowHeight, 0)}></rect>\n </>\n );\n}\n","import { Info, ReferenceObjectData } from '../utils/UNSAFE_visTypes/chart';\nimport { Group, Scale } from '../utils/UNSAFE_visTypes/chart';\nimport { ReferenceLineArea } from './ReferenceLineArea';\n\n// Main renderer component\nexport function ReferenceObjects({\n location,\n xAxis,\n yAxis,\n y2Axis,\n xScale,\n yScale,\n y2Scale,\n orientation,\n xAxisInfo,\n groups,\n activeId,\n activeInfo\n}: {\n location: 'front' | 'back';\n xAxis?: { referenceObjects?: ReferenceObjectData[] };\n yAxis?: { referenceObjects?: ReferenceObjectData[] };\n y2Axis?: { referenceObjects?: ReferenceObjectData[] };\n xScale: Scale;\n yScale: Scale;\n y2Scale: Scale;\n orientation: string;\n xAxisInfo: { startIndex: number; endIndex: number };\n groups: Group[];\n activeId?: string;\n activeInfo?: Info;\n}) {\n const filterFunc = (item: ReferenceObjectData) =>\n location === 'front' ? item.location === 'front' : item.location !== 'front';\n\n return (\n <>\n {xAxis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n key={item.id}\n xScale={xScale}\n yScale={yScale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n isXRef={true}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n\n {yAxis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n xScale={xScale}\n yScale={yScale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n\n {y2Axis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n xScale={xScale}\n yScale={y2Scale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n </>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { VisInvalidDataError } from '#UNSAFE_visErrors';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { useCssVars } from '#hooks/PRIVATE_useCssVars/useCssVars';\nimport { styles } from './themes/ChartStyles.css';\nimport { useMemo, useRef, useState, useImperativeHandle } from 'preact/hooks';\nimport { PlotArea } from '#PRIVATE_PlotArea';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { Axis } from '#PRIVATE_Axis/Axis';\nimport { useChartViewport } from '#hooks/PRIVATE_useChartViewport';\nimport {\n getAvailSpace,\n getLayoutInfo,\n getOuterGaps,\n getScrollBarSpace,\n updateScrollBarSpace\n} from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport {\n GroupAxisProps,\n DataAxisProps,\n TimeAxisProps,\n SizeHandle,\n Info\n} from '#utils/UNSAFE_visTypes/chart';\nimport { useChartNav } from '#hooks/PRIVATE_useChartNav/useChartNav';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { getAxesPosition } from '#PRIVATE_Axis/utils/axisUtils';\nimport { ScrollBar } from '#PRIVATE_ChartScrollBar';\nimport { useSelectDrill } from '#hooks/PRIVATE_useChartEvents/useSelectDrill';\nimport { useChartDatatipAndCursor } from '#hooks/PRIVATE_useChartEvents/useDatatipAndCursor';\nimport { getGroupNavUtil } from '#PRIVATE_Axis/utils/axisNavUtils';\nimport { Gridlines } from '#PRIVATE_PlotArea/Gridlines';\nimport {\n buildNavigableRefObjects,\n getRefObjectBounds as computeRefObjectBounds\n} from '#utils/PRIVATE_chartUtils/refObjectsNavUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { getChartVars } from '#utils/PRIVATE_chartUtils';\nimport { useChartContextMenu } from '#hooks/PRIVATE_useChartContextMenu';\nimport { useChartDnd } from '#hooks/PRIVATE_useChartDnd';\nimport { getElementData } from '#utils/UNSAFE_visUtils';\nimport { useTextTruncation } from '#PRIVATE_VisSVGText/useTextTruncation';\nimport { useChartMarquee } from '#hooks/PRIVATE_useChartMarquee';\nimport { ChartProps } from './Chart';\nimport type { gestureTypes } from '#hooks/PRIVATE_useVisContextMenu';\nimport { useVisTouchResponse } from '#hooks/PRIVATE_useVisTouchResponse';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\nimport { OverviewContext } from '#hooks/PRIVATE_useOverviewContext';\nimport { getWindowCoords } from '#PRIVATE_VisOverview/utils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { getRenderer } from './overviewUtils';\nimport { ComponentChildren, Ref, VNode } from 'preact';\nimport { forwardRef } from 'preact/compat';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport {\n getAriaLabelGenerator,\n getTextAndBoundsUtil,\n getTextAndDimsInfo\n} from '#utils/PRIVATE_chartUtils/dataTipUtils';\nimport { hasData, hasInvalidData } from '#utils/PRIVATE_chartUtils/dataUtils';\nimport { ReferenceObjects } from '#PRIVATE_PlotArea/ReferenceObjects';\nimport { getActiveInfo } from '#utils/PRIVATE_chartUtils/utils';\nimport { merge } from '#utils/UNSAFE_stringUtils';\n\ntype ChartWithDimensionsProps<K, D> = Omit<ChartProps<K, D>, 'width' | 'height'> & {\n width: number;\n height: number;\n overviewRenderer: (props: Dimension) => {\n background: ComponentChildren;\n slidingWindow: ComponentChildren;\n };\n yAxisSize: number;\n isOverview: boolean;\n};\n\nconst OVERVIEW_GAP = 10;\n\nconst chartVars = getChartVars();\n\ntype ForwardRefChart = <\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n>(\n props: ChartWithDimensionsProps<K, D> & {\n ref?: Ref<SizeHandle>;\n }\n) => VNode | null;\n\nexport const ChartWithDimensions = forwardRef(\n <K extends string | number, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>>(\n {\n width,\n height,\n selectedIds,\n hiddenIds,\n hideAndShowBehavior = 'none',\n orientation = 'vertical',\n xAxis,\n yAxis,\n y2Axis,\n plotArea,\n dragMode = 'user',\n series,\n groups,\n isStacked = false,\n stackLabelStyle,\n getStackGroup,\n getDataItem,\n selectionMode = 'none',\n drilling = 'off',\n dataCursorPosition,\n onSelectionChange,\n isDataCursorEnabled,\n dataCursorStyle,\n onViewportChange,\n onDataCursorPositionChange,\n onItemDrill,\n onGroupDrill,\n onItemHover,\n onItemFocus,\n datatip,\n zoomAndScroll = 'off',\n getNavUtil,\n getDataItemPos,\n getGapRatio,\n valueFormats,\n findNearest,\n getMarkerInfo,\n isRtl,\n children,\n testId,\n renderGridLinesInFront,\n isDataXAxis,\n contextMenuConfig,\n overview = 'off',\n getStartAndEndAxesOffset,\n defaultOverviewContentRenderer,\n isOverview,\n yAxisSize,\n overviewRenderer,\n initialZooming = 'none',\n ...props\n }: ChartWithDimensionsProps<K, D>,\n ref: Ref<SizeHandle> = null\n ) => {\n const timeAxisType = (xAxis as TimeAxisProps)?.timeAxisType;\n const isTimeAxis = timeAxisType != null;\n if (hasInvalidData(timeAxisType, series, groups, getDataItem)) {\n throw new VisInvalidDataError('Chart received invalid data');\n }\n\n const testIdProps = useTestId(testId);\n const rootRef = useRef<HTMLDivElement>(null);\n const isTestEnv = testIdProps['data-testid'] !== undefined;\n const isHoriz = orientation === 'horizontal';\n const { xAxisPosition, yAxisPosition, y2AxisPosition } = getAxesPosition(\n yAxis,\n y2Axis,\n isHoriz,\n isRtl\n );\n const { resolvedVars, cssContent } = useCssVars(chartVars);\n const resolvedColors = Array.from(Array(12)).map((_, index) => {\n return resolvedVars[`color${index + 1}`];\n });\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n let availSpace = getAvailSpace(width, height);\n\n if (isOverview && yAxisSize) {\n const w = availSpace.width - yAxisSize;\n const gaps = getOuterGaps(w, height);\n availSpace.width -= yAxisSize - 2 * gaps.width;\n availSpace.x += yAxisSize - gaps.width;\n }\n\n const updatedSpace = getScrollBarSpace(\n isTimeAxis,\n availSpace,\n zoomAndScroll,\n xAxisPosition,\n overview\n );\n let scrollDims = updatedSpace.scrollDims;\n availSpace = updatedSpace.availSpace;\n const { locale } = useUser();\n const { x, y, width: _width, height: _height } = availSpace;\n const labelFontSize = resolvedVars['labelFontSize'];\n\n const split = y2Axis?.split ?? 'off';\n const isSplitDualY = split !== 'off';\n const splitterPosition = split !== 'off' ? split : 0.5;\n\n const layoutInfo = useMemo(() => {\n const hiddenSet = new Set(hiddenIds);\n return getLayoutInfo<K, D>(\n series,\n groups,\n getDataItem,\n xAxis,\n yAxis,\n y2Axis,\n { x, y, width: _width, height: _height }, // availSpace\n hiddenSet,\n hideAndShowBehavior,\n isHoriz,\n isRtl,\n isStacked,\n labelFontSize,\n getStartAndEndAxesOffset,\n locale,\n isSplitDualY,\n splitterPosition,\n getStackGroup,\n getTextDimensions,\n isTestEnv,\n isDataXAxis,\n initialZooming,\n zoomAndScroll\n );\n }, [\n x,\n y,\n _width,\n _height,\n getDataItem,\n getTextDimensions,\n groups,\n hiddenIds,\n hideAndShowBehavior,\n isDataXAxis,\n isHoriz,\n isRtl,\n isStacked,\n isTestEnv,\n locale,\n getStartAndEndAxesOffset,\n labelFontSize,\n series,\n xAxis,\n yAxis,\n y2Axis,\n splitterPosition,\n isSplitDualY,\n getStackGroup,\n initialZooming,\n zoomAndScroll\n ]);\n\n const {\n getGroupFromPath,\n levelsArray,\n xAxisInfo,\n xProps,\n xScale,\n yProps,\n y2Props,\n yScale,\n y2Scale,\n yMaxDim,\n yAxisInfo,\n plotAreaSpace,\n xSpace,\n ySpace,\n y2Space,\n idToDataMap,\n y2AxisInfo,\n getYPreferredSize,\n getY2PreferredSize,\n getXPreferredSize\n } = layoutInfo;\n\n useImperativeHandle(ref!, () => ({\n _getYaxis: () => {\n return { getPreferredSize: getYPreferredSize, bounds: ySpace };\n },\n _getY2axis: () => {\n return { getPreferredSize: getY2PreferredSize, bounds: y2Space };\n },\n _getXaxis: () => {\n return { getPreferredSize: getXPreferredSize, bounds: xSpace };\n }\n }));\n\n const leafGroupsInfo = levelsArray.length > 0 ? levelsArray[levelsArray.length - 1] : [];\n\n scrollDims = updateScrollBarSpace(scrollDims, xAxisPosition === 'bottom', isRtl, yMaxDim);\n\n const gapRatio = getGapRatio(xAxisInfo.startIndex!, xAxisInfo.endIndex!);\n\n const getNextChartItem = getNavUtil(xAxisInfo.startIndex!, xAxisInfo.endIndex!);\n\n const { getNextNavGroup, getDefaultNavGroup } = getGroupNavUtil(\n levelsArray,\n drilling,\n isRtl,\n isHoriz,\n xProps.isGroupLabelRendered\n );\n\n const navigableRefObjects = useMemo(\n () =>\n buildNavigableRefObjects(\n xAxis?.referenceObjects,\n yAxis?.referenceObjects,\n y2Axis?.referenceObjects\n ),\n [xAxis?.referenceObjects, yAxis?.referenceObjects, y2Axis?.referenceObjects]\n );\n\n const getNextRefObject = (\n info: Info,\n arrow: 'ArrowLeft' | 'ArrowRight' | 'ArrowDown' | 'ArrowUp'\n ): Info => {\n const list = navigableRefObjects;\n if (!list || list.length === 0) {\n return {};\n }\n const dir = arrow === 'ArrowLeft' || arrow === 'ArrowUp' ? -1 : 1;\n\n const idx =\n info.refObjId != null\n ? list.findIndex((o) => o.id === info.refObjId)\n : dir > 0\n ? -1\n : list.length;\n\n // Move one step in the desired direction. Clamp at the ends.\n let nextIdx = idx + dir;\n if (nextIdx < 0) nextIdx = 0;\n if (nextIdx >= list.length) nextIdx = list.length - 1;\n\n return { refObjId: list[nextIdx].id };\n };\n\n const {\n ignoreSelectPointerUp,\n cursor,\n yAxisCursor,\n marqueeProps,\n marqueeContent,\n toggleButtonContent,\n isPointInsideMarquee,\n dragMode: mode\n } = useChartMarquee<K, D>({\n rootRef,\n plotAreaSpace,\n xSpace,\n ySpace,\n dragMode,\n chartWidth: width,\n isMultiSelection: selectionMode === 'multiple',\n onViewportChange,\n isZoomScroll: zoomAndScroll === 'live',\n xScale,\n selectedIds,\n getDataById: (id) => idToDataMap.get(id),\n onSelectionChange,\n isRtl,\n xAxisInfo\n });\n\n const { touchResponse, touchResponseStyle } = useVisTouchResponse({\n type: 'auto',\n supportsTouchDragGestures: mode !== 'off',\n rootRef\n });\n\n const {\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n focusedGroupInfo,\n navProps,\n onFocusUpdate\n } = useChartNav({\n rootRef,\n getNextChartItem,\n getNextRefObject,\n getNextNavGroup,\n getDefaultNavGroup,\n touchResponse,\n onItemHover,\n onItemFocus,\n drilling,\n xAxisInfo\n });\n\n const onContextMenuDismissed = (gesture: gestureTypes) => {\n if (gesture === 'keyboard') {\n onFocusUpdate();\n }\n };\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const getTextAndBounds = (target: EventTarget | null) => {\n return getTextAndBoundsUtil(\n target,\n rootRef,\n xAxis?.title,\n yAxis?.title,\n y2Axis?.title,\n xProps.titleProps?.dims,\n yProps.titleProps?.dims,\n y2Props.titleProps?.dims,\n xProps.tickLabels,\n focusedGroupInfo\n );\n };\n\n const dimsAndTextInfo = getTextAndDimsInfo(\n xProps.tickLabels,\n focusedGroupInfo.groupIndex,\n focusedGroupInfo.levelIndex\n );\n const { tooltipContent, tooltipProps } = useTextTruncation({\n getTextAndBounds,\n width,\n isRtl,\n textAndBounds: {\n bounds: dimsAndTextInfo?.dims,\n text: dimsAndTextInfo?.text\n }\n });\n\n const viewportProps = useChartViewport({\n rootRef,\n width,\n height,\n xAxisInfo,\n yAxisInfo,\n y2AxisInfo,\n xScale,\n yScale,\n y2Scale,\n plotAreaSpace,\n isRtl,\n isHoriz,\n zoomAndScroll,\n onViewportChange\n });\n\n const ignoreAsTrigger = (target: EventTarget | null) => {\n if (!target) {\n return false;\n }\n\n const dataset = getElementData(rootRef, target as HTMLElement);\n if (\n (dataset &&\n (dataset['ojPrivateObject'] === 'marquee' ||\n dataset['ojPrivateObject'] === 'dragModeControls' ||\n dataset['ojPrivateObject'] === 'scrollBar')) ||\n ignoreSelectPointerUp\n ) {\n return true;\n }\n\n return false;\n };\n\n const { selectDrillProps, selectionContent } = useSelectDrill<K, D>({\n selectionMode,\n selection: [...selectedIds],\n onChange: onSelectionChange,\n rootRef,\n drilling,\n onItemDrill,\n onGroupDrill,\n focusedGroupInfo,\n focusedItemInfo,\n levelsArray,\n getDataItem,\n getDataById: (id) => idToDataMap.get(id),\n ignoreAsTrigger\n });\n\n const findNearestData = findNearest(\n xScale as any,\n yScale,\n y2Scale,\n xProps.axisStepWidth!,\n xProps.averageGroupZ!,\n gapRatio\n );\n const getDataItemPosition = getDataItemPos(\n xScale as any,\n yScale,\n y2Scale,\n xProps.axisStepWidth!,\n xProps.averageGroupZ!,\n gapRatio\n );\n const [datatipDisabled, setDatatipDisabled] = useState(false);\n\n const getItemAriaLabel = getAriaLabelGenerator(\n series,\n translations,\n valueFormats,\n leafGroupsInfo,\n xAxis,\n !!isDataXAxis,\n getGroupFromPath,\n xProps.defaultLabelFormatter,\n yProps.defaultLabelFormatter,\n y2Props.defaultLabelFormatter\n );\n\n const getRefItem = (id: number | string) => {\n return (\n xAxis?.referenceObjects?.find((item) => item.id === id) ??\n yAxis?.referenceObjects?.find((item) => item.id === id) ??\n y2Axis?.referenceObjects?.find((item) => item.id === id)\n );\n };\n\n const getRefObjectBounds = (id: string): Dimension | undefined => {\n return computeRefObjectBounds(\n id,\n xAxis?.referenceObjects,\n yAxis?.referenceObjects,\n y2Axis?.referenceObjects,\n xScale as any,\n yScale,\n y2Scale,\n orientation as 'horizontal' | 'vertical',\n plotAreaSpace\n );\n };\n\n const getRefAxis = (id: string): 'x' | 'y' | 'y2' | undefined => {\n if (xAxis?.referenceObjects?.some((item) => item.id === id)) return 'x';\n if (yAxis?.referenceObjects?.some((item) => item.id === id)) return 'y';\n if (y2Axis?.referenceObjects?.some((item) => item.id === id)) return 'y2';\n return undefined;\n };\n\n const {\n datatipContent,\n dataCursorContent,\n datatipProps: { 'aria-describedby': datatipAriaDescribedby, ...datatipProps }\n } = useChartDatatipAndCursor<K, D>({\n series,\n leafGroupsInfo,\n width,\n height,\n findNearest: findNearestData,\n plotAreaSpace,\n onDataCursorPositionChange,\n isDataCursorEnabled,\n dataCursorPosition,\n dataCursorStyle,\n hoveredItemInfo,\n focusedItemInfo,\n getDataItem,\n getRefItem,\n getRefObjectBounds,\n getRefAxis,\n getMarkerInfo,\n getDataItemPos: getDataItemPosition,\n datatip,\n valueFormats,\n isHoriz,\n touchResponse,\n isDisabled: datatipDisabled,\n xScale: xScale as any,\n yScale,\n y2Scale,\n timeAxisType,\n defaultXFormatter: xProps.defaultLabelFormatter,\n defaultYFormatter: yProps.defaultLabelFormatter,\n defaultY2Formatter: y2Props.defaultLabelFormatter,\n hasXYValues: isDataXAxis,\n getGroupFromPath,\n translations\n });\n\n const isGroupInteractive = (index: number) => {\n if (isTimeAxis) {\n return false;\n }\n const groupDrill = groups[index]?.drilling;\n if (groupDrill === 'on') {\n return true;\n }\n\n if (groupDrill != 'off' && (drilling === 'on' || drilling === 'groupsOnly')) {\n return true;\n }\n return false;\n };\n\n const plotAreaClipPathId = useId();\n\n // const { yTicks, y2Ticks } = getYY2Ticks(yAxisInfo.ticks, y2AxisInfo.ticks, isHoriz, isSplitDualY);\n const gridLines = (\n <Gridlines\n plotArea={plotArea}\n availSpace={plotAreaSpace}\n xAxisPosition={xAxisPosition}\n isRtl={isRtl}\n yMinorTicks={yAxisInfo.minorTicks}\n xMinorTicks={xAxisInfo.minorTicks}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n isLog={yAxis?.scale === 'log'}\n yAxisPosition={yAxisPosition}\n isDataXAxis={isDataXAxis}\n xAxis={xAxis as DataAxisProps}\n yAxis={yAxis}\n y2Axis={y2Axis}\n hasAxisLine={!isOverview}\n y2MinorTicks={y2AxisInfo?.minorTicks}\n y2Ticks={y2AxisInfo.ticks}\n yTicks={yAxisInfo.ticks}\n xTicks={xAxisInfo.ticks}\n isSplitDualY={isSplitDualY}\n />\n );\n\n const { contextMenuContent, contextMenuProps } = useChartContextMenu<K, D>({\n isRtl,\n width,\n height,\n getDataItemPosition,\n series,\n levelsArray,\n focusedGroupInfo,\n getDataItem,\n focusedItemInfo,\n rootRef,\n xAxisTitle: xAxis?.title,\n yAxisTitle: yAxis?.title,\n contextMenuConfig: hasData(series, groups) ? contextMenuConfig : undefined,\n onContextMenuDismissed\n });\n\n const [dragOver, setDragOver] = useState<{ accepted: boolean | undefined; type: string }>({\n accepted: undefined,\n type: ''\n });\n\n const { draggable, dndProps, dndContent } = useChartDnd<K, D>({\n onDrag: props.onDrag,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n itemsDraggable: props.itemsDraggable,\n groupDraggable: props.groupDraggable,\n rootRef,\n levelsArray,\n series,\n selectedIds,\n getDataItem,\n xSpace,\n ySpace,\n plotAreaSpace,\n setDragOver,\n setDatatipDisabled,\n onSelectionChange\n });\n\n const eventsProps = mergeProps(\n navProps,\n selectDrillProps,\n viewportProps,\n datatipProps,\n marqueeProps,\n tooltipProps,\n contextMenuProps,\n dndProps\n );\n\n const overviewContentRenderer =\n overview != 'off' && (overview === 'on' || !overview.renderer)\n ? defaultOverviewContentRenderer\n : undefined;\n\n const { background, slidingWindow } = overviewRenderer(plotAreaSpace);\n\n const isActiveInfoRef = focusedItemInfo.refObjId != null && focusedItemInfo.isFocusVisible;\n const activeInfo = getActiveInfo(focusedItemInfo, hoveredItemInfo);\n return (\n <>\n {getTextDimensions && resolvedVars['labelFontSize'] != undefined && (\n <div\n tabIndex={isOverview ? undefined : 0}\n draggable={draggable}\n ref={rootRef}\n aria-activedescendant={activeId}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n aria-describedby={merge([props['aria-describedby'], datatipAriaDescribedby])}\n style={{ ...touchResponseStyle }}\n role={isOverview ? undefined : 'application'}\n className={styles.baseChartStyle}\n data-oj-private-selection-mode={isTestEnv ? selectionMode : undefined}\n {...testIdProps}\n {...(isOverview ? {} : eventsProps)}>\n <svg\n width=\"100%\"\n height={\n scrollDims.height != 0 && overview != 'off'\n ? `${Math.ceil((updatedSpace.availSpace.height + OVERVIEW_GAP) * 100) / height}%`\n : '100%'\n }>\n <clipPath id={`${plotAreaClipPathId}`}>\n <rect {...plotAreaSpace}></rect>\n </clipPath>\n {background}\n <PlotArea\n color={plotArea?.color}\n dragOverStyle={\n dragOver.type !== 'plotArea' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n cursor={cursor}\n availSpace={plotAreaSpace}\n />\n {!renderGridLinesInFront && gridLines}\n <Axis\n {...(yProps as any)}\n axisPosition={yAxisPosition}\n isRtl={isRtl}\n cursor={yAxisCursor}\n availSpace={ySpace}\n dragOverStyle={\n dragOver.type !== 'yAxis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n />\n <Axis\n {...(y2Props as any)}\n axisPosition={y2AxisPosition}\n isRtl={isRtl}\n cursor={yAxisCursor}\n availSpace={y2Space}\n dragOverStyle={\n dragOver.type !== 'y2Axis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n />\n <Axis\n {...xProps}\n isRtl={isRtl}\n axisPosition={xAxisPosition}\n isTextInteractive={isGroupInteractive}\n activeId={activeId}\n cursor={cursor}\n focusedGroupIndex={\n focusedGroupInfo.isFocusVisible ? focusedGroupInfo.groupIndex : undefined\n }\n focusedGroupLevelIndex={\n focusedGroupInfo.isFocusVisible ? focusedGroupInfo.levelIndex : undefined\n }\n availSpace={xSpace}\n dragOverStyle={\n dragOver.type !== 'xAxis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n separatorColor={(xAxis as GroupAxisProps)?.groupSeparators?.color}\n />\n <g clip-path={`url(#${plotAreaClipPathId})`}>\n <ReferenceObjects\n location=\"back\"\n activeId={isActiveInfoRef ? activeId : undefined}\n activeInfo={activeInfo}\n xAxis={xAxis}\n yAxis={yAxis}\n y2Axis={y2Axis}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n orientation={orientation}\n xAxisInfo={xAxisInfo}\n groups={groups}\n />\n {children({\n xStartIndex: xAxisInfo.startIndex!,\n xEndIndex: xAxisInfo.endIndex!,\n getItemAriaLabel,\n groupsInfo: leafGroupsInfo,\n resolvedColors,\n xScale: xScale as any,\n yScale,\n y2Scale,\n isPointInsideMarquee,\n defaultFontSize: resolvedVars['labelFontSize'],\n gapRatio,\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n getTextDimensions,\n axisStepWidth: xProps.axisStepWidth!,\n averageGroupZ: xProps.averageGroupZ!,\n plotAreaClipPathId\n })}\n {renderGridLinesInFront && gridLines}\n <ReferenceObjects\n location=\"front\"\n xAxis={xAxis}\n yAxis={yAxis}\n y2Axis={y2Axis}\n activeId={activeId}\n activeInfo={activeInfo}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n orientation={orientation}\n xAxisInfo={xAxisInfo}\n groups={groups}\n />\n {dataCursorContent}\n </g>\n {slidingWindow}\n {zoomAndScroll === 'live' && !isOverview && (\n <ScrollBar\n availSpace={scrollDims}\n isRtl={isRtl}\n viewport={xAxisInfo}\n axisExtent={xAxisInfo}\n isHoriz={xAxisPosition === 'bottom'}\n />\n )}\n {marqueeContent}\n </svg>\n <OverviewContext.Provider\n value={{\n yAxisSize: ySpace.width,\n isOverview: true,\n width,\n height: scrollDims.height,\n overviewRenderer: (overviewChartPlotArea: Dimension) => {\n const { xScale: overviewXScale, ...windowCoords } = getWindowCoords(\n isRtl,\n xAxisInfo,\n xAxisInfo,\n yAxisInfo,\n yAxisInfo,\n overviewChartPlotArea\n );\n return getRenderer(\n xAxisInfo,\n isRtl,\n overviewXScale,\n overviewChartPlotArea,\n windowCoords,\n true,\n onViewportChange\n );\n }\n }}>\n {!isOverview && overview !== 'off' && overviewContentRenderer && (\n <div style={{ width, height: scrollDims.height }}>{overviewContentRenderer()}</div>\n )}\n </OverviewContext.Provider>\n {toggleButtonContent}\n {datatipContent}\n {tooltipContent}\n {contextMenuContent}\n {selectionContent}\n {dndContent}\n </div>\n )}\n {textMeasureContent}\n {cssContent}\n </>\n );\n }\n) as ForwardRefChart;\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ReferenceObjectData, Scale } from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getRefObjectPosition(object: ReferenceObjectData): number | undefined {\n if (object.type === 'line') {\n return object.value;\n }\n if (object.type === 'area') {\n if (object.low != null && object.high != null) {\n return (object.low + object.high) / 2;\n }\n }\n return undefined;\n}\n\nexport function buildNavigableRefObjects(\n xRefs?: ReferenceObjectData[],\n yRefs?: ReferenceObjectData[],\n y2Refs?: ReferenceObjectData[]\n): { id: string; val: number }[] {\n const normalize = (arr?: ReferenceObjectData[]) =>\n (arr ?? [])\n .map((obj) => ({ id: obj.id, val: getRefObjectPosition(obj) }))\n .filter((obj) => obj.id != null && obj.val != null)\n .sort((a, b) => a.val! - b.val!);\n\n const xList = normalize(xRefs);\n const yList = normalize(yRefs);\n const y2List = normalize(y2Refs);\n\n return [...xList, ...yList, ...y2List] as { id: string; val: number }[];\n}\n\n/**\n * Compute an anchor bounds for a reference object by id. Returns a 1x1 box positioned\n * at a reasonable anchor point for the ref so datatips can use element anchoring.\n */\nexport function getRefObjectBounds(\n id: string,\n xRefs: ReferenceObjectData[] | undefined,\n yRefs: ReferenceObjectData[] | undefined,\n y2Refs: ReferenceObjectData[] | undefined,\n xScale: Scale | undefined,\n yScale: Scale | undefined,\n y2Scale: Scale | undefined,\n orientation: 'horizontal' | 'vertical',\n plotAreaSpace: Dimension\n): Dimension | undefined {\n const ref =\n xRefs?.find((item) => item.id === id) ??\n yRefs?.find((item) => item.id === id) ??\n y2Refs?.find((item) => item.id === id);\n if (!ref) return undefined;\n\n const isInX = xRefs?.some((item) => item.id === id);\n const isInY2 = y2Refs?.some((item) => item.id === id);\n\n const isXRef = !!isInX;\n\n const targetScale = isXRef ? xScale : isInY2 ? y2Scale : yScale;\n const spanningScale = isXRef ? yScale : xScale;\n\n const asPoint = (cx: number, cy: number): Dimension => ({ x: cx, y: cy, width: 1, height: 1 });\n\n if (ref.type === 'line' && ref.value != null) {\n const pos = targetScale?.transform(ref.value);\n const range = spanningScale?.range?.();\n const span1 = range?.[0];\n const span2 = range?.[1];\n if (typeof pos !== 'number' || isNaN(pos) || span1 == null || span2 == null) return undefined;\n\n const mid = (span1 + span2) / 2;\n const isHorizontalLine =\n (orientation === 'vertical' && !isXRef) || (orientation === 'horizontal' && isXRef);\n return isHorizontalLine ? asPoint(mid, pos) : asPoint(pos, mid);\n }\n\n // Constant area (low/high)\n if (ref.type === 'area') {\n const domain = targetScale?.domain?.();\n const domMin = domain ? Math.min(domain[0], domain[1]) : -Infinity;\n const domMax = domain ? Math.max(domain[0], domain[1]) : Infinity;\n\n const clampedLow = ref.low != null ? Math.max(ref.low, domMin) : domMin;\n const clampedHigh = ref.high != null ? Math.min(ref.high, domMax) : domMax;\n\n const pos1 = targetScale?.transform(clampedLow);\n const pos2 = targetScale?.transform(clampedHigh);\n const range = spanningScale?.range?.();\n const span1 = range?.[0];\n const span2 = range?.[1];\n\n if (\n typeof pos1 !== 'number' ||\n typeof pos2 !== 'number' ||\n isNaN(pos1) ||\n isNaN(pos2) ||\n span1 == null ||\n span2 == null\n ) {\n return undefined;\n }\n\n const midSpan = (span1 + span2) / 2;\n const midPos = (pos1 + pos2) / 2;\n const isHorizontalArea =\n (orientation === 'vertical' && !isXRef) || (orientation === 'horizontal' && isXRef);\n return isHorizontalArea ? asPoint(midSpan, midPos) : asPoint(midPos, midSpan);\n }\n\n const centerX = plotAreaSpace.x + plotAreaSpace.width / 2;\n const centerY = plotAreaSpace.y + plotAreaSpace.height / 2;\n return asPoint(centerX, centerY);\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport { useTooltip } from '#hooks/UNSAFE_useTooltip';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\ntype Props = {\n getTextAndBounds: (target: EventTarget | null) =>\n | {\n text?: string;\n bounds?: Dimension;\n }\n | undefined;\n isRtl: boolean;\n width: number;\n textAndBounds: {\n text?: string;\n bounds?: Dimension;\n };\n};\n\nexport function useTextTruncation({ getTextAndBounds, width, isRtl, textAndBounds }: Props) {\n const [text, setText] = useState<string>();\n const bounds = useRef<Dimension>();\n\n const hoveredRef = useRef(false);\n\n useEffect(() => {\n if (textAndBounds.text) {\n bounds.current = textAndBounds.bounds;\n setText(textAndBounds.text);\n } else if (!hoveredRef.current) {\n setText(undefined);\n }\n }, [textAndBounds]);\n\n const { tooltipContent, tooltipProps } = useTooltip({\n text,\n position: 'top-start',\n offset: calculateOffset(isRtl, width, bounds.current)\n });\n\n const onPointerMove = (event: Event) => {\n const textAndBounds = getTextAndBounds(event.target);\n\n if (textAndBounds) {\n bounds.current = textAndBounds.bounds;\n setText(textAndBounds.text);\n hoveredRef.current = true;\n } else {\n setText(undefined);\n hoveredRef.current = false;\n }\n };\n\n return {\n tooltipContent,\n tooltipProps: mergeProps({ onPointerMove }, tooltipProps)\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ScaleLinear } from '#utils/PRIVATE_chartUtils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getWindowCoords(\n isRtl: boolean,\n xViewportExtent: { viewportMin: number; viewportMax: number },\n xAxisExtent: { min: number; max: number },\n yViewportExtent: { viewportMin: number; viewportMax: number },\n yAxisExtent: { min: number; max: number },\n plotAreaSpace: Dimension\n) {\n const xDomain = [xAxisExtent.min, xAxisExtent.max] as [number, number];\n const xRange = (\n isRtl\n ? [plotAreaSpace.x + plotAreaSpace.width, plotAreaSpace.x]\n : [plotAreaSpace.x, plotAreaSpace.x + plotAreaSpace.width]\n ) as [number, number];\n const xScale = new ScaleLinear(xDomain, xRange);\n\n const yDomain = [yAxisExtent.min, yAxisExtent.max] as [number, number];\n const yRange = [plotAreaSpace.y + plotAreaSpace.height, plotAreaSpace.y] as [number, number];\n\n const yScale = new ScaleLinear(yDomain, yRange);\n\n const windowX = xScale.transform(xViewportExtent.viewportMin);\n const windowWidth = Math.abs(\n xScale.transform(xViewportExtent.viewportMax) - xScale.transform(xViewportExtent.viewportMin)\n );\n\n return {\n windowX: isRtl ? windowX - windowWidth : windowX,\n windowWidth: windowWidth,\n windowY: yScale.transform(yViewportExtent.viewportMax),\n windowHeight: Math.abs(\n yScale.transform(yViewportExtent.viewportMax) - yScale.transform(yViewportExtent.viewportMin)\n ),\n xScale,\n yScale\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { OverviewSlidingWindow } from '#PRIVATE_VisOverview';\nimport { OverviewBackground } from '#PRIVATE_VisOverview/OverviewBackground';\nimport { updateViewportFromOverview } from '#utils/PRIVATE_chartUtils/overviewUtils';\nimport { Scale } from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getRenderer(\n xAxisExtent: { min: number; max: number },\n isRtl: boolean,\n overviewXScale: Scale,\n plotAreaSpace: Dimension,\n windowCoords: { windowX: number; windowY: number; windowHeight: number; windowWidth: number },\n hasHandles: boolean,\n onViewportChange?: (detail: {\n xMin?: number;\n xMax?: number;\n yMin?: number;\n yMax?: number;\n }) => void\n) {\n return {\n slidingWindow: (\n <OverviewSlidingWindow\n {...plotAreaSpace}\n {...windowCoords}\n hasHandles={hasHandles}\n onWindowDimsChange={(props: { deltaX: number; deltaWidth: number }) => {\n updateViewportFromOverview(\n xAxisExtent,\n isRtl,\n windowCoords.windowX,\n windowCoords.windowWidth,\n props.deltaX,\n props.deltaWidth,\n overviewXScale,\n onViewportChange\n );\n }}\n />\n ),\n background: <OverviewBackground {...plotAreaSpace} {...windowCoords} />\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { dimensionStyle } from './themes/ChartStyles.css';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\nimport { ChartWithDimensions } from './ChartWithDimensions';\nimport {\n ChartCommonProps,\n ChartSeriesData,\n GetNextChartItemType,\n Info,\n Scale,\n getDataPosType,\n SizeHandle\n} from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension, MarkerShapes, VisTextStyle } from '#utils/UNSAFE_visTypes/common';\nimport { ComponentChildren, Ref, VNode } from 'preact';\nimport { Property } from 'csstype';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\nimport { useOverviewContext } from '#hooks/PRIVATE_useOverviewContext';\nimport { GroupLevelItem } from '#PRIVATE_Axis/groupAxis/hierarchicalUtils';\nimport { forwardRef } from 'preact/compat';\n\nexport type ChartProps<K, D> = {\n selectedIds: Set<K>;\n getGapRatio: (startIndex: number, endIndex: number) => number;\n getNavUtil: (startIndex: number, endIndex: number) => GetNextChartItemType;\n getDataItemPos: (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => getDataPosType;\n findNearest: (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => (\n x: number,\n y?: number,\n y2?: number\n ) =>\n | {\n seriesIndex: number;\n groupIndex: number;\n y: number | undefined;\n y2: number | undefined;\n x: number;\n }\n | undefined;\n children: (context: {\n getItemAriaLabel: (\n data: D,\n seriesIndex: number,\n groupIndex: number,\n isSelectionEnabled: boolean,\n isSelected: boolean,\n isDrillable: boolean\n ) => string;\n xStartIndex: number;\n xEndIndex: number;\n xScale: Scale;\n yScale: Scale;\n y2Scale: Scale;\n gapRatio: number;\n activeId?: string;\n focusedItemInfo: Info;\n hoveredItemInfo?: Info;\n axisStepWidth: number;\n averageGroupZ: number;\n isPointInsideMarquee: ((id: K, point: { x: number; y: number }) => boolean) | undefined;\n getTextDimensions?: (text: string, style: Record<string, any>) => Dimension;\n defaultFontSize: string;\n resolvedColors: string[];\n groupsInfo: GroupLevelItem[];\n plotAreaClipPathId: string;\n }) => ComponentChildren;\n getStartAndEndAxesOffset: (groupCount: number) => { startOffset: number; endOffset: number };\n series: ChartSeriesData<K, D>[];\n isRtl: boolean;\n renderGridLinesInFront: boolean;\n isDataXAxis?: boolean;\n getMarkerInfo: (\n seriesIndex: number,\n groupIndex: number\n ) => { color: Property.Color | undefined; type?: MarkerShapes };\n defaultOverviewContentRenderer: () => ComponentChildren;\n isStacked?: boolean;\n getStackGroup?: (series: ChartSeriesData<K, D>) => string | undefined;\n stackLabelStyle?: VisTextStyle;\n} & Omit<ChartCommonProps<K, D>, 'highlightedIds' | 'hoverBehavior' | 'selectedIds'>;\n\ntype ForwardRefChart = <\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n>(\n props: ChartProps<K, D> & { ref?: Ref<SizeHandle> }\n) => VNode | null;\n\nexport const Chart = forwardRef(\n <K extends string | number, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>>(\n { width, height, ...props }: ChartProps<K, D>,\n ref: Ref<SizeHandle> = null\n ) => {\n // TODO: reevaluate how we handle empty data\n const {\n isOverview,\n overviewRenderer,\n yAxisSize,\n width: overviewWidth,\n height: overviewHeight\n } = useOverviewContext();\n\n let chartWidth = width;\n let chartHeight = height;\n\n if (chartWidth === undefined && isOverview && overviewWidth !== undefined) {\n chartWidth = `${overviewWidth}px`;\n }\n\n if (chartHeight === undefined && isOverview && overviewHeight !== undefined) {\n chartHeight = `${overviewHeight}px`;\n }\n\n return (\n <TrackResizeContainer width={chartWidth} height={chartHeight} class={dimensionStyle}>\n {(width, height) =>\n width || height ? (\n <ChartWithDimensions\n ref={ref}\n width={width}\n height={height}\n {...props}\n yAxisSize={yAxisSize}\n isOverview={isOverview}\n overviewRenderer={overviewRenderer}\n />\n ) : undefined\n }\n </TrackResizeContainer>\n );\n }\n) as ForwardRefChart;\n"],"names":["getParentGroup","levelsArray","levelIndex","groupIndex","isGroupNavigable","path","length","lIndex","Math","max","groupItem","start","end","i","s","e","getChildGroup","min","getNextGroup","info","getPreviousGroup","OverviewBackground","x","width","height","y","windowX","windowHeight","windowWidth","windowY","_jsxs","jsxs","_Fragment","children","_jsx","jsx","class","styles","overviewBackground","ReferenceObjects","location","xAxis","yAxis","y2Axis","xScale","yScale","y2Scale","orientation","xAxisInfo","groups","activeId","activeInfo","filterFunc","item","Fragment","referenceObjects","filter","map","index","_createElement","ReferenceLineArea","key","id","xStartIndex","startIndex","xEndIndex","endIndex","seriesIndex","isXRef","refObjId","undefined","chartVars","getChartVars","ChartWithDimensions","forwardRef","selectedIds","hiddenIds","hideAndShowBehavior","plotArea","dragMode","series","isStacked","stackLabelStyle","getStackGroup","getDataItem","selectionMode","drilling","dataCursorPosition","onSelectionChange","isDataCursorEnabled","dataCursorStyle","onViewportChange","onDataCursorPositionChange","onItemDrill","onGroupDrill","onItemHover","onItemFocus","datatip","zoomAndScroll","getNavUtil","getDataItemPos","getGapRatio","valueFormats","findNearest","getMarkerInfo","isRtl","testId","renderGridLinesInFront","isDataXAxis","contextMenuConfig","overview","getStartAndEndAxesOffset","defaultOverviewContentRenderer","isOverview","yAxisSize","overviewRenderer","initialZooming","props","ref","timeAxisType","isTimeAxis","hasInvalidData","VisInvalidDataError","testIdProps","useTestId","rootRef","useRef","isTestEnv","isHoriz","xAxisPosition","yAxisPosition","y2AxisPosition","getAxesPosition","resolvedVars","cssContent","useCssVars","resolvedColors","Array","from","_","textMeasureContent","getTextDimensions","useTextDimensions","availSpace","getAvailSpace","w","gaps","getOuterGaps","updatedSpace","getScrollBarSpace","scrollDims","locale","useUser","_width","_height","labelFontSize","split","isSplitDualY","splitterPosition","layoutInfo","useMemo","hiddenSet","Set","getLayoutInfo","getGroupFromPath","xProps","yProps","y2Props","yMaxDim","yAxisInfo","plotAreaSpace","xSpace","ySpace","y2Space","idToDataMap","y2AxisInfo","getYPreferredSize","getY2PreferredSize","getXPreferredSize","useImperativeHandle","_getYaxis","getPreferredSize","bounds","_getY2axis","_getXaxis","leafGroupsInfo","updateScrollBarSpace","gapRatio","getNextChartItem","getNextNavGroup","getDefaultNavGroup","isGroupLabelRendered","group","groupName","name","groupsDrilling","arrow","nextGroup","numGroups","getGroupNavUtil","navigableRefObjects","xRefs","yRefs","y2Refs","normalize","arr","obj","val","object","type","value","low","high","sort","a","b","buildNavigableRefObjects","ignoreSelectPointerUp","cursor","yAxisCursor","marqueeProps","marqueeContent","toggleButtonContent","isPointInsideMarquee","mode","useChartMarquee","chartWidth","isMultiSelection","isZoomScroll","getDataById","get","touchResponse","touchResponseStyle","useVisTouchResponse","supportsTouchDragGestures","focusedItemInfo","hoveredItemInfo","focusedGroupInfo","navProps","onFocusUpdate","useChartNav","getNextRefObject","list","dir","nextIdx","findIndex","o","translations","useTranslationBundle","dimsAndTextInfo","getTextAndDimsInfo","tickLabels","tooltipContent","tooltipProps","getTextAndBounds","textAndBounds","text","setText","useState","hoveredRef","useEffect","current","useTooltip","position","offset","calculateOffset","mergeProps","onPointerMove","event","target","useTextTruncation","getTextAndBoundsUtil","title","titleProps","dims","viewportProps","useChartViewport","selectDrillProps","selectionContent","useSelectDrill","selection","onChange","ignoreAsTrigger","dataset","getElementData","findNearestData","axisStepWidth","averageGroupZ","getDataItemPosition","datatipDisabled","setDatatipDisabled","getItemAriaLabel","getAriaLabelGenerator","defaultLabelFormatter","datatipContent","dataCursorContent","datatipProps","datatipAriaDescribedby","useChartDatatipAndCursor","getRefItem","find","isInX","some","isInY2","targetScale","spanningScale","asPoint","cx","cy","pos","transform","range","span1","span2","isNaN","mid","domain","domMin","domMax","Infinity","clampedLow","clampedHigh","pos1","pos2","midSpan","midPos","computeRefObjectBounds","getRefAxis","isDisabled","defaultXFormatter","defaultYFormatter","defaultY2Formatter","hasXYValues","plotAreaClipPathId","useId","gridLines","Gridlines","yMinorTicks","minorTicks","xMinorTicks","isLog","scale","hasAxisLine","y2MinorTicks","y2Ticks","ticks","yTicks","xTicks","contextMenuContent","contextMenuProps","useChartContextMenu","xAxisTitle","yAxisTitle","hasData","onContextMenuDismissed","gesture","dragOver","setDragOver","accepted","draggable","dndProps","dndContent","useChartDnd","onDrag","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","itemsDraggable","groupDraggable","eventsProps","overviewContentRenderer","renderer","background","slidingWindow","isActiveInfoRef","isFocusVisible","getActiveInfo","tabIndex","merge","l","style","role","className","baseChartStyle","ceil","PlotArea","color","dragOverStyle","Axis","axisPosition","isTextInteractive","groupDrill","focusedGroupIndex","focusedGroupLevelIndex","separatorColor","groupSeparators","groupsInfo","defaultFontSize","ScrollBar","viewport","axisExtent","OverviewContext","Provider","overviewChartPlotArea","overviewXScale","windowCoords","xViewportExtent","xAxisExtent","yViewportExtent","yAxisExtent","xDomain","xRange","ScaleLinear","yDomain","yRange","viewportMin","abs","viewportMax","getWindowCoords","hasHandles","OverviewSlidingWindow","onWindowDimsChange","updateViewportFromOverview","deltaX","deltaWidth","getRenderer","Chart","overviewWidth","overviewHeight","useOverviewContext","chartHeight","TrackResizeContainer","dimensionStyle"],"mappings":"k0CAoBM,SAAUA,EACdC,EACAC,EACAC,EACAC,GAGA,GAAoB,IADPH,EAAYC,GAAYC,GAAYE,KACxCC,OACP,MAAO,CACLJ,aACAC,cAIJ,IAAII,EAASC,KAAKC,IAAI,EAAGP,EAAa,GACtC,MAAMQ,EAAYT,EAAYC,GAAYC,IACpCQ,MAAEA,EAAKC,IAAEA,GAAQF,EAEvB,KAAOH,GAAU,GAAG,CAClB,IAAK,IAAIM,EAAI,EAAGA,EAAIZ,EAAYM,GAAQD,OAAQO,IAAK,CACnD,MAAQF,MAAOG,EAAGF,IAAKG,GAAMd,EAAYM,GAAQM,GACjD,GAAIC,GAAKH,GAASC,GAAOG,GACnBX,EAAiBG,EAAQM,GAC3B,MAAO,CAAEV,WAAYU,EAAGX,WAAYK,EAGzC,CACDA,GAAU,CACX,CAED,MAAO,CACLL,aACAC,aAEJ,CAQM,SAAUa,EACdf,EACAC,EACAC,EACAC,GAEA,GAAIF,IAAeD,EAAYK,OAAS,EACtC,MAAO,CAAEJ,aAAYC,cAGvB,MAAMI,EAASC,KAAKS,IAAIhB,EAAYK,OAAS,EAAGJ,EAAa,GAEvDQ,EAAYT,EAAYC,GAAYC,IACpCQ,MAAEA,EAAKC,IAAEA,GAAQF,EAEvB,KAAOH,GAAUN,EAAYK,OAAS,GACpC,IAAK,IAAIO,EAAI,EAAGA,EAAIZ,EAAYM,GAAQD,OAAQO,IAAK,CACnD,MAAQF,MAAOG,EAAGF,IAAKG,GAAMd,EAAYM,GAAQM,GACjD,GAAIF,GAASG,GAAKC,GAAKH,GACjBR,EAAiBG,EAAQM,GAC3B,MAAO,CAAEV,WAAYU,EAAGX,WAAYK,EAGzC,CAEH,MAAO,CACLL,aACAC,aAEJ,UAEgBe,EACdjB,EACAkB,EACAf,GAEA,MAAMD,EAAagB,EAAKhB,WAAc,EAChCD,EAAaiB,EAAKjB,WAIxB,KAAIC,EAFaF,EAAYC,GAAYI,OAAS,GAMlD,OAAIF,EAAiBF,EAAaC,GACzB,CAAEA,aAAYD,cAEhBgB,EAAajB,EAAa,CAAEE,aAAYD,cAAcE,EAC/D,CAEgB,SAAAgB,EACdD,EACAf,GAEA,MAAMD,EAAagB,EAAKhB,WAAc,EAChCD,EAAaiB,EAAKjB,WACxB,KAAIC,EAAa,GAGjB,OAAIC,EAAiBF,EAAaC,GACzB,CAAEA,aAAYD,cAEhBkB,EAAiB,CAAEjB,aAAYD,cAAcE,EACtD,UCnHgBiB,GAAmBC,EACjCA,EAACC,MACDA,EAAKC,OACLA,EAAMC,EACNA,EAACC,QACDA,EAAOC,aACPA,EAAYC,YACZA,EAAWC,QACXA,IAEA,OACEC,EAAAC,KAAAC,WAAA,CAAAC,SAAA,CACEC,EACEC,IAAA,OAAA,CAAAb,EAAGA,EACHG,EAAGA,EACHF,MAAOf,KAAKC,IAAI,EAAGiB,EAAUJ,GAC7BE,OAAQA,EACRY,MAAOC,EAAAA,OAAOC,qBAEhBJ,MACE,OAAA,CAAAZ,EAAGI,EAAUE,EACbL,MAAOf,KAAKC,IAAI,EAAGa,EAAIC,EAAQG,EAAUE,GACzCH,EAAGA,EACHD,OAAQA,EACRY,MAAOC,EAAMA,OAACC,qBAEhBJ,EAAAA,IAAA,OAAA,CACEZ,EAAGI,EACHD,EAAGA,EACHD,OAAQhB,KAAKC,IAAI,EAAGoB,EAAUJ,GAC9BF,MAAOK,EACPQ,MAAOC,SAAOC,qBAEhBJ,MAAA,OAAA,CACEZ,EAAGI,EACHD,EAAGI,EAAUF,EACbJ,MAAOK,EACPQ,MAAOC,EAAAA,OAAOC,mBACdd,OAAQhB,KAAKC,IAAIgB,EAAID,EAASK,EAAUF,EAAc,OAG9D,CC/CM,SAAUY,GAAiBC,SAC/BA,EAAQC,MACRA,EAAKC,MACLA,EAAKC,OACLA,EAAMC,OACNA,EAAMC,OACNA,EAAMC,QACNA,EAAOC,YACPA,EAAWC,UACXA,EAASC,OACTA,EAAMC,SACNA,EAAQC,WACRA,IAeA,MAAMC,EAAcC,GACL,UAAbb,EAAyC,UAAlBa,EAAKb,SAAyC,UAAlBa,EAAKb,SAE1D,OACEV,EAAAC,KAAAC,EAAAsB,SAAA,CAAArB,SAAA,CACGQ,GAAOc,kBACJC,OAAOJ,GACRK,KAAI,CAACJ,EAAMK,IACVC,EAAAA,cAACC,EAAAA,kBACK,IAAAP,EACJQ,IAAKR,EAAKS,GACVlB,OAAQA,EACRC,OAAQA,EACRE,YAAaA,EACbE,OAAQA,EACRc,YAAaf,EAAUgB,WACvBC,UAAWjB,EAAUkB,SACrBC,YAAaT,EACbU,QAAQ,EACRlB,SAAUG,EAAKS,KAAOX,GAAYkB,SAAWnB,OAAWoB,MAI7D5B,GAAOa,kBACJC,OAAOJ,GACRK,KAAI,CAACJ,EAAMK,IACVxB,EAAAA,IAAC0B,EAAAA,kBACK,IAAAP,EACJT,OAAQA,EACRC,OAAQA,EACRE,YAAaA,EACbE,OAAQA,EACRc,YAAaf,EAAUgB,WACvBC,UAAWjB,EAAUkB,SACrBC,YAAaT,EACbR,SAAUG,EAAKS,KAAOX,GAAYkB,SAAWnB,OAAWoB,MAI7D3B,GAAQY,kBACLC,OAAOJ,GACRK,KAAI,CAACJ,EAAMK,IACVxB,EAAAA,IAAC0B,EAAAA,kBACK,IAAAP,EACJT,OAAQA,EACRC,OAAQC,EACRC,YAAaA,EACbE,OAAQA,EACRc,YAAaf,EAAUgB,WACvBC,UAAWjB,EAAUkB,SACrBC,YAAaT,EACbR,SAAUG,EAAKS,KAAOX,GAAYkB,SAAWnB,OAAWoB,QAKpE,CCFA,MAEMC,EAAYC,EAAYA,eAWjBC,EAAsBC,EAAUA,YAC3C,EAEInD,QACAC,SACAmD,cACAC,YACAC,sBAAsB,OACtB9B,cAAc,WACdN,QACAC,QACAC,SACAmC,WACAC,WAAW,OACXC,SACA/B,SACAgC,aAAY,EACZC,kBACAC,gBACAC,cACAC,iBAAgB,OAChBC,YAAW,MACXC,sBACAC,qBACAC,uBACAC,mBACAC,oBACAC,8BACAC,eACAC,gBACAC,eACAC,eACAC,WACAC,iBAAgB,MAChBC,cACAC,kBACAC,eACAC,gBACAC,eACAC,iBACAC,SACAxE,YACAyE,UACAC,0BACAC,eACAC,qBACAC,YAAW,MACXC,4BACAC,kCACAC,cACAC,aACAC,oBACAC,kBAAiB,UACdC,IAELC,GAAuB,QAEvB,MAAMC,GAAgB9E,GAAyB8E,aACzCC,GAA6B,MAAhBD,GACnB,GAAIE,EAAcA,eAACF,GAAcvC,EAAQ/B,EAAQmC,GAC/C,MAAM,IAAIsC,EAAAA,oBAAoB,+BAGhC,MAAMC,GAAcC,YAAUlB,IACxBmB,GAAUC,SAAuB,MACjCC,QAA2CzD,IAA/BqD,GAAY,eACxBK,GAA0B,eAAhBjF,GACVkF,cAAEA,GAAaC,cAAEA,GAAaC,eAAEA,IAAmBC,kBACvD1F,EACAC,EACAqF,GACAvB,KAEI4B,aAAEA,GAAYC,WAAEA,IAAeC,EAAUA,WAAChE,GAC1CiE,GAAiBC,MAAMC,KAAKD,MAAM,KAAKhF,KAAI,CAACkF,EAAGjF,IAC5C2E,GAAa,QAAQ3E,EAAQ,QAEhCkF,mBAAEA,GAAkBC,kBAAEA,IAAsBC,EAAiBA,oBACnE,IAAIC,GAAaC,EAAAA,cAAczH,EAAOC,GAEtC,GAAIyF,IAAcC,GAAW,CAC3B,MAAM+B,EAAIF,GAAWxH,MAAQ2F,GACvBgC,EAAOC,EAAAA,aAAaF,EAAGzH,GAC7BuH,GAAWxH,OAAS2F,GAAY,EAAIgC,EAAK3H,MACzCwH,GAAWzH,GAAK4F,GAAYgC,EAAK3H,KAClC,CAED,MAAM6H,GAAeC,EAAAA,kBACnB7B,GACAuB,GACA7C,GACA+B,GACAnB,IAEF,IAAIwC,GAAaF,GAAaE,WAC9BP,GAAaK,GAAaL,WAC1B,MAAMQ,OAAEA,IAAWC,EAAAA,WACblI,EAAEA,GAACG,EAAEA,GAAGF,MAAOkI,GAAQjI,OAAQkI,IAAYX,GAC3CY,GAAgBtB,GAA4B,cAE5CuB,GAAQjH,GAAQiH,OAAS,MACzBC,GAAyB,QAAVD,GACfE,GAA6B,QAAVF,GAAkBA,GAAQ,GAE7CG,GAAaC,EAAAA,SAAQ,KACzB,MAAMC,EAAY,IAAIC,IAAItF,GAC1B,OAAOuF,EAAaA,cAClBnF,EACA/B,EACAmC,EACA3C,EACAC,EACAC,EACA,CAAErB,KAAGG,KAAGF,MAAOkI,GAAQjI,OAAQkI,IAC/BO,EACApF,EACAmD,GACAvB,GACAxB,EACA0E,GACA5C,GACAwC,GACAM,GACAC,GACA3E,EACA0D,GACAd,GACAnB,GACAQ,GACAlB,GACD,GACA,CACD5E,GACAG,GACAgI,GACAC,GACAtE,EACAyD,GACA5F,EACA2B,EACAC,EACA+B,GACAoB,GACAvB,GACAxB,EACA8C,GACAwB,GACAxC,GACA4C,GACA3E,EACAvC,EACAC,EACAC,EACAmH,GACAD,GACA1E,EACAiC,GACAlB,MAGIkE,iBACJA,GAAgBnK,YAChBA,GAAW+C,UACXA,GAASqH,OACTA,GAAMzH,OACNA,GAAM0H,OACNA,GAAMC,QACNA,GAAO1H,OACPA,GAAMC,QACNA,GAAO0H,QACPA,GAAOC,UACPA,GAASC,cACTA,GAAaC,OACbA,GAAMC,OACNA,GAAMC,QACNA,GAAOC,YACPA,GAAWC,WACXA,GAAUC,kBACVA,GAAiBC,mBACjBA,GAAkBC,kBAClBA,IACEnB,GAEJoB,EAAmBA,oBAAC7D,IAAM,KAAO,CAC/B8D,UAAW,KACF,CAAEC,iBAAkBL,GAAmBM,OAAQV,KAExDW,WAAY,KACH,CAAEF,iBAAkBJ,GAAoBK,OAAQT,KAEzDW,UAAW,KACF,CAAEH,iBAAkBH,GAAmBI,OAAQX,SAI1D,MAAMc,GAAiBxL,GAAYK,OAAS,EAAIL,GAAYA,GAAYK,OAAS,GAAK,GAEtFgJ,GAAaoC,EAAoBA,qBAACpC,GAA8B,WAAlBrB,GAA4BxB,GAAO+D,IAEjF,MAAMmB,GAAWtF,GAAYrD,GAAUgB,WAAahB,GAAUkB,UAExD0H,GAAmBzF,GAAWnD,GAAUgB,WAAahB,GAAUkB,WAE/D2H,gBAAEA,GAAeC,mBAAEA,IH9KvB,SACJ7L,EACAqF,EACAmB,EACAuB,EACA+D,GAEA,MAAM3L,EAAmB,CAACF,EAAoBC,KAC5C,MAAM6L,EAAQ/L,EAAYC,GAAYC,GAAYkD,KAC5C4I,EAAYD,EAAME,MAAQF,EAAMlI,GAChCqI,EAAiBH,EAAM1G,SAE7B,QAD0ByG,IAAuB7L,EAAYC,IAG9C,MAAb8L,IACc,OAAb3G,GAAkC,eAAbA,IACJ,OAAlB6G,CACA,EAqDJ,MAAO,CAAEN,gBAtCe,CACtB1K,EACAiL,KAEA,IAAIC,EA+BJ,MA7Bc,eAAVD,EAEAC,EADErE,EACWvB,EAETzG,EAAeC,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,GADhEY,EAAcf,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,GAGvDqG,EACRrF,EAAiBD,EAAMf,GACvBc,EAAajB,EAAakB,EAAMf,GAEnB,cAAVgM,EAEPC,EADErE,EACUvB,EACRzF,EAAcf,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,GAC/DJ,EAAeC,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,GAExDqG,EACRvF,EAAajB,EAAakB,EAAMf,GAChCgB,EAAiBD,EAAMf,GAEV,cAAVgM,EACTC,EAAYrE,EACR9G,EAAajB,EAAakB,EAAMf,GAChCJ,EAAeC,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,GACjD,YAAVgM,IACTC,EAAYrE,EACR5G,EAAiBD,EAAMf,GACvBY,EAAcf,EAAakB,EAAKjB,WAAaiB,EAAKhB,WAAaC,IAE9DiM,GAAalL,CAAI,EAGA2K,mBAlDC,KACzB,IAAK,IAAI5L,EAAa,EAAGA,EAAaD,EAAYK,OAAQJ,IAAc,CACtE,MAAMoM,EAAYrM,EAAYC,GAAYI,OAC1C,IAAK,IAAIH,EAAa,EAAGA,EAAamM,EAAWnM,IAC/C,GAAIC,EAAiBF,EAAYC,GAC/B,MAAO,CAAEA,aAAYD,aAG1B,CACD,MAAO,CAAEC,WAAY,EAAGD,WAAY,EAAG,EA0C3C,CGuGoDqM,CAC9CtM,GACAqF,GACAmB,GACAuB,GACAqC,GAAO0B,sBAGHS,GAAsBxC,EAAAA,SAC1B,aC/RJyC,EACAC,EACAC,GAEA,MAAMC,EAAaC,IAChBA,GAAO,IACLpJ,KAAKqJ,WAAWhJ,GAAIgJ,EAAIhJ,GAAIiJ,KAnBEC,EAmBwBF,EAlBvC,SAAhBE,EAAOC,KACFD,EAAOE,MAEI,SAAhBF,EAAOC,MACS,MAAdD,EAAOG,KAA8B,MAAfH,EAAOI,MACvBJ,EAAOG,IAAMH,EAAOI,MAAQ,OAFxC,IAJI,IAA+BJ,CAmB+B,IAC7DxJ,QAAQsJ,GAAkB,MAAVA,EAAIhJ,IAAyB,MAAXgJ,EAAIC,MACtCM,MAAK,CAACC,EAAGC,IAAMD,EAAEP,IAAOQ,EAAER,MAM/B,MAAO,IAJOH,EAAUH,MACVG,EAAUF,MACTE,EAAUD,GAG3B,CDiRQa,CACE/K,GAAOc,iBACPb,GAAOa,iBACPZ,GAAQY,mBAEZ,CAACd,GAAOc,iBAAkBb,GAAOa,iBAAkBZ,GAAQY,oBA4BvDkK,sBACJA,GAAqBC,OACrBA,GAAMC,YACNA,GAAWC,aACXA,GAAYC,eACZA,GAAcC,oBACdA,GAAmBC,qBACnBA,GACAhJ,SAAUiJ,IACRC,EAAAA,gBAAsB,CACxBpG,WACA6C,iBACAC,UACAC,UACA7F,WACAmJ,WAAY3M,EACZ4M,iBAAoC,aAAlB9I,GAClBM,oBACAyI,aAAgC,SAAlBlI,GACdtD,UACA+B,cACA0J,YAAcvK,GAAOgH,GAAYwD,IAAIxK,GACrC0B,qBACAiB,SACAzD,gBAGIuL,cAAEA,GAAaC,mBAAEA,IAAuBC,sBAAoB,CAChExB,KAAM,OACNyB,0BAAoC,QAATV,GAC3BnG,cAGI3E,SACJA,GAAQyL,gBACRA,GAAeC,gBACfA,GAAeC,iBACfA,GAAgBC,SAChBA,GAAQC,cACRA,IACEC,cAAY,CACdnH,WACA+D,oBACAqD,iBApEuB,CACvB9N,EACAiL,KAEA,MAAM8C,EAAO1C,GACb,IAAK0C,GAAwB,IAAhBA,EAAK5O,OAChB,MAAO,GAET,MAAM6O,EAAgB,cAAV/C,GAAmC,YAAVA,GAAuB,EAAI,EAUhE,IAAIgD,GAPe,MAAjBjO,EAAKkD,SACD6K,EAAKG,WAAWC,GAAMA,EAAExL,KAAO3C,EAAKkD,WACpC8K,EAAM,GACL,EACDD,EAAK5O,QAGS6O,EAIpB,OAHIC,EAAU,IAAGA,EAAU,GACvBA,GAAWF,EAAK5O,SAAQ8O,EAAUF,EAAK5O,OAAS,GAE7C,CAAE+D,SAAU6K,EAAKE,GAAStL,GAAI,EA+CrC+H,mBACAC,sBACAyC,iBACAxI,eACAC,eACAV,YACAtC,eASIuM,GAAeC,uBAAiC,4BAiBhDC,GAAkBC,EAAkBA,mBACxCrF,GAAOsF,WACPd,GAAiB1O,WACjB0O,GAAiB3O,aAEb0P,eAAEA,GAAcC,aAAEA,IE7YtB,UAA4BC,iBAAEA,EAAgBvO,MAAEA,EAAKkF,MAAEA,EAAKsJ,cAAEA,IAClE,MAAOC,EAAMC,GAAWC,EAAQA,WAC1B5E,EAASxD,EAAAA,SAETqI,EAAarI,UAAO,GAE1BsI,EAAAA,WAAU,KACJL,EAAcC,MAChB1E,EAAO+E,QAAUN,EAAczE,OAC/B2E,EAAQF,EAAcC,OACZG,EAAWE,SACrBJ,OAAQ3L,EACT,GACA,CAACyL,IAEJ,MAAMH,eAAEA,EAAcC,aAAEA,GAAiBS,aAAW,CAClDN,OACAO,SAAU,YACVC,OAAQC,EAAAA,gBAAgBhK,EAAOlF,EAAO+J,EAAO+E,WAgB/C,MAAO,CACLT,iBACAC,aAAca,EAAUA,WAAC,CAAEC,cAfNC,IACrB,MAAMb,EAAgBD,EAAiBc,EAAMC,QAEzCd,GACFzE,EAAO+E,QAAUN,EAAczE,OAC/B2E,EAAQF,EAAcC,MACtBG,EAAWE,SAAU,IAErBJ,OAAQ3L,GACR6L,EAAWE,SAAU,EACtB,GAK2CR,GAEhD,CFuW6CiB,CAAkB,CACzDhB,iBArBwBe,GACjBE,EAAoBA,qBACzBF,EACAhJ,GACApF,GAAOuO,MACPtO,GAAOsO,MACPrO,GAAQqO,MACR3G,GAAO4G,YAAYC,KACnB5G,GAAO2G,YAAYC,KACnB3G,GAAQ0G,YAAYC,KACpB7G,GAAOsF,WACPd,IAWFtN,QACAkF,SACAsJ,cAAe,CACbzE,OAAQmE,IAAiByB,KACzBlB,KAAMP,IAAiBO,QAIrBmB,GAAgBC,EAAAA,iBAAiB,CACrCvJ,WACAtG,QACAC,SACAwB,aACAyH,aACAM,cACAnI,UACAC,UACAC,WACA4H,iBACAjE,SACAuB,WACA9B,iBACAP,uBAsBI0L,iBAAEA,GAAgBC,iBAAEA,IAAqBC,iBAAqB,CAClElM,iBACAmM,UAAW,IAAI7M,GACf8M,SAAUjM,GACVqC,WACAvC,YACAO,eACAC,gBACA+I,oBACAF,mBACA1O,eACAmF,cACAiJ,YAAcvK,GAAOgH,GAAYwD,IAAIxK,GACrC4N,gBAhCuBb,IACvB,IAAKA,EACH,OAAO,EAGT,MAAMc,EAAUC,EAAAA,eAAe/J,GAASgJ,GACxC,UACGc,GACiC,YAA/BA,EAAyB,iBACO,qBAA/BA,EAAyB,iBACM,cAA/BA,EAAyB,mBAC7BlE,GAKU,IAmBRoE,GAAkBtL,GACtB3D,GACAC,GACAC,GACAuH,GAAOyH,cACPzH,GAAO0H,cACPpG,IAEIqG,GAAsB5L,GAC1BxD,GACAC,GACAC,GACAuH,GAAOyH,cACPzH,GAAO0H,cACPpG,KAEKsG,GAAiBC,IAAsBhC,EAAQA,UAAC,GAEjDiC,GAAmBC,EAAAA,sBACvBpN,EACAuK,GACAjJ,GACAmF,GACAhJ,IACEmE,GACFwD,GACAC,GAAOgI,sBACP/H,GAAO+H,sBACP9H,GAAQ8H,wBAgCJC,eACJA,GAAcC,kBACdA,GACAC,cAAgB,mBAAoBC,MAA2BD,KAC7DE,2BAA+B,CACjC1N,SACAyG,kBACAlK,QACAC,SACA+E,YAAasL,GACbnH,iBACA9E,8BACAH,uBACAF,sBACAG,mBACAkJ,mBACAD,mBACAvJ,cACAuN,WA/CkB7O,GAEhBrB,GAAOc,kBAAkBqP,MAAMvP,GAASA,EAAKS,KAAOA,KACpDpB,GAAOa,kBAAkBqP,MAAMvP,GAASA,EAAKS,KAAOA,KACpDnB,GAAQY,kBAAkBqP,MAAMvP,GAASA,EAAKS,KAAOA,uBAI7BA,YCje9BA,EACA2I,EACAC,EACAC,EACA/J,EACAC,EACAC,EACAC,EACA2H,GAEA,MAAMpD,EACJmF,GAAOmG,MAAMvP,GAASA,EAAKS,KAAOA,KAClC4I,GAAOkG,MAAMvP,GAASA,EAAKS,KAAOA,KAClC6I,GAAQiG,MAAMvP,GAASA,EAAKS,KAAOA,IACrC,IAAKwD,EAAK,OAEV,MAAMuL,EAAQpG,GAAOqG,MAAMzP,GAASA,EAAKS,KAAOA,IAC1CiP,EAASpG,GAAQmG,MAAMzP,GAASA,EAAKS,KAAOA,IAE5CM,IAAWyO,EAEXG,EAAc5O,EAASxB,EAASmQ,EAASjQ,EAAUD,EACnDoQ,EAAgB7O,EAASvB,EAASD,EAElCsQ,EAAU,CAACC,EAAYC,KAA2B,CAAE9R,EAAG6R,EAAI1R,EAAG2R,EAAI7R,MAAO,EAAGC,OAAQ,IAE1F,GAAiB,SAAb8F,EAAI2F,MAAgC,MAAb3F,EAAI4F,MAAe,CAC5C,MAAMmG,EAAML,GAAaM,UAAUhM,EAAI4F,OACjCqG,EAAQN,GAAeM,UACvBC,EAAQD,IAAQ,GAChBE,EAAQF,IAAQ,GACtB,GAAmB,iBAARF,GAAoBK,MAAML,IAAiB,MAATG,GAA0B,MAATC,EAAe,OAE7E,MAAME,GAAOH,EAAQC,GAAS,EAG9B,MADmB,aAAhB1Q,IAA+BqB,GAA4B,eAAhBrB,GAAgCqB,EACpD8O,EAAQS,EAAKN,GAAOH,EAAQG,EAAKM,EAC5D,CAGD,GAAiB,SAAbrM,EAAI2F,KAAiB,CACvB,MAAM2G,EAASZ,GAAaY,WACtBC,EAASD,EAASpT,KAAKS,IAAI2S,EAAO,GAAIA,EAAO,KAAM,IACnDE,EAASF,EAASpT,KAAKC,IAAImT,EAAO,GAAIA,EAAO,IAAMG,IAEnDC,EAAwB,MAAX1M,EAAI6F,IAAc3M,KAAKC,IAAI6G,EAAI6F,IAAK0G,GAAUA,EAC3DI,EAA0B,MAAZ3M,EAAI8F,KAAe5M,KAAKS,IAAIqG,EAAI8F,KAAM0G,GAAUA,EAE9DI,EAAOlB,GAAaM,UAAUU,GAC9BG,EAAOnB,GAAaM,UAAUW,GAC9BV,EAAQN,GAAeM,UACvBC,EAAQD,IAAQ,GAChBE,EAAQF,IAAQ,GAEtB,GACkB,iBAATW,GACS,iBAATC,GACPT,MAAMQ,IACNR,MAAMS,IACG,MAATX,GACS,MAATC,EAEA,OAGF,MAAMW,GAAWZ,EAAQC,GAAS,EAC5BY,GAAUH,EAAOC,GAAQ,EAG/B,MADmB,aAAhBpR,IAA+BqB,GAA4B,eAAhBrB,GAAgCqB,EACpD8O,EAAQkB,EAASC,GAAUnB,EAAQmB,EAAQD,EACtE,CAID,OAAOlB,EAFSxI,EAAcpJ,EAAIoJ,EAAcnJ,MAAQ,EACxCmJ,EAAcjJ,EAAIiJ,EAAclJ,OAAS,EAE3D,CDuZa8S,CACLxQ,EACArB,GAAOc,iBACPb,GAAOa,iBACPZ,GAAQY,iBACRX,GACAC,GACAC,GACAC,EACA2H,IA+BF6J,WA3BkBzQ,GACdrB,GAAOc,kBAAkBuP,MAAMzP,GAASA,EAAKS,KAAOA,IAAY,IAChEpB,GAAOa,kBAAkBuP,MAAMzP,GAASA,EAAKS,KAAOA,IAAY,IAChEnB,GAAQY,kBAAkBuP,MAAMzP,GAASA,EAAKS,KAAOA,IAAY,UAArE,EAyBA0C,iBACAJ,eAAgB4L,GAChB/L,WACAK,gBACA0B,WACAuG,iBACAiG,WAAYvC,GACZrP,OAAQA,GACRC,UACAC,WACAyE,gBACAkN,kBAAmBpK,GAAOgI,sBAC1BqC,kBAAmBpK,GAAO+H,sBAC1BsC,mBAAoBpK,GAAQ8H,sBAC5BuC,YAAahO,GACbwD,oBACAmF,kBAkBIsF,GAAqBC,EAAAA,QAGrBC,GACJ7S,EAACC,IAAA6S,aACClQ,SAAUA,EACViE,WAAY2B,GACZzC,cAAeA,GACfxB,MAAOA,GACPwO,YAAaxK,GAAUyK,WACvBC,YAAanS,GAAUkS,WACvBtS,OAAQA,GACRC,OAAQA,GACRC,QAASA,GACTsS,MAAwB,QAAjB1S,GAAO2S,MACdnN,cAAeA,GACftB,YAAaA,GACbnE,MAAOA,EACPC,MAAOA,EACPC,OAAQA,EACR2S,aAAcrO,GACdsO,aAAcxK,IAAYmK,WAC1BM,QAASzK,GAAW0K,MACpBC,OAAQjL,GAAUgL,MAClBE,OAAQ3S,GAAUyS,MAClB5L,aAAcA,MAIZ+L,mBAAEA,GAAkBC,iBAAEA,IAAqBC,sBAA0B,CACzErP,SACAlF,QACAC,SACAwQ,uBACAhN,SACA/E,eACA4O,oBACAzJ,cACAuJ,mBACA9G,WACAkO,WAAYtT,GAAOuO,MACnBgF,WAAYtT,GAAOsO,MACnBnK,kBAAmBoP,EAAAA,QAAQjR,EAAQ/B,GAAU4D,QAAoBvC,EACjE4R,uBAxP8BC,IACd,aAAZA,GACFpH,IACD,KAwPIqH,GAAUC,IAAenG,WAA0D,CACxFoG,cAAUhS,EACV2I,KAAM,MAGFsJ,UAAEA,GAASC,SAAEA,GAAQC,WAAEA,IAAeC,EAAAA,YAAkB,CAC5DC,OAAQtP,GAAMsP,OACdC,YAAavP,GAAMuP,YACnBC,UAAWxP,GAAMwP,UACjBC,YAAazP,GAAMyP,YACnBC,YAAa1P,GAAM0P,YACnBC,WAAY3P,GAAM2P,WAClBC,OAAQ5P,GAAM4P,OACdC,eAAgB7P,GAAM6P,eACtBC,eAAgB9P,GAAM8P,eACtBtP,WACA5H,eACA+E,SACAL,cACAS,cACAuF,UACAC,UACAF,iBACA2L,eACAnE,sBACA1M,uBAGI4R,GAAc1G,EAAAA,WAClB5B,GACAuC,GACAF,GACAqB,GACA5E,GACAiC,GACAgG,GACAW,IAGIa,GACQ,OAAZvQ,IAAmC,OAAbA,IAAsBA,GAASwQ,cAEjDhT,EADA0C,IAGAuQ,WAAEA,GAAUC,cAAEA,IAAkBrQ,GAAiBuD,IAEjD+M,GAA8C,MAA5B9I,GAAgBtK,UAAoBsK,GAAgB+I,eACtEvU,GAAawU,EAAAA,cAAchJ,GAAiBC,IAClD,OACE9M,EAAAA,KACGE,EAAAA,SAAA,CAAAC,SAAA,CAAA4G,IAAsDvE,MAAjC+D,GAA4B,eAChDvG,EAAAA,KAAA,MAAA,CACE8V,SAAU3Q,QAAa3C,EAAY,EACnCiS,UAAWA,GACXjP,IAAKO,GACkB,wBAAA3E,GACX,aAAAmE,GAAM,cAAa,kBACdA,GAAM,mBACL,mBAAAwQ,EAAKC,EAAC,CAACzQ,GAAM,oBAAqBoL,KACpDsF,MAAO,IAAKvJ,IACZwJ,KAAM/Q,QAAa3C,EAAY,cAC/B2T,UAAW5V,EAAAA,OAAO6V,eACc,iCAAAnQ,GAAY1C,QAAgBf,KACxDqD,MACCV,GAAa,CAAE,EAAGmQ,GACvBnV,SAAA,CAAAH,OAAA,MAAA,CACEP,MAAM,OACNC,OACuB,GAArB8H,GAAW9H,QAA2B,OAAZsF,GACnBtG,KAAK2X,KAAuD,KAAjD/O,GAAaL,WAAWvH,OAxnBrC,KAwnBqEA,EAAtE,IACA,OAAMS,SAAA,CAEZC,MAAU,WAAA,CAAA4B,GAAI,GAAG+Q,KAAoB5S,SACnCC,iBAAUwI,OAEX6M,GACDrV,EAAAC,IAACiW,WAAQ,CACPC,MAAOvT,GAAUuT,MACjBC,cACoB,aAAlBlC,GAASnJ,KAAsB,OAASmJ,GAASE,SAAW,SAAW,SAEzE5I,OAAQA,GACR3E,WAAY2B,MAEZ/D,IAA0BoO,GAC5B7S,MAACqW,EAAAA,KAAI,IACEjO,GACLkO,aAActQ,GACdzB,MAAOA,GACPiH,OAAQC,GACR5E,WAAY6B,GACZ0N,cACoB,UAAlBlC,GAASnJ,KAAmB,OAASmJ,GAASE,SAAW,SAAW,WAGxEpU,EAAAC,IAACoW,OACM,IAAAhO,GACLiO,aAAcrQ,GACd1B,MAAOA,GACPiH,OAAQC,GACR5E,WAAY8B,GACZyN,cACoB,WAAlBlC,GAASnJ,KAAoB,OAASmJ,GAASE,SAAW,SAAW,WAGzEpU,MAACqW,EAAAA,SACKlO,GACJ5D,MAAOA,GACP+R,aAAcvQ,GACdwQ,kBA1KgB/U,IAC1B,GAAI8D,GACF,OAAO,EAET,MAAMkR,EAAazV,EAAOS,IAAQ4B,SAClC,MAAmB,OAAfoT,GAIc,OAAdA,IAAqC,OAAbpT,IAAkC,eAAbA,GAGrC,EA+JFpC,SAAUA,GACVwK,OAAQA,GACRiL,kBACE9J,GAAiB6I,eAAiB7I,GAAiB1O,gBAAamE,EAElEsU,uBACE/J,GAAiB6I,eAAiB7I,GAAiB3O,gBAAaoE,EAElEyE,WAAY4B,GACZ2N,cACoB,UAAlBlC,GAASnJ,KAAmB,OAASmJ,GAASE,SAAW,SAAW,SAEtEuC,eAAiBpW,GAA0BqW,iBAAiBT,QAE9DvW,EAAAC,KAAA,IAAA,CAAA,YAAc,QAAQ8S,MACpB5S,SAAA,CAAAC,EAAAA,IAACK,EAAgB,CACfC,SAAS,OACTU,SAAUuU,GAAkBvU,QAAWoB,EACvCnB,WAAYA,GACZV,MAAOA,EACPC,MAAOA,EACPC,OAAQA,EACRC,OAAQA,GACRC,OAAQA,GACRC,QAASA,GACTC,YAAaA,EACbC,UAAWA,GACXC,OAAQA,IAEThB,GAAS,CACR8B,YAAaf,GAAUgB,WACvBC,UAAWjB,GAAUkB,SACrBiO,oBACA4G,WAAYtN,GACZjD,kBACA5F,OAAQA,GACRC,UACAC,WACAiL,wBACAiL,gBAAiB3Q,GAA4B,cAC7CsD,YACAzI,YACAyL,mBACAC,mBACA/F,qBACAiJ,cAAezH,GAAOyH,cACtBC,cAAe1H,GAAO0H,cACtB8C,wBAEDlO,IAA0BoO,GAC3B7S,EAAAA,IAACK,EACC,CAAAC,SAAS,QACTC,MAAOA,EACPC,MAAOA,EACPC,OAAQA,EACRO,SAAUA,GACVC,WAAYA,GACZP,OAAQA,GACRC,OAAQA,GACRC,QAASA,GACTC,YAAaA,EACbC,UAAWA,GACXC,OAAQA,IAETsP,MAEFiF,GACkB,SAAlBtR,KAA6Be,IAC5B/E,EAAAC,IAAC8W,EAASA,UAAA,CACRlQ,WAAYO,GACZ7C,MAAOA,GACPyS,SAAUlW,GACVmW,WAAYnW,GACZgF,QAA2B,WAAlBC,KAGZ4F,MAEH3L,EAAAC,IAACiX,EAAeA,gBAACC,SACf,CAAAnM,MAAO,CACLhG,UAAW0D,GAAOrJ,MAClB0F,YAAY,EACZ1F,QACAC,OAAQ8H,GAAW9H,OACnB2F,iBAAmBmS,IACjB,MAAQ1W,OAAQ2W,KAAmBC,GGj0BrC,SACd/S,EACAgT,EACAC,EACAC,EACAC,EACAlP,GAEA,MAAMmP,EAAU,CAACH,EAAYzY,IAAKyY,EAAYjZ,KACxCqZ,EACJrT,EACI,CAACiE,EAAcpJ,EAAIoJ,EAAcnJ,MAAOmJ,EAAcpJ,GACtD,CAACoJ,EAAcpJ,EAAGoJ,EAAcpJ,EAAIoJ,EAAcnJ,OAElDqB,EAAS,IAAImX,EAAAA,YAAYF,EAASC,GAElCE,EAAU,CAACJ,EAAY3Y,IAAK2Y,EAAYnZ,KACxCwZ,EAAS,CAACvP,EAAcjJ,EAAIiJ,EAAclJ,OAAQkJ,EAAcjJ,GAEhEoB,EAAS,IAAIkX,EAAAA,YAAYC,EAASC,GAElCvY,EAAUkB,EAAO0Q,UAAUmG,EAAgBS,aAC3CtY,EAAcpB,KAAK2Z,IACvBvX,EAAO0Q,UAAUmG,EAAgBW,aAAexX,EAAO0Q,UAAUmG,EAAgBS,cAGnF,MAAO,CACLxY,QAAS+E,EAAQ/E,EAAUE,EAAcF,EACzCE,YAAaA,EACbC,QAASgB,EAAOyQ,UAAUqG,EAAgBS,aAC1CzY,aAAcnB,KAAK2Z,IACjBtX,EAAOyQ,UAAUqG,EAAgBS,aAAevX,EAAOyQ,UAAUqG,EAAgBO,cAEnFtX,SACAC,SAEJ,CH6xBsEwX,CAClD5T,GACAzD,GACAA,GACAyH,GACAA,GACA6O,GAEF,OIt0BF,SACdI,EACAjT,EACA8S,EACA7O,EACA8O,EACAc,EACA3U,GAOA,MAAO,CACL6R,cACEtV,EAAAC,IAACoY,wBACK,IAAA7P,KACA8O,EACJc,WAAYA,EACZE,mBAAqBnT,IACnBoT,EAAAA,2BACEf,EACAjT,EACA+S,EAAa9X,QACb8X,EAAa5X,YACbyF,EAAMqT,OACNrT,EAAMsT,WACNpB,EACA5T,EACD,IAIP4R,WAAYrV,EAACC,IAAAd,MAAuBqJ,KAAmB8O,IAE3D,CJkyByBoB,CACL5X,GACAyD,GACA8S,EACAD,EACAE,GACA,EACA7T,GACD,GAGJ1D,UAACgF,IAA2B,QAAbH,IAAsBuQ,IACpCnV,EAAAC,IAAA,MAAA,CAAK4V,MAAO,CAAExW,QAAOC,OAAQ8H,GAAW9H,QAAWS,SAAAoV,SAGtDvJ,GACAwE,GACA1C,GACAgG,GACAtE,GACAmF,MAGJ7N,GACAN,KAEH,IK/vBOuS,EAAQnW,EAAAA,YACnB,EACInD,QAAOC,YAAW6F,GACpBC,EAAuB,QAGvB,MAAML,WACJA,EAAUE,iBACVA,EAAgBD,UAChBA,EACA3F,MAAOuZ,EACPtZ,OAAQuZ,GACNC,EAAAA,qBAEJ,IAAI9M,EAAa3M,EACb0Z,EAAczZ,EAUlB,YARmB8C,IAAf4J,GAA4BjH,QAAgC3C,IAAlBwW,IAC5C5M,EAAa,GAAG4M,YAGExW,IAAhB2W,GAA6BhU,QAAiC3C,IAAnByW,IAC7CE,EAAc,GAAGF,OAIjB7Y,EAAAA,IAACgZ,EAAAA,qBAAoB,CAAC3Z,MAAO2M,EAAY1M,OAAQyZ,EAAa7Y,MAAO+Y,EAAAA,eAClElZ,SAAA,CAACV,EAAOC,IACPD,GAASC,EACPU,EAAAA,IAACuC,EAAmB,CAClB6C,IAAKA,EACL/F,MAAOA,EACPC,OAAQA,KACJ6F,EACJH,UAAWA,EACXD,WAAYA,EACZE,iBAAkBA,SAElB7C,GAGR"}
|
|
1
|
+
{"version":3,"file":"Chart-d9eafc7a.js","sources":["../../src/PRIVATE_Axis/utils/axisNavUtils.ts","../../src/PRIVATE_VisOverview/OverviewBackground.tsx","../../src/PRIVATE_PlotArea/ReferenceObjects.tsx","../../src/PRIVATE_Chart/ChartWithDimensions.tsx","../../src/utils/PRIVATE_chartUtils/refObjectsNavUtils.ts","../../src/PRIVATE_VisSVGText/useTextTruncation.ts","../../src/PRIVATE_VisOverview/utils.ts","../../src/PRIVATE_Chart/overviewUtils.tsx","../../src/PRIVATE_Chart/Chart.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { GroupLevelItem } from '#PRIVATE_Axis/groupAxis/hierarchicalUtils';\nimport { ChartGroupInfo } from '#utils/UNSAFE_visTypes/chart';\n\ntype isGroupNavigableType = (levelIndex: number, groupIndex: number) => boolean;\n\n/**\n * Returns the parent group for the navigable item.\n * @param levelsArray The levels array.\n * @param levelIndex The levelIndex of current naviable group..\n * @param groupIndex The groupIndex of current navigable group.\n * @returns\n */\nexport function getParentGroup(\n levelsArray: GroupLevelItem[][],\n levelIndex: number,\n groupIndex: number,\n isGroupNavigable: isGroupNavigableType\n) {\n const path = levelsArray[levelIndex][groupIndex].path;\n if (path.length === 1) {\n return {\n levelIndex,\n groupIndex\n };\n }\n\n let lIndex = Math.max(0, levelIndex - 1);\n const groupItem = levelsArray[levelIndex][groupIndex];\n const { start, end } = groupItem;\n\n while (lIndex >= 0) {\n for (let i = 0; i < levelsArray[lIndex].length; i++) {\n const { start: s, end: e } = levelsArray[lIndex][i];\n if (s <= start && end <= e) {\n if (isGroupNavigable(lIndex, i)) {\n return { groupIndex: i, levelIndex: lIndex };\n }\n }\n }\n lIndex -= 1;\n }\n\n return {\n levelIndex,\n groupIndex\n };\n}\n\n/**\n * @param levelsArray The levels array.\n * @param levelIndex The levelIndex of current navigable item.\n * @param groupIndex The groupIndex of current navigable item.\n * @returns\n */\nexport function getChildGroup(\n levelsArray: GroupLevelItem[][],\n levelIndex: number,\n groupIndex: number,\n isGroupNavigable: isGroupNavigableType\n) {\n if (levelIndex === levelsArray.length - 1) {\n return { levelIndex, groupIndex };\n }\n\n const lIndex = Math.min(levelsArray.length - 1, levelIndex + 1);\n\n const groupItem = levelsArray[levelIndex][groupIndex];\n const { start, end } = groupItem;\n\n while (lIndex <= levelsArray.length - 1) {\n for (let i = 0; i < levelsArray[lIndex].length; i++) {\n const { start: s, end: e } = levelsArray[lIndex][i];\n if (start <= s && e <= end) {\n if (isGroupNavigable(lIndex, i)) {\n return { groupIndex: i, levelIndex: lIndex };\n }\n }\n }\n }\n return {\n levelIndex,\n groupIndex\n };\n}\n\nexport function getNextGroup(\n levelsArray: GroupLevelItem[][],\n info: ChartGroupInfo,\n isGroupNavigable: isGroupNavigableType\n): ChartGroupInfo | undefined {\n const groupIndex = info.groupIndex! + 1;\n const levelIndex = info.levelIndex!;\n\n const maxgroup = levelsArray[levelIndex].length - 1;\n\n if (groupIndex > maxgroup) {\n return;\n }\n\n if (isGroupNavigable(levelIndex!, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n return getNextGroup(levelsArray, { groupIndex, levelIndex }, isGroupNavigable);\n}\n\nexport function getPreviousGroup(\n info: ChartGroupInfo,\n isGroupNavigable: isGroupNavigableType\n): ChartGroupInfo | undefined {\n const groupIndex = info.groupIndex! - 1;\n const levelIndex = info.levelIndex;\n if (groupIndex < 0) {\n return;\n }\n if (isGroupNavigable(levelIndex!, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n return getPreviousGroup({ groupIndex, levelIndex }, isGroupNavigable);\n}\n\nexport function getGroupNavUtil(\n levelsArray: GroupLevelItem[][],\n drilling: 'on' | 'off' | 'groupsOnly',\n isRtl: boolean,\n isHoriz: boolean,\n isGroupLabelRendered?: (levelIndex: number, groupIndex: number) => boolean\n) {\n const isGroupNavigable = (levelIndex: number, groupIndex: number) => {\n const group = levelsArray[levelIndex][groupIndex].item;\n const groupName = group.name || group.id;\n const groupsDrilling = group.drilling;\n const isLabelRendered = !!isGroupLabelRendered?.(levelIndex, groupIndex);\n return (\n isLabelRendered &&\n groupName != null &&\n (drilling === 'on' || drilling === 'groupsOnly') &&\n groupsDrilling != 'off'\n );\n };\n\n const getDefaultNavGroup = () => {\n for (let levelIndex = 0; levelIndex < levelsArray.length; levelIndex++) {\n const numGroups = levelsArray[levelIndex].length;\n for (let groupIndex = 0; groupIndex < numGroups; groupIndex++) {\n if (isGroupNavigable(levelIndex, groupIndex)) {\n return { groupIndex, levelIndex };\n }\n }\n }\n return { groupIndex: 0, levelIndex: 0 };\n };\n\n const getNextNavGroup = (\n info: ChartGroupInfo,\n arrow: 'ArrowRight' | 'ArrowLeft' | 'ArrowUp' | 'ArrowDown'\n ) => {\n let nextGroup;\n\n if (arrow === 'ArrowRight') {\n if (isHoriz) {\n nextGroup = !isRtl\n ? getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else {\n nextGroup = isRtl\n ? getPreviousGroup(info, isGroupNavigable)\n : getNextGroup(levelsArray, info, isGroupNavigable);\n }\n } else if (arrow === 'ArrowLeft') {\n if (isHoriz) {\n nextGroup = isRtl\n ? getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else {\n nextGroup = isRtl\n ? getNextGroup(levelsArray, info, isGroupNavigable)\n : getPreviousGroup(info, isGroupNavigable);\n }\n } else if (arrow === 'ArrowDown') {\n nextGroup = isHoriz\n ? getNextGroup(levelsArray, info, isGroupNavigable)\n : getParentGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n } else if (arrow === 'ArrowUp') {\n nextGroup = isHoriz\n ? getPreviousGroup(info, isGroupNavigable)\n : getChildGroup(levelsArray, info.levelIndex!, info.groupIndex!, isGroupNavigable);\n }\n return nextGroup || info;\n };\n\n return { getNextNavGroup, getDefaultNavGroup };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { OverviewProps } from './overview.types';\nimport { styles } from './themes/VisOverview.css';\n\nexport function OverviewBackground({\n x,\n width,\n height,\n y,\n windowX,\n windowHeight,\n windowWidth,\n windowY\n}: OverviewProps) {\n return (\n <>\n <rect\n x={x}\n y={y}\n width={Math.max(0, windowX - x)}\n height={height}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX + windowWidth}\n width={Math.max(0, x + width - windowX - windowWidth)}\n y={y}\n height={height}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX}\n y={y}\n height={Math.max(0, windowY - y)}\n width={windowWidth}\n class={styles.overviewBackground}></rect>\n\n <rect\n x={windowX}\n y={windowY + windowHeight}\n width={windowWidth}\n class={styles.overviewBackground}\n height={Math.max(y + height - windowY - windowHeight, 0)}></rect>\n </>\n );\n}\n","import { Info, ReferenceObjectData } from '../utils/UNSAFE_visTypes/chart';\nimport { Group, Scale } from '../utils/UNSAFE_visTypes/chart';\nimport { ReferenceLineArea } from './ReferenceLineArea';\n\n// Main renderer component\nexport function ReferenceObjects({\n location,\n xAxis,\n yAxis,\n y2Axis,\n xScale,\n yScale,\n y2Scale,\n orientation,\n xAxisInfo,\n groups,\n activeId,\n activeInfo\n}: {\n location: 'front' | 'back';\n xAxis?: { referenceObjects?: ReferenceObjectData[] };\n yAxis?: { referenceObjects?: ReferenceObjectData[] };\n y2Axis?: { referenceObjects?: ReferenceObjectData[] };\n xScale: Scale;\n yScale: Scale;\n y2Scale: Scale;\n orientation: string;\n xAxisInfo: { startIndex: number; endIndex: number };\n groups: Group[];\n activeId?: string;\n activeInfo?: Info;\n}) {\n const filterFunc = (item: ReferenceObjectData) =>\n location === 'front' ? item.location === 'front' : item.location !== 'front';\n\n return (\n <>\n {xAxis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n key={item.id}\n xScale={xScale}\n yScale={yScale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n isXRef={true}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n\n {yAxis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n xScale={xScale}\n yScale={yScale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n\n {y2Axis?.referenceObjects\n ?.filter(filterFunc)\n .map((item, index) => (\n <ReferenceLineArea\n {...item}\n xScale={xScale}\n yScale={y2Scale}\n orientation={orientation as 'horizontal' | 'vertical'}\n groups={groups}\n xStartIndex={xAxisInfo.startIndex}\n xEndIndex={xAxisInfo.endIndex}\n seriesIndex={index}\n activeId={item.id === activeInfo?.refObjId ? activeId : undefined}\n />\n ))}\n </>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { VisInvalidDataError } from '#UNSAFE_visErrors';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { useCssVars } from '#hooks/PRIVATE_useCssVars/useCssVars';\nimport { styles } from './themes/ChartStyles.css';\nimport { useMemo, useRef, useState, useImperativeHandle } from 'preact/hooks';\nimport { PlotArea } from '#PRIVATE_PlotArea';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { Axis } from '#PRIVATE_Axis/Axis';\nimport { useChartViewport } from '#hooks/PRIVATE_useChartViewport';\nimport {\n getAvailSpace,\n getLayoutInfo,\n getOuterGaps,\n getScrollBarSpace,\n updateScrollBarSpace\n} from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport {\n GroupAxisProps,\n DataAxisProps,\n TimeAxisProps,\n SizeHandle,\n Info\n} from '#utils/UNSAFE_visTypes/chart';\nimport { useChartNav } from '#hooks/PRIVATE_useChartNav/useChartNav';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { getAxesPosition } from '#PRIVATE_Axis/utils/axisUtils';\nimport { ScrollBar } from '#PRIVATE_ChartScrollBar';\nimport { useSelectDrill } from '#hooks/PRIVATE_useChartEvents/useSelectDrill';\nimport { useChartDatatipAndCursor } from '#hooks/PRIVATE_useChartEvents/useDatatipAndCursor';\nimport { getGroupNavUtil } from '#PRIVATE_Axis/utils/axisNavUtils';\nimport { Gridlines } from '#PRIVATE_PlotArea/Gridlines';\nimport {\n buildNavigableRefObjects,\n getRefObjectBounds as computeRefObjectBounds\n} from '#utils/PRIVATE_chartUtils/refObjectsNavUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { getChartVars } from '#utils/PRIVATE_chartUtils';\nimport { useChartContextMenu } from '#hooks/PRIVATE_useChartContextMenu';\nimport { useChartDnd } from '#hooks/PRIVATE_useChartDnd';\nimport { getElementData } from '#utils/UNSAFE_visUtils';\nimport { useTextTruncation } from '#PRIVATE_VisSVGText/useTextTruncation';\nimport { useChartMarquee } from '#hooks/PRIVATE_useChartMarquee';\nimport { ChartProps } from './Chart';\nimport type { gestureTypes } from '#hooks/PRIVATE_useVisContextMenu';\nimport { useVisTouchResponse } from '#hooks/PRIVATE_useVisTouchResponse';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\nimport { OverviewContext } from '#hooks/PRIVATE_useOverviewContext';\nimport { getWindowCoords } from '#PRIVATE_VisOverview/utils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { getRenderer } from './overviewUtils';\nimport { ComponentChildren, Ref, VNode } from 'preact';\nimport { forwardRef } from 'preact/compat';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport {\n getAriaLabelGenerator,\n getTextAndBoundsUtil,\n getTextAndDimsInfo\n} from '#utils/PRIVATE_chartUtils/dataTipUtils';\nimport { hasData, hasInvalidData } from '#utils/PRIVATE_chartUtils/dataUtils';\nimport { ReferenceObjects } from '#PRIVATE_PlotArea/ReferenceObjects';\nimport { getActiveInfo } from '#utils/PRIVATE_chartUtils/utils';\nimport { merge } from '#utils/UNSAFE_stringUtils';\n\ntype ChartWithDimensionsProps<K, D> = Omit<ChartProps<K, D>, 'width' | 'height'> & {\n width: number;\n height: number;\n overviewRenderer: (props: Dimension) => {\n background: ComponentChildren;\n slidingWindow: ComponentChildren;\n };\n yAxisSize: number;\n isOverview: boolean;\n};\n\nconst OVERVIEW_GAP = 10;\n\nconst chartVars = getChartVars();\n\ntype ForwardRefChart = <\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n>(\n props: ChartWithDimensionsProps<K, D> & {\n ref?: Ref<SizeHandle>;\n }\n) => VNode | null;\n\nexport const ChartWithDimensions = forwardRef(\n <K extends string | number, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>>(\n {\n width,\n height,\n selectedIds,\n hiddenIds,\n hideAndShowBehavior = 'none',\n orientation = 'vertical',\n xAxis,\n yAxis,\n y2Axis,\n plotArea,\n dragMode = 'user',\n series,\n groups,\n isStacked = false,\n stackLabelStyle,\n getStackGroup,\n getDataItem,\n selectionMode = 'none',\n drilling = 'off',\n dataCursorPosition,\n onSelectionChange,\n isDataCursorEnabled,\n dataCursorStyle,\n onViewportChange,\n onDataCursorPositionChange,\n onItemDrill,\n onGroupDrill,\n onItemHover,\n onItemFocus,\n datatip,\n zoomAndScroll = 'off',\n getNavUtil,\n getDataItemPos,\n getGapRatio,\n valueFormats,\n findNearest,\n getMarkerInfo,\n isRtl,\n children,\n testId,\n renderGridLinesInFront,\n isDataXAxis,\n contextMenuConfig,\n overview = 'off',\n getStartAndEndAxesOffset,\n defaultOverviewContentRenderer,\n isOverview,\n yAxisSize,\n overviewRenderer,\n initialZooming = 'none',\n ...props\n }: ChartWithDimensionsProps<K, D>,\n ref: Ref<SizeHandle> = null\n ) => {\n const timeAxisType = (xAxis as TimeAxisProps)?.timeAxisType;\n const isTimeAxis = timeAxisType != null;\n if (hasInvalidData(timeAxisType, series, groups, getDataItem)) {\n throw new VisInvalidDataError('Chart received invalid data');\n }\n\n const testIdProps = useTestId(testId);\n const rootRef = useRef<HTMLDivElement>(null);\n const isTestEnv = testIdProps['data-testid'] !== undefined;\n const isHoriz = orientation === 'horizontal';\n const { xAxisPosition, yAxisPosition, y2AxisPosition } = getAxesPosition(\n yAxis,\n y2Axis,\n isHoriz,\n isRtl\n );\n const { resolvedVars, cssContent } = useCssVars(chartVars);\n const resolvedColors = Array.from(Array(12)).map((_, index) => {\n return resolvedVars[`color${index + 1}`];\n });\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n let availSpace = getAvailSpace(width, height);\n\n if (isOverview && yAxisSize) {\n const w = availSpace.width - yAxisSize;\n const gaps = getOuterGaps(w, height);\n availSpace.width -= yAxisSize - 2 * gaps.width;\n availSpace.x += yAxisSize - gaps.width;\n }\n\n const updatedSpace = getScrollBarSpace(\n isTimeAxis,\n availSpace,\n zoomAndScroll,\n xAxisPosition,\n overview\n );\n let scrollDims = updatedSpace.scrollDims;\n availSpace = updatedSpace.availSpace;\n const { locale } = useUser();\n const { x, y, width: _width, height: _height } = availSpace;\n const labelFontSize = resolvedVars['labelFontSize'];\n\n const split = y2Axis?.split ?? 'off';\n const isSplitDualY = split !== 'off';\n const splitterPosition = split !== 'off' ? split : 0.5;\n\n const layoutInfo = useMemo(() => {\n const hiddenSet = new Set(hiddenIds);\n return getLayoutInfo<K, D>(\n series,\n groups,\n getDataItem,\n xAxis,\n yAxis,\n y2Axis,\n { x, y, width: _width, height: _height }, // availSpace\n hiddenSet,\n hideAndShowBehavior,\n isHoriz,\n isRtl,\n isStacked,\n labelFontSize,\n getStartAndEndAxesOffset,\n locale,\n isSplitDualY,\n splitterPosition,\n getStackGroup,\n getTextDimensions,\n isTestEnv,\n isDataXAxis,\n initialZooming,\n zoomAndScroll\n );\n }, [\n x,\n y,\n _width,\n _height,\n getDataItem,\n getTextDimensions,\n groups,\n hiddenIds,\n hideAndShowBehavior,\n isDataXAxis,\n isHoriz,\n isRtl,\n isStacked,\n isTestEnv,\n locale,\n getStartAndEndAxesOffset,\n labelFontSize,\n series,\n xAxis,\n yAxis,\n y2Axis,\n splitterPosition,\n isSplitDualY,\n getStackGroup,\n initialZooming,\n zoomAndScroll\n ]);\n\n const {\n getGroupFromPath,\n levelsArray,\n xAxisInfo,\n xProps,\n xScale,\n yProps,\n y2Props,\n yScale,\n y2Scale,\n yMaxDim,\n yAxisInfo,\n plotAreaSpace,\n xSpace,\n ySpace,\n y2Space,\n idToDataMap,\n y2AxisInfo,\n getYPreferredSize,\n getY2PreferredSize,\n getXPreferredSize\n } = layoutInfo;\n\n useImperativeHandle(ref!, () => ({\n _getYaxis: () => {\n return { getPreferredSize: getYPreferredSize, bounds: ySpace };\n },\n _getY2axis: () => {\n return { getPreferredSize: getY2PreferredSize, bounds: y2Space };\n },\n _getXaxis: () => {\n return { getPreferredSize: getXPreferredSize, bounds: xSpace };\n }\n }));\n\n const leafGroupsInfo = levelsArray.length > 0 ? levelsArray[levelsArray.length - 1] : [];\n\n scrollDims = updateScrollBarSpace(scrollDims, xAxisPosition === 'bottom', isRtl, yMaxDim);\n\n const gapRatio = getGapRatio(xAxisInfo.startIndex!, xAxisInfo.endIndex!);\n\n const getNextChartItem = getNavUtil(xAxisInfo.startIndex!, xAxisInfo.endIndex!);\n\n const { getNextNavGroup, getDefaultNavGroup } = getGroupNavUtil(\n levelsArray,\n drilling,\n isRtl,\n isHoriz,\n xProps.isGroupLabelRendered\n );\n\n const navigableRefObjects = useMemo(\n () =>\n buildNavigableRefObjects(\n xAxis?.referenceObjects,\n yAxis?.referenceObjects,\n y2Axis?.referenceObjects\n ),\n [xAxis?.referenceObjects, yAxis?.referenceObjects, y2Axis?.referenceObjects]\n );\n\n const getNextRefObject = (\n info: Info,\n arrow: 'ArrowLeft' | 'ArrowRight' | 'ArrowDown' | 'ArrowUp'\n ): Info => {\n const list = navigableRefObjects;\n if (!list || list.length === 0) {\n return {};\n }\n const dir = arrow === 'ArrowLeft' || arrow === 'ArrowUp' ? -1 : 1;\n\n const idx =\n info.refObjId != null\n ? list.findIndex((o) => o.id === info.refObjId)\n : dir > 0\n ? -1\n : list.length;\n\n // Move one step in the desired direction. Clamp at the ends.\n let nextIdx = idx + dir;\n if (nextIdx < 0) nextIdx = 0;\n if (nextIdx >= list.length) nextIdx = list.length - 1;\n\n return { refObjId: list[nextIdx].id };\n };\n\n const {\n ignoreSelectPointerUp,\n cursor,\n yAxisCursor,\n marqueeProps,\n marqueeContent,\n toggleButtonContent,\n isPointInsideMarquee,\n dragMode: mode\n } = useChartMarquee<K, D>({\n rootRef,\n plotAreaSpace,\n xSpace,\n ySpace,\n dragMode,\n chartWidth: width,\n isMultiSelection: selectionMode === 'multiple',\n onViewportChange,\n isZoomScroll: zoomAndScroll === 'live',\n xScale,\n selectedIds,\n getDataById: (id) => idToDataMap.get(id),\n onSelectionChange,\n isRtl,\n xAxisInfo\n });\n\n const { touchResponse, touchResponseStyle } = useVisTouchResponse({\n type: 'auto',\n supportsTouchDragGestures: mode !== 'off',\n rootRef\n });\n\n const {\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n focusedGroupInfo,\n navProps,\n onFocusUpdate\n } = useChartNav({\n rootRef,\n getNextChartItem,\n getNextRefObject,\n getNextNavGroup,\n getDefaultNavGroup,\n touchResponse,\n onItemHover,\n onItemFocus,\n drilling,\n xAxisInfo\n });\n\n const onContextMenuDismissed = (gesture: gestureTypes) => {\n if (gesture === 'keyboard') {\n onFocusUpdate();\n }\n };\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const getTextAndBounds = (target: EventTarget | null) => {\n return getTextAndBoundsUtil(\n target,\n rootRef,\n xAxis?.title,\n yAxis?.title,\n y2Axis?.title,\n xProps.titleProps?.dims,\n yProps.titleProps?.dims,\n y2Props.titleProps?.dims,\n xProps.tickLabels,\n focusedGroupInfo\n );\n };\n\n const dimsAndTextInfo = getTextAndDimsInfo(\n xProps.tickLabels,\n focusedGroupInfo.groupIndex,\n focusedGroupInfo.levelIndex\n );\n const { tooltipContent, tooltipProps } = useTextTruncation({\n getTextAndBounds,\n width,\n isRtl,\n textAndBounds: {\n bounds: dimsAndTextInfo?.dims,\n text: dimsAndTextInfo?.text\n }\n });\n\n const viewportProps = useChartViewport({\n rootRef,\n width,\n height,\n xAxisInfo,\n yAxisInfo,\n y2AxisInfo,\n xScale,\n yScale,\n y2Scale,\n plotAreaSpace,\n isRtl,\n isHoriz,\n zoomAndScroll,\n onViewportChange\n });\n\n const ignoreAsTrigger = (target: EventTarget | null) => {\n if (!target) {\n return false;\n }\n\n const dataset = getElementData(rootRef, target as HTMLElement);\n if (\n (dataset &&\n (dataset['ojPrivateObject'] === 'marquee' ||\n dataset['ojPrivateObject'] === 'dragModeControls' ||\n dataset['ojPrivateObject'] === 'scrollBar')) ||\n ignoreSelectPointerUp\n ) {\n return true;\n }\n\n return false;\n };\n\n const { selectDrillProps, selectionContent } = useSelectDrill<K, D>({\n selectionMode,\n selection: [...selectedIds],\n onChange: onSelectionChange,\n rootRef,\n drilling,\n onItemDrill,\n onGroupDrill,\n focusedGroupInfo,\n focusedItemInfo,\n levelsArray,\n getDataItem,\n getDataById: (id) => idToDataMap.get(id),\n ignoreAsTrigger\n });\n\n const findNearestData = findNearest(\n xScale as any,\n yScale,\n y2Scale,\n xProps.axisStepWidth!,\n xProps.averageGroupZ!,\n gapRatio\n );\n const getDataItemPosition = getDataItemPos(\n xScale as any,\n yScale,\n y2Scale,\n xProps.axisStepWidth!,\n xProps.averageGroupZ!,\n gapRatio\n );\n const [datatipDisabled, setDatatipDisabled] = useState(false);\n\n const getItemAriaLabel = getAriaLabelGenerator(\n series,\n translations,\n valueFormats,\n leafGroupsInfo,\n xAxis,\n !!isDataXAxis,\n getGroupFromPath,\n xProps.defaultLabelFormatter,\n yProps.defaultLabelFormatter,\n y2Props.defaultLabelFormatter\n );\n\n const getRefItem = (id: number | string) => {\n return (\n xAxis?.referenceObjects?.find((item) => item.id === id) ??\n yAxis?.referenceObjects?.find((item) => item.id === id) ??\n y2Axis?.referenceObjects?.find((item) => item.id === id)\n );\n };\n\n const getRefObjectBounds = (id: string): Dimension | undefined => {\n return computeRefObjectBounds(\n id,\n xAxis?.referenceObjects,\n yAxis?.referenceObjects,\n y2Axis?.referenceObjects,\n xScale as any,\n yScale,\n y2Scale,\n orientation as 'horizontal' | 'vertical',\n plotAreaSpace\n );\n };\n\n const getRefAxis = (id: string): 'x' | 'y' | 'y2' | undefined => {\n if (xAxis?.referenceObjects?.some((item) => item.id === id)) return 'x';\n if (yAxis?.referenceObjects?.some((item) => item.id === id)) return 'y';\n if (y2Axis?.referenceObjects?.some((item) => item.id === id)) return 'y2';\n return undefined;\n };\n\n const {\n datatipContent,\n dataCursorContent,\n datatipProps: { 'aria-describedby': datatipAriaDescribedby, ...datatipProps }\n } = useChartDatatipAndCursor<K, D>({\n series,\n leafGroupsInfo,\n width,\n height,\n findNearest: findNearestData,\n plotAreaSpace,\n onDataCursorPositionChange,\n isDataCursorEnabled,\n dataCursorPosition,\n dataCursorStyle,\n hoveredItemInfo,\n focusedItemInfo,\n getDataItem,\n getRefItem,\n getRefObjectBounds,\n getRefAxis,\n getMarkerInfo,\n getDataItemPos: getDataItemPosition,\n datatip,\n valueFormats,\n isHoriz,\n touchResponse,\n isDisabled: datatipDisabled,\n xScale: xScale as any,\n yScale,\n y2Scale,\n timeAxisType,\n defaultXFormatter: xProps.defaultLabelFormatter,\n defaultYFormatter: yProps.defaultLabelFormatter,\n defaultY2Formatter: y2Props.defaultLabelFormatter,\n hasXYValues: isDataXAxis,\n getGroupFromPath,\n translations\n });\n\n const isGroupInteractive = (index: number) => {\n if (isTimeAxis) {\n return false;\n }\n const groupDrill = groups[index]?.drilling;\n if (groupDrill === 'on') {\n return true;\n }\n\n if (groupDrill != 'off' && (drilling === 'on' || drilling === 'groupsOnly')) {\n return true;\n }\n return false;\n };\n\n const plotAreaClipPathId = useId();\n\n // const { yTicks, y2Ticks } = getYY2Ticks(yAxisInfo.ticks, y2AxisInfo.ticks, isHoriz, isSplitDualY);\n const gridLines = (\n <Gridlines\n plotArea={plotArea}\n availSpace={plotAreaSpace}\n xAxisPosition={xAxisPosition}\n isRtl={isRtl}\n yMinorTicks={yAxisInfo.minorTicks}\n xMinorTicks={xAxisInfo.minorTicks}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n isLog={yAxis?.scale === 'log'}\n yAxisPosition={yAxisPosition}\n isDataXAxis={isDataXAxis}\n xAxis={xAxis as DataAxisProps}\n yAxis={yAxis}\n y2Axis={y2Axis}\n hasAxisLine={!isOverview}\n y2MinorTicks={y2AxisInfo?.minorTicks}\n y2Ticks={y2AxisInfo.ticks}\n yTicks={yAxisInfo.ticks}\n xTicks={xAxisInfo.ticks}\n isSplitDualY={isSplitDualY}\n />\n );\n\n const { contextMenuContent, contextMenuProps } = useChartContextMenu<K, D>({\n isRtl,\n width,\n height,\n getDataItemPosition,\n series,\n levelsArray,\n focusedGroupInfo,\n getDataItem,\n focusedItemInfo,\n rootRef,\n xAxisTitle: xAxis?.title,\n yAxisTitle: yAxis?.title,\n contextMenuConfig: hasData(series, groups) ? contextMenuConfig : undefined,\n onContextMenuDismissed\n });\n\n const [dragOver, setDragOver] = useState<{ accepted: boolean | undefined; type: string }>({\n accepted: undefined,\n type: ''\n });\n\n const { draggable, dndProps, dndContent } = useChartDnd<K, D>({\n onDrag: props.onDrag,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n itemsDraggable: props.itemsDraggable,\n groupDraggable: props.groupDraggable,\n rootRef,\n levelsArray,\n series,\n selectedIds,\n getDataItem,\n xSpace,\n ySpace,\n plotAreaSpace,\n setDragOver,\n setDatatipDisabled,\n onSelectionChange\n });\n\n const eventsProps = mergeProps(\n navProps,\n selectDrillProps,\n viewportProps,\n datatipProps,\n marqueeProps,\n tooltipProps,\n contextMenuProps,\n dndProps\n );\n\n const overviewContentRenderer =\n overview != 'off' && (overview === 'on' || !overview.renderer)\n ? defaultOverviewContentRenderer\n : undefined;\n\n const { background, slidingWindow } = overviewRenderer(plotAreaSpace);\n\n const isActiveInfoRef = focusedItemInfo.refObjId != null && focusedItemInfo.isFocusVisible;\n const activeInfo = getActiveInfo(focusedItemInfo, hoveredItemInfo);\n return (\n <>\n {getTextDimensions && resolvedVars['labelFontSize'] != undefined && (\n <div\n tabIndex={isOverview ? undefined : 0}\n draggable={draggable}\n ref={rootRef}\n aria-activedescendant={activeId}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n aria-describedby={merge([props['aria-describedby'], datatipAriaDescribedby])}\n style={{ ...touchResponseStyle }}\n role={isOverview ? undefined : 'application'}\n className={styles.baseChartStyle}\n data-oj-private-selection-mode={isTestEnv ? selectionMode : undefined}\n {...testIdProps}\n {...(isOverview ? {} : eventsProps)}>\n <svg\n width=\"100%\"\n height={\n scrollDims.height != 0 && overview != 'off'\n ? `${Math.ceil((updatedSpace.availSpace.height + OVERVIEW_GAP) * 100) / height}%`\n : '100%'\n }>\n <clipPath id={`${plotAreaClipPathId}`}>\n <rect {...plotAreaSpace}></rect>\n </clipPath>\n {background}\n <PlotArea\n color={plotArea?.color}\n dragOverStyle={\n dragOver.type !== 'plotArea' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n cursor={cursor}\n availSpace={plotAreaSpace}\n />\n {!renderGridLinesInFront && gridLines}\n <Axis\n {...(yProps as any)}\n axisPosition={yAxisPosition}\n isRtl={isRtl}\n cursor={yAxisCursor}\n availSpace={ySpace}\n dragOverStyle={\n dragOver.type !== 'yAxis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n />\n <Axis\n {...(y2Props as any)}\n axisPosition={y2AxisPosition}\n isRtl={isRtl}\n cursor={yAxisCursor}\n availSpace={y2Space}\n dragOverStyle={\n dragOver.type !== 'y2Axis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n />\n <Axis\n {...xProps}\n isRtl={isRtl}\n axisPosition={xAxisPosition}\n isTextInteractive={isGroupInteractive}\n activeId={activeId}\n cursor={cursor}\n focusedGroupIndex={\n focusedGroupInfo.isFocusVisible ? focusedGroupInfo.groupIndex : undefined\n }\n focusedGroupLevelIndex={\n focusedGroupInfo.isFocusVisible ? focusedGroupInfo.levelIndex : undefined\n }\n availSpace={xSpace}\n dragOverStyle={\n dragOver.type !== 'xAxis' ? 'none' : dragOver.accepted ? 'accept' : 'reject'\n }\n separatorColor={(xAxis as GroupAxisProps)?.groupSeparators?.color}\n />\n <g clip-path={`url(#${plotAreaClipPathId})`}>\n <ReferenceObjects\n location=\"back\"\n activeId={isActiveInfoRef ? activeId : undefined}\n activeInfo={activeInfo}\n xAxis={xAxis}\n yAxis={yAxis}\n y2Axis={y2Axis}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n orientation={orientation}\n xAxisInfo={xAxisInfo}\n groups={groups}\n />\n {children({\n xStartIndex: xAxisInfo.startIndex!,\n xEndIndex: xAxisInfo.endIndex!,\n getItemAriaLabel,\n groupsInfo: leafGroupsInfo,\n resolvedColors,\n xScale: xScale as any,\n yScale,\n y2Scale,\n isPointInsideMarquee,\n defaultFontSize: resolvedVars['labelFontSize'],\n gapRatio,\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n getTextDimensions,\n axisStepWidth: xProps.axisStepWidth!,\n averageGroupZ: xProps.averageGroupZ!,\n plotAreaClipPathId\n })}\n {renderGridLinesInFront && gridLines}\n <ReferenceObjects\n location=\"front\"\n xAxis={xAxis}\n yAxis={yAxis}\n y2Axis={y2Axis}\n activeId={activeId}\n activeInfo={activeInfo}\n xScale={xScale}\n yScale={yScale}\n y2Scale={y2Scale}\n orientation={orientation}\n xAxisInfo={xAxisInfo}\n groups={groups}\n />\n {dataCursorContent}\n </g>\n {slidingWindow}\n {zoomAndScroll === 'live' && !isOverview && (\n <ScrollBar\n availSpace={scrollDims}\n isRtl={isRtl}\n viewport={xAxisInfo}\n axisExtent={xAxisInfo}\n isHoriz={xAxisPosition === 'bottom'}\n />\n )}\n {marqueeContent}\n </svg>\n <OverviewContext.Provider\n value={{\n yAxisSize: ySpace.width,\n isOverview: true,\n width,\n height: scrollDims.height,\n overviewRenderer: (overviewChartPlotArea: Dimension) => {\n const { xScale: overviewXScale, ...windowCoords } = getWindowCoords(\n isRtl,\n xAxisInfo,\n xAxisInfo,\n yAxisInfo,\n yAxisInfo,\n overviewChartPlotArea\n );\n return getRenderer(\n xAxisInfo,\n isRtl,\n overviewXScale,\n overviewChartPlotArea,\n windowCoords,\n true,\n onViewportChange\n );\n }\n }}>\n {!isOverview && overview !== 'off' && overviewContentRenderer && (\n <div style={{ width, height: scrollDims.height }}>{overviewContentRenderer()}</div>\n )}\n </OverviewContext.Provider>\n {toggleButtonContent}\n {datatipContent}\n {tooltipContent}\n {contextMenuContent}\n {selectionContent}\n {dndContent}\n </div>\n )}\n {textMeasureContent}\n {cssContent}\n </>\n );\n }\n) as ForwardRefChart;\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ReferenceObjectData, Scale } from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getRefObjectPosition(object: ReferenceObjectData): number | undefined {\n if (object.type === 'line') {\n return object.value;\n }\n if (object.type === 'area') {\n if (object.low != null && object.high != null) {\n return (object.low + object.high) / 2;\n }\n }\n return undefined;\n}\n\nexport function buildNavigableRefObjects(\n xRefs?: ReferenceObjectData[],\n yRefs?: ReferenceObjectData[],\n y2Refs?: ReferenceObjectData[]\n): { id: string; val: number }[] {\n const normalize = (arr?: ReferenceObjectData[]) =>\n (arr ?? [])\n .map((obj) => ({ id: obj.id, val: getRefObjectPosition(obj) }))\n .filter((obj) => obj.id != null && obj.val != null)\n .sort((a, b) => a.val! - b.val!);\n\n const xList = normalize(xRefs);\n const yList = normalize(yRefs);\n const y2List = normalize(y2Refs);\n\n return [...xList, ...yList, ...y2List] as { id: string; val: number }[];\n}\n\n/**\n * Compute an anchor bounds for a reference object by id. Returns a 1x1 box positioned\n * at a reasonable anchor point for the ref so datatips can use element anchoring.\n */\nexport function getRefObjectBounds(\n id: string,\n xRefs: ReferenceObjectData[] | undefined,\n yRefs: ReferenceObjectData[] | undefined,\n y2Refs: ReferenceObjectData[] | undefined,\n xScale: Scale | undefined,\n yScale: Scale | undefined,\n y2Scale: Scale | undefined,\n orientation: 'horizontal' | 'vertical',\n plotAreaSpace: Dimension\n): Dimension | undefined {\n const ref =\n xRefs?.find((item) => item.id === id) ??\n yRefs?.find((item) => item.id === id) ??\n y2Refs?.find((item) => item.id === id);\n if (!ref) return undefined;\n\n const isInX = xRefs?.some((item) => item.id === id);\n const isInY2 = y2Refs?.some((item) => item.id === id);\n\n const isXRef = !!isInX;\n\n const targetScale = isXRef ? xScale : isInY2 ? y2Scale : yScale;\n const spanningScale = isXRef ? yScale : xScale;\n\n const asPoint = (cx: number, cy: number): Dimension => ({ x: cx, y: cy, width: 1, height: 1 });\n\n if (ref.type === 'line' && ref.value != null) {\n const pos = targetScale?.transform(ref.value);\n const range = spanningScale?.range?.();\n const span1 = range?.[0];\n const span2 = range?.[1];\n if (typeof pos !== 'number' || isNaN(pos) || span1 == null || span2 == null) return undefined;\n\n const mid = (span1 + span2) / 2;\n const isHorizontalLine =\n (orientation === 'vertical' && !isXRef) || (orientation === 'horizontal' && isXRef);\n return isHorizontalLine ? asPoint(mid, pos) : asPoint(pos, mid);\n }\n\n // Constant area (low/high)\n if (ref.type === 'area') {\n const domain = targetScale?.domain?.();\n const domMin = domain ? Math.min(domain[0], domain[1]) : -Infinity;\n const domMax = domain ? Math.max(domain[0], domain[1]) : Infinity;\n\n const clampedLow = ref.low != null ? Math.max(ref.low, domMin) : domMin;\n const clampedHigh = ref.high != null ? Math.min(ref.high, domMax) : domMax;\n\n const pos1 = targetScale?.transform(clampedLow);\n const pos2 = targetScale?.transform(clampedHigh);\n const range = spanningScale?.range?.();\n const span1 = range?.[0];\n const span2 = range?.[1];\n\n if (\n typeof pos1 !== 'number' ||\n typeof pos2 !== 'number' ||\n isNaN(pos1) ||\n isNaN(pos2) ||\n span1 == null ||\n span2 == null\n ) {\n return undefined;\n }\n\n const midSpan = (span1 + span2) / 2;\n const midPos = (pos1 + pos2) / 2;\n const isHorizontalArea =\n (orientation === 'vertical' && !isXRef) || (orientation === 'horizontal' && isXRef);\n return isHorizontalArea ? asPoint(midSpan, midPos) : asPoint(midPos, midSpan);\n }\n\n const centerX = plotAreaSpace.x + plotAreaSpace.width / 2;\n const centerY = plotAreaSpace.y + plotAreaSpace.height / 2;\n return asPoint(centerX, centerY);\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport { useTooltip } from '#hooks/UNSAFE_useTooltip';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\ntype Props = {\n getTextAndBounds: (target: EventTarget | null) =>\n | {\n text?: string;\n bounds?: Dimension;\n }\n | undefined;\n isRtl: boolean;\n width: number;\n textAndBounds: {\n text?: string;\n bounds?: Dimension;\n };\n};\n\nexport function useTextTruncation({ getTextAndBounds, width, isRtl, textAndBounds }: Props) {\n const [text, setText] = useState<string>();\n const bounds = useRef<Dimension>();\n\n const hoveredRef = useRef(false);\n\n useEffect(() => {\n if (textAndBounds.text) {\n bounds.current = textAndBounds.bounds;\n setText(textAndBounds.text);\n } else if (!hoveredRef.current) {\n setText(undefined);\n }\n }, [textAndBounds]);\n\n const { tooltipContent, tooltipProps } = useTooltip({\n text,\n position: 'top-start',\n offset: calculateOffset(isRtl, width, bounds.current)\n });\n\n const onPointerMove = (event: Event) => {\n const textAndBounds = getTextAndBounds(event.target);\n\n if (textAndBounds) {\n bounds.current = textAndBounds.bounds;\n setText(textAndBounds.text);\n hoveredRef.current = true;\n } else {\n setText(undefined);\n hoveredRef.current = false;\n }\n };\n\n return {\n tooltipContent,\n tooltipProps: mergeProps({ onPointerMove }, tooltipProps)\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ScaleLinear } from '#utils/PRIVATE_chartUtils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getWindowCoords(\n isRtl: boolean,\n xViewportExtent: { viewportMin: number; viewportMax: number },\n xAxisExtent: { min: number; max: number },\n yViewportExtent: { viewportMin: number; viewportMax: number },\n yAxisExtent: { min: number; max: number },\n plotAreaSpace: Dimension\n) {\n const xDomain = [xAxisExtent.min, xAxisExtent.max] as [number, number];\n const xRange = (\n isRtl\n ? [plotAreaSpace.x + plotAreaSpace.width, plotAreaSpace.x]\n : [plotAreaSpace.x, plotAreaSpace.x + plotAreaSpace.width]\n ) as [number, number];\n const xScale = new ScaleLinear(xDomain, xRange);\n\n const yDomain = [yAxisExtent.min, yAxisExtent.max] as [number, number];\n const yRange = [plotAreaSpace.y + plotAreaSpace.height, plotAreaSpace.y] as [number, number];\n\n const yScale = new ScaleLinear(yDomain, yRange);\n\n const windowX = xScale.transform(xViewportExtent.viewportMin);\n const windowWidth = Math.abs(\n xScale.transform(xViewportExtent.viewportMax) - xScale.transform(xViewportExtent.viewportMin)\n );\n\n return {\n windowX: isRtl ? windowX - windowWidth : windowX,\n windowWidth: windowWidth,\n windowY: yScale.transform(yViewportExtent.viewportMax),\n windowHeight: Math.abs(\n yScale.transform(yViewportExtent.viewportMax) - yScale.transform(yViewportExtent.viewportMin)\n ),\n xScale,\n yScale\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { OverviewSlidingWindow } from '#PRIVATE_VisOverview';\nimport { OverviewBackground } from '#PRIVATE_VisOverview/OverviewBackground';\nimport { updateViewportFromOverview } from '#utils/PRIVATE_chartUtils/overviewUtils';\nimport { Scale } from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\n\nexport function getRenderer(\n xAxisExtent: { min: number; max: number },\n isRtl: boolean,\n overviewXScale: Scale,\n plotAreaSpace: Dimension,\n windowCoords: { windowX: number; windowY: number; windowHeight: number; windowWidth: number },\n hasHandles: boolean,\n onViewportChange?: (detail: {\n xMin?: number;\n xMax?: number;\n yMin?: number;\n yMax?: number;\n }) => void\n) {\n return {\n slidingWindow: (\n <OverviewSlidingWindow\n {...plotAreaSpace}\n {...windowCoords}\n hasHandles={hasHandles}\n onWindowDimsChange={(props: { deltaX: number; deltaWidth: number }) => {\n updateViewportFromOverview(\n xAxisExtent,\n isRtl,\n windowCoords.windowX,\n windowCoords.windowWidth,\n props.deltaX,\n props.deltaWidth,\n overviewXScale,\n onViewportChange\n );\n }}\n />\n ),\n background: <OverviewBackground {...plotAreaSpace} {...windowCoords} />\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { dimensionStyle } from './themes/ChartStyles.css';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\nimport { ChartWithDimensions } from './ChartWithDimensions';\nimport {\n ChartCommonProps,\n ChartSeriesData,\n GetNextChartItemType,\n Info,\n Scale,\n getDataPosType,\n SizeHandle\n} from '#utils/UNSAFE_visTypes/chart';\nimport { Dimension, MarkerShapes, VisTextStyle } from '#utils/UNSAFE_visTypes/common';\nimport { ComponentChildren, Ref, VNode } from 'preact';\nimport { Property } from 'csstype';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\nimport { useOverviewContext } from '#hooks/PRIVATE_useOverviewContext';\nimport { GroupLevelItem } from '#PRIVATE_Axis/groupAxis/hierarchicalUtils';\nimport { forwardRef } from 'preact/compat';\n\nexport type ChartProps<K, D> = {\n selectedIds: Set<K>;\n getGapRatio: (startIndex: number, endIndex: number) => number;\n getNavUtil: (startIndex: number, endIndex: number) => GetNextChartItemType;\n getDataItemPos: (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => getDataPosType;\n findNearest: (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => (\n x: number,\n y?: number,\n y2?: number\n ) =>\n | {\n seriesIndex: number;\n groupIndex: number;\n y: number | undefined;\n y2: number | undefined;\n x: number;\n }\n | undefined;\n children: (context: {\n getItemAriaLabel: (\n data: D,\n seriesIndex: number,\n groupIndex: number,\n isSelectionEnabled: boolean,\n isSelected: boolean,\n isDrillable: boolean\n ) => string;\n xStartIndex: number;\n xEndIndex: number;\n xScale: Scale;\n yScale: Scale;\n y2Scale: Scale;\n gapRatio: number;\n activeId?: string;\n focusedItemInfo: Info;\n hoveredItemInfo?: Info;\n axisStepWidth: number;\n averageGroupZ: number;\n isPointInsideMarquee: ((id: K, point: { x: number; y: number }) => boolean) | undefined;\n getTextDimensions?: (text: string, style: Record<string, any>) => Dimension;\n defaultFontSize: string;\n resolvedColors: string[];\n groupsInfo: GroupLevelItem[];\n plotAreaClipPathId: string;\n }) => ComponentChildren;\n getStartAndEndAxesOffset: (groupCount: number) => { startOffset: number; endOffset: number };\n series: ChartSeriesData<K, D>[];\n isRtl: boolean;\n renderGridLinesInFront: boolean;\n isDataXAxis?: boolean;\n getMarkerInfo: (\n seriesIndex: number,\n groupIndex: number\n ) => { color: Property.Color | undefined; type?: MarkerShapes };\n defaultOverviewContentRenderer: () => ComponentChildren;\n isStacked?: boolean;\n getStackGroup?: (series: ChartSeriesData<K, D>) => string | undefined;\n stackLabelStyle?: VisTextStyle;\n} & Omit<ChartCommonProps<K, D>, 'highlightedIds' | 'hoverBehavior' | 'selectedIds'>;\n\ntype ForwardRefChart = <\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n>(\n props: ChartProps<K, D> & { ref?: Ref<SizeHandle> }\n) => VNode | null;\n\nexport const Chart = forwardRef(\n <K extends string | number, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>>(\n { width, height, ...props }: ChartProps<K, D>,\n ref: Ref<SizeHandle> = null\n ) => {\n // TODO: reevaluate how we handle empty data\n const {\n isOverview,\n overviewRenderer,\n yAxisSize,\n width: overviewWidth,\n height: overviewHeight\n } = useOverviewContext();\n\n let chartWidth = width;\n let chartHeight = height;\n\n if (chartWidth === undefined && isOverview && overviewWidth !== undefined) {\n chartWidth = `${overviewWidth}px`;\n }\n\n if (chartHeight === undefined && isOverview && overviewHeight !== undefined) {\n chartHeight = `${overviewHeight}px`;\n }\n\n return (\n <TrackResizeContainer width={chartWidth} height={chartHeight} class={dimensionStyle}>\n {(width, height) =>\n width || height ? (\n <ChartWithDimensions\n ref={ref}\n width={width}\n height={height}\n {...props}\n yAxisSize={yAxisSize}\n isOverview={isOverview}\n overviewRenderer={overviewRenderer}\n />\n ) : undefined\n }\n </TrackResizeContainer>\n );\n }\n) as ForwardRefChart;\n"],"names":["getParentGroup","levelsArray","levelIndex","groupIndex","isGroupNavigable","path","length","lIndex","Math","max","groupItem","start","end","i","s","e","getChildGroup","min","getNextGroup","info","getPreviousGroup","OverviewBackground","x","width","height","y","windowX","windowHeight","windowWidth","windowY","_jsxs","jsxs","_Fragment","children","_jsx","jsx","class","styles","overviewBackground","ReferenceObjects","location","xAxis","yAxis","y2Axis","xScale","yScale","y2Scale","orientation","xAxisInfo","groups","activeId","activeInfo","filterFunc","item","Fragment","referenceObjects","filter","map","index","_createElement","ReferenceLineArea","key","id","xStartIndex","startIndex","xEndIndex","endIndex","seriesIndex","isXRef","refObjId","undefined","chartVars","getChartVars","ChartWithDimensions","forwardRef","selectedIds","hiddenIds","hideAndShowBehavior","plotArea","dragMode","series","isStacked","stackLabelStyle","getStackGroup","getDataItem","selectionMode","drilling","dataCursorPosition","onSelectionChange","isDataCursorEnabled","dataCursorStyle","onViewportChange","onDataCursorPositionChange","onItemDrill","onGroupDrill","onItemHover","onItemFocus","datatip","zoomAndScroll","getNavUtil","getDataItemPos","getGapRatio","valueFormats","findNearest","getMarkerInfo","isRtl","testId","renderGridLinesInFront","isDataXAxis","contextMenuConfig","overview","getStartAndEndAxesOffset","defaultOverviewContentRenderer","isOverview","yAxisSize","overviewRenderer","initialZooming","props","ref","timeAxisType","isTimeAxis","hasInvalidData","VisInvalidDataError","testIdProps","useTestId","rootRef","useRef","isTestEnv","isHoriz","xAxisPosition","yAxisPosition","y2AxisPosition","getAxesPosition","resolvedVars","cssContent","useCssVars","resolvedColors","Array","from","_","textMeasureContent","getTextDimensions","useTextDimensions","availSpace","getAvailSpace","w","gaps","getOuterGaps","updatedSpace","getScrollBarSpace","scrollDims","locale","useUser","_width","_height","labelFontSize","split","isSplitDualY","splitterPosition","layoutInfo","useMemo","hiddenSet","Set","getLayoutInfo","getGroupFromPath","xProps","yProps","y2Props","yMaxDim","yAxisInfo","plotAreaSpace","xSpace","ySpace","y2Space","idToDataMap","y2AxisInfo","getYPreferredSize","getY2PreferredSize","getXPreferredSize","useImperativeHandle","_getYaxis","getPreferredSize","bounds","_getY2axis","_getXaxis","leafGroupsInfo","updateScrollBarSpace","gapRatio","getNextChartItem","getNextNavGroup","getDefaultNavGroup","isGroupLabelRendered","group","groupName","name","groupsDrilling","arrow","nextGroup","numGroups","getGroupNavUtil","navigableRefObjects","xRefs","yRefs","y2Refs","normalize","arr","obj","val","object","type","value","low","high","sort","a","b","buildNavigableRefObjects","ignoreSelectPointerUp","cursor","yAxisCursor","marqueeProps","marqueeContent","toggleButtonContent","isPointInsideMarquee","mode","useChartMarquee","chartWidth","isMultiSelection","isZoomScroll","getDataById","get","touchResponse","touchResponseStyle","useVisTouchResponse","supportsTouchDragGestures","focusedItemInfo","hoveredItemInfo","focusedGroupInfo","navProps","onFocusUpdate","useChartNav","getNextRefObject","list","dir","nextIdx","findIndex","o","translations","useTranslationBundle","dimsAndTextInfo","getTextAndDimsInfo","tickLabels","tooltipContent","tooltipProps","getTextAndBounds","textAndBounds","text","setText","useState","hoveredRef","useEffect","current","useTooltip","position","offset","calculateOffset","mergeProps","onPointerMove","event","target","useTextTruncation","getTextAndBoundsUtil","title","titleProps","dims","viewportProps","useChartViewport","selectDrillProps","selectionContent","useSelectDrill","selection","onChange","ignoreAsTrigger","dataset","getElementData","findNearestData","axisStepWidth","averageGroupZ","getDataItemPosition","datatipDisabled","setDatatipDisabled","getItemAriaLabel","getAriaLabelGenerator","defaultLabelFormatter","datatipContent","dataCursorContent","datatipProps","datatipAriaDescribedby","useChartDatatipAndCursor","getRefItem","find","isInX","some","isInY2","targetScale","spanningScale","asPoint","cx","cy","pos","transform","range","span1","span2","isNaN","mid","domain","domMin","domMax","Infinity","clampedLow","clampedHigh","pos1","pos2","midSpan","midPos","computeRefObjectBounds","getRefAxis","isDisabled","defaultXFormatter","defaultYFormatter","defaultY2Formatter","hasXYValues","plotAreaClipPathId","useId","gridLines","Gridlines","yMinorTicks","minorTicks","xMinorTicks","isLog","scale","hasAxisLine","y2MinorTicks","y2Ticks","ticks","yTicks","xTicks","contextMenuContent","contextMenuProps","useChartContextMenu","xAxisTitle","yAxisTitle","hasData","onContextMenuDismissed","gesture","dragOver","setDragOver","accepted","draggable","dndProps","dndContent","useChartDnd","onDrag","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","itemsDraggable","groupDraggable","eventsProps","overviewContentRenderer","renderer","background","slidingWindow","isActiveInfoRef","isFocusVisible","getActiveInfo","tabIndex","merge","l","style","role","className","baseChartStyle","ceil","PlotArea","color","dragOverStyle","Axis","axisPosition","isTextInteractive","groupDrill","focusedGroupIndex","focusedGroupLevelIndex","separatorColor","groupSeparators","groupsInfo","defaultFontSize","ScrollBar","viewport","axisExtent","OverviewContext","Provider","overviewChartPlotArea","overviewXScale","windowCoords","xViewportExtent","xAxisExtent","yViewportExtent","yAxisExtent","xDomain","xRange","ScaleLinear","yDomain","yRange","viewportMin","abs","viewportMax","getWindowCoords","hasHandles","OverviewSlidingWindow","onWindowDimsChange","updateViewportFromOverview","deltaX","deltaWidth","getRenderer","Chart","overviewWidth","overviewHeight","useOverviewContext","chartHeight","TrackResizeContainer","dimensionStyle"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './utils-8bf50f08', './ReferenceLineArea-450530dd', './MarkersWithLabel-2960e007', './dataStyleUtils-1a157bd8', './useUser-08901aba', './colorUtils-1c8d0c00', './accUtils-7e057eef', './themeContract.css-b6ec3943', './BarGroup-6f67e7ca', './chartUtils-2415ea65', 'preact/compat', './Chart-
|
|
2
|
-
//# sourceMappingURL=ComboChart-
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', './utils-8bf50f08', './ReferenceLineArea-450530dd', './MarkersWithLabel-2960e007', './dataStyleUtils-1a157bd8', './useUser-08901aba', './colorUtils-1c8d0c00', './accUtils-7e057eef', './themeContract.css-b6ec3943', './BarGroup-6f67e7ca', './chartUtils-2415ea65', 'preact/compat', './Chart-d9eafc7a'], (function(e,t,i,a,r,s,n,o,l,d,c,g,p,h){"use strict";const I=p.forwardRef((({width:e,height:l,selectedIds:p=[],hiddenIds:I=[],highlightedIds:x,hideAndShowBehavior:f="none",orientation:m="vertical",yAxis:S,series:y,groups:A,getDataItem:b,selectionMode:v="none",drilling:C="off",dataItemGaps:L=.5,dataLabelEffect:T="outline",stacking:k="off",...D},R)=>{const{direction:j,forcedColors:M}=n.useUser(),G="active"===M,U=y.filter((e=>"bar"===e.type)),W="rtl"===j,B="log"===S?.scale,P=D.xAxis?.timeAxisType,w=new Set(I),E=new Set(p),z=new Set(x),F="horizontal"===m,H=o.getColorRamp();let N=i.getSeriesData(y.length,A.length,b,w,B);const O="off"!=k,q="string"==typeof k?void 0:k.stackLabelStyle,V=("on"===k?e=>e.id:"off"!=k?k.getStackGroup:void 0)||(()=>"default"),Y="object"==typeof k&&k.getStackLabel?k.getStackLabel:void 0,Z=(e,t)=>O?{...b(e,t),value:N[e][t]}:b(e,t),J="number"==typeof D.y2Axis?.split,K=i.getMarkers(),Q=[],{hasBar:X,hasCenteredSeries:$,hasUncenteredSeries:_,hasArea:ee}=y.reduce(((e,t)=>({hasArea:e.hasArea||"area"===t.type||"lineWithArea"===t.type,hasBar:e.hasBar||"bar"===t.type,hasCenteredSeries:e.hasCenteredSeries||"centeredSegmented"===t.lineType||"centeredStepped"===t.lineType,hasUncenteredSeries:e.hasUncenteredSeries||"segmented"===t.lineType||"stepped"===t.lineType})),{hasBar:!1,hasCenteredSeries:!1,hasUncenteredSeries:!1,hasArea:!1});return t.jsx(h.Chart,{ref:R,width:e,height:l,selectedIds:E,hiddenIds:I,hideAndShowBehavior:f,orientation:m,yAxis:S,series:y,defaultOverviewContentRenderer:()=>t.jsx(u,{groups:A,series:y,getDataItem:b}),groups:A,selectionMode:v,drilling:C,isStacked:O,getDataItem:b,findNearest:(e,t,a)=>i.findNearestDataPoint(y,A,e,t,Z,O,(()=>({offset:0,dataWidth:0})),((e,t)=>t.transform(e)),B,0,w,P,a),getDataItemPos:(e,t,i,a,r,s)=>{const n=X?c.getBarPosition(U,A,b,e,t,i,w,L,a,r,s,"log"===S?.scale,O,W,F,J,V,P):void 0;return(i,a)=>"bar"===y[i].type?n?n(i,a):void 0:g.getLineAreaChartItemPosition(i,a,N,b,A,F,e,t,P)},getMarkerInfo:(e,t)=>({color:s.getItemColor(e,t,y,b),markerType:s.getMarkerType(e,t,b)}),renderGridLinesInFront:ee,getNavUtil:(e,t)=>s.getLineAreaChartNavUtil(b,y.length,e,t,O,W,F),getGapRatio:()=>1,getStartAndEndAxesOffset:e=>i.getStartAndEndAxesOffset($,_,F,e,X),isRtl:W,stackLabelStyle:q,getStackGroup:V,...D,children:({xStartIndex:e,xEndIndex:s,xScale:n,groupsInfo:o,yScale:l,y2Scale:g,activeId:p,focusedItemInfo:h,hoveredItemInfo:I,isPointInsideMarquee:u,getTextDimensions:f,defaultFontSize:A,resolvedColors:k,axisStepWidth:R,averageGroupZ:j,getItemAriaLabel:M,plotAreaClipPathId:q})=>{let V=-1;const X=o.map((({item:e})=>e));return N=i.getSeriesData(y.length,X.length,b,w,B),t.jsx(t.Fragment,{children:N.map(((o,$)=>{const _=y[$],ee="y2"===_.associatedYAxis,te="lineWithArea"===_.type?.2:1,ie="area"===_.type||"lineWithArea"===_.type,ae="area"===_.type;if(0===o.length)return;const re=i.getLineAreaSegments(ee?g:l,n,o,e,s,B,X,$,Z,P);Q[$]=re[0];const se="bar"!==_.type?"curved"===_.lineType&&O&&N.length>1&&$>0:O&&N.length>1&&$>0,ne=void 0===x||0===z.size||z.has(_.id),oe=O&&0!=$?Q.reduce(((e,t,i)=>i>=$?e:t.length>0?i:e),0):void 0;return"bar"===_.type&&(V+=1),t.jsxs(t.Fragment,{children:["bar"===_.type&&X.slice(e,s+1).map(((a,r)=>t.jsx(c.BarGroup,{plotAreaClipPathId:q,yScale:l,y2Scale:g,xScale:n,splitDualY:J,groupIndex:r+e,selectedIds:E,hiddenIds:w,highlightedIds:x?z:x,isDrillEnabled:"on"===C,series:U,barGapRatio:i.getBarGapRatio(O,e,s),dataItemGaps:L,isPointInsideMarquee:u,isStacked:O,axisStepWidth:R,averageGroupZ:j,group:X[r],timeAxisType:D.xAxis?.timeAxisType,colors:k,activeId:p,isLog:"log"===S?.scale,orientation:m,getDataItem:b,isSelectionEnabled:"none"!=v,isRtl:W,focusedItemInfo:h,hoveredItemInfo:I,getTextDimensions:f,defaultFontSize:A,seriesIndex:V,getItemAriaLabel:M,getStackLabel:Y}))),ie&&t.jsx(a.AreaSeries,{yScale:ee?g:l,plotAreaClipPathId:q,lineType:_.lineType,color:_.areaColor||H[$%H.length],isHorizontal:F,areaColorOpacity:te,isBottomSegmentCurved:se,bottomCoords:void 0!==oe&&Q[oe].some((e=>null!=e))?Q[oe]:void 0,lineSegments:re,isLog:B,isHighlighted:ne,seriesIndex:$,groupWidth:R,isRtl:W,timeAxisType:P}),"line"===_.type&&t.jsx(a.LineSeries,{plotAreaClipPathId:q,lineType:_.lineType,lineColor:ae?d.colorSchemeVars.dvt.contrastLine:_.lineColor,lineWidth:ae?1.25:_.lineWidth,lineStyle:_.lineStyle||"solid",color:_.lineColor||H[$%H.length],lineSegmentCoords:re,isHorizontal:F,isHighlighted:ne,seriesIndex:$,groupWidth:R,isRtl:W,timeAxisType:P}),!O&&("line"===_.type||ie)&&t.jsx(r.MarkersWithLabel,{yScale:ee?g:l,xScale:n,groups:X,series:_,timeAxisType:P,color:H[$%H.length],seriesIndex:$,startIndex:e,endIndex:s,markerType:K[$%K.length],orientation:m,isLog:B,activeId:p,getDataItem:b,isPointInsideMarquee:u,selectedIds:E,focusedItemIndex:h.seriesIndex!==$||!h.isFocusVisible||D.isDataCursorEnabled&&D.dataCursorStyle?.isMarkerDisplayed?void 0:h.groupIndex,hoveredItemIndex:I?.isCurrent&&I.seriesIndex===$?I.groupIndex:void 0,isSelectionEnabled:"single"===v||"multiple"===v,isDrillEnabled:"on"===C,defaultFontSize:A,dataLabelEffect:T,isHighContrast:G,getItemAriaLabel:M,isRtl:W})]})}))})}})}));function u(e){return t.jsx(I,{datatip:()=>({content:""}),zoomAndScroll:"off",plotArea:{yMajorTick:{isRendered:!1},xMajorTick:{}},xAxis:{tickLabel:{autoRotate:!1,isRendered:!!e.xAxis?.timeAxisType}},series:e.series,groups:e.groups,getDataItem:e.getDataItem,yAxis:{tickLabel:{isRendered:!1}},overview:"off"})}e.ComboChart=I}));
|
|
2
|
+
//# sourceMappingURL=ComboChart-5a6f6c8a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboChart-c42ed049.js","sources":["../../src/UNSAFE_ComboChart/ComboChart.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComboChartProps, LineAreaItem } from './ComboChart.types';\nimport {\n findNearestDataPoint,\n getStartAndEndAxesOffset\n} from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport { AreaSeries } from '#PRIVATE_LineAreaComponents/AreaSeries';\nimport { getMarkers, getSeriesData } from '#utils/PRIVATE_chartUtils/utils';\nimport { MarkersWithLabel } from '#PRIVATE_Chart/MarkersWithLabel';\nimport { getLineAreaChartNavUtil } from '#utils/PRIVATE_chartUtils/navUtils';\nimport { Chart } from '#PRIVATE_Chart';\nimport { ChartSeriesData, Scale, SizeHandle, TimeAxisProps } from '#utils/UNSAFE_visTypes/chart';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { getColorRamp } from '#utils/UNSAFE_visUtils';\nimport { LineSeries } from '#PRIVATE_LineAreaComponents/LineSeries';\nimport { Point } from '#utils/PRIVATE_visSVGUtils';\nimport { getLineAreaSegments } from '#utils/PRIVATE_chartUtils/utils';\nimport { colorSchemeVars } from '@oracle/oraclejet-internal-theme-contract/themeContract.css';\nimport { getItemColor, getMarkerType } from '#utils/PRIVATE_chartUtils/dataStyleUtils';\nimport { BarGroup } from '#UNSAFE_BarChart/BarGroup';\nimport { getBarPosition } from '#UNSAFE_BarChart/utils/barLayoutUtils';\nimport { getLineAreaChartItemPosition } from '#PRIVATE_LineAreaComponents/utils/chartUtils';\nimport { getBarGapRatio } from '#UNSAFE_BarChart/utils/barSeriesUtils';\nimport { Ref, VNode } from 'preact';\nimport { forwardRef } from 'preact/compat';\n\nconst LINE_WITH_AREA_OPACITY = 0.2;\n\nexport type ForwardRefComboChart = <K extends string | number, D extends LineAreaItem<K>>(\n props: ComboChartProps<K, D> & {\n ref?: Ref<SizeHandle>;\n }\n) => VNode | null;\n\n/**\n * The ComboChart displays information graphically using bars, lines and filled areas, making relationships among the data easier to understand.\n */\nexport const ComboChart = forwardRef(\n <K extends string | number, D extends LineAreaItem<K>>(\n { width,\n height,\n selectedIds = [],\n hiddenIds = [],\n highlightedIds,\n hideAndShowBehavior = 'none',\n orientation = 'vertical',\n yAxis,\n series,\n groups,\n getDataItem,\n selectionMode = 'none',\n drilling = 'off',\n dataItemGaps = 0.5,\n dataLabelEffect = 'outline',\n stacking = 'off',\n ...props\n }: ComboChartProps<K, D>,\n ref: Ref<SizeHandle>\n ) => {\n const { direction, forcedColors } = useUser();\n const isHighContrast = forcedColors === 'active';\n const filteredBarSeries = series.filter((currentSeries) => currentSeries.type === 'bar');\n const isRtl = direction === 'rtl';\n const isLog = yAxis?.scale === 'log';\n const timeAxisType = (props.xAxis as TimeAxisProps)?.timeAxisType;\n const hiddenSet = new Set(hiddenIds);\n const selectedSet = new Set(selectedIds);\n const highlightedSet = new Set(highlightedIds);\n const isHoriz = orientation === 'horizontal';\n const colors = getColorRamp();\n // TODO: JET-71332 ; should only be (number | undefined)[][]\n // remove the type inference from scatter chart item.\n let renderedSeries = getSeriesData<K, D>(\n series.length,\n groups.length,\n getDataItem,\n hiddenSet,\n isLog\n );\n\n const isStacked = stacking != 'off';\n const stackLabelStyle = typeof stacking === 'string' ? undefined : stacking.stackLabelStyle;\n const getStackGroup =\n (stacking === 'on'\n ? (s: ChartSeriesData<K, D>) => s.id as string\n : stacking != 'off'\n ? stacking.getStackGroup\n : undefined) || (() => 'default');\n const getStackLabel =\n typeof stacking === 'object' && stacking.getStackLabel ? stacking.getStackLabel : undefined;\n\n const renderedGetDataItem = (seriesIndex: number, groupIndex: number): D | undefined => {\n if (!isStacked) return getDataItem(seriesIndex, groupIndex);\n return {\n ...getDataItem(seriesIndex, groupIndex),\n value: renderedSeries[seriesIndex][groupIndex]\n } as D;\n };\n\n const getGapRatio = () => {\n return 1;\n };\n\n const getNextChartItemFunc = (startIndex: number, endIndex: number) => {\n // TODO: JET-71332\n //@ts-ignore\n return getLineAreaChartNavUtil<D>(\n getDataItem,\n series.length,\n startIndex,\n endIndex,\n isStacked,\n isRtl,\n isHoriz\n );\n };\n const isSplitDualY = typeof props.y2Axis?.split === 'number';\n const getDataItemPos = (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => {\n const _getBarPosition = hasBar\n ? getBarPosition(\n filteredBarSeries,\n groups,\n getDataItem,\n xScale,\n yScale,\n y2Scale,\n hiddenSet,\n dataItemGaps,\n axisStepWidth,\n averageGroupZ,\n gapRatio,\n yAxis?.scale === 'log',\n isStacked,\n isRtl,\n isHoriz,\n isSplitDualY,\n getStackGroup,\n timeAxisType\n )\n : undefined;\n\n return (seriesIndex: number, groupIndex: number) => {\n const seriesItem = series[seriesIndex];\n if (seriesItem.type === 'bar') {\n return _getBarPosition ? _getBarPosition(seriesIndex, groupIndex) : undefined;\n } else {\n return getLineAreaChartItemPosition(\n seriesIndex,\n groupIndex,\n renderedSeries,\n getDataItem,\n groups,\n isHoriz,\n xScale,\n yScale,\n timeAxisType\n );\n }\n };\n };\n\n const getMarkerColorAndType = (seriesIndex: number, groupIndex: number) => {\n const color = getItemColor(seriesIndex, groupIndex, series, getDataItem);\n const markerType = getMarkerType(seriesIndex, groupIndex, getDataItem);\n return { color, markerType };\n };\n\n const findNearest = (xScale: Scale, yScale: Scale, y2Scale: Scale) => {\n const getSeriesDataInfo = () => {\n return {\n offset: 0,\n dataWidth: 0\n };\n };\n\n const getYCoord = (value: number, yScale: Scale) => {\n return yScale.transform(value);\n };\n\n return findNearestDataPoint<K, D>(\n series,\n groups,\n xScale,\n yScale,\n renderedGetDataItem,\n isStacked,\n getSeriesDataInfo,\n getYCoord,\n isLog,\n 0,\n hiddenSet,\n timeAxisType,\n y2Scale\n );\n };\n const markers = getMarkers();\n\n const allLineSegmentCoords: Point[][] = [];\n\n const { hasBar, hasCenteredSeries, hasUncenteredSeries, hasArea } = (\n series as { lineType: string; type: string }[]\n ).reduce(\n (acc, s) => {\n return {\n hasArea: acc.hasArea || s.type === 'area' || s.type === 'lineWithArea',\n hasBar: acc.hasBar || s.type === 'bar',\n hasCenteredSeries:\n acc.hasCenteredSeries ||\n s.lineType === 'centeredSegmented' ||\n s.lineType === 'centeredStepped',\n hasUncenteredSeries:\n acc.hasUncenteredSeries || s.lineType === 'segmented' || s.lineType === 'stepped'\n };\n },\n { hasBar: false, hasCenteredSeries: false, hasUncenteredSeries: false, hasArea: false }\n );\n\n const getOffset = (groupCount: number) => {\n return getStartAndEndAxesOffset(\n hasCenteredSeries,\n hasUncenteredSeries,\n isHoriz,\n groupCount,\n hasBar\n );\n };\n\n return (\n <Chart\n ref={ref}\n width={width}\n height={height}\n selectedIds={selectedSet}\n hiddenIds={hiddenIds}\n hideAndShowBehavior={hideAndShowBehavior}\n orientation={orientation}\n yAxis={yAxis}\n series={series}\n defaultOverviewContentRenderer={() => {\n return <OverviewComboChart groups={groups} series={series} getDataItem={getDataItem} />;\n }}\n groups={groups}\n selectionMode={selectionMode}\n drilling={drilling}\n isStacked={isStacked}\n getDataItem={getDataItem}\n findNearest={findNearest}\n getDataItemPos={getDataItemPos}\n getMarkerInfo={getMarkerColorAndType}\n renderGridLinesInFront={hasArea}\n getNavUtil={getNextChartItemFunc}\n getGapRatio={getGapRatio}\n getStartAndEndAxesOffset={getOffset}\n isRtl={isRtl}\n stackLabelStyle={stackLabelStyle}\n getStackGroup={getStackGroup}\n {...props}>\n {({\n xStartIndex,\n xEndIndex,\n xScale,\n groupsInfo,\n yScale,\n y2Scale,\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n isPointInsideMarquee,\n getTextDimensions,\n defaultFontSize,\n resolvedColors,\n axisStepWidth,\n averageGroupZ,\n getItemAriaLabel,\n plotAreaClipPathId\n }) => {\n let barSeriesIndex = -1;\n const leafGroups = groupsInfo.map(({ item }) => item);\n renderedSeries = getSeriesData<K, D>(\n series.length,\n leafGroups.length,\n getDataItem,\n hiddenSet,\n isLog\n );\n\n return (\n <>\n {renderedSeries.map((valueSeries, index) => {\n const currentSeries = series[index];\n const isAssociatedToY2 = currentSeries.associatedYAxis === 'y2';\n const areaOpacity =\n currentSeries.type === 'lineWithArea' ? LINE_WITH_AREA_OPACITY : 1;\n const isAreaRendered =\n currentSeries.type === 'area' || currentSeries.type === 'lineWithArea';\n const isContrastLineNeeded = currentSeries.type === 'area';\n\n if (valueSeries.length === 0) {\n return;\n }\n\n const lineSegmentCoords: Point[][] = getLineAreaSegments<K, D>(\n isAssociatedToY2 ? y2Scale : yScale,\n xScale,\n valueSeries,\n xStartIndex,\n xEndIndex,\n isLog,\n leafGroups,\n index,\n renderedGetDataItem,\n timeAxisType\n );\n allLineSegmentCoords[index] = lineSegmentCoords[0];\n const isBottomSegmentCurved =\n currentSeries.type !== 'bar'\n ? currentSeries.lineType === 'curved' &&\n isStacked &&\n renderedSeries.length > 1 &&\n index > 0\n : isStacked && renderedSeries.length > 1 && index > 0;\n\n const isHighlighted =\n highlightedIds === undefined ||\n highlightedSet.size === 0 ||\n highlightedSet.has(currentSeries.id);\n\n const prevCoords =\n isStacked && index != 0\n ? allLineSegmentCoords.reduce((prevValue, newValue, j) => {\n // find the index i such that i < index, and series i has at least\n // one or more data item unhidden. Only such series will can be\n // used as bottomCoord for current series. Otherwise we have to use\n // baseline coord\n if (j >= index) {\n return prevValue;\n }\n if (newValue.length > 0) {\n return j;\n }\n return prevValue;\n }, 0)\n : undefined;\n if (currentSeries.type === 'bar') barSeriesIndex = barSeriesIndex + 1;\n return (\n <>\n {currentSeries.type === 'bar' &&\n leafGroups.slice(xStartIndex, xEndIndex + 1).map((_, index) => {\n const barGroup = (\n <BarGroup\n plotAreaClipPathId={plotAreaClipPathId}\n yScale={yScale}\n y2Scale={y2Scale}\n xScale={xScale}\n splitDualY={isSplitDualY}\n groupIndex={index + xStartIndex}\n selectedIds={selectedSet}\n hiddenIds={hiddenSet}\n highlightedIds={highlightedIds ? highlightedSet : highlightedIds}\n isDrillEnabled={drilling === 'on'}\n series={filteredBarSeries}\n barGapRatio={getBarGapRatio(isStacked, xStartIndex, xEndIndex)}\n dataItemGaps={dataItemGaps}\n isPointInsideMarquee={isPointInsideMarquee}\n isStacked={isStacked}\n axisStepWidth={axisStepWidth}\n averageGroupZ={averageGroupZ!}\n group={leafGroups[index]}\n timeAxisType={(props.xAxis as TimeAxisProps)?.timeAxisType}\n colors={resolvedColors}\n activeId={activeId}\n isLog={yAxis?.scale === 'log'}\n orientation={orientation}\n getDataItem={getDataItem}\n isSelectionEnabled={selectionMode != 'none'}\n isRtl={isRtl}\n focusedItemInfo={focusedItemInfo}\n hoveredItemInfo={hoveredItemInfo}\n getTextDimensions={getTextDimensions}\n defaultFontSize={defaultFontSize}\n seriesIndex={barSeriesIndex}\n getItemAriaLabel={getItemAriaLabel}\n getStackLabel={getStackLabel}\n />\n );\n\n return barGroup;\n })}\n {isAreaRendered && (\n <AreaSeries\n yScale={isAssociatedToY2 ? y2Scale : yScale}\n plotAreaClipPathId={plotAreaClipPathId}\n lineType={currentSeries.lineType}\n color={currentSeries.areaColor || colors[index % colors.length]}\n isHorizontal={isHoriz}\n areaColorOpacity={areaOpacity}\n isBottomSegmentCurved={isBottomSegmentCurved}\n bottomCoords={\n prevCoords !== undefined &&\n allLineSegmentCoords[prevCoords].some((value) => value != null)\n ? allLineSegmentCoords[prevCoords]\n : undefined\n }\n lineSegments={lineSegmentCoords}\n isLog={isLog}\n isHighlighted={isHighlighted}\n seriesIndex={index}\n groupWidth={axisStepWidth}\n isRtl={isRtl}\n timeAxisType={timeAxisType}\n />\n )}\n {currentSeries.type === 'line' && (\n <LineSeries\n plotAreaClipPathId={plotAreaClipPathId}\n lineType={currentSeries.lineType}\n lineColor={\n isContrastLineNeeded\n ? colorSchemeVars.dvt.contrastLine\n : currentSeries.lineColor\n }\n lineWidth={isContrastLineNeeded ? 1.25 : currentSeries.lineWidth}\n lineStyle={currentSeries.lineStyle || 'solid'}\n color={currentSeries.lineColor || colors[index % colors.length]}\n lineSegmentCoords={lineSegmentCoords}\n isHorizontal={isHoriz}\n isHighlighted={isHighlighted}\n seriesIndex={index}\n groupWidth={axisStepWidth}\n isRtl={isRtl}\n timeAxisType={timeAxisType}\n />\n )}\n {\n /*for non stacked charts, markers should render in the order of series.\n some markers might get hidden behind area but this preserves the legacy behavior. */\n !isStacked && (currentSeries.type === 'line' || isAreaRendered) && (\n <MarkersWithLabel\n yScale={isAssociatedToY2 ? y2Scale : yScale}\n xScale={xScale}\n groups={leafGroups}\n series={currentSeries}\n timeAxisType={timeAxisType}\n color={\n colors[\n index % colors.length\n ] /* TODO : make this use getItemColor function from dataStyleUtils. */\n }\n seriesIndex={index}\n startIndex={xStartIndex}\n endIndex={xEndIndex}\n markerType={markers[index % markers.length]}\n orientation={orientation}\n isLog={isLog}\n activeId={activeId}\n getDataItem={getDataItem}\n isPointInsideMarquee={isPointInsideMarquee}\n selectedIds={selectedSet}\n focusedItemIndex={\n focusedItemInfo.seriesIndex === index &&\n focusedItemInfo.isFocusVisible &&\n !(props.isDataCursorEnabled && props.dataCursorStyle?.isMarkerDisplayed)\n ? focusedItemInfo.groupIndex\n : undefined\n }\n hoveredItemIndex={\n hoveredItemInfo?.isCurrent && hoveredItemInfo.seriesIndex === index\n ? hoveredItemInfo.groupIndex\n : undefined\n }\n isSelectionEnabled={\n selectionMode === 'single' || selectionMode === 'multiple'\n }\n isDrillEnabled={drilling === 'on'}\n defaultFontSize={defaultFontSize}\n dataLabelEffect={dataLabelEffect}\n isHighContrast={isHighContrast}\n getItemAriaLabel={getItemAriaLabel}\n isRtl={isRtl}\n />\n )\n }\n </>\n );\n })}\n </>\n //TODO - handle isStack part\n );\n }}\n </Chart>\n );\n }) as ForwardRefComboChart\n\nfunction OverviewComboChart<K extends string | number, D extends LineAreaItem<K>>(\n props: ComboChartProps<K, D>\n) {\n return (\n <ComboChart\n datatip={() => ({ content: '' })}\n zoomAndScroll=\"off\"\n plotArea={{\n yMajorTick: {\n isRendered: false\n },\n xMajorTick: {}\n }}\n xAxis={{\n tickLabel: {\n autoRotate: false,\n // @ts-ignore\n isRendered: props.xAxis?.timeAxisType ? true : false\n }\n }}\n series={props.series}\n groups={props.groups}\n getDataItem={props.getDataItem}\n yAxis={{\n tickLabel: {\n isRendered: false\n }\n }}\n overview=\"off\"\n />\n );\n}\n"],"names":["ComboChart","forwardRef","width","height","selectedIds","hiddenIds","highlightedIds","hideAndShowBehavior","orientation","yAxis","series","groups","getDataItem","selectionMode","drilling","dataItemGaps","dataLabelEffect","stacking","props","ref","direction","forcedColors","useUser","isHighContrast","filteredBarSeries","filter","currentSeries","type","isRtl","isLog","scale","timeAxisType","xAxis","hiddenSet","Set","selectedSet","highlightedSet","isHoriz","colors","getColorRamp","renderedSeries","getSeriesData","length","isStacked","stackLabelStyle","undefined","getStackGroup","s","id","getStackLabel","renderedGetDataItem","seriesIndex","groupIndex","value","isSplitDualY","y2Axis","split","markers","getMarkers","allLineSegmentCoords","hasBar","hasCenteredSeries","hasUncenteredSeries","hasArea","reduce","acc","lineType","_jsx","Chart","defaultOverviewContentRenderer","jsx","OverviewComboChart","findNearest","xScale","yScale","y2Scale","findNearestDataPoint","offset","dataWidth","transform","getDataItemPos","axisStepWidth","averageGroupZ","gapRatio","_getBarPosition","getBarPosition","getLineAreaChartItemPosition","getMarkerInfo","color","getItemColor","markerType","getMarkerType","renderGridLinesInFront","getNavUtil","startIndex","endIndex","getLineAreaChartNavUtil","getGapRatio","getStartAndEndAxesOffset","groupCount","children","xStartIndex","xEndIndex","groupsInfo","activeId","focusedItemInfo","hoveredItemInfo","isPointInsideMarquee","getTextDimensions","defaultFontSize","resolvedColors","getItemAriaLabel","plotAreaClipPathId","barSeriesIndex","leafGroups","map","item","_Fragment","Fragment","valueSeries","index","isAssociatedToY2","associatedYAxis","areaOpacity","isAreaRendered","isContrastLineNeeded","lineSegmentCoords","getLineAreaSegments","isBottomSegmentCurved","isHighlighted","size","has","prevCoords","prevValue","newValue","j","_jsxs","slice","_","BarGroup","splitDualY","isDrillEnabled","barGapRatio","getBarGapRatio","group","isSelectionEnabled","AreaSeries","areaColor","isHorizontal","areaColorOpacity","bottomCoords","some","lineSegments","groupWidth","LineSeries","lineColor","colorSchemeVars","dvt","contrastLine","lineWidth","lineStyle","MarkersWithLabel","focusedItemIndex","isFocusVisible","isDataCursorEnabled","dataCursorStyle","isMarkerDisplayed","hoveredItemIndex","isCurrent","datatip","content","zoomAndScroll","plotArea","yMajorTick","isRendered","xMajorTick","tickLabel","autoRotate","overview"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboChart-5a6f6c8a.js","sources":["../../src/UNSAFE_ComboChart/ComboChart.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComboChartProps, LineAreaItem } from './ComboChart.types';\nimport {\n findNearestDataPoint,\n getStartAndEndAxesOffset\n} from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport { AreaSeries } from '#PRIVATE_LineAreaComponents/AreaSeries';\nimport { getMarkers, getSeriesData } from '#utils/PRIVATE_chartUtils/utils';\nimport { MarkersWithLabel } from '#PRIVATE_Chart/MarkersWithLabel';\nimport { getLineAreaChartNavUtil } from '#utils/PRIVATE_chartUtils/navUtils';\nimport { Chart } from '#PRIVATE_Chart';\nimport { ChartSeriesData, Scale, SizeHandle, TimeAxisProps } from '#utils/UNSAFE_visTypes/chart';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { getColorRamp } from '#utils/UNSAFE_visUtils';\nimport { LineSeries } from '#PRIVATE_LineAreaComponents/LineSeries';\nimport { Point } from '#utils/PRIVATE_visSVGUtils';\nimport { getLineAreaSegments } from '#utils/PRIVATE_chartUtils/utils';\nimport { colorSchemeVars } from '@oracle/oraclejet-internal-theme-contract/themeContract.css';\nimport { getItemColor, getMarkerType } from '#utils/PRIVATE_chartUtils/dataStyleUtils';\nimport { BarGroup } from '#UNSAFE_BarChart/BarGroup';\nimport { getBarPosition } from '#UNSAFE_BarChart/utils/barLayoutUtils';\nimport { getLineAreaChartItemPosition } from '#PRIVATE_LineAreaComponents/utils/chartUtils';\nimport { getBarGapRatio } from '#UNSAFE_BarChart/utils/barSeriesUtils';\nimport { Ref, VNode } from 'preact';\nimport { forwardRef } from 'preact/compat';\n\nconst LINE_WITH_AREA_OPACITY = 0.2;\n\nexport type ForwardRefComboChart = <K extends string | number, D extends LineAreaItem<K>>(\n props: ComboChartProps<K, D> & {\n ref?: Ref<SizeHandle>;\n }\n) => VNode | null;\n\n/**\n * The ComboChart displays information graphically using bars, lines and filled areas, making relationships among the data easier to understand.\n */\nexport const ComboChart = forwardRef(\n <K extends string | number, D extends LineAreaItem<K>>(\n { width,\n height,\n selectedIds = [],\n hiddenIds = [],\n highlightedIds,\n hideAndShowBehavior = 'none',\n orientation = 'vertical',\n yAxis,\n series,\n groups,\n getDataItem,\n selectionMode = 'none',\n drilling = 'off',\n dataItemGaps = 0.5,\n dataLabelEffect = 'outline',\n stacking = 'off',\n ...props\n }: ComboChartProps<K, D>,\n ref: Ref<SizeHandle>\n ) => {\n const { direction, forcedColors } = useUser();\n const isHighContrast = forcedColors === 'active';\n const filteredBarSeries = series.filter((currentSeries) => currentSeries.type === 'bar');\n const isRtl = direction === 'rtl';\n const isLog = yAxis?.scale === 'log';\n const timeAxisType = (props.xAxis as TimeAxisProps)?.timeAxisType;\n const hiddenSet = new Set(hiddenIds);\n const selectedSet = new Set(selectedIds);\n const highlightedSet = new Set(highlightedIds);\n const isHoriz = orientation === 'horizontal';\n const colors = getColorRamp();\n // TODO: JET-71332 ; should only be (number | undefined)[][]\n // remove the type inference from scatter chart item.\n let renderedSeries = getSeriesData<K, D>(\n series.length,\n groups.length,\n getDataItem,\n hiddenSet,\n isLog\n );\n\n const isStacked = stacking != 'off';\n const stackLabelStyle = typeof stacking === 'string' ? undefined : stacking.stackLabelStyle;\n const getStackGroup =\n (stacking === 'on'\n ? (s: ChartSeriesData<K, D>) => s.id as string\n : stacking != 'off'\n ? stacking.getStackGroup\n : undefined) || (() => 'default');\n const getStackLabel =\n typeof stacking === 'object' && stacking.getStackLabel ? stacking.getStackLabel : undefined;\n\n const renderedGetDataItem = (seriesIndex: number, groupIndex: number): D | undefined => {\n if (!isStacked) return getDataItem(seriesIndex, groupIndex);\n return {\n ...getDataItem(seriesIndex, groupIndex),\n value: renderedSeries[seriesIndex][groupIndex]\n } as D;\n };\n\n const getGapRatio = () => {\n return 1;\n };\n\n const getNextChartItemFunc = (startIndex: number, endIndex: number) => {\n // TODO: JET-71332\n //@ts-ignore\n return getLineAreaChartNavUtil<D>(\n getDataItem,\n series.length,\n startIndex,\n endIndex,\n isStacked,\n isRtl,\n isHoriz\n );\n };\n const isSplitDualY = typeof props.y2Axis?.split === 'number';\n const getDataItemPos = (\n xScale: Scale,\n yScale: Scale,\n y2Scale: Scale,\n axisStepWidth: number,\n averageGroupZ: number,\n gapRatio: number\n ) => {\n const _getBarPosition = hasBar\n ? getBarPosition(\n filteredBarSeries,\n groups,\n getDataItem,\n xScale,\n yScale,\n y2Scale,\n hiddenSet,\n dataItemGaps,\n axisStepWidth,\n averageGroupZ,\n gapRatio,\n yAxis?.scale === 'log',\n isStacked,\n isRtl,\n isHoriz,\n isSplitDualY,\n getStackGroup,\n timeAxisType\n )\n : undefined;\n\n return (seriesIndex: number, groupIndex: number) => {\n const seriesItem = series[seriesIndex];\n if (seriesItem.type === 'bar') {\n return _getBarPosition ? _getBarPosition(seriesIndex, groupIndex) : undefined;\n } else {\n return getLineAreaChartItemPosition(\n seriesIndex,\n groupIndex,\n renderedSeries,\n getDataItem,\n groups,\n isHoriz,\n xScale,\n yScale,\n timeAxisType\n );\n }\n };\n };\n\n const getMarkerColorAndType = (seriesIndex: number, groupIndex: number) => {\n const color = getItemColor(seriesIndex, groupIndex, series, getDataItem);\n const markerType = getMarkerType(seriesIndex, groupIndex, getDataItem);\n return { color, markerType };\n };\n\n const findNearest = (xScale: Scale, yScale: Scale, y2Scale: Scale) => {\n const getSeriesDataInfo = () => {\n return {\n offset: 0,\n dataWidth: 0\n };\n };\n\n const getYCoord = (value: number, yScale: Scale) => {\n return yScale.transform(value);\n };\n\n return findNearestDataPoint<K, D>(\n series,\n groups,\n xScale,\n yScale,\n renderedGetDataItem,\n isStacked,\n getSeriesDataInfo,\n getYCoord,\n isLog,\n 0,\n hiddenSet,\n timeAxisType,\n y2Scale\n );\n };\n const markers = getMarkers();\n\n const allLineSegmentCoords: Point[][] = [];\n\n const { hasBar, hasCenteredSeries, hasUncenteredSeries, hasArea } = (\n series as { lineType: string; type: string }[]\n ).reduce(\n (acc, s) => {\n return {\n hasArea: acc.hasArea || s.type === 'area' || s.type === 'lineWithArea',\n hasBar: acc.hasBar || s.type === 'bar',\n hasCenteredSeries:\n acc.hasCenteredSeries ||\n s.lineType === 'centeredSegmented' ||\n s.lineType === 'centeredStepped',\n hasUncenteredSeries:\n acc.hasUncenteredSeries || s.lineType === 'segmented' || s.lineType === 'stepped'\n };\n },\n { hasBar: false, hasCenteredSeries: false, hasUncenteredSeries: false, hasArea: false }\n );\n\n const getOffset = (groupCount: number) => {\n return getStartAndEndAxesOffset(\n hasCenteredSeries,\n hasUncenteredSeries,\n isHoriz,\n groupCount,\n hasBar\n );\n };\n\n return (\n <Chart\n ref={ref}\n width={width}\n height={height}\n selectedIds={selectedSet}\n hiddenIds={hiddenIds}\n hideAndShowBehavior={hideAndShowBehavior}\n orientation={orientation}\n yAxis={yAxis}\n series={series}\n defaultOverviewContentRenderer={() => {\n return <OverviewComboChart groups={groups} series={series} getDataItem={getDataItem} />;\n }}\n groups={groups}\n selectionMode={selectionMode}\n drilling={drilling}\n isStacked={isStacked}\n getDataItem={getDataItem}\n findNearest={findNearest}\n getDataItemPos={getDataItemPos}\n getMarkerInfo={getMarkerColorAndType}\n renderGridLinesInFront={hasArea}\n getNavUtil={getNextChartItemFunc}\n getGapRatio={getGapRatio}\n getStartAndEndAxesOffset={getOffset}\n isRtl={isRtl}\n stackLabelStyle={stackLabelStyle}\n getStackGroup={getStackGroup}\n {...props}>\n {({\n xStartIndex,\n xEndIndex,\n xScale,\n groupsInfo,\n yScale,\n y2Scale,\n activeId,\n focusedItemInfo,\n hoveredItemInfo,\n isPointInsideMarquee,\n getTextDimensions,\n defaultFontSize,\n resolvedColors,\n axisStepWidth,\n averageGroupZ,\n getItemAriaLabel,\n plotAreaClipPathId\n }) => {\n let barSeriesIndex = -1;\n const leafGroups = groupsInfo.map(({ item }) => item);\n renderedSeries = getSeriesData<K, D>(\n series.length,\n leafGroups.length,\n getDataItem,\n hiddenSet,\n isLog\n );\n\n return (\n <>\n {renderedSeries.map((valueSeries, index) => {\n const currentSeries = series[index];\n const isAssociatedToY2 = currentSeries.associatedYAxis === 'y2';\n const areaOpacity =\n currentSeries.type === 'lineWithArea' ? LINE_WITH_AREA_OPACITY : 1;\n const isAreaRendered =\n currentSeries.type === 'area' || currentSeries.type === 'lineWithArea';\n const isContrastLineNeeded = currentSeries.type === 'area';\n\n if (valueSeries.length === 0) {\n return;\n }\n\n const lineSegmentCoords: Point[][] = getLineAreaSegments<K, D>(\n isAssociatedToY2 ? y2Scale : yScale,\n xScale,\n valueSeries,\n xStartIndex,\n xEndIndex,\n isLog,\n leafGroups,\n index,\n renderedGetDataItem,\n timeAxisType\n );\n allLineSegmentCoords[index] = lineSegmentCoords[0];\n const isBottomSegmentCurved =\n currentSeries.type !== 'bar'\n ? currentSeries.lineType === 'curved' &&\n isStacked &&\n renderedSeries.length > 1 &&\n index > 0\n : isStacked && renderedSeries.length > 1 && index > 0;\n\n const isHighlighted =\n highlightedIds === undefined ||\n highlightedSet.size === 0 ||\n highlightedSet.has(currentSeries.id);\n\n const prevCoords =\n isStacked && index != 0\n ? allLineSegmentCoords.reduce((prevValue, newValue, j) => {\n // find the index i such that i < index, and series i has at least\n // one or more data item unhidden. Only such series will can be\n // used as bottomCoord for current series. Otherwise we have to use\n // baseline coord\n if (j >= index) {\n return prevValue;\n }\n if (newValue.length > 0) {\n return j;\n }\n return prevValue;\n }, 0)\n : undefined;\n if (currentSeries.type === 'bar') barSeriesIndex = barSeriesIndex + 1;\n return (\n <>\n {currentSeries.type === 'bar' &&\n leafGroups.slice(xStartIndex, xEndIndex + 1).map((_, index) => {\n const barGroup = (\n <BarGroup\n plotAreaClipPathId={plotAreaClipPathId}\n yScale={yScale}\n y2Scale={y2Scale}\n xScale={xScale}\n splitDualY={isSplitDualY}\n groupIndex={index + xStartIndex}\n selectedIds={selectedSet}\n hiddenIds={hiddenSet}\n highlightedIds={highlightedIds ? highlightedSet : highlightedIds}\n isDrillEnabled={drilling === 'on'}\n series={filteredBarSeries}\n barGapRatio={getBarGapRatio(isStacked, xStartIndex, xEndIndex)}\n dataItemGaps={dataItemGaps}\n isPointInsideMarquee={isPointInsideMarquee}\n isStacked={isStacked}\n axisStepWidth={axisStepWidth}\n averageGroupZ={averageGroupZ!}\n group={leafGroups[index]}\n timeAxisType={(props.xAxis as TimeAxisProps)?.timeAxisType}\n colors={resolvedColors}\n activeId={activeId}\n isLog={yAxis?.scale === 'log'}\n orientation={orientation}\n getDataItem={getDataItem}\n isSelectionEnabled={selectionMode != 'none'}\n isRtl={isRtl}\n focusedItemInfo={focusedItemInfo}\n hoveredItemInfo={hoveredItemInfo}\n getTextDimensions={getTextDimensions}\n defaultFontSize={defaultFontSize}\n seriesIndex={barSeriesIndex}\n getItemAriaLabel={getItemAriaLabel}\n getStackLabel={getStackLabel}\n />\n );\n\n return barGroup;\n })}\n {isAreaRendered && (\n <AreaSeries\n yScale={isAssociatedToY2 ? y2Scale : yScale}\n plotAreaClipPathId={plotAreaClipPathId}\n lineType={currentSeries.lineType}\n color={currentSeries.areaColor || colors[index % colors.length]}\n isHorizontal={isHoriz}\n areaColorOpacity={areaOpacity}\n isBottomSegmentCurved={isBottomSegmentCurved}\n bottomCoords={\n prevCoords !== undefined &&\n allLineSegmentCoords[prevCoords].some((value) => value != null)\n ? allLineSegmentCoords[prevCoords]\n : undefined\n }\n lineSegments={lineSegmentCoords}\n isLog={isLog}\n isHighlighted={isHighlighted}\n seriesIndex={index}\n groupWidth={axisStepWidth}\n isRtl={isRtl}\n timeAxisType={timeAxisType}\n />\n )}\n {currentSeries.type === 'line' && (\n <LineSeries\n plotAreaClipPathId={plotAreaClipPathId}\n lineType={currentSeries.lineType}\n lineColor={\n isContrastLineNeeded\n ? colorSchemeVars.dvt.contrastLine\n : currentSeries.lineColor\n }\n lineWidth={isContrastLineNeeded ? 1.25 : currentSeries.lineWidth}\n lineStyle={currentSeries.lineStyle || 'solid'}\n color={currentSeries.lineColor || colors[index % colors.length]}\n lineSegmentCoords={lineSegmentCoords}\n isHorizontal={isHoriz}\n isHighlighted={isHighlighted}\n seriesIndex={index}\n groupWidth={axisStepWidth}\n isRtl={isRtl}\n timeAxisType={timeAxisType}\n />\n )}\n {\n /*for non stacked charts, markers should render in the order of series.\n some markers might get hidden behind area but this preserves the legacy behavior. */\n !isStacked && (currentSeries.type === 'line' || isAreaRendered) && (\n <MarkersWithLabel\n yScale={isAssociatedToY2 ? y2Scale : yScale}\n xScale={xScale}\n groups={leafGroups}\n series={currentSeries}\n timeAxisType={timeAxisType}\n color={\n colors[\n index % colors.length\n ] /* TODO : make this use getItemColor function from dataStyleUtils. */\n }\n seriesIndex={index}\n startIndex={xStartIndex}\n endIndex={xEndIndex}\n markerType={markers[index % markers.length]}\n orientation={orientation}\n isLog={isLog}\n activeId={activeId}\n getDataItem={getDataItem}\n isPointInsideMarquee={isPointInsideMarquee}\n selectedIds={selectedSet}\n focusedItemIndex={\n focusedItemInfo.seriesIndex === index &&\n focusedItemInfo.isFocusVisible &&\n !(props.isDataCursorEnabled && props.dataCursorStyle?.isMarkerDisplayed)\n ? focusedItemInfo.groupIndex\n : undefined\n }\n hoveredItemIndex={\n hoveredItemInfo?.isCurrent && hoveredItemInfo.seriesIndex === index\n ? hoveredItemInfo.groupIndex\n : undefined\n }\n isSelectionEnabled={\n selectionMode === 'single' || selectionMode === 'multiple'\n }\n isDrillEnabled={drilling === 'on'}\n defaultFontSize={defaultFontSize}\n dataLabelEffect={dataLabelEffect}\n isHighContrast={isHighContrast}\n getItemAriaLabel={getItemAriaLabel}\n isRtl={isRtl}\n />\n )\n }\n </>\n );\n })}\n </>\n //TODO - handle isStack part\n );\n }}\n </Chart>\n );\n }) as ForwardRefComboChart\n\nfunction OverviewComboChart<K extends string | number, D extends LineAreaItem<K>>(\n props: ComboChartProps<K, D>\n) {\n return (\n <ComboChart\n datatip={() => ({ content: '' })}\n zoomAndScroll=\"off\"\n plotArea={{\n yMajorTick: {\n isRendered: false\n },\n xMajorTick: {}\n }}\n xAxis={{\n tickLabel: {\n autoRotate: false,\n // @ts-ignore\n isRendered: props.xAxis?.timeAxisType ? true : false\n }\n }}\n series={props.series}\n groups={props.groups}\n getDataItem={props.getDataItem}\n yAxis={{\n tickLabel: {\n isRendered: false\n }\n }}\n overview=\"off\"\n />\n );\n}\n"],"names":["ComboChart","forwardRef","width","height","selectedIds","hiddenIds","highlightedIds","hideAndShowBehavior","orientation","yAxis","series","groups","getDataItem","selectionMode","drilling","dataItemGaps","dataLabelEffect","stacking","props","ref","direction","forcedColors","useUser","isHighContrast","filteredBarSeries","filter","currentSeries","type","isRtl","isLog","scale","timeAxisType","xAxis","hiddenSet","Set","selectedSet","highlightedSet","isHoriz","colors","getColorRamp","renderedSeries","getSeriesData","length","isStacked","stackLabelStyle","undefined","getStackGroup","s","id","getStackLabel","renderedGetDataItem","seriesIndex","groupIndex","value","isSplitDualY","y2Axis","split","markers","getMarkers","allLineSegmentCoords","hasBar","hasCenteredSeries","hasUncenteredSeries","hasArea","reduce","acc","lineType","_jsx","Chart","defaultOverviewContentRenderer","jsx","OverviewComboChart","findNearest","xScale","yScale","y2Scale","findNearestDataPoint","offset","dataWidth","transform","getDataItemPos","axisStepWidth","averageGroupZ","gapRatio","_getBarPosition","getBarPosition","getLineAreaChartItemPosition","getMarkerInfo","color","getItemColor","markerType","getMarkerType","renderGridLinesInFront","getNavUtil","startIndex","endIndex","getLineAreaChartNavUtil","getGapRatio","getStartAndEndAxesOffset","groupCount","children","xStartIndex","xEndIndex","groupsInfo","activeId","focusedItemInfo","hoveredItemInfo","isPointInsideMarquee","getTextDimensions","defaultFontSize","resolvedColors","getItemAriaLabel","plotAreaClipPathId","barSeriesIndex","leafGroups","map","item","_Fragment","Fragment","valueSeries","index","isAssociatedToY2","associatedYAxis","areaOpacity","isAreaRendered","isContrastLineNeeded","lineSegmentCoords","getLineAreaSegments","isBottomSegmentCurved","isHighlighted","size","has","prevCoords","prevValue","newValue","j","_jsxs","slice","_","BarGroup","splitDualY","isDrillEnabled","barGapRatio","getBarGapRatio","group","isSelectionEnabled","AreaSeries","areaColor","isHorizontal","areaColorOpacity","bottomCoords","some","lineSegments","groupWidth","LineSeries","lineColor","colorSchemeVars","dvt","contrastLine","lineWidth","lineStyle","MarkersWithLabel","focusedItemIndex","isFocusVisible","isDataCursorEnabled","dataCursorStyle","isMarkerDisplayed","hoveredItemIndex","isCurrent","datatip","content","zoomAndScroll","plotArea","yMajorTick","isRendered","xMajorTick","tickLabel","autoRotate","overview"],"mappings":"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"}
|