@razorpay/blade 12.111.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/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 +1 -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 +1 -1
- package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
- 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/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/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/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 +7 -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/useControlledDropdownInput/useControlledDropdownInput.js +1 -1
- package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- 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 +20 -0
- 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/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/FilterChipSelectInput.web.js +20 -12
- 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 +15 -1
- package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
- 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/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/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/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 +9 -2
- package/build/lib/web/development/components/index.js.map +1 -1
- 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 +4 -0
- 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/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 +20 -0
- 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/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/FilterChipSelectInput.web.js +20 -12
- 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 +15 -1
- package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
- 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/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/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/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 +9 -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 +4 -0
- 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 +557 -18
- package/build/types/components/index.native.d.ts +463 -16
- 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
|
@@ -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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"}
|