@hitachivantara/uikit-react-core 5.62.2 → 5.63.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/AppSwitcher/Action/Action.cjs +1 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.cjs +9 -3
- package/dist/cjs/BaseCheckBox/BaseCheckBox.styles.cjs +2 -5
- package/dist/cjs/BaseRadio/BaseRadio.styles.cjs +2 -1
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.styles.cjs +2 -2
- package/dist/cjs/Dialog/Dialog.cjs +0 -1
- package/dist/cjs/Drawer/Drawer.cjs +0 -5
- package/dist/cjs/FilterGroup/Counter/Counter.cjs +4 -6
- package/dist/cjs/FilterGroup/LeftPanel/LeftPanel.cjs +13 -17
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.styles.cjs +1 -4
- package/dist/cjs/Input/Input.cjs +1 -3
- package/dist/cjs/List/List.cjs +25 -57
- package/dist/cjs/LoadingContainer/LoadingContainer.styles.cjs +2 -2
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +25 -20
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs +24 -29
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.cjs +28 -66
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs +3 -20
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.cjs +9 -22
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +8 -15
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs +12 -7
- package/dist/cjs/Select/Select.cjs +14 -2
- package/dist/esm/AppSwitcher/Action/Action.js +1 -1
- package/dist/esm/AvatarGroup/AvatarGroup.js +9 -3
- package/dist/esm/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js +2 -5
- package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
- package/dist/esm/BaseRadio/BaseRadio.styles.js +2 -1
- package/dist/esm/BaseRadio/BaseRadio.styles.js.map +1 -1
- package/dist/esm/Button/Button.js.map +1 -1
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js +2 -2
- package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
- package/dist/esm/Dialog/Dialog.js +0 -1
- package/dist/esm/Dialog/Dialog.js.map +1 -1
- package/dist/esm/Drawer/Drawer.js +0 -5
- package/dist/esm/Drawer/Drawer.js.map +1 -1
- package/dist/esm/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/FilterGroup/Counter/Counter.js +4 -6
- package/dist/esm/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js +13 -17
- package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js +1 -4
- package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
- package/dist/esm/Input/Input.js +1 -3
- package/dist/esm/Input/Input.js.map +1 -1
- package/dist/esm/List/List.js +25 -57
- package/dist/esm/List/List.js.map +1 -1
- package/dist/esm/LoadingContainer/LoadingContainer.styles.js +2 -2
- package/dist/esm/LoadingContainer/LoadingContainer.styles.js.map +1 -1
- package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +26 -21
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +24 -29
- package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js +29 -67
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js +3 -20
- package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js +9 -22
- package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +8 -15
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +12 -7
- package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
- package/dist/esm/Select/Select.js +14 -2
- package/dist/esm/Select/Select.js.map +1 -1
- package/dist/types/index.d.ts +27 -14
- package/package.json +5 -5
- package/dist/cjs/Accordion/Accordion.cjs.map +0 -1
- package/dist/cjs/Accordion/Accordion.styles.cjs.map +0 -1
- package/dist/cjs/ActionBar/ActionBar.cjs.map +0 -1
- package/dist/cjs/ActionBar/ActionBar.styles.cjs.map +0 -1
- package/dist/cjs/ActionsGeneric/ActionsGeneric.cjs.map +0 -1
- package/dist/cjs/ActionsGeneric/ActionsGeneric.styles.cjs.map +0 -1
- package/dist/cjs/AppSwitcher/Action/Action.cjs.map +0 -1
- package/dist/cjs/AppSwitcher/Action/Action.styles.cjs.map +0 -1
- package/dist/cjs/AppSwitcher/AppSwitcher.cjs.map +0 -1
- package/dist/cjs/AppSwitcher/AppSwitcher.styles.cjs.map +0 -1
- package/dist/cjs/Avatar/Avatar.cjs.map +0 -1
- package/dist/cjs/Avatar/Avatar.styles.cjs.map +0 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.cjs.map +0 -1
- package/dist/cjs/AvatarGroup/AvatarGroup.styles.cjs.map +0 -1
- package/dist/cjs/Badge/Badge.cjs.map +0 -1
- package/dist/cjs/Badge/Badge.styles.cjs.map +0 -1
- package/dist/cjs/Banner/Banner.cjs.map +0 -1
- package/dist/cjs/Banner/Banner.styles.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/ActionContainer/ActionContainer.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/ActionContainer/ActionContainer.styles.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/BannerContent.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/BannerContent.styles.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/MessageContainer/MessageContainer.cjs.map +0 -1
- package/dist/cjs/Banner/BannerContent/MessageContainer/MessageContainer.styles.cjs.map +0 -1
- package/dist/cjs/BaseCheckBox/BaseCheckBox.cjs.map +0 -1
- package/dist/cjs/BaseCheckBox/BaseCheckBox.styles.cjs.map +0 -1
- package/dist/cjs/BaseCheckBox/icons.cjs.map +0 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.cjs.map +0 -1
- package/dist/cjs/BaseDropdown/BaseDropdown.styles.cjs.map +0 -1
- package/dist/cjs/BaseDropdown/BaseDropdownContext/BaseDropdownContext.cjs.map +0 -1
- package/dist/cjs/BaseInput/BaseInput.cjs.map +0 -1
- package/dist/cjs/BaseInput/BaseInput.styles.cjs.map +0 -1
- package/dist/cjs/BaseInput/validations.cjs.map +0 -1
- package/dist/cjs/BaseRadio/BaseRadio.cjs.map +0 -1
- package/dist/cjs/BaseRadio/BaseRadio.styles.cjs.map +0 -1
- package/dist/cjs/BaseRadio/icons.cjs.map +0 -1
- package/dist/cjs/BaseSwitch/BaseSwitch.cjs.map +0 -1
- package/dist/cjs/BaseSwitch/BaseSwitch.styles.cjs.map +0 -1
- package/dist/cjs/Box/Box.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/BreadCrumb.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/BreadCrumb.styles.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/Page/Page.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/Page/Page.styles.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/PathElement/PathElement.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/PathElement/PathElement.styles.cjs.map +0 -1
- package/dist/cjs/BreadCrumb/utils.cjs.map +0 -1
- package/dist/cjs/BulkActions/BulkActions.cjs.map +0 -1
- package/dist/cjs/BulkActions/BulkActions.styles.cjs.map +0 -1
- package/dist/cjs/Button/Button.cjs.map +0 -1
- package/dist/cjs/Button/Button.styles.cjs.map +0 -1
- package/dist/cjs/Button/types.cjs.map +0 -1
- package/dist/cjs/Calendar/Calendar.cjs.map +0 -1
- package/dist/cjs/Calendar/Calendar.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/Navigation/Navigation.cjs.map +0 -1
- package/dist/cjs/Calendar/CalendarNavigation/Navigation/Navigation.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/SingleCalendar/CalendarCell.cjs.map +0 -1
- package/dist/cjs/Calendar/SingleCalendar/CalendarCell.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.cjs.map +0 -1
- package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.styles.cjs.map +0 -1
- package/dist/cjs/Calendar/model.cjs.map +0 -1
- package/dist/cjs/Calendar/utils.cjs.map +0 -1
- package/dist/cjs/Card/Card.cjs.map +0 -1
- package/dist/cjs/Card/Card.styles.cjs.map +0 -1
- package/dist/cjs/Card/Content/Content.cjs.map +0 -1
- package/dist/cjs/Card/Content/Content.styles.cjs.map +0 -1
- package/dist/cjs/Card/Header/Header.cjs.map +0 -1
- package/dist/cjs/Card/Header/Header.styles.cjs.map +0 -1
- package/dist/cjs/Card/Media/Media.cjs.map +0 -1
- package/dist/cjs/Card/Media/Media.styles.cjs.map +0 -1
- package/dist/cjs/Carousel/Carousel.cjs.map +0 -1
- package/dist/cjs/Carousel/Carousel.styles.cjs.map +0 -1
- package/dist/cjs/Carousel/CarouselControls.cjs.map +0 -1
- package/dist/cjs/Carousel/CarouselSlide/CarouselSlide.cjs.map +0 -1
- package/dist/cjs/Carousel/CarouselSlide/CarouselSlide.styles.cjs.map +0 -1
- package/dist/cjs/Carousel/CarouselThumbnails.cjs.map +0 -1
- package/dist/cjs/CheckBox/CheckBox.cjs.map +0 -1
- package/dist/cjs/CheckBox/CheckBox.styles.cjs.map +0 -1
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs.map +0 -1
- package/dist/cjs/CheckBoxGroup/CheckBoxGroup.styles.cjs.map +0 -1
- package/dist/cjs/ColorPicker/ColorPicker.cjs.map +0 -1
- package/dist/cjs/ColorPicker/ColorPicker.styles.cjs.map +0 -1
- package/dist/cjs/ColorPicker/Fields/Fields.cjs.map +0 -1
- package/dist/cjs/ColorPicker/Fields/Fields.styles.cjs.map +0 -1
- package/dist/cjs/ColorPicker/Picker/Picker.cjs.map +0 -1
- package/dist/cjs/ColorPicker/Picker/Picker.styles.cjs.map +0 -1
- package/dist/cjs/ColorPicker/PresetColors/PresetColors.cjs.map +0 -1
- package/dist/cjs/ColorPicker/PresetColors/PresetColors.styles.cjs.map +0 -1
- package/dist/cjs/ColorPicker/SavedColors/SavedColors.cjs.map +0 -1
- package/dist/cjs/ColorPicker/SavedColors/SavedColors.styles.cjs.map +0 -1
- package/dist/cjs/Container/Container.cjs.map +0 -1
- package/dist/cjs/Container/Container.styles.cjs.map +0 -1
- package/dist/cjs/Controls/Controls.cjs.map +0 -1
- package/dist/cjs/Controls/Controls.styles.cjs.map +0 -1
- package/dist/cjs/Controls/LeftControl/LeftControl.cjs.map +0 -1
- package/dist/cjs/Controls/LeftControl/LeftControl.styles.cjs.map +0 -1
- package/dist/cjs/Controls/RightControl/RightControl.cjs.map +0 -1
- package/dist/cjs/Controls/RightControl/RightControl.styles.cjs.map +0 -1
- package/dist/cjs/Controls/context/ControlsContext.cjs.map +0 -1
- package/dist/cjs/DatePicker/DatePicker.cjs.map +0 -1
- package/dist/cjs/DatePicker/DatePicker.styles.cjs.map +0 -1
- package/dist/cjs/DatePicker/useVisibleDate.cjs.map +0 -1
- package/dist/cjs/DatePicker/utils.cjs.map +0 -1
- package/dist/cjs/Dialog/Actions/Actions.cjs.map +0 -1
- package/dist/cjs/Dialog/Actions/Actions.styles.cjs.map +0 -1
- package/dist/cjs/Dialog/Content/Content.cjs.map +0 -1
- package/dist/cjs/Dialog/Content/Content.styles.cjs.map +0 -1
- package/dist/cjs/Dialog/Dialog.cjs.map +0 -1
- package/dist/cjs/Dialog/Dialog.styles.cjs.map +0 -1
- package/dist/cjs/Dialog/Title/Title.cjs.map +0 -1
- package/dist/cjs/Dialog/Title/Title.styles.cjs.map +0 -1
- package/dist/cjs/Dialog/context.cjs.map +0 -1
- package/dist/cjs/DotPagination/DotPagination.cjs.map +0 -1
- package/dist/cjs/DotPagination/DotPagination.styles.cjs.map +0 -1
- package/dist/cjs/Drawer/Drawer.cjs.map +0 -1
- package/dist/cjs/Drawer/Drawer.styles.cjs.map +0 -1
- package/dist/cjs/DropDownMenu/DropDownMenu.cjs.map +0 -1
- package/dist/cjs/DropDownMenu/DropDownMenu.styles.cjs.map +0 -1
- package/dist/cjs/Dropdown/Dropdown.cjs.map +0 -1
- package/dist/cjs/Dropdown/Dropdown.styles.cjs.map +0 -1
- package/dist/cjs/Dropdown/List/List.cjs.map +0 -1
- package/dist/cjs/Dropdown/List/List.styles.cjs.map +0 -1
- package/dist/cjs/Dropdown/utils.cjs.map +0 -1
- package/dist/cjs/DropdownButton/DropdownButton.cjs.map +0 -1
- package/dist/cjs/DropdownButton/DropdownButton.styles.cjs.map +0 -1
- package/dist/cjs/EmptyState/EmptyState.cjs.map +0 -1
- package/dist/cjs/EmptyState/EmptyState.styles.cjs.map +0 -1
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs.map +0 -1
- package/dist/cjs/FileUploader/DropZone/DropZone.styles.cjs.map +0 -1
- package/dist/cjs/FileUploader/File/File.cjs.map +0 -1
- package/dist/cjs/FileUploader/File/File.styles.cjs.map +0 -1
- package/dist/cjs/FileUploader/FileList/FileList.cjs.map +0 -1
- package/dist/cjs/FileUploader/FileList/FileList.styles.cjs.map +0 -1
- package/dist/cjs/FileUploader/FileUploader.cjs.map +0 -1
- package/dist/cjs/FileUploader/Preview/Preview.cjs.map +0 -1
- package/dist/cjs/FileUploader/Preview/Preview.styles.cjs.map +0 -1
- package/dist/cjs/FileUploader/utils.cjs.map +0 -1
- package/dist/cjs/FilterGroup/Counter/Counter.cjs.map +0 -1
- package/dist/cjs/FilterGroup/Counter/Counter.styles.cjs.map +0 -1
- package/dist/cjs/FilterGroup/FilterContent/FilterContent.cjs.map +0 -1
- package/dist/cjs/FilterGroup/FilterContent/FilterContent.styles.cjs.map +0 -1
- package/dist/cjs/FilterGroup/FilterGroup.cjs.map +0 -1
- package/dist/cjs/FilterGroup/FilterGroup.styles.cjs.map +0 -1
- package/dist/cjs/FilterGroup/FilterGroupContext.cjs.map +0 -1
- package/dist/cjs/FilterGroup/LeftPanel/LeftPanel.cjs.map +0 -1
- package/dist/cjs/FilterGroup/LeftPanel/LeftPanel.styles.cjs.map +0 -1
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs.map +0 -1
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.styles.cjs.map +0 -1
- package/dist/cjs/Focus/Focus.cjs.map +0 -1
- package/dist/cjs/Focus/Focus.styles.cjs.map +0 -1
- package/dist/cjs/Focus/utils.cjs.map +0 -1
- package/dist/cjs/Footer/Footer.cjs.map +0 -1
- package/dist/cjs/Footer/Footer.styles.cjs.map +0 -1
- package/dist/cjs/Forms/Adornment/Adornment.cjs.map +0 -1
- package/dist/cjs/Forms/Adornment/Adornment.styles.cjs.map +0 -1
- package/dist/cjs/Forms/CharCounter/CharCounter.cjs.map +0 -1
- package/dist/cjs/Forms/CharCounter/CharCounter.styles.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/FormElement.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/FormElement.styles.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/context/FormElementContext.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/context/FormElementDescriptorsContext.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/context/FormElementValueContext.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/utils/FormUtils.cjs.map +0 -1
- package/dist/cjs/Forms/FormElement/validationStates.cjs.map +0 -1
- package/dist/cjs/Forms/InfoMessage/InfoMessage.cjs.map +0 -1
- package/dist/cjs/Forms/InfoMessage/InfoMessage.styles.cjs.map +0 -1
- package/dist/cjs/Forms/Label/Label.cjs.map +0 -1
- package/dist/cjs/Forms/Label/Label.styles.cjs.map +0 -1
- package/dist/cjs/Forms/Suggestions/Suggestions.cjs.map +0 -1
- package/dist/cjs/Forms/Suggestions/Suggestions.styles.cjs.map +0 -1
- package/dist/cjs/Forms/WarningText/WarningText.cjs.map +0 -1
- package/dist/cjs/Forms/WarningText/WarningText.styles.cjs.map +0 -1
- package/dist/cjs/GlobalActions/GlobalActions.cjs.map +0 -1
- package/dist/cjs/GlobalActions/GlobalActions.styles.cjs.map +0 -1
- package/dist/cjs/Grid/Grid.cjs.map +0 -1
- package/dist/cjs/Grid/Grid.styles.cjs.map +0 -1
- package/dist/cjs/Header/Actions/Actions.cjs.map +0 -1
- package/dist/cjs/Header/Actions/Actions.styles.cjs.map +0 -1
- package/dist/cjs/Header/Brand/Brand.cjs.map +0 -1
- package/dist/cjs/Header/Brand/Brand.styles.cjs.map +0 -1
- package/dist/cjs/Header/Header.cjs.map +0 -1
- package/dist/cjs/Header/Header.styles.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/MenuBar/Bar.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/MenuBar/Bar.styles.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/MenuBar/MenuBar.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/Navigation.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/Navigation.styles.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/useSelectionPath.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/utils/FocusContext.cjs.map +0 -1
- package/dist/cjs/Header/Navigation/utils/SelectionContext.cjs.map +0 -1
- package/dist/cjs/IconButton/IconButton.cjs.map +0 -1
- package/dist/cjs/InlineEditor/InlineEditor.cjs.map +0 -1
- package/dist/cjs/InlineEditor/InlineEditor.styles.cjs.map +0 -1
- package/dist/cjs/Input/Input.cjs.map +0 -1
- package/dist/cjs/Input/Input.styles.cjs.map +0 -1
- package/dist/cjs/Kpi/Kpi.cjs.map +0 -1
- package/dist/cjs/Kpi/Kpi.styles.cjs.map +0 -1
- package/dist/cjs/Link/Link.cjs.map +0 -1
- package/dist/cjs/Link/Link.styles.cjs.map +0 -1
- package/dist/cjs/List/List.cjs.map +0 -1
- package/dist/cjs/List/List.styles.cjs.map +0 -1
- package/dist/cjs/List/useSelectableList.cjs.map +0 -1
- package/dist/cjs/List/utils.cjs.map +0 -1
- package/dist/cjs/ListContainer/ListContainer.cjs.map +0 -1
- package/dist/cjs/ListContainer/ListContainer.styles.cjs.map +0 -1
- package/dist/cjs/ListContainer/ListContext/ListContext.cjs.map +0 -1
- package/dist/cjs/ListContainer/ListItem/ListItem.cjs.map +0 -1
- package/dist/cjs/ListContainer/ListItem/ListItem.styles.cjs.map +0 -1
- package/dist/cjs/Loading/Loading.cjs.map +0 -1
- package/dist/cjs/Loading/Loading.styles.cjs.map +0 -1
- package/dist/cjs/LoadingContainer/LoadingContainer.cjs.map +0 -1
- package/dist/cjs/LoadingContainer/LoadingContainer.styles.cjs.map +0 -1
- package/dist/cjs/Login/Login.cjs.map +0 -1
- package/dist/cjs/Login/Login.styles.cjs.map +0 -1
- package/dist/cjs/MultiButton/MultiButton.cjs.map +0 -1
- package/dist/cjs/MultiButton/MultiButton.styles.cjs.map +0 -1
- package/dist/cjs/OverflowTooltip/OverflowTooltip.cjs.map +0 -1
- package/dist/cjs/OverflowTooltip/OverflowTooltip.styles.cjs.map +0 -1
- package/dist/cjs/Pagination/Pagination.cjs.map +0 -1
- package/dist/cjs/Pagination/Pagination.styles.cjs.map +0 -1
- package/dist/cjs/Pagination/Select.cjs.map +0 -1
- package/dist/cjs/Pagination/Select.styles.cjs.map +0 -1
- package/dist/cjs/Pagination/utils.cjs.map +0 -1
- package/dist/cjs/Panel/Panel.cjs.map +0 -1
- package/dist/cjs/Panel/Panel.styles.cjs.map +0 -1
- package/dist/cjs/ProgressBar/ProgressBar.cjs.map +0 -1
- package/dist/cjs/ProgressBar/ProgressBar.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Context.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/QueryBuilder.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/QueryBuilder.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Attribute/Attribute.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Operator/Operator.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Rule.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Rule.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/EmptyValue/EmptyValue.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/Rule/Value/Value.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/RuleGroup/RuleGroup.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/types.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/utils/index.cjs.map +0 -1
- package/dist/cjs/QueryBuilder/utils/reducer.cjs.map +0 -1
- package/dist/cjs/Radio/Radio.cjs.map +0 -1
- package/dist/cjs/Radio/Radio.styles.cjs.map +0 -1
- package/dist/cjs/RadioGroup/RadioGroup.cjs.map +0 -1
- package/dist/cjs/RadioGroup/RadioGroup.styles.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Vertical/ScrollToVertical.styles.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +0 -1
- package/dist/cjs/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs.map +0 -1
- package/dist/cjs/ScrollTo/useScrollTo.cjs.map +0 -1
- package/dist/cjs/ScrollTo/utils.cjs.map +0 -1
- package/dist/cjs/ScrollTo/withTooltip.cjs +0 -17
- package/dist/cjs/ScrollTo/withTooltip.cjs.map +0 -1
- package/dist/cjs/Section/Section.cjs.map +0 -1
- package/dist/cjs/Section/Section.styles.cjs.map +0 -1
- package/dist/cjs/Select/Option.cjs.map +0 -1
- package/dist/cjs/Select/OptionGroup.cjs.map +0 -1
- package/dist/cjs/Select/Select.cjs.map +0 -1
- package/dist/cjs/Select/Select.styles.cjs.map +0 -1
- package/dist/cjs/SelectionList/SelectionList.cjs.map +0 -1
- package/dist/cjs/SelectionList/SelectionList.styles.cjs.map +0 -1
- package/dist/cjs/SimpleGrid/SimpleGrid.cjs.map +0 -1
- package/dist/cjs/SimpleGrid/SimpleGrid.styles.cjs.map +0 -1
- package/dist/cjs/Skeleton/Skeleton.cjs.map +0 -1
- package/dist/cjs/Skeleton/Skeleton.styles.cjs.map +0 -1
- package/dist/cjs/Slider/Slider.cjs.map +0 -1
- package/dist/cjs/Slider/Slider.styles.cjs.map +0 -1
- package/dist/cjs/Slider/SliderInput/SliderInput.cjs.map +0 -1
- package/dist/cjs/Slider/SliderInput/SliderInput.styles.cjs.map +0 -1
- package/dist/cjs/Slider/base.cjs.map +0 -1
- package/dist/cjs/Slider/utils.cjs.map +0 -1
- package/dist/cjs/Snackbar/Snackbar.cjs.map +0 -1
- package/dist/cjs/Snackbar/Snackbar.styles.cjs.map +0 -1
- package/dist/cjs/Snackbar/SnackbarContent/SnackbarContent.cjs.map +0 -1
- package/dist/cjs/Snackbar/SnackbarContent/SnackbarContent.styles.cjs.map +0 -1
- package/dist/cjs/SnackbarProvider/SnackbarProvider.cjs.map +0 -1
- package/dist/cjs/SnackbarProvider/SnackbarProvider.styles.cjs.map +0 -1
- package/dist/cjs/Stack/Stack.cjs.map +0 -1
- package/dist/cjs/Stack/Stack.styles.cjs.map +0 -1
- package/dist/cjs/Switch/Switch.cjs.map +0 -1
- package/dist/cjs/Switch/Switch.styles.cjs.map +0 -1
- package/dist/cjs/Tab/Tab.cjs.map +0 -1
- package/dist/cjs/Tab/Tab.styles.cjs.map +0 -1
- package/dist/cjs/Table/Table.cjs.map +0 -1
- package/dist/cjs/Table/Table.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableBody/TableBody.cjs.map +0 -1
- package/dist/cjs/Table/TableBody/TableBody.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableCell/TableCell.cjs.map +0 -1
- package/dist/cjs/Table/TableCell/TableCell.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableContainer/TableContainer.cjs.map +0 -1
- package/dist/cjs/Table/TableContainer/TableContainer.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableContext.cjs.map +0 -1
- package/dist/cjs/Table/TableHead/TableHead.cjs.map +0 -1
- package/dist/cjs/Table/TableHead/TableHead.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableHeader/TableHeader.cjs.map +0 -1
- package/dist/cjs/Table/TableHeader/TableHeader.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableHeader/utils.cjs.map +0 -1
- package/dist/cjs/Table/TableRow/TableRow.cjs.map +0 -1
- package/dist/cjs/Table/TableRow/TableRow.styles.cjs.map +0 -1
- package/dist/cjs/Table/TableSectionContext.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useBulkActions.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useFilters.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useGlobalFilter.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useHeaderGroups.cjs.map +0 -1
- package/dist/cjs/Table/hooks/usePagination.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useResizeColumns.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useRowExpand.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useRowSelection.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useRowState.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useSortBy.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useSticky.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useTable.cjs.map +0 -1
- package/dist/cjs/Table/hooks/useTableStyles.cjs.map +0 -1
- package/dist/cjs/Table/renderers/DateColumnCell/DateColumnCell.cjs.map +0 -1
- package/dist/cjs/Table/renderers/DropdownColumnCell/DropdownColumnCell.cjs.map +0 -1
- package/dist/cjs/Table/renderers/ProgressColumnCell/ProgressColumnCell.cjs.map +0 -1
- package/dist/cjs/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.cjs.map +0 -1
- package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.cjs.map +0 -1
- package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.cjs.map +0 -1
- package/dist/cjs/Table/renderers/renderers.cjs.map +0 -1
- package/dist/cjs/Table/utils/fallbacks.cjs.map +0 -1
- package/dist/cjs/Table/utils/utils.cjs.map +0 -1
- package/dist/cjs/TableSection/TableSection.cjs.map +0 -1
- package/dist/cjs/TableSection/TableSection.styles.cjs.map +0 -1
- package/dist/cjs/Tabs/Tabs.cjs.map +0 -1
- package/dist/cjs/Tabs/Tabs.styles.cjs.map +0 -1
- package/dist/cjs/Tag/Tag.cjs.map +0 -1
- package/dist/cjs/Tag/Tag.styles.cjs.map +0 -1
- package/dist/cjs/TagsInput/TagsInput.cjs.map +0 -1
- package/dist/cjs/TagsInput/TagsInput.styles.cjs.map +0 -1
- package/dist/cjs/TextArea/TextArea.cjs.map +0 -1
- package/dist/cjs/TextArea/TextArea.styles.cjs.map +0 -1
- package/dist/cjs/TimeAgo/TimeAgo.cjs.map +0 -1
- package/dist/cjs/TimeAgo/TimeAgo.styles.cjs.map +0 -1
- package/dist/cjs/TimeAgo/formatUtils.cjs.map +0 -1
- package/dist/cjs/TimeAgo/useTimeAgo.cjs.map +0 -1
- package/dist/cjs/TimeAgo/useTimeout.cjs.map +0 -1
- package/dist/cjs/TimePicker/Placeholder.cjs.map +0 -1
- package/dist/cjs/TimePicker/TimePicker.cjs.map +0 -1
- package/dist/cjs/TimePicker/TimePicker.styles.cjs.map +0 -1
- package/dist/cjs/TimePicker/Unit/Unit.cjs.map +0 -1
- package/dist/cjs/TimePicker/Unit/Unit.styles.cjs.map +0 -1
- package/dist/cjs/ToggleButton/ToggleButton.cjs.map +0 -1
- package/dist/cjs/Tooltip/Tooltip.cjs.map +0 -1
- package/dist/cjs/Tooltip/Tooltip.styles.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeItem/DefaultContent.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeItem/TreeItem.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeItem/TreeItem.styles.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeItem/useHvTreeItem.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeView.cjs.map +0 -1
- package/dist/cjs/TreeView/TreeView.styles.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/DescendantProvider.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/TreeViewProvider.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/corePlugins.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/defaultPlugins.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewExpansion.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewFocus.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewNodes.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/plugins/useTreeViewSelection.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/useInstanceEventHandler.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeView.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeViewInstanceEvents.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/useTreeViewModels.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/hooks/utils.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/utils/EventManager.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs.map +0 -1
- package/dist/cjs/TreeView/internals/utils/publishTreeViewEvent.cjs.map +0 -1
- package/dist/cjs/Typography/Typography.cjs.map +0 -1
- package/dist/cjs/Typography/Typography.styles.cjs.map +0 -1
- package/dist/cjs/Typography/utils.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Actions/Action.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Actions/Actions.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Actions/Actions.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Header/Header.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Header/Header.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/NavigationPopup/NavigationPopup.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/NavigationPopup/NavigationPopupContainer.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/NavigationSlider.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/NavigationSlider/utils/NavigationSlider.utils.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/IconWrapper/IconWrapper.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/IconWrapper/IconWrapper.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeView.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeView.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewContext.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/TreeView/descendants.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigation.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigation.styles.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/VerticalNavigationContext.cjs.map +0 -1
- package/dist/cjs/VerticalNavigation/utils/VerticalNavigation.utils.cjs.map +0 -1
- package/dist/cjs/hocs/withTooltip.cjs.map +0 -1
- package/dist/cjs/hooks/useClickOutside.cjs.map +0 -1
- package/dist/cjs/hooks/useComputation.cjs.map +0 -1
- package/dist/cjs/hooks/useControlled.cjs.map +0 -1
- package/dist/cjs/hooks/useCss.cjs.map +0 -1
- package/dist/cjs/hooks/useDefaultProps.cjs.map +0 -1
- package/dist/cjs/hooks/useEmotionCache.cjs.map +0 -1
- package/dist/cjs/hooks/useEnhancedEffect.cjs.map +0 -1
- package/dist/cjs/hooks/useForkRef.cjs.map +0 -1
- package/dist/cjs/hooks/useImageLoaded.cjs.map +0 -1
- package/dist/cjs/hooks/useIsMounted.cjs.map +0 -1
- package/dist/cjs/hooks/useLabels.cjs.map +0 -1
- package/dist/cjs/hooks/useTheme.cjs.map +0 -1
- package/dist/cjs/hooks/useUniqueId.cjs.map +0 -1
- package/dist/cjs/hooks/useWidth.cjs.map +0 -1
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/providers/Provider.cjs.map +0 -1
- package/dist/cjs/providers/ThemeProvider.cjs.map +0 -1
- package/dist/cjs/types/generic.cjs.map +0 -1
- package/dist/cjs/utils/ConditionalWrapper.cjs.map +0 -1
- package/dist/cjs/utils/Random.cjs.map +0 -1
- package/dist/cjs/utils/browser.cjs.map +0 -1
- package/dist/cjs/utils/checkValidHexColorValue.cjs.map +0 -1
- package/dist/cjs/utils/classes.cjs.map +0 -1
- package/dist/cjs/utils/document.cjs.map +0 -1
- package/dist/cjs/utils/focusUtils.cjs.map +0 -1
- package/dist/cjs/utils/focusableElementFinder.cjs.map +0 -1
- package/dist/cjs/utils/getComponentName.cjs.map +0 -1
- package/dist/cjs/utils/helpers.cjs.map +0 -1
- package/dist/cjs/utils/hexToRgbA.cjs.map +0 -1
- package/dist/cjs/utils/iconVariant.cjs.map +0 -1
- package/dist/cjs/utils/keyboardUtils.cjs.map +0 -1
- package/dist/cjs/utils/multiSelectionEventHandler.cjs.map +0 -1
- package/dist/cjs/utils/setId.cjs.map +0 -1
- package/dist/cjs/utils/sizes.cjs.map +0 -1
- package/dist/cjs/utils/theme.cjs.map +0 -1
- package/dist/cjs/utils/useSavedState.cjs.map +0 -1
- package/dist/cjs/utils/wrapperTooltip.cjs.map +0 -1
- package/dist/esm/ScrollTo/withTooltip.js +0 -17
- package/dist/esm/ScrollTo/withTooltip.js.map +0 -1
package/dist/esm/List/List.js
CHANGED
|
@@ -4,14 +4,14 @@ import { FixedSizeList } from "react-window";
|
|
|
4
4
|
import { DropRightXS } from "@hitachivantara/uikit-react-icons";
|
|
5
5
|
import { useDefaultProps } from "../hooks/useDefaultProps.js";
|
|
6
6
|
import { setId } from "../utils/setId.js";
|
|
7
|
-
import { wrapperTooltip } from "../utils/wrapperTooltip.js";
|
|
8
7
|
import { useClasses } from "./List.styles.js";
|
|
9
8
|
import { staticClasses } from "./List.styles.js";
|
|
10
9
|
import { useSelectableList } from "./useSelectableList.js";
|
|
11
10
|
import { parseList } from "./utils.js";
|
|
12
11
|
import { HvCheckBox } from "../CheckBox/CheckBox.js";
|
|
13
|
-
import {
|
|
12
|
+
import { HvOverflowTooltip } from "../OverflowTooltip/OverflowTooltip.js";
|
|
14
13
|
import { HvLink } from "../Link/Link.js";
|
|
14
|
+
import { HvRadio } from "../Radio/Radio.js";
|
|
15
15
|
import { HvListContainer } from "../ListContainer/ListContainer.js";
|
|
16
16
|
import { HvTypography } from "../Typography/Typography.js";
|
|
17
17
|
import { HvListItem } from "../ListContainer/ListItem/ListItem.js";
|
|
@@ -25,6 +25,7 @@ const HvList = (props) => {
|
|
|
25
25
|
classes: classesProp,
|
|
26
26
|
className,
|
|
27
27
|
multiSelect = false,
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
29
|
hasTooltips = false,
|
|
29
30
|
showSelectAll = false,
|
|
30
31
|
labels = DEFAULT_LABELS,
|
|
@@ -115,65 +116,32 @@ const HvList = (props) => {
|
|
|
115
116
|
);
|
|
116
117
|
};
|
|
117
118
|
const renderItemText = (item) => {
|
|
118
|
-
|
|
119
|
-
return !multiSelect && item.path ? /* @__PURE__ */ jsx(HvLink, { route: item.path, classes: { a: classes.link }, children: /* @__PURE__ */ jsx(ItemText, {}) }, item.label) : /* @__PURE__ */ jsx(ItemText, {});
|
|
120
|
-
};
|
|
121
|
-
const renderMultiSelectItem = (item, itemId) => {
|
|
122
|
-
if (useSelector) {
|
|
123
|
-
const Selection = wrapperTooltip(
|
|
124
|
-
hasTooltips,
|
|
125
|
-
/* @__PURE__ */ jsx(
|
|
126
|
-
HvCheckBox,
|
|
127
|
-
{
|
|
128
|
-
id: setId(itemId, "selector"),
|
|
129
|
-
label: item.label,
|
|
130
|
-
checked: item.selected,
|
|
131
|
-
disabled: item.disabled,
|
|
132
|
-
onChange: (evt) => handleSelect(evt, item),
|
|
133
|
-
classes: {
|
|
134
|
-
root: classes.selectorRoot,
|
|
135
|
-
container: classes.selectorContainer,
|
|
136
|
-
label: classes.truncate
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
),
|
|
140
|
-
item.label
|
|
141
|
-
);
|
|
142
|
-
return /* @__PURE__ */ jsx(Selection, {});
|
|
143
|
-
}
|
|
144
|
-
return renderItemText(item);
|
|
119
|
+
return !multiSelect && item.path ? /* @__PURE__ */ jsx(HvLink, { route: item.path, classes: { a: classes.link }, children: /* @__PURE__ */ jsx(HvOverflowTooltip, { data: item.label }) }) : /* @__PURE__ */ jsx(HvOverflowTooltip, { data: item.label });
|
|
145
120
|
};
|
|
146
|
-
const
|
|
147
|
-
if (useSelector)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
);
|
|
166
|
-
return /* @__PURE__ */ jsx(Selection, {});
|
|
167
|
-
}
|
|
168
|
-
return renderItemText(item);
|
|
121
|
+
const renderSelectItem = (item, itemId) => {
|
|
122
|
+
if (!useSelector)
|
|
123
|
+
return renderItemText(item);
|
|
124
|
+
const Component = multiSelect ? HvCheckBox : HvRadio;
|
|
125
|
+
return /* @__PURE__ */ jsx(
|
|
126
|
+
Component,
|
|
127
|
+
{
|
|
128
|
+
id: setId(itemId, "selector"),
|
|
129
|
+
label: /* @__PURE__ */ jsx(HvOverflowTooltip, { data: item.label }),
|
|
130
|
+
checked: item.selected || false,
|
|
131
|
+
disabled: item.disabled,
|
|
132
|
+
onChange: multiSelect ? (evt) => handleSelect(evt, item) : void 0,
|
|
133
|
+
classes: {
|
|
134
|
+
root: classes.selectorRoot,
|
|
135
|
+
container: classes.selectorContainer,
|
|
136
|
+
label: classes.truncate
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
);
|
|
169
140
|
};
|
|
170
141
|
const renderListItem = (item, i, otherProps = {}) => {
|
|
171
142
|
const itemId = setId(id, "item", i);
|
|
172
143
|
const selected = item.selected || false;
|
|
173
|
-
|
|
174
|
-
if (!useSelector && item.icon) {
|
|
175
|
-
startAdornment = renderLeftIcon(item);
|
|
176
|
-
}
|
|
144
|
+
const startAdornment = !useSelector && item.icon ? renderLeftIcon(item) : null;
|
|
177
145
|
return /* @__PURE__ */ jsx(
|
|
178
146
|
HvListItem,
|
|
179
147
|
{
|
|
@@ -191,7 +159,7 @@ const HvList = (props) => {
|
|
|
191
159
|
startAdornment,
|
|
192
160
|
endAdornment: item.showNavIcon && /* @__PURE__ */ jsx(DropRightXS, { className: classes.box, iconSize: "XS" }),
|
|
193
161
|
...otherProps,
|
|
194
|
-
children:
|
|
162
|
+
children: renderSelectItem(item, itemId)
|
|
195
163
|
},
|
|
196
164
|
i
|
|
197
165
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../../src/List/List.tsx"],"sourcesContent":["import {\n AriaRole,\n forwardRef,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { FixedSizeList } from \"react-window\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvCheckBox } from \"../CheckBox\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvLink } from \"../Link\";\nimport {\n HvListContainer,\n HvListContainerProps,\n HvListItem,\n} from \"../ListContainer\";\nimport { HvRadio } from \"../Radio\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvTypography } from \"../Typography\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { setId } from \"../utils/setId\";\nimport { wrapperTooltip } from \"../utils/wrapperTooltip\";\nimport { staticClasses, useClasses } from \"./List.styles\";\nimport { HvListLabels, HvListValue } from \"./types\";\nimport { useSelectableList } from \"./useSelectableList\";\nimport { parseList } from \"./utils\";\n\nexport { staticClasses as listClasses };\n\nexport type HvListClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\" | \"onClick\"> {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue,\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n}\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = (props: HvListProps) => {\n const {\n id,\n classes: classesProp,\n className,\n multiSelect = false,\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n } = useDefaultProps(\"HvList\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp,\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const [role, itemRole] = useMemo<[AriaRole, AriaRole]>(() => {\n // selectors are responsible for the role & selection state\n if (selectable && useSelector) return [\"list\", \"listitem\"];\n\n if (selectable) return [\"listbox\", \"option\"];\n return [\"menu\", \"menuitem\"];\n }, [selectable, useSelector]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled,\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list,\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <HvLink key={item.label} route={item.path} classes={{ a: classes.link }}>\n <ItemText />\n </HvLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label,\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label,\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <HvListItem\n key={i}\n id={itemId}\n role={itemRole}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{\n selected: cx({\n [classes.itemSelector]: useSelector || multiSelect,\n }),\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <DropRightXS className={classes.box} iconSize=\"XS\" />\n )\n }\n {...otherProps}\n >\n {multiSelect\n ? renderMultiSelectItem(item, itemId)\n : renderSingleSelectItem(item, itemId)}\n </HvListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const renderVirtualizedListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const ariaMultiSelectable = (role === \"listbox\" && multiSelect) || undefined;\n\n const ListContainer = useMemo(() => {\n return forwardRef<HTMLUListElement, HvListContainerProps>(\n ({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\n role={role}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={ariaMultiSelectable}\n ref={ref}\n {...rest}\n />\n ),\n );\n }, [\n cx,\n id,\n useSelector,\n className,\n classes.root,\n role,\n condensed,\n ariaMultiSelectable,\n ]);\n\n // Render nothing if there are no items\n if (filteredList.length === 0) return null;\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {!virtualized ? (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\n role={role}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={ariaMultiSelectable}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n ) : (\n <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={(height || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={ListContainer}\n {...others}\n >\n {renderVirtualizedListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n"],"names":["anySelected"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../src/List/List.tsx"],"sourcesContent":["import {\n AriaRole,\n forwardRef,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { FixedSizeList } from \"react-window\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvCheckBox } from \"../CheckBox\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvLink } from \"../Link\";\nimport {\n HvListContainer,\n HvListContainerProps,\n HvListItem,\n} from \"../ListContainer\";\nimport { HvOverflowTooltip } from \"../OverflowTooltip\";\nimport { HvRadio } from \"../Radio\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvTypography } from \"../Typography\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { setId } from \"../utils/setId\";\nimport { staticClasses, useClasses } from \"./List.styles\";\nimport { HvListLabels, HvListValue } from \"./types\";\nimport { useSelectableList } from \"./useSelectableList\";\nimport { parseList } from \"./utils\";\n\nexport { staticClasses as listClasses };\n\nexport type HvListClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\" | \"onClick\"> {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue,\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list. @deprecated this is always enabled */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n}\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = (props: HvListProps) => {\n const {\n id,\n classes: classesProp,\n className,\n multiSelect = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n } = useDefaultProps(\"HvList\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp,\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const [role, itemRole] = useMemo<[AriaRole, AriaRole]>(() => {\n // selectors are responsible for the role & selection state\n if (selectable && useSelector) return [\"list\", \"listitem\"];\n\n if (selectable) return [\"listbox\", \"option\"];\n return [\"menu\", \"menuitem\"];\n }, [selectable, useSelector]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled,\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list,\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item: HvListValue) => {\n return !multiSelect && item.path ? (\n <HvLink route={item.path} classes={{ a: classes.link }}>\n <HvOverflowTooltip data={item.label} />\n </HvLink>\n ) : (\n <HvOverflowTooltip data={item.label} />\n );\n };\n\n const renderSelectItem = (item: HvListValue, itemId?: string) => {\n if (!useSelector) return renderItemText(item);\n\n const Component = multiSelect ? HvCheckBox : HvRadio;\n\n return (\n <Component\n id={setId(itemId, \"selector\")}\n label={<HvOverflowTooltip data={item.label} />}\n checked={item.selected || false}\n disabled={item.disabled}\n onChange={multiSelect ? (evt) => handleSelect(evt, item) : undefined}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />\n );\n };\n\n const renderListItem = (item: HvListValue, i: number, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n const startAdornment =\n !useSelector && item.icon ? renderLeftIcon(item) : null;\n\n return (\n <HvListItem\n key={i}\n id={itemId}\n role={itemRole}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{\n selected: cx({\n [classes.itemSelector]: useSelector || multiSelect,\n }),\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <DropRightXS className={classes.box} iconSize=\"XS\" />\n )\n }\n {...otherProps}\n >\n {renderSelectItem(item, itemId)}\n </HvListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const renderVirtualizedListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const ariaMultiSelectable = (role === \"listbox\" && multiSelect) || undefined;\n\n const ListContainer = useMemo(() => {\n return forwardRef<HTMLUListElement, HvListContainerProps>(\n ({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\n role={role}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={ariaMultiSelectable}\n ref={ref}\n {...rest}\n />\n ),\n );\n }, [\n cx,\n id,\n useSelector,\n className,\n classes.root,\n role,\n condensed,\n ariaMultiSelectable,\n ]);\n\n // Render nothing if there are no items\n if (filteredList.length === 0) return null;\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {!virtualized ? (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\n role={role}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={ariaMultiSelectable}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n ) : (\n <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={(height || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={ListContainer}\n {...others}\n >\n {renderVirtualizedListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n"],"names":["anySelected"],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { createClasses } from "../utils/classes.js";
|
|
|
3
3
|
const { staticClasses, useClasses } = createClasses("HvLoadingContainer", {
|
|
4
4
|
root: {
|
|
5
5
|
position: "relative",
|
|
6
|
-
height: "inherit"
|
|
7
|
-
userSelect: "none"
|
|
6
|
+
height: "inherit"
|
|
8
7
|
},
|
|
9
8
|
loading: {
|
|
10
9
|
position: "absolute",
|
|
10
|
+
userSelect: "none",
|
|
11
11
|
inset: 0,
|
|
12
12
|
zIndex: theme.zIndices.overlay,
|
|
13
13
|
transition: "background-color .2s ease",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingContainer.styles.js","sources":["../../../src/LoadingContainer/LoadingContainer.styles.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nconst { staticClasses, useClasses } = createClasses(\"HvLoadingContainer\", {\n root: {\n position: \"relative\",\n height: \"inherit\",\n
|
|
1
|
+
{"version":3,"file":"LoadingContainer.styles.js","sources":["../../../src/LoadingContainer/LoadingContainer.styles.ts"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nconst { staticClasses, useClasses } = createClasses(\"HvLoadingContainer\", {\n root: {\n position: \"relative\",\n height: \"inherit\",\n },\n loading: {\n position: \"absolute\",\n userSelect: \"none\",\n inset: 0,\n zIndex: theme.zIndices.overlay,\n transition: \"background-color .2s ease\",\n backgroundColor: theme.alpha(\"atmo1\", \"var(--opacity, 0.8)\"),\n },\n});\n\nexport { staticClasses, useClasses };\n"],"names":[],"mappings":";;AAIA,MAAM,EAAE,eAAe,eAAe,cAAc,sBAAsB;AAAA,EACxE,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ,MAAM,SAAS;AAAA,IACvB,YAAY;AAAA,IACZ,iBAAiB,MAAM,MAAM,SAAS,qBAAqB;AAAA,EAC7D;AACF,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sources":["../../../src/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from \"react\";\n\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { isEqual } from \"../utils/helpers\";\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport {\n defaultCombinators,\n defaultLabels,\n defaultOperators,\n HvQueryBuilderProvider,\n} from \"./Context\";\nimport { staticClasses, useClasses } from \"./QueryBuilder.styles\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n defaultRendererKey,\n HvQueryBuilderAttribute,\n HvQueryBuilderLabels,\n HvQueryBuilderQuery,\n HvQueryBuilderQueryCombinator,\n HvQueryBuilderQueryOperator,\n HvQueryBuilderRenderers,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup, setNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n /** The query attribute types. */\n attributes?: Record<string, HvQueryBuilderAttribute>;\n /** The query rules operators by attribute type and combinator. */\n operators?: Record<string, HvQueryBuilderQueryOperator[]>;\n /** The query combinators operands. */\n combinators?: HvQueryBuilderQueryCombinator[];\n /** The query when the component is controlled. */\n value?: HvQueryBuilderQuery;\n /** The initial query when the component is uncontrolled. */\n defaultValue?: HvQueryBuilderQuery;\n /**\n * The initial query when the component is uncontrolled.\n *\n * @deprecated Use `defaultValue` instead.\n * */\n query?: HvQueryBuilderQuery; // TODO - remove in v6\n /** Callback fired when the query changes. */\n onChange?: (value: HvQueryBuilderQuery) => void;\n /** Max depth of nested query groups. */\n maxDepth?: number;\n /** Object containing all the labels. */\n labels?: HvQueryBuilderLabels;\n /** Whether the query builder is in read-only mode. */\n readOnly?: boolean;\n /**\n * Operators that should use the empty value renderer when selected.\n *\n * When one of the listed operators is selected, the rule value is reset and an empty component is rendered.\n * This property takes priority over `renderers`.\n *\n * @default [\"Empty\", \"IsNotEmpty\"]\n * */\n emptyRenderer?: string[];\n /** Custom renderers for the rules' value. */\n renderers?: HvQueryBuilderRenderers;\n /** Whether to opt-out of the confirmation dialogs shown before removing rules and rule groups. @default false. */\n disableConfirmation?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvQueryBuilderClasses;\n}\n\n// TODO - v6\n// - \"range\", \"Empty\", and \"IsNotEmpty\" operators with internal/built-in logic\n\n// Notes:\n// Deep clone is needed throughout the component to avoid undesired mutations in props, state, and ref values\n\n/**\n * This component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * Take a look at the [usage page](https://lumada-design.github.io/uikit/master/?path=/docs/widgets-query-builder-usage--docs) to learn more about this component.\n */\nexport const HvQueryBuilder = (props: HvQueryBuilderProps) => {\n const {\n attributes,\n renderers,\n query: queryProp, // TODO - remove in v6\n value,\n defaultValue,\n onChange,\n disableConfirmation = false,\n operators = defaultOperators,\n combinators = defaultCombinators,\n maxDepth = 1,\n labels = defaultLabels,\n readOnly = false,\n emptyRenderer = [\"Empty\", \"IsNotEmpty\"],\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilder\", props);\n\n if (\n import.meta.env.DEV &&\n [\n Object.values(attributes || {}).map(({ type }) => type),\n Object.values(operators || {})\n .map((ops) => ops.map(({ operator }) => operator))\n .flat(),\n ]\n .flat()\n ?.find((key) => key === defaultRendererKey)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `${defaultRendererKey} is a restricted key and shouldn't be used as an attribute or operator type. Update the key to avoid unexpected behaviors.`,\n );\n }\n\n const { classes } = useClasses(classesProp);\n\n const currentAttributes = useRef<HvQueryBuilderProps[\"attributes\"] | null>(\n null,\n );\n\n const controlled = useRef(value != null);\n const initialQuery = useRef(\n value ?? defaultValue ?? queryProp ?? emptyGroup(),\n );\n const [query, setQuery] = useControlled(value, initialQuery.current);\n const prevQuery = useRef(query);\n\n const [pendingAction, setPendingAction] = useState<AskAction>();\n const [initialState, setInitialState] = useState(true);\n\n const [state, dispatchAction] = useReducer(\n reducer,\n setNodeIds(structuredClone(initialQuery.current)),\n );\n\n const contextValue = useMemo(\n () => ({\n dispatchAction,\n askAction: setPendingAction,\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n initialTouched: initialState,\n readOnly,\n renderers,\n disableConfirmation,\n emptyRenderer,\n }),\n [\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n renderers,\n disableConfirmation,\n emptyRenderer,\n ],\n );\n\n // Keep track of attributes\n useEffect(() => {\n if (currentAttributes.current == null) {\n // First run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // Attributes changed. The existing query is almost certainly invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n useEffect(() => {\n // \"value\" prop was updated by user (when controlled)\n if (!isEqual(prevQuery.current, query)) {\n dispatchAction({\n type: \"set-query\",\n query: setNodeIds(structuredClone(query), state),\n });\n prevQuery.current = query;\n } else if (\n !isEqual(\n clearNodeIds(structuredClone(state)),\n clearNodeIds(structuredClone(query)),\n )\n ) {\n setInitialState(false);\n\n // TODO - remove \"true\" from clearNodeIds in v6 (only keep else statement)\n // To avoid breaking changes, clearNodeIds will delete all ids provided by the user when uncontrolled\n // In the future if the user provides ids, it doesn't make sense to remove them with onChange\n if (!controlled.current) {\n onChange?.(\n clearNodeIds(structuredClone(state), true) as HvQueryBuilderQuery,\n );\n } else {\n // When controlled, the ids provided by the user are not removed. Only the auto generated ones.\n onChange?.(clearNodeIds(structuredClone(state)) as HvQueryBuilderQuery);\n }\n\n prevQuery.current = state;\n // This will only run if uncontrolled\n setQuery(state);\n }\n }, [onChange, query, setQuery, state]);\n\n const handleConfirm = () => {\n if (pendingAction) {\n setPendingAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const handleCancel = () => {\n setPendingAction(undefined);\n };\n\n return (\n <HvQueryBuilderProvider value={contextValue}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n title={pendingAction?.dialog.dialogTitle}\n message={pendingAction?.dialog.dialogMessage}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip}\n />\n </HvQueryBuilderProvider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","sources":["../../../src/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from \"react\";\n\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { isEqual } from \"../utils/helpers\";\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport {\n defaultCombinators,\n defaultLabels,\n defaultOperators,\n HvQueryBuilderProvider,\n} from \"./Context\";\nimport { staticClasses, useClasses } from \"./QueryBuilder.styles\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n defaultRendererKey,\n HvQueryBuilderAttribute,\n HvQueryBuilderLabels,\n HvQueryBuilderQuery,\n HvQueryBuilderQueryCombinator,\n HvQueryBuilderQueryOperator,\n HvQueryBuilderRenderers,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup, setNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n /** The query attribute types. */\n attributes?: Record<string, HvQueryBuilderAttribute>;\n /** The query rules operators by attribute type and combinator. */\n operators?: Record<string, HvQueryBuilderQueryOperator[]>;\n /** The query combinators operands. */\n combinators?: HvQueryBuilderQueryCombinator[];\n /** The query when the component is controlled. */\n value?: HvQueryBuilderQuery;\n /** The initial query when the component is uncontrolled. */\n defaultValue?: HvQueryBuilderQuery;\n /**\n * The initial query when the component is uncontrolled.\n *\n * @deprecated Use `defaultValue` instead.\n * */\n query?: HvQueryBuilderQuery; // TODO - remove in v6\n /** Callback fired when the query changes. */\n onChange?: (value: HvQueryBuilderQuery) => void;\n /** Max depth of nested query groups. */\n maxDepth?: number;\n /** Object containing all the labels. */\n labels?: HvQueryBuilderLabels;\n /** Whether the query builder is in read-only mode. */\n readOnly?: boolean;\n /**\n * Operators that should use the empty value renderer when selected.\n *\n * When one of the listed operators is selected, the rule value is reset and an empty component is rendered.\n * This property takes priority over `renderers`.\n *\n * @default [\"Empty\", \"IsNotEmpty\"]\n * */\n emptyRenderer?: string[];\n /** Custom renderers for the rules' value. */\n renderers?: HvQueryBuilderRenderers;\n /** Whether to opt-out of the confirmation dialogs shown before removing rules and rule groups. @default false. */\n disableConfirmation?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvQueryBuilderClasses;\n}\n\n// TODO - v6\n// - \"range\", \"Empty\", and \"IsNotEmpty\" operators with internal/built-in logic\n\n// Notes:\n// Deep clone is needed throughout the component to avoid undesired mutations in props, state, and ref values\n\n/**\n * This component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * Take a look at the [usage page](https://lumada-design.github.io/uikit/master/?path=/docs/widgets-query-builder-usage--docs) to learn more about this component.\n */\nexport const HvQueryBuilder = (props: HvQueryBuilderProps) => {\n const {\n attributes,\n renderers,\n query: queryProp, // TODO - remove in v6\n value,\n defaultValue,\n onChange,\n disableConfirmation = false,\n operators = defaultOperators,\n combinators = defaultCombinators,\n maxDepth = 1,\n labels = defaultLabels,\n readOnly = false,\n emptyRenderer = [\"Empty\", \"IsNotEmpty\"],\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilder\", props);\n\n if (\n import.meta.env.DEV &&\n [\n Object.values(attributes || {}).map(({ type }) => type),\n Object.values(operators || {})\n .map((ops) => ops.map(({ operator }) => operator))\n .flat(),\n ]\n .flat()\n ?.find((key) => key === defaultRendererKey)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `${defaultRendererKey} is a restricted key and shouldn't be used as an attribute or operator type. Update the key to avoid unexpected behaviors.`,\n );\n }\n\n const { classes } = useClasses(classesProp);\n\n const currentAttributes = useRef<HvQueryBuilderProps[\"attributes\"] | null>(\n null,\n );\n\n const controlled = useRef(value != null);\n const initialQuery = useRef(\n value ?? defaultValue ?? queryProp ?? emptyGroup(),\n );\n const [query, setQuery] = useControlled(value, initialQuery.current);\n const prevQuery = useRef(query);\n\n const [pendingAction, setPendingAction] = useState<AskAction>();\n const [initialState, setInitialState] = useState(true);\n\n const [state, dispatchAction] = useReducer(\n reducer,\n setNodeIds(structuredClone(initialQuery.current)),\n );\n\n const contextValue = useMemo(\n () => ({\n dispatchAction,\n askAction: setPendingAction,\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n initialTouched: initialState,\n readOnly,\n renderers,\n disableConfirmation,\n emptyRenderer,\n }),\n [\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n renderers,\n disableConfirmation,\n emptyRenderer,\n ],\n );\n\n // Keep track of attributes\n useEffect(() => {\n if (currentAttributes.current == null) {\n // First run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // Attributes changed. The existing query is almost certainly invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n useEffect(() => {\n // \"value\" prop was updated by user (when controlled)\n if (!isEqual(prevQuery.current, query)) {\n dispatchAction({\n type: \"set-query\",\n query: setNodeIds(structuredClone(query), state),\n });\n prevQuery.current = query;\n } else if (\n !isEqual(\n clearNodeIds(structuredClone(state)),\n clearNodeIds(structuredClone(query)),\n )\n ) {\n setInitialState(false);\n\n // TODO - remove \"true\" from clearNodeIds in v6 (only keep else statement)\n // To avoid breaking changes, clearNodeIds will delete all ids provided by the user when uncontrolled\n // In the future if the user provides ids, it doesn't make sense to remove them with onChange\n if (!controlled.current) {\n onChange?.(\n clearNodeIds(structuredClone(state), true) as HvQueryBuilderQuery,\n );\n } else {\n // When controlled, the ids provided by the user are not removed. Only the auto generated ones.\n onChange?.(clearNodeIds(structuredClone(state)) as HvQueryBuilderQuery);\n }\n\n prevQuery.current = state;\n // This will only run if uncontrolled\n setQuery(state);\n }\n }, [onChange, query, setQuery, state]);\n\n const handleConfirm = () => {\n if (pendingAction) {\n setPendingAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const handleCancel = () => {\n setPendingAction(undefined);\n };\n\n return (\n <HvQueryBuilderProvider value={contextValue}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n title={pendingAction?.dialog.dialogTitle}\n message={pendingAction?.dialog.dialogMessage}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip}\n />\n </HvQueryBuilderProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAsFa,MAAA,iBAAiB,CAAC,UAA+B;AACtD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,IACtB,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,WAAW;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,IACX,gBAAgB,CAAC,SAAS,YAAY;AAAA,IACtC,SAAS;AAAA,EAAA,IACP,gBAAgB,kBAAkB,KAAK;AAcjC,UACe,QAAA,IAAA,WAAA,WAAA;AACvB,QAAA,oBAAA;AAAA,IACF;AAAA,EAEA;AAEA,QAAM,aAAoB,OAAA,SAAA,IAAA;AACxB,QAAA,eAAA;AAAA,IACF,SAAA,gBAAA,aAAA,WAAA;AAAA,EAEA;AACA,QAAM,CAAe,OAAA,QAAA,IAAA,cAAA,OAAA,aAAA,OAAA;AACnB,QAAA,YAAyB,OAAA,KAAA;AAC3B,QAAA,CAAA,eAAA,gBAAA,IAAA,SAAA;AACA,QAAM,CAAC,cAAO,eAA0B,IAAA;AAClC,QAAA,CAAA,OAAA,cAAwB,IAAA;AAAA,IAE9B;AAAA,IACA,WAAO,gBAA6B,oBAAa,CAAI;AAAA,EAErD;AACE,QAAA,eAAA;AAAA,IACA,OAAW;AAAA,MACb;AAAA,MAEA,WAAqB;AAAA,MACZ;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEA;AAAA,MACA;AAAA,MACF;AAAA,MACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAAA,EAAA;AAEA,YAAA,MAAA;AACF,QAAA,kBAAA,WAAA,MAAA;AACF,wBAAA,UAAA;AAAA,IAGA,WAAgB,kBAAA,YAAA,YAAA;AACV,wBAAA;AAEF,qBAAA,EAAA,MAA4B,cAAA,CAAA;AAAA,IAC9B;AAAA,EAEE,GAAA,CAAA,UAAA,CAAA;AACe,YAAA,MAAA;AACjB,QAAA,CAAA,QAAA,UAAA,SAAA,KAAA,GAAA;AACE,qBAAW;AAAA,QAEf,MAAgB;AAAA,QAEV,OAAC,WAAkB,gBAAiB,KAAA,GAAA,KAAA;AAAA,MACtC,CAAe;AAAA,gBACP,UAAA;AAAA,IAAA,WACC,CAAA;AAAA,MACT,aAAC,gBAAA,KAAA,CAAA;AAAA,MACD,aAAoB,gBAAA,KAAA,CAAA;AAAA,IAAA;AAGlB,sBAA6B,KAAA;AAC7B,UAAA,CAAA,WAA6B,SAAA;AAE/B;AAAA,UACA,aAAqB,gBAAA,KAAA,GAAA,IAAA;AAAA,QAKrB;AAAA,MACE,OAAA;AAAA,mBACe,aAAA,gBAA4B,KAAA,CAAA,CAAA;AAAA,MAC3C;AACF,gBAAO,UAAA;AAEL,eAAA,KAAwB;AAAA,IAC1B;AAAA,EAEA,GAAA,CAAA,UAAU,OAAU,UAAA,KAAA,CAAA;AAEpB,QAAA,gBAAc,MAAA;AAChB,QAAA,eAAA;AACE,uBAAiB,MAAA;AAErB,4BAA4B,QAAA,CAAA,WAAA,eAAA,MAAA,CAAA;AAAA,IAC1B;AAAA,EACE;AACA,QAAA,qBAA8B;AAChC,qBAAA,MAAA;AAAA,EAAA;AAGF,SAA2B,qBAAA,wBAAA,EAAA,OAAA,cAAA,UAAA;AAAA,IACzB;AAAA,MACF;AAAA,MAGE;AAAA,QACE,OAAA;AAAA,QAAC,IAAA,MAAA;AAAA,QAAA,YAAA,MAAA;AAAA,QACC,OAAO,MAAA;AAAA,QACP;AAAA,MAAU;AAAA,IACQ;AAAA,IAElB;AAAA,MAAA;AAAA,MACF;AAAA,QACA,QAAA,iBAAA;AAAA,QAAC,WAAA;AAAA,QAAA,UAAA;AAAA,QACC,sBAAyB,OAAA;AAAA,QACzB,SAAW,eAAA,OAAA;AAAA,QACX,oBAAU,eAAA,OAAA;AAAA,QACV,kCAA6B,OAAA;AAAA,QAC7B,mCAA+B,OAAA;AAAA,MAC/B;AAAA,IACA;AAAA,EACA,EAAA,CAAA;AAA0C;"}
|
|
@@ -1,48 +1,53 @@
|
|
|
1
|
-
import { jsx } from "@emotion/react/jsx-runtime";
|
|
1
|
+
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import { useDefaultProps } from "../../../hooks/useDefaultProps.js";
|
|
3
3
|
import { setId } from "../../../utils/setId.js";
|
|
4
4
|
import { useClasses } from "./HorizontalScrollListItem.styles.js";
|
|
5
5
|
import { staticClasses } from "./HorizontalScrollListItem.styles.js";
|
|
6
|
+
import { HvOverflowTooltip } from "../../../OverflowTooltip/OverflowTooltip.js";
|
|
6
7
|
const HvHorizontalScrollListItem = (props) => {
|
|
7
8
|
const {
|
|
8
9
|
id,
|
|
9
10
|
className,
|
|
10
11
|
classes: classesProp,
|
|
11
12
|
selected,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
onKeyDown,
|
|
15
|
-
tooltipWrapper,
|
|
13
|
+
label,
|
|
14
|
+
tooltipPlacement,
|
|
16
15
|
href,
|
|
16
|
+
iconClasses,
|
|
17
17
|
...others
|
|
18
18
|
} = useDefaultProps("HvHorizontalScrollListItem", props);
|
|
19
19
|
const { classes, cx } = useClasses(classesProp);
|
|
20
|
-
const variant = selected ? "label" : "body";
|
|
21
|
-
const labelId = setId(id, "label");
|
|
22
20
|
const buttonId = setId(id, "button");
|
|
23
|
-
const Tooltip = tooltipWrapper;
|
|
24
21
|
const Component = href != null ? "a" : "div";
|
|
25
|
-
return /* @__PURE__ */ jsx("li", { id, className: cx(classes.root, className), "aria-current": selected, children: /* @__PURE__ */
|
|
22
|
+
return /* @__PURE__ */ jsx("li", { id, className: cx(classes.root, className), "aria-current": selected, children: /* @__PURE__ */ jsxs(
|
|
26
23
|
Component,
|
|
27
24
|
{
|
|
28
25
|
id: buttonId,
|
|
29
26
|
role: href == null ? "button" : void 0,
|
|
30
27
|
tabIndex: 0,
|
|
31
|
-
onClick,
|
|
32
|
-
onKeyDown,
|
|
33
28
|
className: classes.button,
|
|
34
|
-
"aria-labelledby": labelId,
|
|
35
29
|
href,
|
|
36
30
|
...others,
|
|
37
|
-
children:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
HvOverflowTooltip,
|
|
34
|
+
{
|
|
35
|
+
className: cx(classes.text, { [classes.selected]: selected }),
|
|
36
|
+
placement: tooltipPlacement,
|
|
37
|
+
data: label
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
/* @__PURE__ */ jsx(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
"aria-hidden": true,
|
|
44
|
+
className: cx(classes.bullet, iconClasses, {
|
|
45
|
+
[classes.bulletSelected]: selected
|
|
46
|
+
}),
|
|
47
|
+
children: /* @__PURE__ */ jsx("span", {})
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
]
|
|
46
51
|
}
|
|
47
52
|
) });
|
|
48
53
|
};
|
package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalScrollListItem.js","sources":["../../../../../src/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.tsx"],"sourcesContent":["import { useDefaultProps } from \"../../../hooks/useDefaultProps\";\nimport {
|
|
1
|
+
{"version":3,"file":"HorizontalScrollListItem.js","sources":["../../../../../src/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.tsx"],"sourcesContent":["import { useDefaultProps } from \"../../../hooks/useDefaultProps\";\nimport {\n HvOverflowTooltip,\n HvOverflowTooltipProps,\n} from \"../../../OverflowTooltip\";\nimport { HvBaseProps } from \"../../../types/generic\";\nimport { ExtractNames } from \"../../../utils/classes\";\nimport { setId } from \"../../../utils/setId\";\nimport { staticClasses, useClasses } from \"./HorizontalScrollListItem.styles\";\n\nexport { staticClasses as horizontalScrollListItemClasses };\n\nexport type HvHorizontalScrollListItemClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvHorizontalScrollListItemProps\n extends HvBaseProps<HTMLDivElement | HTMLAnchorElement> {\n /** The text to render. */\n label?: React.ReactNode;\n /** Whether the element is selected. */\n selected?: boolean;\n tooltipPlacement: HvOverflowTooltipProps[\"placement\"];\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvHorizontalScrollListItemClasses;\n\n /**\n * The link to be set in the href attribute of the anchor element.\n *\n * If this is not set, the element will be rendered as a div with a button role.\n */\n href?: string;\n /** @deprecated remove in v6 */\n iconClasses?: string;\n}\n\n/**\n * HvHorizontalScrollListItem a focusable item to be used as part of the horizontal scroll\n */\nexport const HvHorizontalScrollListItem = (\n props: HvHorizontalScrollListItemProps,\n) => {\n const {\n id,\n className,\n classes: classesProp,\n selected,\n label,\n tooltipPlacement,\n href,\n iconClasses,\n ...others\n } = useDefaultProps(\"HvHorizontalScrollListItem\", props);\n const { classes, cx } = useClasses(classesProp);\n const buttonId = setId(id, \"button\");\n\n const Component = href != null ? \"a\" : \"div\";\n\n return (\n <li id={id} className={cx(classes.root, className)} aria-current={selected}>\n <Component\n id={buttonId}\n role={href == null ? \"button\" : undefined}\n tabIndex={0}\n className={classes.button}\n href={href}\n {...others}\n >\n <HvOverflowTooltip\n className={cx(classes.text, { [classes.selected]: selected })}\n placement={tooltipPlacement}\n data={label}\n />\n <div\n aria-hidden\n className={cx(classes.bullet, iconClasses, {\n [classes.bulletSelected]: selected,\n })}\n >\n <span />\n </div>\n </Component>\n </li>\n );\n};\n"],"names":[],"mappings":";;;;;;AAqCa,MAAA,6BAA6B,CACxC,UACG;AACG,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,8BAA8B,KAAK;AACvD,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AACxC,QAAA,WAAW,MAAM,IAAI,QAAQ;AAE7B,QAAA,YAAY,QAAQ,OAAO,MAAM;AAGrC,SAAA,oBAAC,MAAG,EAAA,IAAQ,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAG,gBAAc,UAChE,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,MACJ,MAAM,QAAQ,OAAO,WAAW;AAAA,MAChC,UAAU;AAAA,MACV,WAAW,QAAQ;AAAA,MACnB;AAAA,MACC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG,QAAQ,MAAM,EAAE,CAAC,QAAQ,QAAQ,GAAG,UAAU;AAAA,YAC5D,WAAW;AAAA,YACX,MAAM;AAAA,UAAA;AAAA,QACR;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAW,GAAG,QAAQ,QAAQ,aAAa;AAAA,cACzC,CAAC,QAAQ,cAAc,GAAG;AAAA,YAAA,CAC3B;AAAA,YAED,8BAAC,QAAK,EAAA;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|
package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js
CHANGED
|
@@ -4,49 +4,44 @@ import { outlineStyles } from "../../../utils/focusUtils.js";
|
|
|
4
4
|
const name = "HvHorizontalScrollListItem";
|
|
5
5
|
const { staticClasses, useClasses } = createClasses(name, {
|
|
6
6
|
root: {
|
|
7
|
-
padding: "
|
|
7
|
+
padding: theme.spacing("xs", 0),
|
|
8
|
+
maxWidth: 120
|
|
8
9
|
},
|
|
9
10
|
button: {
|
|
10
11
|
display: "flex",
|
|
12
|
+
flexDirection: "column",
|
|
11
13
|
justifyContent: "center",
|
|
12
14
|
alignItems: "center",
|
|
13
|
-
height: "48px",
|
|
14
|
-
cursor: "pointer",
|
|
15
|
-
borderBottom: "none",
|
|
16
|
-
"&:hover": {
|
|
17
|
-
backgroundColor: "transparent",
|
|
18
|
-
"& $notSelected": {
|
|
19
|
-
height: "6px",
|
|
20
|
-
width: "6px",
|
|
21
|
-
backgroundColor: theme.colors.secondary
|
|
22
|
-
},
|
|
23
|
-
"& $notSelectedRoot": {
|
|
24
|
-
backgroundColor: theme.colors.containerBackgroundHover
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"&:focus": {
|
|
28
|
-
outline: "none"
|
|
29
|
-
},
|
|
30
15
|
"&:focus-visible": {
|
|
31
16
|
...outlineStyles
|
|
32
17
|
}
|
|
33
18
|
},
|
|
34
19
|
text: {
|
|
20
|
+
margin: theme.spacing("xs", "xs", "0")
|
|
21
|
+
},
|
|
22
|
+
selected: {
|
|
23
|
+
fontWeight: theme.typography.label.fontWeight
|
|
24
|
+
},
|
|
25
|
+
bullet: {
|
|
35
26
|
display: "flex",
|
|
36
|
-
flexDirection: "column",
|
|
37
|
-
alignItems: "center",
|
|
38
27
|
justifyContent: "center",
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
minHeight: 24,
|
|
30
|
+
height: 24,
|
|
31
|
+
width: 24,
|
|
32
|
+
fontSize: 4,
|
|
33
|
+
color: theme.colors.secondary_60,
|
|
34
|
+
"& > span": {
|
|
35
|
+
margin: "auto",
|
|
36
|
+
width: "1em",
|
|
37
|
+
height: "1em",
|
|
38
|
+
backgroundColor: "currentcolor",
|
|
39
|
+
borderRadius: "50%"
|
|
46
40
|
}
|
|
47
41
|
},
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
bulletSelected: {
|
|
43
|
+
fontSize: 6,
|
|
44
|
+
color: theme.colors.secondary
|
|
50
45
|
}
|
|
51
46
|
});
|
|
52
47
|
export {
|
package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalScrollListItem.styles.js","sources":["../../../../../src/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../../../utils/classes\";\nimport { outlineStyles } from \"../../../utils/focusUtils\";\n\nconst name = \"HvHorizontalScrollListItem\";\n\nexport const { staticClasses, useClasses } = createClasses(name, {\n root: {\n padding: \"
|
|
1
|
+
{"version":3,"file":"HorizontalScrollListItem.styles.js","sources":["../../../../../src/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../../../utils/classes\";\nimport { outlineStyles } from \"../../../utils/focusUtils\";\n\nconst name = \"HvHorizontalScrollListItem\";\n\nexport const { staticClasses, useClasses } = createClasses(name, {\n root: {\n padding: theme.spacing(\"xs\", 0),\n maxWidth: 120,\n },\n button: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n text: {\n margin: theme.spacing(\"xs\", \"xs\", \"0\"),\n },\n selected: {\n fontWeight: theme.typography.label.fontWeight,\n },\n bullet: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n minHeight: 24,\n height: 24,\n width: 24,\n fontSize: 4,\n color: theme.colors.secondary_60,\n\n \"& > span\": {\n margin: \"auto\",\n width: \"1em\",\n height: \"1em\",\n backgroundColor: \"currentcolor\",\n borderRadius: \"50%\",\n },\n },\n bulletSelected: {\n fontSize: 6,\n color: theme.colors.secondary,\n },\n});\n"],"names":[],"mappings":";;;AAKA,MAAM,OAAO;AAEN,MAAM,EAAE,eAAe,eAAe,cAAc,MAAM;AAAA,EAC/D,MAAM;AAAA,IACJ,SAAS,MAAM,QAAQ,MAAM,CAAC;AAAA,IAC9B,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,mBAAmB;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ,MAAM,QAAQ,MAAM,MAAM,GAAG;AAAA,EACvC;AAAA,EACA,UAAU;AAAA,IACR,YAAY,MAAM,WAAW,MAAM;AAAA,EACrC;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO,MAAM,OAAO;AAAA,IAEpB,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,OAAO,MAAM,OAAO;AAAA,EACtB;AACF,CAAC;"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import { jsx
|
|
2
|
-
import { useMemo, useCallback } from "react";
|
|
1
|
+
import { jsx } from "@emotion/react/jsx-runtime";
|
|
3
2
|
import { useTheme } from "@mui/material/styles";
|
|
4
3
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
|
5
|
-
import { CurrentStep } from "@hitachivantara/uikit-react-icons";
|
|
6
4
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
7
5
|
import { useDefaultProps } from "../../hooks/useDefaultProps.js";
|
|
8
|
-
import { useTheme as useTheme$1 } from "../../hooks/useTheme.js";
|
|
9
|
-
import { useUniqueId } from "../../hooks/useUniqueId.js";
|
|
10
6
|
import { isKey } from "../../utils/keyboardUtils.js";
|
|
11
7
|
import { setId } from "../../utils/setId.js";
|
|
12
8
|
import { useScrollTo } from "../useScrollTo.js";
|
|
13
|
-
import { withTooltip } from "../withTooltip.js";
|
|
14
9
|
import { useClasses } from "./ScrollToHorizontal.styles.js";
|
|
15
10
|
import { staticClasses } from "./ScrollToHorizontal.styles.js";
|
|
16
11
|
import { HvHorizontalScrollListItem } from "./HorizontalScrollListItem/HorizontalScrollListItem.js";
|
|
@@ -37,8 +32,6 @@ const HvScrollToHorizontal = (props) => {
|
|
|
37
32
|
const muiTheme = useTheme();
|
|
38
33
|
const downSm = useMediaQuery(muiTheme.breakpoints.down("sm"));
|
|
39
34
|
const upMd = useMediaQuery(muiTheme.breakpoints.up("md"));
|
|
40
|
-
const { activeTheme } = useTheme$1();
|
|
41
|
-
const elementId = useUniqueId(id);
|
|
42
35
|
const [selectedIndex, setScrollTo, elements] = useScrollTo(
|
|
43
36
|
defaultSelectedIndex,
|
|
44
37
|
scrollElementId,
|
|
@@ -48,65 +41,34 @@ const HvScrollToHorizontal = (props) => {
|
|
|
48
41
|
options,
|
|
49
42
|
onChange
|
|
50
43
|
);
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const Selected = useCallback(() => {
|
|
67
|
-
return /* @__PURE__ */ jsx(
|
|
68
|
-
CurrentStep,
|
|
69
|
-
{
|
|
70
|
-
height: activeTheme?.scrollTo.dotSelectedSize,
|
|
71
|
-
width: activeTheme?.scrollTo.dotSelectedSize,
|
|
72
|
-
className: classes.selected
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
}, [classes.selected, activeTheme?.scrollTo.dotSelectedSize]);
|
|
76
|
-
const tabs = elements.map((option, index) => {
|
|
77
|
-
const selected = selectedIndex === index;
|
|
78
|
-
const tooltipWrapper = tooltipWrappers[index];
|
|
79
|
-
return /* @__PURE__ */ jsxs(
|
|
80
|
-
HvHorizontalScrollListItem,
|
|
81
|
-
{
|
|
82
|
-
id: setId(elementId, `item-${index}`),
|
|
83
|
-
onClick: (event) => {
|
|
84
|
-
if (navigationMode !== "none") {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
}
|
|
87
|
-
handleSelection(event, option.value, index);
|
|
88
|
-
onClick?.(event, index);
|
|
89
|
-
},
|
|
90
|
-
onKeyDown: (event) => {
|
|
91
|
-
if (isKey(event, "Enter") === true) {
|
|
92
|
-
if (navigationMode !== "none") {
|
|
93
|
-
event.preventDefault();
|
|
94
|
-
}
|
|
95
|
-
handleSelection(event, option.value, index);
|
|
96
|
-
onEnter?.(event, index);
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
href: navigationMode !== "none" ? option.href : void 0,
|
|
100
|
-
tooltipWrapper,
|
|
101
|
-
selected,
|
|
102
|
-
children: [
|
|
103
|
-
/* @__PURE__ */ jsx("p", { children: option.label }),
|
|
104
|
-
selected ? /* @__PURE__ */ jsx(Selected, {}) : /* @__PURE__ */ jsx(NotSelected, {})
|
|
105
|
-
]
|
|
44
|
+
const tabs = elements.map((option, index) => /* @__PURE__ */ jsx(
|
|
45
|
+
HvHorizontalScrollListItem,
|
|
46
|
+
{
|
|
47
|
+
id: setId(id, `item-${index}`),
|
|
48
|
+
onClick: (event) => {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
setScrollTo(event, option.value, index, () => onChange?.(event, index));
|
|
51
|
+
onClick?.(event, index);
|
|
52
|
+
},
|
|
53
|
+
onKeyDown: (event) => {
|
|
54
|
+
if (isKey(event, "Enter") !== true)
|
|
55
|
+
return;
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
setScrollTo(event, option.value, index, () => onChange?.(event, index));
|
|
58
|
+
onEnter?.(event, index);
|
|
106
59
|
},
|
|
107
|
-
option.
|
|
108
|
-
|
|
109
|
-
|
|
60
|
+
href: navigationMode !== "none" ? option.href : void 0,
|
|
61
|
+
tooltipPlacement: tooltipPosition,
|
|
62
|
+
selected: selectedIndex === index,
|
|
63
|
+
label: option.label,
|
|
64
|
+
iconClasses: cx({
|
|
65
|
+
[classes.selected]: selectedIndex === index,
|
|
66
|
+
[classes.notSelected]: selectedIndex !== index,
|
|
67
|
+
[classes.notSelectedRoot]: selectedIndex !== index
|
|
68
|
+
})
|
|
69
|
+
},
|
|
70
|
+
option.key || option.label
|
|
71
|
+
));
|
|
110
72
|
return /* @__PURE__ */ jsx(
|
|
111
73
|
"ol",
|
|
112
74
|
{
|
|
@@ -125,7 +87,7 @@ const HvScrollToHorizontal = (props) => {
|
|
|
125
87
|
},
|
|
126
88
|
className
|
|
127
89
|
),
|
|
128
|
-
id
|
|
90
|
+
id,
|
|
129
91
|
...others,
|
|
130
92
|
children: tabs
|
|
131
93
|
}
|