@hitachivantara/uikit-react-core 5.28.1 → 5.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/ActionBar/ActionBar.styles.cjs +1 -1
- package/dist/cjs/components/ActionBar/ActionBar.styles.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs +5 -1
- package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseCheckBox/BaseCheckBox.styles.cjs +2 -2
- package/dist/cjs/components/BaseCheckBox/BaseCheckBox.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseDropdown/BaseDropdown.styles.cjs +16 -19
- package/dist/cjs/components/BaseDropdown/BaseDropdown.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseInput/BaseInput.styles.cjs +27 -27
- package/dist/cjs/components/BaseInput/BaseInput.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseRadio/BaseRadio.styles.cjs +2 -2
- package/dist/cjs/components/BaseRadio/BaseRadio.styles.cjs.map +1 -1
- package/dist/cjs/components/BaseSwitch/BaseSwitch.styles.cjs +35 -35
- package/dist/cjs/components/BaseSwitch/BaseSwitch.styles.cjs.map +1 -1
- package/dist/cjs/components/BulkActions/BulkActions.cjs +0 -5
- package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
- package/dist/cjs/components/BulkActions/BulkActions.styles.cjs +12 -5
- package/dist/cjs/components/BulkActions/BulkActions.styles.cjs.map +1 -1
- package/dist/cjs/components/Button/Button.cjs +1 -1
- package/dist/cjs/components/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/Button/Button.styles.cjs +56 -62
- package/dist/cjs/components/Button/Button.styles.cjs.map +1 -1
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs +14 -12
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs.map +1 -1
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.styles.cjs +6 -11
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.styles.cjs.map +1 -1
- package/dist/cjs/components/Calendar/SingleCalendar/CalendarCell.cjs +17 -15
- package/dist/cjs/components/Calendar/SingleCalendar/CalendarCell.cjs.map +1 -1
- package/dist/cjs/components/Calendar/SingleCalendar/CalendarCell.styles.cjs +1 -1
- package/dist/cjs/components/Calendar/SingleCalendar/CalendarCell.styles.cjs.map +1 -1
- package/dist/cjs/components/Card/Card.cjs +1 -1
- package/dist/cjs/components/Card/Card.cjs.map +1 -1
- package/dist/cjs/components/Card/Card.styles.cjs +5 -5
- package/dist/cjs/components/Card/Card.styles.cjs.map +1 -1
- package/dist/cjs/components/Card/Header/Header.cjs +12 -20
- package/dist/cjs/components/Card/Header/Header.cjs.map +1 -1
- package/dist/cjs/components/Card/Header/Header.styles.cjs +2 -0
- package/dist/cjs/components/Card/Header/Header.styles.cjs.map +1 -1
- package/dist/cjs/components/Carousel/Carousel.styles.cjs +7 -7
- package/dist/cjs/components/Carousel/Carousel.styles.cjs.map +1 -1
- package/dist/cjs/components/CheckBox/CheckBox.styles.cjs +2 -2
- package/dist/cjs/components/CheckBox/CheckBox.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/ColorPicker.cjs +2 -8
- package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/ColorPicker.styles.cjs +8 -5
- package/dist/cjs/components/ColorPicker/ColorPicker.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Fields/Fields.cjs +9 -7
- package/dist/cjs/components/ColorPicker/Fields/Fields.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Fields/Fields.styles.cjs +6 -7
- package/dist/cjs/components/ColorPicker/Fields/Fields.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Picker/Picker.cjs +13 -10
- package/dist/cjs/components/ColorPicker/Picker/Picker.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/Picker/Picker.styles.cjs +19 -19
- package/dist/cjs/components/ColorPicker/Picker/Picker.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.cjs +9 -7
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.styles.cjs +7 -7
- package/dist/cjs/components/ColorPicker/PresetColors/PresetColors.styles.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.cjs +11 -9
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.cjs.map +1 -1
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.styles.cjs +9 -9
- package/dist/cjs/components/ColorPicker/SavedColors/SavedColors.styles.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +4 -18
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.styles.cjs +6 -0
- package/dist/cjs/components/DatePicker/DatePicker.styles.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Actions/Actions.cjs +4 -1
- package/dist/cjs/components/Dialog/Actions/Actions.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +12 -20
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.styles.cjs +1 -1
- package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Title/Title.cjs +5 -12
- package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Title/Title.styles.cjs +2 -1
- package/dist/cjs/components/Dialog/Title/Title.styles.cjs.map +1 -1
- package/dist/cjs/components/Dialog/context.cjs +10 -0
- package/dist/cjs/components/Dialog/context.cjs.map +1 -0
- package/dist/cjs/components/Drawer/Drawer.cjs +0 -27
- package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs +3 -3
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.cjs +10 -16
- package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.styles.cjs +16 -4
- package/dist/cjs/components/Dropdown/Dropdown.styles.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/List/List.cjs +19 -17
- package/dist/cjs/components/Dropdown/List/List.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/List/List.styles.cjs +2 -2
- package/dist/cjs/components/Dropdown/List/List.styles.cjs.map +1 -1
- package/dist/cjs/components/EmptyState/EmptyState.cjs +1 -5
- package/dist/cjs/components/EmptyState/EmptyState.cjs.map +1 -1
- package/dist/cjs/components/EmptyState/EmptyState.styles.cjs +1 -1
- package/dist/cjs/components/EmptyState/EmptyState.styles.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs +14 -12
- package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/DropZone/DropZone.styles.cjs +8 -8
- package/dist/cjs/components/FileUploader/DropZone/DropZone.styles.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/File/File.cjs +9 -7
- package/dist/cjs/components/FileUploader/File/File.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/File/File.styles.cjs +5 -5
- package/dist/cjs/components/FileUploader/File/File.styles.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/FileList/FileList.cjs +9 -7
- package/dist/cjs/components/FileUploader/FileList/FileList.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/FileList/FileList.styles.cjs +2 -2
- package/dist/cjs/components/FileUploader/FileList/FileList.styles.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/Preview/Preview.cjs +11 -9
- package/dist/cjs/components/FileUploader/Preview/Preview.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/Preview/Preview.styles.cjs +5 -5
- package/dist/cjs/components/FileUploader/Preview/Preview.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs +7 -5
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.styles.cjs +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs +23 -21
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.styles.cjs +3 -3
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.styles.cjs.map +1 -1
- package/dist/cjs/components/Forms/InfoMessage/InfoMessage.styles.cjs +1 -1
- package/dist/cjs/components/Forms/InfoMessage/InfoMessage.styles.cjs.map +1 -1
- package/dist/cjs/components/Forms/Label/Label.styles.cjs +1 -1
- package/dist/cjs/components/Forms/Label/Label.styles.cjs.map +1 -1
- package/dist/cjs/components/GlobalActions/GlobalActions.cjs +3 -5
- package/dist/cjs/components/GlobalActions/GlobalActions.cjs.map +1 -1
- package/dist/cjs/components/GlobalActions/GlobalActions.styles.cjs +7 -4
- package/dist/cjs/components/GlobalActions/GlobalActions.styles.cjs.map +1 -1
- package/dist/cjs/components/Header/Actions/Actions.styles.cjs +1 -1
- package/dist/cjs/components/Header/Actions/Actions.styles.cjs.map +1 -1
- package/dist/cjs/components/Header/Brand/Brand.cjs +2 -6
- package/dist/cjs/components/Header/Brand/Brand.cjs.map +1 -1
- package/dist/cjs/components/Header/Brand/Brand.styles.cjs +2 -1
- package/dist/cjs/components/Header/Brand/Brand.styles.cjs.map +1 -1
- package/dist/cjs/components/Header/Header.styles.cjs +4 -4
- package/dist/cjs/components/Header/Header.styles.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuBar/Bar.cjs +10 -8
- package/dist/cjs/components/Header/Navigation/MenuBar/Bar.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuBar/Bar.styles.cjs +5 -5
- package/dist/cjs/components/Header/Navigation/MenuBar/Bar.styles.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs +12 -9
- package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +12 -10
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs +20 -37
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs +3 -3
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs.map +1 -1
- package/dist/cjs/components/List/List.styles.cjs +1 -1
- package/dist/cjs/components/List/List.styles.cjs.map +1 -1
- package/dist/cjs/components/ListContainer/ListItem/ListItem.styles.cjs +3 -3
- package/dist/cjs/components/ListContainer/ListItem/ListItem.styles.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Select.cjs +11 -9
- package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Select.styles.cjs +2 -2
- package/dist/cjs/components/Pagination/Select.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +6 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs +10 -10
- package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +14 -10
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs +9 -9
- package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs.map +1 -1
- package/dist/cjs/components/Radio/Radio.styles.cjs +2 -2
- package/dist/cjs/components/Radio/Radio.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +13 -11
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs +12 -12
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs +11 -11
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +13 -11
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs +12 -12
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs.map +1 -1
- package/dist/cjs/components/Slider/Slider.styles.cjs +4 -4
- package/dist/cjs/components/Slider/Slider.styles.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarContent/SnackbarContent.cjs +14 -12
- package/dist/cjs/components/Snackbar/SnackbarContent/SnackbarContent.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarContent/SnackbarContent.styles.cjs +1 -1
- package/dist/cjs/components/Snackbar/SnackbarContent/SnackbarContent.styles.cjs.map +1 -1
- package/dist/cjs/components/Switch/Switch.styles.cjs +1 -1
- package/dist/cjs/components/Switch/Switch.styles.cjs.map +1 -1
- package/dist/cjs/components/Tab/Tab.styles.cjs +4 -4
- package/dist/cjs/components/Tab/Tab.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableCell/TableCell.cjs +2 -1
- package/dist/cjs/components/Table/TableCell/TableCell.cjs.map +1 -1
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs +11 -11
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableHeader/TableHeader.cjs +27 -25
- package/dist/cjs/components/Table/TableHeader/TableHeader.cjs.map +1 -1
- package/dist/cjs/components/Table/TableHeader/TableHeader.styles.cjs +4 -4
- package/dist/cjs/components/Table/TableHeader/TableHeader.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableRow/TableRow.cjs +4 -9
- package/dist/cjs/components/Table/TableRow/TableRow.cjs.map +1 -1
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs +22 -11
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/utils/utils.cjs +1 -2
- package/dist/cjs/components/Table/utils/utils.cjs.map +1 -1
- package/dist/cjs/components/Tag/Tag.styles.cjs +1 -1
- package/dist/cjs/components/Tag/Tag.styles.cjs.map +1 -1
- package/dist/cjs/components/TagsInput/TagsInput.styles.cjs +6 -6
- package/dist/cjs/components/TagsInput/TagsInput.styles.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs +0 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.styles.cjs +25 -29
- package/dist/cjs/components/Tooltip/Tooltip.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs +1 -1
- package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs +1 -1
- package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs +11 -9
- package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs +2 -2
- package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +2 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +3 -3
- package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs +1 -1
- package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs.map +1 -1
- package/dist/esm/components/ActionBar/ActionBar.styles.js +1 -1
- package/dist/esm/components/ActionBar/ActionBar.styles.js.map +1 -1
- package/dist/esm/components/AppSwitcher/Action/Action.styles.js +5 -1
- package/dist/esm/components/AppSwitcher/Action/Action.styles.js.map +1 -1
- package/dist/esm/components/BaseCheckBox/BaseCheckBox.styles.js +2 -2
- package/dist/esm/components/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
- package/dist/esm/components/BaseDropdown/BaseDropdown.styles.js +16 -19
- package/dist/esm/components/BaseDropdown/BaseDropdown.styles.js.map +1 -1
- package/dist/esm/components/BaseInput/BaseInput.styles.js +27 -27
- package/dist/esm/components/BaseInput/BaseInput.styles.js.map +1 -1
- package/dist/esm/components/BaseRadio/BaseRadio.styles.js +2 -2
- package/dist/esm/components/BaseRadio/BaseRadio.styles.js.map +1 -1
- package/dist/esm/components/BaseSwitch/BaseSwitch.styles.js +35 -35
- package/dist/esm/components/BaseSwitch/BaseSwitch.styles.js.map +1 -1
- package/dist/esm/components/BulkActions/BulkActions.js +0 -5
- package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
- package/dist/esm/components/BulkActions/BulkActions.styles.js +12 -5
- package/dist/esm/components/BulkActions/BulkActions.styles.js.map +1 -1
- package/dist/esm/components/Button/Button.js +2 -2
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Button/Button.styles.js +56 -62
- package/dist/esm/components/Button/Button.styles.js.map +1 -1
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js +14 -12
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.styles.js +6 -11
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.styles.js.map +1 -1
- package/dist/esm/components/Calendar/SingleCalendar/CalendarCell.js +17 -15
- package/dist/esm/components/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
- package/dist/esm/components/Calendar/SingleCalendar/CalendarCell.styles.js +1 -1
- package/dist/esm/components/Calendar/SingleCalendar/CalendarCell.styles.js.map +1 -1
- package/dist/esm/components/Card/Card.js +1 -1
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Card/Card.styles.js +5 -5
- package/dist/esm/components/Card/Card.styles.js.map +1 -1
- package/dist/esm/components/Card/Header/Header.js +12 -20
- package/dist/esm/components/Card/Header/Header.js.map +1 -1
- package/dist/esm/components/Card/Header/Header.styles.js +2 -0
- package/dist/esm/components/Card/Header/Header.styles.js.map +1 -1
- package/dist/esm/components/Carousel/Carousel.styles.js +7 -7
- package/dist/esm/components/Carousel/Carousel.styles.js.map +1 -1
- package/dist/esm/components/CheckBox/CheckBox.styles.js +2 -2
- package/dist/esm/components/CheckBox/CheckBox.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/ColorPicker.js +2 -8
- package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/esm/components/ColorPicker/ColorPicker.styles.js +8 -5
- package/dist/esm/components/ColorPicker/ColorPicker.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/Fields/Fields.js +9 -7
- package/dist/esm/components/ColorPicker/Fields/Fields.js.map +1 -1
- package/dist/esm/components/ColorPicker/Fields/Fields.styles.js +6 -7
- package/dist/esm/components/ColorPicker/Fields/Fields.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/Picker/Picker.js +13 -10
- package/dist/esm/components/ColorPicker/Picker/Picker.js.map +1 -1
- package/dist/esm/components/ColorPicker/Picker/Picker.styles.js +19 -19
- package/dist/esm/components/ColorPicker/Picker/Picker.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.js +9 -7
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.js.map +1 -1
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.styles.js +7 -7
- package/dist/esm/components/ColorPicker/PresetColors/PresetColors.styles.js.map +1 -1
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.js +11 -9
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.js.map +1 -1
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.styles.js +9 -9
- package/dist/esm/components/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +4 -16
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.styles.js +6 -0
- package/dist/esm/components/DatePicker/DatePicker.styles.js.map +1 -1
- package/dist/esm/components/Dialog/Actions/Actions.js +4 -1
- package/dist/esm/components/Dialog/Actions/Actions.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +14 -20
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.styles.js +1 -1
- package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
- package/dist/esm/components/Dialog/Title/Title.js +5 -12
- package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
- package/dist/esm/components/Dialog/Title/Title.styles.js +2 -1
- package/dist/esm/components/Dialog/Title/Title.styles.js.map +1 -1
- package/dist/esm/components/Dialog/context.js +10 -0
- package/dist/esm/components/Dialog/context.js.map +1 -0
- package/dist/esm/components/Drawer/Drawer.js +0 -27
- package/dist/esm/components/Drawer/Drawer.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js +3 -3
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +12 -17
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.styles.js +16 -4
- package/dist/esm/components/Dropdown/Dropdown.styles.js.map +1 -1
- package/dist/esm/components/Dropdown/List/List.js +19 -17
- package/dist/esm/components/Dropdown/List/List.js.map +1 -1
- package/dist/esm/components/Dropdown/List/List.styles.js +2 -2
- package/dist/esm/components/Dropdown/List/List.styles.js.map +1 -1
- package/dist/esm/components/EmptyState/EmptyState.js +3 -7
- package/dist/esm/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/esm/components/EmptyState/EmptyState.styles.js +1 -1
- package/dist/esm/components/EmptyState/EmptyState.styles.js.map +1 -1
- package/dist/esm/components/FileUploader/DropZone/DropZone.js +14 -12
- package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
- package/dist/esm/components/FileUploader/DropZone/DropZone.styles.js +8 -8
- package/dist/esm/components/FileUploader/DropZone/DropZone.styles.js.map +1 -1
- package/dist/esm/components/FileUploader/File/File.js +9 -7
- package/dist/esm/components/FileUploader/File/File.js.map +1 -1
- package/dist/esm/components/FileUploader/File/File.styles.js +5 -5
- package/dist/esm/components/FileUploader/File/File.styles.js.map +1 -1
- package/dist/esm/components/FileUploader/FileList/FileList.js +9 -7
- package/dist/esm/components/FileUploader/FileList/FileList.js.map +1 -1
- package/dist/esm/components/FileUploader/FileList/FileList.styles.js +2 -2
- package/dist/esm/components/FileUploader/FileList/FileList.styles.js.map +1 -1
- package/dist/esm/components/FileUploader/Preview/Preview.js +11 -9
- package/dist/esm/components/FileUploader/Preview/Preview.js.map +1 -1
- package/dist/esm/components/FileUploader/Preview/Preview.styles.js +5 -5
- package/dist/esm/components/FileUploader/Preview/Preview.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.js +7 -5
- package/dist/esm/components/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.styles.js +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js +23 -21
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.styles.js +3 -3
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.styles.js.map +1 -1
- package/dist/esm/components/Forms/InfoMessage/InfoMessage.styles.js +1 -1
- package/dist/esm/components/Forms/InfoMessage/InfoMessage.styles.js.map +1 -1
- package/dist/esm/components/Forms/Label/Label.styles.js +1 -1
- package/dist/esm/components/Forms/Label/Label.styles.js.map +1 -1
- package/dist/esm/components/GlobalActions/GlobalActions.js +3 -5
- package/dist/esm/components/GlobalActions/GlobalActions.js.map +1 -1
- package/dist/esm/components/GlobalActions/GlobalActions.styles.js +7 -4
- package/dist/esm/components/GlobalActions/GlobalActions.styles.js.map +1 -1
- package/dist/esm/components/Header/Actions/Actions.styles.js +1 -1
- package/dist/esm/components/Header/Actions/Actions.styles.js.map +1 -1
- package/dist/esm/components/Header/Brand/Brand.js +2 -6
- package/dist/esm/components/Header/Brand/Brand.js.map +1 -1
- package/dist/esm/components/Header/Brand/Brand.styles.js +2 -1
- package/dist/esm/components/Header/Brand/Brand.styles.js.map +1 -1
- package/dist/esm/components/Header/Header.styles.js +4 -4
- package/dist/esm/components/Header/Header.styles.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuBar/Bar.js +10 -8
- package/dist/esm/components/Header/Navigation/MenuBar/Bar.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuBar/Bar.styles.js +5 -5
- package/dist/esm/components/Header/Navigation/MenuBar/Bar.styles.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js +12 -9
- package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +12 -10
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js +20 -37
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js +3 -3
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js.map +1 -1
- package/dist/esm/components/List/List.styles.js +1 -1
- package/dist/esm/components/List/List.styles.js.map +1 -1
- package/dist/esm/components/ListContainer/ListItem/ListItem.styles.js +3 -3
- package/dist/esm/components/ListContainer/ListItem/ListItem.styles.js.map +1 -1
- package/dist/esm/components/Pagination/Select.js +11 -9
- package/dist/esm/components/Pagination/Select.js.map +1 -1
- package/dist/esm/components/Pagination/Select.styles.js +2 -2
- package/dist/esm/components/Pagination/Select.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.js +8 -2
- package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -10
- package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Rule.js +16 -11
- package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js +9 -9
- package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js.map +1 -1
- package/dist/esm/components/Radio/Radio.styles.js +2 -2
- package/dist/esm/components/Radio/Radio.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +13 -11
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +12 -12
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js +11 -11
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js +1 -1
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +13 -11
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +12 -12
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
- package/dist/esm/components/Slider/Slider.styles.js +4 -4
- package/dist/esm/components/Slider/Slider.styles.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarContent/SnackbarContent.js +14 -12
- package/dist/esm/components/Snackbar/SnackbarContent/SnackbarContent.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarContent/SnackbarContent.styles.js +1 -1
- package/dist/esm/components/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +1 -1
- package/dist/esm/components/Switch/Switch.styles.js +1 -1
- package/dist/esm/components/Switch/Switch.styles.js.map +1 -1
- package/dist/esm/components/Tab/Tab.styles.js +4 -4
- package/dist/esm/components/Tab/Tab.styles.js.map +1 -1
- package/dist/esm/components/Table/TableCell/TableCell.js +2 -1
- package/dist/esm/components/Table/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/Table/TableCell/TableCell.styles.js +11 -11
- package/dist/esm/components/Table/TableCell/TableCell.styles.js.map +1 -1
- package/dist/esm/components/Table/TableHeader/TableHeader.js +27 -25
- package/dist/esm/components/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/esm/components/Table/TableHeader/TableHeader.styles.js +4 -4
- package/dist/esm/components/Table/TableHeader/TableHeader.styles.js.map +1 -1
- package/dist/esm/components/Table/TableRow/TableRow.js +4 -9
- package/dist/esm/components/Table/TableRow/TableRow.js.map +1 -1
- package/dist/esm/components/Table/TableRow/TableRow.styles.js +22 -11
- package/dist/esm/components/Table/TableRow/TableRow.styles.js.map +1 -1
- package/dist/esm/components/Table/utils/utils.js +1 -2
- package/dist/esm/components/Table/utils/utils.js.map +1 -1
- package/dist/esm/components/Tag/Tag.styles.js +1 -1
- package/dist/esm/components/Tag/Tag.styles.js.map +1 -1
- package/dist/esm/components/TagsInput/TagsInput.styles.js +6 -6
- package/dist/esm/components/TagsInput/TagsInput.styles.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +1 -2
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.styles.js +25 -29
- package/dist/esm/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js +1 -1
- package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js +1 -1
- package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js +11 -9
- package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js +2 -2
- package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +2 -1
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +3 -3
- package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js +1 -1
- package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js.map +1 -1
- package/dist/types/index.d.ts +371 -320
- package/package.json +5 -5
|
@@ -24,17 +24,20 @@ const {
|
|
|
24
24
|
textOverflow: "ellipsis",
|
|
25
25
|
whiteSpace: "nowrap"
|
|
26
26
|
},
|
|
27
|
+
placeholderClosed: {
|
|
28
|
+
color: theme.colors.secondary_80
|
|
29
|
+
},
|
|
27
30
|
selectionDisabled: {
|
|
28
31
|
lineHeight: theme.space.md,
|
|
29
|
-
color: theme.
|
|
32
|
+
color: theme.colors.secondary_60
|
|
30
33
|
},
|
|
31
34
|
dropdown: {
|
|
32
35
|
width: "100%",
|
|
33
36
|
borderRadius: theme.radii.base,
|
|
34
37
|
"& $dropdownHeaderInvalid": {
|
|
35
|
-
border: theme.
|
|
38
|
+
border: `1px solid ${theme.colors.negative}`,
|
|
36
39
|
"&:hover": {
|
|
37
|
-
border: theme.
|
|
40
|
+
border: `1px solid ${theme.colors.negative}`
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
},
|
|
@@ -43,7 +46,16 @@ const {
|
|
|
43
46
|
dropdownHeaderInvalid: {},
|
|
44
47
|
dropdownHeaderOpen: {},
|
|
45
48
|
dropdownListContainer: {},
|
|
46
|
-
rootList: {}
|
|
49
|
+
rootList: {},
|
|
50
|
+
disabled: {
|
|
51
|
+
color: theme.colors.secondary_60
|
|
52
|
+
},
|
|
53
|
+
readOnly: {
|
|
54
|
+
"& $dropdownHeader": {
|
|
55
|
+
border: `1px solid ${theme.colors.secondary_80}`,
|
|
56
|
+
backgroundColor: theme.colors.atmo1
|
|
57
|
+
}
|
|
58
|
+
}
|
|
47
59
|
});
|
|
48
60
|
export {
|
|
49
61
|
staticClasses,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.styles.js","sources":["../../../../src/components/Dropdown/Dropdown.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropdown\", {\n root: {\n width: \"100%\",\n position: \"relative\",\n display: \"inline-block\",\n },\n labelContainer: { display: \"flex\", alignItems: \"flex-start\" },\n label: { paddingBottom: \"6px\", display: \"block\" },\n description: {},\n error: {},\n placeholder: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n selectionDisabled: {\n lineHeight: theme.space.md,\n color: theme.
|
|
1
|
+
{"version":3,"file":"Dropdown.styles.js","sources":["../../../../src/components/Dropdown/Dropdown.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropdown\", {\n root: {\n width: \"100%\",\n position: \"relative\",\n display: \"inline-block\",\n },\n labelContainer: { display: \"flex\", alignItems: \"flex-start\" },\n label: { paddingBottom: \"6px\", display: \"block\" },\n description: {},\n error: {},\n placeholder: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n placeholderClosed: {\n color: theme.colors.secondary_80,\n },\n selectionDisabled: {\n lineHeight: theme.space.md,\n color: theme.colors.secondary_60,\n },\n dropdown: {\n width: \"100%\",\n borderRadius: theme.radii.base,\n\n \"& $dropdownHeaderInvalid\": {\n border: `1px solid ${theme.colors.negative}`,\n \"&:hover\": {\n border: `1px solid ${theme.colors.negative}`,\n },\n },\n },\n arrow: {},\n dropdownHeader: {},\n dropdownHeaderInvalid: {},\n dropdownHeaderOpen: {},\n dropdownListContainer: {},\n rootList: {},\n disabled: {\n color: theme.colors.secondary_60,\n },\n readOnly: {\n \"& $dropdownHeader\": {\n border: `1px solid ${theme.colors.secondary_80}`,\n backgroundColor: theme.colors.atmo1,\n },\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","width","position","display","labelContainer","alignItems","label","paddingBottom","description","error","placeholder","overflow","textOverflow","whiteSpace","placeholderClosed","color","theme","colors","secondary_80","selectionDisabled","lineHeight","space","md","secondary_60","dropdown","borderRadius","radii","base","border","negative","arrow","dropdownHeader","dropdownHeaderInvalid","dropdownHeaderOpen","dropdownListContainer","rootList","disabled","readOnly","backgroundColor","atmo1"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,cAAc;AAAA,EACvEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,UAAU;AAAA,IACVC,SAAS;AAAA,EACX;AAAA,EACAC,gBAAgB;AAAA,IAAED,SAAS;AAAA,IAAQE,YAAY;AAAA,EAAa;AAAA,EAC5DC,OAAO;AAAA,IAAEC,eAAe;AAAA,IAAOJ,SAAS;AAAA,EAAQ;AAAA,EAChDK,aAAa,CAAC;AAAA,EACdC,OAAO,CAAC;AAAA,EACRC,aAAa;AAAA,IACXC,UAAU;AAAA,IACVC,cAAc;AAAA,IACdC,YAAY;AAAA,EACd;AAAA,EACAC,mBAAmB;AAAA,IACjBC,OAAOC,MAAMC,OAAOC;AAAAA,EACtB;AAAA,EACAC,mBAAmB;AAAA,IACjBC,YAAYJ,MAAMK,MAAMC;AAAAA,IACxBP,OAAOC,MAAMC,OAAOM;AAAAA,EACtB;AAAA,EACAC,UAAU;AAAA,IACRvB,OAAO;AAAA,IACPwB,cAAcT,MAAMU,MAAMC;AAAAA,IAE1B,4BAA4B;AAAA,MAC1BC,QAAS,aAAYZ,MAAMC,OAAOY,QAAS;AAAA,MAC3C,WAAW;AAAA,QACTD,QAAS,aAAYZ,MAAMC,OAAOY,QAAS;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAAA,EACAC,OAAO,CAAC;AAAA,EACRC,gBAAgB,CAAC;AAAA,EACjBC,uBAAuB,CAAC;AAAA,EACxBC,oBAAoB,CAAC;AAAA,EACrBC,uBAAuB,CAAC;AAAA,EACxBC,UAAU,CAAC;AAAA,EACXC,UAAU;AAAA,IACRrB,OAAOC,MAAMC,OAAOM;AAAAA,EACtB;AAAA,EACAc,UAAU;AAAA,IACR,qBAAqB;AAAA,MACnBT,QAAS,aAAYZ,MAAMC,OAAOC,YAAa;AAAA,MAC/CoB,iBAAiBtB,MAAMC,OAAOsB;AAAAA,IAChC;AAAA,EACF;AACF,CAAC;"}
|
|
@@ -9,6 +9,7 @@ import { getSelected } from "../utils.js";
|
|
|
9
9
|
import BaseDropdownContext from "../../BaseDropdown/BaseDropdownContext/BaseDropdownContext.js";
|
|
10
10
|
import { HvActionBar } from "../../ActionBar/ActionBar.js";
|
|
11
11
|
import { HvButton } from "../../Button/Button.js";
|
|
12
|
+
import { useDefaultProps } from "../../../hooks/useDefaultProps.js";
|
|
12
13
|
import { HvList } from "../../List/List.js";
|
|
13
14
|
import { HvInput } from "../../Input/Input.js";
|
|
14
15
|
import { HvTypography } from "../../Typography/Typography.js";
|
|
@@ -21,23 +22,24 @@ const cleanHidden = (lst) => lst.map((item) => ({
|
|
|
21
22
|
isHidden: false
|
|
22
23
|
}));
|
|
23
24
|
const valuesExist = (values) => !isNil(values) && (values == null ? void 0 : values.length) > 0;
|
|
24
|
-
const HvDropdownList = ({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
const HvDropdownList = (props) => {
|
|
26
|
+
const {
|
|
27
|
+
id,
|
|
28
|
+
classes: classesProp,
|
|
29
|
+
values = [],
|
|
30
|
+
multiSelect = false,
|
|
31
|
+
showSearch = false,
|
|
32
|
+
onChange,
|
|
33
|
+
onCancel,
|
|
34
|
+
labels,
|
|
35
|
+
notifyChangesOnFirstRender = false,
|
|
36
|
+
hasTooltips = false,
|
|
37
|
+
singleSelectionToggle,
|
|
38
|
+
height: dropdownHeight,
|
|
39
|
+
maxHeight,
|
|
40
|
+
virtualized = false,
|
|
41
|
+
...others
|
|
42
|
+
} = useDefaultProps("HvDropdownList", props);
|
|
41
43
|
const {
|
|
42
44
|
classes,
|
|
43
45
|
cx,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../../../../src/components/Dropdown/List/List.tsx"],"sourcesContent":["import { MouseEvent, useContext, useEffect, useState } from \"react\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvCheckBox } from \"@core/components/CheckBox\";\nimport { HvInput } from \"@core/components/Input\";\nimport { HvList, HvListProps, HvListValue } from \"@core/components/List\";\nimport { HvActionBar } from \"@core/components/ActionBar\";\nimport BaseDropdownContext from \"@core/components/BaseDropdown/BaseDropdownContext\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./List.styles\";\nimport { getSelected } from \"../utils\";\nimport { HvDropdownLabelsProps } from \"../types\";\n\nexport { staticClasses as dropdownListClasses };\n\nexport type HvDropdownListClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropdownListProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes?: HvDropdownListClasses;\n /**\n * The list to be rendered.\n */\n values?: HvListValue[];\n /**\n * If true renders a multi select list.\n */\n multiSelect?: boolean;\n /**\n * If true renders the search component.\n */\n showSearch?: boolean;\n /**\n * A function to be executed whenever a item is selected in the list\n * or the Apply button is activated (when `multiSelect` is `true`).\n */\n onChange: (\n /** An array containing the selected values */\n listValues: HvListValue[],\n /** If `true` the selection if finally committed the dropdown header text should reflect the new selection */\n commitChanges: boolean,\n /** If `true` the dropdown should toggle it's current state */\n toggle: boolean,\n /** If `true` the dropdown will call onChange */\n notifyChanges: boolean\n ) => void;\n /**\n * A function to be executed whenever the Cancel button is activated.\n */\n onCancel: (event: MouseEvent) => void;\n /**\n * An object containing all the labels for the dropdown.\n */\n labels?: HvDropdownLabelsProps;\n /**\n * If 'true' the dropdown will notify on the first render.\n */\n notifyChangesOnFirstRender?: boolean;\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips?: boolean;\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle?: boolean;\n /**\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 */\n height?: number;\n /**\n * Experimental. Max height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class.\n */\n maxHeight?: number;\n /**\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 */\n virtualized?: boolean;\n}\n\n/**\n * The values property was being deeply cloned. That created a significant performance\n * hit when the values contained complex properties' values, like React Nodes.\n *\n * For minimizing the impact of removing the clone, a shallow clone of the array and its\n * objects is performed instead. That should have the same effect in the majority of the\n * cases, where the properties' values are primitive.\n */\nconst clone = (values: HvListValue[]) => values.map((value) => ({ ...value }));\n\n/**\n * Set all hidden's to false.\n */\nconst cleanHidden = (lst: HvListValue[]) =>\n lst.map((item) => ({ ...item, isHidden: false }));\n\nconst valuesExist = (values: HvListValue[]) =>\n !isNil(values) && values?.length > 0;\n\nexport const HvDropdownList = ({\n id,\n classes: classesProp,\n values = [],\n multiSelect = false,\n showSearch = false,\n onChange,\n onCancel,\n labels,\n notifyChangesOnFirstRender = false,\n hasTooltips = false,\n singleSelectionToggle,\n height: dropdownHeight,\n maxHeight,\n virtualized = false,\n ...others\n}: HvDropdownListProps) => {\n const { classes, cx, css } = useClasses(classesProp);\n\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [list, setList] = useState<HvListValue[]>(clone(values));\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n const { width, height } = useContext(BaseDropdownContext);\n\n const newLabels = {\n selectAll: labels?.selectAll,\n selectionConjunction: labels?.multiSelectionConjunction,\n };\n\n /**\n * Update states associated with select all.\n */\n const updateSelectAll = (listValues: HvListValue[]) => {\n if (!listValues) return;\n const nbrSelected = getSelected(listValues).length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === listValues.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n };\n\n /**\n * After the first render, call onChange if notifyChangesOnFirstRender.\n */\n useEffect(() => {\n if (!valuesExist(values)) return;\n setList(clone(values));\n updateSelectAll(values);\n if (notifyChangesOnFirstRender) {\n onChange?.(values, false, false, true);\n }\n }, [values, notifyChangesOnFirstRender, onChange]);\n\n /**\n * Sets the filtered values to the state.\n *\n * @param {String} str - The value that is being looked.\n */\n const handleSearch = (str: string) => {\n const results = list\n ? list.filter(\n ({\n searchValue,\n label,\n value,\n }: {\n searchValue?: any;\n label?: any;\n value?: any;\n }) => {\n let stringValue = \"\";\n if (\n typeof searchValue === \"string\" ||\n searchValue instanceof String\n ) {\n stringValue = searchValue.toLowerCase();\n } else if (typeof label === \"string\" || label instanceof String) {\n stringValue = label.toLowerCase();\n } else if (typeof value === \"string\" || value instanceof String) {\n stringValue = value.toLowerCase();\n }\n\n return stringValue.indexOf(str.toLowerCase()) >= 0;\n }\n )\n : null;\n\n if (!isNil(results)) {\n const newList = list.map((elem) => {\n const isResult = results.find((result) => result.label === elem.label);\n return { ...elem, isHidden: !isResult };\n });\n\n setList(newList);\n setSearchStr(str);\n }\n return str;\n };\n\n /**\n * Create search element.\n *\n * @returns {*}\n */\n const renderSearch = () => (\n <div className={classes.searchContainer}>\n <HvInput\n id={setId(id, \"search\")}\n type=\"search\"\n value={searchStr}\n placeholder={labels?.searchPlaceholder}\n aria-label={labels?.searchPlaceholder}\n onChange={(event, str) => handleSearch(str)}\n />\n </div>\n );\n\n /**\n * Select all the values inside the dropdown.\n *\n */\n const handleSelectAll = () => {\n const newList = list.map((elem) => ({ ...elem, selected: !anySelected }));\n setList(newList);\n updateSelectAll(newList);\n };\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const renderSelectAll = () => {\n const selectAll = labels?.selectAll;\n const multiSelectionConjunction = labels?.multiSelectionConjunction;\n const nbrSelected = getSelected(list).length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${list.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{\n container: classes.selection,\n }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n };\n\n /**\n * When selecting the state list is updated with the corresponding selection.\n *\n * @param listValues - elements selected.\n */\n const onSelection: HvListProps[\"onChange\"] = (listValues) => {\n if (!multiSelect) {\n onChange(cleanHidden(listValues), true, true, true);\n } else {\n updateSelectAll(listValues);\n setList(clone(listValues));\n }\n };\n\n /**\n * Render action buttons.\n */\n const renderActions = () => {\n const applyLabel = labels?.applyLabel;\n const cancelLabel = labels?.cancelLabel;\n return (\n <HvActionBar id={setId(id, \"actions\")}>\n <HvButton\n id={setId(id, \"actions-apply\")}\n onClick={() => onChange(cleanHidden(list), true, true, true)}\n variant=\"primaryGhost\"\n >\n {applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"actions-cancel\")}\n onClick={onCancel}\n variant=\"primaryGhost\"\n >\n {cancelLabel}\n </HvButton>\n </HvActionBar>\n );\n };\n\n const showList = valuesExist(values);\n\n return (\n <div className={classes.rootList}>\n <div className={classes.listBorderDown} />\n <div className={classes.listContainer}>\n {showSearch && renderSearch()}\n {showList && multiSelect && renderSelectAll()}\n {showList && (\n <HvList\n id={setId(id, \"list\")}\n classes={{\n root: cx(\n classes.dropdownListContainer,\n css({\n maxWidth: width,\n maxHeight:\n maxHeight ??\n `calc(${height}px - 32px - ${theme.space.xs} - ${theme.space.sm})`,\n overflow: \"auto\",\n padding: 4,\n margin: -4,\n }),\n dropdownHeight &&\n css({\n height: dropdownHeight,\n }),\n virtualized &&\n css({\n maxWidth: \"inherit\",\n maxHeight: \"inherit\",\n overflow: \"inherit\",\n padding: 0,\n })\n ),\n }}\n values={list}\n multiSelect={multiSelect}\n useSelector={multiSelect}\n showSelectAll={false}\n onChange={onSelection}\n labels={newLabels}\n hasTooltips={hasTooltips}\n selectable\n condensed\n singleSelectionToggle={singleSelectionToggle}\n height={dropdownHeight}\n virtualized={virtualized}\n {...others}\n />\n )}\n </div>\n {showList && multiSelect ? renderActions() : null}\n </div>\n );\n};\n"],"names":["clone","values","map","value","cleanHidden","lst","item","isHidden","valuesExist","isNil","length","HvDropdownList","id","classes","classesProp","multiSelect","showSearch","onChange","onCancel","labels","notifyChangesOnFirstRender","hasTooltips","singleSelectionToggle","height","dropdownHeight","maxHeight","virtualized","others","cx","css","useClasses","searchStr","setSearchStr","useState","list","setList","allSelected","setAllSelected","anySelected","setAnySelected","width","useContext","BaseDropdownContext","newLabels","selectAll","selectionConjunction","multiSelectionConjunction","updateSelectAll","listValues","nbrSelected","getSelected","hasSelection","allSelect","useEffect","handleSearch","str","results","filter","searchValue","label","stringValue","String","toLowerCase","indexOf","newList","elem","isResult","find","result","renderSearch","searchContainer","setId","searchPlaceholder","event","handleSelectAll","selected","renderSelectAll","defaultLabel","selectAllContainer","container","selection","onSelection","renderActions","applyLabel","cancelLabel","showList","rootList","listBorderDown","listContainer","root","dropdownListContainer","maxWidth","theme","space","xs","sm","overflow","padding","margin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../../../src/components/Dropdown/List/List.tsx"],"sourcesContent":["import { MouseEvent, useContext, useEffect, useState } from \"react\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvCheckBox } from \"@core/components/CheckBox\";\nimport { HvInput } from \"@core/components/Input\";\nimport { HvList, HvListProps, HvListValue } from \"@core/components/List\";\nimport { HvActionBar } from \"@core/components/ActionBar\";\nimport BaseDropdownContext from \"@core/components/BaseDropdown/BaseDropdownContext\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useDefaultProps } from \"@core/hooks\";\nimport { staticClasses, useClasses } from \"./List.styles\";\nimport { getSelected } from \"../utils\";\nimport { HvDropdownLabelsProps } from \"../types\";\n\nexport { staticClasses as dropdownListClasses };\n\nexport type HvDropdownListClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropdownListProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes?: HvDropdownListClasses;\n /**\n * The list to be rendered.\n */\n values?: HvListValue[];\n /**\n * If true renders a multi select list.\n */\n multiSelect?: boolean;\n /**\n * If true renders the search component.\n */\n showSearch?: boolean;\n /**\n * A function to be executed whenever a item is selected in the list\n * or the Apply button is activated (when `multiSelect` is `true`).\n */\n onChange: (\n /** An array containing the selected values */\n listValues: HvListValue[],\n /** If `true` the selection if finally committed the dropdown header text should reflect the new selection */\n commitChanges: boolean,\n /** If `true` the dropdown should toggle it's current state */\n toggle: boolean,\n /** If `true` the dropdown will call onChange */\n notifyChanges: boolean\n ) => void;\n /**\n * A function to be executed whenever the Cancel button is activated.\n */\n onCancel: (event: MouseEvent) => void;\n /**\n * An object containing all the labels for the dropdown.\n */\n labels?: HvDropdownLabelsProps;\n /**\n * If 'true' the dropdown will notify on the first render.\n */\n notifyChangesOnFirstRender?: boolean;\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips?: boolean;\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle?: boolean;\n /**\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 */\n height?: number;\n /**\n * Experimental. Max height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class.\n */\n maxHeight?: number;\n /**\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 */\n virtualized?: boolean;\n}\n\n/**\n * The values property was being deeply cloned. That created a significant performance\n * hit when the values contained complex properties' values, like React Nodes.\n *\n * For minimizing the impact of removing the clone, a shallow clone of the array and its\n * objects is performed instead. That should have the same effect in the majority of the\n * cases, where the properties' values are primitive.\n */\nconst clone = (values: HvListValue[]) => values.map((value) => ({ ...value }));\n\n/**\n * Set all hidden's to false.\n */\nconst cleanHidden = (lst: HvListValue[]) =>\n lst.map((item) => ({ ...item, isHidden: false }));\n\nconst valuesExist = (values: HvListValue[]) =>\n !isNil(values) && values?.length > 0;\n\nexport const HvDropdownList = (props: HvDropdownListProps) => {\n const {\n id,\n classes: classesProp,\n values = [],\n multiSelect = false,\n showSearch = false,\n onChange,\n onCancel,\n labels,\n notifyChangesOnFirstRender = false,\n hasTooltips = false,\n singleSelectionToggle,\n height: dropdownHeight,\n maxHeight,\n virtualized = false,\n ...others\n } = useDefaultProps(\"HvDropdownList\", props);\n const { classes, cx, css } = useClasses(classesProp);\n\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [list, setList] = useState<HvListValue[]>(clone(values));\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n const { width, height } = useContext(BaseDropdownContext);\n\n const newLabels = {\n selectAll: labels?.selectAll,\n selectionConjunction: labels?.multiSelectionConjunction,\n };\n\n /**\n * Update states associated with select all.\n */\n const updateSelectAll = (listValues: HvListValue[]) => {\n if (!listValues) return;\n const nbrSelected = getSelected(listValues).length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === listValues.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n };\n\n /**\n * After the first render, call onChange if notifyChangesOnFirstRender.\n */\n useEffect(() => {\n if (!valuesExist(values)) return;\n setList(clone(values));\n updateSelectAll(values);\n if (notifyChangesOnFirstRender) {\n onChange?.(values, false, false, true);\n }\n }, [values, notifyChangesOnFirstRender, onChange]);\n\n /**\n * Sets the filtered values to the state.\n *\n * @param {String} str - The value that is being looked.\n */\n const handleSearch = (str: string) => {\n const results = list\n ? list.filter(\n ({\n searchValue,\n label,\n value,\n }: {\n searchValue?: any;\n label?: any;\n value?: any;\n }) => {\n let stringValue = \"\";\n if (\n typeof searchValue === \"string\" ||\n searchValue instanceof String\n ) {\n stringValue = searchValue.toLowerCase();\n } else if (typeof label === \"string\" || label instanceof String) {\n stringValue = label.toLowerCase();\n } else if (typeof value === \"string\" || value instanceof String) {\n stringValue = value.toLowerCase();\n }\n\n return stringValue.indexOf(str.toLowerCase()) >= 0;\n }\n )\n : null;\n\n if (!isNil(results)) {\n const newList = list.map((elem) => {\n const isResult = results.find((result) => result.label === elem.label);\n return { ...elem, isHidden: !isResult };\n });\n\n setList(newList);\n setSearchStr(str);\n }\n return str;\n };\n\n /**\n * Create search element.\n *\n * @returns {*}\n */\n const renderSearch = () => (\n <div className={classes.searchContainer}>\n <HvInput\n id={setId(id, \"search\")}\n type=\"search\"\n value={searchStr}\n placeholder={labels?.searchPlaceholder}\n aria-label={labels?.searchPlaceholder}\n onChange={(event, str) => handleSearch(str)}\n />\n </div>\n );\n\n /**\n * Select all the values inside the dropdown.\n *\n */\n const handleSelectAll = () => {\n const newList = list.map((elem) => ({ ...elem, selected: !anySelected }));\n setList(newList);\n updateSelectAll(newList);\n };\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const renderSelectAll = () => {\n const selectAll = labels?.selectAll;\n const multiSelectionConjunction = labels?.multiSelectionConjunction;\n const nbrSelected = getSelected(list).length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${list.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{\n container: classes.selection,\n }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n };\n\n /**\n * When selecting the state list is updated with the corresponding selection.\n *\n * @param listValues - elements selected.\n */\n const onSelection: HvListProps[\"onChange\"] = (listValues) => {\n if (!multiSelect) {\n onChange(cleanHidden(listValues), true, true, true);\n } else {\n updateSelectAll(listValues);\n setList(clone(listValues));\n }\n };\n\n /**\n * Render action buttons.\n */\n const renderActions = () => {\n const applyLabel = labels?.applyLabel;\n const cancelLabel = labels?.cancelLabel;\n return (\n <HvActionBar id={setId(id, \"actions\")}>\n <HvButton\n id={setId(id, \"actions-apply\")}\n onClick={() => onChange(cleanHidden(list), true, true, true)}\n variant=\"primaryGhost\"\n >\n {applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"actions-cancel\")}\n onClick={onCancel}\n variant=\"primaryGhost\"\n >\n {cancelLabel}\n </HvButton>\n </HvActionBar>\n );\n };\n\n const showList = valuesExist(values);\n\n return (\n <div className={classes.rootList}>\n <div className={classes.listBorderDown} />\n <div className={classes.listContainer}>\n {showSearch && renderSearch()}\n {showList && multiSelect && renderSelectAll()}\n {showList && (\n <HvList\n id={setId(id, \"list\")}\n classes={{\n root: cx(\n classes.dropdownListContainer,\n css({\n maxWidth: width,\n maxHeight:\n maxHeight ??\n `calc(${height}px - 32px - ${theme.space.xs} - ${theme.space.sm})`,\n overflow: \"auto\",\n padding: 4,\n margin: -4,\n }),\n dropdownHeight &&\n css({\n height: dropdownHeight,\n }),\n virtualized &&\n css({\n maxWidth: \"inherit\",\n maxHeight: \"inherit\",\n overflow: \"inherit\",\n padding: 0,\n })\n ),\n }}\n values={list}\n multiSelect={multiSelect}\n useSelector={multiSelect}\n showSelectAll={false}\n onChange={onSelection}\n labels={newLabels}\n hasTooltips={hasTooltips}\n selectable\n condensed\n singleSelectionToggle={singleSelectionToggle}\n height={dropdownHeight}\n virtualized={virtualized}\n {...others}\n />\n )}\n </div>\n {showList && multiSelect ? renderActions() : null}\n </div>\n );\n};\n"],"names":["clone","values","map","value","cleanHidden","lst","item","isHidden","valuesExist","isNil","length","HvDropdownList","props","id","classes","classesProp","multiSelect","showSearch","onChange","onCancel","labels","notifyChangesOnFirstRender","hasTooltips","singleSelectionToggle","height","dropdownHeight","maxHeight","virtualized","others","useDefaultProps","cx","css","useClasses","searchStr","setSearchStr","useState","list","setList","allSelected","setAllSelected","anySelected","setAnySelected","width","useContext","BaseDropdownContext","newLabels","selectAll","selectionConjunction","multiSelectionConjunction","updateSelectAll","listValues","nbrSelected","getSelected","hasSelection","allSelect","useEffect","handleSearch","str","results","filter","searchValue","label","stringValue","String","toLowerCase","indexOf","newList","elem","isResult","find","result","renderSearch","searchContainer","setId","searchPlaceholder","event","handleSelectAll","selected","renderSelectAll","defaultLabel","selectAllContainer","container","selection","onSelection","renderActions","applyLabel","cancelLabel","showList","rootList","listBorderDown","listContainer","root","dropdownListContainer","maxWidth","theme","space","xs","sm","overflow","padding","margin"],"mappings":"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"}
|
|
@@ -7,11 +7,11 @@ const {
|
|
|
7
7
|
rootList: {},
|
|
8
8
|
dropdownListContainer: {},
|
|
9
9
|
searchContainer: {
|
|
10
|
-
marginBottom: theme.
|
|
10
|
+
marginBottom: theme.space.xs
|
|
11
11
|
},
|
|
12
12
|
listBorderDown: {},
|
|
13
13
|
listContainer: {
|
|
14
|
-
padding: theme.
|
|
14
|
+
padding: theme.space.sm
|
|
15
15
|
},
|
|
16
16
|
selectAllContainer: {},
|
|
17
17
|
selection: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.styles.js","sources":["../../../../../src/components/Dropdown/List/List.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropdownList\", {\n rootList: {},\n dropdownListContainer: {},\n searchContainer: { marginBottom: theme.
|
|
1
|
+
{"version":3,"file":"List.styles.js","sources":["../../../../../src/components/Dropdown/List/List.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropdownList\", {\n rootList: {},\n dropdownListContainer: {},\n searchContainer: { marginBottom: theme.space.xs },\n listBorderDown: {},\n listContainer: { padding: theme.space.sm },\n selectAllContainer: {},\n selection: {},\n selectAll: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","rootList","dropdownListContainer","searchContainer","marginBottom","theme","space","xs","listBorderDown","listContainer","padding","sm","selectAllContainer","selection","selectAll"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,kBAAkB;AAAA,EAC3EC,UAAU,CAAC;AAAA,EACXC,uBAAuB,CAAC;AAAA,EACxBC,iBAAiB;AAAA,IAAEC,cAAcC,MAAMC,MAAMC;AAAAA,EAAG;AAAA,EAChDC,gBAAgB,CAAC;AAAA,EACjBC,eAAe;AAAA,IAAEC,SAASL,MAAMC,MAAMK;AAAAA,EAAG;AAAA,EACzCC,oBAAoB,CAAC;AAAA,EACrBC,WAAW,CAAC;AAAA,EACZC,WAAW,CAAC;AACd,CAAC;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { useTheme
|
|
2
|
+
import { useTheme } from "@mui/material/styles";
|
|
3
3
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
|
4
4
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
5
5
|
import { useDefaultProps } from "../../hooks/useDefaultProps.js";
|
|
6
|
-
import { useTheme } from "../../hooks/useTheme.js";
|
|
7
6
|
import { useClasses } from "./EmptyState.styles.js";
|
|
8
7
|
import { staticClasses } from "./EmptyState.styles.js";
|
|
9
8
|
import { HvTypography } from "../Typography/Typography.js";
|
|
@@ -22,10 +21,7 @@ const HvEmptyState = (props) => {
|
|
|
22
21
|
cx,
|
|
23
22
|
css
|
|
24
23
|
} = useClasses(classesProp);
|
|
25
|
-
const
|
|
26
|
-
activeTheme
|
|
27
|
-
} = useTheme();
|
|
28
|
-
const muiTheme = useTheme$1();
|
|
24
|
+
const muiTheme = useTheme();
|
|
29
25
|
const onlyXs = useMediaQuery(muiTheme.breakpoints.only("xs"));
|
|
30
26
|
const upSm = useMediaQuery(muiTheme.breakpoints.up("sm"));
|
|
31
27
|
const messageOnly = !!(message && !(title || action));
|
|
@@ -43,7 +39,7 @@ const HvEmptyState = (props) => {
|
|
|
43
39
|
/* @__PURE__ */ jsxs("div", { className: cx(classes.textContainer, upSm && css({
|
|
44
40
|
marginLeft: theme.space.xs
|
|
45
41
|
})), children: [
|
|
46
|
-
renderNode(
|
|
42
|
+
renderNode("title4", title, classes.titleContainer),
|
|
47
43
|
renderNode("body", message, classes.messageContainer),
|
|
48
44
|
renderNode("body", action, classes.actionContainer)
|
|
49
45
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.js","sources":["../../../../src/components/EmptyState/EmptyState.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTypography, HvTypographyProps } from \"@core/components/Typography\";\nimport {
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sources":["../../../../src/components/EmptyState/EmptyState.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTypography, HvTypographyProps } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./EmptyState.styles\";\n\nexport { staticClasses as emptyStateClasses };\n\nexport type HvEmptyStateClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvEmptyStateProps\n extends HvBaseProps<HTMLDivElement, \"title\"> {\n /** Icon to be presented. */\n icon: React.ReactNode;\n /** The title to be shown. */\n title?: string | React.ReactNode;\n /** The message to be shown. */\n message?: string | React.ReactNode;\n /** The action message to be shown. */\n action?: string | React.ReactNode;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvEmptyStateClasses;\n}\n\n/**\n * Empty states communicate that there’s no information, data or values to display in a given context.\n */\nexport const HvEmptyState = (props: HvEmptyStateProps) => {\n const {\n action,\n icon,\n title,\n message,\n classes: classesProp,\n className,\n ...others\n } = useDefaultProps(\"HvEmptyState\", props);\n\n const { classes, cx, css } = useClasses(classesProp);\n\n const muiTheme = useTheme();\n\n const onlyXs = useMediaQuery(muiTheme.breakpoints.only(\"xs\"));\n const upSm = useMediaQuery(muiTheme.breakpoints.up(\"sm\"));\n\n const messageOnly = !!(message && !(title || action));\n\n const renderNode = (\n variant?: HvTypographyProps[\"variant\"],\n node?: React.ReactNode,\n style?: string\n ) =>\n node && (\n <HvTypography variant={variant} className={style}>\n {node}\n </HvTypography>\n );\n\n return (\n <div className={cx(classes.root, className)} {...others}>\n <div\n className={cx(\n classes.container,\n onlyXs &&\n css({\n flexDirection: \"column\",\n alignItems: \"center\",\n textAlign: \"center\",\n }),\n {\n [classes.containerMessageOnly]: messageOnly,\n },\n onlyXs && messageOnly && css({ flexDirection: \"row\" })\n )}\n >\n <div className={classes.iconContainer}>{icon}</div>\n <div\n className={cx(\n classes.textContainer,\n upSm && css({ marginLeft: theme.space.xs })\n )}\n >\n {renderNode(\"title4\", title, classes.titleContainer)}\n {renderNode(\"body\", message, classes.messageContainer)}\n {renderNode(\"body\", action, classes.actionContainer)}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["HvEmptyState","props","action","icon","title","message","classes","classesProp","className","others","useDefaultProps","cx","css","useClasses","muiTheme","useTheme","onlyXs","useMediaQuery","breakpoints","only","upSm","up","messageOnly","renderNode","variant","node","style","root","container","flexDirection","alignItems","textAlign","containerMessageOnly","iconContainer","textContainer","marginLeft","theme","space","xs","titleContainer","messageContainer","actionContainer"],"mappings":";;;;;;;;AAmCaA,MAAAA,eAAeA,CAACC,UAA6B;AAClD,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAgBT,KAAK;AAEnC,QAAA;AAAA,IAAEK;AAAAA,IAASK;AAAAA,IAAIC;AAAAA,EAAAA,IAAQC,WAAWN,WAAW;AAEnD,QAAMO,WAAWC;AAEjB,QAAMC,SAASC,cAAcH,SAASI,YAAYC,KAAK,IAAI,CAAC;AAC5D,QAAMC,OAAOH,cAAcH,SAASI,YAAYG,GAAG,IAAI,CAAC;AAExD,QAAMC,cAAc,CAAC,EAAEjB,WAAW,EAAED,SAASF;AAEvCqB,QAAAA,aAAaA,CACjBC,SACAC,MACAC,UAEAD,QACE,oBAAC,cAAa,EAAA,SAAkB,WAAWC,OACxCD,UACH,KAAA,CAAA;AAGJ,6BACG,OAAI,EAAA,WAAWd,GAAGL,QAAQqB,MAAMnB,SAAS,GAAG,GAAIC,QAC/C,+BAAC,OACC,EAAA,WAAWE,GACTL,QAAQsB,WACRZ,UACEJ,IAAI;AAAA,IACFiB,eAAe;AAAA,IACfC,YAAY;AAAA,IACZC,WAAW;AAAA,EAAA,CACZ,GACH;AAAA,IACE,CAACzB,QAAQ0B,oBAAoB,GAAGV;AAAAA,EAAAA,GAElCN,UAAUM,eAAeV,IAAI;AAAA,IAAEiB,eAAe;AAAA,EAAA,CAAO,CACvD,GAEA,UAAA;AAAA,IAAA,oBAAC,OAAI,EAAA,WAAWvB,QAAQ2B,eAAgB9B,UAAK,MAAA;AAAA,yBAC5C,OACC,EAAA,WAAWQ,GACTL,QAAQ4B,eACRd,QAAQR,IAAI;AAAA,MAAEuB,YAAYC,MAAMC,MAAMC;AAAAA,IAAAA,CAAI,CAC5C,GAECf,UAAAA;AAAAA,MAAW,WAAA,UAAUnB,OAAOE,QAAQiC,cAAc;AAAA,MAClDhB,WAAW,QAAQlB,SAASC,QAAQkC,gBAAgB;AAAA,MACpDjB,WAAW,QAAQrB,QAAQI,QAAQmC,eAAe;AAAA,IAAA,GACrD;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.styles.js","sources":["../../../../src/components/EmptyState/EmptyState.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvEmptyState\", {\n root: {\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n container: { display: \"flex\", flexDirection: \"row\" },\n containerMessageOnly: {\n alignItems: \"center\",\n \"& $textContainer\": {\n marginLeft: 0,\n },\n },\n iconContainer: {},\n titleContainer: {\n marginTop:
|
|
1
|
+
{"version":3,"file":"EmptyState.styles.js","sources":["../../../../src/components/EmptyState/EmptyState.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvEmptyState\", {\n root: {\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n container: { display: \"flex\", flexDirection: \"row\" },\n containerMessageOnly: {\n alignItems: \"center\",\n \"& $textContainer\": {\n marginLeft: 0,\n },\n },\n iconContainer: {},\n titleContainer: {\n marginTop: \"4px\",\n marginBottom: theme.space.sm,\n },\n textContainer: {\n background: \"transparent\",\n maxWidth: \"510px\",\n overflow: \"hidden\",\n },\n messageContainer: {},\n actionContainer: { marginTop: theme.space.sm },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","width","height","display","justifyContent","container","flexDirection","containerMessageOnly","alignItems","marginLeft","iconContainer","titleContainer","marginTop","marginBottom","theme","space","sm","textContainer","background","maxWidth","overflow","messageContainer","actionContainer"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,gBAAgB;AAAA,EACzEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,QAAQ;AAAA,IACRC,SAAS;AAAA,IACTC,gBAAgB;AAAA,EAClB;AAAA,EACAC,WAAW;AAAA,IAAEF,SAAS;AAAA,IAAQG,eAAe;AAAA,EAAM;AAAA,EACnDC,sBAAsB;AAAA,IACpBC,YAAY;AAAA,IACZ,oBAAoB;AAAA,MAClBC,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACAC,eAAe,CAAC;AAAA,EAChBC,gBAAgB;AAAA,IACdC,WAAW;AAAA,IACXC,cAAcC,MAAMC,MAAMC;AAAAA,EAC5B;AAAA,EACAC,eAAe;AAAA,IACbC,YAAY;AAAA,IACZC,UAAU;AAAA,IACVC,UAAU;AAAA,EACZ;AAAA,EACAC,kBAAkB,CAAC;AAAA,EACnBC,iBAAiB;AAAA,IAAEV,WAAWE,MAAMC,MAAMC;AAAAA,EAAG;AAC/C,CAAC;"}
|
|
@@ -8,21 +8,23 @@ import { Doc } from "@hitachivantara/uikit-react-icons";
|
|
|
8
8
|
import { convertUnits } from "../utils.js";
|
|
9
9
|
import { useClasses } from "./DropZone.styles.js";
|
|
10
10
|
import { staticClasses } from "./DropZone.styles.js";
|
|
11
|
+
import { useDefaultProps } from "../../../hooks/useDefaultProps.js";
|
|
11
12
|
import { HvLabel } from "../../Forms/Label/Label.js";
|
|
12
13
|
import { HvInfoMessage } from "../../Forms/InfoMessage/InfoMessage.js";
|
|
13
14
|
import { HvTypography } from "../../Typography/Typography.js";
|
|
14
|
-
const HvDropZone = ({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
const HvDropZone = (props) => {
|
|
16
|
+
const {
|
|
17
|
+
id: idProp,
|
|
18
|
+
classes: classesProp,
|
|
19
|
+
labels,
|
|
20
|
+
acceptedFiles,
|
|
21
|
+
maxFileSize,
|
|
22
|
+
inputProps,
|
|
23
|
+
hideLabels,
|
|
24
|
+
multiple = true,
|
|
25
|
+
disabled = false,
|
|
26
|
+
onFilesAdded
|
|
27
|
+
} = useDefaultProps("HvDropZone", props);
|
|
26
28
|
const id = useUniqueId(idProp, "dropzone");
|
|
27
29
|
const {
|
|
28
30
|
classes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\n\nimport accept from \"attr-accept\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { Doc } from \"@hitachivantara/uikit-react-icons\";\nimport { HvInfoMessage, HvLabel } from \"@core/components/Forms\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { convertUnits } from \"../utils\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nimport { staticClasses, useClasses } from \"./DropZone.styles\";\n\nexport { staticClasses as dropZoneClasses };\n\nexport type HvDropZoneClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\nexport const HvDropZone = ({\n id: idProp,\n classes: classesProp,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n}: HvDropZoneProps) => {\n const id = useUniqueId(idProp, \"dropzone\");\n\n const { classes, cx } = useClasses(classesProp);\n\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <div id={id} className={classes.dropZoneLabelsGroup}>\n <HvLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={classes.dropZoneLabel}\n />\n <HvInfoMessage id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </HvInfoMessage>\n </div>\n )}\n <div\n id={setId(id, \"input-file-container\")}\n className={cx(classes.dropZoneContainer, {\n [classes.dragAction]: dragState,\n [classes.dropZoneContainerDisabled]: disabled,\n })}\n >\n <input\n id={setId(id, \"input-file\")}\n className={classes.inputArea}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <div className={classes?.dropArea}>\n {dragState ? (\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.dropFiles}\n </HvTypography>\n </div>\n ) : (\n <>\n <Doc\n iconSize=\"M\"\n className={classes.dropZoneAreaIcon}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.drag}\n <span\n className={classes.selectFilesText}\n >{`\\xa0${labels?.selectFiles}`}</span>\n </HvTypography>\n </div>\n </>\n )}\n </div>\n </div>\n </>\n );\n};\n"],"names":["HvDropZone","id","idProp","classes","classesProp","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","useUniqueId","cx","useClasses","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","dropZoneLabelsGroup","setId","dropzone","dropZoneLabel","Number","isInteger","sizeWarning","convertUnits","join","dropZoneContainer","dragAction","dropZoneContainerDisabled","inputArea","drag","selectFiles","current","value","files","event","stopPropagation","preventDefault","dataTransfer","dropArea","dropZoneAreaLabels","dragText","dropFiles","dropZoneAreaIcon","selectFilesText"],"mappings":";;;;;;;;;;;;;AAoGO,MAAMA,aAAaA,CAAC;AAAA,EACzBC,IAAIC;AAAAA,EACJC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC;AACe,MAAM;AACfX,QAAAA,KAAKY,YAAYX,QAAQ,UAAU;AAEnC,QAAA;AAAA,IAAEC;AAAAA,IAASW;AAAAA,EAAAA,IAAOC,WAAWX,WAAW;AAE9C,QAAM,CAACY,WAAWC,OAAO,IAAIC,SAAkB,KAAK;AAE9CC,QAAAA,WAAWC,OAAgC,IAAI;AAErD,QAAMC,gBAAgBA,MAAM;AAC1BJ,YAAQ,KAAK;AAAA,EAAA;AAGf,QAAMK,gBAAgBA,MAAM;AAC1BL,YAAQ,IAAI;AAAA,EAAA;AAGRM,QAAAA,kBAAkBA,CAACC,cAAwB;AACzCC,UAAAA,iBAAiBC,OAAOC,KAAKH,SAAS,EAAEI,IAAKC,CAAAA,MAAML,UAAUK,CAAC,CAAC;AAErE,UAAMC,WAAyB,CAAA;AAEhBC,mBAAAA,QAAQ,CAACC,SAAe;AACrC,YAAMC,UAAsBD;AAEtBE,YAAAA,gBAAgBF,KAAKG,QAAQ5B;AACnC,YAAM6B,iBACJ,CAAC9B,cAAc+B,UACf/B,cAAcgC,QAAQN,KAAKO,KAAKC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,MACjDlC,cAAcmC,KAAMC,qBAClBC,OAAO;AAAA,QAAEC,MAAMZ,KAAKY;AAAAA,QAAML,MAAMP,KAAKO;AAAAA,MAAAA,GAAQG,eAAe,CAC9D;AAEF,UAAI,CAACN,gBAAgB;AACnBH,gBAAQY,eAAexC,iCAAQyC;AAC/Bb,gBAAQc,SAAS;AAAA,MAAA,WACR,CAACb,eAAe;AACzBD,gBAAQY,eAAexC,iCAAQ2C;AAC/Bf,gBAAQc,SAAS;AAAA,MACnB;AAEQ9C,cAAAA,KAAKgD,SAAS,qBAAqB;AAC3CnB,eAASoB,KAAKjB,OAAO;AAAA,IAAA,CACtB;AAEDrB,iDAAekB;AAAAA,EAAQ;AAGzB,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,CAACrB,cACC,qBAAA,OAAA,EAAI,IAAQ,WAAWN,QAAQgD,qBAC9B,UAAA;AAAA,MAAA,oBAAC,WACC,IAAIC,MAAMnD,IAAI,kBAAkB,GAChC,SAASmD,MAAMnD,IAAI,YAAY,GAC/B,OAAOI,iCAAQgD,UACf,WAAWlD,QAAQmD,eAAc;AAAA,2BAElC,eAAc,EAAA,IAAIF,MAAMnD,IAAI,aAAa,GACvCsD,UAAAA;AAAAA,QAAOC,OAAAA,UAAUjD,WAAW,KAC1B,GAAEF,iCAAQoD,WAAY,IAAGC,aAAanD,WAAW,CAAE;AAAA,SACrDF,iCAAQC,kBAAiBD,OAAOC;AAAAA,QAChC,EAACD,iCAAQC,kBACRA,cAAc+B,SAAS,KACtB,KAAS/B,cAAcqD,KAAK,IAAI,CAAE;AAAA,MAAA,GACvC;AAAA,IAAA,GACF;AAAA,IAEF,qBAAC,OACC,EAAA,IAAIP,MAAMnD,IAAI,sBAAsB,GACpC,WAAWa,GAAGX,QAAQyD,mBAAmB;AAAA,MACvC,CAACzD,QAAQ0D,UAAU,GAAG7C;AAAAA,MACtB,CAACb,QAAQ2D,yBAAyB,GAAGnD;AAAAA,IACtC,CAAA,GAED,UAAA;AAAA,MAAC,oBAAA,SAAA,EACC,IAAIyC,MAAMnD,IAAI,YAAY,GAC1B,WAAWE,QAAQ4D,WACnB,MAAK,QACL,UACA,UACA,OAAO,CAACpD,WAAY,GAAEN,iCAAQ2D,IAAK,IAAM3D,iCAAQ4D,WAAY,KAAI,IACjE,SAAS,MAAM;AACb,YAAI9C,SAAS+C,SAAS;AACpB/C,mBAAS+C,QAAQC,QAAQ;AAAA,QAC3B;AAAA,MACF,GACA,UAAU,MAAM;;AACd,YAAI,CAACxD,cAAYQ,cAAS+C,YAAT/C,mBAAkBiD,QAAO;AACxBjD,0BAAAA,SAAS+C,QAAQE,KAAK;AAAA,QACxC;AAAA,MAAA,GAEF,aAAcC,CAAU,UAAA;AACtB,YAAI,CAAC1D,UAAU;AACC;AACd0D,gBAAMC,gBAAgB;AACtBD,gBAAME,eAAe;AAAA,QACvB;AAAA,MAAA,GAEF,aAAalD,eACb,eAAeA,eACf,YAAagD,CAAU,UAAA;AACrB,YAAI,CAAC1D,UAAU;AACC;AACd0D,gBAAMC,gBAAgB;AACtBD,gBAAME,eAAe;AAAA,QACvB;AAAA,MAAA,GAEF,QAASF,CAAU,UAAA;AACjB,YAAI,CAAC1D,UAAU;AACP,gBAAA;AAAA,YAAEyD;AAAAA,UAAAA,IAAUC,MAAMG;AACxB,cAAI9D,aAAa,QAAQ0D,MAAM/B,WAAW,GAAG;AAC3CgC,kBAAMC,gBAAgB;AACtBD,kBAAME,eAAe;AACrBhD,4BAAgB6C,KAAK;AAAA,UACvB;AAAA,QACF;AAAA,MAAA,GAEF,KAAKjD,UACL,QAAQb,cAAcqD,KAAK,GAAG,GAC1BnD,GAAAA,YAAW;AAAA,MAEjB,oBAAC,SAAI,WAAWL,mCAASsE,UACtBzD,UACC,YAAA,oBAAC,SAAI,WAAWb,QAAQuE,oBACtB,UAAC,oBAAA,cAAA,EAAa,WAAWvE,QAAQwE,UAC9BtE,2CAAQuE,UACX,CAAA,EAAA,CACF,IAGE,qBAAA,UAAA,EAAA,UAAA;AAAA,QAAC,oBAAA,KAAA,EACC,UAAS,KACT,WAAWzE,QAAQ0E,kBACnB,OAAOlE,WAAW,iBAAiB,YAAY,CAAA;AAAA,QAEjD,oBAAC,SAAI,WAAWR,QAAQuE,oBACtB,UAAC,qBAAA,cAAA,EAAa,WAAWvE,QAAQwE,UAC9BtE,UAAAA;AAAAA,UAAQ2D,iCAAAA;AAAAA,UACT,oBAAC,UACC,WAAW7D,QAAQ2E,iBAClB,UAAMzE,IAAAA,iCAAQ4D,WAAY,GAAE,CAAA;AAAA,QAAA,EAAA,CACjC,EACF,CAAA;AAAA,MAAA,EAAA,CACF,EAEJ,CAAA;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"DropZone.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\n\nimport accept from \"attr-accept\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { Doc } from \"@hitachivantara/uikit-react-icons\";\nimport { HvInfoMessage, HvLabel } from \"@core/components/Forms\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { useDefaultProps } from \"@core/hooks\";\nimport { convertUnits } from \"../utils\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nimport { staticClasses, useClasses } from \"./DropZone.styles\";\n\nexport { staticClasses as dropZoneClasses };\n\nexport type HvDropZoneClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\nexport const HvDropZone = (props: HvDropZoneProps) => {\n const {\n id: idProp,\n classes: classesProp,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n } = useDefaultProps(\"HvDropZone\", props);\n const id = useUniqueId(idProp, \"dropzone\");\n\n const { classes, cx } = useClasses(classesProp);\n\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <div id={id} className={classes.dropZoneLabelsGroup}>\n <HvLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={classes.dropZoneLabel}\n />\n <HvInfoMessage id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </HvInfoMessage>\n </div>\n )}\n <div\n id={setId(id, \"input-file-container\")}\n className={cx(classes.dropZoneContainer, {\n [classes.dragAction]: dragState,\n [classes.dropZoneContainerDisabled]: disabled,\n })}\n >\n <input\n id={setId(id, \"input-file\")}\n className={classes.inputArea}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <div className={classes?.dropArea}>\n {dragState ? (\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.dropFiles}\n </HvTypography>\n </div>\n ) : (\n <>\n <Doc\n iconSize=\"M\"\n className={classes.dropZoneAreaIcon}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.drag}\n <span\n className={classes.selectFilesText}\n >{`\\xa0${labels?.selectFiles}`}</span>\n </HvTypography>\n </div>\n </>\n )}\n </div>\n </div>\n </>\n );\n};\n"],"names":["HvDropZone","props","id","idProp","classes","classesProp","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","useDefaultProps","useUniqueId","cx","useClasses","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","dropZoneLabelsGroup","setId","dropzone","dropZoneLabel","Number","isInteger","sizeWarning","convertUnits","join","dropZoneContainer","dragAction","dropZoneContainerDisabled","inputArea","drag","selectFiles","current","value","files","event","stopPropagation","preventDefault","dataTransfer","dropArea","dropZoneAreaLabels","dragText","dropFiles","dropZoneAreaIcon","selectFilesText"],"mappings":"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"}
|
|
@@ -9,17 +9,17 @@ const {
|
|
|
9
9
|
position: "relative",
|
|
10
10
|
width: "100%",
|
|
11
11
|
display: "flex",
|
|
12
|
-
border: `1px
|
|
12
|
+
border: `1px dashed ${theme.colors.secondary_60}`,
|
|
13
13
|
cursor: "pointer",
|
|
14
|
-
background: theme.
|
|
15
|
-
borderRadius: theme.
|
|
14
|
+
background: theme.colors.atmo1,
|
|
15
|
+
borderRadius: theme.radii.round,
|
|
16
16
|
"&:hover": {
|
|
17
17
|
background: `${theme.colors.atmo1}`,
|
|
18
|
-
border: `1px
|
|
18
|
+
border: `1px dashed ${theme.colors.secondary}`
|
|
19
19
|
},
|
|
20
20
|
"&:focus-within": {
|
|
21
21
|
background: `${theme.colors.atmo1}`,
|
|
22
|
-
border: `1px
|
|
22
|
+
border: `1px dashed ${theme.colors.secondary}`,
|
|
23
23
|
...outlineStyles
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -33,15 +33,15 @@ const {
|
|
|
33
33
|
},
|
|
34
34
|
dragAction: {
|
|
35
35
|
background: `${theme.colors.atmo1}`,
|
|
36
|
-
border: `1px
|
|
36
|
+
border: `1px dashed ${theme.colors.primary}`
|
|
37
37
|
},
|
|
38
38
|
dropZoneContainerDisabled: {
|
|
39
39
|
background: `${theme.colors.atmo3}`,
|
|
40
|
-
border: `1px
|
|
40
|
+
border: `1px dashed ${theme.colors.secondary_60}`,
|
|
41
41
|
cursor: "not-allowed",
|
|
42
42
|
"&:hover": {
|
|
43
43
|
background: `${theme.colors.atmo3}`,
|
|
44
|
-
border: `1px
|
|
44
|
+
border: `1px dashed ${theme.colors.secondary_60}`
|
|
45
45
|
},
|
|
46
46
|
"& $dragText": {
|
|
47
47
|
color: theme.colors.secondary_60
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.styles.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.styles.tsx"],"sourcesContent":["import { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { CSSProperties } from \"react\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropZone\", {\n dropZoneContainer: {\n position: \"relative\",\n width: \"100%\",\n display: \"flex\",\n border: `1px
|
|
1
|
+
{"version":3,"file":"DropZone.styles.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.styles.tsx"],"sourcesContent":["import { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { CSSProperties } from \"react\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDropZone\", {\n dropZoneContainer: {\n position: \"relative\",\n width: \"100%\",\n display: \"flex\",\n border: `1px dashed ${theme.colors.secondary_60}`,\n cursor: \"pointer\",\n background: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n\n \"&:hover\": {\n background: `${theme.colors.atmo1}`,\n border: `1px dashed ${theme.colors.secondary}`,\n },\n\n \"&:focus-within\": {\n background: `${theme.colors.atmo1}`,\n border: `1px dashed ${theme.colors.secondary}`,\n ...outlineStyles,\n },\n },\n dropZoneLabelsGroup: {\n display: \"flex\",\n justifyContent: \"start\",\n\n \"& label:nth-of-type(1)\": {},\n\n \"& p:nth-of-type(2)\": {\n marginLeft: \"auto\",\n },\n },\n dragAction: {\n background: `${theme.colors.atmo1}`,\n border: `1px dashed ${theme.colors.primary}`,\n },\n dropZoneContainerDisabled: {\n background: `${theme.colors.atmo3}`,\n border: `1px dashed ${theme.colors.secondary_60}`,\n cursor: \"not-allowed\",\n \"&:hover\": {\n background: `${theme.colors.atmo3}`,\n border: `1px dashed ${theme.colors.secondary_60}`,\n },\n\n \"& $dragText\": {\n color: theme.colors.secondary_60,\n },\n \"& $selectFilesText\": {\n color: theme.colors.secondary_60,\n },\n },\n inputArea: {\n opacity: 0,\n width: \"100%\",\n position: \"absolute\",\n height: \"100%\",\n cursor: \"pointer\",\n\n \"&:disabled\": {\n cursor: \"not-allowed\",\n },\n },\n dropArea: {\n display: \"flex\",\n margin: `${theme.space.md} auto`,\n minHeight: 48,\n },\n dropZoneAreaLabels: {\n display: \"flex\",\n maxWidth: 120,\n margin: \"auto\",\n },\n dropZoneAreaIcon: {\n margin: \"auto\",\n marginRight: theme.space.xs,\n },\n dropZoneLabel: {\n paddingBottom: 6,\n },\n dragText: {\n ...(theme.typography.body as CSSProperties),\n },\n selectFilesText: {\n ...(theme.typography.label as CSSProperties),\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","dropZoneContainer","position","width","display","border","theme","colors","secondary_60","cursor","background","atmo1","borderRadius","radii","round","secondary","outlineStyles","dropZoneLabelsGroup","justifyContent","marginLeft","dragAction","primary","dropZoneContainerDisabled","atmo3","color","inputArea","opacity","height","dropArea","margin","space","md","minHeight","dropZoneAreaLabels","maxWidth","dropZoneAreaIcon","marginRight","xs","dropZoneLabel","paddingBottom","dragText","typography","body","selectFilesText","label"],"mappings":";;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,cAAc;AAAA,EACvEC,mBAAmB;AAAA,IACjBC,UAAU;AAAA,IACVC,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,QAAS,cAAaC,MAAMC,OAAOC,YAAa;AAAA,IAChDC,QAAQ;AAAA,IACRC,YAAYJ,MAAMC,OAAOI;AAAAA,IACzBC,cAAcN,MAAMO,MAAMC;AAAAA,IAE1B,WAAW;AAAA,MACTJ,YAAa,GAAEJ,MAAMC,OAAOI,KAAM;AAAA,MAClCN,QAAS,cAAaC,MAAMC,OAAOQ,SAAU;AAAA,IAC/C;AAAA,IAEA,kBAAkB;AAAA,MAChBL,YAAa,GAAEJ,MAAMC,OAAOI,KAAM;AAAA,MAClCN,QAAS,cAAaC,MAAMC,OAAOQ,SAAU;AAAA,MAC7C,GAAGC;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,qBAAqB;AAAA,IACnBb,SAAS;AAAA,IACTc,gBAAgB;AAAA,IAEhB,0BAA0B,CAAC;AAAA,IAE3B,sBAAsB;AAAA,MACpBC,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACAC,YAAY;AAAA,IACVV,YAAa,GAAEJ,MAAMC,OAAOI,KAAM;AAAA,IAClCN,QAAS,cAAaC,MAAMC,OAAOc,OAAQ;AAAA,EAC7C;AAAA,EACAC,2BAA2B;AAAA,IACzBZ,YAAa,GAAEJ,MAAMC,OAAOgB,KAAM;AAAA,IAClClB,QAAS,cAAaC,MAAMC,OAAOC,YAAa;AAAA,IAChDC,QAAQ;AAAA,IACR,WAAW;AAAA,MACTC,YAAa,GAAEJ,MAAMC,OAAOgB,KAAM;AAAA,MAClClB,QAAS,cAAaC,MAAMC,OAAOC,YAAa;AAAA,IAClD;AAAA,IAEA,eAAe;AAAA,MACbgB,OAAOlB,MAAMC,OAAOC;AAAAA,IACtB;AAAA,IACA,sBAAsB;AAAA,MACpBgB,OAAOlB,MAAMC,OAAOC;AAAAA,IACtB;AAAA,EACF;AAAA,EACAiB,WAAW;AAAA,IACTC,SAAS;AAAA,IACTvB,OAAO;AAAA,IACPD,UAAU;AAAA,IACVyB,QAAQ;AAAA,IACRlB,QAAQ;AAAA,IAER,cAAc;AAAA,MACZA,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACAmB,UAAU;AAAA,IACRxB,SAAS;AAAA,IACTyB,QAAS,GAAEvB,MAAMwB,MAAMC,EAAG;AAAA,IAC1BC,WAAW;AAAA,EACb;AAAA,EACAC,oBAAoB;AAAA,IAClB7B,SAAS;AAAA,IACT8B,UAAU;AAAA,IACVL,QAAQ;AAAA,EACV;AAAA,EACAM,kBAAkB;AAAA,IAChBN,QAAQ;AAAA,IACRO,aAAa9B,MAAMwB,MAAMO;AAAAA,EAC3B;AAAA,EACAC,eAAe;AAAA,IACbC,eAAe;AAAA,EACjB;AAAA,EACAC,UAAU;AAAA,IACR,GAAIlC,MAAMmC,WAAWC;AAAAA,EACvB;AAAA,EACAC,iBAAiB;AAAA,IACf,GAAIrC,MAAMmC,WAAWG;AAAAA,EACvB;AACF,CAAC;"}
|
|
@@ -7,6 +7,7 @@ import { useClasses } from "./File.styles.js";
|
|
|
7
7
|
import { staticClasses } from "./File.styles.js";
|
|
8
8
|
import { HvProgressBar } from "../../ProgressBar/ProgressBar.js";
|
|
9
9
|
import { HvButton } from "../../Button/Button.js";
|
|
10
|
+
import { useDefaultProps } from "../../../hooks/useDefaultProps.js";
|
|
10
11
|
import { HvTypography } from "../../Typography/Typography.js";
|
|
11
12
|
const getStatusIcon = (classes, status) => {
|
|
12
13
|
switch (status) {
|
|
@@ -35,13 +36,14 @@ const getProgressBarWith = ({
|
|
|
35
36
|
const width = progress != null && size != null ? Math.round(progress * 100 / size) : 0;
|
|
36
37
|
return width;
|
|
37
38
|
};
|
|
38
|
-
const HvFile = ({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
const HvFile = (props) => {
|
|
40
|
+
const {
|
|
41
|
+
id,
|
|
42
|
+
classes: classesProp,
|
|
43
|
+
data,
|
|
44
|
+
onFileRemoved,
|
|
45
|
+
removeFileButtonLabel
|
|
46
|
+
} = useDefaultProps("HvFile", props);
|
|
45
47
|
const {
|
|
46
48
|
classes
|
|
47
49
|
} = useClasses(classesProp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sources":["../../../../../src/components/FileUploader/File/File.tsx"],"sourcesContent":["import { Close, Fail, Success } from \"@hitachivantara/uikit-react-icons\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvProgressBar } from \"@core/components/ProgressBar\";\nimport { cx } from \"@emotion/css\";\nimport { convertUnits } from \"../utils\";\nimport { staticClasses, useClasses } from \"./File.styles\";\n\nexport { staticClasses as fileClasses };\n\nexport type HvFileClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileData extends Omit<File, \"name\" | \"size\"> {\n /**\n * The file id.\n */\n id?: string;\n /**\n * The file name.\n */\n name?: string;\n /**\n * The upload status.\n */\n status?: \"progress\" | \"success\" | \"fail\";\n /**\n * The file size in bytes.\n */\n size?: number;\n /**\n * Upload progress in bytes.\n */\n progress?: number;\n /**\n * Optional node representing a preview of the uploaded file.\n */\n preview?: React.ReactNode;\n /**\n * Error message when the upload failed.\n */\n errorMessage?: string;\n}\n\nexport type HvFilesAddedEvent = (files: HvFileData[]) => void;\n\nexport type HvFileRemovedEvent = (file: HvFileData) => void;\n\nexport type HvFileProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * File information to be displayed.\n */\n data: HvFileData;\n /**\n * Callback fired when file is removed from list.\n */\n onFileRemoved?: HvFileRemovedEvent;\n /**\n * Value of aria-label to apply to remove file button in file list.\n * */\n removeFileButtonLabel?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileClasses;\n};\n\nconst getStatusIcon = (\n classes?: HvFileClasses,\n status?: HvFileData[\"status\"]\n) => {\n switch (status) {\n case \"success\":\n return <Success className={classes?.icon} color=\"positive\" />;\n case \"fail\":\n return <Fail className={classes?.icon} color=\"negative\" />;\n default:\n return <div className={classes?.icon} />;\n }\n};\n\nconst getProgressText = (data: HvFileData, classes?: HvFileClasses) => {\n const hasFailed = data.status === \"fail\";\n const inProgress = data.status === \"progress\";\n\n return (\n <>\n {data.progress || data.size || data.errorMessage ? `\\xa0|\\xa0` : null}\n\n {inProgress && data.progress != null && (\n <HvTypography variant=\"label\">\n {`${convertUnits(data.progress)}\\xa0/\\xa0`}\n </HvTypography>\n )}\n\n {!hasFailed && data.size && (\n <HvTypography>{`${convertUnits(data.size)}`}</HvTypography>\n )}\n\n {hasFailed && data.errorMessage && (\n <HvTypography className={classes?.fail}>\n {data.errorMessage}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst getProgressBarWith = ({ size, progress }: HvFileData) => {\n const width =\n progress != null && size != null ? Math.round((progress * 100) / size) : 0;\n\n return width;\n};\n\nexport const HvFile = ({\n id,\n
|
|
1
|
+
{"version":3,"file":"File.js","sources":["../../../../../src/components/FileUploader/File/File.tsx"],"sourcesContent":["import { Close, Fail, Success } from \"@hitachivantara/uikit-react-icons\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvProgressBar } from \"@core/components/ProgressBar\";\nimport { cx } from \"@emotion/css\";\nimport { useDefaultProps } from \"@core/hooks\";\nimport { convertUnits } from \"../utils\";\nimport { staticClasses, useClasses } from \"./File.styles\";\n\nexport { staticClasses as fileClasses };\n\nexport type HvFileClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileData extends Omit<File, \"name\" | \"size\"> {\n /**\n * The file id.\n */\n id?: string;\n /**\n * The file name.\n */\n name?: string;\n /**\n * The upload status.\n */\n status?: \"progress\" | \"success\" | \"fail\";\n /**\n * The file size in bytes.\n */\n size?: number;\n /**\n * Upload progress in bytes.\n */\n progress?: number;\n /**\n * Optional node representing a preview of the uploaded file.\n */\n preview?: React.ReactNode;\n /**\n * Error message when the upload failed.\n */\n errorMessage?: string;\n}\n\nexport type HvFilesAddedEvent = (files: HvFileData[]) => void;\n\nexport type HvFileRemovedEvent = (file: HvFileData) => void;\n\nexport type HvFileProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * File information to be displayed.\n */\n data: HvFileData;\n /**\n * Callback fired when file is removed from list.\n */\n onFileRemoved?: HvFileRemovedEvent;\n /**\n * Value of aria-label to apply to remove file button in file list.\n * */\n removeFileButtonLabel?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileClasses;\n};\n\nconst getStatusIcon = (\n classes?: HvFileClasses,\n status?: HvFileData[\"status\"]\n) => {\n switch (status) {\n case \"success\":\n return <Success className={classes?.icon} color=\"positive\" />;\n case \"fail\":\n return <Fail className={classes?.icon} color=\"negative\" />;\n default:\n return <div className={classes?.icon} />;\n }\n};\n\nconst getProgressText = (data: HvFileData, classes?: HvFileClasses) => {\n const hasFailed = data.status === \"fail\";\n const inProgress = data.status === \"progress\";\n\n return (\n <>\n {data.progress || data.size || data.errorMessage ? `\\xa0|\\xa0` : null}\n\n {inProgress && data.progress != null && (\n <HvTypography variant=\"label\">\n {`${convertUnits(data.progress)}\\xa0/\\xa0`}\n </HvTypography>\n )}\n\n {!hasFailed && data.size && (\n <HvTypography>{`${convertUnits(data.size)}`}</HvTypography>\n )}\n\n {hasFailed && data.errorMessage && (\n <HvTypography className={classes?.fail}>\n {data.errorMessage}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst getProgressBarWith = ({ size, progress }: HvFileData) => {\n const width =\n progress != null && size != null ? Math.round((progress * 100) / size) : 0;\n\n return width;\n};\n\nexport const HvFile = (props: HvFileProps) => {\n const {\n id,\n classes: classesProp,\n data,\n onFileRemoved,\n removeFileButtonLabel,\n } = useDefaultProps(\"HvFile\", props);\n const { classes } = useClasses(classesProp);\n\n const hasError = data.status === \"fail\";\n\n const inProgress = data.status === \"progress\";\n\n const progressText = getProgressText(data, classes);\n\n const statusIcon = getStatusIcon(classes, data.status);\n\n const currentProgress = getProgressBarWith(data);\n\n return (\n <li className={classes.root}>\n {!hasError && inProgress && (\n <HvProgressBar\n classes={{\n root: classes.progressbar,\n progressBarContainer: cx(\n classes.progressbarContainer,\n classes.progressbarBack\n ),\n }}\n value={currentProgress}\n hideLabel\n />\n )}\n\n {statusIcon}\n\n <HvTypography className={classes.nameText} variant=\"label\">\n {data.name}\n </HvTypography>\n\n <span className={classes.progressTextContainer}>{progressText}</span>\n\n {data.preview && (\n <div className={classes.previewContainer}>{data.preview}</div>\n )}\n\n <HvButton\n id={setId(id, \"remove-button\")}\n aria-label={removeFileButtonLabel}\n className={classes.removeButton}\n onClick={() => onFileRemoved?.(data)}\n icon\n >\n <Close iconSize=\"XS\" />\n </HvButton>\n </li>\n );\n};\n"],"names":["getStatusIcon","classes","status","icon","getProgressText","data","hasFailed","inProgress","progress","size","errorMessage","convertUnits","fail","getProgressBarWith","width","Math","round","HvFile","props","id","classesProp","onFileRemoved","removeFileButtonLabel","useDefaultProps","useClasses","hasError","progressText","statusIcon","currentProgress","root","progressbar","progressBarContainer","cx","progressbarContainer","progressbarBack","nameText","name","progressTextContainer","preview","previewContainer","setId","removeButton"],"mappings":";;;;;;;;;;;AA0EA,MAAMA,gBAAgBA,CACpBC,SACAC,WACG;AACH,UAAQA,QAAM;AAAA,IACZ,KAAK;AACH,iCAAQ,SAAQ,EAAA,WAAWD,mCAASE,MAAM,OAAM,WAAa,CAAA;AAAA,IAC/D,KAAK;AACH,iCAAQ,MAAK,EAAA,WAAWF,mCAASE,MAAM,OAAM,WAAa,CAAA;AAAA,IAC5D;AACE,aAAQ,oBAAA,OAAA,EAAI,WAAWF,mCAASE,KAAQ,CAAA;AAAA,EAC5C;AACF;AAEA,MAAMC,kBAAkBA,CAACC,MAAkBJ,YAA4B;AAC/DK,QAAAA,YAAYD,KAAKH,WAAW;AAC5BK,QAAAA,aAAaF,KAAKH,WAAW;AAEnC,SAEKG,qBAAAA,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA,KAAKG,YAAYH,KAAKI,QAAQJ,KAAKK,eAAgB,QAAa;AAAA,IAEhEH,cAAcF,KAAKG,YAAY,QAC7B,oBAAA,cAAA,EAAa,SAAQ,SAClB,UAAEG,GAAAA,aAAaN,KAAKG,QAAQ,CAAE,OAClC;AAAA,IAGD,CAACF,aAAaD,KAAKI,QAClB,oBAAC,cAAe,EAAA,UAAA,GAAEE,aAAaN,KAAKI,IAAI,CAAE,GAAE,CAAA;AAAA,IAG7CH,aAAaD,KAAKK,gBACjB,oBAAC,gBAAa,WAAWT,mCAASW,MAC/BP,UAAAA,KAAKK,aACR,CAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ;AAEA,MAAMG,qBAAqBA,CAAC;AAAA,EAAEJ;AAAAA,EAAMD;AAAqB,MAAM;AACvDM,QAAAA,QACJN,YAAY,QAAQC,QAAQ,OAAOM,KAAKC,MAAOR,WAAW,MAAOC,IAAI,IAAI;AAEpEK,SAAAA;AACT;AAEaG,MAAAA,SAASA,CAACC,UAAuB;AACtC,QAAA;AAAA,IACJC;AAAAA,IACAlB,SAASmB;AAAAA,IACTf;AAAAA,IACAgB;AAAAA,IACAC;AAAAA,EAAAA,IACEC,gBAAgB,UAAUL,KAAK;AAC7B,QAAA;AAAA,IAAEjB;AAAAA,EAAAA,IAAYuB,WAAWJ,WAAW;AAEpCK,QAAAA,WAAWpB,KAAKH,WAAW;AAE3BK,QAAAA,aAAaF,KAAKH,WAAW;AAE7BwB,QAAAA,eAAetB,gBAAgBC,MAAMJ,OAAO;AAElD,QAAM0B,aAAa3B,cAAcC,SAASI,KAAKH,MAAM;AAE/C0B,QAAAA,kBAAkBf,mBAAmBR,IAAI;AAE/C,SACG,qBAAA,MAAA,EAAG,WAAWJ,QAAQ4B,MACpB,UAAA;AAAA,IAAA,CAACJ,YAAYlB,cACX,oBAAA,eAAA,EACC,SAAS;AAAA,MACPsB,MAAM5B,QAAQ6B;AAAAA,MACdC,sBAAsBC,GACpB/B,QAAQgC,sBACRhC,QAAQiC,eACV;AAAA,IAEF,GAAA,OAAON,iBACP,WAAS,KAEZ,CAAA;AAAA,IAEAD;AAAAA,IAED,oBAAC,gBAAa,WAAW1B,QAAQkC,UAAU,SAAQ,SAChD9B,eAAK+B,KACR,CAAA;AAAA,IAEC,oBAAA,QAAA,EAAK,WAAWnC,QAAQoC,uBAAwBX,UAAa,cAAA;AAAA,IAE7DrB,KAAKiC,WACH,oBAAA,OAAA,EAAI,WAAWrC,QAAQsC,kBAAmBlC,eAAKiC,QAAQ,CAAA;AAAA,IAG1D,oBAAC,YACC,IAAIE,MAAMrB,IAAI,eAAe,GAC7B,cAAYG,uBACZ,WAAWrB,QAAQwC,cACnB,SAAS,MAAMpB,+CAAgBhB,OAC/B,MAAI,MAEJ,UAAC,oBAAA,OAAA,EAAM,UAAS,KAAA,CAAI,EACtB,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
@@ -10,7 +10,7 @@ const {
|
|
|
10
10
|
top: "-1px"
|
|
11
11
|
},
|
|
12
12
|
progressbarContainer: {
|
|
13
|
-
height:
|
|
13
|
+
height: "4px"
|
|
14
14
|
},
|
|
15
15
|
progressbarBack: {},
|
|
16
16
|
nameText: {
|
|
@@ -31,8 +31,8 @@ const {
|
|
|
31
31
|
previewContainer: {
|
|
32
32
|
display: "flex",
|
|
33
33
|
margin: `0px ${theme.space.xs}`,
|
|
34
|
-
width:
|
|
35
|
-
height:
|
|
34
|
+
width: "48px",
|
|
35
|
+
height: "48px",
|
|
36
36
|
justifyContent: "center",
|
|
37
37
|
alignItems: "center",
|
|
38
38
|
"& span": {
|
|
@@ -43,8 +43,8 @@ const {
|
|
|
43
43
|
height: "100%"
|
|
44
44
|
},
|
|
45
45
|
"& img": {
|
|
46
|
-
width:
|
|
47
|
-
height:
|
|
46
|
+
width: "40px",
|
|
47
|
+
height: "40px",
|
|
48
48
|
objectFit: "cover",
|
|
49
49
|
objectPosition: "center",
|
|
50
50
|
alignSelf: "center"
|