@economic/taco 14.0.0 → 14.1.0-EC-85807-code-report-fixes.0
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/dist/charts/components/Area/AreaChart.cjs.map +1 -1
- package/dist/charts/components/Area/AreaChart.d.ts +1 -1
- package/dist/charts/components/Area/AreaChart.js.map +1 -1
- package/dist/charts/components/Bar/BarChart.cjs +2 -2
- package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
- package/dist/charts/components/Bar/BarChart.d.ts +1 -1
- package/dist/charts/components/Bar/BarChart.js +2 -2
- package/dist/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/charts/components/ChartWrapper.cjs.map +1 -1
- package/dist/charts/components/ChartWrapper.js.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.d.ts +2 -2
- package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
- package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
- package/dist/charts/components/Donut/DonutChart.d.ts +1 -1
- package/dist/charts/components/Donut/DonutChart.js.map +1 -1
- package/dist/charts/components/LegacyDonut/ActiveShape.cjs +7 -5
- package/dist/charts/components/LegacyDonut/ActiveShape.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/ActiveShape.d.ts +6 -3
- package/dist/charts/components/LegacyDonut/ActiveShape.js +7 -5
- package/dist/charts/components/LegacyDonut/ActiveShape.js.map +1 -1
- package/dist/charts/components/LegacyDonut/CenteredLabel.cjs +1 -1
- package/dist/charts/components/LegacyDonut/CenteredLabel.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/CenteredLabel.js +1 -1
- package/dist/charts/components/LegacyDonut/CenteredLabel.js.map +1 -1
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs +119 -103
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.d.ts +13 -2
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.js +119 -103
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
- package/dist/charts/components/LegacyDonut/Legend.cjs +1 -1
- package/dist/charts/components/LegacyDonut/Legend.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/Legend.js +1 -1
- package/dist/charts/components/LegacyDonut/Legend.js.map +1 -1
- package/dist/charts/components/Legend.cjs +1 -1
- package/dist/charts/components/Legend.cjs.map +1 -1
- package/dist/charts/components/Legend.js +1 -1
- package/dist/charts/components/Legend.js.map +1 -1
- package/dist/charts/components/Line/LineChart.cjs.map +1 -1
- package/dist/charts/components/Line/LineChart.d.ts +3 -2
- package/dist/charts/components/Line/LineChart.js.map +1 -1
- package/dist/charts/components/Pie/PieChart.cjs +4 -4
- package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
- package/dist/charts/components/Pie/PieChart.js +4 -4
- package/dist/charts/components/Pie/PieChart.js.map +1 -1
- package/dist/charts/components/Pie/util.cjs.map +1 -1
- package/dist/charts/components/Pie/util.d.ts +2 -1
- package/dist/charts/components/Pie/util.js.map +1 -1
- package/dist/charts/components/Tooltip.cjs.map +1 -1
- package/dist/charts/components/Tooltip.d.ts +2 -3
- package/dist/charts/components/Tooltip.js.map +1 -1
- package/dist/charts/components/types.d.ts +9 -5
- package/dist/charts/components/useChartData.cjs +5 -3
- package/dist/charts/components/useChartData.cjs.map +1 -1
- package/dist/charts/components/useChartData.d.ts +6 -2
- package/dist/charts/components/useChartData.js +5 -3
- package/dist/charts/components/useChartData.js.map +1 -1
- package/dist/charts/utils/color.cjs +6 -10
- package/dist/charts/utils/color.cjs.map +1 -1
- package/dist/charts/utils/color.js +6 -10
- package/dist/charts/utils/color.js.map +1 -1
- package/dist/charts/utils/common.cjs +10 -10
- package/dist/charts/utils/common.cjs.map +1 -1
- package/dist/charts/utils/common.d.ts +5 -6
- package/dist/charts/utils/common.js +10 -10
- package/dist/charts/utils/common.js.map +1 -1
- package/dist/components/AlertDialog/Context.cjs.map +1 -1
- package/dist/components/AlertDialog/Context.d.ts +1 -1
- package/dist/components/AlertDialog/Context.js.map +1 -1
- package/dist/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/Combobox/Combobox.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Combobox/useCombobox.cjs +2 -4
- package/dist/components/Combobox/useCombobox.cjs.map +1 -1
- package/dist/components/Combobox/useCombobox.d.ts +1 -1
- package/dist/components/Combobox/useCombobox.js +2 -4
- package/dist/components/Combobox/useCombobox.js.map +1 -1
- package/dist/components/Datepicker/useDatepicker.cjs.map +1 -1
- package/dist/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/components/Dialog/Context.cjs.map +1 -1
- package/dist/components/Dialog/Context.d.ts +1 -1
- package/dist/components/Dialog/Context.js.map +1 -1
- package/dist/components/Dialog/components/Content.cjs.map +1 -1
- package/dist/components/Dialog/components/Content.js.map +1 -1
- package/dist/components/Drawer/components/Content.cjs +1 -1
- package/dist/components/Drawer/components/Content.cjs.map +1 -1
- package/dist/components/Drawer/components/Content.js +1 -1
- package/dist/components/Drawer/components/Content.js.map +1 -1
- package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
- package/dist/components/Drawer/useDrawerStack.js.map +1 -1
- package/dist/components/Hanger/Hanger.cjs.map +1 -1
- package/dist/components/Hanger/Hanger.js.map +1 -1
- package/dist/components/Header/Header.cjs +1 -1
- package/dist/components/Header/Header.cjs.map +1 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
- package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
- package/dist/components/Icon/Icon.cjs.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/Layout/components/Sidebar.cjs +2 -1
- package/dist/components/Layout/components/Sidebar.cjs.map +1 -1
- package/dist/components/Layout/components/Sidebar.js +2 -1
- package/dist/components/Layout/components/Sidebar.js.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
- package/dist/components/List/components/Toggle.cjs +0 -2
- package/dist/components/List/components/Toggle.cjs.map +1 -1
- package/dist/components/List/components/Toggle.js +0 -2
- package/dist/components/List/components/Toggle.js.map +1 -1
- package/dist/components/Listbox/Listbox.cjs +2 -5
- package/dist/components/Listbox/Listbox.cjs.map +1 -1
- package/dist/components/Listbox/Listbox.js +2 -5
- package/dist/components/Listbox/Listbox.js.map +1 -1
- package/dist/components/Listbox/useListbox.cjs +1 -1
- package/dist/components/Listbox/useListbox.cjs.map +1 -1
- package/dist/components/Listbox/useListbox.js +1 -1
- package/dist/components/Listbox/useListbox.js.map +1 -1
- package/dist/components/Listbox/useMultiListbox.cjs +1 -1
- package/dist/components/Listbox/useMultiListbox.cjs.map +1 -1
- package/dist/components/Listbox/useMultiListbox.js +1 -1
- package/dist/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/components/Listbox/util.cjs.map +1 -1
- package/dist/components/Listbox/util.js.map +1 -1
- package/dist/components/Menu/components/Content.cjs.map +1 -1
- package/dist/components/Menu/components/Content.js.map +1 -1
- package/dist/components/Menu/components/Item.cjs.map +1 -1
- package/dist/components/Menu/components/Item.d.ts +2 -2
- package/dist/components/Menu/components/Item.js.map +1 -1
- package/dist/components/Menu/components/Trigger.cjs +1 -5
- package/dist/components/Menu/components/Trigger.cjs.map +1 -1
- package/dist/components/Menu/components/Trigger.js +1 -5
- package/dist/components/Menu/components/Trigger.js.map +1 -1
- package/dist/components/Pagination/usePaginationShortcuts.cjs +0 -1
- package/dist/components/Pagination/usePaginationShortcuts.cjs.map +1 -1
- package/dist/components/Pagination/usePaginationShortcuts.js +0 -1
- package/dist/components/Pagination/usePaginationShortcuts.js.map +1 -1
- package/dist/components/Provider/Provider.cjs.map +1 -1
- package/dist/components/Provider/Provider.d.ts +1 -1
- package/dist/components/Provider/Provider.js.map +1 -1
- package/dist/components/SearchInput/SearchInput.cjs +0 -1
- package/dist/components/SearchInput/SearchInput.cjs.map +1 -1
- package/dist/components/SearchInput/SearchInput.js +0 -1
- package/dist/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.cjs +0 -1
- package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.js +0 -1
- package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/components/Select2/Select2.cjs +6 -7
- package/dist/components/Select2/Select2.cjs.map +1 -1
- package/dist/components/Select2/Select2.js +6 -7
- package/dist/components/Select2/Select2.js.map +1 -1
- package/dist/components/Select2/components/Search.cjs +0 -1
- package/dist/components/Select2/components/Search.cjs.map +1 -1
- package/dist/components/Select2/components/Search.js +0 -1
- package/dist/components/Select2/components/Search.js.map +1 -1
- package/dist/components/Select2/components/Trigger.cjs +1 -1
- package/dist/components/Select2/components/Trigger.cjs.map +1 -1
- package/dist/components/Select2/components/Trigger.js +1 -1
- package/dist/components/Select2/components/Trigger.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.cjs +4 -4
- package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.js +4 -4
- package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/components/Table3/features/useEditingState.cjs +1 -1
- package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
- package/dist/components/Table3/features/useEditingState.js +1 -1
- package/dist/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/components/Table3/types.d.ts +2 -2
- package/dist/components/Table3/useTable3.cjs +8 -6
- package/dist/components/Table3/useTable3.cjs.map +1 -1
- package/dist/components/Table3/useTable3.js +8 -6
- package/dist/components/Table3/useTable3.js.map +1 -1
- package/dist/components/Table3/util/editing.cjs +1 -1
- package/dist/components/Table3/util/editing.cjs.map +1 -1
- package/dist/components/Table3/util/editing.d.ts +1 -1
- package/dist/components/Table3/util/editing.js +1 -1
- package/dist/components/Table3/util/editing.js.map +1 -1
- package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
- package/dist/hooks/useBoundaryOverflowDetection.d.ts +1 -1
- package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
- package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/hooks/useControlled.cjs +6 -10
- package/dist/hooks/useControlled.cjs.map +1 -1
- package/dist/hooks/useControlled.js +6 -10
- package/dist/hooks/useControlled.js.map +1 -1
- package/dist/hooks/useIsFormControl.cjs.map +1 -1
- package/dist/hooks/useIsFormControl.d.ts +1 -1
- package/dist/hooks/useIsFormControl.js.map +1 -1
- package/dist/hooks/useMergedRef.cjs.map +1 -1
- package/dist/hooks/useMergedRef.js.map +1 -1
- package/dist/hooks/usePrevious.cjs.map +1 -1
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/primitives/Button.cjs.map +1 -1
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/Collection/components/Root.cjs +9 -16
- package/dist/primitives/Collection/components/Root.cjs.map +1 -1
- package/dist/primitives/Collection/components/Root.js +9 -16
- package/dist/primitives/Collection/components/Root.js.map +1 -1
- package/dist/primitives/Listbox2/components/Context.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Context.d.ts +1 -0
- package/dist/primitives/Listbox2/components/Context.js.map +1 -1
- package/dist/primitives/Listbox2/components/Option.cjs +8 -2
- package/dist/primitives/Listbox2/components/Option.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Option.js +8 -2
- package/dist/primitives/Listbox2/components/Option.js.map +1 -1
- package/dist/primitives/Listbox2/components/Root.cjs +3 -2
- package/dist/primitives/Listbox2/components/Root.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Root.js +3 -2
- package/dist/primitives/Listbox2/components/Root.js.map +1 -1
- package/dist/primitives/Sortable/components/Item.cjs +2 -4
- package/dist/primitives/Sortable/components/Item.cjs.map +1 -1
- package/dist/primitives/Sortable/components/Item.js +2 -4
- package/dist/primitives/Sortable/components/Item.js.map +1 -1
- package/dist/primitives/Table/Core/components/Body/Body.cjs +4 -4
- package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Body/Body.js +4 -4
- package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +22 -16
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js +22 -16
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/util.cjs +4 -3
- package/dist/primitives/Table/Core/components/Header/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/util.js +4 -3
- package/dist/primitives/Table/Core/components/Header/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +4 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +4 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRef.cjs +7 -0
- package/dist/primitives/Table/Core/features/useTableRef.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRef.js +7 -0
- package/dist/primitives/Table/Core/features/useTableRef.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.cjs +2 -2
- package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.js +2 -2
- package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs +2 -2
- package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js +2 -2
- package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs +2 -4
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.d.ts +2 -2
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js +2 -4
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/primitives/Table/types.cjs.map +1 -1
- package/dist/primitives/Table/types.d.ts +6 -0
- package/dist/primitives/Table/types.js.map +1 -1
- package/dist/primitives/Table/useTableDataLoader2.cjs +36 -3
- package/dist/primitives/Table/useTableDataLoader2.cjs.map +1 -1
- package/dist/primitives/Table/useTableDataLoader2.d.ts +2 -1
- package/dist/primitives/Table/useTableDataLoader2.js +36 -3
- package/dist/primitives/Table/useTableDataLoader2.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs +0 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.js +0 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs +0 -2
- package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowClick.js +0 -2
- package/dist/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs +0 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js +0 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs +10 -1
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -2
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js +10 -1
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.cjs +1 -5
- package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.js +1 -5
- package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +3 -3
- package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/filtering.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/filtering.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.cjs +1 -1
- package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.js +1 -1
- package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.cjs +3 -3
- package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.js +3 -3
- package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/dataTypes.cjs +4 -4
- package/dist/utils/dataTypes.cjs.map +1 -1
- package/dist/utils/dataTypes.d.ts +1 -1
- package/dist/utils/dataTypes.js +4 -4
- package/dist/utils/dataTypes.js.map +1 -1
- package/dist/utils/date.cjs +14 -16
- package/dist/utils/date.cjs.map +1 -1
- package/dist/utils/date.js +14 -16
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.cjs.map +1 -1
- package/dist/utils/debounce.d.ts +1 -1
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/device.cjs +1 -1
- package/dist/utils/device.cjs.map +1 -1
- package/dist/utils/device.js +1 -1
- package/dist/utils/device.js.map +1 -1
- package/dist/utils/dom.cjs +1 -1
- package/dist/utils/dom.cjs.map +1 -1
- package/dist/utils/dom.d.ts +2 -2
- package/dist/utils/dom.js +1 -1
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/hooks/useDraggable.cjs.map +1 -1
- package/dist/utils/hooks/useDraggable.d.ts +9 -1
- package/dist/utils/hooks/useDraggable.js.map +1 -1
- package/dist/utils/hooks/useListKeyboardNavigation.cjs +1 -1
- package/dist/utils/hooks/useListKeyboardNavigation.cjs.map +1 -1
- package/dist/utils/hooks/useListKeyboardNavigation.js +1 -1
- package/dist/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/utils/hooks/useListScrollTo.cjs.map +1 -1
- package/dist/utils/hooks/useListScrollTo.d.ts +4 -1
- package/dist/utils/hooks/useListScrollTo.js.map +1 -1
- package/dist/utils/hooks/useOnClickOutside.cjs.map +1 -1
- package/dist/utils/hooks/useOnClickOutside.d.ts +1 -1
- package/dist/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/utils/hooks/useTruncated.cjs.map +1 -1
- package/dist/utils/hooks/useTruncated.d.ts +2 -1
- package/dist/utils/hooks/useTruncated.js.map +1 -1
- package/dist/utils/mergeRefs.cjs.map +1 -1
- package/dist/utils/mergeRefs.d.ts +1 -1
- package/dist/utils/mergeRefs.js.map +1 -1
- package/dist/utils/storyutils.d.ts +1 -3
- package/package.json +4 -5
- package/plugins/tailwindcss-group-peer.js +1 -1
- package/scripts/stylelint-plugin/radius.mjs +2 -2
|
@@ -25,113 +25,129 @@ function _interopNamespaceDefault(e) {
|
|
|
25
25
|
}
|
|
26
26
|
const RechartsPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RechartsPrimitive);
|
|
27
27
|
const Segment = (_) => null;
|
|
28
|
-
const LegacyDonutChart =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}, [ref.current]);
|
|
43
|
-
const diameter = radius * 2;
|
|
44
|
-
const data = React.Children.map(children, (child) => ({
|
|
45
|
-
id: child.props.id,
|
|
46
|
-
color: child.props.color,
|
|
47
|
-
label: child.props.label,
|
|
48
|
-
value: child.props.value
|
|
49
|
-
}));
|
|
50
|
-
const total = data.reduce((accum, entry) => accum + entry.value, 0);
|
|
51
|
-
const handleLegendClick = (entry) => {
|
|
52
|
-
const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
|
|
53
|
-
const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
|
|
54
|
-
if (onClick && !isCurrentSegmentActive) {
|
|
55
|
-
onClick(entry);
|
|
56
|
-
}
|
|
57
|
-
setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
|
|
58
|
-
};
|
|
59
|
-
const handlePieClick = React.useCallback(
|
|
60
|
-
(pieId) => {
|
|
61
|
-
if (onClick && pieId !== void 0) {
|
|
62
|
-
const pieProps = data.find((item) => item.id === pieId);
|
|
63
|
-
onClick(pieProps);
|
|
28
|
+
const LegacyDonutChart = Object.assign(
|
|
29
|
+
function LegacyDonutChart2({ children, formatter, onClick, label }) {
|
|
30
|
+
const ref = React.useRef(null);
|
|
31
|
+
const [radius, setRadius] = React.useState(0);
|
|
32
|
+
const [hoveredItem, setHoveredItem] = React.useState([]);
|
|
33
|
+
const [selectedItem, setSelectedItem] = React.useState([]);
|
|
34
|
+
React.useEffect(() => {
|
|
35
|
+
if (ref.current) {
|
|
36
|
+
const rect = ref.current.parentElement?.getBoundingClientRect();
|
|
37
|
+
if (rect) {
|
|
38
|
+
const width = rect.width / 2;
|
|
39
|
+
const max = rect.height < width ? rect.height : width;
|
|
40
|
+
setRadius(max / 2);
|
|
41
|
+
}
|
|
64
42
|
}
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
43
|
+
}, [ref.current]);
|
|
44
|
+
const diameter = radius * 2;
|
|
45
|
+
const data = React.Children.map(children, (child) => ({
|
|
46
|
+
id: child.props.id,
|
|
47
|
+
color: child.props.color,
|
|
48
|
+
label: child.props.label,
|
|
49
|
+
value: child.props.value
|
|
50
|
+
}));
|
|
51
|
+
const total = data.reduce((accum, entry) => accum + entry.value, 0);
|
|
52
|
+
const handleLegendClick = (entry) => {
|
|
53
|
+
const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
|
|
54
|
+
const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
|
|
55
|
+
if (onClick && !isCurrentSegmentActive) {
|
|
56
|
+
onClick(entry);
|
|
73
57
|
}
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (hoveredItem.length > 0) {
|
|
85
|
-
return hoveredItem.map((itemId) => data.findIndex((element) => element.id === itemId));
|
|
86
|
-
}
|
|
87
|
-
return selectedItem.map((selectedItemId) => data.findIndex((element) => element.id === selectedItemId));
|
|
88
|
-
};
|
|
89
|
-
const content = () => {
|
|
90
|
-
const elements = React.Children.toArray(children).filter(
|
|
91
|
-
(child) => React.isValidElement(child)
|
|
58
|
+
setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
|
|
59
|
+
};
|
|
60
|
+
const handlePieClick = React.useCallback(
|
|
61
|
+
(pieId) => {
|
|
62
|
+
if (onClick && pieId !== void 0) {
|
|
63
|
+
const pieProps = data.find((item) => item.id === pieId);
|
|
64
|
+
onClick(pieProps);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
[onClick, data]
|
|
92
68
|
);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{
|
|
97
|
-
|
|
98
|
-
name: child.props.label,
|
|
99
|
-
fill: color.getThemeColor(child.props.color) ?? color.getThemeColor("blue-300")
|
|
69
|
+
const activeShapeColor = React.useMemo(() => {
|
|
70
|
+
const getSegmentColor = (item) => item.reduce((colors, itemId) => {
|
|
71
|
+
const visibleHoveredItem = data.find((dataItem) => dataItem.id === itemId);
|
|
72
|
+
if (visibleHoveredItem) {
|
|
73
|
+
colors[visibleHoveredItem.id] = visibleHoveredItem.color;
|
|
100
74
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
activeShape: /* @__PURE__ */ React.createElement(ActiveShape.ActiveShape, { pieColors: activeShapeColor, onClick: handlePieClick }),
|
|
110
|
-
data: data.length > 0 ? data : [],
|
|
111
|
-
dataKey: "value",
|
|
112
|
-
innerRadius: radius - util.HOVER_DONUT_WIDTH - util.DONUT_WIDTH,
|
|
113
|
-
onMouseEnter: (segment) => data.length > 0 && setHoveredItem([segment.id]),
|
|
114
|
-
onMouseLeave: () => setHoveredItem([]),
|
|
115
|
-
outerRadius: radius - util.HOVER_DONUT_WIDTH,
|
|
116
|
-
paddingAngle: 2.5,
|
|
117
|
-
stroke: "0",
|
|
118
|
-
rootTabIndex: -1
|
|
119
|
-
},
|
|
120
|
-
content()
|
|
121
|
-
)), /* @__PURE__ */ React.createElement(
|
|
122
|
-
Legend.Legend,
|
|
123
|
-
{
|
|
124
|
-
data,
|
|
125
|
-
onClick: handleLegendClick,
|
|
126
|
-
total,
|
|
127
|
-
setHoveredItem,
|
|
128
|
-
label,
|
|
129
|
-
hoveredItem,
|
|
130
|
-
selectedItem,
|
|
131
|
-
formatter
|
|
75
|
+
return colors;
|
|
76
|
+
}, {});
|
|
77
|
+
const hoveredSegmentColor = getSegmentColor(hoveredItem);
|
|
78
|
+
const selectedSegmentColor = getSegmentColor(selectedItem);
|
|
79
|
+
return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;
|
|
80
|
+
}, [hoveredItem, selectedItem]);
|
|
81
|
+
if (ref.current && !radius) {
|
|
82
|
+
return null;
|
|
132
83
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
84
|
+
const content = () => {
|
|
85
|
+
const elements = React.Children.toArray(children).filter(
|
|
86
|
+
(child) => React.isValidElement(child)
|
|
87
|
+
);
|
|
88
|
+
return elements.length > 0 ? elements.map((child, index) => {
|
|
89
|
+
return /* @__PURE__ */ React.createElement(
|
|
90
|
+
RechartsPrimitive__namespace.Cell,
|
|
91
|
+
{
|
|
92
|
+
key: `cell-${index}`,
|
|
93
|
+
name: child.props.label,
|
|
94
|
+
fill: color.getThemeColor(child.props.color) ?? color.getThemeColor("blue-300")
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}) : /* @__PURE__ */ React.createElement(RechartsPrimitive__namespace.Cell, { key: "empty-chart", name: "", fill: color.getThemeColor("grey-200") });
|
|
98
|
+
};
|
|
99
|
+
return /* @__PURE__ */ React.createElement("div", { className: "relative flex h-full w-full", ref }, /* @__PURE__ */ React.createElement(CenteredLabel.CenteredLabel, { radius, label, total, formatter }), /* @__PURE__ */ React.createElement(
|
|
100
|
+
RechartsPrimitive__namespace.PieChart,
|
|
101
|
+
{
|
|
102
|
+
data,
|
|
103
|
+
height: diameter,
|
|
104
|
+
width: diameter,
|
|
105
|
+
style: { transform: "rotate(90deg) scale(-1,1)" }
|
|
106
|
+
},
|
|
107
|
+
/* @__PURE__ */ React.createElement(
|
|
108
|
+
RechartsPrimitive__namespace.Pie,
|
|
109
|
+
{
|
|
110
|
+
isAnimationActive: false,
|
|
111
|
+
shape: (sectorProps) => /* @__PURE__ */ React.createElement(
|
|
112
|
+
ActiveShape.ActiveShape,
|
|
113
|
+
{
|
|
114
|
+
...sectorProps,
|
|
115
|
+
activeColorById: activeShapeColor,
|
|
116
|
+
onClick: onClick ? handlePieClick : void 0
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
data: data.length > 0 ? data : [],
|
|
120
|
+
dataKey: "value",
|
|
121
|
+
innerRadius: radius - util.HOVER_DONUT_WIDTH - util.DONUT_WIDTH,
|
|
122
|
+
onMouseEnter: (segment) => {
|
|
123
|
+
const id = segment.payload?.id;
|
|
124
|
+
if (data.length > 0 && id !== void 0) {
|
|
125
|
+
setHoveredItem([id]);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
onMouseLeave: () => setHoveredItem([]),
|
|
129
|
+
outerRadius: radius - util.HOVER_DONUT_WIDTH,
|
|
130
|
+
paddingAngle: 2.5,
|
|
131
|
+
stroke: "0",
|
|
132
|
+
rootTabIndex: -1
|
|
133
|
+
},
|
|
134
|
+
content()
|
|
135
|
+
)
|
|
136
|
+
), /* @__PURE__ */ React.createElement(
|
|
137
|
+
Legend.Legend,
|
|
138
|
+
{
|
|
139
|
+
data,
|
|
140
|
+
onClick: handleLegendClick,
|
|
141
|
+
total,
|
|
142
|
+
setHoveredItem,
|
|
143
|
+
label,
|
|
144
|
+
hoveredItem,
|
|
145
|
+
selectedItem,
|
|
146
|
+
formatter
|
|
147
|
+
}
|
|
148
|
+
));
|
|
149
|
+
},
|
|
150
|
+
{ Segment }
|
|
151
|
+
);
|
|
136
152
|
exports.LegacyDonutChart = LegacyDonutChart;
|
|
137
153
|
//# sourceMappingURL=LegacyDonutChart.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyDonutChart.cjs","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\nexport type LegacyDonutSegmentIds = string[];\n\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\nexport const LegacyDonutChart = function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n const diameter = radius * 2; // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => data.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => data.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart data={data} height={diameter} width={diameter} style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH} // offset the 12px wider hover state, and then make the donut 16px wide\n onMouseEnter={(segment: LegacyDonutChartSegmentProps) => data.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n};\n\nLegacyDonutChart.Segment = Segment;\n"],"names":["LegacyDonutChart","Recharts","getThemeColor","CenteredLabel","ActiveShape","HOVER_DONUT_WIDTH","DONUT_WIDTH","Legend"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LegacyDonutChart.cjs","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\n/**\n * @deprecated\n */\nexport type LegacyDonutSegmentIds = string[];\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\n/**\n * @deprecated Use DonutChart component instead\n */\nexport const LegacyDonutChart = Object.assign(\n function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const diameter = radius * 2;\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart\n data={data}\n height={diameter}\n width={diameter}\n style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n shape={sectorProps => (\n <ActiveShape\n {...sectorProps}\n activeColorById={activeShapeColor}\n onClick={onClick ? handlePieClick : undefined}\n />\n )}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n // offset the 12px wider hover state, and then make the donut 16px wide\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH}\n onMouseEnter={segment => {\n const id = segment.payload?.id;\n\n if (data.length > 0 && id !== undefined) {\n setHoveredItem([id]);\n }\n }}\n onMouseLeave={() => setHoveredItem([])}\n // offset the 12px wide hover state\n outerRadius={radius - HOVER_DONUT_WIDTH}\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n },\n { Segment }\n);\n"],"names":["LegacyDonutChart","Recharts","getThemeColor","CenteredLabel","ActiveShape","HOVER_DONUT_WIDTH","DONUT_WIDTH","Legend"],"mappings":"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"}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { Color } from '../../utils/color';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated
|
|
5
|
+
*/
|
|
3
6
|
export type LegacyDonutChartSegmentProps = {
|
|
4
7
|
color: Color;
|
|
5
8
|
id: string;
|
|
6
9
|
label: string;
|
|
7
10
|
value: number;
|
|
8
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated
|
|
14
|
+
*/
|
|
9
15
|
export type LegacyDonutSegmentIds = string[];
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated
|
|
18
|
+
*/
|
|
10
19
|
export type LegacyDonutChartProps = {
|
|
11
20
|
children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];
|
|
12
21
|
formatter?: (value: number) => string;
|
|
13
22
|
onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;
|
|
14
23
|
label: string;
|
|
15
24
|
};
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use DonutChart component instead
|
|
27
|
+
*/
|
|
28
|
+
export declare const LegacyDonutChart: (({ children, formatter, onClick, label }: LegacyDonutChartProps) => React.JSX.Element | null) & {
|
|
18
29
|
Segment: (_: LegacyDonutChartSegmentProps) => null;
|
|
19
30
|
};
|
|
@@ -6,114 +6,130 @@ import { CenteredLabel } from "./CenteredLabel.js";
|
|
|
6
6
|
import { Legend } from "./Legend.js";
|
|
7
7
|
import { HOVER_DONUT_WIDTH, DONUT_WIDTH } from "./util.js";
|
|
8
8
|
const Segment = (_) => null;
|
|
9
|
-
const LegacyDonutChart =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, [ref.current]);
|
|
24
|
-
const diameter = radius * 2;
|
|
25
|
-
const data = React__default.Children.map(children, (child) => ({
|
|
26
|
-
id: child.props.id,
|
|
27
|
-
color: child.props.color,
|
|
28
|
-
label: child.props.label,
|
|
29
|
-
value: child.props.value
|
|
30
|
-
}));
|
|
31
|
-
const total = data.reduce((accum, entry) => accum + entry.value, 0);
|
|
32
|
-
const handleLegendClick = (entry) => {
|
|
33
|
-
const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
|
|
34
|
-
const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
|
|
35
|
-
if (onClick && !isCurrentSegmentActive) {
|
|
36
|
-
onClick(entry);
|
|
37
|
-
}
|
|
38
|
-
setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
|
|
39
|
-
};
|
|
40
|
-
const handlePieClick = React__default.useCallback(
|
|
41
|
-
(pieId) => {
|
|
42
|
-
if (onClick && pieId !== void 0) {
|
|
43
|
-
const pieProps = data.find((item) => item.id === pieId);
|
|
44
|
-
onClick(pieProps);
|
|
9
|
+
const LegacyDonutChart = Object.assign(
|
|
10
|
+
function LegacyDonutChart2({ children, formatter, onClick, label }) {
|
|
11
|
+
const ref = React__default.useRef(null);
|
|
12
|
+
const [radius, setRadius] = React__default.useState(0);
|
|
13
|
+
const [hoveredItem, setHoveredItem] = React__default.useState([]);
|
|
14
|
+
const [selectedItem, setSelectedItem] = React__default.useState([]);
|
|
15
|
+
React__default.useEffect(() => {
|
|
16
|
+
if (ref.current) {
|
|
17
|
+
const rect = ref.current.parentElement?.getBoundingClientRect();
|
|
18
|
+
if (rect) {
|
|
19
|
+
const width = rect.width / 2;
|
|
20
|
+
const max = rect.height < width ? rect.height : width;
|
|
21
|
+
setRadius(max / 2);
|
|
22
|
+
}
|
|
45
23
|
}
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
24
|
+
}, [ref.current]);
|
|
25
|
+
const diameter = radius * 2;
|
|
26
|
+
const data = React__default.Children.map(children, (child) => ({
|
|
27
|
+
id: child.props.id,
|
|
28
|
+
color: child.props.color,
|
|
29
|
+
label: child.props.label,
|
|
30
|
+
value: child.props.value
|
|
31
|
+
}));
|
|
32
|
+
const total = data.reduce((accum, entry) => accum + entry.value, 0);
|
|
33
|
+
const handleLegendClick = (entry) => {
|
|
34
|
+
const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
|
|
35
|
+
const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
|
|
36
|
+
if (onClick && !isCurrentSegmentActive) {
|
|
37
|
+
onClick(entry);
|
|
54
38
|
}
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (hoveredItem.length > 0) {
|
|
66
|
-
return hoveredItem.map((itemId) => data.findIndex((element) => element.id === itemId));
|
|
67
|
-
}
|
|
68
|
-
return selectedItem.map((selectedItemId) => data.findIndex((element) => element.id === selectedItemId));
|
|
69
|
-
};
|
|
70
|
-
const content = () => {
|
|
71
|
-
const elements = React__default.Children.toArray(children).filter(
|
|
72
|
-
(child) => React__default.isValidElement(child)
|
|
39
|
+
setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
|
|
40
|
+
};
|
|
41
|
+
const handlePieClick = React__default.useCallback(
|
|
42
|
+
(pieId) => {
|
|
43
|
+
if (onClick && pieId !== void 0) {
|
|
44
|
+
const pieProps = data.find((item) => item.id === pieId);
|
|
45
|
+
onClick(pieProps);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
[onClick, data]
|
|
73
49
|
);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
name: child.props.label,
|
|
80
|
-
fill: getThemeColor(child.props.color) ?? getThemeColor("blue-300")
|
|
50
|
+
const activeShapeColor = React__default.useMemo(() => {
|
|
51
|
+
const getSegmentColor = (item) => item.reduce((colors, itemId) => {
|
|
52
|
+
const visibleHoveredItem = data.find((dataItem) => dataItem.id === itemId);
|
|
53
|
+
if (visibleHoveredItem) {
|
|
54
|
+
colors[visibleHoveredItem.id] = visibleHoveredItem.color;
|
|
81
55
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
activeShape: /* @__PURE__ */ React__default.createElement(ActiveShape, { pieColors: activeShapeColor, onClick: handlePieClick }),
|
|
91
|
-
data: data.length > 0 ? data : [],
|
|
92
|
-
dataKey: "value",
|
|
93
|
-
innerRadius: radius - HOVER_DONUT_WIDTH - DONUT_WIDTH,
|
|
94
|
-
onMouseEnter: (segment) => data.length > 0 && setHoveredItem([segment.id]),
|
|
95
|
-
onMouseLeave: () => setHoveredItem([]),
|
|
96
|
-
outerRadius: radius - HOVER_DONUT_WIDTH,
|
|
97
|
-
paddingAngle: 2.5,
|
|
98
|
-
stroke: "0",
|
|
99
|
-
rootTabIndex: -1
|
|
100
|
-
},
|
|
101
|
-
content()
|
|
102
|
-
)), /* @__PURE__ */ React__default.createElement(
|
|
103
|
-
Legend,
|
|
104
|
-
{
|
|
105
|
-
data,
|
|
106
|
-
onClick: handleLegendClick,
|
|
107
|
-
total,
|
|
108
|
-
setHoveredItem,
|
|
109
|
-
label,
|
|
110
|
-
hoveredItem,
|
|
111
|
-
selectedItem,
|
|
112
|
-
formatter
|
|
56
|
+
return colors;
|
|
57
|
+
}, {});
|
|
58
|
+
const hoveredSegmentColor = getSegmentColor(hoveredItem);
|
|
59
|
+
const selectedSegmentColor = getSegmentColor(selectedItem);
|
|
60
|
+
return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;
|
|
61
|
+
}, [hoveredItem, selectedItem]);
|
|
62
|
+
if (ref.current && !radius) {
|
|
63
|
+
return null;
|
|
113
64
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
65
|
+
const content = () => {
|
|
66
|
+
const elements = React__default.Children.toArray(children).filter(
|
|
67
|
+
(child) => React__default.isValidElement(child)
|
|
68
|
+
);
|
|
69
|
+
return elements.length > 0 ? elements.map((child, index) => {
|
|
70
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
71
|
+
RechartsPrimitive.Cell,
|
|
72
|
+
{
|
|
73
|
+
key: `cell-${index}`,
|
|
74
|
+
name: child.props.label,
|
|
75
|
+
fill: getThemeColor(child.props.color) ?? getThemeColor("blue-300")
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}) : /* @__PURE__ */ React__default.createElement(RechartsPrimitive.Cell, { key: "empty-chart", name: "", fill: getThemeColor("grey-200") });
|
|
79
|
+
};
|
|
80
|
+
return /* @__PURE__ */ React__default.createElement("div", { className: "relative flex h-full w-full", ref }, /* @__PURE__ */ React__default.createElement(CenteredLabel, { radius, label, total, formatter }), /* @__PURE__ */ React__default.createElement(
|
|
81
|
+
RechartsPrimitive.PieChart,
|
|
82
|
+
{
|
|
83
|
+
data,
|
|
84
|
+
height: diameter,
|
|
85
|
+
width: diameter,
|
|
86
|
+
style: { transform: "rotate(90deg) scale(-1,1)" }
|
|
87
|
+
},
|
|
88
|
+
/* @__PURE__ */ React__default.createElement(
|
|
89
|
+
RechartsPrimitive.Pie,
|
|
90
|
+
{
|
|
91
|
+
isAnimationActive: false,
|
|
92
|
+
shape: (sectorProps) => /* @__PURE__ */ React__default.createElement(
|
|
93
|
+
ActiveShape,
|
|
94
|
+
{
|
|
95
|
+
...sectorProps,
|
|
96
|
+
activeColorById: activeShapeColor,
|
|
97
|
+
onClick: onClick ? handlePieClick : void 0
|
|
98
|
+
}
|
|
99
|
+
),
|
|
100
|
+
data: data.length > 0 ? data : [],
|
|
101
|
+
dataKey: "value",
|
|
102
|
+
innerRadius: radius - HOVER_DONUT_WIDTH - DONUT_WIDTH,
|
|
103
|
+
onMouseEnter: (segment) => {
|
|
104
|
+
const id = segment.payload?.id;
|
|
105
|
+
if (data.length > 0 && id !== void 0) {
|
|
106
|
+
setHoveredItem([id]);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
onMouseLeave: () => setHoveredItem([]),
|
|
110
|
+
outerRadius: radius - HOVER_DONUT_WIDTH,
|
|
111
|
+
paddingAngle: 2.5,
|
|
112
|
+
stroke: "0",
|
|
113
|
+
rootTabIndex: -1
|
|
114
|
+
},
|
|
115
|
+
content()
|
|
116
|
+
)
|
|
117
|
+
), /* @__PURE__ */ React__default.createElement(
|
|
118
|
+
Legend,
|
|
119
|
+
{
|
|
120
|
+
data,
|
|
121
|
+
onClick: handleLegendClick,
|
|
122
|
+
total,
|
|
123
|
+
setHoveredItem,
|
|
124
|
+
label,
|
|
125
|
+
hoveredItem,
|
|
126
|
+
selectedItem,
|
|
127
|
+
formatter
|
|
128
|
+
}
|
|
129
|
+
));
|
|
130
|
+
},
|
|
131
|
+
{ Segment }
|
|
132
|
+
);
|
|
117
133
|
export {
|
|
118
134
|
LegacyDonutChart
|
|
119
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyDonutChart.js","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\nexport type LegacyDonutSegmentIds = string[];\n\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\nexport const LegacyDonutChart = function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n const diameter = radius * 2; // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => data.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => data.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart data={data} height={diameter} width={diameter} style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH} // offset the 12px wider hover state, and then make the donut 16px wide\n onMouseEnter={(segment: LegacyDonutChartSegmentProps) => data.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n};\n\nLegacyDonutChart.Segment = Segment;\n"],"names":["LegacyDonutChart","React","Recharts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LegacyDonutChart.js","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\n/**\n * @deprecated\n */\nexport type LegacyDonutSegmentIds = string[];\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\n/**\n * @deprecated Use DonutChart component instead\n */\nexport const LegacyDonutChart = Object.assign(\n function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const diameter = radius * 2;\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart\n data={data}\n height={diameter}\n width={diameter}\n style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n shape={sectorProps => (\n <ActiveShape\n {...sectorProps}\n activeColorById={activeShapeColor}\n onClick={onClick ? handlePieClick : undefined}\n />\n )}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n // offset the 12px wider hover state, and then make the donut 16px wide\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH}\n onMouseEnter={segment => {\n const id = segment.payload?.id;\n\n if (data.length > 0 && id !== undefined) {\n setHoveredItem([id]);\n }\n }}\n onMouseLeave={() => setHoveredItem([])}\n // offset the 12px wide hover state\n outerRadius={radius - HOVER_DONUT_WIDTH}\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n },\n { Segment }\n);\n"],"names":["LegacyDonutChart","React","Recharts"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ const Legend = ({ hoveredItem, selectedItem, data, onClick, setHoveredItem, form
|
|
|
28
28
|
/* @__PURE__ */ React.createElement("div", null, itemData.label, /* @__PURE__ */ React.createElement("span", { className: "-mt-1 flex w-full text-lg font-bold" }, formatter ? formatter(itemData.value) : itemData.value))
|
|
29
29
|
);
|
|
30
30
|
};
|
|
31
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex-grow pl-4" }, /* @__PURE__ */ React.createElement("ul", { className: "mb-0 ml-0 mt-4 flex flex-col justify-center gap-1 space-y-1" }, renderLegendItem(null), data.map(renderLegendItem)));
|
|
31
|
+
return /* @__PURE__ */ React.createElement("div", { className: "flex-grow pl-4" }, /* @__PURE__ */ React.createElement("ul", { className: "mb-0 ml-0 mt-4 flex flex-col justify-center gap-1 space-y-1" }, renderLegendItem(null), data.map((item) => renderLegendItem(item))));
|
|
32
32
|
};
|
|
33
33
|
exports.Legend = Legend;
|
|
34
34
|
//# sourceMappingURL=Legend.cjs.map
|