@razorpay/blade 12.110.0 → 12.119.1
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/assets/spark/colorama-center-gradient-map-dark.jpg +0 -0
- package/assets/spark/colorama-gradient-map-dark.png +0 -0
- package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js +5 -5
- package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js.map +1 -1
- package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js +6 -0
- package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -0
- package/build/lib/native/components/BaseMotion/BaseMotion.native.js +22 -0
- package/build/lib/native/components/BaseMotion/BaseMotion.native.js.map +1 -0
- package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js +11 -0
- package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js.map +1 -0
- package/build/lib/native/components/BaseMotion/baseMotionUtils.js +4 -0
- package/build/lib/native/components/BaseMotion/baseMotionUtils.js.map +1 -0
- package/build/lib/native/components/BaseMotion/index.js +3 -0
- package/build/lib/native/components/BaseMotion/index.js.map +1 -0
- package/build/lib/native/components/BaseMotion/types.js +2 -0
- package/build/lib/native/components/BaseMotion/types.js.map +1 -0
- package/build/lib/native/components/Button/BaseButton/BaseButton.js +3 -3
- package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js +2 -1
- package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js.map +1 -1
- package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js +2 -2
- package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js.map +1 -1
- package/build/lib/native/components/Charts/CommonChartComponents/index.js +1 -1
- package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +2 -2
- package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -1
- package/build/lib/native/components/Charts/LineChart/LineChart.native.js +4 -2
- package/build/lib/native/components/Charts/LineChart/LineChart.native.js.map +1 -1
- package/build/lib/native/components/Charts/utils/nullBridgeUtils.js +4 -0
- package/build/lib/native/components/Charts/utils/nullBridgeUtils.js.map +1 -0
- package/build/lib/native/components/Charts/utils/referenceBandUtils.js +6 -0
- package/build/lib/native/components/Charts/utils/referenceBandUtils.js.map +1 -0
- package/build/lib/native/components/CounterInput/CounterInput.native.js +3 -2
- package/build/lib/native/components/CounterInput/CounterInput.native.js.map +1 -1
- package/build/lib/native/components/CounterInput/token.js +2 -2
- package/build/lib/native/components/CounterInput/token.js.map +1 -1
- package/build/lib/native/components/DatePicker/Calendar.native.js +2 -2
- package/build/lib/native/components/DatePicker/Calendar.native.js.map +1 -1
- package/build/lib/native/components/DatePicker/utils.js +2 -2
- package/build/lib/native/components/DatePicker/utils.js.map +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js +2 -1
- package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js.map +1 -1
- package/build/lib/native/components/Dropdown/dropdownUtils.js +1 -1
- package/build/lib/native/components/Dropdown/dropdownUtils.js.map +1 -1
- package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js +4 -0
- package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
- package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/native/components/Fade/Fade.native.js +7 -5
- package/build/lib/native/components/Fade/Fade.native.js.map +1 -1
- package/build/lib/native/components/FilterChip/BaseFilterChip.native.js +2 -2
- package/build/lib/native/components/FilterChip/BaseFilterChip.native.js.map +1 -1
- package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +14 -0
- package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js +20 -0
- package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js.map +1 -0
- package/build/lib/native/components/FloatingActionButton/index.js +2 -0
- package/build/lib/native/components/FloatingActionButton/index.js.map +1 -0
- package/build/lib/native/components/GenUI/GenUIContext.native.js +2 -2
- package/build/lib/native/components/GenUI/GenUIContext.native.js.map +1 -1
- package/build/lib/native/components/GenUI/index.js +1 -1
- package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +14 -0
- package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
- package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js +2 -0
- package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
- package/build/lib/native/components/Icons/index.js +1 -0
- package/build/lib/native/components/Icons/index.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js +1 -1
- package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
- package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
- package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/native/components/Morph/Morph.native.js +9 -5
- package/build/lib/native/components/Morph/Morph.native.js.map +1 -1
- package/build/lib/native/components/Move/Move.native.js +8 -5
- package/build/lib/native/components/Move/Move.native.js.map +1 -1
- package/build/lib/native/components/Scale/Scale.native.js +7 -5
- package/build/lib/native/components/Scale/Scale.native.js.map +1 -1
- package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js +27 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js +8 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js +18 -0
- package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/index.js +3 -0
- package/build/lib/native/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js +4 -0
- package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/native/components/Slide/Slide.native.js +7 -5
- package/build/lib/native/components/Slide/Slide.native.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/utils.native.js +1 -1
- package/build/lib/native/components/Spark/RzpGlass/utils.native.js.map +1 -1
- package/build/lib/native/components/Stagger/Stagger.native.js +10 -5
- package/build/lib/native/components/Stagger/Stagger.native.js.map +1 -1
- package/build/lib/native/components/Stagger/StaggerProvider.js +6 -0
- package/build/lib/native/components/Stagger/StaggerProvider.js.map +1 -0
- package/build/lib/native/components/TreeView/TreeView.native.js +4 -0
- package/build/lib/native/components/TreeView/TreeView.native.js.map +1 -0
- package/build/lib/native/components/TreeView/index.native.js +2 -0
- package/build/lib/native/components/TreeView/index.native.js.map +1 -0
- package/build/lib/native/components/index.js +10 -2
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/tokens/global/colors.js +1 -1
- package/build/lib/native/tokens/global/colors.js.map +1 -1
- package/build/lib/native/tokens/index.js +1 -0
- package/build/lib/native/tokens/index.js.map +1 -1
- package/build/lib/native/tokens/theme/bladeNeutralTheme.js +15 -0
- package/build/lib/native/tokens/theme/bladeNeutralTheme.js.map +1 -0
- package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
- package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/native/tokens/theme/index.js +1 -0
- package/build/lib/native/tokens/theme/index.js.map +1 -1
- package/build/lib/native/tokens/theme/theme.js.map +1 -1
- package/build/lib/native/utils/componentZIndices.js +1 -1
- package/build/lib/native/utils/componentZIndices.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/native/utils/msToSeconds.js +4 -0
- package/build/lib/native/utils/msToSeconds.js.map +1 -0
- package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +1 -1
- package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- package/build/lib/web/development/_virtual/flatten.js +1 -1
- package/build/lib/web/development/_virtual/flatten3.js +1 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
- package/build/lib/web/development/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +124 -73
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +68 -2
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +206 -18
- package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +15 -2
- package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
- package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +272 -15
- package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js +195 -0
- package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js +175 -0
- package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js +66 -0
- package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js.map +1 -0
- package/build/lib/web/development/components/CounterInput/CounterInput.web.js +29 -5
- package/build/lib/web/development/components/CounterInput/CounterInput.web.js.map +1 -1
- package/build/lib/web/development/components/CounterInput/StyledCounterInput.js +20 -4
- package/build/lib/web/development/components/CounterInput/StyledCounterInput.js.map +1 -1
- package/build/lib/web/development/components/CounterInput/token.js +6 -1
- package/build/lib/web/development/components/CounterInput/token.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +28 -1
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/Calendar.web.js +9 -2
- package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
- package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/utils.js +21 -1
- package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +40 -5
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +30 -32
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/dropdownUtils.js +28 -2
- package/build/lib/web/development/components/Dropdown/dropdownUtils.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js +60 -0
- package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/web/development/components/Dropdown/useDropdown.js +91 -5
- package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +35 -11
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +126 -0
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
- package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
- package/build/lib/web/development/components/FloatingActionButton/index.js +2 -0
- package/build/lib/web/development/components/FloatingActionButton/index.js.map +1 -0
- package/build/lib/web/development/components/GenUI/GenUIComponents.web.js.map +1 -1
- package/build/lib/web/development/components/GenUI/GenUIContext.web.js +9 -1
- package/build/lib/web/development/components/GenUI/GenUIContext.web.js.map +1 -1
- package/build/lib/web/development/components/GenUI/GenUIProvider.web.js +17 -0
- package/build/lib/web/development/components/GenUI/GenUIProvider.web.js.map +1 -1
- package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js +31 -6
- package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
- package/build/lib/web/development/components/GenUI/index.js +1 -1
- package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
- package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
- package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js +2 -0
- package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
- package/build/lib/web/development/components/Icons/index.js +1 -0
- package/build/lib/web/development/components/Icons/index.js.map +1 -1
- package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +3 -0
- package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js +7 -1
- package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js.map +1 -1
- package/build/lib/web/development/components/RollingText/RollingText.web.js +27 -20
- package/build/lib/web/development/components/RollingText/RollingText.web.js.map +1 -1
- package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js +196 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js +18 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
- package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/index.js +3 -0
- package/build/lib/web/development/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js +53 -0
- package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +16 -7
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js +30 -1
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +26 -10
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js +31 -18
- package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js +14 -3
- package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
- package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/utils.js +58 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/utils.js.map +1 -1
- package/build/lib/web/development/components/Stagger/StaggerProvider.js.map +1 -1
- package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js +41 -0
- package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/TreeView.web.js +696 -0
- package/build/lib/web/development/components/TreeView/TreeView.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js +184 -0
- package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js +73 -0
- package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/TreeViewItem.web.js +295 -0
- package/build/lib/web/development/components/TreeView/TreeViewItem.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js +173 -0
- package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/componentIds.js +8 -0
- package/build/lib/web/development/components/TreeView/componentIds.js.map +1 -0
- package/build/lib/web/development/components/TreeView/index.web.js +4 -0
- package/build/lib/web/development/components/TreeView/index.web.js.map +1 -0
- package/build/lib/web/development/components/TreeView/treeViewUtils.js +475 -0
- package/build/lib/web/development/components/TreeView/treeViewUtils.js.map +1 -0
- package/build/lib/web/development/components/TreeView/useTreeView.js +24 -0
- package/build/lib/web/development/components/TreeView/useTreeView.js.map +1 -0
- package/build/lib/web/development/components/index.js +12 -2
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/lib/web/development/tokens/global/colors.js +2 -2
- package/build/lib/web/development/tokens/global/colors.js.map +1 -1
- package/build/lib/web/development/tokens/index.js +1 -0
- package/build/lib/web/development/tokens/index.js.map +1 -1
- package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js +1439 -0
- package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js.map +1 -0
- package/build/lib/web/development/tokens/theme/bladeTheme.js +48 -12
- package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/web/development/tokens/theme/index.js +1 -0
- package/build/lib/web/development/tokens/theme/index.js.map +1 -1
- package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
- package/build/lib/web/development/utils/componentZIndices.js +2 -0
- package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +7 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
- package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
- package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
- package/build/lib/web/production/_virtual/flatten.js +1 -1
- package/build/lib/web/production/_virtual/flatten3.js +1 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
- package/build/lib/web/production/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +124 -73
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +68 -2
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +206 -18
- package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +15 -2
- package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
- package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +272 -15
- package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js +195 -0
- package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js +175 -0
- package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js +66 -0
- package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js.map +1 -0
- package/build/lib/web/production/components/CounterInput/CounterInput.web.js +29 -5
- package/build/lib/web/production/components/CounterInput/CounterInput.web.js.map +1 -1
- package/build/lib/web/production/components/CounterInput/StyledCounterInput.js +20 -4
- package/build/lib/web/production/components/CounterInput/StyledCounterInput.js.map +1 -1
- package/build/lib/web/production/components/CounterInput/token.js +6 -1
- package/build/lib/web/production/components/CounterInput/token.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +28 -1
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/Calendar.web.js +9 -2
- package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
- package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/utils.js +21 -1
- package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +40 -5
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +30 -32
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/dropdownUtils.js +28 -2
- package/build/lib/web/production/components/Dropdown/dropdownUtils.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js +60 -0
- package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
- package/build/lib/web/production/components/Dropdown/useDropdown.js +91 -5
- package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +35 -11
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +126 -0
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
- package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
- package/build/lib/web/production/components/FloatingActionButton/index.js +2 -0
- package/build/lib/web/production/components/FloatingActionButton/index.js.map +1 -0
- package/build/lib/web/production/components/GenUI/GenUIComponents.web.js.map +1 -1
- package/build/lib/web/production/components/GenUI/GenUIContext.web.js +9 -1
- package/build/lib/web/production/components/GenUI/GenUIContext.web.js.map +1 -1
- package/build/lib/web/production/components/GenUI/GenUIProvider.web.js +17 -0
- package/build/lib/web/production/components/GenUI/GenUIProvider.web.js.map +1 -1
- package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js +31 -6
- package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
- package/build/lib/web/production/components/GenUI/index.js +1 -1
- package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
- package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
- package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js +2 -0
- package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
- package/build/lib/web/production/components/Icons/index.js +1 -0
- package/build/lib/web/production/components/Icons/index.js.map +1 -1
- package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +3 -0
- package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js +7 -1
- package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js.map +1 -1
- package/build/lib/web/production/components/RollingText/RollingText.web.js +27 -20
- package/build/lib/web/production/components/RollingText/RollingText.web.js.map +1 -1
- package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js +196 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js +18 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
- package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/index.js +3 -0
- package/build/lib/web/production/components/SegmentedControl/index.js.map +1 -0
- package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js +53 -0
- package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +16 -7
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js +30 -1
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +26 -10
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js +31 -18
- package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js +14 -3
- package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
- package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/utils.js +58 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/utils.js.map +1 -1
- package/build/lib/web/production/components/Stagger/StaggerProvider.js.map +1 -1
- package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js +41 -0
- package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/TreeView.web.js +696 -0
- package/build/lib/web/production/components/TreeView/TreeView.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js +184 -0
- package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js +73 -0
- package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/TreeViewItem.web.js +295 -0
- package/build/lib/web/production/components/TreeView/TreeViewItem.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js +173 -0
- package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/componentIds.js +8 -0
- package/build/lib/web/production/components/TreeView/componentIds.js.map +1 -0
- package/build/lib/web/production/components/TreeView/index.web.js +4 -0
- package/build/lib/web/production/components/TreeView/index.web.js.map +1 -0
- package/build/lib/web/production/components/TreeView/treeViewUtils.js +475 -0
- package/build/lib/web/production/components/TreeView/treeViewUtils.js.map +1 -0
- package/build/lib/web/production/components/TreeView/useTreeView.js +24 -0
- package/build/lib/web/production/components/TreeView/useTreeView.js.map +1 -0
- package/build/lib/web/production/components/index.js +12 -2
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/lib/web/production/tokens/global/colors.js +2 -2
- package/build/lib/web/production/tokens/global/colors.js.map +1 -1
- package/build/lib/web/production/tokens/index.js +1 -0
- package/build/lib/web/production/tokens/index.js.map +1 -1
- package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js +1439 -0
- package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js.map +1 -0
- package/build/lib/web/production/tokens/theme/bladeTheme.js +48 -12
- package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/web/production/tokens/theme/index.js +1 -0
- package/build/lib/web/production/tokens/theme/index.js.map +1 -1
- package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
- package/build/lib/web/production/utils/componentZIndices.js +2 -0
- package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +7 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
- package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
- package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
- package/build/types/components/index.d.ts +794 -25
- package/build/types/components/index.native.d.ts +872 -29
- package/build/types/tokens/index.d.ts +11 -4
- package/build/types/tokens/index.native.d.ts +11 -4
- package/build/types/utils/index.d.ts +8 -3
- package/build/types/utils/index.native.d.ts +8 -3
- package/package.json +2 -2
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js.map +0 -1
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js.map +0 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
3
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
-
import React__default, { useState, useEffect, useCallback, useMemo, isValidElement, cloneElement } from 'react';
|
|
4
|
+
import React__default, { useState, useEffect, useCallback, useMemo, isValidElement, cloneElement, useRef, useLayoutEffect } from 'react';
|
|
5
5
|
import '../../../node_modules/recharts/es6/index.js';
|
|
6
6
|
import { animate } from 'framer-motion';
|
|
7
7
|
import '../utils/index.js';
|
|
8
8
|
import '../CommonChartComponents/index.js';
|
|
9
9
|
import { componentId } from '../CommonChartComponents/tokens.js';
|
|
10
10
|
import { componentIds } from './componentIds.js';
|
|
11
|
+
import { parsePathAnchors, getDefinedNumericPoints, getInteriorGaps, buildBridgePathData } from '../utils/nullBridgeUtils.js';
|
|
12
|
+
import { perLineBandClass } from '../utils/referenceBandUtils.js';
|
|
11
13
|
import { useLineChartContext, LineChartContext } from './LineChartContext.js';
|
|
14
|
+
import { useReferenceBand } from './useReferenceBand.js';
|
|
12
15
|
import getIn from '../../../utils/lodashButBetter/get.js';
|
|
13
16
|
import '../../../utils/makeAnalyticsAttribute/index.js';
|
|
14
17
|
import '../../../utils/metaAttribute/index.js';
|
|
@@ -29,14 +32,21 @@ import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js
|
|
|
29
32
|
import { makeAnalyticsAttribute } from '../../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
30
33
|
import { ResponsiveContainer } from '../../../node_modules/recharts/es6/component/ResponsiveContainer.js';
|
|
31
34
|
import { LineChart } from '../../../node_modules/recharts/es6/chart/LineChart.js';
|
|
35
|
+
import { Customized } from '../../../node_modules/recharts/es6/component/Customized.js';
|
|
32
36
|
|
|
33
|
-
var _excluded = ["color", "strokeStyle", "type", "dot", "activeDot", "showLegend", "_index", "_colorTheme", "_totalLines", "hide", "dataKey"],
|
|
37
|
+
var _excluded = ["color", "strokeStyle", "type", "dot", "activeDot", "showLegend", "connectNulls", "connectNullsStyle", "_index", "_colorTheme", "_totalLines", "hide", "dataKey", "rangeLowerDataKey", "rangeUpperDataKey", "rangeName", "rangeColor", "showRangeLegend"],
|
|
34
38
|
_excluded2 = ["children", "colorTheme", "testID", "data"];
|
|
35
39
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
36
40
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
37
41
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
38
42
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
39
43
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
44
|
+
var getStrokeDasharray = function getStrokeDasharray(style) {
|
|
45
|
+
return style === 'dashed' ? '5 5' : style === 'dotted' ? '2 2' : undefined;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// Dash pattern used for the bridge drawn across null points when `connectNulls` is enabled.
|
|
49
|
+
var NULL_BRIDGE_DASHARRAY = '5 5';
|
|
40
50
|
var Line = function Line(_ref) {
|
|
41
51
|
var color = _ref.color,
|
|
42
52
|
_ref$strokeStyle = _ref.strokeStyle,
|
|
@@ -49,11 +59,20 @@ var Line = function Line(_ref) {
|
|
|
49
59
|
activeDot = _ref$activeDot === void 0 ? true : _ref$activeDot,
|
|
50
60
|
_ref$showLegend = _ref.showLegend,
|
|
51
61
|
showLegend = _ref$showLegend === void 0 ? true : _ref$showLegend,
|
|
62
|
+
_ref$connectNulls = _ref.connectNulls,
|
|
63
|
+
connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls,
|
|
64
|
+
_ref$connectNullsStyl = _ref.connectNullsStyle,
|
|
65
|
+
connectNullsStyle = _ref$connectNullsStyl === void 0 ? 'solid' : _ref$connectNullsStyl,
|
|
52
66
|
_index = _ref._index,
|
|
53
67
|
_colorTheme = _ref._colorTheme,
|
|
54
68
|
_totalLines = _ref._totalLines,
|
|
55
69
|
hide = _ref.hide,
|
|
56
70
|
dataKey = _ref.dataKey,
|
|
71
|
+
rangeLowerDataKey = _ref.rangeLowerDataKey,
|
|
72
|
+
rangeUpperDataKey = _ref.rangeUpperDataKey,
|
|
73
|
+
rangeName = _ref.rangeName,
|
|
74
|
+
rangeColor = _ref.rangeColor,
|
|
75
|
+
showRangeLegend = _ref.showRangeLegend,
|
|
57
76
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
58
77
|
var _useTheme = useTheme(),
|
|
59
78
|
theme = _useTheme.theme;
|
|
@@ -67,7 +86,11 @@ var Line = function Line(_ref) {
|
|
|
67
86
|
});
|
|
68
87
|
var isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;
|
|
69
88
|
var colorToken = getIn(theme.colors, color !== null && color !== void 0 ? color : themeColors[_index !== null && _index !== void 0 ? _index : 0]);
|
|
70
|
-
var strokeDasharray = strokeStyle
|
|
89
|
+
var strokeDasharray = getStrokeDasharray(strokeStyle);
|
|
90
|
+
|
|
91
|
+
// A solid bridge just uses Recharts' native connectNulls on the main line. A dashed bridge keeps
|
|
92
|
+
// the main line gapped (connectNulls off) and is drawn separately by NullBridgeLayer.
|
|
93
|
+
var isSolidBridge = connectNulls && connectNullsStyle === 'solid';
|
|
71
94
|
var isLineDotted = strokeStyle === 'dashed';
|
|
72
95
|
var animationBegin = isLineDotted ? theme.motion.delay.gentle + theme.motion.duration.xgentle : theme.motion.delay.gentle;
|
|
73
96
|
var animationDuration = theme.motion.duration.xgentle;
|
|
@@ -113,8 +136,41 @@ var Line = function Line(_ref) {
|
|
|
113
136
|
}
|
|
114
137
|
} : false;
|
|
115
138
|
}, [activeDot, dataKey, updateHoveredDataKey]);
|
|
139
|
+
|
|
140
|
+
// When this line declares a range, render two invisible bound lines so Recharts computes their
|
|
141
|
+
// geometry and folds them into the y-domain. ChartLineWrapper's reference-band layer reads these
|
|
142
|
+
// curves (by className) and paints the shaded band between them, color-matched to this line.
|
|
143
|
+
var hasRange = Boolean(rangeLowerDataKey && rangeUpperDataKey);
|
|
116
144
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
117
|
-
children: [/*#__PURE__*/
|
|
145
|
+
children: [hasRange ? /*#__PURE__*/jsxs(Fragment, {
|
|
146
|
+
children: [/*#__PURE__*/jsx(Line$1, {
|
|
147
|
+
className: perLineBandClass(dataKey, 'lower'),
|
|
148
|
+
type: "monotone",
|
|
149
|
+
dataKey: rangeLowerDataKey,
|
|
150
|
+
stroke: "transparent",
|
|
151
|
+
strokeWidth: 1,
|
|
152
|
+
dot: false,
|
|
153
|
+
activeDot: false,
|
|
154
|
+
connectNulls: true,
|
|
155
|
+
legendType: "none",
|
|
156
|
+
tooltipType: "none",
|
|
157
|
+
isAnimationActive: false,
|
|
158
|
+
hide: hide
|
|
159
|
+
}, "band-".concat(dataKey, "-lower")), /*#__PURE__*/jsx(Line$1, {
|
|
160
|
+
className: perLineBandClass(dataKey, 'upper'),
|
|
161
|
+
type: "monotone",
|
|
162
|
+
dataKey: rangeUpperDataKey,
|
|
163
|
+
stroke: "transparent",
|
|
164
|
+
strokeWidth: 1,
|
|
165
|
+
dot: false,
|
|
166
|
+
activeDot: false,
|
|
167
|
+
connectNulls: true,
|
|
168
|
+
legendType: "none",
|
|
169
|
+
tooltipType: "none",
|
|
170
|
+
isAnimationActive: false,
|
|
171
|
+
hide: hide
|
|
172
|
+
}, "band-".concat(dataKey, "-upper"))]
|
|
173
|
+
}) : null, /*#__PURE__*/jsx(Line$1, {
|
|
118
174
|
type: "monotone",
|
|
119
175
|
dataKey: dataKey,
|
|
120
176
|
stroke: "transparent",
|
|
@@ -135,6 +191,7 @@ var Line = function Line(_ref) {
|
|
|
135
191
|
dataKey: dataKey,
|
|
136
192
|
activeDot: isOtherLineHovered ? false : activeDotConfig,
|
|
137
193
|
dot: dot,
|
|
194
|
+
connectNulls: isSolidBridge,
|
|
138
195
|
legendType: showLegend ? 'line' : 'none',
|
|
139
196
|
animationBegin: animationBegin,
|
|
140
197
|
animationDuration: animationDuration,
|
|
@@ -248,6 +305,193 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
|
|
|
248
305
|
lineChartModifiedChildrens = _useMemo.lineChartModifiedChildrens,
|
|
249
306
|
secondaryDataKey = _useMemo.secondaryDataKey;
|
|
250
307
|
|
|
308
|
+
// Ordered ChartLine children (matching Recharts' render order) and which of them bridge nulls with
|
|
309
|
+
// a dashed stroke. Used to map each rendered line curve back to its dataKey when drawing bridges.
|
|
310
|
+
var chartLineOrder = useMemo(function () {
|
|
311
|
+
var lines = [];
|
|
312
|
+
React__default.Children.forEach(children, function (child) {
|
|
313
|
+
if (/*#__PURE__*/isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {
|
|
314
|
+
var childProps = child.props;
|
|
315
|
+
var dataKey = childProps.dataKey;
|
|
316
|
+
if (dataKey) {
|
|
317
|
+
lines.push({
|
|
318
|
+
dataKey: dataKey,
|
|
319
|
+
isDashedBridge: childProps.connectNulls === true && childProps.connectNullsStyle === 'dashed'
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
return lines;
|
|
325
|
+
}, [children]);
|
|
326
|
+
var hasDashedBridge = chartLineOrder.some(function (line) {
|
|
327
|
+
return line.isDashedBridge;
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* The dashed bridges are drawn as curved paths derived from Recharts' own rendered geometry:
|
|
332
|
+
* after layout we parse each visible line's pixel anchor points from its SVG path and densely
|
|
333
|
+
* sample the monotone spline through them across each interior null run. This matches the solid
|
|
334
|
+
* line's curve exactly (Recharts v3 doesn't expose the axis scales to <Customized>) while spanning
|
|
335
|
+
* only the no-data stretch, so nulls read as "no data" rather than a measured value.
|
|
336
|
+
*/
|
|
337
|
+
var containerRef = useRef(null);
|
|
338
|
+
var _useReferenceBand = useReferenceBand(children, data, containerRef, dataColorMapping),
|
|
339
|
+
hasReferenceBand = _useReferenceBand.hasReferenceBand,
|
|
340
|
+
renderReferenceBands = _useReferenceBand.renderReferenceBands,
|
|
341
|
+
referenceBandLegendInfos = _useReferenceBand.referenceBandLegendInfos;
|
|
342
|
+
|
|
343
|
+
// Map of line dataKey -> its range keys, so the tooltip can show the industry range per series.
|
|
344
|
+
var rangeMap = useMemo(function () {
|
|
345
|
+
var map = {};
|
|
346
|
+
React__default.Children.forEach(children, function (child) {
|
|
347
|
+
if (/*#__PURE__*/isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {
|
|
348
|
+
var props = child.props;
|
|
349
|
+
var dataKey = props.dataKey;
|
|
350
|
+
if (dataKey && props.rangeLowerDataKey && props.rangeUpperDataKey) {
|
|
351
|
+
map[dataKey] = {
|
|
352
|
+
rangeLowerDataKey: props.rangeLowerDataKey,
|
|
353
|
+
rangeUpperDataKey: props.rangeUpperDataKey,
|
|
354
|
+
rangeName: props.rangeName
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
return map;
|
|
360
|
+
}, [children]);
|
|
361
|
+
var _useState7 = useState([]),
|
|
362
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
363
|
+
bridgePaths = _useState8[0],
|
|
364
|
+
setBridgePaths = _useState8[1];
|
|
365
|
+
useLayoutEffect(function () {
|
|
366
|
+
var container = containerRef.current;
|
|
367
|
+
if (!container || !hasDashedBridge) {
|
|
368
|
+
setBridgePaths(function (prev) {
|
|
369
|
+
return prev.length === 0 ? prev : [];
|
|
370
|
+
});
|
|
371
|
+
return undefined;
|
|
372
|
+
}
|
|
373
|
+
var computeBridges = function computeBridges() {
|
|
374
|
+
var surface = container.querySelector('svg.recharts-surface');
|
|
375
|
+
if (!surface) return;
|
|
376
|
+
// Visible lines, in render order, and the coloured curves Recharts drew for them. Each
|
|
377
|
+
// ChartLine also renders a transparent hover-target curve, which we filter out. Hidden lines
|
|
378
|
+
// render nothing, so both lists stay aligned only when their counts match.
|
|
379
|
+
var visibleLines = chartLineOrder.filter(function (line) {
|
|
380
|
+
return selectedDataKeys ? selectedDataKeys.includes(line.dataKey) : true;
|
|
381
|
+
});
|
|
382
|
+
var colouredCurves = Array.from(surface.querySelectorAll('.recharts-line-curve')).filter(function (curve) {
|
|
383
|
+
var _curve$getAttribute;
|
|
384
|
+
var stroke = ((_curve$getAttribute = curve.getAttribute('stroke')) !== null && _curve$getAttribute !== void 0 ? _curve$getAttribute : '').toLowerCase();
|
|
385
|
+
return stroke !== '' && stroke !== 'transparent' && stroke !== 'none';
|
|
386
|
+
});
|
|
387
|
+
if (colouredCurves.length !== visibleLines.length) return;
|
|
388
|
+
var nextPaths = [];
|
|
389
|
+
visibleLines.forEach(function (line, position) {
|
|
390
|
+
var _curve$getAttribute2, _curve$getAttribute3;
|
|
391
|
+
if (!line.isDashedBridge) return;
|
|
392
|
+
var curve = colouredCurves[position];
|
|
393
|
+
var stroke = (_curve$getAttribute2 = curve.getAttribute('stroke')) !== null && _curve$getAttribute2 !== void 0 ? _curve$getAttribute2 : '';
|
|
394
|
+
var anchors = parsePathAnchors((_curve$getAttribute3 = curve.getAttribute('d')) !== null && _curve$getAttribute3 !== void 0 ? _curve$getAttribute3 : '');
|
|
395
|
+
var _getDefinedNumericPoi = getDefinedNumericPoints(data, line.dataKey),
|
|
396
|
+
indices = _getDefinedNumericPoi.indices;
|
|
397
|
+
// Anchors must line up 1:1 with the defined data points for the sampling to be meaningful.
|
|
398
|
+
if (anchors.length !== indices.length) return;
|
|
399
|
+
getInteriorGaps(indices).forEach(function (_ref3) {
|
|
400
|
+
var from = _ref3.from,
|
|
401
|
+
to = _ref3.to;
|
|
402
|
+
nextPaths.push({
|
|
403
|
+
id: "null-bridge-".concat(line.dataKey, "-").concat(indices[from]),
|
|
404
|
+
dataKey: line.dataKey,
|
|
405
|
+
d: buildBridgePathData(anchors, from, to),
|
|
406
|
+
stroke: stroke
|
|
407
|
+
});
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
setBridgePaths(function (previous) {
|
|
411
|
+
var isSame = previous.length === nextPaths.length && previous.every(function (item, index) {
|
|
412
|
+
return item.id === nextPaths[index].id && item.d === nextPaths[index].d && item.stroke === nextPaths[index].stroke;
|
|
413
|
+
});
|
|
414
|
+
return isSame ? previous : nextPaths;
|
|
415
|
+
});
|
|
416
|
+
};
|
|
417
|
+
computeBridges();
|
|
418
|
+
|
|
419
|
+
// The line geometry isn't available synchronously (ResponsiveContainer renders the chart in a
|
|
420
|
+
// later commit) and it keeps changing while the line's draw-in animation runs, so we recompute
|
|
421
|
+
// whenever the chart's DOM or the line paths (`d`) mutate, and on resize.
|
|
422
|
+
var cleanups = [];
|
|
423
|
+
if (typeof MutationObserver !== 'undefined') {
|
|
424
|
+
var rafId = null;
|
|
425
|
+
var mutationObserver = new MutationObserver(function (mutations) {
|
|
426
|
+
// Skip mutations that originate from our own bridge layer (the dashed paths we render),
|
|
427
|
+
// which would otherwise cause re-entrant computeBridges calls on every bridge update.
|
|
428
|
+
var isBridgeMutation = mutations.some(function (m) {
|
|
429
|
+
return m.target instanceof Element && m.target.closest('.blade-null-bridge-layer');
|
|
430
|
+
});
|
|
431
|
+
if (isBridgeMutation) return;
|
|
432
|
+
// Debounce: coalesce multiple mutations in a single animation frame so that hover-related
|
|
433
|
+
// DOM changes (tooltips, active dots, crosshair) don't each trigger a separate computation.
|
|
434
|
+
if (rafId !== null) cancelAnimationFrame(rafId);
|
|
435
|
+
rafId = requestAnimationFrame(function () {
|
|
436
|
+
rafId = null;
|
|
437
|
+
computeBridges();
|
|
438
|
+
});
|
|
439
|
+
});
|
|
440
|
+
mutationObserver.observe(container, {
|
|
441
|
+
childList: true,
|
|
442
|
+
subtree: true,
|
|
443
|
+
attributes: true,
|
|
444
|
+
attributeFilter: ['d']
|
|
445
|
+
});
|
|
446
|
+
cleanups.push(function () {
|
|
447
|
+
mutationObserver.disconnect();
|
|
448
|
+
if (rafId !== null) cancelAnimationFrame(rafId);
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
452
|
+
var resizeObserver = new ResizeObserver(function () {
|
|
453
|
+
return computeBridges();
|
|
454
|
+
});
|
|
455
|
+
resizeObserver.observe(container);
|
|
456
|
+
cleanups.push(function () {
|
|
457
|
+
return resizeObserver.disconnect();
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
return function () {
|
|
461
|
+
return cleanups.forEach(function (cleanup) {
|
|
462
|
+
return cleanup();
|
|
463
|
+
});
|
|
464
|
+
};
|
|
465
|
+
}, [data, chartLineOrder, hasDashedBridge, selectedDataKeys]);
|
|
466
|
+
var renderNullBridges = function renderNullBridges() {
|
|
467
|
+
if (bridgePaths.length === 0) return null;
|
|
468
|
+
return /*#__PURE__*/jsx("g", {
|
|
469
|
+
className: "blade-null-bridge-layer",
|
|
470
|
+
children: bridgePaths.map(function (_ref4) {
|
|
471
|
+
var id = _ref4.id,
|
|
472
|
+
dataKey = _ref4.dataKey,
|
|
473
|
+
d = _ref4.d,
|
|
474
|
+
stroke = _ref4.stroke;
|
|
475
|
+
var isHidden = selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false;
|
|
476
|
+
if (isHidden) return null;
|
|
477
|
+
var isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;
|
|
478
|
+
return /*#__PURE__*/jsx("path", {
|
|
479
|
+
d: d,
|
|
480
|
+
fill: "none",
|
|
481
|
+
stroke: stroke,
|
|
482
|
+
strokeWidth: 1.5,
|
|
483
|
+
strokeDasharray: NULL_BRIDGE_DASHARRAY,
|
|
484
|
+
strokeLinecap: "round",
|
|
485
|
+
strokeLinejoin: "round",
|
|
486
|
+
strokeOpacity: isOtherLineHovered ? 0.2 : 1,
|
|
487
|
+
style: {
|
|
488
|
+
transition: 'stroke-opacity 0.5s ease-in-out'
|
|
489
|
+
}
|
|
490
|
+
}, id);
|
|
491
|
+
})
|
|
492
|
+
});
|
|
493
|
+
};
|
|
494
|
+
|
|
251
495
|
// Build secondary label map internally from ChartXAxis's secondaryDataKey prop
|
|
252
496
|
var secondaryLabelMap = useMemo(function () {
|
|
253
497
|
if (!secondaryDataKey || !data) return undefined;
|
|
@@ -272,9 +516,11 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
|
|
|
272
516
|
selectedDataKeys: selectedDataKeys,
|
|
273
517
|
setSelectedDataKeys: setSelectedDataKeys,
|
|
274
518
|
secondaryLabelMap: secondaryLabelMap,
|
|
275
|
-
dataLength: data === null || data === void 0 ? void 0 : data.length
|
|
519
|
+
dataLength: data === null || data === void 0 ? void 0 : data.length,
|
|
520
|
+
referenceBands: referenceBandLegendInfos,
|
|
521
|
+
rangeMap: rangeMap
|
|
276
522
|
};
|
|
277
|
-
}, [dataColorMapping, selectedDataKeys, secondaryLabelMap, data === null || data === void 0 ? void 0 : data.length]);
|
|
523
|
+
}, [dataColorMapping, selectedDataKeys, secondaryLabelMap, data === null || data === void 0 ? void 0 : data.length, referenceBandLegendInfos, rangeMap]);
|
|
278
524
|
return /*#__PURE__*/jsx(LineChartContext.Provider, {
|
|
279
525
|
value: lineChartContextValue,
|
|
280
526
|
children: /*#__PURE__*/jsx(CommonChartComponentsContext.Provider, {
|
|
@@ -286,15 +532,26 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
|
|
|
286
532
|
width: "100%",
|
|
287
533
|
height: "100%"
|
|
288
534
|
}, restProps), {}, {
|
|
289
|
-
children: /*#__PURE__*/jsx(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
535
|
+
children: /*#__PURE__*/jsx("div", {
|
|
536
|
+
ref: containerRef,
|
|
537
|
+
style: {
|
|
538
|
+
width: '100%',
|
|
539
|
+
height: '100%'
|
|
540
|
+
},
|
|
541
|
+
children: /*#__PURE__*/jsx(ResponsiveContainer, {
|
|
542
|
+
width: "100%",
|
|
543
|
+
height: "100%",
|
|
544
|
+
children: /*#__PURE__*/jsxs(LineChart, {
|
|
545
|
+
data: data,
|
|
546
|
+
onMouseLeave: function onMouseLeave() {
|
|
547
|
+
return setHoveredDataKey(null);
|
|
548
|
+
},
|
|
549
|
+
children: [hasReferenceBand ? /*#__PURE__*/jsx(Customized, {
|
|
550
|
+
component: renderReferenceBands
|
|
551
|
+
}) : null, lineChartModifiedChildrens, hasDashedBridge ? /*#__PURE__*/jsx(Customized, {
|
|
552
|
+
component: renderNullBridges
|
|
553
|
+
}) : null]
|
|
554
|
+
})
|
|
298
555
|
})
|
|
299
556
|
})
|
|
300
557
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.web.js","sources":["../../../../../../../src/components/Charts/LineChart/LineChart.web.tsx"],"sourcesContent":["import React, {\n useState,\n useMemo,\n useEffect,\n useCallback,\n isValidElement,\n cloneElement,\n} from 'react';\nimport {\n LineChart as RechartsLineChart,\n Line as RechartsLine,\n ResponsiveContainer as RechartsResponsiveContainer,\n} from 'recharts';\nimport { animate } from 'framer-motion';\nimport { useChartsColorTheme, assignDataColorMapping } from '../utils';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type {\n DataColorMapping,\n SecondaryLabelMap,\n ChartXAxisProps,\n} from '../CommonChartComponents/types';\nimport { componentId as commonComponentIds } from '../CommonChartComponents/tokens';\nimport type { ChartLineProps, ChartLineWrapperProps } from './types';\nimport { componentIds } from './componentIds';\nimport { LineChartContext, useLineChartContext } from './LineChartContext';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst Line: React.FC<ChartLineProps> = ({\n color,\n strokeStyle = 'solid',\n type = 'monotone',\n dot = false,\n activeDot = true,\n showLegend = true,\n _index,\n _colorTheme,\n _totalLines,\n hide,\n dataKey,\n ...props\n}) => {\n const { theme } = useTheme();\n const { hoveredDataKey, setHoveredDataKey } = useLineChartContext();\n\n const themeColors = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'line',\n chartDataIndicators: _totalLines,\n });\n\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n const colorToken = getIn(theme.colors, color ?? themeColors[_index ?? 0]);\n\n const strokeDasharray =\n strokeStyle === 'dashed' ? '5 5' : strokeStyle === 'dotted' ? '2 2' : undefined;\n\n const isLineDotted = strokeStyle === 'dashed';\n const animationBegin = isLineDotted\n ? theme.motion.delay.gentle + theme.motion.duration.xgentle\n : theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n // Animated opacity using framer-motion\n const targetOpacity = isOtherLineHovered ? 0.2 : 1;\n const [animatedOpacity, setAnimatedOpacity] = useState(targetOpacity);\n\n useEffect(() => {\n const controls = animate(animatedOpacity, targetOpacity, {\n duration: 0.5,\n ease: 'easeInOut',\n onUpdate: (latest) => setAnimatedOpacity(latest),\n });\n\n return () => controls.stop();\n }, [targetOpacity]);\n\n const updateHoveredDataKey = useCallback(\n (key: string | null) => {\n if (!hide) {\n setHoveredDataKey?.(key);\n }\n },\n [hide, setHoveredDataKey],\n );\n\n const handleMouseEnter = useCallback(() => {\n updateHoveredDataKey(dataKey as string);\n }, [dataKey, updateHoveredDataKey]);\n\n const handleMouseLeave = useCallback(() => {\n updateHoveredDataKey(null);\n }, [updateHoveredDataKey]);\n\n // activeDot config with hover handlers\n const activeDotConfig = useMemo(\n () =>\n activeDot\n ? {\n onMouseEnter: () => updateHoveredDataKey(dataKey as string),\n onMouseLeave: () => updateHoveredDataKey(null),\n }\n : false,\n [activeDot, dataKey, updateHoveredDataKey],\n );\n\n return (\n <>\n <RechartsLine\n key={`line-${dataKey}-background`}\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"transparent\"\n strokeWidth={15}\n dot={false}\n activeDot={false}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n hide={hide}\n />\n <RechartsLine\n key={`line-${dataKey}-main`}\n stroke={colorToken}\n strokeWidth={1.5}\n strokeDasharray={strokeDasharray}\n type={type}\n dataKey={dataKey}\n activeDot={isOtherLineHovered ? false : activeDotConfig}\n dot={dot}\n legendType={showLegend ? 'line' : 'none'}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n hide={hide}\n // Animated opacity using framer-motion\n strokeOpacity={animatedOpacity}\n isAnimationActive={true}\n {...props}\n />\n </>\n );\n};\n\nconst ChartLine = assignWithoutSideEffects(Line, {\n componentId: componentIds.ChartLine,\n});\n\n// Main components\nconst ChartLineWrapper: React.FC<ChartLineWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n testID,\n data,\n ...restProps\n}) => {\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'line',\n });\n\n // State to track which line is currently hovered\n const [hoveredDataKey, setHoveredDataKey] = useState<string | null>(null);\n const [selectedDataKeys, setSelectedDataKeys] = useState<string[] | undefined>(undefined);\n\n /**\n * We need to check child of CharLineWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n\n const { dataColorMapping, lineChartModifiedChildrens, secondaryDataKey } = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n // Count ChartLine components\n const totalLines = childrenArray.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && getComponentId(child) === componentIds.ChartLine,\n ).length;\n\n // Find ChartXAxis and extract secondaryDataKey\n let secondaryDataKey: string | undefined;\n for (const child of childrenArray) {\n if (React.isValidElement(child) && getComponentId(child) === commonComponentIds.chartXAxis) {\n secondaryDataKey = (child.props as ChartXAxisProps)?.secondaryDataKey;\n break;\n }\n }\n\n let LineChartIndex = 0;\n const lineChartModifiedChildrens = React.Children.map(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartLineProps)?.dataKey as string;\n if (dataKey) {\n /**\n * if we have custom color given by user we use that other wise we just\n * assign theme colors to the dataColorMapping, in `assignDataColorMapping`\n */\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n // Pass hide prop based on whether this line's dataKey is NOT in selectedDataKeys\n // If selectedDataKeys is undefined, show all lines (default behavior)\n return cloneElement(child, {\n _index: LineChartIndex++,\n _colorTheme: colorTheme,\n _totalLines: totalLines,\n hide: selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false,\n } as Partial<ChartLineProps>);\n }\n return child;\n });\n assignDataColorMapping(dataColorMapping, themeColors);\n\n return { dataColorMapping, lineChartModifiedChildrens, totalLines, secondaryDataKey };\n }, [children, colorTheme, themeColors, selectedDataKeys]);\n\n // Build secondary label map internally from ChartXAxis's secondaryDataKey prop\n const secondaryLabelMap = useMemo<SecondaryLabelMap | undefined>(() => {\n if (!secondaryDataKey || !data) return undefined;\n const map: SecondaryLabelMap = {};\n data.forEach((item, index) => {\n map[index] = item[secondaryDataKey] as string | number | undefined;\n });\n return map;\n }, [data, secondaryDataKey]);\n\n // Memoize context values to prevent unnecessary re-renders of consumers\n const lineChartContextValue = useMemo(() => ({ hoveredDataKey, setHoveredDataKey }), [\n hoveredDataKey,\n ]);\n\n const commonChartContextValue = useMemo(\n () => ({\n chartName: 'line' as const,\n dataColorMapping,\n selectedDataKeys,\n setSelectedDataKeys,\n secondaryLabelMap,\n dataLength: data?.length,\n }),\n [dataColorMapping, selectedDataKeys, secondaryLabelMap, data?.length],\n );\n\n return (\n <LineChartContext.Provider value={lineChartContextValue}>\n <CommonChartComponentsContext.Provider value={commonChartContextValue}>\n <BaseBox\n {...metaAttribute({ name: 'line-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} onMouseLeave={() => setHoveredDataKey(null)}>\n {lineChartModifiedChildrens}\n </RechartsLineChart>\n </RechartsResponsiveContainer>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n </LineChartContext.Provider>\n );\n};\n\nexport { ChartLine, ChartLineWrapper };\n"],"names":["Line","_ref","color","_ref$strokeStyle","strokeStyle","_ref$type","type","_ref$dot","dot","_ref$activeDot","activeDot","_ref$showLegend","showLegend","_index","_colorTheme","_totalLines","hide","dataKey","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useLineChartContext","useLineChartContext","hoveredDataKey","setHoveredDataKey","themeColors","useChartsColorTheme","colorTheme","chartName","chartDataIndicators","isOtherLineHovered","colorToken","getIn","colors","strokeDasharray","undefined","isLineDotted","animationBegin","motion","delay","gentle","duration","xgentle","animationDuration","targetOpacity","_useState","useState","_useState2","_slicedToArray","animatedOpacity","setAnimatedOpacity","useEffect","controls","animate","ease","onUpdate","latest","stop","updateHoveredDataKey","useCallback","key","handleMouseEnter","handleMouseLeave","activeDotConfig","useMemo","onMouseEnter","onMouseLeave","_jsxs","_Fragment","children","_jsx","RechartsLine","stroke","strokeWidth","connectNulls","legendType","tooltipType","concat","_objectSpread","strokeLinecap","strokeLinejoin","strokeOpacity","isAnimationActive","ChartLine","assignWithoutSideEffects","componentId","componentIds","ChartLineWrapper","_ref2","_ref2$colorTheme","testID","data","restProps","_excluded2","_useState3","_useState4","_useState5","_useState6","selectedDataKeys","setSelectedDataKeys","_useMemo","childrenArray","React","Children","toArray","dataColorMapping","totalLines","filter","child","isValidElement","getComponentId","length","secondaryDataKey","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","commonComponentIds","chartXAxis","_child$props3","err","e","f","LineChartIndex","lineChartModifiedChildrens","map","_child$props","_child$props2","childColor","isCustomColor","Boolean","cloneElement","includes","assignDataColorMapping","secondaryLabelMap","forEach","item","index","lineChartContextValue","commonChartContextValue","dataLength","LineChartContext","Provider","CommonChartComponentsContext","BaseBox","metaAttribute","name","makeAnalyticsAttribute","width","height","RechartsResponsiveContainer","RechartsLineChart"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LineChart.web.js","sources":["../../../../../../../src/components/Charts/LineChart/LineChart.web.tsx"],"sourcesContent":["import React, {\n useState,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n useCallback,\n isValidElement,\n cloneElement,\n} from 'react';\nimport {\n LineChart as RechartsLineChart,\n Line as RechartsLine,\n ResponsiveContainer as RechartsResponsiveContainer,\n Customized as RechartsCustomized,\n} from 'recharts';\nimport { animate } from 'framer-motion';\nimport { useChartsColorTheme, assignDataColorMapping } from '../utils';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type {\n DataColorMapping,\n SecondaryLabelMap,\n ChartXAxisProps,\n RangeMap,\n} from '../CommonChartComponents/types';\nimport { componentId as commonComponentIds } from '../CommonChartComponents/tokens';\nimport type { ChartLineProps, ChartLineWrapperProps } from './types';\nimport { componentIds } from './componentIds';\nimport {\n getDefinedNumericPoints,\n getInteriorGaps,\n parsePathAnchors,\n buildBridgePathData,\n} from '../utils/nullBridgeUtils';\nimport { perLineBandClass } from '../utils/referenceBandUtils';\nimport { LineChartContext, useLineChartContext } from './LineChartContext';\nimport { useReferenceBand } from './useReferenceBand';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getStrokeDasharray = (style?: ChartLineProps['strokeStyle']): string | undefined =>\n style === 'dashed' ? '5 5' : style === 'dotted' ? '2 2' : undefined;\n\n// Dash pattern used for the bridge drawn across null points when `connectNulls` is enabled.\nconst NULL_BRIDGE_DASHARRAY = '5 5';\n\nconst Line: React.FC<ChartLineProps> = ({\n color,\n strokeStyle = 'solid',\n type = 'monotone',\n dot = false,\n activeDot = true,\n showLegend = true,\n connectNulls = false,\n connectNullsStyle = 'solid',\n _index,\n _colorTheme,\n _totalLines,\n hide,\n dataKey,\n // `rangeLowerDataKey` / `rangeUpperDataKey` drive this line's invisible bound lines below. The\n // remaining range-* props are consumed by ChartLineWrapper's band layer / tooltip / legend; they\n // must be destructured out here so they don't leak onto the underlying Recharts <Line>.\n rangeLowerDataKey,\n rangeUpperDataKey,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n rangeName,\n rangeColor,\n showRangeLegend,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n}) => {\n const { theme } = useTheme();\n const { hoveredDataKey, setHoveredDataKey } = useLineChartContext();\n\n const themeColors = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'line',\n chartDataIndicators: _totalLines,\n });\n\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n const colorToken = getIn(theme.colors, color ?? themeColors[_index ?? 0]);\n\n const strokeDasharray = getStrokeDasharray(strokeStyle);\n\n // A solid bridge just uses Recharts' native connectNulls on the main line. A dashed bridge keeps\n // the main line gapped (connectNulls off) and is drawn separately by NullBridgeLayer.\n const isSolidBridge = connectNulls && connectNullsStyle === 'solid';\n\n const isLineDotted = strokeStyle === 'dashed';\n const animationBegin = isLineDotted\n ? theme.motion.delay.gentle + theme.motion.duration.xgentle\n : theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n // Animated opacity using framer-motion\n const targetOpacity = isOtherLineHovered ? 0.2 : 1;\n const [animatedOpacity, setAnimatedOpacity] = useState(targetOpacity);\n\n useEffect(() => {\n const controls = animate(animatedOpacity, targetOpacity, {\n duration: 0.5,\n ease: 'easeInOut',\n onUpdate: (latest) => setAnimatedOpacity(latest),\n });\n\n return () => controls.stop();\n }, [targetOpacity]);\n\n const updateHoveredDataKey = useCallback(\n (key: string | null) => {\n if (!hide) {\n setHoveredDataKey?.(key);\n }\n },\n [hide, setHoveredDataKey],\n );\n\n const handleMouseEnter = useCallback(() => {\n updateHoveredDataKey(dataKey as string);\n }, [dataKey, updateHoveredDataKey]);\n\n const handleMouseLeave = useCallback(() => {\n updateHoveredDataKey(null);\n }, [updateHoveredDataKey]);\n\n // activeDot config with hover handlers\n const activeDotConfig = useMemo(\n () =>\n activeDot\n ? {\n onMouseEnter: () => updateHoveredDataKey(dataKey as string),\n onMouseLeave: () => updateHoveredDataKey(null),\n }\n : false,\n [activeDot, dataKey, updateHoveredDataKey],\n );\n\n // When this line declares a range, render two invisible bound lines so Recharts computes their\n // geometry and folds them into the y-domain. ChartLineWrapper's reference-band layer reads these\n // curves (by className) and paints the shaded band between them, color-matched to this line.\n const hasRange = Boolean(rangeLowerDataKey && rangeUpperDataKey);\n\n return (\n <>\n {hasRange ? (\n <>\n <RechartsLine\n key={`band-${dataKey}-lower`}\n className={perLineBandClass(dataKey as string, 'lower')}\n type=\"monotone\"\n dataKey={rangeLowerDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n hide={hide}\n />\n <RechartsLine\n key={`band-${dataKey}-upper`}\n className={perLineBandClass(dataKey as string, 'upper')}\n type=\"monotone\"\n dataKey={rangeUpperDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n hide={hide}\n />\n </>\n ) : null}\n <RechartsLine\n key={`line-${dataKey}-background`}\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"transparent\"\n strokeWidth={15}\n dot={false}\n activeDot={false}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n hide={hide}\n />\n {/*\n * The dashed bridge across null points is rendered by ChartLineWrapper's <Customized> layer\n * (NullBridgeLayer) as a curved path following the monotone spline, so it can span only the\n * no-data stretch while matching the solid line's curve.\n */}\n <RechartsLine\n key={`line-${dataKey}-main`}\n stroke={colorToken}\n strokeWidth={1.5}\n strokeDasharray={strokeDasharray}\n type={type}\n dataKey={dataKey}\n activeDot={isOtherLineHovered ? false : activeDotConfig}\n dot={dot}\n connectNulls={isSolidBridge}\n legendType={showLegend ? 'line' : 'none'}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n hide={hide}\n // Animated opacity using framer-motion\n strokeOpacity={animatedOpacity}\n isAnimationActive={true}\n {...props}\n />\n </>\n );\n};\n\nconst ChartLine = assignWithoutSideEffects(Line, {\n componentId: componentIds.ChartLine,\n});\n\n// Main components\nconst ChartLineWrapper: React.FC<ChartLineWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n testID,\n data,\n ...restProps\n}) => {\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'line',\n });\n\n // State to track which line is currently hovered\n const [hoveredDataKey, setHoveredDataKey] = useState<string | null>(null);\n const [selectedDataKeys, setSelectedDataKeys] = useState<string[] | undefined>(undefined);\n\n /**\n * We need to check child of CharLineWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n\n const { dataColorMapping, lineChartModifiedChildrens, secondaryDataKey } = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n // Count ChartLine components\n const totalLines = childrenArray.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && getComponentId(child) === componentIds.ChartLine,\n ).length;\n\n // Find ChartXAxis and extract secondaryDataKey\n let secondaryDataKey: string | undefined;\n for (const child of childrenArray) {\n if (React.isValidElement(child) && getComponentId(child) === commonComponentIds.chartXAxis) {\n secondaryDataKey = (child.props as ChartXAxisProps)?.secondaryDataKey;\n break;\n }\n }\n\n let LineChartIndex = 0;\n const lineChartModifiedChildrens = React.Children.map(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartLineProps)?.dataKey as string;\n if (dataKey) {\n /**\n * if we have custom color given by user we use that other wise we just\n * assign theme colors to the dataColorMapping, in `assignDataColorMapping`\n */\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n // Pass hide prop based on whether this line's dataKey is NOT in selectedDataKeys\n // If selectedDataKeys is undefined, show all lines (default behavior)\n return cloneElement(child, {\n _index: LineChartIndex++,\n _colorTheme: colorTheme,\n _totalLines: totalLines,\n hide: selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false,\n } as Partial<ChartLineProps>);\n }\n return child;\n });\n assignDataColorMapping(dataColorMapping, themeColors);\n\n return { dataColorMapping, lineChartModifiedChildrens, totalLines, secondaryDataKey };\n }, [children, colorTheme, themeColors, selectedDataKeys]);\n\n // Ordered ChartLine children (matching Recharts' render order) and which of them bridge nulls with\n // a dashed stroke. Used to map each rendered line curve back to its dataKey when drawing bridges.\n const chartLineOrder = useMemo(() => {\n const lines: Array<{ dataKey: string; isDashedBridge: boolean }> = [];\n React.Children.forEach(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childProps = child.props as ChartLineProps;\n const dataKey = childProps.dataKey as string;\n if (dataKey) {\n lines.push({\n dataKey,\n isDashedBridge:\n childProps.connectNulls === true && childProps.connectNullsStyle === 'dashed',\n });\n }\n }\n });\n return lines;\n }, [children]);\n\n const hasDashedBridge = chartLineOrder.some((line) => line.isDashedBridge);\n\n /**\n * The dashed bridges are drawn as curved paths derived from Recharts' own rendered geometry:\n * after layout we parse each visible line's pixel anchor points from its SVG path and densely\n * sample the monotone spline through them across each interior null run. This matches the solid\n * line's curve exactly (Recharts v3 doesn't expose the axis scales to <Customized>) while spanning\n * only the no-data stretch, so nulls read as \"no data\" rather than a measured value.\n */\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { hasReferenceBand, renderReferenceBands, referenceBandLegendInfos } = useReferenceBand(\n children,\n data,\n containerRef,\n dataColorMapping,\n );\n\n // Map of line dataKey -> its range keys, so the tooltip can show the industry range per series.\n const rangeMap = useMemo<RangeMap>(() => {\n const map: RangeMap = {};\n React.Children.forEach(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const props = child.props as ChartLineProps;\n const dataKey = props.dataKey as string;\n if (dataKey && props.rangeLowerDataKey && props.rangeUpperDataKey) {\n map[dataKey] = {\n rangeLowerDataKey: props.rangeLowerDataKey,\n rangeUpperDataKey: props.rangeUpperDataKey,\n rangeName: props.rangeName,\n };\n }\n }\n });\n return map;\n }, [children]);\n\n const [bridgePaths, setBridgePaths] = useState<\n Array<{ id: string; dataKey: string; d: string; stroke: string }>\n >([]);\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container || !hasDashedBridge) {\n setBridgePaths((prev) => (prev.length === 0 ? prev : []));\n return undefined;\n }\n\n const computeBridges = (): void => {\n const surface = container.querySelector('svg.recharts-surface');\n if (!surface) return;\n // Visible lines, in render order, and the coloured curves Recharts drew for them. Each\n // ChartLine also renders a transparent hover-target curve, which we filter out. Hidden lines\n // render nothing, so both lists stay aligned only when their counts match.\n const visibleLines = chartLineOrder.filter((line) =>\n selectedDataKeys ? selectedDataKeys.includes(line.dataKey) : true,\n );\n const colouredCurves = Array.from(\n surface.querySelectorAll<SVGPathElement>('.recharts-line-curve'),\n ).filter((curve) => {\n const stroke = (curve.getAttribute('stroke') ?? '').toLowerCase();\n return stroke !== '' && stroke !== 'transparent' && stroke !== 'none';\n });\n if (colouredCurves.length !== visibleLines.length) return;\n\n const nextPaths: Array<{ id: string; dataKey: string; d: string; stroke: string }> = [];\n visibleLines.forEach((line, position) => {\n if (!line.isDashedBridge) return;\n const curve = colouredCurves[position];\n const stroke = curve.getAttribute('stroke') ?? '';\n const anchors = parsePathAnchors(curve.getAttribute('d') ?? '');\n const { indices } = getDefinedNumericPoints(data, line.dataKey);\n // Anchors must line up 1:1 with the defined data points for the sampling to be meaningful.\n if (anchors.length !== indices.length) return;\n\n getInteriorGaps(indices).forEach(({ from, to }) => {\n nextPaths.push({\n id: `null-bridge-${line.dataKey}-${indices[from]}`,\n dataKey: line.dataKey,\n d: buildBridgePathData(anchors, from, to),\n stroke,\n });\n });\n });\n\n setBridgePaths((previous) => {\n const isSame =\n previous.length === nextPaths.length &&\n previous.every(\n (item, index) =>\n item.id === nextPaths[index].id &&\n item.d === nextPaths[index].d &&\n item.stroke === nextPaths[index].stroke,\n );\n return isSame ? previous : nextPaths;\n });\n };\n\n computeBridges();\n\n // The line geometry isn't available synchronously (ResponsiveContainer renders the chart in a\n // later commit) and it keeps changing while the line's draw-in animation runs, so we recompute\n // whenever the chart's DOM or the line paths (`d`) mutate, and on resize.\n const cleanups: Array<() => void> = [];\n if (typeof MutationObserver !== 'undefined') {\n let rafId: number | null = null;\n const mutationObserver = new MutationObserver((mutations) => {\n // Skip mutations that originate from our own bridge layer (the dashed paths we render),\n // which would otherwise cause re-entrant computeBridges calls on every bridge update.\n const isBridgeMutation = mutations.some(\n (m) => m.target instanceof Element && m.target.closest('.blade-null-bridge-layer'),\n );\n if (isBridgeMutation) return;\n // Debounce: coalesce multiple mutations in a single animation frame so that hover-related\n // DOM changes (tooltips, active dots, crosshair) don't each trigger a separate computation.\n if (rafId !== null) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n rafId = null;\n computeBridges();\n });\n });\n mutationObserver.observe(container, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['d'],\n });\n cleanups.push(() => {\n mutationObserver.disconnect();\n if (rafId !== null) cancelAnimationFrame(rafId);\n });\n }\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(() => computeBridges());\n resizeObserver.observe(container);\n cleanups.push(() => resizeObserver.disconnect());\n }\n return () => cleanups.forEach((cleanup) => cleanup());\n }, [data, chartLineOrder, hasDashedBridge, selectedDataKeys]);\n\n const renderNullBridges = (): React.ReactElement | null => {\n if (bridgePaths.length === 0) return null;\n return (\n <g className=\"blade-null-bridge-layer\">\n {bridgePaths.map(({ id, dataKey, d, stroke }) => {\n const isHidden = selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false;\n if (isHidden) return null;\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n return (\n <path\n key={id}\n d={d}\n fill=\"none\"\n stroke={stroke}\n strokeWidth={1.5}\n strokeDasharray={NULL_BRIDGE_DASHARRAY}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeOpacity={isOtherLineHovered ? 0.2 : 1}\n style={{ transition: 'stroke-opacity 0.5s ease-in-out' }}\n />\n );\n })}\n </g>\n );\n };\n\n // Build secondary label map internally from ChartXAxis's secondaryDataKey prop\n const secondaryLabelMap = useMemo<SecondaryLabelMap | undefined>(() => {\n if (!secondaryDataKey || !data) return undefined;\n const map: SecondaryLabelMap = {};\n data.forEach((item, index) => {\n map[index] = item[secondaryDataKey] as string | number | undefined;\n });\n return map;\n }, [data, secondaryDataKey]);\n\n // Memoize context values to prevent unnecessary re-renders of consumers\n const lineChartContextValue = useMemo(() => ({ hoveredDataKey, setHoveredDataKey }), [\n hoveredDataKey,\n ]);\n\n const commonChartContextValue = useMemo(\n () => ({\n chartName: 'line' as const,\n dataColorMapping,\n selectedDataKeys,\n setSelectedDataKeys,\n secondaryLabelMap,\n dataLength: data?.length,\n referenceBands: referenceBandLegendInfos,\n rangeMap,\n }),\n [\n dataColorMapping,\n selectedDataKeys,\n secondaryLabelMap,\n data?.length,\n referenceBandLegendInfos,\n rangeMap,\n ],\n );\n\n return (\n <LineChartContext.Provider value={lineChartContextValue}>\n <CommonChartComponentsContext.Provider value={commonChartContextValue}>\n <BaseBox\n {...metaAttribute({ name: 'line-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <div ref={containerRef} style={{ width: '100%', height: '100%' }}>\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} onMouseLeave={() => setHoveredDataKey(null)}>\n {/* Painted first so the shaded bands sit behind the trend lines. */}\n {hasReferenceBand ? <RechartsCustomized component={renderReferenceBands} /> : null}\n {lineChartModifiedChildrens}\n {hasDashedBridge ? <RechartsCustomized component={renderNullBridges} /> : null}\n </RechartsLineChart>\n </RechartsResponsiveContainer>\n </div>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n </LineChartContext.Provider>\n );\n};\n\nexport { ChartLine, ChartLineWrapper };\n"],"names":["getStrokeDasharray","style","undefined","NULL_BRIDGE_DASHARRAY","Line","_ref","color","_ref$strokeStyle","strokeStyle","_ref$type","type","_ref$dot","dot","_ref$activeDot","activeDot","_ref$showLegend","showLegend","_ref$connectNulls","connectNulls","_ref$connectNullsStyl","connectNullsStyle","_index","_colorTheme","_totalLines","hide","dataKey","rangeLowerDataKey","rangeUpperDataKey","rangeName","rangeColor","showRangeLegend","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useLineChartContext","useLineChartContext","hoveredDataKey","setHoveredDataKey","themeColors","useChartsColorTheme","colorTheme","chartName","chartDataIndicators","isOtherLineHovered","colorToken","getIn","colors","strokeDasharray","isSolidBridge","isLineDotted","animationBegin","motion","delay","gentle","duration","xgentle","animationDuration","targetOpacity","_useState","useState","_useState2","_slicedToArray","animatedOpacity","setAnimatedOpacity","useEffect","controls","animate","ease","onUpdate","latest","stop","updateHoveredDataKey","useCallback","key","handleMouseEnter","handleMouseLeave","activeDotConfig","useMemo","onMouseEnter","onMouseLeave","hasRange","Boolean","_jsxs","_Fragment","children","_jsx","RechartsLine","className","perLineBandClass","stroke","strokeWidth","legendType","tooltipType","isAnimationActive","concat","_objectSpread","strokeLinecap","strokeLinejoin","strokeOpacity","ChartLine","assignWithoutSideEffects","componentId","componentIds","ChartLineWrapper","_ref2","_ref2$colorTheme","testID","data","restProps","_excluded2","_useState3","_useState4","_useState5","_useState6","selectedDataKeys","setSelectedDataKeys","_useMemo","childrenArray","React","Children","toArray","dataColorMapping","totalLines","filter","child","isValidElement","getComponentId","length","secondaryDataKey","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","commonComponentIds","chartXAxis","_child$props3","err","e","f","LineChartIndex","lineChartModifiedChildrens","map","_child$props","_child$props2","childColor","isCustomColor","cloneElement","includes","assignDataColorMapping","chartLineOrder","lines","forEach","childProps","push","isDashedBridge","hasDashedBridge","some","line","containerRef","useRef","_useReferenceBand","useReferenceBand","hasReferenceBand","renderReferenceBands","referenceBandLegendInfos","rangeMap","_useState7","_useState8","bridgePaths","setBridgePaths","useLayoutEffect","container","current","prev","computeBridges","surface","querySelector","visibleLines","colouredCurves","Array","from","querySelectorAll","curve","_curve$getAttribute","getAttribute","toLowerCase","nextPaths","position","_curve$getAttribute2","_curve$getAttribute3","anchors","parsePathAnchors","_getDefinedNumericPoi","getDefinedNumericPoints","indices","getInteriorGaps","_ref3","to","id","d","buildBridgePathData","previous","isSame","every","item","index","cleanups","MutationObserver","rafId","mutationObserver","mutations","isBridgeMutation","m","target","Element","closest","cancelAnimationFrame","requestAnimationFrame","observe","childList","subtree","attributes","attributeFilter","disconnect","ResizeObserver","resizeObserver","cleanup","renderNullBridges","_ref4","isHidden","fill","transition","secondaryLabelMap","lineChartContextValue","commonChartContextValue","dataLength","referenceBands","LineChartContext","Provider","CommonChartComponentsContext","BaseBox","metaAttribute","name","makeAnalyticsAttribute","width","height","ref","RechartsResponsiveContainer","RechartsLineChart","RechartsCustomized","component"],"mappings":"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"}
|