@hitachivantara/uikit-react-core 5.61.0 → 5.62.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/Accordion.cjs +1 -1
- package/dist/cjs/Accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/Accordion/Accordion.styles.cjs +1 -1
- package/dist/cjs/Accordion/Accordion.styles.cjs.map +1 -1
- package/dist/cjs/ActionBar/ActionBar.cjs.map +1 -1
- package/dist/cjs/ActionsGeneric/ActionsGeneric.cjs.map +1 -1
- package/dist/cjs/AppSwitcher/Action/Action.cjs +1 -1
- package/dist/cjs/AppSwitcher/Action/Action.cjs.map +1 -1
- package/dist/cjs/AppSwitcher/Action/Action.styles.cjs.map +1 -1
- package/dist/cjs/AppSwitcher/AppSwitcher.cjs.map +1 -1
- package/dist/cjs/Avatar/Avatar.cjs +1 -1
- package/dist/cjs/Avatar/Avatar.cjs.map +1 -1
- package/dist/cjs/Avatar/Avatar.styles.cjs +1 -1
- package/dist/cjs/Avatar/Avatar.styles.cjs.map +1 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.cjs +1 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.cjs.map +1 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.styles.cjs +1 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.styles.cjs.map +1 -1
- package/dist/cjs/Badge/Badge.cjs.map +1 -1
- package/dist/cjs/Banner/Banner.cjs +1 -1
- package/dist/cjs/Banner/Banner.cjs.map +1 -1
- package/dist/cjs/Banner/BannerContent/ActionContainer/ActionContainer.cjs.map +1 -1
- package/dist/cjs/Banner/BannerContent/BannerContent.cjs.map +1 -1
- package/dist/cjs/Banner/BannerContent/MessageContainer/MessageContainer.cjs.map +1 -1
- package/dist/cjs/BaseCheckBox/BaseCheckBox.cjs.map +1 -1
- package/dist/cjs/BaseCheckBox/BaseCheckBox.styles.cjs +1 -1
- package/dist/cjs/BaseCheckBox/BaseCheckBox.styles.cjs.map +1 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.cjs +6 -6
- package/dist/cjs/BaseDropdown/BaseDropdown.cjs.map +1 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.styles.cjs +1 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.styles.cjs.map +1 -1
- package/dist/cjs/BaseInput/BaseInput.cjs +1 -1
- package/dist/cjs/BaseInput/BaseInput.cjs.map +1 -1
- package/dist/cjs/BaseInput/BaseInput.styles.cjs +1 -1
- package/dist/cjs/BaseInput/BaseInput.styles.cjs.map +1 -1
- package/dist/cjs/BaseInput/validations.cjs.map +1 -1
- package/dist/cjs/BaseRadio/BaseRadio.cjs +12 -11
- package/dist/cjs/BaseRadio/BaseRadio.cjs.map +1 -1
- package/dist/cjs/BaseRadio/BaseRadio.styles.cjs +40 -5
- package/dist/cjs/BaseRadio/BaseRadio.styles.cjs.map +1 -1
- package/dist/cjs/BaseRadio/icons.cjs +17 -0
- package/dist/cjs/BaseRadio/icons.cjs.map +1 -0
- package/dist/cjs/BaseSwitch/BaseSwitch.cjs.map +1 -1
- package/dist/cjs/BaseSwitch/BaseSwitch.styles.cjs +1 -1
- package/dist/cjs/BaseSwitch/BaseSwitch.styles.cjs.map +1 -1
- package/dist/cjs/Box/Box.cjs.map +1 -1
- package/dist/cjs/BreadCrumb/BreadCrumb.cjs.map +1 -1
- package/dist/cjs/BreadCrumb/Page/Page.cjs.map +1 -1
- package/dist/cjs/BreadCrumb/PathElement/PathElement.cjs.map +1 -1
- package/dist/cjs/BreadCrumb/utils.cjs.map +1 -1
- package/dist/cjs/BulkActions/BulkActions.cjs +1 -1
- package/dist/cjs/BulkActions/BulkActions.cjs.map +1 -1
- package/dist/cjs/BulkActions/BulkActions.styles.cjs.map +1 -1
- package/dist/cjs/Button/Button.cjs +1 -1
- package/dist/cjs/Button/Button.cjs.map +1 -1
- package/dist/cjs/Button/Button.styles.cjs +1 -1
- package/dist/cjs/Button/Button.styles.cjs.map +1 -1
- package/dist/cjs/Calendar/Calendar.cjs +1 -1
- package/dist/cjs/Calendar/Calendar.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs +3 -3
- package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.cjs +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.cjs.map +1 -1
- package/dist/cjs/Calendar/CalendarNavigation/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/Calendar/SingleCalendar/CalendarCell.cjs.map +1 -1
- package/dist/cjs/Calendar/SingleCalendar/CalendarCell.styles.cjs +1 -1
- package/dist/cjs/Calendar/SingleCalendar/CalendarCell.styles.cjs.map +1 -1
- package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.cjs +2 -2
- package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.cjs.map +1 -1
- package/dist/cjs/Calendar/model.cjs.map +1 -1
- package/dist/cjs/Calendar/utils.cjs.map +1 -1
- package/dist/cjs/Card/Card.cjs.map +1 -1
- package/dist/cjs/Card/Card.styles.cjs +1 -1
- package/dist/cjs/Card/Card.styles.cjs.map +1 -1
- package/dist/cjs/Card/Content/Content.cjs.map +1 -1
- package/dist/cjs/Card/Header/Header.cjs.map +1 -1
- package/dist/cjs/Card/Media/Media.cjs.map +1 -1
- package/dist/cjs/Carousel/Carousel.cjs +1 -1
- package/dist/cjs/Carousel/Carousel.cjs.map +1 -1
- package/dist/cjs/Carousel/CarouselControls.cjs.map +1 -1
- package/dist/cjs/Carousel/CarouselSlide/CarouselSlide.cjs.map +1 -1
- package/dist/cjs/Carousel/CarouselThumbnails.cjs.map +1 -1
- package/dist/cjs/CheckBox/CheckBox.cjs +1 -1
- package/dist/cjs/CheckBox/CheckBox.cjs.map +1 -1
- package/dist/cjs/CheckBox/CheckBox.styles.cjs +1 -1
- package/dist/cjs/CheckBox/CheckBox.styles.cjs.map +1 -1
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs +2 -2
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
- package/dist/cjs/ColorPicker/ColorPicker.cjs +2 -2
- package/dist/cjs/ColorPicker/ColorPicker.cjs.map +1 -1
- package/dist/cjs/ColorPicker/Fields/Fields.cjs.map +1 -1
- package/dist/cjs/ColorPicker/Picker/Picker.cjs +2 -2
- package/dist/cjs/ColorPicker/Picker/Picker.cjs.map +1 -1
- package/dist/cjs/ColorPicker/PresetColors/PresetColors.cjs.map +1 -1
- package/dist/cjs/ColorPicker/SavedColors/SavedColors.cjs +1 -1
- package/dist/cjs/ColorPicker/SavedColors/SavedColors.cjs.map +1 -1
- package/dist/cjs/Container/Container.cjs +2 -2
- package/dist/cjs/Container/Container.cjs.map +1 -1
- package/dist/cjs/Controls/Controls.cjs +1 -1
- package/dist/cjs/Controls/Controls.cjs.map +1 -1
- package/dist/cjs/Controls/LeftControl/LeftControl.cjs +1 -1
- package/dist/cjs/Controls/LeftControl/LeftControl.cjs.map +1 -1
- package/dist/cjs/Controls/RightControl/RightControl.cjs +1 -1
- package/dist/cjs/Controls/RightControl/RightControl.cjs.map +1 -1
- package/dist/cjs/DatePicker/DatePicker.cjs +5 -5
- package/dist/cjs/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/DatePicker/useVisibleDate.cjs +4 -1
- package/dist/cjs/DatePicker/useVisibleDate.cjs.map +1 -1
- package/dist/cjs/DatePicker/utils.cjs.map +1 -1
- package/dist/cjs/Dialog/Actions/Actions.cjs +1 -1
- package/dist/cjs/Dialog/Actions/Actions.cjs.map +1 -1
- package/dist/cjs/Dialog/Content/Content.cjs.map +1 -1
- package/dist/cjs/Dialog/Dialog.cjs +2 -2
- package/dist/cjs/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/Dialog/Title/Title.cjs.map +1 -1
- package/dist/cjs/DotPagination/DotPagination.cjs +1 -1
- package/dist/cjs/DotPagination/DotPagination.cjs.map +1 -1
- package/dist/cjs/DotPagination/DotPagination.styles.cjs +11 -3
- package/dist/cjs/DotPagination/DotPagination.styles.cjs.map +1 -1
- package/dist/cjs/Drawer/Drawer.cjs.map +1 -1
- package/dist/cjs/DropDownMenu/DropDownMenu.cjs +2 -2
- package/dist/cjs/DropDownMenu/DropDownMenu.cjs.map +1 -1
- package/dist/cjs/Dropdown/Dropdown.cjs +3 -3
- package/dist/cjs/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/cjs/Dropdown/List/List.cjs +2 -2
- package/dist/cjs/Dropdown/List/List.cjs.map +1 -1
- package/dist/cjs/Dropdown/utils.cjs.map +1 -1
- package/dist/cjs/DropdownButton/DropdownButton.cjs.map +1 -1
- package/dist/cjs/DropdownButton/DropdownButton.styles.cjs.map +1 -1
- package/dist/cjs/EmptyState/EmptyState.cjs.map +1 -1
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs +2 -2
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs.map +1 -1
- package/dist/cjs/FileUploader/File/File.cjs +1 -1
- package/dist/cjs/FileUploader/File/File.cjs.map +1 -1
- package/dist/cjs/FileUploader/FileList/FileList.cjs +1 -1
- package/dist/cjs/FileUploader/FileList/FileList.cjs.map +1 -1
- package/dist/cjs/FileUploader/FileUploader.cjs +1 -1
- package/dist/cjs/FileUploader/FileUploader.cjs.map +1 -1
- package/dist/cjs/FileUploader/Preview/Preview.cjs.map +1 -1
- package/dist/cjs/FileUploader/Preview/Preview.styles.cjs.map +1 -1
- package/dist/cjs/FilterGroup/Counter/Counter.cjs.map +1 -1
- package/dist/cjs/FilterGroup/FilterContent/FilterContent.cjs +2 -2
- package/dist/cjs/FilterGroup/FilterContent/FilterContent.cjs.map +1 -1
- package/dist/cjs/FilterGroup/FilterGroup.cjs +2 -2
- package/dist/cjs/FilterGroup/FilterGroup.cjs.map +1 -1
- package/dist/cjs/FilterGroup/FilterGroupContext.cjs +1 -1
- package/dist/cjs/FilterGroup/FilterGroupContext.cjs.map +1 -1
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
- package/dist/cjs/Focus/Focus.cjs +2 -2
- package/dist/cjs/Focus/Focus.cjs.map +1 -1
- package/dist/cjs/Focus/Focus.styles.cjs +1 -1
- package/dist/cjs/Focus/Focus.styles.cjs.map +1 -1
- package/dist/cjs/Footer/Footer.cjs.map +1 -1
- package/dist/cjs/Forms/Adornment/Adornment.cjs.map +1 -1
- package/dist/cjs/Forms/Adornment/Adornment.styles.cjs +1 -1
- package/dist/cjs/Forms/Adornment/Adornment.styles.cjs.map +1 -1
- package/dist/cjs/Forms/CharCounter/CharCounter.cjs.map +1 -1
- package/dist/cjs/Forms/FormElement/FormElement.cjs +2 -2
- package/dist/cjs/Forms/FormElement/FormElement.cjs.map +1 -1
- package/dist/cjs/Forms/FormElement/utils/FormUtils.cjs.map +1 -1
- package/dist/cjs/Forms/InfoMessage/InfoMessage.cjs.map +1 -1
- package/dist/cjs/Forms/Label/Label.cjs.map +1 -1
- package/dist/cjs/Forms/Suggestions/Suggestions.cjs +1 -1
- package/dist/cjs/Forms/Suggestions/Suggestions.cjs.map +1 -1
- package/dist/cjs/Forms/WarningText/WarningText.cjs.map +1 -1
- package/dist/cjs/GlobalActions/GlobalActions.cjs.map +1 -1
- package/dist/cjs/GlobalActions/GlobalActions.styles.cjs.map +1 -1
- package/dist/cjs/Grid/Grid.cjs.map +1 -1
- package/dist/cjs/Header/Actions/Actions.cjs.map +1 -1
- package/dist/cjs/Header/Brand/Brand.cjs.map +1 -1
- package/dist/cjs/Header/Header.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/MenuBar/Bar.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.cjs +2 -2
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.styles.cjs +1 -1
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/Navigation.cjs +1 -1
- package/dist/cjs/Header/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/Navigation.styles.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/useSelectionPath.cjs.map +1 -1
- package/dist/cjs/Header/Navigation/utils/FocusContext.cjs.map +1 -1
- package/dist/cjs/IconButton/IconButton.cjs +1 -1
- package/dist/cjs/IconButton/IconButton.cjs.map +1 -1
- package/dist/cjs/InlineEditor/InlineEditor.cjs +1 -1
- package/dist/cjs/InlineEditor/InlineEditor.cjs.map +1 -1
- package/dist/cjs/InlineEditor/InlineEditor.styles.cjs.map +1 -1
- package/dist/cjs/Input/Input.cjs +6 -6
- package/dist/cjs/Input/Input.cjs.map +1 -1
- package/dist/cjs/Kpi/Kpi.cjs.map +1 -1
- package/dist/cjs/Link/Link.cjs.map +1 -1
- package/dist/cjs/Link/Link.styles.cjs +1 -1
- package/dist/cjs/Link/Link.styles.cjs.map +1 -1
- package/dist/cjs/List/List.cjs.map +1 -1
- package/dist/cjs/List/useSelectableList.cjs.map +1 -1
- package/dist/cjs/List/utils.cjs.map +1 -1
- package/dist/cjs/ListContainer/ListContainer.cjs +1 -1
- package/dist/cjs/ListContainer/ListContainer.cjs.map +1 -1
- package/dist/cjs/ListContainer/ListItem/ListItem.cjs.map +1 -1
- package/dist/cjs/ListContainer/ListItem/ListItem.styles.cjs +1 -1
- package/dist/cjs/ListContainer/ListItem/ListItem.styles.cjs.map +1 -1
- package/dist/cjs/Loading/Loading.cjs +1 -1
- package/dist/cjs/Loading/Loading.cjs.map +1 -1
- package/dist/cjs/Loading/Loading.styles.cjs.map +1 -1
- package/dist/cjs/LoadingContainer/LoadingContainer.cjs.map +1 -1
- package/dist/cjs/Login/Login.cjs.map +1 -1
- package/dist/cjs/MultiButton/MultiButton.cjs.map +1 -1
- package/dist/cjs/MultiButton/MultiButton.styles.cjs +1 -1
- package/dist/cjs/MultiButton/MultiButton.styles.cjs.map +1 -1
- package/dist/cjs/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
- package/dist/cjs/OverflowTooltip/OverflowTooltip.styles.cjs.map +1 -1
- package/dist/cjs/Pagination/Pagination.cjs +3 -3
- package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/Pagination/Pagination.styles.cjs.map +1 -1
- package/dist/cjs/Pagination/Select.cjs.map +1 -1
- package/dist/cjs/Pagination/utils.cjs.map +1 -1
- package/dist/cjs/Panel/Panel.cjs.map +1 -1
- package/dist/cjs/ProgressBar/ProgressBar.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Context.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/QueryBuilder.cjs +2 -2
- package/dist/cjs/QueryBuilder/QueryBuilder.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Attribute/Attribute.cjs +1 -1
- package/dist/cjs/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Rule.cjs +1 -1
- package/dist/cjs/QueryBuilder/Rule/Rule.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Rule.styles.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +3 -3
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/Value.cjs +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/utils/index.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/utils/reducer.cjs.map +1 -1
- package/dist/cjs/Radio/Radio.cjs +4 -2
- package/dist/cjs/Radio/Radio.cjs.map +1 -1
- package/dist/cjs/Radio/Radio.styles.cjs +4 -2
- package/dist/cjs/Radio/Radio.styles.cjs.map +1 -1
- package/dist/cjs/RadioGroup/RadioGroup.cjs +1 -1
- package/dist/cjs/RadioGroup/RadioGroup.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +1 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs +1 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.cjs +3 -3
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.cjs +1 -1
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.styles.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +1 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +1 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs +1 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/ScrollTo/useScrollTo.cjs.map +1 -1
- package/dist/cjs/ScrollTo/utils.cjs.map +1 -1
- package/dist/cjs/ScrollTo/withTooltip.cjs.map +1 -1
- package/dist/cjs/Section/Section.cjs +1 -1
- package/dist/cjs/Section/Section.cjs.map +1 -1
- package/dist/cjs/Select/Option.cjs.map +1 -1
- package/dist/cjs/Select/OptionGroup.cjs +1 -1
- package/dist/cjs/Select/OptionGroup.cjs.map +1 -1
- package/dist/cjs/Select/Select.cjs +5 -5
- package/dist/cjs/Select/Select.cjs.map +1 -1
- package/dist/cjs/SelectionList/SelectionList.cjs +2 -2
- package/dist/cjs/SelectionList/SelectionList.cjs.map +1 -1
- package/dist/cjs/SimpleGrid/SimpleGrid.cjs.map +1 -1
- package/dist/cjs/SimpleGrid/SimpleGrid.styles.cjs.map +1 -1
- package/dist/cjs/Skeleton/Skeleton.cjs.map +1 -1
- package/dist/cjs/Slider/Slider.cjs +4 -4
- package/dist/cjs/Slider/Slider.cjs.map +1 -1
- package/dist/cjs/Slider/Slider.styles.cjs +1 -1
- package/dist/cjs/Slider/Slider.styles.cjs.map +1 -1
- package/dist/cjs/Slider/SliderInput/SliderInput.cjs.map +1 -1
- package/dist/cjs/Slider/utils.cjs.map +1 -1
- package/dist/cjs/Snackbar/Snackbar.cjs.map +1 -1
- package/dist/cjs/Snackbar/Snackbar.styles.cjs +1 -1
- package/dist/cjs/Snackbar/Snackbar.styles.cjs.map +1 -1
- package/dist/cjs/Snackbar/SnackbarContent/SnackbarContent.cjs +3 -3
- package/dist/cjs/Snackbar/SnackbarContent/SnackbarContent.cjs.map +1 -1
- package/dist/cjs/Snackbar/SnackbarContent/SnackbarContent.styles.cjs.map +1 -1
- package/dist/cjs/SnackbarProvider/SnackbarProvider.cjs.map +1 -1
- package/dist/cjs/SnackbarProvider/SnackbarProvider.styles.cjs.map +1 -1
- package/dist/cjs/Stack/Stack.cjs +2 -2
- package/dist/cjs/Stack/Stack.cjs.map +1 -1
- package/dist/cjs/Switch/Switch.cjs +2 -2
- package/dist/cjs/Switch/Switch.cjs.map +1 -1
- package/dist/cjs/Tab/Tab.cjs.map +1 -1
- package/dist/cjs/Table/Table.cjs +1 -1
- package/dist/cjs/Table/Table.cjs.map +1 -1
- package/dist/cjs/Table/TableBody/TableBody.cjs.map +1 -1
- package/dist/cjs/Table/TableCell/TableCell.cjs +1 -1
- package/dist/cjs/Table/TableCell/TableCell.cjs.map +1 -1
- package/dist/cjs/Table/TableContainer/TableContainer.cjs.map +1 -1
- package/dist/cjs/Table/TableHead/TableHead.cjs.map +1 -1
- package/dist/cjs/Table/TableHeader/TableHeader.cjs +2 -2
- package/dist/cjs/Table/TableHeader/TableHeader.cjs.map +1 -1
- package/dist/cjs/Table/TableHeader/utils.cjs.map +1 -1
- package/dist/cjs/Table/TableRow/TableRow.cjs.map +1 -1
- package/dist/cjs/Table/TableRow/TableRow.styles.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useBulkActions.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useFilters.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useGlobalFilter.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useHeaderGroups.cjs.map +1 -1
- package/dist/cjs/Table/hooks/usePagination.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useResizeColumns.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useRowExpand.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useRowSelection.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useRowState.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useSortBy.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useSticky.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useTable.cjs.map +1 -1
- package/dist/cjs/Table/hooks/useTableStyles.cjs.map +1 -1
- package/dist/cjs/Table/renderers/DateColumnCell/DateColumnCell.cjs.map +1 -1
- package/dist/cjs/Table/renderers/DropdownColumnCell/DropdownColumnCell.cjs.map +1 -1
- package/dist/cjs/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.cjs.map +1 -1
- package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.cjs.map +1 -1
- package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.cjs.map +1 -1
- package/dist/cjs/Table/renderers/renderers.cjs.map +1 -1
- package/dist/cjs/TableSection/TableSection.cjs.map +1 -1
- package/dist/cjs/TableSection/TableSection.styles.cjs.map +1 -1
- package/dist/cjs/Tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/Tag/Tag.cjs +3 -3
- package/dist/cjs/Tag/Tag.cjs.map +1 -1
- package/dist/cjs/Tag/Tag.styles.cjs +2 -2
- package/dist/cjs/Tag/Tag.styles.cjs.map +1 -1
- package/dist/cjs/TagsInput/TagsInput.cjs +4 -4
- package/dist/cjs/TagsInput/TagsInput.cjs.map +1 -1
- package/dist/cjs/TagsInput/TagsInput.styles.cjs.map +1 -1
- package/dist/cjs/TextArea/TextArea.cjs +4 -4
- package/dist/cjs/TextArea/TextArea.cjs.map +1 -1
- package/dist/cjs/TimeAgo/TimeAgo.cjs.map +1 -1
- package/dist/cjs/TimeAgo/formatUtils.cjs.map +1 -1
- package/dist/cjs/TimeAgo/useTimeAgo.cjs +1 -1
- package/dist/cjs/TimeAgo/useTimeAgo.cjs.map +1 -1
- package/dist/cjs/TimePicker/Placeholder.cjs.map +1 -1
- package/dist/cjs/TimePicker/TimePicker.cjs +1 -1
- package/dist/cjs/TimePicker/TimePicker.cjs.map +1 -1
- package/dist/cjs/TimePicker/Unit/Unit.cjs.map +1 -1
- package/dist/cjs/ToggleButton/ToggleButton.cjs.map +1 -1
- package/dist/cjs/Tooltip/Tooltip.cjs +3 -3
- package/dist/cjs/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/Tooltip/Tooltip.styles.cjs +1 -1
- package/dist/cjs/Tooltip/Tooltip.styles.cjs.map +1 -1
- package/dist/cjs/TreeView/TreeItem/DefaultContent.cjs.map +1 -1
- package/dist/cjs/TreeView/TreeItem/TreeItem.cjs +3 -3
- package/dist/cjs/TreeView/TreeItem/TreeItem.cjs.map +1 -1
- package/dist/cjs/TreeView/TreeItem/useHvTreeItem.cjs.map +1 -1
- package/dist/cjs/TreeView/TreeView.cjs +1 -1
- package/dist/cjs/TreeView/TreeView.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/DescendantProvider.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/TreeViewProvider.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/defaultPlugins.cjs +3 -3
- package/dist/cjs/TreeView/internals/hooks/plugins/defaultPlugins.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewExpansion.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewFocus.cjs +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewFocus.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewNodes.cjs +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewNodes.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewSelection.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/useInstanceEventHandler.cjs +1 -1
- package/dist/cjs/TreeView/internals/hooks/useInstanceEventHandler.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeView.cjs +1 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeView.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeViewInstanceEvents.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeViewModels.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/hooks/utils.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/EventManager.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/publishTreeViewEvent.cjs.map +1 -1
- package/dist/cjs/Typography/Typography.cjs +3 -3
- package/dist/cjs/Typography/Typography.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.styles.cjs +1 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Actions/Actions.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Actions/Actions.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Header/Header.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Header/Header.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs +5 -5
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/NavigationPopup/NavigationPopup.styles.cjs +1 -1
- package/dist/cjs/VerticalNavigation/NavigationPopup/NavigationPopup.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/NavigationPopup/NavigationPopupContainer.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/NavigationSlider.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/utils/NavigationSlider.utils.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/IconWrapper/IconWrapper.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/IconWrapper/IconWrapper.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeView.cjs +2 -2
- package/dist/cjs/VerticalNavigation/TreeView/TreeView.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeView.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.cjs +3 -3
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/TreeView/descendants.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigation.cjs +1 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigation.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigation.styles.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigationContext.cjs.map +1 -1
- package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
- package/dist/cjs/hooks/useClickOutside.cjs.map +1 -1
- package/dist/cjs/hooks/useComputation.cjs.map +1 -1
- package/dist/cjs/hooks/useControlled.cjs.map +1 -1
- package/dist/cjs/hooks/useCss.cjs +1 -1
- package/dist/cjs/hooks/useCss.cjs.map +1 -1
- package/dist/cjs/hooks/useDefaultProps.cjs +19 -13
- package/dist/cjs/hooks/useDefaultProps.cjs.map +1 -1
- package/dist/cjs/hooks/useEmotionCache.cjs +2 -2
- package/dist/cjs/hooks/useTheme.cjs +2 -2
- package/dist/cjs/hooks/useWidth.cjs +1 -1
- package/dist/cjs/hooks/useWidth.cjs.map +1 -1
- package/dist/cjs/providers/Provider.cjs +1 -1
- package/dist/cjs/providers/Provider.cjs.map +1 -1
- package/dist/cjs/providers/ThemeProvider.cjs +2 -2
- package/dist/cjs/providers/ThemeProvider.cjs.map +1 -1
- package/dist/cjs/types/generic.cjs.map +1 -1
- package/dist/cjs/utils/classes.cjs.map +1 -1
- package/dist/cjs/utils/hexToRgbA.cjs.map +1 -1
- package/dist/cjs/utils/iconVariant.cjs.map +1 -1
- package/dist/cjs/utils/multiSelectionEventHandler.cjs.map +1 -1
- package/dist/cjs/utils/theme.cjs.map +1 -1
- package/dist/cjs/utils/useSavedState.cjs.map +1 -1
- package/dist/cjs/utils/wrapperTooltip.cjs.map +1 -1
- package/dist/esm/Accordion/Accordion.js +1 -1
- package/dist/esm/Accordion/Accordion.js.map +1 -1
- package/dist/esm/Accordion/Accordion.styles.js +1 -1
- package/dist/esm/Accordion/Accordion.styles.js.map +1 -1
- package/dist/esm/ActionBar/ActionBar.js.map +1 -1
- package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +1 -1
- package/dist/esm/AppSwitcher/Action/Action.js +1 -1
- package/dist/esm/AppSwitcher/Action/Action.js.map +1 -1
- package/dist/esm/AppSwitcher/Action/Action.styles.js.map +1 -1
- package/dist/esm/AppSwitcher/AppSwitcher.js.map +1 -1
- package/dist/esm/Avatar/Avatar.js +1 -1
- package/dist/esm/Avatar/Avatar.js.map +1 -1
- package/dist/esm/Avatar/Avatar.styles.js +1 -1
- package/dist/esm/Avatar/Avatar.styles.js.map +1 -1
- package/dist/esm/AvatarGroup/AvatarGroup.js +1 -1
- package/dist/esm/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/esm/AvatarGroup/AvatarGroup.styles.js +1 -1
- package/dist/esm/AvatarGroup/AvatarGroup.styles.js.map +1 -1
- package/dist/esm/Badge/Badge.js.map +1 -1
- package/dist/esm/Banner/Banner.js +1 -1
- package/dist/esm/Banner/Banner.js.map +1 -1
- package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
- package/dist/esm/Banner/BannerContent/BannerContent.js.map +1 -1
- package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.js.map +1 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.js.map +1 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js +1 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
- package/dist/esm/BaseDropdown/BaseDropdown.js +6 -6
- package/dist/esm/BaseDropdown/BaseDropdown.js.map +1 -1
- package/dist/esm/BaseDropdown/BaseDropdown.styles.js +1 -1
- package/dist/esm/BaseDropdown/BaseDropdown.styles.js.map +1 -1
- package/dist/esm/BaseInput/BaseInput.js +1 -1
- package/dist/esm/BaseInput/BaseInput.js.map +1 -1
- package/dist/esm/BaseInput/BaseInput.styles.js +1 -1
- package/dist/esm/BaseInput/BaseInput.styles.js.map +1 -1
- package/dist/esm/BaseInput/validations.js.map +1 -1
- package/dist/esm/BaseRadio/BaseRadio.js +12 -11
- package/dist/esm/BaseRadio/BaseRadio.js.map +1 -1
- package/dist/esm/BaseRadio/BaseRadio.styles.js +40 -5
- package/dist/esm/BaseRadio/BaseRadio.styles.js.map +1 -1
- package/dist/esm/BaseRadio/icons.js +17 -0
- package/dist/esm/BaseRadio/icons.js.map +1 -0
- package/dist/esm/BaseSwitch/BaseSwitch.js.map +1 -1
- package/dist/esm/BaseSwitch/BaseSwitch.styles.js +1 -1
- package/dist/esm/BaseSwitch/BaseSwitch.styles.js.map +1 -1
- package/dist/esm/Box/Box.js.map +1 -1
- package/dist/esm/BreadCrumb/BreadCrumb.js.map +1 -1
- package/dist/esm/BreadCrumb/Page/Page.js.map +1 -1
- package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +1 -1
- package/dist/esm/BreadCrumb/utils.js.map +1 -1
- package/dist/esm/BulkActions/BulkActions.js +1 -1
- package/dist/esm/BulkActions/BulkActions.js.map +1 -1
- package/dist/esm/BulkActions/BulkActions.styles.js.map +1 -1
- package/dist/esm/Button/Button.js +1 -1
- package/dist/esm/Button/Button.js.map +1 -1
- package/dist/esm/Button/Button.styles.js +1 -1
- package/dist/esm/Button/Button.styles.js.map +1 -1
- package/dist/esm/Calendar/Calendar.js +1 -1
- package/dist/esm/Calendar/Calendar.js.map +1 -1
- package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js +2 -2
- package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
- package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js.map +1 -1
- package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
- package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js +1 -1
- package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js.map +1 -1
- package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/esm/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
- package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js +1 -1
- package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js.map +1 -1
- package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js +2 -2
- package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
- package/dist/esm/Calendar/model.js.map +1 -1
- package/dist/esm/Calendar/utils.js.map +1 -1
- package/dist/esm/Card/Card.js.map +1 -1
- package/dist/esm/Card/Card.styles.js +1 -1
- package/dist/esm/Card/Card.styles.js.map +1 -1
- package/dist/esm/Card/Content/Content.js.map +1 -1
- package/dist/esm/Card/Header/Header.js.map +1 -1
- package/dist/esm/Card/Media/Media.js.map +1 -1
- package/dist/esm/Carousel/Carousel.js +2 -2
- package/dist/esm/Carousel/Carousel.js.map +1 -1
- package/dist/esm/Carousel/CarouselControls.js.map +1 -1
- package/dist/esm/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
- package/dist/esm/Carousel/CarouselThumbnails.js.map +1 -1
- package/dist/esm/CheckBox/CheckBox.js +1 -1
- package/dist/esm/CheckBox/CheckBox.js.map +1 -1
- package/dist/esm/CheckBox/CheckBox.styles.js +1 -1
- package/dist/esm/CheckBox/CheckBox.styles.js.map +1 -1
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.js +2 -2
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/dist/esm/ColorPicker/ColorPicker.js +2 -2
- package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/esm/ColorPicker/Picker/Picker.js +2 -2
- package/dist/esm/ColorPicker/Picker/Picker.js.map +1 -1
- package/dist/esm/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/esm/ColorPicker/SavedColors/SavedColors.js +1 -1
- package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +1 -1
- package/dist/esm/Container/Container.js +2 -2
- package/dist/esm/Container/Container.js.map +1 -1
- package/dist/esm/Controls/Controls.js +1 -1
- package/dist/esm/Controls/Controls.js.map +1 -1
- package/dist/esm/Controls/LeftControl/LeftControl.js +1 -1
- package/dist/esm/Controls/LeftControl/LeftControl.js.map +1 -1
- package/dist/esm/Controls/RightControl/RightControl.js +1 -1
- package/dist/esm/Controls/RightControl/RightControl.js.map +1 -1
- package/dist/esm/DatePicker/DatePicker.js +5 -5
- package/dist/esm/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/DatePicker/useVisibleDate.js +4 -1
- package/dist/esm/DatePicker/useVisibleDate.js.map +1 -1
- package/dist/esm/DatePicker/utils.js.map +1 -1
- package/dist/esm/Dialog/Actions/Actions.js +1 -1
- package/dist/esm/Dialog/Actions/Actions.js.map +1 -1
- package/dist/esm/Dialog/Content/Content.js.map +1 -1
- package/dist/esm/Dialog/Dialog.js +2 -2
- package/dist/esm/Dialog/Dialog.js.map +1 -1
- package/dist/esm/Dialog/Title/Title.js.map +1 -1
- package/dist/esm/DotPagination/DotPagination.js +1 -1
- package/dist/esm/DotPagination/DotPagination.js.map +1 -1
- package/dist/esm/DotPagination/DotPagination.styles.js +11 -3
- package/dist/esm/DotPagination/DotPagination.styles.js.map +1 -1
- package/dist/esm/Drawer/Drawer.js.map +1 -1
- package/dist/esm/DropDownMenu/DropDownMenu.js +2 -2
- package/dist/esm/DropDownMenu/DropDownMenu.js.map +1 -1
- package/dist/esm/Dropdown/Dropdown.js +3 -3
- package/dist/esm/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/Dropdown/List/List.js +2 -2
- package/dist/esm/Dropdown/List/List.js.map +1 -1
- package/dist/esm/Dropdown/utils.js.map +1 -1
- package/dist/esm/DropdownButton/DropdownButton.js.map +1 -1
- package/dist/esm/DropdownButton/DropdownButton.styles.js.map +1 -1
- package/dist/esm/EmptyState/EmptyState.js.map +1 -1
- package/dist/esm/FileUploader/DropZone/DropZone.js +2 -2
- package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
- package/dist/esm/FileUploader/File/File.js +1 -1
- package/dist/esm/FileUploader/File/File.js.map +1 -1
- package/dist/esm/FileUploader/FileList/FileList.js +1 -1
- package/dist/esm/FileUploader/FileList/FileList.js.map +1 -1
- package/dist/esm/FileUploader/FileUploader.js +1 -1
- package/dist/esm/FileUploader/FileUploader.js.map +1 -1
- package/dist/esm/FileUploader/Preview/Preview.js.map +1 -1
- package/dist/esm/FileUploader/Preview/Preview.styles.js.map +1 -1
- package/dist/esm/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/FilterGroup/FilterContent/FilterContent.js +2 -2
- package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/esm/FilterGroup/FilterGroup.js +2 -2
- package/dist/esm/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/esm/FilterGroup/FilterGroupContext.js +1 -1
- package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/Focus/Focus.js +2 -2
- package/dist/esm/Focus/Focus.js.map +1 -1
- package/dist/esm/Focus/Focus.styles.js +1 -1
- package/dist/esm/Focus/Focus.styles.js.map +1 -1
- package/dist/esm/Footer/Footer.js.map +1 -1
- package/dist/esm/Forms/Adornment/Adornment.js.map +1 -1
- package/dist/esm/Forms/Adornment/Adornment.styles.js +1 -1
- package/dist/esm/Forms/Adornment/Adornment.styles.js.map +1 -1
- package/dist/esm/Forms/CharCounter/CharCounter.js.map +1 -1
- package/dist/esm/Forms/FormElement/FormElement.js +2 -2
- package/dist/esm/Forms/FormElement/FormElement.js.map +1 -1
- package/dist/esm/Forms/FormElement/utils/FormUtils.js.map +1 -1
- package/dist/esm/Forms/InfoMessage/InfoMessage.js.map +1 -1
- package/dist/esm/Forms/Label/Label.js.map +1 -1
- package/dist/esm/Forms/Suggestions/Suggestions.js +1 -1
- package/dist/esm/Forms/Suggestions/Suggestions.js.map +1 -1
- package/dist/esm/Forms/WarningText/WarningText.js.map +1 -1
- package/dist/esm/GlobalActions/GlobalActions.js.map +1 -1
- package/dist/esm/GlobalActions/GlobalActions.styles.js.map +1 -1
- package/dist/esm/Grid/Grid.js.map +1 -1
- package/dist/esm/Header/Actions/Actions.js.map +1 -1
- package/dist/esm/Header/Brand/Brand.js.map +1 -1
- package/dist/esm/Header/Header.js.map +1 -1
- package/dist/esm/Header/Navigation/MenuBar/Bar.js.map +1 -1
- package/dist/esm/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.js +2 -2
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js +1 -1
- package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
- package/dist/esm/Header/Navigation/Navigation.js +1 -1
- package/dist/esm/Header/Navigation/Navigation.js.map +1 -1
- package/dist/esm/Header/Navigation/Navigation.styles.js.map +1 -1
- package/dist/esm/Header/Navigation/useSelectionPath.js.map +1 -1
- package/dist/esm/Header/Navigation/utils/FocusContext.js.map +1 -1
- package/dist/esm/IconButton/IconButton.js +1 -1
- package/dist/esm/IconButton/IconButton.js.map +1 -1
- package/dist/esm/InlineEditor/InlineEditor.js +1 -1
- package/dist/esm/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/esm/InlineEditor/InlineEditor.styles.js.map +1 -1
- package/dist/esm/Input/Input.js +6 -6
- package/dist/esm/Input/Input.js.map +1 -1
- package/dist/esm/Kpi/Kpi.js.map +1 -1
- package/dist/esm/Link/Link.js.map +1 -1
- package/dist/esm/Link/Link.styles.js +1 -1
- package/dist/esm/Link/Link.styles.js.map +1 -1
- package/dist/esm/List/List.js.map +1 -1
- package/dist/esm/List/useSelectableList.js.map +1 -1
- package/dist/esm/List/utils.js.map +1 -1
- package/dist/esm/ListContainer/ListContainer.js +1 -1
- package/dist/esm/ListContainer/ListContainer.js.map +1 -1
- package/dist/esm/ListContainer/ListItem/ListItem.js.map +1 -1
- package/dist/esm/ListContainer/ListItem/ListItem.styles.js +1 -1
- package/dist/esm/ListContainer/ListItem/ListItem.styles.js.map +1 -1
- package/dist/esm/Loading/Loading.js +1 -1
- package/dist/esm/Loading/Loading.js.map +1 -1
- package/dist/esm/Loading/Loading.styles.js.map +1 -1
- package/dist/esm/LoadingContainer/LoadingContainer.js.map +1 -1
- package/dist/esm/Login/Login.js.map +1 -1
- package/dist/esm/MultiButton/MultiButton.js.map +1 -1
- package/dist/esm/MultiButton/MultiButton.styles.js +1 -1
- package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
- package/dist/esm/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/esm/OverflowTooltip/OverflowTooltip.styles.js.map +1 -1
- package/dist/esm/Pagination/Pagination.js +3 -3
- package/dist/esm/Pagination/Pagination.js.map +1 -1
- package/dist/esm/Pagination/Pagination.styles.js.map +1 -1
- package/dist/esm/Pagination/Select.js.map +1 -1
- package/dist/esm/Pagination/utils.js.map +1 -1
- package/dist/esm/Panel/Panel.js.map +1 -1
- package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/Context.js.map +1 -1
- package/dist/esm/QueryBuilder/QueryBuilder.js +3 -3
- package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js +1 -1
- package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Rule.js +1 -1
- package/dist/esm/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Rule.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/Value.js +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/esm/QueryBuilder/utils/index.js.map +1 -1
- package/dist/esm/QueryBuilder/utils/reducer.js.map +1 -1
- package/dist/esm/Radio/Radio.js +4 -2
- package/dist/esm/Radio/Radio.js.map +1 -1
- package/dist/esm/Radio/Radio.styles.js +4 -2
- package/dist/esm/Radio/Radio.styles.js.map +1 -1
- package/dist/esm/RadioGroup/RadioGroup.js +1 -1
- package/dist/esm/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js +3 -3
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js +1 -1
- package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
- package/dist/esm/ScrollTo/useScrollTo.js.map +1 -1
- package/dist/esm/ScrollTo/utils.js.map +1 -1
- package/dist/esm/ScrollTo/withTooltip.js.map +1 -1
- package/dist/esm/Section/Section.js +1 -1
- package/dist/esm/Section/Section.js.map +1 -1
- package/dist/esm/Select/Option.js.map +1 -1
- package/dist/esm/Select/OptionGroup.js +1 -1
- package/dist/esm/Select/OptionGroup.js.map +1 -1
- package/dist/esm/Select/Select.js +5 -5
- package/dist/esm/Select/Select.js.map +1 -1
- package/dist/esm/SelectionList/SelectionList.js +2 -2
- package/dist/esm/SelectionList/SelectionList.js.map +1 -1
- package/dist/esm/SimpleGrid/SimpleGrid.js.map +1 -1
- package/dist/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
- package/dist/esm/Skeleton/Skeleton.js.map +1 -1
- package/dist/esm/Slider/Slider.js +4 -4
- package/dist/esm/Slider/Slider.js.map +1 -1
- package/dist/esm/Slider/Slider.styles.js +1 -1
- package/dist/esm/Slider/Slider.styles.js.map +1 -1
- package/dist/esm/Slider/SliderInput/SliderInput.js.map +1 -1
- package/dist/esm/Slider/utils.js.map +1 -1
- package/dist/esm/Snackbar/Snackbar.js.map +1 -1
- package/dist/esm/Snackbar/Snackbar.styles.js +1 -1
- package/dist/esm/Snackbar/Snackbar.styles.js.map +1 -1
- package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js +3 -3
- package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js.map +1 -1
- package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +1 -1
- package/dist/esm/SnackbarProvider/SnackbarProvider.js.map +1 -1
- package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js.map +1 -1
- package/dist/esm/Stack/Stack.js +2 -2
- package/dist/esm/Stack/Stack.js.map +1 -1
- package/dist/esm/Switch/Switch.js +2 -2
- package/dist/esm/Switch/Switch.js.map +1 -1
- package/dist/esm/Tab/Tab.js.map +1 -1
- package/dist/esm/Table/Table.js +1 -1
- package/dist/esm/Table/Table.js.map +1 -1
- package/dist/esm/Table/TableBody/TableBody.js.map +1 -1
- package/dist/esm/Table/TableCell/TableCell.js +1 -1
- package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
- package/dist/esm/Table/TableContainer/TableContainer.js.map +1 -1
- package/dist/esm/Table/TableHead/TableHead.js.map +1 -1
- package/dist/esm/Table/TableHeader/TableHeader.js +2 -2
- package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/esm/Table/TableHeader/utils.js.map +1 -1
- package/dist/esm/Table/TableRow/TableRow.js.map +1 -1
- package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
- package/dist/esm/Table/hooks/useBulkActions.js.map +1 -1
- package/dist/esm/Table/hooks/useFilters.js.map +1 -1
- package/dist/esm/Table/hooks/useGlobalFilter.js.map +1 -1
- package/dist/esm/Table/hooks/useHeaderGroups.js.map +1 -1
- package/dist/esm/Table/hooks/usePagination.js.map +1 -1
- package/dist/esm/Table/hooks/useResizeColumns.js.map +1 -1
- package/dist/esm/Table/hooks/useRowExpand.js.map +1 -1
- package/dist/esm/Table/hooks/useRowSelection.js.map +1 -1
- package/dist/esm/Table/hooks/useRowState.js.map +1 -1
- package/dist/esm/Table/hooks/useSortBy.js.map +1 -1
- package/dist/esm/Table/hooks/useSticky.js.map +1 -1
- package/dist/esm/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/Table/hooks/useTableStyles.js.map +1 -1
- package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -1
- package/dist/esm/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +1 -1
- package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +1 -1
- package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -1
- package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +1 -1
- package/dist/esm/Table/renderers/renderers.js.map +1 -1
- package/dist/esm/TableSection/TableSection.js.map +1 -1
- package/dist/esm/TableSection/TableSection.styles.js.map +1 -1
- package/dist/esm/Tabs/Tabs.js.map +1 -1
- package/dist/esm/Tag/Tag.js +3 -3
- package/dist/esm/Tag/Tag.js.map +1 -1
- package/dist/esm/Tag/Tag.styles.js +2 -2
- package/dist/esm/Tag/Tag.styles.js.map +1 -1
- package/dist/esm/TagsInput/TagsInput.js +4 -4
- package/dist/esm/TagsInput/TagsInput.js.map +1 -1
- package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
- package/dist/esm/TextArea/TextArea.js +4 -4
- package/dist/esm/TextArea/TextArea.js.map +1 -1
- package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
- package/dist/esm/TimeAgo/formatUtils.js.map +1 -1
- package/dist/esm/TimeAgo/useTimeAgo.js +1 -1
- package/dist/esm/TimeAgo/useTimeAgo.js.map +1 -1
- package/dist/esm/TimePicker/Placeholder.js.map +1 -1
- package/dist/esm/TimePicker/TimePicker.js +1 -1
- package/dist/esm/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/TimePicker/Unit/Unit.js.map +1 -1
- package/dist/esm/ToggleButton/ToggleButton.js.map +1 -1
- package/dist/esm/Tooltip/Tooltip.js +2 -2
- package/dist/esm/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/Tooltip/Tooltip.styles.js +1 -1
- package/dist/esm/Tooltip/Tooltip.styles.js.map +1 -1
- package/dist/esm/TreeView/TreeItem/DefaultContent.js.map +1 -1
- package/dist/esm/TreeView/TreeItem/TreeItem.js +3 -3
- package/dist/esm/TreeView/TreeItem/TreeItem.js.map +1 -1
- package/dist/esm/TreeView/TreeItem/useHvTreeItem.js.map +1 -1
- package/dist/esm/TreeView/TreeView.js +1 -1
- package/dist/esm/TreeView/TreeView.js.map +1 -1
- package/dist/esm/TreeView/internals/DescendantProvider.js.map +1 -1
- package/dist/esm/TreeView/internals/TreeViewProvider.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/defaultPlugins.js +3 -3
- package/dist/esm/TreeView/internals/hooks/plugins/defaultPlugins.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewExpansion.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewSelection.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js +1 -1
- package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/useTreeView.js +1 -1
- package/dist/esm/TreeView/internals/hooks/useTreeView.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/useTreeViewInstanceEvents.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/useTreeViewModels.js.map +1 -1
- package/dist/esm/TreeView/internals/hooks/utils.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/publishTreeViewEvent.js.map +1 -1
- package/dist/esm/Typography/Typography.js +3 -3
- package/dist/esm/Typography/Typography.js.map +1 -1
- package/dist/esm/VerticalNavigation/Actions/Action.js.map +1 -1
- package/dist/esm/VerticalNavigation/Actions/Action.styles.js +1 -1
- package/dist/esm/VerticalNavigation/Actions/Action.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/Actions/Actions.js.map +1 -1
- package/dist/esm/VerticalNavigation/Actions/Actions.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/Header/Header.js.map +1 -1
- package/dist/esm/VerticalNavigation/Header/Header.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.js +5 -5
- package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js +1 -1
- package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js.map +1 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/NavigationSlider/utils/NavigationSlider.utils.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/IconWrapper/IconWrapper.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/IconWrapper/IconWrapper.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeView.js +2 -2
- package/dist/esm/VerticalNavigation/TreeView/TreeView.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js +4 -4
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js +1 -1
- package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/TreeView/descendants.js.map +1 -1
- package/dist/esm/VerticalNavigation/VerticalNavigation.js +1 -1
- package/dist/esm/VerticalNavigation/VerticalNavigation.js.map +1 -1
- package/dist/esm/VerticalNavigation/VerticalNavigation.styles.js.map +1 -1
- package/dist/esm/VerticalNavigation/VerticalNavigationContext.js.map +1 -1
- package/dist/esm/hocs/withTooltip.js.map +1 -1
- package/dist/esm/hooks/useClickOutside.js.map +1 -1
- package/dist/esm/hooks/useComputation.js.map +1 -1
- package/dist/esm/hooks/useControlled.js.map +1 -1
- package/dist/esm/hooks/useCss.js +1 -1
- package/dist/esm/hooks/useCss.js.map +1 -1
- package/dist/esm/hooks/useDefaultProps.js +19 -13
- package/dist/esm/hooks/useDefaultProps.js.map +1 -1
- package/dist/esm/hooks/useEmotionCache.js +2 -2
- package/dist/esm/hooks/useTheme.js +2 -2
- package/dist/esm/hooks/useWidth.js +1 -1
- package/dist/esm/hooks/useWidth.js.map +1 -1
- package/dist/esm/providers/Provider.js +1 -1
- package/dist/esm/providers/Provider.js.map +1 -1
- package/dist/esm/providers/ThemeProvider.js +2 -2
- package/dist/esm/providers/ThemeProvider.js.map +1 -1
- package/dist/esm/types/generic.js.map +1 -1
- package/dist/esm/utils/classes.js.map +1 -1
- package/dist/esm/utils/hexToRgbA.js.map +1 -1
- package/dist/esm/utils/iconVariant.js.map +1 -1
- package/dist/esm/utils/multiSelectionEventHandler.js.map +1 -1
- package/dist/esm/utils/theme.js.map +1 -1
- package/dist/esm/utils/useSavedState.js.map +1 -1
- package/dist/esm/utils/wrapperTooltip.js.map +1 -1
- package/dist/types/index.d.ts +55 -50
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeViewKeyboardNavigation.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.ts"],"sourcesContent":["import * as React from \"react\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useEventCallback } from \"@mui/material/utils\";\nimport { EventHandlers } from \"@mui/base/utils\";\n\nimport { TreeViewPlugin, TreeViewPluginSignature } from \"../../types\";\nimport {\n getFirstNode,\n getLastNode,\n getNextNode,\n getPreviousNode,\n populateInstance,\n} from \"../utils\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\nimport type { UseTreeViewSelectionSignature } from \"./useTreeViewSelection\";\nimport type { UseTreeViewFocusSignature } from \"./useTreeViewFocus\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\n\nfunction isPrintableCharacter(string: string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(\n firstChars: string[],\n startIndex: number,\n char: string\n) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nexport interface UseTreeViewKeyboardNavigationInstance {\n mapFirstChar: (nodeId: string, firstChar: string) => () => void;\n}\n\nexport type UseTreeViewKeyboardNavigationSignature = TreeViewPluginSignature<\n {},\n {},\n UseTreeViewKeyboardNavigationInstance,\n {},\n {},\n never,\n [\n UseTreeViewNodesSignature,\n UseTreeViewSelectionSignature<any>,\n UseTreeViewFocusSignature,\n UseTreeViewExpansionSignature\n ]\n>;\n\nexport const useTreeViewKeyboardNavigation: TreeViewPlugin<\n UseTreeViewKeyboardNavigationSignature\n> = ({ instance, params, state }) => {\n const theme = useTheme();\n const isRtl = theme.direction === \"rtl\";\n const firstCharMap = React.useRef<{ [nodeId: string]: string }>({});\n\n const mapFirstChar = useEventCallback((nodeId: string, firstChar: string) => {\n firstCharMap.current[nodeId] = firstChar;\n\n return () => {\n const newMap = { ...firstCharMap.current };\n delete newMap[nodeId];\n firstCharMap.current = newMap;\n };\n });\n\n populateInstance<UseTreeViewKeyboardNavigationSignature>(instance, {\n mapFirstChar,\n });\n\n const handleNextArrow = (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (\n state.focusedNodeId != null &&\n instance.isNodeExpandable(state.focusedNodeId)\n ) {\n if (instance.isNodeExpanded(state.focusedNodeId)) {\n instance.focusNode(event, getNextNode(instance, state.focusedNodeId));\n } else if (!instance.isNodeDisabled(state.focusedNodeId)) {\n instance.toggleNodeExpansion(event, state.focusedNodeId);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (\n event: React.KeyboardEvent<HTMLUListElement>\n ) => {\n if (state.focusedNodeId == null) {\n return false;\n }\n\n if (\n instance.isNodeExpanded(state.focusedNodeId) &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.toggleNodeExpansion(event, state.focusedNodeId!);\n return true;\n }\n\n const parent = instance.getNode(state.focusedNodeId).parentId;\n if (parent) {\n instance.focusNode(event, parent);\n return true;\n }\n return false;\n };\n\n const focusByFirstCharacter = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n firstChar: string\n ) => {\n let start: number;\n let index: number;\n const lowercaseChar = firstChar.toLowerCase();\n\n const firstCharIds: string[] = [];\n const firstChars: string[] = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((mapNodeId) => {\n const map = instance.getNode(mapNodeId);\n const visible = map.parentId\n ? instance.isNodeExpanded(map.parentId)\n : true;\n const shouldBeSkipped = params.disabledItemsFocusable\n ? false\n : instance.isNodeDisabled(mapNodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(mapNodeId);\n firstChars.push(firstCharMap.current[mapNodeId]);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(nodeId) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n instance.focusNode(event, firstCharIds[index]);\n }\n };\n\n const selectNextNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: string\n ) => {\n if (!instance.isNodeDisabled(getNextNode(instance, id))) {\n instance.selectRange(\n event,\n {\n end: getNextNode(instance, id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectPreviousNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string\n ) => {\n if (!instance.isNodeDisabled(getPreviousNode(instance, nodeId))) {\n instance.selectRange(\n event,\n {\n end: getPreviousNode(instance, nodeId)!,\n current: nodeId,\n },\n true\n );\n }\n };\n\n const createHandleKeyDown =\n (otherHandlers: EventHandlers) =>\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n otherHandlers.onKeyDown?.(event);\n\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (\n event.altKey ||\n event.currentTarget !== event.target ||\n state.focusedNodeId == null\n ) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n flag = true;\n if (params.multiSelect && event.shiftKey) {\n instance.selectRange(event, { end: state.focusedNodeId });\n } else if (params.multiSelect) {\n instance.selectNode(event, state.focusedNodeId, true);\n } else {\n instance.selectNode(event, state.focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!instance.isNodeDisabled(state.focusedNodeId)) {\n if (instance.isNodeExpandable(state.focusedNodeId)) {\n instance.toggleNodeExpansion(event, state.focusedNodeId);\n flag = true;\n } else if (!params.disableSelection) {\n flag = true;\n if (params.multiSelect) {\n instance.selectNode(event, state.focusedNodeId, true);\n } else {\n instance.selectNode(event, state.focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (\n params.multiSelect &&\n event.shiftKey &&\n !params.disableSelection\n ) {\n selectNextNode(event, state.focusedNodeId);\n }\n instance.focusNode(event, getNextNode(instance, state.focusedNodeId));\n flag = true;\n break;\n case \"ArrowUp\":\n if (\n params.multiSelect &&\n event.shiftKey &&\n !params.disableSelection\n ) {\n selectPreviousNode(event, state.focusedNodeId);\n }\n instance.focusNode(\n event,\n getPreviousNode(instance, state.focusedNodeId)\n );\n flag = true;\n break;\n case \"ArrowRight\":\n if (isRtl) {\n flag = handlePreviousArrow(event);\n } else {\n flag = handleNextArrow(event);\n }\n break;\n case \"ArrowLeft\":\n if (isRtl) {\n flag = handleNextArrow(event);\n } else {\n flag = handlePreviousArrow(event);\n }\n break;\n case \"Home\":\n if (\n params.multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.rangeSelectToFirst(event, state.focusedNodeId);\n }\n instance.focusNode(event, getFirstNode(instance));\n flag = true;\n break;\n case \"End\":\n if (\n params.multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.rangeSelectToLast(event, state.focusedNodeId);\n }\n instance.focusNode(event, getLastNode(instance));\n flag = true;\n break;\n default:\n if (key === \"*\") {\n instance.expandAllSiblings(event, state.focusedNodeId);\n flag = true;\n } else if (\n params.multiSelect &&\n ctrlPressed &&\n key.toLowerCase() === \"a\" &&\n !params.disableSelection\n ) {\n instance.selectRange(event, {\n start: getFirstNode(instance),\n end: getLastNode(instance),\n });\n flag = true;\n } else if (\n !ctrlPressed &&\n !event.shiftKey &&\n isPrintableCharacter(key)\n ) {\n focusByFirstCharacter(event, state.focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return {\n getRootProps: (otherHandlers) => ({\n onKeyDown: createHandleKeyDown(otherHandlers),\n }),\n };\n};\n"],"names":[],"mappings":";;;;AAkBA,SAAS,qBAAqB,QAAgB;AAC5C,SAAO,UAAU,OAAO,WAAW,KAAK,OAAO,MAAM,IAAI;AAC3D;AAEA,SAAS,kBACP,YACA,YACA,MACA;AACA,WAAS,IAAI,YAAY,IAAI,WAAW,QAAQ,KAAK,GAAG;AAClD,QAAA,SAAS,WAAW,CAAC,GAAG;AACnB,aAAA;AAAA,IACT;AAAA,EACF;AACO,SAAA;AACT;AAqBO,MAAM,gCAET,CAAC,EAAE,UAAU,QAAQ,YAAY;AACnC,QAAM,QAAQ;AACR,QAAA,QAAQ,MAAM,cAAc;AAClC,QAAM,eAAe,MAAM,OAAqC,CAAE,CAAA;AAElE,QAAM,eAAe,iBAAiB,CAAC,QAAgB,cAAsB;AAC9D,iBAAA,QAAQ,MAAM,IAAI;AAE/B,WAAO,MAAM;AACX,YAAM,SAAS,EAAE,GAAG,aAAa,QAAQ;AACzC,aAAO,OAAO,MAAM;AACpB,mBAAa,UAAU;AAAA,IAAA;AAAA,EACzB,CACD;AAED,mBAAyD,UAAU;AAAA,IACjE;AAAA,EAAA,CACD;AAEK,QAAA,kBAAkB,CAAC,UAAiD;AACxE,QACE,MAAM,iBAAiB,QACvB,SAAS,iBAAiB,MAAM,aAAa,GAC7C;AACA,UAAI,SAAS,eAAe,MAAM,aAAa,GAAG;AAChD,iBAAS,UAAU,OAAO,YAAY,UAAU,MAAM,aAAa,CAAC;AAAA,iBAC3D,CAAC,SAAS,eAAe,MAAM,aAAa,GAAG;AAC/C,iBAAA,oBAAoB,OAAO,MAAM,aAAa;AAAA,MACzD;AAAA,IACF;AACO,WAAA;AAAA,EAAA;AAGH,QAAA,sBAAsB,CAC1B,UACG;AACC,QAAA,MAAM,iBAAiB,MAAM;AACxB,aAAA;AAAA,IACT;AAGE,QAAA,SAAS,eAAe,MAAM,aAAa,KAC3C,CAAC,SAAS,eAAe,MAAM,aAAa,GAC5C;AACS,eAAA,oBAAoB,OAAO,MAAM,aAAc;AACjD,aAAA;AAAA,IACT;AAEA,UAAM,SAAS,SAAS,QAAQ,MAAM,aAAa,EAAE;AACrD,QAAI,QAAQ;AACD,eAAA,UAAU,OAAO,MAAM;AACzB,aAAA;AAAA,IACT;AACO,WAAA;AAAA,EAAA;AAGT,QAAM,wBAAwB,CAC5B,OACA,QACA,cACG;AACC,QAAA;AACA,QAAA;AACE,UAAA,gBAAgB,UAAU;AAEhC,UAAM,eAAyB,CAAA;AAC/B,UAAM,aAAuB,CAAA;AAE7B,WAAO,KAAK,aAAa,OAAO,EAAE,QAAQ,CAAC,cAAc;AACjD,YAAA,MAAM,SAAS,QAAQ,SAAS;AACtC,YAAM,UAAU,IAAI,WAChB,SAAS,eAAe,IAAI,QAAQ,IACpC;AACJ,YAAM,kBAAkB,OAAO,yBAC3B,QACA,SAAS,eAAe,SAAS;AAEjC,UAAA,WAAW,CAAC,iBAAiB;AAC/B,qBAAa,KAAK,SAAS;AAC3B,mBAAW,KAAK,aAAa,QAAQ,SAAS,CAAC;AAAA,MACjD;AAAA,IAAA,CACD;AAGO,YAAA,aAAa,QAAQ,MAAM,IAAI;AACnC,QAAA,SAAS,aAAa,QAAQ;AACxB,cAAA;AAAA,IACV;AAGQ,YAAA,kBAAkB,YAAY,OAAO,aAAa;AAG1D,QAAI,UAAU,IAAI;AACR,cAAA,kBAAkB,YAAY,GAAG,aAAa;AAAA,IACxD;AAGA,QAAI,QAAQ,IAAI;AACd,eAAS,UAAU,OAAO,aAAa,KAAK,CAAC;AAAA,IAC/C;AAAA,EAAA;AAGI,QAAA,iBAAiB,CACrB,OACA,OACG;AACH,QAAI,CAAC,SAAS,eAAe,YAAY,UAAU,EAAE,CAAC,GAAG;AAC9C,eAAA;AAAA,QACP;AAAA,QACA;AAAA,UACE,KAAK,YAAY,UAAU,EAAE;AAAA,UAC7B,SAAS;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGI,QAAA,qBAAqB,CACzB,OACA,WACG;AACH,QAAI,CAAC,SAAS,eAAe,gBAAgB,UAAU,MAAM,CAAC,GAAG;AACtD,eAAA;AAAA,QACP;AAAA,QACA;AAAA,UACE,KAAK,gBAAgB,UAAU,MAAM;AAAA,UACrC,SAAS;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGF,QAAM,sBACJ,CAAC,kBACD,CAAC,UAAiD;AAChD,kBAAc,YAAY,KAAK;AAE/B,QAAI,OAAO;AACL,UAAA,EAAE,IAAQ,IAAA;AAId,QAAA,MAAM,UACN,MAAM,kBAAkB,MAAM,UAC9B,MAAM,iBAAiB,MACvB;AACA;AAAA,IACF;AAEM,UAAA,cAAc,MAAM,WAAW,MAAM;AAC3C,YAAQ,KAAK;AAAA,MACX,KAAK;AAED,YAAA,CAAC,OAAO,oBACR,CAAC,SAAS,eAAe,MAAM,aAAa,GAC5C;AACO,iBAAA;AACH,cAAA,OAAO,eAAe,MAAM,UAAU;AACxC,qBAAS,YAAY,OAAO,EAAE,KAAK,MAAM,eAAe;AAAA,UAAA,WAC/C,OAAO,aAAa;AAC7B,qBAAS,WAAW,OAAO,MAAM,eAAe,IAAI;AAAA,UAAA,OAC/C;AACI,qBAAA,WAAW,OAAO,MAAM,aAAa;AAAA,UAChD;AAAA,QACF;AACA,cAAM,gBAAgB;AACtB;AAAA,MACF,KAAK;AACH,YAAI,CAAC,SAAS,eAAe,MAAM,aAAa,GAAG;AACjD,cAAI,SAAS,iBAAiB,MAAM,aAAa,GAAG;AACzC,qBAAA,oBAAoB,OAAO,MAAM,aAAa;AAChD,mBAAA;AAAA,UAAA,WACE,CAAC,OAAO,kBAAkB;AAC5B,mBAAA;AACP,gBAAI,OAAO,aAAa;AACtB,uBAAS,WAAW,OAAO,MAAM,eAAe,IAAI;AAAA,YAAA,OAC/C;AACI,uBAAA,WAAW,OAAO,MAAM,aAAa;AAAA,YAChD;AAAA,UACF;AAAA,QACF;AACA,cAAM,gBAAgB;AACtB;AAAA,MACF,KAAK;AACH,YACE,OAAO,eACP,MAAM,YACN,CAAC,OAAO,kBACR;AACe,yBAAA,OAAO,MAAM,aAAa;AAAA,QAC3C;AACA,iBAAS,UAAU,OAAO,YAAY,UAAU,MAAM,aAAa,CAAC;AAC7D,eAAA;AACP;AAAA,MACF,KAAK;AACH,YACE,OAAO,eACP,MAAM,YACN,CAAC,OAAO,kBACR;AACmB,6BAAA,OAAO,MAAM,aAAa;AAAA,QAC/C;AACS,iBAAA;AAAA,UACP;AAAA,UACA,gBAAgB,UAAU,MAAM,aAAa;AAAA,QAAA;AAExC,eAAA;AACP;AAAA,MACF,KAAK;AACH,YAAI,OAAO;AACT,iBAAO,oBAAoB,KAAK;AAAA,QAAA,OAC3B;AACL,iBAAO,gBAAgB,KAAK;AAAA,QAC9B;AACA;AAAA,MACF,KAAK;AACH,YAAI,OAAO;AACT,iBAAO,gBAAgB,KAAK;AAAA,QAAA,OACvB;AACL,iBAAO,oBAAoB,KAAK;AAAA,QAClC;AACA;AAAA,MACF,KAAK;AACH,YACE,OAAO,eACP,eACA,MAAM,YACN,CAAC,OAAO,oBACR,CAAC,SAAS,eAAe,MAAM,aAAa,GAC5C;AACS,mBAAA,mBAAmB,OAAO,MAAM,aAAa;AAAA,QACxD;AACA,iBAAS,UAAU,OAAO,aAAa,QAAQ,CAAC;AACzC,eAAA;AACP;AAAA,MACF,KAAK;AACH,YACE,OAAO,eACP,eACA,MAAM,YACN,CAAC,OAAO,oBACR,CAAC,SAAS,eAAe,MAAM,aAAa,GAC5C;AACS,mBAAA,kBAAkB,OAAO,MAAM,aAAa;AAAA,QACvD;AACA,iBAAS,UAAU,OAAO,YAAY,QAAQ,CAAC;AACxC,eAAA;AACP;AAAA,MACF;AACE,YAAI,QAAQ,KAAK;AACN,mBAAA,kBAAkB,OAAO,MAAM,aAAa;AAC9C,iBAAA;AAAA,QAAA,WAEP,OAAO,eACP,eACA,IAAI,kBAAkB,OACtB,CAAC,OAAO,kBACR;AACA,mBAAS,YAAY,OAAO;AAAA,YAC1B,OAAO,aAAa,QAAQ;AAAA,YAC5B,KAAK,YAAY,QAAQ;AAAA,UAAA,CAC1B;AACM,iBAAA;AAAA,QAAA,WAEP,CAAC,eACD,CAAC,MAAM,YACP,qBAAqB,GAAG,GACxB;AACsB,gCAAA,OAAO,MAAM,eAAe,GAAG;AAC9C,iBAAA;AAAA,QACT;AAAA,IACJ;AAEA,QAAI,MAAM;AACR,YAAM,eAAe;AACrB,YAAM,gBAAgB;AAAA,IACxB;AAAA,EAAA;AAGG,SAAA;AAAA,IACL,cAAc,CAAC,mBAAmB;AAAA,MAChC,WAAW,oBAAoB,aAAa;AAAA,IAAA;AAAA,EAC9C;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"useTreeViewKeyboardNavigation.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.ts"],"sourcesContent":["import * as React from \"react\";\nimport { EventHandlers } from \"@mui/base/utils\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useEventCallback } from \"@mui/material/utils\";\n\nimport { TreeViewPlugin, TreeViewPluginSignature } from \"../../types\";\nimport {\n getFirstNode,\n getLastNode,\n getNextNode,\n getPreviousNode,\n populateInstance,\n} from \"../utils\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\nimport type { UseTreeViewFocusSignature } from \"./useTreeViewFocus\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\nimport type { UseTreeViewSelectionSignature } from \"./useTreeViewSelection\";\n\nfunction isPrintableCharacter(string: string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(\n firstChars: string[],\n startIndex: number,\n char: string,\n) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nexport interface UseTreeViewKeyboardNavigationInstance {\n mapFirstChar: (nodeId: string, firstChar: string) => () => void;\n}\n\nexport type UseTreeViewKeyboardNavigationSignature = TreeViewPluginSignature<\n {},\n {},\n UseTreeViewKeyboardNavigationInstance,\n {},\n {},\n never,\n [\n UseTreeViewNodesSignature,\n UseTreeViewSelectionSignature<any>,\n UseTreeViewFocusSignature,\n UseTreeViewExpansionSignature,\n ]\n>;\n\nexport const useTreeViewKeyboardNavigation: TreeViewPlugin<\n UseTreeViewKeyboardNavigationSignature\n> = ({ instance, params, state }) => {\n const theme = useTheme();\n const isRtl = theme.direction === \"rtl\";\n const firstCharMap = React.useRef<{ [nodeId: string]: string }>({});\n\n const mapFirstChar = useEventCallback((nodeId: string, firstChar: string) => {\n firstCharMap.current[nodeId] = firstChar;\n\n return () => {\n const newMap = { ...firstCharMap.current };\n delete newMap[nodeId];\n firstCharMap.current = newMap;\n };\n });\n\n populateInstance<UseTreeViewKeyboardNavigationSignature>(instance, {\n mapFirstChar,\n });\n\n const handleNextArrow = (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (\n state.focusedNodeId != null &&\n instance.isNodeExpandable(state.focusedNodeId)\n ) {\n if (instance.isNodeExpanded(state.focusedNodeId)) {\n instance.focusNode(event, getNextNode(instance, state.focusedNodeId));\n } else if (!instance.isNodeDisabled(state.focusedNodeId)) {\n instance.toggleNodeExpansion(event, state.focusedNodeId);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (\n event: React.KeyboardEvent<HTMLUListElement>,\n ) => {\n if (state.focusedNodeId == null) {\n return false;\n }\n\n if (\n instance.isNodeExpanded(state.focusedNodeId) &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.toggleNodeExpansion(event, state.focusedNodeId!);\n return true;\n }\n\n const parent = instance.getNode(state.focusedNodeId).parentId;\n if (parent) {\n instance.focusNode(event, parent);\n return true;\n }\n return false;\n };\n\n const focusByFirstCharacter = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n firstChar: string,\n ) => {\n let start: number;\n let index: number;\n const lowercaseChar = firstChar.toLowerCase();\n\n const firstCharIds: string[] = [];\n const firstChars: string[] = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((mapNodeId) => {\n const map = instance.getNode(mapNodeId);\n const visible = map.parentId\n ? instance.isNodeExpanded(map.parentId)\n : true;\n const shouldBeSkipped = params.disabledItemsFocusable\n ? false\n : instance.isNodeDisabled(mapNodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(mapNodeId);\n firstChars.push(firstCharMap.current[mapNodeId]);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(nodeId) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n instance.focusNode(event, firstCharIds[index]);\n }\n };\n\n const selectNextNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n id: string,\n ) => {\n if (!instance.isNodeDisabled(getNextNode(instance, id))) {\n instance.selectRange(\n event,\n {\n end: getNextNode(instance, id),\n current: id,\n },\n true,\n );\n }\n };\n\n const selectPreviousNode = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!instance.isNodeDisabled(getPreviousNode(instance, nodeId))) {\n instance.selectRange(\n event,\n {\n end: getPreviousNode(instance, nodeId)!,\n current: nodeId,\n },\n true,\n );\n }\n };\n\n const createHandleKeyDown =\n (otherHandlers: EventHandlers) =>\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n otherHandlers.onKeyDown?.(event);\n\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (\n event.altKey ||\n event.currentTarget !== event.target ||\n state.focusedNodeId == null\n ) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n flag = true;\n if (params.multiSelect && event.shiftKey) {\n instance.selectRange(event, { end: state.focusedNodeId });\n } else if (params.multiSelect) {\n instance.selectNode(event, state.focusedNodeId, true);\n } else {\n instance.selectNode(event, state.focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!instance.isNodeDisabled(state.focusedNodeId)) {\n if (instance.isNodeExpandable(state.focusedNodeId)) {\n instance.toggleNodeExpansion(event, state.focusedNodeId);\n flag = true;\n } else if (!params.disableSelection) {\n flag = true;\n if (params.multiSelect) {\n instance.selectNode(event, state.focusedNodeId, true);\n } else {\n instance.selectNode(event, state.focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (\n params.multiSelect &&\n event.shiftKey &&\n !params.disableSelection\n ) {\n selectNextNode(event, state.focusedNodeId);\n }\n instance.focusNode(event, getNextNode(instance, state.focusedNodeId));\n flag = true;\n break;\n case \"ArrowUp\":\n if (\n params.multiSelect &&\n event.shiftKey &&\n !params.disableSelection\n ) {\n selectPreviousNode(event, state.focusedNodeId);\n }\n instance.focusNode(\n event,\n getPreviousNode(instance, state.focusedNodeId),\n );\n flag = true;\n break;\n case \"ArrowRight\":\n if (isRtl) {\n flag = handlePreviousArrow(event);\n } else {\n flag = handleNextArrow(event);\n }\n break;\n case \"ArrowLeft\":\n if (isRtl) {\n flag = handleNextArrow(event);\n } else {\n flag = handlePreviousArrow(event);\n }\n break;\n case \"Home\":\n if (\n params.multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.rangeSelectToFirst(event, state.focusedNodeId);\n }\n instance.focusNode(event, getFirstNode(instance));\n flag = true;\n break;\n case \"End\":\n if (\n params.multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !params.disableSelection &&\n !instance.isNodeDisabled(state.focusedNodeId)\n ) {\n instance.rangeSelectToLast(event, state.focusedNodeId);\n }\n instance.focusNode(event, getLastNode(instance));\n flag = true;\n break;\n default:\n if (key === \"*\") {\n instance.expandAllSiblings(event, state.focusedNodeId);\n flag = true;\n } else if (\n params.multiSelect &&\n ctrlPressed &&\n key.toLowerCase() === \"a\" &&\n !params.disableSelection\n ) {\n instance.selectRange(event, {\n start: getFirstNode(instance),\n end: getLastNode(instance),\n });\n flag = true;\n } else if (\n !ctrlPressed &&\n !event.shiftKey &&\n isPrintableCharacter(key)\n ) {\n focusByFirstCharacter(event, state.focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return {\n getRootProps: (otherHandlers) => ({\n onKeyDown: createHandleKeyDown(otherHandlers),\n }),\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { useEventCallback } from "@mui/material/utils";
|
|
3
|
-
import { populateInstance } from "../utils.js";
|
|
4
3
|
import { publishTreeViewEvent } from "../../utils/publishTreeViewEvent.js";
|
|
4
|
+
import { populateInstance } from "../utils.js";
|
|
5
5
|
const useTreeViewNodes = ({
|
|
6
6
|
instance,
|
|
7
7
|
params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeViewNodes.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewNodes.ts"],"sourcesContent":["import * as React from \"react\";\nimport { useEventCallback } from \"@mui/material/utils\";\n\nimport {\n DefaultizedProps,\n TreeViewNode,\n TreeViewPlugin,\n TreeViewPluginSignature,\n} from \"../../types\";\nimport {
|
|
1
|
+
{"version":3,"file":"useTreeViewNodes.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewNodes.ts"],"sourcesContent":["import * as React from \"react\";\nimport { useEventCallback } from \"@mui/material/utils\";\n\nimport {\n DefaultizedProps,\n TreeViewNode,\n TreeViewPlugin,\n TreeViewPluginSignature,\n} from \"../../types\";\nimport { publishTreeViewEvent } from \"../../utils/publishTreeViewEvent\";\nimport { populateInstance } from \"../utils\";\n\nexport interface UseTreeViewNodesInstance {\n getNode: (nodeId: string) => TreeViewNode;\n updateNode: (node: TreeViewNode) => void;\n removeNode: (nodeId: string) => void;\n getChildrenIds: (nodeId: string | null) => string[];\n getNavigableChildrenIds: (nodeId: string | null) => string[];\n isNodeDisabled: (nodeId: string | null) => nodeId is string;\n}\n\nexport interface UseTreeViewNodesParameters {\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable?: boolean;\n}\n\nexport type UseTreeViewNodesDefaultizedParameters = DefaultizedProps<\n UseTreeViewNodesParameters,\n \"disabledItemsFocusable\"\n>;\n\ninterface UseTreeViewNodesEventLookup {\n removeNode: {\n params: { id: string };\n };\n}\n\nexport type UseTreeViewNodesSignature = TreeViewPluginSignature<\n UseTreeViewNodesParameters,\n UseTreeViewNodesDefaultizedParameters,\n UseTreeViewNodesInstance,\n UseTreeViewNodesEventLookup,\n {},\n never,\n []\n>;\n\nexport const useTreeViewNodes: TreeViewPlugin<UseTreeViewNodesSignature> = ({\n instance,\n params,\n}) => {\n const nodeMap = React.useRef<{ [nodeId: string]: TreeViewNode }>({});\n\n const getNode = React.useCallback(\n (nodeId: string) => nodeMap.current[nodeId],\n [],\n );\n\n const insertNode = React.useCallback((node: TreeViewNode) => {\n nodeMap.current[node.id] = node;\n }, []);\n\n const removeNode = React.useCallback(\n (nodeId: string) => {\n const newMap = { ...nodeMap.current };\n delete newMap[nodeId];\n nodeMap.current = newMap;\n publishTreeViewEvent(instance as any, \"removeNode\", { id: nodeId });\n },\n [instance],\n );\n\n const isNodeDisabled = React.useCallback(\n (nodeId: string | null): nodeId is string => {\n if (nodeId == null) {\n return false;\n }\n\n let node = instance.getNode(nodeId);\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = instance.getNode(node.parentId);\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n },\n [instance],\n );\n\n const getChildrenIds = useEventCallback((nodeId: string | null) =>\n Object.values(nodeMap.current)\n .filter((node) => node.parentId === nodeId)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id),\n );\n\n const getNavigableChildrenIds = (nodeId: string | null) => {\n let childrenIds = instance.getChildrenIds(nodeId);\n\n if (!params.disabledItemsFocusable) {\n childrenIds = childrenIds.filter(\n (node) => !instance.isNodeDisabled(node),\n );\n }\n return childrenIds;\n };\n\n populateInstance<UseTreeViewNodesSignature>(instance, {\n getNode,\n updateNode: insertNode,\n removeNode,\n getChildrenIds,\n getNavigableChildrenIds,\n isNodeDisabled,\n });\n};\n"],"names":[],"mappings":";;;;AAkDO,MAAM,mBAA8D,CAAC;AAAA,EAC1E;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,MAAM,OAA2C,CAAE,CAAA;AAEnE,QAAM,UAAU,MAAM;AAAA,IACpB,CAAC,WAAmB,QAAQ,QAAQ,MAAM;AAAA,IAC1C,CAAC;AAAA,EAAA;AAGH,QAAM,aAAa,MAAM,YAAY,CAAC,SAAuB;AACnD,YAAA,QAAQ,KAAK,EAAE,IAAI;AAAA,EAC7B,GAAG,CAAE,CAAA;AAEL,QAAM,aAAa,MAAM;AAAA,IACvB,CAAC,WAAmB;AAClB,YAAM,SAAS,EAAE,GAAG,QAAQ,QAAQ;AACpC,aAAO,OAAO,MAAM;AACpB,cAAQ,UAAU;AAClB,2BAAqB,UAAiB,cAAc,EAAE,IAAI,OAAQ,CAAA;AAAA,IACpE;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA;AAGX,QAAM,iBAAiB,MAAM;AAAA,IAC3B,CAAC,WAA4C;AAC3C,UAAI,UAAU,MAAM;AACX,eAAA;AAAA,MACT;AAEI,UAAA,OAAO,SAAS,QAAQ,MAAM;AAGlC,UAAI,CAAC,MAAM;AACF,eAAA;AAAA,MACT;AAEA,UAAI,KAAK,UAAU;AACV,eAAA;AAAA,MACT;AAEO,aAAA,KAAK,YAAY,MAAM;AACrB,eAAA,SAAS,QAAQ,KAAK,QAAQ;AACrC,YAAI,KAAK,UAAU;AACV,iBAAA;AAAA,QACT;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA;AAGX,QAAM,iBAAiB;AAAA,IAAiB,CAAC,WACvC,OAAO,OAAO,QAAQ,OAAO,EAC1B,OAAO,CAAC,SAAS,KAAK,aAAa,MAAM,EACzC,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAChC,IAAI,CAAC,UAAU,MAAM,EAAE;AAAA,EAAA;AAGtB,QAAA,0BAA0B,CAAC,WAA0B;AACrD,QAAA,cAAc,SAAS,eAAe,MAAM;AAE5C,QAAA,CAAC,OAAO,wBAAwB;AAClC,oBAAc,YAAY;AAAA,QACxB,CAAC,SAAS,CAAC,SAAS,eAAe,IAAI;AAAA,MAAA;AAAA,IAE3C;AACO,WAAA;AAAA,EAAA;AAGT,mBAA4C,UAAU;AAAA,IACpD;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeViewSelection.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewSelection.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n TreeViewPlugin,\n TreeViewItemRange,\n DefaultizedProps,\n TreeViewPluginSignature,\n TreeViewInstance,\n} from \"../../types\";\nimport {\n populateInstance,\n getNextNode,\n getFirstNode,\n getLastNode,\n} from \"../utils\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\n\n/**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\nexport const findOrderInTremauxTree = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n nodeAId: string,\n nodeBId: string\n) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = instance.getNode(nodeAId);\n const nodeB = instance.getNode(nodeBId);\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily: (string | null)[] = [nodeA.id];\n const bFamily: (string | null)[] = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = instance.getNode(aAncestor!).parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = instance.getNode(bAncestor!).parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = instance.getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide!) < ancestorFamily.indexOf(bSide!)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n};\n\nexport interface UseTreeViewSelectionInstance {\n isNodeSelected: (nodeId: string) => boolean;\n selectNode: (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple?: boolean\n ) => void;\n selectRange: (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked?: boolean\n ) => void;\n rangeSelectToFirst: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string\n ) => void;\n rangeSelectToLast: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string\n ) => void;\n}\n\ntype TreeViewSelectionValue<Multiple extends boolean | undefined> =\n Multiple extends true ? string[] : string | null;\n\nexport interface UseTreeViewSelectionParameters<\n Multiple extends boolean | undefined\n> {\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection?: boolean;\n /**\n * Selected node ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: TreeViewSelectionValue<Multiple>;\n /**\n * Selected node ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: TreeViewSelectionValue<Multiple>;\n /**\n * If true `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect?: Multiple;\n /**\n * Callback fired when tree items are selected/unselected.\n * @param {React.SyntheticEvent} event The event source of the callback\n * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true\n * this is an array of strings; when false (default) a string.\n */\n onNodeSelect?: (\n event: React.SyntheticEvent,\n nodeIds: Exclude<TreeViewSelectionValue<Multiple>, null>\n ) => void;\n}\n\nexport type UseTreeViewSelectionDefaultizedParameters<\n Multiple extends boolean\n> = DefaultizedProps<\n UseTreeViewSelectionParameters<Multiple>,\n \"disableSelection\" | \"defaultSelected\" | \"multiSelect\"\n>;\n\nexport type UseTreeViewSelectionSignature<\n Multiple extends boolean | undefined\n> = TreeViewPluginSignature<\n UseTreeViewSelectionParameters<Multiple>,\n UseTreeViewSelectionDefaultizedParameters<\n Multiple extends undefined ? false : Multiple\n >,\n UseTreeViewSelectionInstance,\n {},\n {},\n \"selected\",\n [\n UseTreeViewNodesSignature,\n UseTreeViewExpansionSignature,\n UseTreeViewNodesSignature\n ]\n>;\n\nexport const useTreeViewSelection: TreeViewPlugin<\n UseTreeViewSelectionSignature<any>\n> = ({ instance, params, models }) => {\n const lastSelectedNode = React.useRef<string | null>(null);\n const lastSelectionWasRange = React.useRef(false);\n const currentRangeSelection = React.useRef<string[]>([]);\n\n const isNodeSelected = (nodeId: string) =>\n Array.isArray(models.selected.value)\n ? models.selected.value.indexOf(nodeId) !== -1\n : models.selected.value === nodeId;\n\n const selectNode = (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple = false\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n if (multiple) {\n if (Array.isArray(models.selected.value)) {\n let newSelected: string[];\n if (models.selected.value.indexOf(nodeId) !== -1) {\n newSelected = models.selected.value.filter((id) => id !== nodeId);\n } else {\n newSelected = [nodeId].concat(models.selected.value);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected\n );\n }\n\n models.selected.setValue(newSelected);\n }\n } else {\n const newSelected = params.multiSelect ? [nodeId] : nodeId;\n\n if (params.onNodeSelect) {\n params.onNodeSelect(event, newSelected as string & string[]);\n }\n\n models.selected.setValue(newSelected);\n }\n lastSelectedNode.current = nodeId;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n };\n\n const getNodesInRange = (nodeAId: string, nodeBId: string) => {\n const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(instance, current)!;\n nodes.push(current);\n }\n\n return nodes;\n };\n\n const handleRangeArrowSelect = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n base\n );\n }\n\n models.selected.setValue(base);\n };\n\n const handleRangeSelect = (\n event: React.SyntheticEvent,\n nodes: { start: string; end: string }\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !instance.isNodeDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected\n );\n }\n\n models.selected.setValue(newSelected);\n };\n\n const selectRange = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked = false\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n };\n\n const rangeSelectToFirst = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getFirstNode(instance),\n });\n };\n\n const rangeSelectToLast = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getLastNode(instance),\n });\n };\n\n populateInstance<UseTreeViewSelectionSignature<any>>(instance, {\n isNodeSelected,\n selectNode,\n selectRange,\n rangeSelectToLast,\n rangeSelectToFirst,\n });\n\n return {\n getRootProps: () => ({\n \"aria-multiselectable\": params.multiSelect,\n }),\n };\n};\n\nuseTreeViewSelection.models = {\n selected: { controlledProp: \"selected\", defaultProp: \"defaultSelected\" },\n};\n\nconst DEFAULT_SELECTED: string[] = [];\n\nuseTreeViewSelection.getDefaultizedParams = (params) => ({\n ...params,\n disableSelection: params.disableSelection ?? false,\n multiSelect: params.multiSelect ?? false,\n defaultSelected:\n params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null),\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTreeViewSelection.js","sources":["../../../../../../src/TreeView/internals/hooks/plugins/useTreeViewSelection.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type {\n DefaultizedProps,\n TreeViewInstance,\n TreeViewItemRange,\n TreeViewPlugin,\n TreeViewPluginSignature,\n} from \"../../types\";\nimport {\n getFirstNode,\n getLastNode,\n getNextNode,\n populateInstance,\n} from \"../utils\";\nimport type { UseTreeViewExpansionSignature } from \"./useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./useTreeViewNodes\";\n\n/**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\nexport const findOrderInTremauxTree = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n nodeAId: string,\n nodeBId: string,\n) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = instance.getNode(nodeAId);\n const nodeB = instance.getNode(nodeBId);\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily: (string | null)[] = [nodeA.id];\n const bFamily: (string | null)[] = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = instance.getNode(aAncestor!).parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = instance.getNode(bAncestor!).parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = instance.getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide!) < ancestorFamily.indexOf(bSide!)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n};\n\nexport interface UseTreeViewSelectionInstance {\n isNodeSelected: (nodeId: string) => boolean;\n selectNode: (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple?: boolean,\n ) => void;\n selectRange: (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked?: boolean,\n ) => void;\n rangeSelectToFirst: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n rangeSelectToLast: (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => void;\n}\n\ntype TreeViewSelectionValue<Multiple extends boolean | undefined> =\n Multiple extends true ? string[] : string | null;\n\nexport interface UseTreeViewSelectionParameters<\n Multiple extends boolean | undefined,\n> {\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection?: boolean;\n /**\n * Selected node ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: TreeViewSelectionValue<Multiple>;\n /**\n * Selected node ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: TreeViewSelectionValue<Multiple>;\n /**\n * If true `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect?: Multiple;\n /**\n * Callback fired when tree items are selected/unselected.\n * @param {React.SyntheticEvent} event The event source of the callback\n * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true\n * this is an array of strings; when false (default) a string.\n */\n onNodeSelect?: (\n event: React.SyntheticEvent,\n nodeIds: Exclude<TreeViewSelectionValue<Multiple>, null>,\n ) => void;\n}\n\nexport type UseTreeViewSelectionDefaultizedParameters<\n Multiple extends boolean,\n> = DefaultizedProps<\n UseTreeViewSelectionParameters<Multiple>,\n \"disableSelection\" | \"defaultSelected\" | \"multiSelect\"\n>;\n\nexport type UseTreeViewSelectionSignature<\n Multiple extends boolean | undefined,\n> = TreeViewPluginSignature<\n UseTreeViewSelectionParameters<Multiple>,\n UseTreeViewSelectionDefaultizedParameters<\n Multiple extends undefined ? false : Multiple\n >,\n UseTreeViewSelectionInstance,\n {},\n {},\n \"selected\",\n [\n UseTreeViewNodesSignature,\n UseTreeViewExpansionSignature,\n UseTreeViewNodesSignature,\n ]\n>;\n\nexport const useTreeViewSelection: TreeViewPlugin<\n UseTreeViewSelectionSignature<any>\n> = ({ instance, params, models }) => {\n const lastSelectedNode = React.useRef<string | null>(null);\n const lastSelectionWasRange = React.useRef(false);\n const currentRangeSelection = React.useRef<string[]>([]);\n\n const isNodeSelected = (nodeId: string) =>\n Array.isArray(models.selected.value)\n ? models.selected.value.indexOf(nodeId) !== -1\n : models.selected.value === nodeId;\n\n const selectNode = (\n event: React.SyntheticEvent,\n nodeId: string,\n multiple = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n if (multiple) {\n if (Array.isArray(models.selected.value)) {\n let newSelected: string[];\n if (models.selected.value.indexOf(nodeId) !== -1) {\n newSelected = models.selected.value.filter((id) => id !== nodeId);\n } else {\n newSelected = [nodeId].concat(models.selected.value);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n }\n } else {\n const newSelected = params.multiSelect ? [nodeId] : nodeId;\n\n if (params.onNodeSelect) {\n params.onNodeSelect(event, newSelected as string & string[]);\n }\n\n models.selected.setValue(newSelected);\n }\n lastSelectedNode.current = nodeId;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n };\n\n const getNodesInRange = (nodeAId: string, nodeBId: string) => {\n const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(instance, current)!;\n nodes.push(current);\n }\n\n return nodes;\n };\n\n const handleRangeArrowSelect = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current,\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n base,\n );\n }\n\n models.selected.setValue(base);\n };\n\n const handleRangeSelect = (\n event: React.SyntheticEvent,\n nodes: { start: string; end: string },\n ) => {\n let base = (models.selected.value as string[]).slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1,\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !instance.isNodeDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (params.onNodeSelect) {\n (params.onNodeSelect as UseTreeViewSelectionDefaultizedParameters<true>[\"onNodeSelect\"])!(\n event,\n newSelected,\n );\n }\n\n models.selected.setValue(newSelected);\n };\n\n const selectRange = (\n event: React.SyntheticEvent,\n nodes: TreeViewItemRange,\n stacked = false,\n ) => {\n if (params.disableSelection) {\n return;\n }\n\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n };\n\n const rangeSelectToFirst = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getFirstNode(instance),\n });\n };\n\n const rangeSelectToLast = (\n event: React.KeyboardEvent<HTMLUListElement>,\n nodeId: string,\n ) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = nodeId;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : nodeId;\n\n instance.selectRange(event, {\n start,\n end: getLastNode(instance),\n });\n };\n\n populateInstance<UseTreeViewSelectionSignature<any>>(instance, {\n isNodeSelected,\n selectNode,\n selectRange,\n rangeSelectToLast,\n rangeSelectToFirst,\n });\n\n return {\n getRootProps: () => ({\n \"aria-multiselectable\": params.multiSelect,\n }),\n };\n};\n\nuseTreeViewSelection.models = {\n selected: { controlledProp: \"selected\", defaultProp: \"defaultSelected\" },\n};\n\nconst DEFAULT_SELECTED: string[] = [];\n\nuseTreeViewSelection.getDefaultizedParams = (params) => ({\n ...params,\n disableSelection: params.disableSelection ?? false,\n multiSelect: params.multiSelect ?? false,\n defaultSelected:\n params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null),\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { TimerBasedCleanupTracking } from "../utils/TimerBasedCleanupTracking.js";
|
|
3
2
|
import { FinalizationRegistryBasedCleanupTracking } from "../utils/FinalizationRegistryBasedCleanupTracking.js";
|
|
3
|
+
import { TimerBasedCleanupTracking } from "../utils/TimerBasedCleanupTracking.js";
|
|
4
4
|
class ObjectToBeRetainedByReact {
|
|
5
5
|
}
|
|
6
6
|
function createUseInstanceEventHandler(registryContainer2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInstanceEventHandler.js","sources":["../../../../../src/TreeView/internals/hooks/useInstanceEventHandler.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"useInstanceEventHandler.js","sources":["../../../../../src/TreeView/internals/hooks/useInstanceEventHandler.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport { TreeViewAnyPluginSignature, TreeViewUsedEvents } from \"../types\";\nimport { TreeViewEventListener } from \"../types/events\";\nimport { CleanupTracking, UnregisterToken } from \"../utils/CleanupTracking\";\nimport { FinalizationRegistryBasedCleanupTracking } from \"../utils/FinalizationRegistryBasedCleanupTracking\";\nimport { TimerBasedCleanupTracking } from \"../utils/TimerBasedCleanupTracking\";\nimport { UseTreeViewInstanceEventsInstance } from \"./useTreeViewInstanceEvents.types\";\n\ninterface RegistryContainer {\n registry: CleanupTracking | null;\n}\n\n// We use class to make it easier to detect in heap snapshots by name\nclass ObjectToBeRetainedByReact {}\n\n// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\nexport function createUseInstanceEventHandler(\n registryContainer: RegistryContainer,\n) {\n let cleanupTokensCounter = 0;\n\n return function useInstanceEventHandler<\n Instance extends UseTreeViewInstanceEventsInstance & {\n $$signature: TreeViewAnyPluginSignature;\n },\n E extends keyof TreeViewUsedEvents<Instance[\"$$signature\"]>,\n >(\n instance: Instance,\n eventName: E,\n handler: TreeViewEventListener<\n TreeViewUsedEvents<Instance[\"$$signature\"]>[E]\n >,\n ) {\n type Signature = Instance[\"$$signature\"];\n\n if (registryContainer.registry === null) {\n registryContainer.registry =\n typeof FinalizationRegistry !== \"undefined\"\n ? new FinalizationRegistryBasedCleanupTracking()\n : new TimerBasedCleanupTracking();\n }\n\n const [objectRetainedByReact] = React.useState(\n new ObjectToBeRetainedByReact(),\n );\n const subscription = React.useRef<(() => void) | null>(null);\n const handlerRef = React.useRef<\n TreeViewEventListener<TreeViewUsedEvents<Signature>[E]> | undefined\n >();\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef<UnregisterToken | null>(null);\n\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = { cleanupToken: cleanupTokensCounter };\n\n registryContainer.registry.register(\n objectRetainedByReact, // The callback below will be called once this reference stops being retained\n () => {\n subscription.current?.();\n subscription.current = null;\n cleanupTokenRef.current = null;\n },\n cleanupTokenRef.current,\n );\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n\n if (cleanupTokenRef.current) {\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler: TreeViewEventListener<\n TreeViewUsedEvents<Signature>[E]\n > = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n\n subscription.current = instance.$$subscribeEvent(\n eventName as string,\n enhancedHandler,\n );\n }\n\n if (cleanupTokenRef.current && registryContainer.registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n\n return () => {\n subscription.current?.();\n subscription.current = null;\n };\n }, [instance, eventName]);\n };\n}\n\nconst registryContainer: RegistryContainer = { registry: null };\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_resetCleanupTracking = () => {\n registryContainer.registry?.reset();\n registryContainer.registry = null;\n};\n\nexport const useInstanceEventHandler =\n createUseInstanceEventHandler(registryContainer);\n"],"names":["registryContainer","useInstanceEventHandler"],"mappings":";;;AAcA,MAAM,0BAA0B;AAAC;AAI1B,SAAS,8BACdA,oBACA;AACA,MAAI,uBAAuB;AAE3B,SAAO,SAASC,yBAMd,UACA,WACA,SAGA;AAGID,QAAAA,mBAAkB,aAAa,MAAM;AACvCA,yBAAkB,WAChB,OAAO,yBAAyB,cAC5B,IAAI,yCACJ,IAAA,IAAI;IACZ;AAEM,UAAA,CAAC,qBAAqB,IAAI,MAAM;AAAA,MACpC,IAAI,0BAA0B;AAAA,IAAA;AAE1B,UAAA,eAAe,MAAM,OAA4B,IAAI;AACrD,UAAA,aAAa,MAAM;AAGzB,eAAW,UAAU;AACf,UAAA,kBAAkB,MAAM,OAA+B,IAAI;AAEjE,QAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,YAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,YAAA,CAAC,MAAM,qBAAqB;AACnB,qBAAA,UAAU,QAAQ,KAAK;AAAA,QACpC;AAAA,MAAA;AAGF,mBAAa,UAAU,SAAS;AAAA,QAC9B;AAAA,QACA;AAAA,MAAA;AAGsB,8BAAA;AACR,sBAAA,UAAU,EAAE,cAAc,qBAAqB;AAE/DA,yBAAkB,SAAS;AAAA,QACzB;AAAA;AAAA,QACA,MAAM;AACJ,uBAAa,UAAU;AACvB,uBAAa,UAAU;AACvB,0BAAgB,UAAU;AAAA,QAC5B;AAAA,QACA,gBAAgB;AAAA,MAAA;AAAA,IAET,WAAA,CAAC,WAAW,WAAW,aAAa,SAAS;AACtD,mBAAa,QAAQ;AACrB,mBAAa,UAAU;AAEvB,UAAI,gBAAgB,SAAS;AAC3BA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAC5B;AAAA,IACF;AAEA,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,aAAa,WAAW,WAAW,SAAS;AACzC,cAAA,kBAEF,CAAC,QAAQ,UAAU;AACjB,cAAA,CAAC,MAAM,qBAAqB;AACnB,uBAAA,UAAU,QAAQ,KAAK;AAAA,UACpC;AAAA,QAAA;AAGF,qBAAa,UAAU,SAAS;AAAA,UAC9B;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AAEI,UAAA,gBAAgB,WAAWA,mBAAkB,UAAU;AAGzDA,2BAAkB,SAAS,WAAW,gBAAgB,OAAO;AAC7D,wBAAgB,UAAU;AAAA,MAC5B;AAEA,aAAO,MAAM;AACX,qBAAa,UAAU;AACvB,qBAAa,UAAU;AAAA,MAAA;AAAA,IACzB,GACC,CAAC,UAAU,SAAS,CAAC;AAAA,EAAA;AAE5B;AAEA,MAAM,oBAAuC,EAAE,UAAU;AAQ5C,MAAA,0BACX,8BAA8B,iBAAiB;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { useForkRef } from "@mui/material/utils";
|
|
3
|
-
import { DEFAULT_TREE_VIEW_CONTEXT_VALUE } from "../TreeViewProvider.js";
|
|
4
3
|
import { TREE_VIEW_CORE_PLUGINS } from "../corePlugins.js";
|
|
4
|
+
import { DEFAULT_TREE_VIEW_CONTEXT_VALUE } from "../TreeViewProvider.js";
|
|
5
5
|
import { useTreeViewModels } from "./useTreeViewModels.js";
|
|
6
6
|
const useTreeView = (inParams) => {
|
|
7
7
|
const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeView.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeView.ts"],"sourcesContent":["import * as React from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"useTreeView.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeView.ts"],"sourcesContent":["import * as React from \"react\";\nimport { EventHandlers } from \"@mui/base/utils\";\nimport { useForkRef } from \"@mui/material/utils\";\n\nimport { TREE_VIEW_CORE_PLUGINS } from \"../corePlugins\";\nimport {\n DEFAULT_TREE_VIEW_CONTEXT_VALUE,\n TreeViewContextValue,\n} from \"../TreeViewProvider\";\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewPlugin,\n} from \"../types\";\nimport { useTreeViewModels } from \"./useTreeViewModels\";\n\nexport type UseTreeViewParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"params\">;\n\nexport type UseTreeViewDefaultizedParameters<\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n> = {\n rootRef?: React.Ref<HTMLUListElement> | undefined;\n plugins: TPlugins;\n} & MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n>;\n\nexport interface UseTreeViewRootSlotProps\n extends Pick<\n React.HTMLAttributes<HTMLUListElement>,\n | \"onFocus\"\n | \"onBlur\"\n | \"onKeyDown\"\n | \"id\"\n | \"aria-activedescendant\"\n | \"aria-multiselectable\"\n | \"role\"\n | \"tabIndex\"\n > {\n ref: React.Ref<HTMLUListElement>;\n}\n\nexport interface UseTreeViewReturnValue<\n TPlugins extends readonly TreeViewAnyPluginSignature[],\n> {\n getRootProps: <TOther extends EventHandlers = {}>(\n otherHandlers?: TOther,\n ) => UseTreeViewRootSlotProps;\n rootRef: React.RefCallback<HTMLUListElement> | null;\n contextValue: TreeViewContextValue<TPlugins>;\n}\n\nexport const useTreeView = <\n Plugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n inParams: UseTreeViewParameters<Plugins>,\n): UseTreeViewReturnValue<ConvertPluginsIntoSignatures<Plugins>> => {\n const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];\n type Signatures = ConvertPluginsIntoSignatures<typeof plugins>;\n\n const params = plugins.reduce((acc, plugin) => {\n if (plugin.getDefaultizedParams) {\n return plugin.getDefaultizedParams(acc);\n }\n\n return acc;\n }, inParams) as unknown as UseTreeViewDefaultizedParameters<Plugins>;\n\n const models = useTreeViewModels(\n plugins,\n params as MergePluginsProperty<Signatures, \"defaultizedParams\">,\n );\n const instanceRef = React.useRef<TreeViewInstance<Signatures>>(\n {} as TreeViewInstance<Signatures>,\n );\n const instance = instanceRef.current;\n const innerRootRef = React.useRef(null);\n const handleRootRef = useForkRef(innerRootRef, inParams.rootRef);\n\n const [state, setState] = React.useState(() => {\n const temp = {} as MergePluginsProperty<Signatures, \"state\">;\n plugins.forEach((plugin) => {\n if (plugin.getInitialState) {\n Object.assign(\n temp,\n plugin.getInitialState(\n params as UseTreeViewDefaultizedParameters<any>,\n ),\n );\n }\n });\n\n return temp;\n });\n\n const rootPropsGetters: (<TOther extends EventHandlers = {}>(\n otherHandlers: TOther,\n ) => React.HTMLAttributes<HTMLUListElement>)[] = [];\n let contextValue: TreeViewContextValue<Signatures> =\n DEFAULT_TREE_VIEW_CONTEXT_VALUE;\n\n const runPlugin = (plugin: TreeViewPlugin<any>) => {\n const pluginResponse =\n plugin({\n instance,\n params,\n state,\n setState,\n rootRef: innerRootRef,\n models,\n }) || {};\n\n if (pluginResponse.getRootProps) {\n rootPropsGetters.push(pluginResponse.getRootProps);\n }\n\n if (pluginResponse.contextValue) {\n contextValue = pluginResponse.contextValue;\n }\n };\n\n plugins.forEach(runPlugin);\n\n const getRootProps = <TOther extends EventHandlers = {}>(\n otherHandlers: TOther = {} as TOther,\n ) => {\n const rootProps: UseTreeViewRootSlotProps = {\n role: \"tree\",\n tabIndex: 0,\n ...otherHandlers,\n ref: handleRootRef,\n };\n\n rootPropsGetters.forEach((rootPropsGetter) => {\n Object.assign(rootProps, rootPropsGetter(otherHandlers));\n });\n\n return rootProps;\n };\n\n return { getRootProps, rootRef: handleRootRef, contextValue };\n};\n"],"names":[],"mappings":";;;;;AA4Da,MAAA,cAAc,CAGzB,aACkE;AAClE,QAAM,UAAU,CAAC,GAAG,wBAAwB,GAAG,SAAS,OAAO;AAG/D,QAAM,SAAS,QAAQ,OAAO,CAAC,KAAK,WAAW;AAC7C,QAAI,OAAO,sBAAsB;AACxB,aAAA,OAAO,qBAAqB,GAAG;AAAA,IACxC;AAEO,WAAA;AAAA,KACN,QAAQ;AAEX,QAAM,SAAS;AAAA,IACb;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,cAAc,MAAM;AAAA,IACxB,CAAC;AAAA,EAAA;AAEH,QAAM,WAAW,YAAY;AACvB,QAAA,eAAe,MAAM,OAAO,IAAI;AACtC,QAAM,gBAAgB,WAAW,cAAc,SAAS,OAAO;AAE/D,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,MAAM;AAC7C,UAAM,OAAO,CAAA;AACL,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,iBAAiB;AACnB,eAAA;AAAA,UACL;AAAA,UACA,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,mBAE2C,CAAA;AACjD,MAAI,eACF;AAEI,QAAA,YAAY,CAAC,WAAgC;AACjD,UAAM,iBACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACD,CAAA,KAAK,CAAA;AAER,QAAI,eAAe,cAAc;AACd,uBAAA,KAAK,eAAe,YAAY;AAAA,IACnD;AAEA,QAAI,eAAe,cAAc;AAC/B,qBAAe,eAAe;AAAA,IAChC;AAAA,EAAA;AAGF,UAAQ,QAAQ,SAAS;AAEzB,QAAM,eAAe,CACnB,gBAAwB,OACrB;AACH,UAAM,YAAsC;AAAA,MAC1C,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,MACH,KAAK;AAAA,IAAA;AAGU,qBAAA,QAAQ,CAAC,oBAAoB;AAC5C,aAAO,OAAO,WAAW,gBAAgB,aAAa,CAAC;AAAA,IAAA,CACxD;AAEM,WAAA;AAAA,EAAA;AAGT,SAAO,EAAE,cAAc,SAAS,eAAe,aAAa;AAC9D;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeViewInstanceEvents.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewInstanceEvents.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"useTreeViewInstanceEvents.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewInstanceEvents.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport type { TreeViewPlugin } from \"../types\";\nimport type { TreeViewEventListener } from \"../types/events\";\nimport { EventManager } from \"../utils/EventManager\";\nimport { UseTreeViewInstanceEventsSignature } from \"./useTreeViewInstanceEvents.types\";\nimport { populateInstance } from \"./utils\";\n\nconst isSyntheticEvent = (event: any): event is React.SyntheticEvent => {\n return event.isPropagationStopped !== undefined;\n};\n\n/**\n * Plugin responsible for the registration of the nodes defined as JSX children of the TreeView.\n * When we will have both a SimpleTreeView using JSX children and a TreeView using a data prop,\n * this plugin will only be used by SimpleTreeView.\n */\nexport const useTreeViewInstanceEvents: TreeViewPlugin<\n UseTreeViewInstanceEventsSignature\n> = ({ instance }) => {\n const [eventManager] = React.useState(() => new EventManager());\n\n const publishEvent = React.useCallback(\n (...args: any[]) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n\n eventManager.emit(name, params, event);\n },\n [eventManager],\n );\n\n const subscribeEvent = React.useCallback(\n (event: string, handler: TreeViewEventListener<any>) => {\n eventManager.on(event, handler);\n return () => {\n eventManager.removeListener(event, handler);\n };\n },\n [eventManager],\n );\n\n populateInstance<UseTreeViewInstanceEventsSignature>(instance, {\n $$publishEvent: publishEvent,\n $$subscribeEvent: subscribeEvent,\n });\n};\n"],"names":[],"mappings":";;;AAQA,MAAM,mBAAmB,CAAC,UAA8C;AACtE,SAAO,MAAM,yBAAyB;AACxC;AAOO,MAAM,4BAET,CAAC,EAAE,eAAe;AACd,QAAA,CAAC,YAAY,IAAI,MAAM,SAAS,MAAM,IAAI,cAAc;AAE9D,QAAM,eAAe,MAAM;AAAA,IACzB,IAAI,SAAgB;AAClB,YAAM,CAAC,MAAM,QAAQ,QAAQ,CAAE,CAAA,IAAI;AACnC,YAAM,sBAAsB;AAE5B,UAAI,iBAAiB,KAAK,KAAK,MAAM,wBAAwB;AAC3D;AAAA,MACF;AAEa,mBAAA,KAAK,MAAM,QAAQ,KAAK;AAAA,IACvC;AAAA,IACA,CAAC,YAAY;AAAA,EAAA;AAGf,QAAM,iBAAiB,MAAM;AAAA,IAC3B,CAAC,OAAe,YAAwC;AACzC,mBAAA,GAAG,OAAO,OAAO;AAC9B,aAAO,MAAM;AACE,qBAAA,eAAe,OAAO,OAAO;AAAA,MAAA;AAAA,IAE9C;AAAA,IACA,CAAC,YAAY;AAAA,EAAA;AAGf,mBAAqD,UAAU;AAAA,IAC7D,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EAAA,CACnB;AACH;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTreeViewModels.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewModels.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n
|
|
1
|
+
{"version":3,"file":"useTreeViewModels.js","sources":["../../../../../src/TreeView/internals/hooks/useTreeViewModels.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n ConvertPluginsIntoSignatures,\n MergePluginsProperty,\n TreeViewAnyPluginSignature,\n TreeViewPlugin,\n} from \"../types\";\n\n/**\n * Implements the same behavior as `useControlled` but for several models.\n * The controlled models are never stored in the state and the state is only updated if the model is not controlled.\n */\nexport const useTreeViewModels = <\n TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[],\n>(\n plugins: TPlugins,\n props: MergePluginsProperty<\n ConvertPluginsIntoSignatures<TPlugins>,\n \"defaultizedParams\"\n >,\n) => {\n const modelsRef = React.useRef<{\n [modelName: string]: {\n controlledProp: keyof typeof props;\n defaultProp: keyof typeof props;\n isControlled: boolean;\n };\n }>({});\n\n const [modelsState, setModelsState] = React.useState<{\n [modelName: string]: any;\n }>(() => {\n const initialState: { [modelName: string]: any } = {};\n\n plugins.forEach((plugin) => {\n if (plugin.models) {\n Object.entries(plugin.models).forEach(([modelName, model]) => {\n modelsRef.current[modelName] = {\n controlledProp: model.controlledProp as keyof typeof props,\n defaultProp: model.defaultProp as keyof typeof props,\n isControlled:\n props[model.controlledProp as keyof typeof props] !== undefined,\n };\n initialState[modelName] =\n props[model.defaultProp as keyof typeof props];\n });\n }\n });\n\n return initialState;\n });\n\n const models = Object.fromEntries(\n Object.entries(modelsRef.current).map(([modelName, model]) => {\n const value = model.isControlled\n ? props[model.controlledProp]\n : modelsState[modelName];\n\n return [\n modelName,\n {\n value,\n setValue: (newValue: any) => {\n if (!model.isControlled) {\n setModelsState((prevState) => ({\n ...prevState,\n [modelName]: newValue,\n }));\n }\n },\n },\n ];\n }),\n ) as MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, \"models\">;\n\n return models;\n};\n"],"names":[],"mappings":";AAaa,MAAA,oBAAoB,CAG/B,SACA,UAIG;AACH,QAAM,YAAY,MAAM,OAMrB,CAAE,CAAA;AAEL,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAEzC,MAAM;AACP,UAAM,eAA6C,CAAA;AAE3C,YAAA,QAAQ,CAAC,WAAW;AAC1B,UAAI,OAAO,QAAQ;AACV,eAAA,QAAQ,OAAO,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,KAAK,MAAM;AAClD,oBAAA,QAAQ,SAAS,IAAI;AAAA,YAC7B,gBAAgB,MAAM;AAAA,YACtB,aAAa,MAAM;AAAA,YACnB,cACE,MAAM,MAAM,cAAoC,MAAM;AAAA,UAAA;AAE1D,uBAAa,SAAS,IACpB,MAAM,MAAM,WAAiC;AAAA,QAAA,CAChD;AAAA,MACH;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EAAA,CACR;AAED,QAAM,SAAS,OAAO;AAAA,IACpB,OAAO,QAAQ,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM;AACtD,YAAA,QAAQ,MAAM,eAChB,MAAM,MAAM,cAAc,IAC1B,YAAY,SAAS;AAElB,aAAA;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,UAAU,CAAC,aAAkB;AACvB,gBAAA,CAAC,MAAM,cAAc;AACvB,6BAAe,CAAC,eAAe;AAAA,gBAC7B,GAAG;AAAA,gBACH,CAAC,SAAS,GAAG;AAAA,cACb,EAAA;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EAAA;AAGI,SAAA;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/TreeView/internals/hooks/utils.ts"],"sourcesContent":["import {\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewUsedInstance,\n} from \"../types\";\nimport type { UseTreeViewExpansionSignature } from \"./plugins/useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./plugins/useTreeViewNodes\";\n\nexport const getPreviousNode = (\n instance: TreeViewInstance<\n [UseTreeViewNodesSignature, UseTreeViewExpansionSignature]\n >,\n nodeId: string
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/TreeView/internals/hooks/utils.ts"],"sourcesContent":["import {\n TreeViewAnyPluginSignature,\n TreeViewInstance,\n TreeViewUsedInstance,\n} from \"../types\";\nimport type { UseTreeViewExpansionSignature } from \"./plugins/useTreeViewExpansion\";\nimport type { UseTreeViewNodesSignature } from \"./plugins/useTreeViewNodes\";\n\nexport const getPreviousNode = (\n instance: TreeViewInstance<\n [UseTreeViewNodesSignature, UseTreeViewExpansionSignature]\n >,\n nodeId: string,\n) => {\n const node = instance.getNode(nodeId);\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(nodeId);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode: string = siblings[nodeIndex - 1];\n while (\n instance.isNodeExpanded(currentNode) &&\n instance.getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = instance.getNavigableChildrenIds(currentNode).pop()!;\n }\n\n return currentNode;\n};\n\nexport const getNextNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n nodeId: string,\n) => {\n // If expanded get first child\n if (\n instance.isNodeExpanded(nodeId) &&\n instance.getNavigableChildrenIds(nodeId).length > 0\n ) {\n return instance.getNavigableChildrenIds(nodeId)[0];\n }\n\n let node = instance.getNode(nodeId);\n while (node != null) {\n // Try to get next sibling\n const siblings = instance.getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = instance.getNode(node.parentId!);\n }\n\n return null;\n};\n\nexport const getLastNode = (\n instance: TreeViewInstance<\n [UseTreeViewExpansionSignature, UseTreeViewNodesSignature]\n >,\n) => {\n let lastNode = instance.getNavigableChildrenIds(null).pop()!;\n\n while (instance.isNodeExpanded(lastNode)) {\n lastNode = instance.getNavigableChildrenIds(lastNode).pop()!;\n }\n return lastNode;\n};\n\nexport const getFirstNode = (\n instance: TreeViewInstance<[UseTreeViewNodesSignature]>,\n) => instance.getNavigableChildrenIds(null)[0];\n\nexport const populateInstance = <T extends TreeViewAnyPluginSignature>(\n instance: TreeViewUsedInstance<T>,\n methods: T[\"instance\"],\n) => {\n Object.assign(instance, methods);\n};\n"],"names":[],"mappings":"AAQa,MAAA,kBAAkB,CAC7B,UAGA,WACG;AACG,QAAA,OAAO,SAAS,QAAQ,MAAM;AACpC,QAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AACzD,QAAA,YAAY,SAAS,QAAQ,MAAM;AAEzC,MAAI,cAAc,GAAG;AACnB,WAAO,KAAK;AAAA,EACd;AAEI,MAAA,cAAsB,SAAS,YAAY,CAAC;AAE9C,SAAA,SAAS,eAAe,WAAW,KACnC,SAAS,wBAAwB,WAAW,EAAE,SAAS,GACvD;AACA,kBAAc,SAAS,wBAAwB,WAAW,EAAE,IAAI;AAAA,EAClE;AAEO,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,UAGA,WACG;AAGD,MAAA,SAAS,eAAe,MAAM,KAC9B,SAAS,wBAAwB,MAAM,EAAE,SAAS,GAClD;AACA,WAAO,SAAS,wBAAwB,MAAM,EAAE,CAAC;AAAA,EACnD;AAEI,MAAA,OAAO,SAAS,QAAQ,MAAM;AAClC,SAAO,QAAQ,MAAM;AAEnB,UAAM,WAAW,SAAS,wBAAwB,KAAK,QAAQ;AAC/D,UAAM,cAAc,SAAS,SAAS,QAAQ,KAAK,EAAE,IAAI,CAAC;AAE1D,QAAI,aAAa;AACR,aAAA;AAAA,IACT;AAGO,WAAA,SAAS,QAAQ,KAAK,QAAS;AAAA,EACxC;AAEO,SAAA;AACT;AAEa,MAAA,cAAc,CACzB,aAGG;AACH,MAAI,WAAW,SAAS,wBAAwB,IAAI,EAAE,IAAI;AAEnD,SAAA,SAAS,eAAe,QAAQ,GAAG;AACxC,eAAW,SAAS,wBAAwB,QAAQ,EAAE,IAAI;AAAA,EAC5D;AACO,SAAA;AACT;AAEO,MAAM,eAAe,CAC1B,aACG,SAAS,wBAAwB,IAAI,EAAE,CAAC;AAEhC,MAAA,mBAAmB,CAC9B,UACA,YACG;AACI,SAAA,OAAO,UAAU,OAAO;AACjC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sources":["../../../../../src/TreeView/internals/utils/EventManager.ts"],"sourcesContent":["export type EventListener = (...args: any[]) => void;\n\nexport interface EventListenerOptions {\n isFirst?: boolean;\n}\n\ninterface EventListenerCollection {\n /**\n * List of listeners to run before the others\n * They are run in the opposite order of the registration order\n */\n highPriority: Map<EventListener, true>;\n /**\n * List of events to run after the high priority listeners\n * They are run in the registration order\n */\n regular: Map<EventListener, true>;\n}\n\n// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n maxListeners = 20;\n\n warnOnce = false;\n\n events: { [eventName: string]: EventListenerCollection } = {};\n\n on(\n eventName: string,\n listener: EventListener,\n options: EventListenerOptions = {}
|
|
1
|
+
{"version":3,"file":"EventManager.js","sources":["../../../../../src/TreeView/internals/utils/EventManager.ts"],"sourcesContent":["export type EventListener = (...args: any[]) => void;\n\nexport interface EventListenerOptions {\n isFirst?: boolean;\n}\n\ninterface EventListenerCollection {\n /**\n * List of listeners to run before the others\n * They are run in the opposite order of the registration order\n */\n highPriority: Map<EventListener, true>;\n /**\n * List of events to run after the high priority listeners\n * They are run in the registration order\n */\n regular: Map<EventListener, true>;\n}\n\n// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n maxListeners = 20;\n\n warnOnce = false;\n\n events: { [eventName: string]: EventListenerCollection } = {};\n\n on(\n eventName: string,\n listener: EventListener,\n options: EventListenerOptions = {},\n ): void {\n let collection = this.events[eventName];\n\n if (!collection) {\n collection = {\n highPriority: new Map(),\n regular: new Map(),\n };\n this.events[eventName] = collection;\n }\n\n if (options.isFirst) {\n collection.highPriority.set(listener, true);\n } else {\n collection.regular.set(listener, true);\n }\n }\n\n removeListener(eventName: string, listener: EventListener): void {\n if (this.events[eventName]) {\n this.events[eventName].regular.delete(listener);\n this.events[eventName].highPriority.delete(listener);\n }\n }\n\n removeAllListeners(): void {\n this.events = {};\n }\n\n emit(eventName: string, ...args: any[]): void {\n const collection = this.events[eventName];\n if (!collection) {\n return;\n }\n\n const highPriorityListeners = Array.from(collection.highPriority.keys());\n const regularListeners = Array.from(collection.regular.keys());\n\n for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {\n const listener = highPriorityListeners[i];\n if (collection.highPriority.has(listener)) {\n listener.apply(this, args);\n }\n }\n\n for (let i = 0; i < regularListeners.length; i += 1) {\n const listener = regularListeners[i];\n if (collection.regular.has(listener)) {\n listener.apply(this, args);\n }\n }\n }\n\n once(eventName: string, listener: EventListener): void {\n // eslint-disable-next-line consistent-this\n const that = this;\n this.on(eventName, function oneTimeListener(...args) {\n that.removeListener(eventName, oneTimeListener);\n listener.apply(that, args);\n });\n }\n}\n"],"names":[],"mappings":"AAsBO,MAAM,aAAa;AAAA,EACxB,eAAe;AAAA,EAEf,WAAW;AAAA,EAEX,SAA2D,CAAA;AAAA,EAE3D,GACE,WACA,UACA,UAAgC,CAAA,GAC1B;AACF,QAAA,aAAa,KAAK,OAAO,SAAS;AAEtC,QAAI,CAAC,YAAY;AACF,mBAAA;AAAA,QACX,kCAAkB,IAAI;AAAA,QACtB,6BAAa,IAAI;AAAA,MAAA;AAEd,WAAA,OAAO,SAAS,IAAI;AAAA,IAC3B;AAEA,QAAI,QAAQ,SAAS;AACR,iBAAA,aAAa,IAAI,UAAU,IAAI;AAAA,IAAA,OACrC;AACM,iBAAA,QAAQ,IAAI,UAAU,IAAI;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,eAAe,WAAmB,UAA+B;AAC3D,QAAA,KAAK,OAAO,SAAS,GAAG;AAC1B,WAAK,OAAO,SAAS,EAAE,QAAQ,OAAO,QAAQ;AAC9C,WAAK,OAAO,SAAS,EAAE,aAAa,OAAO,QAAQ;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,qBAA2B;AACzB,SAAK,SAAS;EAChB;AAAA,EAEA,KAAK,cAAsB,MAAmB;AACtC,UAAA,aAAa,KAAK,OAAO,SAAS;AACxC,QAAI,CAAC,YAAY;AACf;AAAA,IACF;AAEA,UAAM,wBAAwB,MAAM,KAAK,WAAW,aAAa,MAAM;AACvE,UAAM,mBAAmB,MAAM,KAAK,WAAW,QAAQ,MAAM;AAE7D,aAAS,IAAI,sBAAsB,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AACvD,YAAA,WAAW,sBAAsB,CAAC;AACxC,UAAI,WAAW,aAAa,IAAI,QAAQ,GAAG;AAChC,iBAAA,MAAM,MAAM,IAAI;AAAA,MAC3B;AAAA,IACF;AAEA,aAAS,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK,GAAG;AAC7C,YAAA,WAAW,iBAAiB,CAAC;AACnC,UAAI,WAAW,QAAQ,IAAI,QAAQ,GAAG;AAC3B,iBAAA,MAAM,MAAM,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,KAAK,WAAmB,UAA+B;AAErD,UAAM,OAAO;AACb,SAAK,GAAG,WAAW,SAAS,mBAAmB,MAAM;AAC9C,WAAA,eAAe,WAAW,eAAe;AACrC,eAAA,MAAM,MAAM,IAAI;AAAA,IAAA,CAC1B;AAAA,EACH;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinalizationRegistryBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n
|
|
1
|
+
{"version":3,"file":"FinalizationRegistryBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\nexport class FinalizationRegistryBasedCleanupTracking\n implements CleanupTracking\n{\n registry = new FinalizationRegistry<UnsubscribeFn>((unsubscribe) => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n });\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n this.registry.unregister(unregisterToken);\n }\n\n // eslint-disable-next-line class-methods-use-this\n reset() {}\n}\n"],"names":[],"mappings":"AAMO,MAAM,yCAEb;AAAA,EACE,WAAW,IAAI,qBAAoC,CAAC,gBAAgB;AAC9D,QAAA,OAAO,gBAAgB,YAAY;AACzB;IACd;AAAA,EAAA,CACD;AAAA,EAED,SACE,QACA,aACA,iBACM;AACN,SAAK,SAAS,SAAS,QAAQ,aAAa,eAAe;AAAA,EAC7D;AAAA,EAEA,WAAW,iBAAwC;AAC5C,SAAA,SAAS,WAAW,eAAe;AAAA,EAC1C;AAAA;AAAA,EAGA,QAAQ;AAAA,EAAC;AACX;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimerBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/TimerBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\n// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\n\nexport class TimerBasedCleanupTracking implements CleanupTracking {\n timeouts? = new Map<number, NodeJS.Timeout>();\n\n cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.cleanupTimeout = timeout;\n }\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken
|
|
1
|
+
{"version":3,"file":"TimerBasedCleanupTracking.js","sources":["../../../../../src/TreeView/internals/utils/TimerBasedCleanupTracking.ts"],"sourcesContent":["import {\n CleanupTracking,\n UnregisterToken,\n UnsubscribeFn,\n} from \"./CleanupTracking\";\n\n// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\n\nexport class TimerBasedCleanupTracking implements CleanupTracking {\n timeouts? = new Map<number, NodeJS.Timeout>();\n\n cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.cleanupTimeout = timeout;\n }\n\n register(\n object: any,\n unsubscribe: UnsubscribeFn,\n unregisterToken: UnregisterToken,\n ): void {\n if (!this.timeouts) {\n this.timeouts = new Map<number, NodeJS.Timeout>();\n }\n\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === \"function\") {\n unsubscribe();\n }\n this.timeouts!.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n\n this.timeouts!.set(unregisterToken!.cleanupToken, timeout);\n }\n\n unregister(unregisterToken: UnregisterToken): void {\n const timeout = this.timeouts!.get(unregisterToken.cleanupToken);\n if (timeout) {\n this.timeouts!.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({ cleanupToken: key });\n });\n this.timeouts = undefined;\n }\n }\n}\n"],"names":[],"mappings":"AAOA,MAAM,4BAA4B;AAE3B,MAAM,0BAAqD;AAAA,EAChE,+BAAgB;EAEhB,iBAAiB;AAAA,EAEjB,YAAY,UAAU,2BAA2B;AAC/C,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,SACE,QACA,aACA,iBACM;AACF,QAAA,CAAC,KAAK,UAAU;AACb,WAAA,+BAAe;IACtB;AAEM,UAAA,UAAU,WAAW,MAAM;AAC3B,UAAA,OAAO,gBAAgB,YAAY;AACzB;MACd;AACK,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAAA,IAAA,GACjD,KAAK,cAAc;AAEtB,SAAK,SAAU,IAAI,gBAAiB,cAAc,OAAO;AAAA,EAC3D;AAAA,EAEA,WAAW,iBAAwC;AACjD,UAAM,UAAU,KAAK,SAAU,IAAI,gBAAgB,YAAY;AAC/D,QAAI,SAAS;AACN,WAAA,SAAU,OAAO,gBAAgB,YAAY;AAClD,mBAAa,OAAO;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,QAAI,KAAK,UAAU;AACjB,WAAK,SAAS,QAAQ,CAAC,OAAO,QAAQ;AACpC,aAAK,WAAW,EAAE,cAAc,IAAK,CAAA;AAAA,MAAA,CACtC;AACD,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishTreeViewEvent.js","sources":["../../../../../src/TreeView/internals/utils/publishTreeViewEvent.ts"],"sourcesContent":["import type { UseTreeViewInstanceEventsInstance } from \"../hooks/useTreeViewInstanceEvents.types\";\nimport type { TreeViewAnyPluginSignature, TreeViewUsedEvents } from \"../types\";\n\nexport const publishTreeViewEvent = <\n Instance extends UseTreeViewInstanceEventsInstance & {\n $$signature: TreeViewAnyPluginSignature;\n },\n E extends keyof TreeViewUsedEvents<Instance[\"$$signature\"]
|
|
1
|
+
{"version":3,"file":"publishTreeViewEvent.js","sources":["../../../../../src/TreeView/internals/utils/publishTreeViewEvent.ts"],"sourcesContent":["import type { UseTreeViewInstanceEventsInstance } from \"../hooks/useTreeViewInstanceEvents.types\";\nimport type { TreeViewAnyPluginSignature, TreeViewUsedEvents } from \"../types\";\n\nexport const publishTreeViewEvent = <\n Instance extends UseTreeViewInstanceEventsInstance & {\n $$signature: TreeViewAnyPluginSignature;\n },\n E extends keyof TreeViewUsedEvents<Instance[\"$$signature\"]>,\n>(\n instance: Instance,\n eventName: E,\n params: TreeViewUsedEvents<Instance[\"$$signature\"]>[E][\"params\"],\n) => {\n instance.$$publishEvent(eventName as string, params);\n};\n"],"names":[],"mappings":"AAGO,MAAM,uBAAuB,CAMlC,UACA,WACA,WACG;AACM,WAAA,eAAe,WAAqB,MAAM;AACrD;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { fixedForwardRef } from "../types/generic.js";
|
|
3
|
-
import { useTheme } from "../hooks/useTheme.js";
|
|
4
2
|
import { useDefaultProps } from "../hooks/useDefaultProps.js";
|
|
5
|
-
import {
|
|
3
|
+
import { useTheme } from "../hooks/useTheme.js";
|
|
4
|
+
import { fixedForwardRef } from "../types/generic.js";
|
|
6
5
|
import { useClasses } from "./Typography.styles.js";
|
|
7
6
|
import { staticClasses } from "./Typography.styles.js";
|
|
7
|
+
import { mapVariant } from "./utils.js";
|
|
8
8
|
const HvTypographyMap = {
|
|
9
9
|
display: "h1",
|
|
10
10
|
title1: "h1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Typography.js","sources":["../../../src/Typography/Typography.tsx"],"sourcesContent":["import {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport {
|
|
1
|
+
{"version":3,"file":"Typography.js","sources":["../../../src/Typography/Typography.tsx"],"sourcesContent":["import { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useTheme } from \"../hooks/useTheme\";\nimport {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { staticClasses, useClasses } from \"./Typography.styles\";\nimport {\n HvTypographyLegacyVariants,\n HvTypographyVariants,\n mapVariant,\n} from \"./utils\";\n\nexport { staticClasses as typographyClasses };\n\nexport type HvTypographyClasses = ExtractNames<typeof useClasses>;\n\nconst HvTypographyMap = {\n display: \"h1\",\n title1: \"h1\",\n title2: \"h2\",\n title3: \"h3\",\n title4: \"h4\",\n body: \"p\",\n label: \"span\",\n captionLabel: \"p\",\n caption1: \"p\",\n caption2: \"p\",\n // LEGACY\n \"5xlTitle\": \"h1\",\n \"4xlTitle\": \"h1\",\n \"3xlTitle\": \"h1\",\n xxlTitle: \"h1\",\n xlTitle: \"h1\",\n lTitle: \"h2\",\n mTitle: \"h3\",\n sTitle: \"h4\",\n xsTitle: \"h5\",\n xxsTitle: \"h6\",\n sectionTitle: \"p\",\n highlightText: \"p\",\n normalText: \"p\",\n placeholderText: \"p\",\n link: \"p\",\n disabledText: \"p\",\n selectedNavText: \"p\",\n vizText: \"p\",\n vizTextDisabled: \"p\",\n xsInlineLink: \"p\",\n} satisfies Record<\n HvTypographyVariants | HvTypographyLegacyVariants,\n React.ElementType\n>;\n\nexport type HvTypographyProps<C extends React.ElementType = \"p\"> =\n PolymorphicComponentRef<\n C,\n {\n /** Use the variant prop to change the visual style of the Typography. */\n variant?: HvTypographyVariants | HvTypographyLegacyVariants;\n /** If `true` the typography will display the look of a link. */\n link?: boolean;\n /** If `true` the typography will display the look of a disabled state. */\n disabled?: boolean;\n /**\n * If `true`, the typography will render a \"p\" element\n * @deprecated use `component=\"p\"` instead\n * */\n paragraph?: boolean;\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n */\n noWrap?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTypographyClasses;\n }\n >;\n\n/**\n * Typography component is used to render text and paragraphs within an interface.\n */\nexport const HvTypography = fixedForwardRef(function HvTypography<\n C extends React.ElementType = \"p\",\n>(props: HvTypographyProps<C>, ref: PolymorphicRef<C>) {\n const {\n className,\n component: ComponentProp,\n classes: classesProp,\n variant: variantProp = \"body\",\n link = false,\n noWrap = false,\n paragraph = false,\n disabled = false,\n ...others\n } = useDefaultProps(\"HvTypography\", props);\n const { classes, cx } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const variant = mapVariant(variantProp, activeTheme?.name);\n\n const Component =\n ComponentProp || (paragraph && \"p\") || HvTypographyMap[variant] || \"span\";\n\n return (\n <Component\n ref={ref}\n className={cx(\n classes.root,\n classes[variant],\n {\n [classes.isLink]: link,\n [classes.noWrap]: noWrap,\n [classes.disabled]: disabled,\n },\n className,\n )}\n disabled={disabled}\n {...others}\n />\n );\n});\n"],"names":["HvTypography"],"mappings":";;;;;;;AAmBA,MAAM,kBAAkB;AAAA,EACtB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA;AAAA,EAEV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAChB;AAmCO,MAAM,eAAe,gBAAgB,SAASA,cAEnD,OAA6B,KAAwB;AAC/C,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS,cAAc;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,gBAAgB,KAAK;AACzC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,EAAE,gBAAgB;AAExB,QAAM,UAAU,WAAW,aAAa,aAAa,IAAI;AAEzD,QAAM,YACJ,iBAAkB,aAAa,OAAQ,gBAAgB,OAAO,KAAK;AAGnE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ,OAAO;AAAA,QACf;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,MAAM,GAAG;AAAA,UAClB,CAAC,QAAQ,QAAQ,GAAG;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.js","sources":["../../../../src/VerticalNavigation/Actions/Action.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"Action.js","sources":["../../../../src/VerticalNavigation/Actions/Action.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\n\nimport { HvTypography } from \"../../Typography\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { isKey } from \"../../utils/keyboardUtils\";\nimport { setId } from \"../../utils/setId\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Action.styles\";\n\nexport { staticClasses as actionClasses };\n\nexport type HvVerticalNavigationActionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationActionProps {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvVerticalNavigationActionClasses;\n /**\n * Id to be applied to the action.\n */\n id?: string;\n /**\n * Visual label.\n */\n label?: string;\n /**\n * Icon.\n */\n icon?: React.ReactNode;\n /**\n * Callback called when clicked.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nexport const HvVerticalNavigationAction = ({\n className,\n classes: classesProp,\n id,\n label = \"\",\n icon,\n onClick,\n ...others\n}: HvVerticalNavigationActionProps) => {\n const { isOpen } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKey(event, \"Enter\") && !isKey(event, \"Space\"))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick],\n );\n\n return (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={cx(\n classes.action,\n {\n [classes.noIcon]: !icon,\n [classes.minimized]: !isOpen,\n },\n className,\n )}\n tabIndex={0}\n {...(!isOpen && { \"aria-label\": label })}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {isOpen && label}\n </HvTypography>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAwCO,MAAM,6BAA6B,CAAC;AAAA,EACzC;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAuC;AACrC,QAAM,EAAE,OAAA,IAAW,WAAW,yBAAyB;AAEvD,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAE9C,QAAM,gBAAgB;AAAA,IACpB,CAAC,UAAU;AAEP,UAAA,WAAW,QACV,CAAC,MAAM,OAAO,OAAO,KAAK,CAAC,MAAM,OAAO,OAAO,GAChD;AACA;AAAA,MACF;AAEA,cAAQ,KAAK;AAAA,IACf;AAAA,IACA,CAAC,OAAO;AAAA,EAAA;AAIR,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI,MAAM,IAAI,QAAQ;AAAA,MACtB,WAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,UACnB,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU;AAAA,MACT,GAAI,CAAC,UAAU,EAAE,cAAc,MAAM;AAAA,MACtC,WAAW;AAAA,MACX;AAAA,MACC,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGjB;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
2
|
-
import { outlineStyles } from "../../utils/focusUtils.js";
|
|
3
2
|
import { createClasses } from "../../utils/classes.js";
|
|
3
|
+
import { outlineStyles } from "../../utils/focusUtils.js";
|
|
4
4
|
const hover = () => ({
|
|
5
5
|
background: theme.colors.containerBackgroundHover
|
|
6
6
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Action.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"Action.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Action.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../../utils/classes\";\nimport { outlineStyles } from \"../../utils/focusUtils\";\n\nconst hover = () => ({\n background: theme.colors.containerBackgroundHover,\n});\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationAction\",\n {\n action: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n color: theme.colors.secondary,\n\n // hover\n \"&:hover\": hover(),\n\n \"&:focus\": {\n outline: \"none\",\n ...hover(),\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n noIcon: {\n paddingLeft: theme.space.xs,\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n },\n);\n"],"names":[],"mappings":";;;AAKA,MAAM,QAAQ,OAAO;AAAA,EACnB,YAAY,MAAM,OAAO;AAC3B;AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO,MAAM,OAAO;AAAA;AAAA,MAGpB,WAAW,MAAM;AAAA,MAEjB,WAAW;AAAA,QACT,SAAS;AAAA,QACT,GAAG,MAAM;AAAA,MACX;AAAA,MAEA,mBAAmB;AAAA,QACjB,GAAG;AAAA,MACL;AAAA;AAAA,MAGA,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,aAAa,MAAM,MAAM;AAAA,IAC3B;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,EACF;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.tsx"],"sourcesContent":["import { useContext } from \"react\";\n\nimport { ExtractNames } from \"../../utils/classes\";\
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.tsx"],"sourcesContent":["import { useContext } from \"react\";\n\nimport { ExtractNames } from \"../../utils/classes\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Actions.styles\";\n\nexport { staticClasses as actionsClasses };\n\nexport type HvVerticalNavigationActionsClasses = ExtractNames<\n typeof useClasses\n>;\n\nexport interface HvVerticalNavigationActionsProps {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvVerticalNavigationActionsClasses;\n /**\n * Id to be applied to the actions container.\n */\n id?: string;\n /**\n * Node to be rendered\n */\n children?: React.ReactNode;\n}\n\nexport const HvVerticalNavigationActions = ({\n className,\n classes: classesProp,\n id,\n children,\n ...others\n}: HvVerticalNavigationActionsProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const { isOpen, useIcons } = useContext(VerticalNavigationContext);\n\n return (\n <div\n id={id}\n className={cx(\n classes.root,\n {\n [classes.hide]: !isOpen && !useIcons,\n },\n className,\n )}\n {...others}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;AA+BO,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAwC;AACtC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAE9C,QAAM,EAAE,QAAQ,SAAS,IAAI,WAAW,yBAAyB;AAG/D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationActions\",\n {\n root: {\n display: \"block\",\n background: theme.colors.atmo1,\n marginTop: \"auto\",\n\n \"& :not(:last-child)\": {\n marginBottom: \"8px\",\n },\n },\n hide: {\n display: \"none\",\n },\n }
|
|
1
|
+
{"version":3,"file":"Actions.styles.js","sources":["../../../../src/VerticalNavigation/Actions/Actions.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationActions\",\n {\n root: {\n display: \"block\",\n background: theme.colors.atmo1,\n marginTop: \"auto\",\n\n \"& :not(:last-child)\": {\n marginBottom: \"8px\",\n },\n },\n hide: {\n display: \"none\",\n },\n },\n);\n"],"names":[],"mappings":";;AAIa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,YAAY,MAAM,OAAO;AAAA,MACzB,WAAW;AAAA,MAEX,uBAAuB;AAAA,QACrB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,IACX;AAAA,EACF;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/VerticalNavigation/Header/Header.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Backwards, Forwards, Menu } from \"@hitachivantara/uikit-react-icons\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/VerticalNavigation/Header/Header.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Backwards, Forwards, Menu } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { HvTypography } from \"../../Typography\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { VerticalNavigationContext } from \"../VerticalNavigationContext\";\nimport { staticClasses, useClasses } from \"./Header.styles\";\n\nexport { staticClasses as verticalNavigationHeaderClasses };\n\nexport type HvVerticalNavigationHeaderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvVerticalNavigationHeaderProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * The title text to show on Header.\n */\n title?: string;\n /**\n * Icon to show when Vertical Navigation is collapsed.\n */\n openIcon?: React.ReactNode;\n /**\n * Icon to show when Vertical Navigation is expanded.\n */\n closeIcon?: React.ReactNode;\n /**\n * Props for the collapse button.\n */\n collapseButtonProps?: HvButtonProps;\n /**\n * Props for the back button.\n */\n backButtonProps?: HvButtonProps;\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvVerticalNavigationHeaderClasses;\n /**\n * Handler for the collapse button.\n */\n onCollapseButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nexport const HvVerticalNavigationHeader = ({\n title,\n openIcon: openIconProp,\n closeIcon: closeIconProp,\n collapseButtonProps,\n backButtonProps,\n className,\n classes: classesProp,\n onCollapseButtonClick,\n ...others\n}: HvVerticalNavigationHeaderProps) => {\n const {\n isOpen,\n useIcons,\n headerTitle,\n slider,\n navigateToParentHandler,\n parentItem,\n } = useContext(VerticalNavigationContext);\n\n const { classes, cx } = useClasses(classesProp);\n\n const openIcon = openIconProp ?? (!useIcons ? <Menu /> : <Forwards />);\n const closeIcon = closeIconProp ?? <Backwards />;\n\n const backButtonClickHandler = () => {\n if (navigateToParentHandler) navigateToParentHandler();\n };\n\n // whenever we're in a sublevel, the parentItem is always a single item.\n // In the first level it's always an array with the first level elements.\n const shouldShowTitle = useMemo(\n () => !slider || (slider && !Array.isArray(parentItem)),\n [parentItem, slider],\n );\n\n return shouldShowTitle ? (\n <div\n className={cx(classes.root, { [classes.minimized]: !isOpen }, className)}\n {...others}\n >\n {isOpen && headerTitle && slider && (\n <HvButton\n icon\n onClick={backButtonClickHandler}\n aria-label=\"Back\"\n {...backButtonProps}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n )}\n {isOpen && (\n <HvTypography variant={slider ? \"label\" : \"title3\"}>\n {headerTitle && slider ? headerTitle : title}\n </HvTypography>\n )}\n {onCollapseButtonClick && (\n <HvButton\n icon\n onClick={onCollapseButtonClick}\n className={classes.collapseButton}\n classes={{\n root: isOpen ? \"\" : classes.minimized,\n }}\n {...collapseButtonProps}\n >\n {isOpen ? closeIcon : openIcon}\n </HvButton>\n )}\n </div>\n ) : null;\n};\n"],"names":[],"mappings":";;;;;;;;AAoDO,MAAM,6BAA6B,CAAC;AAAA,EACzC;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAuC;AAC/B,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,WAAW,yBAAyB;AAExC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA,WAAW,iBAAiB,CAAC,+BAAY,MAAK,CAAA,CAAA,wBAAM,UAAS,CAAA,CAAA;AAC7D,QAAA,YAAY,iBAAiB,oBAAC,WAAU,CAAA,CAAA;AAE9C,QAAM,yBAAyB,MAAM;AAC/B,QAAA;AAAiD;EAAA;AAKvD,QAAM,kBAAkB;AAAA,IACtB,MAAM,CAAC,UAAW,UAAU,CAAC,MAAM,QAAQ,UAAU;AAAA,IACrD,CAAC,YAAY,MAAM;AAAA,EAAA;AAGrB,SAAO,kBACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,EAAE,CAAC,QAAQ,SAAS,GAAG,CAAC,OAAO,GAAG,SAAS;AAAA,MACtE,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,UAAU,eAAe,UACxB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,cAAW;AAAA,YACV,GAAG;AAAA,YAEJ,UAAA,oBAAC,WAAU,EAAA,UAAS,KAAK,CAAA;AAAA,UAAA;AAAA,QAC3B;AAAA,QAED,UACE,oBAAA,cAAA,EAAa,SAAS,SAAS,UAAU,UACvC,UAAA,eAAe,SAAS,cAAc,MACzC,CAAA;AAAA,QAED,yBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,SAAS;AAAA,YACT,WAAW,QAAQ;AAAA,YACnB,SAAS;AAAA,cACP,MAAM,SAAS,KAAK,QAAQ;AAAA,YAC9B;AAAA,YACC,GAAG;AAAA,YAEH,mBAAS,YAAY;AAAA,UAAA;AAAA,QACxB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGF,IAAA;AACN;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.styles.js","sources":["../../../../src/VerticalNavigation/Header/Header.styles.tsx"],"sourcesContent":["import { createClasses } from \"../../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationHeader\",\n {\n root: {\n width: \"100%\",\n display: \"flex\",\n marginTop: \"12px\",\n alignItems: \"center\",\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n collapseButton: {\n marginLeft: \"auto\",\n \"&$minimized\": {\n marginLeft: 0,\n },\n },\n }
|
|
1
|
+
{"version":3,"file":"Header.styles.js","sources":["../../../../src/VerticalNavigation/Header/Header.styles.tsx"],"sourcesContent":["import { createClasses } from \"../../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvVerticalNavigationHeader\",\n {\n root: {\n width: \"100%\",\n display: \"flex\",\n marginTop: \"12px\",\n alignItems: \"center\",\n },\n minimized: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n collapseButton: {\n marginLeft: \"auto\",\n \"&$minimized\": {\n marginLeft: 0,\n },\n },\n },\n);\n"],"names":[],"mappings":";AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IACd;AAAA,IACA,WAAW;AAAA,MACT,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB;AAAA,IACA,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ,eAAe;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import { useContext, useState, useCallback, useMemo, useEffect } from "react";
|
|
3
|
+
import { useControlled } from "../../hooks/useControlled.js";
|
|
3
4
|
import { uniqueId } from "../../utils/helpers.js";
|
|
4
|
-
import { wrapperTooltip } from "../../utils/wrapperTooltip.js";
|
|
5
5
|
import { setId } from "../../utils/setId.js";
|
|
6
|
-
import {
|
|
6
|
+
import { wrapperTooltip } from "../../utils/wrapperTooltip.js";
|
|
7
|
+
import { NavigationPopupContainer } from "../NavigationPopup/NavigationPopupContainer.js";
|
|
8
|
+
import { getParentItemById } from "../NavigationSlider/utils/NavigationSlider.utils.js";
|
|
9
|
+
import { VerticalNavigationContext } from "../VerticalNavigationContext.js";
|
|
7
10
|
import { useClasses } from "./Navigation.styles.js";
|
|
8
11
|
import { staticClasses } from "./Navigation.styles.js";
|
|
9
|
-
import { VerticalNavigationContext } from "../VerticalNavigationContext.js";
|
|
10
|
-
import { getParentItemById } from "../NavigationSlider/utils/NavigationSlider.utils.js";
|
|
11
|
-
import { NavigationPopupContainer } from "../NavigationPopup/NavigationPopupContainer.js";
|
|
12
12
|
import { HvVerticalNavigationSlider } from "../NavigationSlider/NavigationSlider.js";
|
|
13
13
|
import { HvVerticalNavigationTreeView } from "../TreeView/TreeView.js";
|
|
14
14
|
import { HvVerticalNavigationTreeViewItem } from "../TreeView/TreeViewItem.js";
|