@economic/taco 2.49.0-server.4 → 2.49.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +0 -1
- package/dist/components/Table3/features/useTableEditing.d.ts +2 -2
- package/dist/components/Table3/types.d.ts +1 -1
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +17 -17
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js +24 -32
- package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js +61 -84
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js +15 -16
- package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js +13 -12
- package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js +68 -104
- package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js +29 -38
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/util.js +2 -2
- package/dist/esm/packages/taco/src/charts/components/Donut/util.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Legend.js +37 -45
- package/dist/esm/packages/taco/src/charts/components/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js +24 -32
- package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js +3 -5
- package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Tooltip.js +25 -26
- package/dist/esm/packages/taco/src/charts/components/Tooltip.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/utils/color.js +12 -13
- package/dist/esm/packages/taco/src/charts/utils/color.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/utils/common.js +26 -39
- package/dist/esm/packages/taco/src/charts/utils/common.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js +31 -30
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Alert/Alert.js +9 -7
- package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js +13 -14
- package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/Context.js +2 -2
- package/dist/esm/packages/taco/src/components/AlertDialog/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js +9 -10
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js +4 -4
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js +6 -5
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js +2 -2
- package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Badge/Badge.js +25 -21
- package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
- package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js +14 -12
- package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Banner/Banner.js +10 -7
- package/dist/esm/packages/taco/src/components/Banner/Banner.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Banner/util.js +3 -3
- package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Button/Button.js +28 -26
- package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Button/util.js +24 -25
- package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +71 -75
- package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Card/Card.js +15 -14
- package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +22 -24
- package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/Combobox.js +23 -21
- package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +64 -76
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +57 -60
- package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +28 -27
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/Context.js +4 -4
- package/dist/esm/packages/taco/src/components/Dialog/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/Dialog.js +39 -54
- package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +38 -36
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/DialogDrawer.js +3 -3
- package/dist/esm/packages/taco/src/components/Dialog/components/DialogDrawer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Extra.js +2 -2
- package/dist/esm/packages/taco/src/components/Dialog/components/Extra.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js +6 -5
- package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/util.js +3 -7
- package/dist/esm/packages/taco/src/components/Dialog/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/Context.js +5 -5
- package/dist/esm/packages/taco/src/components/Drawer/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/Drawer.js +51 -61
- package/dist/esm/packages/taco/src/components/Drawer/Drawer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +145 -134
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Trigger.js +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/util.js +5 -5
- package/dist/esm/packages/taco/src/components/Drawer/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Field/Field.js +12 -14
- package/dist/esm/packages/taco/src/components/Field/Field.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Form/Form.js +6 -7
- package/dist/esm/packages/taco/src/components/Form/Form.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Group/Group.js +7 -9
- package/dist/esm/packages/taco/src/components/Group/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +36 -37
- package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/Header.js +2 -2
- package/dist/esm/packages/taco/src/components/Header/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js +10 -14
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js +4 -5
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js +9 -7
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js +9 -9
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +46 -66
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Button.js +8 -12
- package/dist/esm/packages/taco/src/components/Header/components/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Link.js +18 -22
- package/dist/esm/packages/taco/src/components/Header/components/Link.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Logo.js +4 -4
- package/dist/esm/packages/taco/src/components/Header/components/Logo.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js +2 -2
- package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +9 -10
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/SecondaryNavigation.js +2 -2
- package/dist/esm/packages/taco/src/components/Header/components/SecondaryNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js +7 -5
- package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js.map +1 -1
- package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js +1 -1
- package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Icon/Icon.js +7 -7
- package/dist/esm/packages/taco/src/components/Icon/Icon.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Icon/components/index.js +4 -4
- package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
- package/dist/esm/packages/taco/src/components/IconButton/IconButton.js +23 -22
- package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Input/Input.js +44 -45
- package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Input/util.js +5 -8
- package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/Layout.js +5 -7
- package/dist/esm/packages/taco/src/components/Layout/Layout.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Content.js +2 -2
- package/dist/esm/packages/taco/src/components/Layout/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Context.js +2 -4
- package/dist/esm/packages/taco/src/components/Layout/components/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Page.js +2 -2
- package/dist/esm/packages/taco/src/components/Layout/components/Page.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js +27 -34
- package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Layout/components/Top.js +6 -9
- package/dist/esm/packages/taco/src/components/Layout/components/Top.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Button.js +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Collapsible.js +7 -10
- package/dist/esm/packages/taco/src/components/List/components/Collapsible.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Group.js +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Item.js +13 -15
- package/dist/esm/packages/taco/src/components/List/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Link.js +3 -3
- package/dist/esm/packages/taco/src/components/List/components/Link.js.map +1 -1
- package/dist/esm/packages/taco/src/components/List/components/Toggle.js +27 -29
- package/dist/esm/packages/taco/src/components/List/components/Toggle.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/Listbox.js +26 -21
- package/dist/esm/packages/taco/src/components/Listbox/Listbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +70 -82
- package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useListbox.js +51 -56
- package/dist/esm/packages/taco/src/components/Listbox/useListbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +65 -83
- package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js +10 -9
- package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/util.js +48 -78
- package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Context.js +2 -2
- package/dist/esm/packages/taco/src/components/Menu/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Menu.js +26 -42
- package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js +8 -8
- package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +22 -28
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Header.js +3 -3
- package/dist/esm/packages/taco/src/components/Menu/components/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js +32 -32
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Link.js +10 -10
- package/dist/esm/packages/taco/src/components/Menu/components/Link.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js +16 -15
- package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Separator.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Separator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js +7 -7
- package/dist/esm/packages/taco/src/components/Menu/components/SubMenu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js +5 -5
- package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js +6 -6
- package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation/Navigation.js +36 -41
- package/dist/esm/packages/taco/src/components/Navigation/Navigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/Navigation2.js +6 -6
- package/dist/esm/packages/taco/src/components/Navigation2/Navigation2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/components/Content.js +6 -6
- package/dist/esm/packages/taco/src/components/Navigation2/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/components/Group.js +11 -14
- package/dist/esm/packages/taco/src/components/Navigation2/components/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js +24 -31
- package/dist/esm/packages/taco/src/components/Navigation2/components/Link.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js +7 -7
- package/dist/esm/packages/taco/src/components/Navigation2/components/Section.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Navigation2/components/util.js +7 -9
- package/dist/esm/packages/taco/src/components/Navigation2/components/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js +51 -48
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js +23 -26
- package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Pagination/Pagination.js +39 -53
- package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Pagination/usePagination.js +7 -17
- package/dist/esm/packages/taco/src/components/Pagination/usePagination.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Pagination/usePaginationShortcuts.js +9 -8
- package/dist/esm/packages/taco/src/components/Pagination/usePaginationShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Popover/Popover.js +43 -45
- package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Popover/Primitives.js +1 -1
- package/dist/esm/packages/taco/src/components/Popover/Primitives.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Popover/util.js +1 -3
- package/dist/esm/packages/taco/src/components/Popover/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Progress/Progress.js +11 -13
- package/dist/esm/packages/taco/src/components/Progress/Progress.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +12 -13
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Provider.js +8 -8
- package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js +47 -54
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/util.js +1 -7
- package/dist/esm/packages/taco/src/components/RadioGroup/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/Report.js +5 -7
- package/dist/esm/packages/taco/src/components/Report/Report.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/useReport.js +1 -1
- package/dist/esm/packages/taco/src/components/Report/useReport.js.map +1 -1
- package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js +13 -17
- package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +11 -11
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +39 -44
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select/Select.js +31 -28
- package/dist/esm/packages/taco/src/components/Select/Select.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select/useSelect.js +70 -79
- package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +121 -154
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Collection.js +4 -2
- package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Context.js +2 -4
- package/dist/esm/packages/taco/src/components/Select2/components/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js +41 -45
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +129 -145
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Group.js +8 -8
- package/dist/esm/packages/taco/src/components/Select2/components/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +30 -29
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js +10 -9
- package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Title.js +2 -2
- package/dist/esm/packages/taco/src/components/Select2/components/Title.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +128 -136
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +23 -32
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js +6 -13
- package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +13 -16
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Spinner/Spinner.js +12 -17
- package/dist/esm/packages/taco/src/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Switch/Switch.js +14 -14
- package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js +23 -28
- package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/PaginatedTable.js +3 -7
- package/dist/esm/packages/taco/src/components/Table/components/PaginatedTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/Table.js +18 -22
- package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +92 -100
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +118 -136
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowDraggable.js +55 -55
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowEditing.js +41 -35
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js +71 -77
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useRowCreation.js +30 -56
- package/dist/esm/packages/taco/src/components/Table/hooks/useRowCreation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js +142 -151
- package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js +20 -22
- package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js +12 -9
- package/dist/esm/packages/taco/src/components/Table/util/renderColumn.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/renderRow.js +41 -41
- package/dist/esm/packages/taco/src/components/Table/util/renderRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js +14 -16
- package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js +26 -32
- package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/util.js +30 -37
- package/dist/esm/packages/taco/src/components/Table/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +10 -13
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Cell.js +14 -13
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Cell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +23 -21
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js +17 -20
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +75 -71
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingDisplayCell.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/util.js +20 -19
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js +25 -26
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +41 -48
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js +8 -7
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +18 -18
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js +10 -7
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +36 -38
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js +15 -15
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js +11 -8
- package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +208 -167
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +50 -63
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +16 -18
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js +19 -25
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js +35 -29
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tabs/Tabs.js +35 -34
- package/dist/esm/packages/taco/src/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tag/Tag.js +12 -12
- package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Textarea/Textarea.js +11 -8
- package/dist/esm/packages/taco/src/components/Textarea/Textarea.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Toast/Toast.js +20 -19
- package/dist/esm/packages/taco/src/components/Toast/Toast.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Toast/Toaster.js +96 -117
- package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Toast/util.js +4 -6
- package/dist/esm/packages/taco/src/components/Toast/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js +9 -10
- package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tour/Tour.js +46 -49
- package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Treeview/Treeview.js +27 -33
- package/dist/esm/packages/taco/src/components/Treeview/Treeview.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js +13 -15
- package/dist/esm/packages/taco/src/components/Truncate/Truncate.js.map +1 -1
- package/dist/esm/packages/taco/src/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/esm/packages/taco/src/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useBoundaryOverflowDetection.js +6 -11
- package/dist/esm/packages/taco/src/hooks/useBoundaryOverflowDetection.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js +13 -19
- package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +4 -4
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useId.js +2 -4
- package/dist/esm/packages/taco/src/hooks/useId.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js +18 -20
- package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIsFormControl.js +5 -7
- package/dist/esm/packages/taco/src/hooks/useIsFormControl.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIsHoverStatePaused.js +5 -9
- package/dist/esm/packages/taco/src/hooks/useIsHoverStatePaused.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIsLargeScreen.js +1 -3
- package/dist/esm/packages/taco/src/hooks/useIsLargeScreen.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +2 -2
- package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +22 -24
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useMatchMedia.js +6 -13
- package/dist/esm/packages/taco/src/hooks/useMatchMedia.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useMergedRef.js +3 -3
- package/dist/esm/packages/taco/src/hooks/useMergedRef.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/usePrevious.js +2 -2
- package/dist/esm/packages/taco/src/hooks/usePrevious.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +14 -14
- package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +13 -16
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +49 -53
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js +2 -4
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js +5 -9
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js +18 -16
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js +40 -47
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js +10 -9
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js +20 -22
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js +27 -24
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/List.js +10 -11
- package/dist/esm/packages/taco/src/primitives/Sortable/components/List.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +19 -22
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/Body.js +22 -25
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/Body.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +7 -7
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/util.js +14 -30
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js +19 -18
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +34 -34
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/Cell.js +12 -10
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/Cell.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js +18 -19
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js +40 -42
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js +7 -5
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +24 -19
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +55 -56
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +23 -27
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +16 -13
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js +87 -86
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Goto.js +11 -14
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Goto.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +58 -85
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js +20 -18
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/SortIndicator.js +3 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/SortIndicator.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/util.js +6 -11
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +49 -58
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +32 -28
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +30 -35
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/Toolbar.js +11 -11
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +22 -23
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +39 -54
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +37 -39
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +16 -20
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js +15 -16
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +41 -50
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js +9 -13
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +51 -57
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js +67 -71
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +37 -40
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +44 -64
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +51 -62
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +6 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRef.js +5 -13
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRef.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +74 -90
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js +15 -15
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js +41 -31
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js +30 -31
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/listeners/useTableRowActiveListener.js +3 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +15 -14
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/util/rows.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/util/rows.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +38 -44
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +56 -64
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnFreezing.js +6 -11
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnOrdering.js +2 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableColumnOrdering.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFontSize.js +5 -15
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFontSize.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFooter.js +2 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableFooter.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTablePrinting.js +16 -26
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTablePrinting.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActions.js +3 -9
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActions.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js +23 -42
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowClick.js +6 -9
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrag.js +4 -9
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrag.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrop.js +2 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowDrop.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +3 -9
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGoto.js +2 -5
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGoto.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGroups.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowGroups.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowHeight.js +5 -15
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowHeight.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js +9 -14
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js +13 -25
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +26 -47
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSettings.js +24 -34
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSettings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js +6 -7
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js +3 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +16 -20
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +4 -6
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +8 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +6 -6
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js +6 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js +17 -17
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSortingListener.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSortingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +56 -56
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +30 -59
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +8 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js +19 -33
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +11 -11
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +20 -24
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js +7 -6
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/settings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +107 -139
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js +1 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -1
- package/dist/esm/packages/taco/src/types.js +1 -1
- package/dist/esm/packages/taco/src/types.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/aria.js +2 -2
- package/dist/esm/packages/taco/src/utils/aria.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/date.js +23 -47
- package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/debounce.js +4 -10
- package/dist/esm/packages/taco/src/utils/debounce.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/device.js +2 -4
- package/dist/esm/packages/taco/src/utils/device.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/dom.js +23 -29
- package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js +38 -40
- package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js +7 -9
- package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js +9 -20
- package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js +9 -9
- package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js +6 -8
- package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useTimer.js +11 -16
- package/dist/esm/packages/taco/src/utils/hooks/useTimer.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js +6 -11
- package/dist/esm/packages/taco/src/utils/hooks/useTruncated.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/input.js +7 -10
- package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +5 -8
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/mergeRefs.js +2 -2
- package/dist/esm/packages/taco/src/utils/mergeRefs.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/tailwind.js +5 -5
- package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
- package/dist/esm/packages/taco/tailwind.colors.js +1 -1
- package/dist/esm/packages/taco/tailwind.colors.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.d.ts +1 -1
- package/dist/taco.cjs.development.js +6928 -7878
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +3 -2
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +0 -63
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BarChart.js","sources":["../../../../../../../../src/charts/components/Bar/BarChart.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport * as Recharts from 'recharts';\n\nimport { Color, getThemeColor } from '../../utils/color';\nimport {\n CommonChartProps,\n getCartesianGridProps,\n getXAxisProps,\n getYAxisProps,\n getLegendProps,\n getTooltipProps,\n} from '../../utils/common';\nimport { ResponsiveContainer } from '../ResponsiveContainer';\nimport { ActiveChartItems, PayloadType } from '../types';\n\ntype StacksType<TType> = Record<string, Array<keyof TType & string>>;\n\ntype BarChartBarProps<TType> = {\n accessor: keyof TType & string;\n color?: Color;\n label?: string;\n stackId?: string;\n};\n\nconst Bar = (_: BarChartBarProps<any>) => null;\n\ntype BarChartProps<TType> = CommonChartProps<TType> & {\n children: React.ReactElement<BarChartBarProps<TType>> | React.ReactElement<BarChartBarProps<TType>>[];\n data: TType[];\n formatter?: (value: any) => string;\n layout?: 'horizontal' | 'vertical';\n};\n\nconst getXAxisVerticalProps = <TType,>(props: CommonChartProps<TType>) => ({\n ...getXAxisProps<TType>(props),\n ...{ type: 'number' as const, dataKey: undefined },\n});\n\nconst getYAxisVerticalProps = <TType,>(props: CommonChartProps<TType>) => ({\n ...getYAxisProps<TType>(props),\n ...{ dataKey: props.accessor, type: 'category' as const },\n});\n\nexport const BarChart = function BarChart<TType = unknown>(externalProps: BarChartProps<TType>) {\n const { children, data, formatter, layout = 'horizontal', ...props } = externalProps;\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>(undefined);\n const [hoveredBar, setHoveredBar] = useState<(keyof TType & string) | null>(null);\n const [activeBars, setActiveBars] = useState<ActiveChartItems<TType>>(() => {\n const keys = {} as ActiveChartItems<TType>;\n\n React.Children.forEach(children, child => {\n keys[child.props.accessor] = true;\n });\n\n return keys;\n });\n\n // Recharts doesn't provide a way for us to know if a stacked bar is at the top or the bottom,\n // so we can't set proper radiuses without some \"magic\"\n const stacks = {} as StacksType<TType>;\n\n React.Children.forEach(children, child => {\n if (child.props.stackId) {\n if (!stacks[child.props.stackId]) {\n stacks[child.props.stackId] = [child.props.accessor];\n } else {\n stacks[child.props.stackId].push(child.props.accessor);\n }\n }\n });\n\n const handleLegendClick = (entry: PayloadType<TType>): void => {\n setHoveredBar(null);\n setActiveBars({ ...activeBars, [entry.dataKey]: !activeBars[entry.dataKey] });\n };\n\n const handleLegendHover = (entry: PayloadType<TType>, index: number): void => {\n setHoveredBar(entry.dataKey);\n setActiveIndex(index);\n };\n\n return (\n <ResponsiveContainer>\n <Recharts.BarChart\n layout={layout}\n data={data}\n margin={{ top: 10, right: 0, left: layout === 'vertical' ? 0 : -25, bottom: 0 }}\n onMouseMove={chartState => setActiveIndex(chartState.activeTooltipIndex)}\n onMouseLeave={() => setActiveIndex(undefined)}>\n <Recharts.CartesianGrid {...getCartesianGridProps()} />\n <Recharts.XAxis\n {...(layout === 'vertical' ? getXAxisVerticalProps<TType>(props) : getXAxisProps<TType>(props))}\n />\n <Recharts.YAxis\n {...(layout === 'vertical' ? getYAxisVerticalProps<TType>(props) : getYAxisProps<TType>(props))}\n />\n <Recharts.Legend\n {...getLegendProps({\n onClick: handleLegendClick,\n onMouseEnter: handleLegendHover,\n onMouseLeave: () => setHoveredBar(null),\n activeItems: activeBars,\n })}\n />\n <Recharts.Tooltip {...getTooltipProps()} formatter={formatter} />\n {React.Children.map(children, child => (\n <Recharts.Bar\n isAnimationActive={false}\n barSize={16}\n dataKey={child.props.accessor}\n name={child.props.label}\n onMouseEnter={(_, index) => setActiveIndex(index)}\n onMouseLeave={() => setActiveIndex(undefined)}\n fill={getThemeColor(child.props.color ? `${child.props.color}` : `blue-300`)}\n radius={getBarRadius<TType>(stacks, child.props.accessor, child.props.stackId, activeBars)}\n stackId={child.props.stackId}\n style={child.props.stackId ? { stroke: '#fff', strokeWidth: '2px' } : undefined}\n hide={!activeBars[child.props.accessor]}>\n {data.map((_, index) => (\n <Recharts.Cell\n key={`cell-${index}`}\n opacity={\n (hoveredBar && child.props.accessor !== hoveredBar) ||\n (activeIndex !== undefined && activeIndex !== index)\n ? 0.3\n : 1\n }\n />\n ))}\n </Recharts.Bar>\n ))}\n </Recharts.BarChart>\n </ResponsiveContainer>\n );\n};\nBarChart.Bar = Bar;\n\nconst getBarRadius = <TType,>(\n stacks: StacksType<TType>,\n accessor: keyof TType & string,\n stackId: string | undefined,\n activeBars: ActiveChartItems<TType>\n): number | [number, number, number, number] => {\n if (stackId && Array.isArray(stacks[stackId])) {\n const length = stacks[stackId].length - 1;\n const index: number = stacks[stackId].indexOf(accessor);\n\n if (\n Object.entries(activeBars)\n .filter(item => item[0] !== accessor)\n .every(item => !item[1])\n ) {\n return [3, 3, 0, 0];\n }\n\n if (activeBars[stacks[stackId][index + 1]] === false) {\n return [index === 0 ? 0 : 3, index === 0 ? 0 : 3, index === length - 1 ? 0 : 3, index === length - 1 ? 0 : 3];\n }\n\n if (index !== 0 && index !== length) {\n return 0;\n }\n\n return [index === 0 ? 0 : 3, index === 0 ? 0 : 3, index === length ? 0 : 3, index === length ? 0 : 3];\n }\n\n return 3;\n};\n"],"names":["Bar","_","getXAxisVerticalProps","props","_extends","getXAxisProps","type","dataKey","undefined","getYAxisVerticalProps","getYAxisProps","accessor","BarChart","externalProps","children","data","formatter","_externalProps$layout","layout","_objectWithoutPropertiesLoose","_excluded","_React$useState","React","useState","activeIndex","setActiveIndex","_useState","hoveredBar","setHoveredBar","_useState2","keys","Children","forEach","child","activeBars","setActiveBars","stacks","stackId","push","handleLegendClick","entry","_extends2","handleLegendHover","index","ResponsiveContainer","Recharts","margin","top","right","left","bottom","onMouseMove","chartState","activeTooltipIndex","onMouseLeave","getCartesianGridProps","getLegendProps","onClick","onMouseEnter","activeItems","getTooltipProps","map","isAnimationActive","barSize","name","label","fill","getThemeColor","color","radius","getBarRadius","style","stroke","strokeWidth","hide","key","opacity","Array","isArray","length","indexOf","Object","entries","filter","item","every"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"BarChart.js","sources":["../../../../../../../../src/charts/components/Bar/BarChart.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport * as Recharts from 'recharts';\n\nimport { Color, getThemeColor } from '../../utils/color';\nimport {\n CommonChartProps,\n getCartesianGridProps,\n getXAxisProps,\n getYAxisProps,\n getLegendProps,\n getTooltipProps,\n} from '../../utils/common';\nimport { ResponsiveContainer } from '../ResponsiveContainer';\nimport { ActiveChartItems, PayloadType } from '../types';\n\ntype StacksType<TType> = Record<string, Array<keyof TType & string>>;\n\ntype BarChartBarProps<TType> = {\n accessor: keyof TType & string;\n color?: Color;\n label?: string;\n stackId?: string;\n};\n\nconst Bar = (_: BarChartBarProps<any>) => null;\n\ntype BarChartProps<TType> = CommonChartProps<TType> & {\n children: React.ReactElement<BarChartBarProps<TType>> | React.ReactElement<BarChartBarProps<TType>>[];\n data: TType[];\n formatter?: (value: any) => string;\n layout?: 'horizontal' | 'vertical';\n};\n\nconst getXAxisVerticalProps = <TType,>(props: CommonChartProps<TType>) => ({\n ...getXAxisProps<TType>(props),\n ...{ type: 'number' as const, dataKey: undefined },\n});\n\nconst getYAxisVerticalProps = <TType,>(props: CommonChartProps<TType>) => ({\n ...getYAxisProps<TType>(props),\n ...{ dataKey: props.accessor, type: 'category' as const },\n});\n\nexport const BarChart = function BarChart<TType = unknown>(externalProps: BarChartProps<TType>) {\n const { children, data, formatter, layout = 'horizontal', ...props } = externalProps;\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>(undefined);\n const [hoveredBar, setHoveredBar] = useState<(keyof TType & string) | null>(null);\n const [activeBars, setActiveBars] = useState<ActiveChartItems<TType>>(() => {\n const keys = {} as ActiveChartItems<TType>;\n\n React.Children.forEach(children, child => {\n keys[child.props.accessor] = true;\n });\n\n return keys;\n });\n\n // Recharts doesn't provide a way for us to know if a stacked bar is at the top or the bottom,\n // so we can't set proper radiuses without some \"magic\"\n const stacks = {} as StacksType<TType>;\n\n React.Children.forEach(children, child => {\n if (child.props.stackId) {\n if (!stacks[child.props.stackId]) {\n stacks[child.props.stackId] = [child.props.accessor];\n } else {\n stacks[child.props.stackId].push(child.props.accessor);\n }\n }\n });\n\n const handleLegendClick = (entry: PayloadType<TType>): void => {\n setHoveredBar(null);\n setActiveBars({ ...activeBars, [entry.dataKey]: !activeBars[entry.dataKey] });\n };\n\n const handleLegendHover = (entry: PayloadType<TType>, index: number): void => {\n setHoveredBar(entry.dataKey);\n setActiveIndex(index);\n };\n\n return (\n <ResponsiveContainer>\n <Recharts.BarChart\n layout={layout}\n data={data}\n margin={{ top: 10, right: 0, left: layout === 'vertical' ? 0 : -25, bottom: 0 }}\n onMouseMove={chartState => setActiveIndex(chartState.activeTooltipIndex)}\n onMouseLeave={() => setActiveIndex(undefined)}>\n <Recharts.CartesianGrid {...getCartesianGridProps()} />\n <Recharts.XAxis\n {...(layout === 'vertical' ? getXAxisVerticalProps<TType>(props) : getXAxisProps<TType>(props))}\n />\n <Recharts.YAxis\n {...(layout === 'vertical' ? getYAxisVerticalProps<TType>(props) : getYAxisProps<TType>(props))}\n />\n <Recharts.Legend\n {...getLegendProps({\n onClick: handleLegendClick,\n onMouseEnter: handleLegendHover,\n onMouseLeave: () => setHoveredBar(null),\n activeItems: activeBars,\n })}\n />\n <Recharts.Tooltip {...getTooltipProps()} formatter={formatter} />\n {React.Children.map(children, child => (\n <Recharts.Bar\n isAnimationActive={false}\n barSize={16}\n dataKey={child.props.accessor}\n name={child.props.label}\n onMouseEnter={(_, index) => setActiveIndex(index)}\n onMouseLeave={() => setActiveIndex(undefined)}\n fill={getThemeColor(child.props.color ? `${child.props.color}` : `blue-300`)}\n radius={getBarRadius<TType>(stacks, child.props.accessor, child.props.stackId, activeBars)}\n stackId={child.props.stackId}\n style={child.props.stackId ? { stroke: '#fff', strokeWidth: '2px' } : undefined}\n hide={!activeBars[child.props.accessor]}>\n {data.map((_, index) => (\n <Recharts.Cell\n key={`cell-${index}`}\n opacity={\n (hoveredBar && child.props.accessor !== hoveredBar) ||\n (activeIndex !== undefined && activeIndex !== index)\n ? 0.3\n : 1\n }\n />\n ))}\n </Recharts.Bar>\n ))}\n </Recharts.BarChart>\n </ResponsiveContainer>\n );\n};\nBarChart.Bar = Bar;\n\nconst getBarRadius = <TType,>(\n stacks: StacksType<TType>,\n accessor: keyof TType & string,\n stackId: string | undefined,\n activeBars: ActiveChartItems<TType>\n): number | [number, number, number, number] => {\n if (stackId && Array.isArray(stacks[stackId])) {\n const length = stacks[stackId].length - 1;\n const index: number = stacks[stackId].indexOf(accessor);\n\n if (\n Object.entries(activeBars)\n .filter(item => item[0] !== accessor)\n .every(item => !item[1])\n ) {\n return [3, 3, 0, 0];\n }\n\n if (activeBars[stacks[stackId][index + 1]] === false) {\n return [index === 0 ? 0 : 3, index === 0 ? 0 : 3, index === length - 1 ? 0 : 3, index === length - 1 ? 0 : 3];\n }\n\n if (index !== 0 && index !== length) {\n return 0;\n }\n\n return [index === 0 ? 0 : 3, index === 0 ? 0 : 3, index === length ? 0 : 3, index === length ? 0 : 3];\n }\n\n return 3;\n};\n"],"names":["Bar","_","getXAxisVerticalProps","props","getXAxisProps","type","dataKey","undefined","getYAxisVerticalProps","getYAxisProps","accessor","BarChart","externalProps","children","data","formatter","layout","activeIndex","setActiveIndex","React","useState","hoveredBar","setHoveredBar","activeBars","setActiveBars","keys","Children","forEach","child","stacks","stackId","push","handleLegendClick","entry","handleLegendHover","index","ResponsiveContainer","Recharts","margin","top","right","left","bottom","onMouseMove","chartState","activeTooltipIndex","onMouseLeave","getCartesianGridProps","getLegendProps","onClick","onMouseEnter","activeItems","getTooltipProps","map","isAnimationActive","barSize","name","label","fill","getThemeColor","color","radius","getBarRadius","style","stroke","strokeWidth","hide","key","opacity","Array","isArray","length","indexOf","Object","entries","filter","item","every"],"mappings":";;;;;;AAwBA,MAAMA,GAAG,GAAIC,CAAwB,IAAK,IAAI;AAS9C,MAAMC,qBAAqB,GAAYC,KAA8B,KAAM;EACvE,GAAGC,aAAa,CAAQD,KAAK,CAAC;EAC9B,GAAG;IAAEE,IAAI,EAAE,QAAiB;IAAEC,OAAO,EAAEC;;CAC1C,CAAC;AAEF,MAAMC,qBAAqB,GAAYL,KAA8B,KAAM;EACvE,GAAGM,aAAa,CAAQN,KAAK,CAAC;EAC9B,GAAG;IAAEG,OAAO,EAAEH,KAAK,CAACO,QAAQ;IAAEL,IAAI,EAAE;;CACvC,CAAC;MAEWM,QAAQ,GAAG,SAASA,QAAQA,CAAkBC,aAAmC;EAC1F,MAAM;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,SAAS;IAAEC,MAAM,GAAG,YAAY;IAAE,GAAGb;GAAO,GAAGS,aAAa;EACpF,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAqBb,SAAS,CAAC;EACnF,MAAM,CAACc,UAAU,EAAEC,aAAa,CAAC,GAAGF,QAAQ,CAAgC,IAAI,CAAC;EACjF,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,QAAQ,CAA0B;IAClE,MAAMK,IAAI,GAAG,EAA6B;IAE1CN,cAAK,CAACO,QAAQ,CAACC,OAAO,CAACd,QAAQ,EAAEe,KAAK;MAClCH,IAAI,CAACG,KAAK,CAACzB,KAAK,CAACO,QAAQ,CAAC,GAAG,IAAI;KACpC,CAAC;IAEF,OAAOe,IAAI;GACd,CAAC;;;EAIF,MAAMI,MAAM,GAAG,EAAuB;EAEtCV,cAAK,CAACO,QAAQ,CAACC,OAAO,CAACd,QAAQ,EAAEe,KAAK;IAClC,IAAIA,KAAK,CAACzB,KAAK,CAAC2B,OAAO,EAAE;MACrB,IAAI,CAACD,MAAM,CAACD,KAAK,CAACzB,KAAK,CAAC2B,OAAO,CAAC,EAAE;QAC9BD,MAAM,CAACD,KAAK,CAACzB,KAAK,CAAC2B,OAAO,CAAC,GAAG,CAACF,KAAK,CAACzB,KAAK,CAACO,QAAQ,CAAC;OACvD,MAAM;QACHmB,MAAM,CAACD,KAAK,CAACzB,KAAK,CAAC2B,OAAO,CAAC,CAACC,IAAI,CAACH,KAAK,CAACzB,KAAK,CAACO,QAAQ,CAAC;;;GAGjE,CAAC;EAEF,MAAMsB,iBAAiB,GAAIC,KAAyB;IAChDX,aAAa,CAAC,IAAI,CAAC;IACnBE,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAE,CAACU,KAAK,CAAC3B,OAAO,GAAG,CAACiB,UAAU,CAACU,KAAK,CAAC3B,OAAO;KAAG,CAAC;GAChF;EAED,MAAM4B,iBAAiB,GAAGA,CAACD,KAAyB,EAAEE,KAAa;IAC/Db,aAAa,CAACW,KAAK,CAAC3B,OAAO,CAAC;IAC5BY,cAAc,CAACiB,KAAK,CAAC;GACxB;EAED,oBACIhB,6BAACiB,mBAAmB,qBAChBjB,6BAACkB,UAAiB;IACdrB,MAAM,EAAEA,MAAM;IACdF,IAAI,EAAEA,IAAI;IACVwB,MAAM,EAAE;MAAEC,GAAG,EAAE,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,IAAI,EAAEzB,MAAM,KAAK,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE;MAAE0B,MAAM,EAAE;KAAG;IAC/EC,WAAW,EAAEC,UAAU,IAAI1B,cAAc,CAAC0B,UAAU,CAACC,kBAAkB,CAAC;IACxEC,YAAY,EAAEA,MAAM5B,cAAc,CAACX,SAAS;kBAC5CY,6BAACkB,aAAsB,oBAAKU,qBAAqB,EAAE,EAAI,eACvD5B,6BAACkB,KAAc,oBACNrB,MAAM,KAAK,UAAU,GAAGd,qBAAqB,CAAQC,KAAK,CAAC,GAAGC,aAAa,CAAQD,KAAK,CAAE,EACjG,eACFgB,6BAACkB,KAAc,oBACNrB,MAAM,KAAK,UAAU,GAAGR,qBAAqB,CAAQL,KAAK,CAAC,GAAGM,aAAa,CAAQN,KAAK,CAAE,EACjG,eACFgB,6BAACkB,MAAe,oBACRW,cAAc,CAAC;IACfC,OAAO,EAAEjB,iBAAiB;IAC1BkB,YAAY,EAAEhB,iBAAiB;IAC/BY,YAAY,EAAEA,MAAMxB,aAAa,CAAC,IAAI,CAAC;IACvC6B,WAAW,EAAE5B;GAChB,CAAC,EACJ,eACFJ,6BAACkB,OAAgB,oBAAKe,eAAe,EAAE;IAAErC,SAAS,EAAEA;KAAa,EAChEI,cAAK,CAACO,QAAQ,CAAC2B,GAAG,CAACxC,QAAQ,EAAEe,KAAK,kBAC/BT,6BAACkB,KAAY;IACTiB,iBAAiB,EAAE,KAAK;IACxBC,OAAO,EAAE,EAAE;IACXjD,OAAO,EAAEsB,KAAK,CAACzB,KAAK,CAACO,QAAQ;IAC7B8C,IAAI,EAAE5B,KAAK,CAACzB,KAAK,CAACsD,KAAK;IACvBP,YAAY,EAAEA,CAACjD,CAAC,EAAEkC,KAAK,KAAKjB,cAAc,CAACiB,KAAK,CAAC;IACjDW,YAAY,EAAEA,MAAM5B,cAAc,CAACX,SAAS,CAAC;IAC7CmD,IAAI,EAAEC,aAAa,CAAC/B,KAAK,CAACzB,KAAK,CAACyD,KAAK,GAAG,GAAGhC,KAAK,CAACzB,KAAK,CAACyD,KAAK,EAAE,GAAG,UAAU,CAAC;IAC5EC,MAAM,EAAEC,YAAY,CAAQjC,MAAM,EAAED,KAAK,CAACzB,KAAK,CAACO,QAAQ,EAAEkB,KAAK,CAACzB,KAAK,CAAC2B,OAAO,EAAEP,UAAU,CAAC;IAC1FO,OAAO,EAAEF,KAAK,CAACzB,KAAK,CAAC2B,OAAO;IAC5BiC,KAAK,EAAEnC,KAAK,CAACzB,KAAK,CAAC2B,OAAO,GAAG;MAAEkC,MAAM,EAAE,MAAM;MAAEC,WAAW,EAAE;KAAO,GAAG1D,SAAS;IAC/E2D,IAAI,EAAE,CAAC3C,UAAU,CAACK,KAAK,CAACzB,KAAK,CAACO,QAAQ;KACrCI,IAAI,CAACuC,GAAG,CAAC,CAACpD,CAAC,EAAEkC,KAAK,mBACfhB,6BAACkB,IAAa;IACV8B,GAAG,EAAE,QAAQhC,KAAK,EAAE;IACpBiC,OAAO,EACF/C,UAAU,IAAIO,KAAK,CAACzB,KAAK,CAACO,QAAQ,KAAKW,UAAU,IACjDJ,WAAW,KAAKV,SAAS,IAAIU,WAAW,KAAKkB,KAAM,GAC9C,GAAG,GACH;IAEZ,CACL,CAAC,CACS,CAClB,CAAC,CACc,CACF;AAE9B;AACAxB,QAAQ,CAACX,GAAG,GAAGA,GAAG;AAElB,MAAM8D,YAAY,GAAGA,CACjBjC,MAAyB,EACzBnB,QAA8B,EAC9BoB,OAA2B,EAC3BP,UAAmC;EAEnC,IAAIO,OAAO,IAAIuC,KAAK,CAACC,OAAO,CAACzC,MAAM,CAACC,OAAO,CAAC,CAAC,EAAE;IAC3C,MAAMyC,MAAM,GAAG1C,MAAM,CAACC,OAAO,CAAC,CAACyC,MAAM,GAAG,CAAC;IACzC,MAAMpC,KAAK,GAAWN,MAAM,CAACC,OAAO,CAAC,CAAC0C,OAAO,CAAC9D,QAAQ,CAAC;IAEvD,IACI+D,MAAM,CAACC,OAAO,CAACnD,UAAU,CAAC,CACrBoD,MAAM,CAACC,IAAI,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAKlE,QAAQ,CAAC,CACpCmE,KAAK,CAACD,IAAI,IAAI,CAACA,IAAI,CAAC,CAAC,CAAC,CAAC,EAC9B;MACE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;IAGvB,IAAIrD,UAAU,CAACM,MAAM,CAACC,OAAO,CAAC,CAACK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;MAClD,OAAO,CAACA,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAEA,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAEA,KAAK,KAAKoC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAEpC,KAAK,KAAKoC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGjH,IAAIpC,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAKoC,MAAM,EAAE;MACjC,OAAO,CAAC;;IAGZ,OAAO,CAACpC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAEA,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAEA,KAAK,KAAKoC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAEpC,KAAK,KAAKoC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;EAGzG,OAAO,CAAC;AACZ,CAAC;;;;"}
|
@@ -4,25 +4,24 @@ import { Sector } from 'recharts';
|
|
4
4
|
import { getThemeColor } from '../../utils/color.js';
|
5
5
|
import { HOVER_DONUT_WIDTH } from './util.js';
|
6
6
|
|
7
|
-
|
7
|
+
const ActiveShape = props => {
|
8
8
|
var _getThemeColor;
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
outerRadius =
|
16
|
-
pieColors
|
17
|
-
startAngle
|
18
|
-
endAngle
|
19
|
-
fill
|
9
|
+
const {
|
10
|
+
cx,
|
11
|
+
cy,
|
12
|
+
id,
|
13
|
+
innerRadius,
|
14
|
+
onClick,
|
15
|
+
outerRadius = 0,
|
16
|
+
pieColors,
|
17
|
+
startAngle,
|
18
|
+
endAngle,
|
19
|
+
fill
|
20
|
+
} = props;
|
20
21
|
return /*#__PURE__*/React__default.createElement("g", {
|
21
|
-
onClick:
|
22
|
-
return _onClick(id);
|
23
|
-
},
|
22
|
+
onClick: () => onClick(id),
|
24
23
|
className: cn({
|
25
|
-
'cursor-pointer': !!
|
24
|
+
'cursor-pointer': !!onClick
|
26
25
|
})
|
27
26
|
}, /*#__PURE__*/React__default.createElement(Sector, {
|
28
27
|
cx: cx,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ActiveShape.js","sources":["../../../../../../../../src/charts/components/Donut/ActiveShape.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\nimport cn from 'clsx';\n\nimport { getThemeColor } from '../../utils/color';\nimport { PieSectorDataItem } from 'recharts/types/polar/Pie';\nimport { HOVER_DONUT_WIDTH } from './util';\n\ntype ActiveShapeProps = Omit<PieSectorDataItem, 'onClick'> & {\n onClick: (id: string | undefined) => void;\n pieColors: Record<string, string>;\n};\n\nexport const ActiveShape = (props: ActiveShapeProps) => {\n const { cx, cy, id, innerRadius, onClick, outerRadius = 0, pieColors, startAngle, endAngle, fill } = props;\n\n return (\n <g onClick={() => onClick(id)} className={cn({ 'cursor-pointer': !!onClick })}>\n <Recharts.Sector\n cx={cx}\n cy={cy}\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n startAngle={startAngle}\n endAngle={endAngle}\n fill={fill}\n />\n <Recharts.Sector\n cx={cx}\n cy={cy}\n startAngle={startAngle}\n endAngle={endAngle}\n innerRadius={outerRadius + 2}\n outerRadius={outerRadius + HOVER_DONUT_WIDTH}\n fill={id !== undefined ? getThemeColor(pieColors[id]) ?? getThemeColor('blue-500') : getThemeColor('blue-500')}\n opacity={0.3}\n />\n </g>\n );\n};\n"],"names":["ActiveShape","props","cx","cy","id","innerRadius","onClick","
|
1
|
+
{"version":3,"file":"ActiveShape.js","sources":["../../../../../../../../src/charts/components/Donut/ActiveShape.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\nimport cn from 'clsx';\n\nimport { getThemeColor } from '../../utils/color';\nimport { PieSectorDataItem } from 'recharts/types/polar/Pie';\nimport { HOVER_DONUT_WIDTH } from './util';\n\ntype ActiveShapeProps = Omit<PieSectorDataItem, 'onClick'> & {\n onClick: (id: string | undefined) => void;\n pieColors: Record<string, string>;\n};\n\nexport const ActiveShape = (props: ActiveShapeProps) => {\n const { cx, cy, id, innerRadius, onClick, outerRadius = 0, pieColors, startAngle, endAngle, fill } = props;\n\n return (\n <g onClick={() => onClick(id)} className={cn({ 'cursor-pointer': !!onClick })}>\n <Recharts.Sector\n cx={cx}\n cy={cy}\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n startAngle={startAngle}\n endAngle={endAngle}\n fill={fill}\n />\n <Recharts.Sector\n cx={cx}\n cy={cy}\n startAngle={startAngle}\n endAngle={endAngle}\n innerRadius={outerRadius + 2}\n outerRadius={outerRadius + HOVER_DONUT_WIDTH}\n fill={id !== undefined ? getThemeColor(pieColors[id]) ?? getThemeColor('blue-500') : getThemeColor('blue-500')}\n opacity={0.3}\n />\n </g>\n );\n};\n"],"names":["ActiveShape","props","cx","cy","id","innerRadius","onClick","outerRadius","pieColors","startAngle","endAngle","fill","React","className","cn","Recharts","HOVER_DONUT_WIDTH","undefined","_getThemeColor","getThemeColor","opacity"],"mappings":";;;;;;MAaaA,WAAW,GAAIC,KAAuB;;EAC/C,MAAM;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,WAAW;IAAEC,OAAO;IAAEC,WAAW,GAAG,CAAC;IAAEC,SAAS;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;GAAM,GAAGV,KAAK;EAE1G,oBACIW;IAAGN,OAAO,EAAEA,MAAMA,OAAO,CAACF,EAAE,CAAC;IAAES,SAAS,EAAEC,EAAE,CAAC;MAAE,gBAAgB,EAAE,CAAC,CAACR;KAAS;kBACxEM,6BAACG,MAAe;IACZb,EAAE,EAAEA,EAAE;IACNC,EAAE,EAAEA,EAAE;IACNE,WAAW,EAAEA,WAAW;IACxBE,WAAW,EAAEA,WAAW;IACxBE,UAAU,EAAEA,UAAU;IACtBC,QAAQ,EAAEA,QAAQ;IAClBC,IAAI,EAAEA;IACR,eACFC,6BAACG,MAAe;IACZb,EAAE,EAAEA,EAAE;IACNC,EAAE,EAAEA,EAAE;IACNM,UAAU,EAAEA,UAAU;IACtBC,QAAQ,EAAEA,QAAQ;IAClBL,WAAW,EAAEE,WAAW,GAAG,CAAC;IAC5BA,WAAW,EAAEA,WAAW,GAAGS,iBAAiB;IAC5CL,IAAI,EAAEP,EAAE,KAAKa,SAAS,IAAAC,cAAA,GAAGC,aAAa,CAACX,SAAS,CAACJ,EAAE,CAAC,CAAC,cAAAc,cAAA,cAAAA,cAAA,GAAIC,aAAa,CAAC,UAAU,CAAC,GAAGA,aAAa,CAAC,UAAU,CAAC;IAC9GC,OAAO,EAAE;IACX,CACF;AAEZ;;;;"}
|
@@ -1,21 +1,22 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { HOVER_DONUT_WIDTH, DONUT_WIDTH } from './util.js';
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
4
|
+
const CenteredLabel = ({
|
5
|
+
radius,
|
6
|
+
legendPosition,
|
7
|
+
label,
|
8
|
+
total,
|
9
|
+
formatter,
|
10
|
+
showLegend
|
11
|
+
}) => {
|
12
|
+
const totalInset = HOVER_DONUT_WIDTH + DONUT_WIDTH + DONUT_WIDTH;
|
13
|
+
const diameter = radius * 2;
|
13
14
|
return /*#__PURE__*/React__default.createElement("div", {
|
14
15
|
className: "absolute mt-1 flex h-12 flex-col text-center",
|
15
16
|
style: {
|
16
|
-
top:
|
17
|
-
left: legendPosition === 'right' ? totalInset
|
18
|
-
width: showLegend ? diameter - 2 * totalInset
|
17
|
+
top: `calc(${radius}px - (3rem / 2))`,
|
18
|
+
left: legendPosition === 'right' ? `${totalInset}px` : `calc(50%-${diameter - 2 * totalInset})`,
|
19
|
+
width: showLegend ? `${diameter - 2 * totalInset}px` : `${diameter}px`
|
19
20
|
}
|
20
21
|
}, /*#__PURE__*/React__default.createElement("span", {
|
21
22
|
className: "w-full truncate text-lg font-bold"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CenteredLabel.js","sources":["../../../../../../../../src/charts/components/Donut/CenteredLabel.tsx"],"sourcesContent":["import React from 'react';\nimport { HOVER_DONUT_WIDTH, DONUT_WIDTH } from './util';\n\ntype CenteredLabelProps = {\n radius: number;\n legendPosition: string;\n label: string;\n total: number;\n formatter: ((value: number) => string) | undefined;\n showLegend: boolean;\n};\n\nexport const CenteredLabel = ({ radius, legendPosition, label, total, formatter, showLegend }: CenteredLabelProps) => {\n const totalInset = HOVER_DONUT_WIDTH + DONUT_WIDTH + DONUT_WIDTH;\n const diameter = radius * 2;\n\n return (\n <div\n className=\"absolute mt-1 flex h-12 flex-col text-center\"\n style={{\n top: `calc(${radius}px - (3rem / 2))`, // h-12 is 3rem\n left: legendPosition === 'right' ? `${totalInset}px` : `calc(50%-${diameter - 2 * totalInset})`,\n width: showLegend ? `${diameter - 2 * totalInset}px` : `${diameter}px`,\n }}>\n <span className=\"w-full truncate text-lg font-bold\">{formatter ? formatter(total) : total}</span>\n {label}\n </div>\n );\n};\n"],"names":["CenteredLabel","
|
1
|
+
{"version":3,"file":"CenteredLabel.js","sources":["../../../../../../../../src/charts/components/Donut/CenteredLabel.tsx"],"sourcesContent":["import React from 'react';\nimport { HOVER_DONUT_WIDTH, DONUT_WIDTH } from './util';\n\ntype CenteredLabelProps = {\n radius: number;\n legendPosition: string;\n label: string;\n total: number;\n formatter: ((value: number) => string) | undefined;\n showLegend: boolean;\n};\n\nexport const CenteredLabel = ({ radius, legendPosition, label, total, formatter, showLegend }: CenteredLabelProps) => {\n const totalInset = HOVER_DONUT_WIDTH + DONUT_WIDTH + DONUT_WIDTH;\n const diameter = radius * 2;\n\n return (\n <div\n className=\"absolute mt-1 flex h-12 flex-col text-center\"\n style={{\n top: `calc(${radius}px - (3rem / 2))`, // h-12 is 3rem\n left: legendPosition === 'right' ? `${totalInset}px` : `calc(50%-${diameter - 2 * totalInset})`,\n width: showLegend ? `${diameter - 2 * totalInset}px` : `${diameter}px`,\n }}>\n <span className=\"w-full truncate text-lg font-bold\">{formatter ? formatter(total) : total}</span>\n {label}\n </div>\n );\n};\n"],"names":["CenteredLabel","radius","legendPosition","label","total","formatter","showLegend","totalInset","HOVER_DONUT_WIDTH","DONUT_WIDTH","diameter","React","className","style","top","left","width"],"mappings":";;;MAYaA,aAAa,GAAGA,CAAC;EAAEC,MAAM;EAAEC,cAAc;EAAEC,KAAK;EAAEC,KAAK;EAAEC,SAAS;EAAEC;CAAgC;EAC7G,MAAMC,UAAU,GAAGC,iBAAiB,GAAGC,WAAW,GAAGA,WAAW;EAChE,MAAMC,QAAQ,GAAGT,MAAM,GAAG,CAAC;EAE3B,oBACIU;IACIC,SAAS,EAAC,8CAA8C;IACxDC,KAAK,EAAE;MACHC,GAAG,EAAE,QAAQb,MAAM,kBAAkB;MACrCc,IAAI,EAAEb,cAAc,KAAK,OAAO,GAAG,GAAGK,UAAU,IAAI,GAAG,YAAYG,QAAQ,GAAG,CAAC,GAAGH,UAAU,GAAG;MAC/FS,KAAK,EAAEV,UAAU,GAAG,GAAGI,QAAQ,GAAG,CAAC,GAAGH,UAAU,IAAI,GAAG,GAAGG,QAAQ;;kBAEtEC;IAAMC,SAAS,EAAC;KAAqCP,SAAS,GAAGA,SAAS,CAACD,KAAK,CAAC,GAAGA,KAAK,CAAQ,EAChGD,KAAK,CACJ;AAEd;;;;"}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import cn from 'clsx';
|
3
|
-
import { extends as _extends } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
4
3
|
import { PieChart, Tooltip, Pie, Cell } from 'recharts';
|
5
4
|
import { getThemeColor } from '../../utils/color.js';
|
6
5
|
import { getTooltipProps } from '../../utils/common.js';
|
@@ -9,133 +8,99 @@ import { HOVER_DONUT_WIDTH, DONUT_WIDTH } from './util.js';
|
|
9
8
|
import { CenteredLabel } from './CenteredLabel.js';
|
10
9
|
import { ActiveShape } from './ActiveShape.js';
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
label = _ref.label;
|
25
|
-
var ref = React__default.useRef(null);
|
26
|
-
var _React$useState = React__default.useState(0),
|
27
|
-
radius = _React$useState[0],
|
28
|
-
setRadius = _React$useState[1];
|
29
|
-
var _React$useState2 = React__default.useState([]),
|
30
|
-
hoveredItem = _React$useState2[0],
|
31
|
-
setHoveredItem = _React$useState2[1];
|
11
|
+
const Segment = _ => null;
|
12
|
+
const DonutChart = function DonutChart({
|
13
|
+
children,
|
14
|
+
formatter,
|
15
|
+
onClick,
|
16
|
+
showLegend = false,
|
17
|
+
legendPosition = 'bottom',
|
18
|
+
label
|
19
|
+
}) {
|
20
|
+
const ref = React__default.useRef(null);
|
21
|
+
const [radius, setRadius] = React__default.useState(0);
|
22
|
+
const [hoveredItem, setHoveredItem] = React__default.useState([]);
|
32
23
|
// used for right legends
|
33
|
-
|
34
|
-
selectedItem = _React$useState3[0],
|
35
|
-
setSelectedItem = _React$useState3[1];
|
24
|
+
const [selectedItem, setSelectedItem] = React__default.useState([]);
|
36
25
|
// used for bottom legends
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
setVisibleItems = _React$useState4[1];
|
46
|
-
React__default.useEffect(function () {
|
26
|
+
const [visibleItems, setVisibleItems] = React__default.useState(() => {
|
27
|
+
const keys = {};
|
28
|
+
React__default.Children.forEach(children, child => {
|
29
|
+
keys[child.props.id] = true;
|
30
|
+
});
|
31
|
+
return keys;
|
32
|
+
});
|
33
|
+
React__default.useEffect(() => {
|
47
34
|
if (ref.current) {
|
48
35
|
var _ref$current$parentEl;
|
49
|
-
|
36
|
+
const rect = (_ref$current$parentEl = ref.current.parentElement) === null || _ref$current$parentEl === void 0 ? void 0 : _ref$current$parentEl.getBoundingClientRect();
|
50
37
|
if (rect) {
|
51
|
-
|
52
|
-
|
38
|
+
const width = showLegend ? rect.width / 2 : rect.width;
|
39
|
+
const max = rect.height < width ? rect.height : width;
|
53
40
|
setRadius(max / 2);
|
54
41
|
}
|
55
42
|
}
|
56
43
|
}, [showLegend]);
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
});
|
69
|
-
var total = displayedData.reduce(function (accum, entry) {
|
70
|
-
return accum + entry.value;
|
71
|
-
}, 0);
|
72
|
-
var showTooltip = (!showLegend || legendPosition === 'bottom') && displayedData.length > 0;
|
73
|
-
var handleLegendClick = function handleLegendClick(entry) {
|
44
|
+
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
|
45
|
+
const data = React__default.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 displayedData = data.filter(child => visibleItems[child.id]);
|
52
|
+
const total = displayedData.reduce((accum, entry) => accum + entry.value, 0);
|
53
|
+
const showTooltip = (!showLegend || legendPosition === 'bottom') && displayedData.length > 0;
|
54
|
+
const handleLegendClick = entry => {
|
74
55
|
if (legendPosition === 'bottom' && !Array.isArray(entry)) {
|
75
|
-
|
76
|
-
|
56
|
+
setVisibleItems({
|
57
|
+
...visibleItems,
|
58
|
+
[entry.id]: !visibleItems[entry.id]
|
59
|
+
});
|
77
60
|
} else {
|
78
|
-
|
79
|
-
return entryItem.id;
|
80
|
-
}) : [entry.id];
|
61
|
+
const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];
|
81
62
|
// Using slice to avoid mutation of the react state 'selectedItem'
|
82
|
-
|
63
|
+
const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');
|
83
64
|
if (onClick && !isCurrentSegmentActive) {
|
84
65
|
onClick(entry);
|
85
66
|
}
|
86
67
|
setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
|
87
68
|
}
|
88
69
|
};
|
89
|
-
|
70
|
+
const handlePieClick = React__default.useCallback(pieId => {
|
90
71
|
if (onClick && pieId !== undefined) {
|
91
|
-
|
92
|
-
return item.id === pieId;
|
93
|
-
});
|
72
|
+
const pieProps = displayedData.find(item => item.id === pieId);
|
94
73
|
onClick(pieProps);
|
95
74
|
}
|
96
75
|
}, [onClick, displayedData]);
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
}, {});
|
109
|
-
};
|
110
|
-
var hoveredSegmentColor = getSegmentColor(hoveredItem);
|
111
|
-
var selectedSegmentColor = getSegmentColor(selectedItem);
|
76
|
+
const singlePieDonutChart = displayedData.length === 1;
|
77
|
+
const activeShapeColor = React__default.useMemo(() => {
|
78
|
+
const getSegmentColor = item => item.reduce((colors, itemId) => {
|
79
|
+
const visibleHoveredItem = displayedData.find(dataItem => dataItem.id === itemId);
|
80
|
+
if (visibleHoveredItem) {
|
81
|
+
colors[visibleHoveredItem.id] = visibleHoveredItem.color;
|
82
|
+
}
|
83
|
+
return colors;
|
84
|
+
}, {});
|
85
|
+
const hoveredSegmentColor = getSegmentColor(hoveredItem);
|
86
|
+
const selectedSegmentColor = getSegmentColor(selectedItem);
|
112
87
|
return legendPosition === 'bottom' || hoveredItem.length !== 0 ? hoveredSegmentColor : selectedSegmentColor;
|
113
88
|
}, [hoveredItem, selectedItem, legendPosition]);
|
114
89
|
if (ref.current && !radius) {
|
115
90
|
return null;
|
116
91
|
}
|
117
|
-
|
92
|
+
const getActiveIndex = () => {
|
118
93
|
if (hoveredItem.length > 0) {
|
119
|
-
return hoveredItem.map(
|
120
|
-
return displayedData.findIndex(function (element) {
|
121
|
-
return element.id === itemId;
|
122
|
-
});
|
123
|
-
});
|
94
|
+
return hoveredItem.map(itemId => displayedData.findIndex(element => element.id === itemId));
|
124
95
|
}
|
125
|
-
return selectedItem.map(
|
126
|
-
return displayedData.findIndex(function (element) {
|
127
|
-
return element.id === selectedItemId;
|
128
|
-
});
|
129
|
-
});
|
96
|
+
return selectedItem.map(selectedItemId => displayedData.findIndex(element => element.id === selectedItemId));
|
130
97
|
};
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
});
|
135
|
-
return elements.length > 0 ? elements.map(function (child, index) {
|
98
|
+
const content = () => {
|
99
|
+
const elements = React__default.Children.toArray(children).filter(child => /*#__PURE__*/React__default.isValidElement(child) && visibleItems[child.props.id]);
|
100
|
+
return elements.length > 0 ? elements.map((child, index) => {
|
136
101
|
var _getThemeColor;
|
137
102
|
return /*#__PURE__*/React__default.createElement(Cell, {
|
138
|
-
key:
|
103
|
+
key: `cell-${index}`,
|
139
104
|
name: child.props.label,
|
140
105
|
fill: (_getThemeColor = getThemeColor(child.props.color)) !== null && _getThemeColor !== void 0 ? _getThemeColor : getThemeColor('blue-300')
|
141
106
|
});
|
@@ -146,7 +111,10 @@ var DonutChart = function DonutChart(_ref) {
|
|
146
111
|
}));
|
147
112
|
};
|
148
113
|
return /*#__PURE__*/React__default.createElement("div", {
|
149
|
-
className: cn('relative h-full w-full',
|
114
|
+
className: cn('relative h-full w-full', {
|
115
|
+
[`flex `]: showLegend,
|
116
|
+
'flex-col items-center': legendPosition === 'bottom'
|
117
|
+
}),
|
150
118
|
ref: ref
|
151
119
|
}, /*#__PURE__*/React__default.createElement(CenteredLabel, {
|
152
120
|
radius: radius,
|
@@ -166,7 +134,7 @@ var DonutChart = function DonutChart(_ref) {
|
|
166
134
|
style: {
|
167
135
|
transform: 'rotate(90deg) scale(-1,1)'
|
168
136
|
},
|
169
|
-
singlePieDonutChart
|
137
|
+
singlePieDonutChart
|
170
138
|
})))) : null, /*#__PURE__*/React__default.createElement(Pie, {
|
171
139
|
isAnimationActive: false,
|
172
140
|
activeIndex: getActiveIndex(),
|
@@ -177,12 +145,8 @@ var DonutChart = function DonutChart(_ref) {
|
|
177
145
|
data: displayedData.length > 0 ? displayedData : [],
|
178
146
|
dataKey: "value",
|
179
147
|
innerRadius: radius - HOVER_DONUT_WIDTH - DONUT_WIDTH,
|
180
|
-
onMouseEnter:
|
181
|
-
|
182
|
-
},
|
183
|
-
onMouseLeave: function onMouseLeave() {
|
184
|
-
return setHoveredItem([]);
|
185
|
-
},
|
148
|
+
onMouseEnter: segment => displayedData.length > 0 && setHoveredItem([segment.id]),
|
149
|
+
onMouseLeave: () => setHoveredItem([]),
|
186
150
|
outerRadius: radius - HOVER_DONUT_WIDTH,
|
187
151
|
paddingAngle: 2,
|
188
152
|
// Prevents the pie group element from being focusable
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DonutChart.js","sources":["../../../../../../../../src/charts/components/Donut/DonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\nimport cn from 'clsx';\n\nimport { Color, getThemeColor } from '../../utils/color';\nimport { getTooltipProps } from '../../utils/common';\nimport { Legend } from './Legend';\nimport { CenteredLabel } from './CenteredLabel';\nimport { ActiveShape } from './ActiveShape';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: DonutChartSegmentProps) => null;\n\nexport type DonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\nexport type SegmentIds = string[];\n\nexport type DonutChartProps = {\n children: React.ReactElement<DonutChartSegmentProps> | React.ReactElement<DonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: DonutChartSegmentProps | DonutChartSegmentProps[]) => void;\n showLegend?: boolean;\n legendPosition?: string;\n label: string;\n};\n\nexport const DonutChart = function DonutChart({\n children,\n formatter,\n onClick,\n showLegend = false,\n legendPosition = 'bottom',\n label,\n}: DonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<SegmentIds>([]);\n // used for right legends\n const [selectedItem, setSelectedItem] = React.useState<SegmentIds>([]);\n // used for bottom legends\n const [visibleItems, setVisibleItems] = React.useState<Record<string, boolean>>(() => {\n const keys = {};\n\n React.Children.forEach(children, child => {\n keys[child.props.id] = true;\n });\n\n return keys;\n });\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = showLegend ? rect.width / 2 : rect.width;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [showLegend]);\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: DonutChartSegmentProps[] = 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 const displayedData = data.filter(child => visibleItems[child.id]);\n\n const total = displayedData.reduce((accum, entry) => accum + entry.value, 0);\n const showTooltip = (!showLegend || legendPosition === 'bottom') && displayedData.length > 0;\n\n const handleLegendClick = (entry: DonutChartSegmentProps | DonutChartSegmentProps[]): void => {\n if (legendPosition === 'bottom' && !Array.isArray(entry)) {\n setVisibleItems({ ...visibleItems, [entry.id]: !visibleItems[entry.id] });\n } else {\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 };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = displayedData.find(item => item.id === pieId);\n\n onClick(pieProps as DonutChartSegmentProps);\n }\n },\n [onClick, displayedData]\n );\n\n const singlePieDonutChart = displayedData.length === 1;\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: SegmentIds) =>\n item.reduce((colors, itemId) => {\n const visibleHoveredItem = displayedData.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 legendPosition === 'bottom' || hoveredItem.length !== 0 ? hoveredSegmentColor : selectedSegmentColor;\n }, [hoveredItem, selectedItem, legendPosition]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => displayedData.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => displayedData.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<DonutChartSegmentProps> =>\n React.isValidElement<DonutChartSegmentProps>(child) && visibleItems[child.props.id]\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\n className={cn('relative h-full w-full', {\n [`flex `]: showLegend,\n 'flex-col items-center': legendPosition === 'bottom',\n })}\n ref={ref}>\n <CenteredLabel\n radius={radius}\n legendPosition={legendPosition}\n label={label}\n total={total}\n formatter={formatter}\n showLegend={showLegend}\n />\n\n <Recharts.PieChart data={data} height={diameter} width={diameter} style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n {showTooltip ? (\n <Recharts.Tooltip\n {...getTooltipProps({\n style: { transform: 'rotate(90deg) scale(-1,1)' },\n singlePieDonutChart,\n })}\n />\n ) : null}\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={displayedData.length > 0 ? displayedData : []}\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 => displayedData.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2}\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n {showLegend && (\n <Legend\n data={data}\n visibleItems={visibleItems}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n legendPosition={legendPosition}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n )}\n </div>\n );\n};\n\nDonutChart.Segment = Segment;\n"],"names":["Segment","_","DonutChart","_ref","children","formatter","onClick","_ref$showLegend","showLegend","_ref$legendPosition","legendPosition","label","ref","React","useRef","_React$useState","useState","radius","setRadius","_React$useState2","hoveredItem","setHoveredItem","_React$useState3","selectedItem","setSelectedItem","_React$useState4","keys","Children","forEach","child","props","id","visibleItems","setVisibleItems","useEffect","current","_ref$current$parentEl","rect","parentElement","getBoundingClientRect","width","max","height","diameter","data","map","color","value","displayedData","filter","total","reduce","accum","entry","showTooltip","length","handleLegendClick","Array","isArray","_extends2","_extends","nextSelectedItem","entryItem","isCurrentSegmentActive","slice","sort","join","handlePieClick","useCallback","pieId","undefined","pieProps","find","item","singlePieDonutChart","activeShapeColor","useMemo","getSegmentColor","colors","itemId","visibleHoveredItem","dataItem","hoveredSegmentColor","selectedSegmentColor","getActiveIndex","findIndex","element","selectedItemId","content","elements","toArray","isValidElement","index","Recharts","key","name","fill","_getThemeColor","getThemeColor","className","cn","_cn","CenteredLabel","style","transform","getTooltipProps","isAnimationActive","activeIndex","activeShape","ActiveShape","pieColors","dataKey","innerRadius","HOVER_DONUT_WIDTH","DONUT_WIDTH","onMouseEnter","segment","onMouseLeave","outerRadius","paddingAngle","rootTabIndex","Legend"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"DonutChart.js","sources":["../../../../../../../../src/charts/components/Donut/DonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\nimport cn from 'clsx';\n\nimport { Color, getThemeColor } from '../../utils/color';\nimport { getTooltipProps } from '../../utils/common';\nimport { Legend } from './Legend';\nimport { CenteredLabel } from './CenteredLabel';\nimport { ActiveShape } from './ActiveShape';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: DonutChartSegmentProps) => null;\n\nexport type DonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\nexport type SegmentIds = string[];\n\nexport type DonutChartProps = {\n children: React.ReactElement<DonutChartSegmentProps> | React.ReactElement<DonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: DonutChartSegmentProps | DonutChartSegmentProps[]) => void;\n showLegend?: boolean;\n legendPosition?: string;\n label: string;\n};\n\nexport const DonutChart = function DonutChart({\n children,\n formatter,\n onClick,\n showLegend = false,\n legendPosition = 'bottom',\n label,\n}: DonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<SegmentIds>([]);\n // used for right legends\n const [selectedItem, setSelectedItem] = React.useState<SegmentIds>([]);\n // used for bottom legends\n const [visibleItems, setVisibleItems] = React.useState<Record<string, boolean>>(() => {\n const keys = {};\n\n React.Children.forEach(children, child => {\n keys[child.props.id] = true;\n });\n\n return keys;\n });\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = showLegend ? rect.width / 2 : rect.width;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [showLegend]);\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: DonutChartSegmentProps[] = 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 const displayedData = data.filter(child => visibleItems[child.id]);\n\n const total = displayedData.reduce((accum, entry) => accum + entry.value, 0);\n const showTooltip = (!showLegend || legendPosition === 'bottom') && displayedData.length > 0;\n\n const handleLegendClick = (entry: DonutChartSegmentProps | DonutChartSegmentProps[]): void => {\n if (legendPosition === 'bottom' && !Array.isArray(entry)) {\n setVisibleItems({ ...visibleItems, [entry.id]: !visibleItems[entry.id] });\n } else {\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 };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = displayedData.find(item => item.id === pieId);\n\n onClick(pieProps as DonutChartSegmentProps);\n }\n },\n [onClick, displayedData]\n );\n\n const singlePieDonutChart = displayedData.length === 1;\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: SegmentIds) =>\n item.reduce((colors, itemId) => {\n const visibleHoveredItem = displayedData.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 legendPosition === 'bottom' || hoveredItem.length !== 0 ? hoveredSegmentColor : selectedSegmentColor;\n }, [hoveredItem, selectedItem, legendPosition]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => displayedData.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => displayedData.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<DonutChartSegmentProps> =>\n React.isValidElement<DonutChartSegmentProps>(child) && visibleItems[child.props.id]\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\n className={cn('relative h-full w-full', {\n [`flex `]: showLegend,\n 'flex-col items-center': legendPosition === 'bottom',\n })}\n ref={ref}>\n <CenteredLabel\n radius={radius}\n legendPosition={legendPosition}\n label={label}\n total={total}\n formatter={formatter}\n showLegend={showLegend}\n />\n\n <Recharts.PieChart data={data} height={diameter} width={diameter} style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n {showTooltip ? (\n <Recharts.Tooltip\n {...getTooltipProps({\n style: { transform: 'rotate(90deg) scale(-1,1)' },\n singlePieDonutChart,\n })}\n />\n ) : null}\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={displayedData.length > 0 ? displayedData : []}\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 => displayedData.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2}\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n {showLegend && (\n <Legend\n data={data}\n visibleItems={visibleItems}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n legendPosition={legendPosition}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n )}\n </div>\n );\n};\n\nDonutChart.Segment = Segment;\n"],"names":["Segment","_","DonutChart","children","formatter","onClick","showLegend","legendPosition","label","ref","React","useRef","radius","setRadius","useState","hoveredItem","setHoveredItem","selectedItem","setSelectedItem","visibleItems","setVisibleItems","keys","Children","forEach","child","props","id","useEffect","current","_ref$current$parentEl","rect","parentElement","getBoundingClientRect","width","max","height","diameter","data","map","color","value","displayedData","filter","total","reduce","accum","entry","showTooltip","length","handleLegendClick","Array","isArray","nextSelectedItem","entryItem","isCurrentSegmentActive","slice","sort","join","handlePieClick","useCallback","pieId","undefined","pieProps","find","item","singlePieDonutChart","activeShapeColor","useMemo","getSegmentColor","colors","itemId","visibleHoveredItem","dataItem","hoveredSegmentColor","selectedSegmentColor","getActiveIndex","findIndex","element","selectedItemId","content","elements","toArray","isValidElement","index","Recharts","key","name","fill","_getThemeColor","getThemeColor","className","cn","CenteredLabel","style","transform","getTooltipProps","isAnimationActive","activeIndex","activeShape","ActiveShape","pieColors","dataKey","innerRadius","HOVER_DONUT_WIDTH","DONUT_WIDTH","onMouseEnter","segment","onMouseLeave","outerRadius","paddingAngle","rootTabIndex","Legend"],"mappings":"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"}
|
@@ -88,47 +88,40 @@ import '../../../primitives/Table/useTableDataLoader2.js';
|
|
88
88
|
import '../../../hooks/useBoundaryOverflowDetection.js';
|
89
89
|
import '../../../utils/hooks/useOnClickOutside.js';
|
90
90
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
var isTotal = entry === null;
|
91
|
+
const Legend = ({
|
92
|
+
legendPosition,
|
93
|
+
hoveredItem,
|
94
|
+
selectedItem,
|
95
|
+
data,
|
96
|
+
onClick,
|
97
|
+
setHoveredItem,
|
98
|
+
formatter,
|
99
|
+
total,
|
100
|
+
visibleItems,
|
101
|
+
label
|
102
|
+
}) => {
|
103
|
+
const isTotalLegendSelected = selectedItem.length === data.length;
|
104
|
+
const isTotalLegendHovered = hoveredItem.length === data.length;
|
105
|
+
const handleMouseLeave = () => setHoveredItem([]);
|
106
|
+
const renderLegendItem = (entry, index) => {
|
107
|
+
const isTotal = entry === null;
|
109
108
|
// We can't use `isTotal` here because TypeScript is unable to infer the type when `entry` is not null.
|
110
|
-
|
109
|
+
const itemData = entry === null ? {
|
111
110
|
id: 'total',
|
112
|
-
label
|
111
|
+
label,
|
113
112
|
value: total,
|
114
113
|
color: 'grey-300'
|
115
114
|
} : entry;
|
116
|
-
|
117
|
-
|
115
|
+
const isSelected = isTotal ? isTotalLegendSelected : selectedItem.includes(itemData.id);
|
116
|
+
const isHovered = isTotal ? isTotalLegendHovered : hoveredItem.includes(itemData.id);
|
118
117
|
return /*#__PURE__*/React__default.createElement("li", {
|
119
|
-
key: isTotal ? 'total' : itemData.label
|
118
|
+
key: isTotal ? 'total' : `${itemData.label}-${index}`,
|
120
119
|
className: cn('mr-2 flex cursor-pointer gap-2 rounded pl-0 pr-1', {
|
121
120
|
'bg-grey-100': isHovered && (!isTotal || legendPosition === 'right'),
|
122
121
|
'bg-grey-200': isSelected && (!isTotal || legendPosition === 'right')
|
123
122
|
}),
|
124
|
-
onClick:
|
125
|
-
|
126
|
-
},
|
127
|
-
onMouseEnter: function onMouseEnter() {
|
128
|
-
return setHoveredItem(isTotal ? data.map(function (item) {
|
129
|
-
return item.id;
|
130
|
-
}) : [itemData.id]);
|
131
|
-
},
|
123
|
+
onClick: () => onClick(isTotal ? data : itemData),
|
124
|
+
onMouseEnter: () => setHoveredItem(isTotal ? data.map(item => item.id) : [itemData.id]),
|
132
125
|
onMouseLeave: handleMouseLeave
|
133
126
|
}, legendPosition === 'bottom' ? (/*#__PURE__*/React__default.createElement("div", {
|
134
127
|
className: "flex items-center gap-1"
|
@@ -151,13 +144,11 @@ var Legend = function Legend(_ref) {
|
|
151
144
|
className: "-mt-1 flex w-full text-lg font-bold"
|
152
145
|
}, formatter ? formatter(itemData.value) : itemData.value)))));
|
153
146
|
};
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
};
|
160
|
-
var className = cn('flex-grow pl-4', {
|
147
|
+
const moreButton = moreButtonText => (/*#__PURE__*/React__default.createElement(Button, {
|
148
|
+
appearance: "transparent",
|
149
|
+
className: "text-grey-700"
|
150
|
+
}, moreButtonText));
|
151
|
+
const className = cn('flex-grow pl-4', {
|
161
152
|
'w-full': legendPosition === 'bottom'
|
162
153
|
});
|
163
154
|
return /*#__PURE__*/React__default.createElement("div", {
|