@patternfly/react-core 6.0.0-alpha.69 → 6.0.0-alpha.70
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/CHANGELOG.md +6 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/Text/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/Tile/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -0
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/dynamic-modules.json +0 -3
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts +4 -112
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.js +3 -433
- package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts +0 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorContext.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.js +1 -0
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorList.js +2 -7
- package/dist/esm/components/DualListSelector/DualListSelectorList.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts +4 -4
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts +4 -6
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js +3 -4
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorPane.d.ts +1 -22
- package/dist/esm/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorPane.js +6 -66
- package/dist/esm/components/DualListSelector/DualListSelectorPane.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts +15 -15
- package/dist/esm/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts +7 -7
- package/dist/esm/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/index.d.ts +0 -2
- package/dist/esm/components/DualListSelector/index.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/index.js +0 -2
- package/dist/esm/components/DualListSelector/index.js.map +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.d.ts +131 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.js +453 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorContext.js.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorControl.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorControlsWrapper.js +0 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
- package/dist/{js/next → esm/deprecated}/components/DualListSelector/DualListSelectorList.d.ts +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorList.js +7 -2
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorList.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorListItem.d.ts +4 -4
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
- package/dist/{js/next → esm/deprecated}/components/DualListSelector/DualListSelectorListWrapper.d.ts +6 -4
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorListWrapper.js +4 -3
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorPane.d.ts +52 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorPane.js +87 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorPane.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorTree.d.ts +15 -15
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorTree.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorTreeItem.d.ts +7 -7
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/index.d.ts +1 -0
- package/dist/esm/deprecated/components/DualListSelector/index.d.ts.map +1 -0
- package/dist/esm/{next → deprecated}/components/DualListSelector/index.js +1 -0
- package/dist/esm/deprecated/components/DualListSelector/index.js.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/treeUtils.d.ts.map +1 -0
- package/dist/esm/deprecated/components/DualListSelector/treeUtils.js.map +1 -0
- package/dist/esm/deprecated/components/index.d.ts +1 -0
- package/dist/esm/deprecated/components/index.d.ts.map +1 -1
- package/dist/esm/deprecated/components/index.js +1 -0
- package/dist/esm/deprecated/components/index.js.map +1 -1
- package/dist/esm/next/components/index.d.ts +0 -1
- package/dist/esm/next/components/index.d.ts.map +1 -1
- package/dist/esm/next/components/index.js +1 -1
- package/dist/esm/next/components/index.js.map +1 -1
- package/dist/esm/next/index.d.ts +0 -1
- package/dist/esm/next/index.d.ts.map +1 -1
- package/dist/esm/next/index.js +1 -1
- package/dist/esm/next/index.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.d.ts +4 -112
- package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.js +3 -433
- package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts +0 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorContext.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.js +1 -0
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorList.js +2 -7
- package/dist/js/components/DualListSelector/DualListSelectorList.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts +4 -4
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts +4 -6
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js +3 -4
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorPane.d.ts +1 -22
- package/dist/js/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorPane.js +5 -65
- package/dist/js/components/DualListSelector/DualListSelectorPane.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts +15 -15
- package/dist/js/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts +7 -7
- package/dist/js/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/index.d.ts +0 -2
- package/dist/js/components/DualListSelector/index.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/index.js +0 -2
- package/dist/js/components/DualListSelector/index.js.map +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.d.ts +131 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.js +456 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorContext.d.ts +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorContext.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorContext.js.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorControl.d.ts.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorControl.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorControlsWrapper.js +0 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorControlsWrapper.js.map +1 -0
- package/dist/{esm/next → js/deprecated}/components/DualListSelector/DualListSelectorList.d.ts +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorList.d.ts.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorList.js +7 -2
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorList.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorListItem.d.ts +4 -4
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorListItem.js.map +1 -0
- package/dist/{esm/next → js/deprecated}/components/DualListSelector/DualListSelectorListWrapper.d.ts +6 -4
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorListWrapper.js +4 -3
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorListWrapper.js.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorPane.d.ts +52 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorPane.js +91 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorPane.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorTree.d.ts +15 -15
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorTree.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorTree.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorTreeItem.d.ts +7 -7
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/DualListSelectorTreeItem.js.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/index.d.ts +1 -0
- package/dist/js/deprecated/components/DualListSelector/index.d.ts.map +1 -0
- package/dist/js/{next → deprecated}/components/DualListSelector/index.js +1 -0
- package/dist/js/deprecated/components/DualListSelector/index.js.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/treeUtils.d.ts.map +1 -0
- package/dist/js/deprecated/components/DualListSelector/treeUtils.js.map +1 -0
- package/dist/js/deprecated/components/index.d.ts +1 -0
- package/dist/js/deprecated/components/index.d.ts.map +1 -1
- package/dist/js/deprecated/components/index.js +1 -0
- package/dist/js/deprecated/components/index.js.map +1 -1
- package/dist/js/next/components/index.d.ts +0 -1
- package/dist/js/next/components/index.d.ts.map +1 -1
- package/dist/js/next/components/index.js +0 -3
- package/dist/js/next/components/index.js.map +1 -1
- package/dist/js/next/index.d.ts +0 -1
- package/dist/js/next/index.d.ts.map +1 -1
- package/dist/js/next/index.js +0 -3
- package/dist/js/next/index.js.map +1 -1
- package/dist/umd/assets/{output-D0meVdH2.css → output-BcpwRLsL.css} +7486 -7486
- package/dist/umd/react-core.min.js +2 -2
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +2 -2
- package/single-packages.config.json +1 -1
- package/src/components/DualListSelector/DualListSelector.tsx +7 -752
- package/src/components/DualListSelector/DualListSelectorContext.ts +0 -1
- package/src/components/DualListSelector/DualListSelectorControl.tsx +1 -1
- package/src/components/DualListSelector/DualListSelectorControlsWrapper.tsx +2 -1
- package/src/components/DualListSelector/DualListSelectorList.tsx +3 -20
- package/src/components/DualListSelector/DualListSelectorListItem.tsx +4 -4
- package/src/components/DualListSelector/DualListSelectorListWrapper.tsx +6 -10
- package/src/components/DualListSelector/DualListSelectorPane.tsx +41 -192
- package/src/components/DualListSelector/DualListSelectorTree.tsx +15 -15
- package/src/components/DualListSelector/DualListSelectorTreeItem.tsx +7 -7
- package/src/components/DualListSelector/__tests__/DualListSelector.test.tsx +6 -45
- package/src/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +52 -1715
- package/src/components/DualListSelector/examples/DualListSelector.md +27 -42
- package/src/components/DualListSelector/examples/DualListSelectorBasic.tsx +146 -19
- package/src/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +202 -22
- package/src/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +155 -28
- package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +298 -121
- package/src/components/DualListSelector/index.ts +0 -2
- package/src/deprecated/components/DualListSelector/DualListSelector.tsx +795 -0
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorContext.ts +1 -0
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorControl.tsx +1 -1
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorControlsWrapper.tsx +1 -2
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorList.tsx +20 -3
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorListItem.tsx +4 -4
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorListWrapper.tsx +10 -6
- package/src/deprecated/components/DualListSelector/DualListSelectorPane.tsx +245 -0
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorTree.tsx +15 -15
- package/src/{next → deprecated}/components/DualListSelector/DualListSelectorTreeItem.tsx +7 -7
- package/src/deprecated/components/DualListSelector/__tests__/DualListSelector.test.tsx +65 -0
- package/src/deprecated/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +1785 -0
- package/src/{next → deprecated}/components/DualListSelector/examples/DualListSelector.md +56 -28
- package/src/deprecated/components/DualListSelector/examples/DualListSelectorBasic.tsx +30 -0
- package/src/deprecated/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +31 -0
- package/src/deprecated/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +38 -0
- package/src/deprecated/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +93 -0
- package/src/{components → deprecated/components}/DualListSelector/examples/DualListSelectorComposable.tsx +32 -30
- package/src/{components → deprecated/components}/DualListSelector/examples/DualListSelectorComposableDragDrop.tsx +35 -32
- package/src/{components → deprecated/components}/DualListSelector/examples/DualListSelectorComposableTree.tsx +29 -27
- package/src/{components → deprecated/components}/DualListSelector/examples/DualListSelectorTreeExample.tsx +9 -6
- package/src/{next → deprecated}/components/DualListSelector/index.ts +1 -0
- package/src/deprecated/components/index.ts +1 -0
- package/src/next/components/index.ts +0 -1
- package/src/next/index.ts +0 -1
- package/dist/dynamic/next/components/DualListSelector/package.json +0 -1
- package/dist/dynamic/next/components/package.json +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts +0 -23
- package/dist/esm/next/components/DualListSelector/DualListSelector.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelector.js +0 -23
- package/dist/esm/next/components/DualListSelector/DualListSelector.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorContext.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorControl.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorList.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorListItem.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorListWrapper.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts +0 -31
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js +0 -27
- package/dist/esm/next/components/DualListSelector/DualListSelectorPane.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorTree.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/DualListSelectorTreeItem.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/index.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/index.js.map +0 -1
- package/dist/esm/next/components/DualListSelector/treeUtils.d.ts.map +0 -1
- package/dist/esm/next/components/DualListSelector/treeUtils.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelector.d.ts +0 -23
- package/dist/js/next/components/DualListSelector/DualListSelector.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelector.js +0 -26
- package/dist/js/next/components/DualListSelector/DualListSelector.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorContext.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorControl.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorControlsWrapper.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorList.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorList.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorListItem.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorListWrapper.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts +0 -31
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.js +0 -31
- package/dist/js/next/components/DualListSelector/DualListSelectorPane.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorTree.js.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/DualListSelectorTreeItem.js.map +0 -1
- package/dist/js/next/components/DualListSelector/index.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/index.js.map +0 -1
- package/dist/js/next/components/DualListSelector/treeUtils.d.ts.map +0 -1
- package/dist/js/next/components/DualListSelector/treeUtils.js.map +0 -1
- package/src/next/components/DualListSelector/DualListSelector.tsx +0 -50
- package/src/next/components/DualListSelector/DualListSelectorPane.tsx +0 -94
- package/src/next/components/DualListSelector/__tests__/DualListSelector.test.tsx +0 -26
- package/src/next/components/DualListSelector/__tests__/__snapshots__/DualListSelector.test.tsx.snap +0 -122
- package/src/next/components/DualListSelector/examples/DualListSelectorBasic.tsx +0 -157
- package/src/next/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +0 -211
- package/src/next/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +0 -165
- package/src/next/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +0 -344
- /package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorContext.js +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorControl.d.ts +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorListItem.js +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorTree.js +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/DualListSelectorTreeItem.js +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/treeUtils.d.ts +0 -0
- /package/dist/esm/{next → deprecated}/components/DualListSelector/treeUtils.js +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorContext.js +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorControl.d.ts +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorListItem.js +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorTree.js +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/DualListSelectorTreeItem.js +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/treeUtils.d.ts +0 -0
- /package/dist/js/{next → deprecated}/components/DualListSelector/treeUtils.js +0 -0
- /package/src/{next/components → components}/DualListSelector/examples/DualListSelectorDragDrop.tsx +0 -0
- /package/src/{next/components → components}/DualListSelector/examples/DualListSelectorTree.tsx +0 -0
- /package/src/{next → deprecated}/components/DualListSelector/treeUtils.ts +0 -0
|
@@ -12,7 +12,6 @@ export const DualListSelectorListContext = React.createContext<{
|
|
|
12
12
|
displayOption?: (option: React.ReactNode) => boolean;
|
|
13
13
|
selectedOptions?: string[] | number[];
|
|
14
14
|
id?: string;
|
|
15
|
-
onOptionSelect?: (e: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent, index: number, id: string) => void;
|
|
16
15
|
options?: React.ReactNode[];
|
|
17
16
|
isDisabled?: boolean;
|
|
18
17
|
}>({});
|
|
@@ -29,7 +29,7 @@ export interface DualListSelectorControlProps extends Omit<React.HTMLProps<HTMLD
|
|
|
29
29
|
|
|
30
30
|
export const DualListSelectorControlBase: React.FunctionComponent<DualListSelectorControlProps> = ({
|
|
31
31
|
innerRef,
|
|
32
|
-
children
|
|
32
|
+
children,
|
|
33
33
|
className,
|
|
34
34
|
'aria-label': ariaLabel,
|
|
35
35
|
isDisabled = true,
|
|
@@ -6,7 +6,7 @@ import { handleArrows } from '../../helpers';
|
|
|
6
6
|
/** Acts as the container for the DualListSelectorControl sub-components. */
|
|
7
7
|
|
|
8
8
|
export interface DualListSelectorControlsWrapperProps extends React.HTMLProps<HTMLDivElement> {
|
|
9
|
-
/**
|
|
9
|
+
/** Content to be rendered inside of the controls wrapper. */
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
/** Additional classes added to the wrapper. */
|
|
12
12
|
className?: string;
|
|
@@ -60,6 +60,7 @@ export const DualListSelectorControlsWrapperBase: React.FunctionComponent<DualLi
|
|
|
60
60
|
return () => {
|
|
61
61
|
window.removeEventListener('keydown', handleKeys);
|
|
62
62
|
};
|
|
63
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
64
|
}, [wrapperRef.current]);
|
|
64
65
|
|
|
65
66
|
return (
|
|
@@ -7,7 +7,7 @@ import { DualListSelectorListContext } from './DualListSelectorContext';
|
|
|
7
7
|
/** Acts as the container for DualListSelectorListItem sub-components. */
|
|
8
8
|
|
|
9
9
|
export interface DualListSelectorListProps extends React.HTMLProps<HTMLUListElement> {
|
|
10
|
-
/** Content rendered inside the dual list selector list */
|
|
10
|
+
/** Content rendered inside the dual list selector list. */
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -15,24 +15,8 @@ export const DualListSelectorList: React.FunctionComponent<DualListSelectorListP
|
|
|
15
15
|
children,
|
|
16
16
|
...props
|
|
17
17
|
}: DualListSelectorListProps) => {
|
|
18
|
-
const {
|
|
19
|
-
|
|
20
|
-
isTree,
|
|
21
|
-
ariaLabelledBy,
|
|
22
|
-
focusedOption,
|
|
23
|
-
displayOption,
|
|
24
|
-
selectedOptions,
|
|
25
|
-
id,
|
|
26
|
-
onOptionSelect,
|
|
27
|
-
options,
|
|
28
|
-
isDisabled
|
|
29
|
-
} = React.useContext(DualListSelectorListContext);
|
|
30
|
-
|
|
31
|
-
// only called when options are passed via options prop
|
|
32
|
-
const onOptionClick = (e: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent, index: number, id: string) => {
|
|
33
|
-
setFocusedOption(id);
|
|
34
|
-
onOptionSelect(e, index, id);
|
|
35
|
-
};
|
|
18
|
+
const { isTree, ariaLabelledBy, focusedOption, displayOption, selectedOptions, id, options, isDisabled } =
|
|
19
|
+
React.useContext(DualListSelectorListContext);
|
|
36
20
|
|
|
37
21
|
const hasOptions = () =>
|
|
38
22
|
options.length !== 0 || (children !== undefined && (children as React.ReactNode[]).length !== 0);
|
|
@@ -58,7 +42,6 @@ export const DualListSelectorList: React.FunctionComponent<DualListSelectorListP
|
|
|
58
42
|
key={index}
|
|
59
43
|
isSelected={(selectedOptions as number[]).indexOf(index) !== -1}
|
|
60
44
|
id={`${id}-option-${index}`}
|
|
61
|
-
onOptionSelect={(e, id) => onOptionClick(e, index, id)}
|
|
62
45
|
orderIndex={index}
|
|
63
46
|
isDisabled={isDisabled}
|
|
64
47
|
>
|
|
@@ -17,7 +17,7 @@ export interface DualListSelectorListItemProps extends React.HTMLProps<HTMLLIEle
|
|
|
17
17
|
className?: string;
|
|
18
18
|
/** Flag indicating the list item is currently selected. */
|
|
19
19
|
isSelected?: boolean;
|
|
20
|
-
/** Callback fired when an option is selected.
|
|
20
|
+
/** Callback fired when an option is selected. */
|
|
21
21
|
onOptionSelect?: (event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent, id?: string) => void;
|
|
22
22
|
/** ID of the option. */
|
|
23
23
|
id?: string;
|
|
@@ -25,11 +25,11 @@ export interface DualListSelectorListItemProps extends React.HTMLProps<HTMLLIEle
|
|
|
25
25
|
orderIndex?: number;
|
|
26
26
|
/** @hide Forwarded ref */
|
|
27
27
|
innerRef?: React.RefObject<HTMLLIElement>;
|
|
28
|
-
/** Flag indicating this item is draggable for
|
|
28
|
+
/** Flag indicating this item is draggable for reordering. */
|
|
29
29
|
isDraggable?: boolean;
|
|
30
|
-
/** Accessible label for the draggable button on draggable list items */
|
|
30
|
+
/** Accessible label for the draggable button on draggable list items. */
|
|
31
31
|
draggableButtonAriaLabel?: string;
|
|
32
|
-
/** Flag indicating if the dual list selector is in a disabled state */
|
|
32
|
+
/** Flag indicating if the dual list selector is in a disabled state. */
|
|
33
33
|
isDisabled?: boolean;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -8,11 +8,11 @@ import { DualListSelectorContext, DualListSelectorListContext } from './DualList
|
|
|
8
8
|
export interface DualListSelectorListWrapperProps extends React.HTMLProps<HTMLDivElement> {
|
|
9
9
|
/** Additional classes applied to the dual list selector. */
|
|
10
10
|
className?: string;
|
|
11
|
-
/** Anything that can be rendered inside of the list */
|
|
11
|
+
/** Anything that can be rendered inside of the list. */
|
|
12
12
|
children?: React.ReactNode;
|
|
13
|
-
/**
|
|
13
|
+
/** ID of the dual list selector list. */
|
|
14
14
|
id?: string;
|
|
15
|
-
/** Accessibly label for the list */
|
|
15
|
+
/** Accessibly label for the list. */
|
|
16
16
|
'aria-labelledby': string;
|
|
17
17
|
/** @hide forwarded ref */
|
|
18
18
|
innerRef?: React.RefObject<HTMLDivElement>;
|
|
@@ -20,9 +20,7 @@ export interface DualListSelectorListWrapperProps extends React.HTMLProps<HTMLDi
|
|
|
20
20
|
options?: React.ReactNode[];
|
|
21
21
|
/** @hide Options currently selected in the pane. */
|
|
22
22
|
selectedOptions?: string[] | number[];
|
|
23
|
-
/** @hide
|
|
24
|
-
onOptionSelect?: (e: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent, index: number, id: string) => void;
|
|
25
|
-
/** @hide Function to determine if an option should be displayed depending on a dynamically built filter value */
|
|
23
|
+
/** @hide Function to determine if an option should be displayed depending on a custom filter value. */
|
|
26
24
|
displayOption?: (option: React.ReactNode) => boolean;
|
|
27
25
|
/** Flag indicating whether the component is disabled. */
|
|
28
26
|
isDisabled?: boolean;
|
|
@@ -35,7 +33,6 @@ export const DualListSelectorListWrapperBase: React.FunctionComponent<DualListSe
|
|
|
35
33
|
innerRef,
|
|
36
34
|
options = [],
|
|
37
35
|
selectedOptions = [],
|
|
38
|
-
onOptionSelect,
|
|
39
36
|
displayOption,
|
|
40
37
|
id = getUniqueId('dual-list-selector-list'),
|
|
41
38
|
isDisabled = false,
|
|
@@ -46,8 +43,7 @@ export const DualListSelectorListWrapperBase: React.FunctionComponent<DualListSe
|
|
|
46
43
|
const menuRef = innerRef || ref;
|
|
47
44
|
const { isTree } = React.useContext(DualListSelectorContext);
|
|
48
45
|
|
|
49
|
-
//
|
|
50
|
-
// handling is applied whether the pane is dynamically built or passed via the children prop.
|
|
46
|
+
// Sets up keyboard focus handling for the dual list selector menu child of the pane.
|
|
51
47
|
const handleKeys = (event: KeyboardEvent) => {
|
|
52
48
|
if (
|
|
53
49
|
!menuRef.current ||
|
|
@@ -94,6 +90,7 @@ export const DualListSelectorListWrapperBase: React.FunctionComponent<DualListSe
|
|
|
94
90
|
return () => {
|
|
95
91
|
window.removeEventListener('keydown', handleKeys);
|
|
96
92
|
};
|
|
93
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
94
|
}, [menuRef.current]);
|
|
98
95
|
|
|
99
96
|
return (
|
|
@@ -108,7 +105,6 @@ export const DualListSelectorListWrapperBase: React.FunctionComponent<DualListSe
|
|
|
108
105
|
selectedOptions,
|
|
109
106
|
id,
|
|
110
107
|
options,
|
|
111
|
-
onOptionSelect,
|
|
112
108
|
isDisabled
|
|
113
109
|
}}
|
|
114
110
|
>
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/DualListSelector/dual-list-selector';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
-
import { DualListSelectorTree, DualListSelectorTreeItemData } from './DualListSelectorTree';
|
|
5
4
|
import { getUniqueId } from '../../helpers';
|
|
6
5
|
import { DualListSelectorListWrapper } from './DualListSelectorListWrapper';
|
|
7
|
-
import {
|
|
8
|
-
import { DualListSelectorList } from './DualListSelectorList';
|
|
6
|
+
import { DualListSelectorPaneContext } from './DualListSelectorContext';
|
|
9
7
|
import { SearchInput } from '../SearchInput';
|
|
10
8
|
import cssMenuMinHeight from '@patternfly/react-tokens/dist/esm/c_dual_list_selector__menu_MinHeight';
|
|
11
9
|
|
|
@@ -29,43 +27,12 @@ export interface DualListSelectorPaneProps extends Omit<React.HTMLProps<HTMLDivE
|
|
|
29
27
|
searchInput?: React.ReactNode;
|
|
30
28
|
/** Actions to place above the pane. */
|
|
31
29
|
actions?: React.ReactNode[];
|
|
32
|
-
/**
|
|
30
|
+
/** ID of the pane. */
|
|
33
31
|
id?: string;
|
|
34
|
-
/** @hide Options to list in the pane. */
|
|
35
|
-
options?: React.ReactNode[];
|
|
36
|
-
/** @hide Options currently selected in the pane. */
|
|
37
|
-
selectedOptions?: string[] | number[];
|
|
38
|
-
/** @hide Callback for when an option is selected. Optionally used only when options prop is provided. */
|
|
39
|
-
onOptionSelect?: (
|
|
40
|
-
event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent,
|
|
41
|
-
index: number,
|
|
42
|
-
isChosen: boolean,
|
|
43
|
-
id?: string,
|
|
44
|
-
itemData?: any,
|
|
45
|
-
parentData?: any
|
|
46
|
-
) => void;
|
|
47
|
-
/** @hide Callback for when a tree option is checked. Optionally used only when options prop is provided. */
|
|
48
|
-
onOptionCheck?: (
|
|
49
|
-
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
50
|
-
isChecked: boolean,
|
|
51
|
-
itemData: DualListSelectorTreeItemData
|
|
52
|
-
) => void;
|
|
53
|
-
/** @hide Flag indicating a dynamically built search bar should be included above the pane. */
|
|
54
|
-
isSearchable?: boolean;
|
|
55
32
|
/** Flag indicating whether the component is disabled. */
|
|
56
33
|
isDisabled?: boolean;
|
|
57
34
|
/** Callback for search input. To be used when isSearchable is true. */
|
|
58
35
|
onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
59
|
-
/** @hide A callback for when the search input value for changes. To be used when isSearchable is true. */
|
|
60
|
-
onSearchInputChanged?: (event: React.FormEvent<HTMLInputElement>, value: string) => void;
|
|
61
|
-
/** @hide Callback for search input clear button */
|
|
62
|
-
onSearchInputClear?: (event: React.SyntheticEvent<HTMLButtonElement>) => void;
|
|
63
|
-
/** @hide Filter function for custom filtering based on search string. To be used when isSearchable is true. */
|
|
64
|
-
filterOption?: (option: React.ReactNode, input: string) => boolean;
|
|
65
|
-
/** @hide Accessible label for the search input. To be used when isSearchable is true. */
|
|
66
|
-
searchInputAriaLabel?: string;
|
|
67
|
-
/** @hide Callback for updating the filtered options in DualListSelector. To be used when isSearchable is true. */
|
|
68
|
-
onFilterUpdate?: (newFilteredOptions: React.ReactNode[], paneType: string, isSearchReset: boolean) => void;
|
|
69
36
|
/** Minimum height of the list of options rendered in the pane. **/
|
|
70
37
|
listMinHeight?: string;
|
|
71
38
|
}
|
|
@@ -77,169 +44,51 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
77
44
|
actions,
|
|
78
45
|
searchInput,
|
|
79
46
|
children,
|
|
80
|
-
onOptionSelect,
|
|
81
|
-
onOptionCheck,
|
|
82
47
|
title = '',
|
|
83
|
-
options = [],
|
|
84
|
-
selectedOptions = [],
|
|
85
|
-
isSearchable = false,
|
|
86
|
-
searchInputAriaLabel = '',
|
|
87
|
-
onFilterUpdate,
|
|
88
|
-
onSearchInputChanged,
|
|
89
|
-
onSearchInputClear,
|
|
90
|
-
filterOption,
|
|
91
48
|
id = getUniqueId('dual-list-selector-pane'),
|
|
92
49
|
isDisabled = false,
|
|
93
50
|
listMinHeight,
|
|
94
51
|
...props
|
|
95
|
-
}: DualListSelectorPaneProps) =>
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
.map((opt) => Object.assign({}, opt))
|
|
105
|
-
.filter((item) => filterInput(item as unknown as DualListSelectorTreeItemData, newValue));
|
|
106
|
-
} else {
|
|
107
|
-
filtered = options.filter((option) => {
|
|
108
|
-
if (displayOption(option)) {
|
|
109
|
-
return option;
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
onFilterUpdate(filtered, isChosen ? 'chosen' : 'available', newValue === '');
|
|
114
|
-
|
|
115
|
-
if (onSearchInputChanged) {
|
|
116
|
-
onSearchInputChanged(e, newValue);
|
|
117
|
-
}
|
|
118
|
-
setInput(newValue);
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
// only called when options are passed via options prop and isTree === true
|
|
122
|
-
const filterInput = (item: DualListSelectorTreeItemData, input: string): boolean => {
|
|
123
|
-
if (filterOption) {
|
|
124
|
-
return filterOption(item as unknown as React.ReactNode, input);
|
|
125
|
-
} else {
|
|
126
|
-
if (item.text.toLowerCase().includes(input.toLowerCase()) || input === '') {
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (item.children) {
|
|
131
|
-
return (
|
|
132
|
-
(item.children = item.children
|
|
133
|
-
.map((opt) => Object.assign({}, opt))
|
|
134
|
-
.filter((child) => filterInput(child, input))).length > 0
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
// only called when options are passed via options prop and isTree === false
|
|
140
|
-
const displayOption = (option: React.ReactNode) => {
|
|
141
|
-
if (filterOption) {
|
|
142
|
-
return filterOption(option, input);
|
|
143
|
-
} else {
|
|
144
|
-
return option.toString().toLowerCase().includes(input.toLowerCase());
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
return (
|
|
149
|
-
<div
|
|
150
|
-
className={css(styles.dualListSelectorPane, isChosen ? styles.modifiers.chosen : 'pf-m-available', className)}
|
|
151
|
-
{...props}
|
|
152
|
-
>
|
|
153
|
-
{title && (
|
|
154
|
-
<div className={css(styles.dualListSelectorHeader)}>
|
|
155
|
-
<div className={`${styles.dualListSelector}__title`}>
|
|
156
|
-
<div className={css(styles.dualListSelectorTitleText)}>{title}</div>
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
159
|
-
)}
|
|
160
|
-
{(actions || searchInput || isSearchable) && (
|
|
161
|
-
<div className={css(styles.dualListSelectorTools)}>
|
|
162
|
-
{(isSearchable || searchInput) && (
|
|
163
|
-
<div className={css(styles.dualListSelectorToolsFilter)}>
|
|
164
|
-
{searchInput ? (
|
|
165
|
-
searchInput
|
|
166
|
-
) : (
|
|
167
|
-
<SearchInput
|
|
168
|
-
onChange={isDisabled ? undefined : onChange}
|
|
169
|
-
onClear={
|
|
170
|
-
onSearchInputClear
|
|
171
|
-
? onSearchInputClear
|
|
172
|
-
: (e) => onChange(e as React.FormEvent<HTMLInputElement>, '')
|
|
173
|
-
}
|
|
174
|
-
isDisabled={isDisabled}
|
|
175
|
-
aria-label={searchInputAriaLabel}
|
|
176
|
-
/>
|
|
177
|
-
)}
|
|
178
|
-
</div>
|
|
179
|
-
)}
|
|
180
|
-
{actions && <div className={css(styles.dualListSelectorToolsActions)}>{actions}</div>}
|
|
52
|
+
}: DualListSelectorPaneProps) => (
|
|
53
|
+
<div
|
|
54
|
+
className={css(styles.dualListSelectorPane, isChosen ? styles.modifiers.chosen : 'pf-m-available', className)}
|
|
55
|
+
{...props}
|
|
56
|
+
>
|
|
57
|
+
{title && (
|
|
58
|
+
<div className={css(styles.dualListSelectorHeader)}>
|
|
59
|
+
<div className={`${styles.dualListSelector}__title`}>
|
|
60
|
+
<div className={css(styles.dualListSelectorTitleText)}>{title}</div>
|
|
181
61
|
</div>
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
62
|
+
</div>
|
|
63
|
+
)}
|
|
64
|
+
{(actions || searchInput) && (
|
|
65
|
+
<div className={css(styles.dualListSelectorTools)}>
|
|
66
|
+
{searchInput && (
|
|
67
|
+
<div className={css(styles.dualListSelectorToolsFilter)}>
|
|
68
|
+
{searchInput ? searchInput : <SearchInput isDisabled={isDisabled} />}
|
|
187
69
|
</div>
|
|
188
|
-
</div>
|
|
189
|
-
)}
|
|
190
|
-
<DualListSelectorPaneContext.Provider value={{ isChosen }}>
|
|
191
|
-
{!isTree && (
|
|
192
|
-
<DualListSelectorListWrapper
|
|
193
|
-
aria-labelledby={`${id}-status`}
|
|
194
|
-
options={options}
|
|
195
|
-
selectedOptions={selectedOptions}
|
|
196
|
-
onOptionSelect={(
|
|
197
|
-
e: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent,
|
|
198
|
-
index: number,
|
|
199
|
-
id: string
|
|
200
|
-
) => onOptionSelect(e, index, isChosen, id)}
|
|
201
|
-
displayOption={displayOption}
|
|
202
|
-
id={`${id}-list`}
|
|
203
|
-
isDisabled={isDisabled}
|
|
204
|
-
{...(listMinHeight && {
|
|
205
|
-
style: { [cssMenuMinHeight.name]: listMinHeight } as React.CSSProperties
|
|
206
|
-
})}
|
|
207
|
-
>
|
|
208
|
-
{children}
|
|
209
|
-
</DualListSelectorListWrapper>
|
|
210
70
|
)}
|
|
211
|
-
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
/>
|
|
235
|
-
</DualListSelectorList>
|
|
236
|
-
) : (
|
|
237
|
-
children
|
|
238
|
-
)}
|
|
239
|
-
</DualListSelectorListWrapper>
|
|
240
|
-
)}
|
|
241
|
-
</DualListSelectorPaneContext.Provider>
|
|
242
|
-
</div>
|
|
243
|
-
);
|
|
244
|
-
};
|
|
71
|
+
{actions && <div className={css(styles.dualListSelectorToolsActions)}>{actions}</div>}
|
|
72
|
+
</div>
|
|
73
|
+
)}
|
|
74
|
+
{status && (
|
|
75
|
+
<div className={css(styles.dualListSelectorStatus)}>
|
|
76
|
+
<div className={css(styles.dualListSelectorStatusText)} id={`${id}-status`}>
|
|
77
|
+
{status}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
)}
|
|
81
|
+
<DualListSelectorPaneContext.Provider value={{ isChosen }}>
|
|
82
|
+
<DualListSelectorListWrapper
|
|
83
|
+
aria-labelledby={`${id}-status`}
|
|
84
|
+
id={`${id}-list`}
|
|
85
|
+
{...(listMinHeight && {
|
|
86
|
+
style: { [cssMenuMinHeight.name]: listMinHeight } as React.CSSProperties
|
|
87
|
+
})}
|
|
88
|
+
>
|
|
89
|
+
{children}
|
|
90
|
+
</DualListSelectorListWrapper>
|
|
91
|
+
</DualListSelectorPaneContext.Provider>
|
|
92
|
+
</div>
|
|
93
|
+
);
|
|
245
94
|
DualListSelectorPane.displayName = 'DualListSelectorPane';
|
|
@@ -10,26 +10,26 @@ export interface DualListSelectorTreeItemData {
|
|
|
10
10
|
className?: string;
|
|
11
11
|
/** Flag indicating this option is expanded by default. */
|
|
12
12
|
defaultExpanded?: boolean;
|
|
13
|
-
/** Flag indicating this option has a badge */
|
|
13
|
+
/** Flag indicating this option has a badge. */
|
|
14
14
|
hasBadge?: boolean;
|
|
15
|
-
/** Callback fired when an option is checked */
|
|
15
|
+
/** Callback fired when an option is checked. */
|
|
16
16
|
onOptionCheck?: (
|
|
17
17
|
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
18
18
|
isChecked: boolean,
|
|
19
19
|
isChosen: boolean,
|
|
20
20
|
itemData: DualListSelectorTreeItemData
|
|
21
21
|
) => void;
|
|
22
|
-
/** ID of the option */
|
|
22
|
+
/** ID of the option. */
|
|
23
23
|
id: string;
|
|
24
|
-
/** Text of the option */
|
|
24
|
+
/** Text of the option. */
|
|
25
25
|
text: string;
|
|
26
|
-
/** Parent
|
|
26
|
+
/** Parent ID of an option. */
|
|
27
27
|
parentId?: string;
|
|
28
|
-
/** Checked state of the option */
|
|
28
|
+
/** Checked state of the option. */
|
|
29
29
|
isChecked: boolean;
|
|
30
|
-
/** Additional properties to pass to the option checkbox */
|
|
30
|
+
/** Additional properties to pass to the option checkbox. */
|
|
31
31
|
checkProps?: any;
|
|
32
|
-
/** Additional properties to pass to the option badge */
|
|
32
|
+
/** Additional properties to pass to the option badge. */
|
|
33
33
|
badgeProps?: any;
|
|
34
34
|
/** Flag indicating whether the component is disabled. */
|
|
35
35
|
isDisabled?: boolean;
|
|
@@ -40,19 +40,19 @@ export interface DualListSelectorTreeItemData {
|
|
|
40
40
|
*/
|
|
41
41
|
|
|
42
42
|
export interface DualListSelectorTreeProps extends Omit<React.HTMLProps<HTMLUListElement>, 'data'> {
|
|
43
|
-
/** Data of the tree view */
|
|
43
|
+
/** Data of the tree view. */
|
|
44
44
|
data: DualListSelectorTreeItemData[] | (() => DualListSelectorTreeItemData[]);
|
|
45
|
-
/** ID of the tree view */
|
|
45
|
+
/** ID of the tree view. */
|
|
46
46
|
id?: string;
|
|
47
|
-
/** @hide Flag indicating if the list is nested */
|
|
47
|
+
/** @hide Flag indicating if the list is nested. */
|
|
48
48
|
isNested?: boolean;
|
|
49
|
-
/** Flag indicating if all options should have badges */
|
|
49
|
+
/** Flag indicating if all options should have badges. */
|
|
50
50
|
hasBadges?: boolean;
|
|
51
|
-
/** Sets the default expanded behavior */
|
|
51
|
+
/** Sets the default expanded behavior. */
|
|
52
52
|
defaultAllExpanded?: boolean;
|
|
53
|
-
/** Flag indicating if the dual list selector tree is in the disabled state */
|
|
53
|
+
/** Flag indicating if the dual list selector tree is in the disabled state. */
|
|
54
54
|
isDisabled?: boolean;
|
|
55
|
-
/** Callback fired when an option is checked */
|
|
55
|
+
/** Callback fired when an option is checked. */
|
|
56
56
|
onOptionCheck?: (
|
|
57
57
|
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
58
58
|
isChecked: boolean,
|
|
@@ -14,25 +14,25 @@ export interface DualListSelectorTreeItemProps extends React.HTMLProps<HTMLLIEle
|
|
|
14
14
|
className?: string;
|
|
15
15
|
/** Flag indicating this option is expanded by default. */
|
|
16
16
|
defaultExpanded?: boolean;
|
|
17
|
-
/** Flag indicating this option has a badge */
|
|
17
|
+
/** Flag indicating this option has a badge. */
|
|
18
18
|
hasBadge?: boolean;
|
|
19
|
-
/** Callback fired when an option is checked */
|
|
19
|
+
/** Callback fired when an option is checked. */
|
|
20
20
|
onOptionCheck?: (
|
|
21
21
|
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
22
22
|
isChecked: boolean,
|
|
23
23
|
itemData: DualListSelectorTreeItemData
|
|
24
24
|
) => void;
|
|
25
|
-
/** ID of the option */
|
|
25
|
+
/** ID of the option. */
|
|
26
26
|
id: string;
|
|
27
|
-
/** Text of the option */
|
|
27
|
+
/** Text of the option. */
|
|
28
28
|
text: string;
|
|
29
29
|
/** Flag indicating if this open is checked. */
|
|
30
30
|
isChecked?: boolean;
|
|
31
|
-
/** Additional properties to pass to the option checkbox */
|
|
31
|
+
/** Additional properties to pass to the option checkbox. */
|
|
32
32
|
checkProps?: any;
|
|
33
|
-
/** Additional properties to pass to the option badge */
|
|
33
|
+
/** Additional properties to pass to the option badge. */
|
|
34
34
|
badgeProps?: any;
|
|
35
|
-
/** Raw data of the option */
|
|
35
|
+
/** Raw data of the option. */
|
|
36
36
|
itemData?: DualListSelectorTreeItemData;
|
|
37
37
|
/** Flag indicating whether the component is disabled. */
|
|
38
38
|
isDisabled?: boolean;
|
|
@@ -1,65 +1,26 @@
|
|
|
1
1
|
import { render } from '@testing-library/react';
|
|
2
|
-
import {
|
|
2
|
+
import { DualListSelectorPane } from '../DualListSelectorPane';
|
|
3
|
+
import { SearchInput } from '../../SearchInput';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
|
|
5
6
|
describe('DualListSelector', () => {
|
|
6
7
|
test('basic', () => {
|
|
7
|
-
const { asFragment } = render(<
|
|
8
|
+
const { asFragment } = render(<DualListSelectorPane id="basicTest" />);
|
|
8
9
|
expect(asFragment()).toMatchSnapshot();
|
|
9
10
|
});
|
|
10
11
|
|
|
11
12
|
test('with search inputs', () => {
|
|
12
|
-
const { asFragment } = render(
|
|
13
|
-
<DualListSelector availableOptions={['Option 1', 'Option 2']} id="secondTest" isSearchable />
|
|
14
|
-
);
|
|
13
|
+
const { asFragment } = render(<DualListSelectorPane id="searchTest" searchInput={<SearchInput />} />);
|
|
15
14
|
expect(asFragment()).toMatchSnapshot();
|
|
16
15
|
});
|
|
17
16
|
|
|
18
17
|
test('with custom status', () => {
|
|
19
|
-
const { asFragment } = render(
|
|
20
|
-
<DualListSelector
|
|
21
|
-
availableOptions={['Option 1', 'Option 2']}
|
|
22
|
-
availableOptionsStatus="Test status1"
|
|
23
|
-
chosenOptionsStatus="Test status2"
|
|
24
|
-
id="thirdTest"
|
|
25
|
-
/>
|
|
26
|
-
);
|
|
18
|
+
const { asFragment } = render(<DualListSelectorPane id="statusTest" status="Test status1" />);
|
|
27
19
|
expect(asFragment()).toMatchSnapshot();
|
|
28
20
|
});
|
|
29
21
|
|
|
30
22
|
test('basic with disabled controls', () => {
|
|
31
|
-
const { asFragment } = render(
|
|
32
|
-
<DualListSelector isDisabled availableOptions={['Option 1', 'Option 2']} id="disabledTest" />
|
|
33
|
-
);
|
|
34
|
-
expect(asFragment()).toMatchSnapshot();
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('with tree', () => {
|
|
38
|
-
const { asFragment } = render(
|
|
39
|
-
<DualListSelector
|
|
40
|
-
availableOptions={[
|
|
41
|
-
{ id: 'O1', text: 'Opt1', defaultExpanded: true, children: [{ id: 'O3', text: 'Opt3' }] },
|
|
42
|
-
{ id: 'O2', text: 'Opt2' }
|
|
43
|
-
]}
|
|
44
|
-
availableOptionsStatus="Test status1"
|
|
45
|
-
chosenOptionsStatus="Test status2"
|
|
46
|
-
id="tree-test"
|
|
47
|
-
isTree
|
|
48
|
-
/>
|
|
49
|
-
);
|
|
50
|
-
expect(asFragment()).toMatchSnapshot();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test('with actions', () => {
|
|
54
|
-
const { asFragment } = render(
|
|
55
|
-
<DualListSelector
|
|
56
|
-
availableOptions={['Option 1', 'Option 2']}
|
|
57
|
-
chosenOptions={['Option 3', 'Option 4']}
|
|
58
|
-
availableOptionsActions={[<span key={1}>TestNode1</span>]}
|
|
59
|
-
chosenOptionsActions={[<span key={2}>TestNode2</span>]}
|
|
60
|
-
id="fourthTest"
|
|
61
|
-
/>
|
|
62
|
-
);
|
|
23
|
+
const { asFragment } = render(<DualListSelectorPane id="disabledTest" isDisabled />);
|
|
63
24
|
expect(asFragment()).toMatchSnapshot();
|
|
64
25
|
});
|
|
65
26
|
});
|