superdesk-ui-framework 4.0.47 → 4.0.49
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/.eslintrc.js +0 -1
- package/.eslintrc.json +2 -5
- package/.github/workflows/test.yml +22 -26
- package/.prettierignore +3 -0
- package/.prettierrc.js +9 -0
- package/.travis.yml +4 -4
- package/README.md +14 -1
- package/app/styles/_time.scss +28 -0
- package/app/styles/app.scss +1 -0
- package/app/styles/design-tokens/_design-tokens-general.scss +6 -3
- package/app/styles/form-elements/_forms-general.scss +0 -4
- package/app-typescript/components/Alert.tsx +12 -16
- package/app-typescript/components/Autocomplete.tsx +53 -42
- package/app-typescript/components/Badge.tsx +1 -1
- package/app-typescript/components/Button.tsx +5 -11
- package/app-typescript/components/ButtonGroup.tsx +15 -10
- package/app-typescript/components/Carousel.tsx +25 -26
- package/app-typescript/components/CheckButtonGroup.tsx +6 -10
- package/app-typescript/components/Checkbox.tsx +16 -10
- package/app-typescript/components/CheckboxButton.tsx +22 -13
- package/app-typescript/components/ContentDivider.tsx +6 -7
- package/app-typescript/components/CreateButton.tsx +8 -6
- package/app-typescript/components/DatePicker.tsx +59 -55
- package/app-typescript/components/DateTimePicker.tsx +51 -48
- package/app-typescript/components/Divider.tsx +2 -4
- package/app-typescript/components/DonutChart.tsx +11 -6
- package/app-typescript/components/DragHandle.tsx +10 -6
- package/app-typescript/components/DragHandleDots.tsx +1 -3
- package/app-typescript/components/DropZone.tsx +27 -25
- package/app-typescript/components/Dropdown.tsx +61 -102
- package/app-typescript/components/DropdownFirst.tsx +57 -69
- package/app-typescript/components/DurationInput.tsx +64 -54
- package/app-typescript/components/Editor/EditorButton.tsx +4 -3
- package/app-typescript/components/EmptyState.tsx +10 -14
- package/app-typescript/components/Form/FormGroup.tsx +9 -16
- package/app-typescript/components/Form/FormItem.tsx +1 -5
- package/app-typescript/components/Form/FormLabel.tsx +0 -1
- package/app-typescript/components/Form/FormRow.tsx +12 -19
- package/app-typescript/components/Form/FormRowNew.tsx +9 -16
- package/app-typescript/components/Form/FormText.tsx +1 -5
- package/app-typescript/components/Form/InputBase.tsx +12 -11
- package/app-typescript/components/Form/InputNew.tsx +11 -12
- package/app-typescript/components/Form/InputWrapper.tsx +9 -18
- package/app-typescript/components/Form/index.tsx +9 -9
- package/app-typescript/components/FormLabel.tsx +1 -5
- package/app-typescript/components/GridItem.tsx +38 -69
- package/app-typescript/components/GridList.tsx +2 -6
- package/app-typescript/components/HeadingText.tsx +4 -5
- package/app-typescript/components/IconButton.tsx +4 -10
- package/app-typescript/components/IconLabel.tsx +5 -5
- package/app-typescript/components/IconPicker.tsx +128 -126
- package/app-typescript/components/IllustrationButton.tsx +2 -8
- package/app-typescript/components/Input.tsx +2 -2
- package/app-typescript/components/Label.tsx +11 -7
- package/app-typescript/components/Layouts/AuthorinInnerSideBar.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringContainer.tsx +4 -6
- package/app-typescript/components/Layouts/AuthoringFrame.tsx +4 -20
- package/app-typescript/components/Layouts/AuthoringFrameContainer.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameLeftBar.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameMain.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameNavBar.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameOverlay.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameSidePanel.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringFrameSidePanelOverlay.tsx +1 -3
- package/app-typescript/components/Layouts/AuthoringInnerBody.tsx +3 -6
- package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +5 -5
- package/app-typescript/components/Layouts/AuthoringMain.tsx +3 -4
- package/app-typescript/components/Layouts/AuthoringMainContainer.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringMainContent.tsx +1 -5
- package/app-typescript/components/Layouts/AuthoringMainToolBar.tsx +1 -6
- package/app-typescript/components/Layouts/BottomBarAction.tsx +8 -10
- package/app-typescript/components/Layouts/Container.tsx +13 -8
- package/app-typescript/components/Layouts/ContentSplitter.tsx +2 -6
- package/app-typescript/components/Layouts/CoreLayout.tsx +5 -12
- package/app-typescript/components/Layouts/CoreLayoutContainer.tsx +1 -1
- package/app-typescript/components/Layouts/CoreLayoutFooter.tsx +1 -5
- package/app-typescript/components/Layouts/CoreLayoutMain.tsx +4 -4
- package/app-typescript/components/Layouts/CoreLayoutOverlay.tsx +1 -5
- package/app-typescript/components/Layouts/CoreLayoutSlideInMenu.tsx +2 -4
- package/app-typescript/components/Layouts/CoreLayoutTopMenu.tsx +8 -9
- package/app-typescript/components/Layouts/HamburgerButton.tsx +13 -14
- package/app-typescript/components/Layouts/HeaderPanel.tsx +1 -5
- package/app-typescript/components/Layouts/Layout.tsx +10 -16
- package/app-typescript/components/Layouts/LayoutContainer.tsx +2 -7
- package/app-typescript/components/Layouts/LeftPanel.tsx +4 -11
- package/app-typescript/components/Layouts/MainMenu.tsx +18 -32
- package/app-typescript/components/Layouts/MainPanel.tsx +10 -11
- package/app-typescript/components/Layouts/NotificationPanel.tsx +20 -29
- package/app-typescript/components/Layouts/OverlayPanel.tsx +3 -5
- package/app-typescript/components/Layouts/PageLayout.tsx +4 -21
- package/app-typescript/components/Layouts/Panel.tsx +45 -81
- package/app-typescript/components/Layouts/index.tsx +39 -39
- package/app-typescript/components/LeftMenu.tsx +51 -53
- package/app-typescript/components/ListItemLoader.tsx +1 -1
- package/app-typescript/components/Lists/BoxedList.tsx +16 -41
- package/app-typescript/components/Lists/CalendarWeekDayItem.tsx +2 -10
- package/app-typescript/components/Lists/ContentList.tsx +68 -62
- package/app-typescript/components/Lists/SimpleList.tsx +13 -12
- package/app-typescript/components/Lists/TableList.tsx +169 -217
- package/app-typescript/components/Lists/index.tsx +2 -2
- package/app-typescript/components/Loader.tsx +1 -3
- package/app-typescript/components/Menu.tsx +2 -4
- package/app-typescript/components/Modal.tsx +21 -21
- package/app-typescript/components/MultiSelect.tsx +6 -6
- package/app-typescript/components/NavButton.tsx +10 -8
- package/app-typescript/components/Navigation/BottomNav.tsx +21 -17
- package/app-typescript/components/Navigation/QuickNavBar.tsx +40 -37
- package/app-typescript/components/Navigation/SideBarMenu.tsx +21 -17
- package/app-typescript/components/Navigation/SideBarTabs.tsx +13 -19
- package/app-typescript/components/Navigation/index.tsx +3 -3
- package/app-typescript/components/Popover.tsx +19 -21
- package/app-typescript/components/PropsList.tsx +2 -4
- package/app-typescript/components/RadioButtonGroup.tsx +48 -45
- package/app-typescript/components/RadioGroup.tsx +9 -8
- package/app-typescript/components/ResizablePanels.tsx +2 -3
- package/app-typescript/components/ResizeObserverComponent.tsx +1 -5
- package/app-typescript/components/SearchBar.tsx +53 -45
- package/app-typescript/components/Select.tsx +6 -8
- package/app-typescript/components/SelectGrid.tsx +32 -40
- package/app-typescript/components/SelectPreview.tsx +31 -25
- package/app-typescript/components/SelectWithTemplate.tsx +10 -11
- package/app-typescript/components/ShowPopup.tsx +32 -46
- package/app-typescript/components/SidebarMenu.tsx +19 -18
- package/app-typescript/components/Skeleton.tsx +12 -11
- package/app-typescript/components/SlidingToolbar.tsx +1 -6
- package/app-typescript/components/Spinner.tsx +2 -6
- package/app-typescript/components/StrechBar.tsx +1 -5
- package/app-typescript/components/SubNav.tsx +10 -8
- package/app-typescript/components/SvgIconIllustration.tsx +477 -105
- package/app-typescript/components/Switch.tsx +14 -12
- package/app-typescript/components/SwitchGroup.tsx +10 -10
- package/app-typescript/components/TabCustom.tsx +28 -35
- package/app-typescript/components/TabList.tsx +13 -10
- package/app-typescript/components/Tag.tsx +21 -24
- package/app-typescript/components/TagInput.tsx +4 -11
- package/app-typescript/components/Text/Heading.tsx +21 -41
- package/app-typescript/components/Text/Text.tsx +16 -12
- package/app-typescript/components/Text/Time.tsx +14 -10
- package/app-typescript/components/ThemeSelector.tsx +15 -14
- package/app-typescript/components/TimePicker.tsx +60 -6
- package/app-typescript/components/TimePickerPopover.tsx +274 -0
- package/app-typescript/components/TimePickerV2.tsx +20 -20
- package/app-typescript/components/Toast.tsx +11 -7
- package/app-typescript/components/ToastMessage.tsx +3 -14
- package/app-typescript/components/ToastText.tsx +30 -32
- package/app-typescript/components/ToastWrapper.tsx +76 -74
- package/app-typescript/components/ToggleBox/CustomHeaderToggleBox.tsx +30 -45
- package/app-typescript/components/ToggleBox/SimpleToggleBox.tsx +31 -33
- package/app-typescript/components/ToggleBox/index.tsx +3 -7
- package/app-typescript/components/Tooltip.tsx +1 -1
- package/app-typescript/components/TreeMenu.tsx +72 -81
- package/app-typescript/components/TreeSelect/KeyboardNavigation.tsx +1 -5
- package/app-typescript/components/TreeSelect/TreeSelect.tsx +221 -238
- package/app-typescript/components/TreeSelect/TreeSelectItem.tsx +20 -24
- package/app-typescript/components/TreeSelect/TreeSelectPill.tsx +12 -15
- package/app-typescript/components/WithPagination.tsx +34 -39
- package/app-typescript/components/WithPopover.tsx +0 -1
- package/app-typescript/components/WithPortal.tsx +4 -7
- package/app-typescript/components/WithSizeObserver.tsx +2 -6
- package/app-typescript/components/_Positioner.tsx +26 -26
- package/app-typescript/components/avatar/avatar-action-add.tsx +1 -6
- package/app-typescript/components/avatar/avatar-group.tsx +49 -68
- package/app-typescript/components/avatar/avatar-image.tsx +18 -12
- package/app-typescript/components/avatar/avatar-placeholder.tsx +3 -15
- package/app-typescript/components/avatar/avatar-text.tsx +1 -4
- package/app-typescript/components/avatar/avatar-wrapper.tsx +18 -30
- package/app-typescript/components/avatar/avatar.tsx +5 -8
- package/app-typescript/components/with-pagination.spec.tsx +8 -27
- package/app-typescript/helpers.tsx +2 -2
- package/app-typescript/index.ts +111 -100
- package/app-typescript/utils/time.tsx +31 -0
- package/declarations.d.ts +1 -1
- package/dist/components/Alerts.tsx +171 -78
- package/dist/components/Autocomplete.tsx +187 -78
- package/dist/components/Avatar.tsx +52 -112
- package/dist/components/Badges.tsx +111 -67
- package/dist/components/BigIconFont.tsx +29 -17
- package/dist/components/BoxedList.tsx +244 -114
- package/dist/components/ButtonGroups.tsx +213 -147
- package/dist/components/Buttons.tsx +409 -137
- package/dist/components/Card.tsx +6 -7
- package/dist/components/Carousel.tsx +126 -39
- package/dist/components/Checkboxs.tsx +446 -105
- package/dist/components/Container.tsx +95 -48
- package/dist/components/ContentDivider.tsx +110 -63
- package/dist/components/ContentList.tsx +577 -253
- package/dist/components/CreateButton.tsx +71 -21
- package/dist/components/DatePicker.tsx +102 -26
- package/dist/components/DateTimePicker.tsx +49 -11
- package/dist/components/DragHandleDocs.tsx +56 -26
- package/dist/components/DropZone.tsx +67 -29
- package/dist/components/Dropdowns.tsx +220 -131
- package/dist/components/DurationInput.tsx +92 -32
- package/dist/components/EmptyStates.tsx +61 -26
- package/dist/components/GridItem.tsx +190 -91
- package/dist/components/GridList.tsx +37 -17
- package/dist/components/Heading.tsx +81 -35
- package/dist/components/IconButtons.tsx +125 -32
- package/dist/components/IconFont.tsx +24 -12
- package/dist/components/IconLabels.tsx +146 -39
- package/dist/components/IconPicker.tsx +30 -13
- package/dist/components/IllustrationButton.tsx +40 -20
- package/dist/components/Index.tsx +128 -114
- package/dist/components/Inputs.tsx +153 -51
- package/dist/components/Labels.tsx +191 -117
- package/dist/components/LeftNavigations.tsx +327 -100
- package/dist/components/ListItems.tsx +8 -9
- package/dist/components/Loader.tsx +5 -4
- package/dist/components/Menu.tsx +48 -26
- package/dist/components/Modal.tsx +298 -104
- package/dist/components/MultiSelect.tsx +189 -53
- package/dist/components/NavButtons.tsx +86 -30
- package/dist/components/Panel.tsx +367 -120
- package/dist/components/Popover.tsx +37 -17
- package/dist/components/QuickNavigationBar.tsx +222 -86
- package/dist/components/RadioGroup.tsx +375 -137
- package/dist/components/ResizablePanels.tsx +8 -14
- package/dist/components/SelectGrid.tsx +79 -38
- package/dist/components/SelectWithTemplate.tsx +23 -14
- package/dist/components/Selects.tsx +94 -29
- package/dist/components/SimpleList.tsx +91 -41
- package/dist/components/SubNav.tsx +57 -37
- package/dist/components/Switch.tsx +168 -42
- package/dist/components/TableList.tsx +220 -66
- package/dist/components/Tabs.tsx +149 -64
- package/dist/components/TagInputDocs.tsx +73 -17
- package/dist/components/Tags.tsx +104 -73
- package/dist/components/Text.tsx +108 -58
- package/dist/components/TimePicker.tsx +76 -22
- package/dist/components/Toasts.tsx +162 -80
- package/dist/components/Togglebox.tsx +164 -62
- package/dist/components/Tooltips.tsx +27 -15
- package/dist/components/TreeMenu.tsx +95 -59
- package/dist/components/TreeSelect.tsx +297 -162
- package/dist/components/WithPaginationDocs.tsx +15 -16
- package/dist/components/WithSizeObserver.tsx +9 -9
- package/dist/components/tree-select/TreeSelect.tsx +126 -77
- package/dist/components/tree-select/example-1.tsx +8 -12
- package/dist/components/tree-select/example-2.tsx +2 -5
- package/dist/components/utilities/BorderRadiusUtilities.tsx +28 -13
- package/dist/components/utilities/BorderUtilities.tsx +31 -32
- package/dist/components/utilities/DisplayUtilities.tsx +4 -5
- package/dist/components/utilities/FlexAndGridUtilities.tsx +38 -38
- package/dist/components/utilities/ObjectFitUtilities.tsx +4 -6
- package/dist/components/utilities/ObjectPositionUtilities.tsx +3 -4
- package/dist/components/utilities/OpacityUtilities.tsx +4 -7
- package/dist/components/utilities/OverflowUtilities.tsx +4 -5
- package/dist/components/utilities/PositionUtilities.tsx +4 -5
- package/dist/components/utilities/ShadowUtilities.tsx +15 -16
- package/dist/components/utilities/SpacingUtilities.tsx +483 -178
- package/dist/components/utilities/TextUtilities.tsx +109 -60
- package/dist/design-patterns/Index.tsx +8 -11
- package/dist/design-patterns/ThreePaneLayoutPattern.tsx +92 -76
- package/dist/examples.bundle.css +1257 -1155
- package/dist/examples.bundle.js +7904 -7035
- package/dist/playgrounds/dummy-data/items.ts +9 -8
- package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +559 -277
- package/dist/playgrounds/react-playgrounds/EditorTest.tsx +387 -204
- package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +74 -52
- package/dist/playgrounds/react-playgrounds/Index.tsx +11 -11
- package/dist/playgrounds/react-playgrounds/Multiedit.tsx +294 -218
- package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +151 -105
- package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +481 -261
- package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +261 -149
- package/dist/playgrounds/react-playgrounds/Rundowns.tsx +757 -395
- package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +173 -91
- package/dist/playgrounds/react-playgrounds/TestGround.tsx +1364 -818
- package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +178 -86
- package/dist/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +6 -7
- package/dist/playgrounds/react-playgrounds/components/AuthoringContent.tsx +42 -42
- package/dist/playgrounds/react-playgrounds/components/ContentSplitter.tsx +5 -8
- package/dist/playgrounds/react-playgrounds/components/GraphicButton.tsx +11 -11
- package/dist/playgrounds/react-playgrounds/components/GraphicButtonsGroup.tsx +2 -6
- package/dist/playgrounds/react-playgrounds/components/HeaderPanel.tsx +1 -5
- package/dist/playgrounds/react-playgrounds/components/Index.tsx +19 -21
- package/dist/playgrounds/react-playgrounds/components/Layout.tsx +11 -17
- package/dist/playgrounds/react-playgrounds/components/LayoutContainer.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -12
- package/dist/playgrounds/react-playgrounds/components/OverlayPanel.tsx +3 -5
- package/dist/playgrounds/react-playgrounds/components/Panel.tsx +6 -7
- package/dist/playgrounds/react-playgrounds/components/PanelContent.tsx +1 -5
- package/dist/playgrounds/react-playgrounds/components/PanelContentBlock.tsx +1 -6
- package/dist/playgrounds/react-playgrounds/components/PanelHeader.tsx +3 -3
- package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -12
- package/dist/playgrounds/react-playgrounds/components/SidebarMenu.tsx +23 -14
- package/dist/playgrounds/react-playgrounds/components/SubNav.tsx +1 -5
- package/dist/playgrounds/react-playgrounds/components/ThemeDropdown.tsx +14 -11
- package/dist/playgrounds/react-playgrounds/tsconfig.json +1 -1
- package/dist/superdesk-ui.bundle.css +25 -4
- package/dist/superdesk-ui.bundle.js +3072 -2903
- package/dist/vendor.bundle.js +18 -18
- package/examples/css/docs-page.css +1135 -1116
- package/examples/css/reset.css +124 -43
- package/examples/css/vendor.css +125 -125
- package/examples/index.js +138 -139
- package/examples/js/doc.js +41 -40
- package/examples/js/react.js +82 -48
- package/examples/pages/components/Alerts.tsx +171 -78
- package/examples/pages/components/Autocomplete.tsx +187 -78
- package/examples/pages/components/Avatar.tsx +52 -112
- package/examples/pages/components/Badges.tsx +111 -67
- package/examples/pages/components/BigIconFont.tsx +29 -17
- package/examples/pages/components/BoxedList.tsx +244 -114
- package/examples/pages/components/ButtonGroups.tsx +213 -147
- package/examples/pages/components/Buttons.tsx +409 -137
- package/examples/pages/components/Card.tsx +6 -7
- package/examples/pages/components/Carousel.tsx +126 -39
- package/examples/pages/components/Checkboxs.tsx +446 -105
- package/examples/pages/components/Container.tsx +95 -48
- package/examples/pages/components/ContentDivider.tsx +110 -63
- package/examples/pages/components/ContentList.tsx +577 -253
- package/examples/pages/components/CreateButton.tsx +71 -21
- package/examples/pages/components/DatePicker.tsx +102 -26
- package/examples/pages/components/DateTimePicker.tsx +49 -11
- package/examples/pages/components/DragHandleDocs.tsx +56 -26
- package/examples/pages/components/DropZone.tsx +67 -29
- package/examples/pages/components/Dropdowns.tsx +220 -131
- package/examples/pages/components/DurationInput.tsx +92 -32
- package/examples/pages/components/EmptyStates.tsx +61 -26
- package/examples/pages/components/GridItem.tsx +190 -91
- package/examples/pages/components/GridList.tsx +37 -17
- package/examples/pages/components/Heading.tsx +81 -35
- package/examples/pages/components/IconButtons.tsx +125 -32
- package/examples/pages/components/IconFont.tsx +24 -12
- package/examples/pages/components/IconLabels.tsx +146 -39
- package/examples/pages/components/IconPicker.tsx +30 -13
- package/examples/pages/components/IllustrationButton.tsx +40 -20
- package/examples/pages/components/Index.tsx +128 -114
- package/examples/pages/components/Inputs.tsx +153 -51
- package/examples/pages/components/Labels.tsx +191 -117
- package/examples/pages/components/LeftNavigations.tsx +327 -100
- package/examples/pages/components/ListItems.tsx +8 -9
- package/examples/pages/components/Loader.tsx +5 -4
- package/examples/pages/components/Menu.tsx +48 -26
- package/examples/pages/components/Modal.tsx +298 -104
- package/examples/pages/components/MultiSelect.tsx +189 -53
- package/examples/pages/components/NavButtons.tsx +86 -30
- package/examples/pages/components/Panel.tsx +367 -120
- package/examples/pages/components/Popover.tsx +37 -17
- package/examples/pages/components/QuickNavigationBar.tsx +222 -86
- package/examples/pages/components/RadioGroup.tsx +375 -137
- package/examples/pages/components/ResizablePanels.tsx +8 -14
- package/examples/pages/components/SelectGrid.tsx +79 -38
- package/examples/pages/components/SelectWithTemplate.tsx +23 -14
- package/examples/pages/components/Selects.tsx +94 -29
- package/examples/pages/components/SimpleList.tsx +91 -41
- package/examples/pages/components/SubNav.tsx +57 -37
- package/examples/pages/components/Switch.tsx +168 -42
- package/examples/pages/components/TableList.tsx +220 -66
- package/examples/pages/components/Tabs.tsx +149 -64
- package/examples/pages/components/TagInputDocs.tsx +73 -17
- package/examples/pages/components/Tags.tsx +104 -73
- package/examples/pages/components/Text.tsx +108 -58
- package/examples/pages/components/TimePicker.tsx +76 -22
- package/examples/pages/components/Toasts.tsx +162 -80
- package/examples/pages/components/Togglebox.tsx +164 -62
- package/examples/pages/components/Tooltips.tsx +27 -15
- package/examples/pages/components/TreeMenu.tsx +95 -59
- package/examples/pages/components/TreeSelect.tsx +297 -162
- package/examples/pages/components/WithPaginationDocs.tsx +15 -16
- package/examples/pages/components/WithSizeObserver.tsx +9 -9
- package/examples/pages/components/tree-select/TreeSelect.tsx +126 -77
- package/examples/pages/components/tree-select/example-1.tsx +8 -12
- package/examples/pages/components/tree-select/example-2.tsx +2 -5
- package/examples/pages/components/utilities/BorderRadiusUtilities.tsx +28 -13
- package/examples/pages/components/utilities/BorderUtilities.tsx +31 -32
- package/examples/pages/components/utilities/DisplayUtilities.tsx +4 -5
- package/examples/pages/components/utilities/FlexAndGridUtilities.tsx +38 -38
- package/examples/pages/components/utilities/ObjectFitUtilities.tsx +4 -6
- package/examples/pages/components/utilities/ObjectPositionUtilities.tsx +3 -4
- package/examples/pages/components/utilities/OpacityUtilities.tsx +4 -7
- package/examples/pages/components/utilities/OverflowUtilities.tsx +4 -5
- package/examples/pages/components/utilities/PositionUtilities.tsx +4 -5
- package/examples/pages/components/utilities/ShadowUtilities.tsx +15 -16
- package/examples/pages/components/utilities/SpacingUtilities.tsx +483 -178
- package/examples/pages/components/utilities/TextUtilities.tsx +109 -60
- package/examples/pages/design-patterns/Index.tsx +8 -11
- package/examples/pages/design-patterns/ThreePaneLayoutPattern.tsx +92 -76
- package/examples/pages/playgrounds/dummy-data/items.ts +9 -8
- package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +559 -277
- package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +387 -204
- package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +74 -52
- package/examples/pages/playgrounds/react-playgrounds/Index.tsx +11 -11
- package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +294 -218
- package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +151 -105
- package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +481 -261
- package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +261 -149
- package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +757 -395
- package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +173 -91
- package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +1364 -818
- package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +178 -86
- package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +6 -7
- package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContent.tsx +42 -42
- package/examples/pages/playgrounds/react-playgrounds/components/ContentSplitter.tsx +5 -8
- package/examples/pages/playgrounds/react-playgrounds/components/GraphicButton.tsx +11 -11
- package/examples/pages/playgrounds/react-playgrounds/components/GraphicButtonsGroup.tsx +2 -6
- package/examples/pages/playgrounds/react-playgrounds/components/HeaderPanel.tsx +1 -5
- package/examples/pages/playgrounds/react-playgrounds/components/Index.tsx +19 -21
- package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +11 -17
- package/examples/pages/playgrounds/react-playgrounds/components/LayoutContainer.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -12
- package/examples/pages/playgrounds/react-playgrounds/components/OverlayPanel.tsx +3 -5
- package/examples/pages/playgrounds/react-playgrounds/components/Panel.tsx +6 -7
- package/examples/pages/playgrounds/react-playgrounds/components/PanelContent.tsx +1 -5
- package/examples/pages/playgrounds/react-playgrounds/components/PanelContentBlock.tsx +1 -6
- package/examples/pages/playgrounds/react-playgrounds/components/PanelHeader.tsx +3 -3
- package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -12
- package/examples/pages/playgrounds/react-playgrounds/components/SidebarMenu.tsx +23 -14
- package/examples/pages/playgrounds/react-playgrounds/components/SubNav.tsx +1 -5
- package/examples/pages/playgrounds/react-playgrounds/components/ThemeDropdown.tsx +14 -11
- package/examples/pages/playgrounds/react-playgrounds/tsconfig.json +1 -1
- package/globals.d.ts +1 -1
- package/mocha-setup.ts +3 -3
- package/package.json +119 -117
- package/react/components/Alert.js +6 -9
- package/react/components/Autocomplete.js +15 -23
- package/react/components/Badge.js +1 -1
- package/react/components/Button.js +4 -6
- package/react/components/ButtonGroup.js +1 -1
- package/react/components/Carousel.js +3 -3
- package/react/components/CheckButtonGroup.js +3 -6
- package/react/components/CheckboxButton.js +2 -4
- package/react/components/ContentDivider.js +1 -1
- package/react/components/DatePicker.js +29 -26
- package/react/components/DateTimePicker.d.ts +8 -4
- package/react/components/DateTimePicker.js +6 -8
- package/react/components/Divider.js +1 -1
- package/react/components/DonutChart.js +1 -1
- package/react/components/DragHandle.js +1 -1
- package/react/components/DragHandleDots.js +1 -1
- package/react/components/DropZone.js +6 -8
- package/react/components/Dropdown.d.ts +1 -1
- package/react/components/Dropdown.js +34 -38
- package/react/components/DropdownFirst.d.ts +11 -11
- package/react/components/DropdownFirst.js +20 -24
- package/react/components/DurationInput.js +37 -34
- package/react/components/EmptyState.js +5 -5
- package/react/components/Form/FormGroup.js +1 -1
- package/react/components/Form/FormItem.js +1 -1
- package/react/components/Form/FormRow.js +1 -1
- package/react/components/Form/FormRowNew.js +3 -3
- package/react/components/Form/FormText.js +1 -1
- package/react/components/Form/InputNew.js +3 -3
- package/react/components/Form/InputWrapper.js +7 -10
- package/react/components/GridItem.d.ts +1 -1
- package/react/components/GridItem.js +16 -16
- package/react/components/GridList.js +1 -1
- package/react/components/HeadingText.js +4 -5
- package/react/components/IconLabel.js +3 -5
- package/react/components/IconPicker.d.ts +1 -1
- package/react/components/IconPicker.js +111 -104
- package/react/components/IllustrationButton.js +1 -1
- package/react/components/Input.js +1 -1
- package/react/components/Layouts/AuthorinInnerSideBar.js +1 -1
- package/react/components/Layouts/AuthoringContainer.js +1 -1
- package/react/components/Layouts/AuthoringFrame.js +4 -4
- package/react/components/Layouts/AuthoringFrameContainer.js +1 -1
- package/react/components/Layouts/AuthoringFrameLeftBar.js +1 -1
- package/react/components/Layouts/AuthoringFrameMain.js +1 -1
- package/react/components/Layouts/AuthoringFrameNavBar.js +1 -1
- package/react/components/Layouts/AuthoringFrameOverlay.js +1 -1
- package/react/components/Layouts/AuthoringFrameRightBar.js +1 -1
- package/react/components/Layouts/AuthoringFrameSidePanel.js +1 -1
- package/react/components/Layouts/AuthoringFrameSidePanelOverlay.js +1 -1
- package/react/components/Layouts/AuthoringMainContainer.js +1 -1
- package/react/components/Layouts/AuthoringMainContent.js +1 -1
- package/react/components/Layouts/AuthoringMainToolBar.js +1 -1
- package/react/components/Layouts/BottomBarAction.js +2 -2
- package/react/components/Layouts/ContentSplitter.js +1 -1
- package/react/components/Layouts/CoreLayout.js +2 -2
- package/react/components/Layouts/CoreLayoutContainer.js +1 -1
- package/react/components/Layouts/CoreLayoutFooter.js +1 -1
- package/react/components/Layouts/CoreLayoutOverlay.js +1 -1
- package/react/components/Layouts/CoreLayoutSlideInMenu.js +2 -2
- package/react/components/Layouts/CoreLayoutTopMenu.js +3 -3
- package/react/components/Layouts/HamburgerButton.js +1 -1
- package/react/components/Layouts/HeaderPanel.js +1 -1
- package/react/components/Layouts/Layout.d.ts +1 -1
- package/react/components/Layouts/Layout.js +9 -9
- package/react/components/Layouts/LayoutContainer.js +1 -1
- package/react/components/Layouts/LeftPanel.js +1 -1
- package/react/components/Layouts/MainMenu.js +8 -10
- package/react/components/Layouts/MainPanel.js +1 -1
- package/react/components/Layouts/NotificationPanel.d.ts +1 -1
- package/react/components/Layouts/NotificationPanel.js +7 -7
- package/react/components/Layouts/OverlayPanel.js +3 -3
- package/react/components/Layouts/PageLayout.js +2 -2
- package/react/components/Layouts/Panel.d.ts +1 -1
- package/react/components/Layouts/Panel.js +12 -18
- package/react/components/LeftMenu.d.ts +3 -3
- package/react/components/LeftMenu.js +11 -13
- package/react/components/Lists/BoxedList.js +6 -6
- package/react/components/Lists/CalendarWeekDayItem.js +2 -2
- package/react/components/Lists/ContentList.js +24 -26
- package/react/components/Lists/TableList.d.ts +1 -1
- package/react/components/Lists/TableList.js +59 -79
- package/react/components/Loader.js +1 -1
- package/react/components/Menu.js +1 -1
- package/react/components/Modal.d.ts +1 -1
- package/react/components/MultiSelect.d.ts +1 -1
- package/react/components/MultiSelect.js +2 -2
- package/react/components/NavButton.js +2 -4
- package/react/components/Navigation/BottomNav.js +9 -8
- package/react/components/Navigation/QuickNavBar.js +17 -20
- package/react/components/Navigation/SideBarMenu.js +11 -9
- package/react/components/Navigation/SideBarTabs.js +9 -8
- package/react/components/Popover.js +1 -1
- package/react/components/RadioButtonGroup.js +15 -23
- package/react/components/ResizablePanels.js +1 -3
- package/react/components/ResizeObserverComponent.js +1 -3
- package/react/components/SearchBar.js +14 -16
- package/react/components/Select.js +3 -3
- package/react/components/SelectGrid.js +15 -20
- package/react/components/SelectPreview.js +13 -13
- package/react/components/SelectWithTemplate.js +3 -5
- package/react/components/ShowPopup.d.ts +1 -0
- package/react/components/ShowPopup.js +7 -10
- package/react/components/Skeleton.js +1 -1
- package/react/components/SlidingToolbar.js +1 -1
- package/react/components/Spinner.js +1 -1
- package/react/components/StrechBar.js +1 -1
- package/react/components/SubNav.js +1 -1
- package/react/components/Switch.js +4 -6
- package/react/components/SwitchGroup.js +1 -1
- package/react/components/TabCustom.js +6 -4
- package/react/components/TabList.js +4 -8
- package/react/components/Tag.js +13 -17
- package/react/components/TagInput.js +1 -1
- package/react/components/Text/Heading.js +6 -6
- package/react/components/ThemeSelector.js +1 -1
- package/react/components/TimePicker.d.ts +9 -2
- package/react/components/TimePicker.js +29 -4
- package/react/components/TimePickerPopover.d.ts +19 -0
- package/react/components/TimePickerPopover.js +225 -0
- package/react/components/TimePickerV2.js +17 -17
- package/react/components/Toast.js +3 -3
- package/react/components/ToastMessage.d.ts +1 -1
- package/react/components/ToastMessage.js +1 -1
- package/react/components/ToastText.js +5 -8
- package/react/components/ToastWrapper.js +3 -5
- package/react/components/ToggleBox/CustomHeaderToggleBox.d.ts +1 -1
- package/react/components/ToggleBox/CustomHeaderToggleBox.js +7 -7
- package/react/components/ToggleBox/SimpleToggleBox.d.ts +1 -1
- package/react/components/ToggleBox/SimpleToggleBox.js +5 -5
- package/react/components/ToggleBox/index.js +3 -3
- package/react/components/TreeMenu.d.ts +1 -1
- package/react/components/TreeMenu.js +38 -44
- package/react/components/TreeSelect/TreeSelect.d.ts +2 -2
- package/react/components/TreeSelect/TreeSelect.js +105 -127
- package/react/components/TreeSelect/TreeSelectItem.d.ts +1 -1
- package/react/components/TreeSelect/TreeSelectItem.js +10 -13
- package/react/components/TreeSelect/TreeSelectPill.d.ts +1 -1
- package/react/components/TreeSelect/TreeSelectPill.js +8 -9
- package/react/components/WithPagination.js +18 -21
- package/react/components/WithPortal.d.ts +1 -1
- package/react/components/WithPortal.js +2 -1
- package/react/components/WithSizeObserver.js +1 -3
- package/react/components/_Positioner.js +11 -11
- package/react/components/avatar/avatar-action-add.js +1 -1
- package/react/components/avatar/avatar-group.js +11 -14
- package/react/components/avatar/avatar-image.js +6 -4
- package/react/components/avatar/avatar-placeholder.js +1 -1
- package/react/components/avatar/avatar-wrapper.js +2 -4
- package/react/components/avatar/avatar.js +4 -3
- package/react/helpers.js +2 -2
- package/react/index.d.ts +1 -1
- package/react/utils/time.d.ts +5 -0
- package/react/utils/time.js +36 -0
- package/tasks/webpack.dev.js +1 -1
- package/tasks/webpack.js +5 -5
- package/tasks/webpack.prod.js +1 -5
- package/tsconfig.json +2 -5
- package/tslint.json +6 -12
- package/webpack.config.js +2 -5
@@ -1,10 +1,10 @@
|
|
1
|
-
import * as React from
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import nextId from
|
1
|
+
import * as React from 'react';
|
2
|
+
import {Icon} from '../Icon';
|
3
|
+
import {Loader} from '../Loader';
|
4
|
+
import nextId from 'react-id-generator';
|
5
5
|
import _debounce from 'lodash/debounce';
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import {InputWrapper} from '../Form';
|
7
|
+
import {createPopper, Instance} from '@popperjs/core';
|
8
8
|
import {isEqual} from 'lodash';
|
9
9
|
import {getTextColor} from '../../helpers';
|
10
10
|
import {IInputWrapper} from '../Form/InputWrapper';
|
@@ -13,7 +13,7 @@ import {TreeSelectPill} from './TreeSelectPill';
|
|
13
13
|
import {getPrefixedItemId, TreeSelectItem} from './TreeSelectItem';
|
14
14
|
import {keyboardNavigation} from './KeyboardNavigation';
|
15
15
|
import {WithPortal} from '../WithPortal';
|
16
|
-
import {
|
16
|
+
import {DragDropContext, Droppable, Draggable, DropResult} from 'react-beautiful-dnd';
|
17
17
|
import {getNextZIndex} from '../../zIndex';
|
18
18
|
import {arrayMove} from '@sourcefabric/common';
|
19
19
|
|
@@ -93,10 +93,10 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
93
93
|
private zIndex: number = getNextZIndex();
|
94
94
|
|
95
95
|
/*
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
* This variable is used to distinguish changes coming from outside (from props.value)
|
97
|
+
* from those made by the user through interaction with the component.
|
98
|
+
* It prevents triggering `onChange` when `props.value` updates externally.
|
99
|
+
*/
|
100
100
|
private changesFromOutside: boolean;
|
101
101
|
|
102
102
|
constructor(props: IProps<T>) {
|
@@ -141,29 +141,29 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
141
141
|
|
142
142
|
inputFocus = () => {
|
143
143
|
this.inputRef.current?.focus();
|
144
|
-
}
|
144
|
+
};
|
145
145
|
|
146
146
|
listNavigation = () => {
|
147
147
|
const element: HTMLElement = document.querySelector('.suggestion-item--btn') as HTMLElement;
|
148
148
|
element.focus();
|
149
|
-
}
|
149
|
+
};
|
150
150
|
|
151
151
|
buttonFocus = () => {
|
152
152
|
this.categoryButtonRef.current?.focus();
|
153
|
-
}
|
153
|
+
};
|
154
154
|
|
155
155
|
onMouseDown = (event: MouseEvent) => {
|
156
156
|
if (
|
157
|
-
|
158
|
-
|
159
|
-
|
157
|
+
this.dropdownRef.current?.contains(event.target as HTMLElement) !== true &&
|
158
|
+
this.treeSelectRef.current?.contains(event.target as HTMLElement) !== true &&
|
159
|
+
this.state.openDropdown
|
160
160
|
) {
|
161
161
|
this.setState({
|
162
162
|
openDropdown: false,
|
163
163
|
searchFieldValue: '',
|
164
164
|
});
|
165
165
|
}
|
166
|
-
}
|
166
|
+
};
|
167
167
|
|
168
168
|
onKeyDown = (e: KeyboardEvent) => {
|
169
169
|
if (this.state.openDropdown && this.ref.current) {
|
@@ -185,7 +185,7 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
185
185
|
}
|
186
186
|
}
|
187
187
|
}
|
188
|
-
}
|
188
|
+
};
|
189
189
|
|
190
190
|
onPressEsc = (event: KeyboardEvent) => {
|
191
191
|
if (event.key === 'Escape' && this.state.openDropdown) {
|
@@ -194,24 +194,24 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
194
194
|
searchFieldValue: '',
|
195
195
|
});
|
196
196
|
}
|
197
|
-
}
|
197
|
+
};
|
198
198
|
|
199
199
|
componentDidMount = () => {
|
200
200
|
this.recursion(this.state.options);
|
201
201
|
|
202
|
-
document.addEventListener(
|
203
|
-
document.addEventListener(
|
204
|
-
document.addEventListener(
|
202
|
+
document.addEventListener('mousedown', this.onMouseDown);
|
203
|
+
document.addEventListener('keydown', this.onKeyDown);
|
204
|
+
document.addEventListener('keydown', this.onPressEsc);
|
205
205
|
|
206
206
|
if (this.props.dropdownInitiallyOpen) {
|
207
207
|
this.setState({openDropdown: true});
|
208
208
|
}
|
209
|
-
}
|
209
|
+
};
|
210
210
|
|
211
211
|
componentWillUnmount(): void {
|
212
|
-
document.removeEventListener(
|
213
|
-
document.removeEventListener(
|
214
|
-
document.addEventListener(
|
212
|
+
document.removeEventListener('mousedown', this.onMouseDown);
|
213
|
+
document.removeEventListener('keydown', this.onKeyDown);
|
214
|
+
document.addEventListener('keydown', this.onPressEsc);
|
215
215
|
}
|
216
216
|
|
217
217
|
componentDidUpdate(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState<T>>): void {
|
@@ -234,9 +234,9 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
234
234
|
|
235
235
|
if (this.props.kind === 'synchronous') {
|
236
236
|
if (
|
237
|
-
|
238
|
-
|
239
|
-
|
237
|
+
prevState.activeTree !== this.state.activeTree ||
|
238
|
+
prevState.filterArr !== this.state.filterArr ||
|
239
|
+
prevState.options !== this.state.options
|
240
240
|
) {
|
241
241
|
this.popperInstance?.update();
|
242
242
|
}
|
@@ -342,8 +342,7 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
342
342
|
this.setState({
|
343
343
|
options: this.state.firstBranchOptions,
|
344
344
|
activeTree: [],
|
345
|
-
buttonTarget:
|
346
|
-
[],
|
345
|
+
buttonTarget: [],
|
347
346
|
openDropdown: false,
|
348
347
|
});
|
349
348
|
}
|
@@ -403,7 +402,7 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
403
402
|
if (this.props.selectBranchWithChildren) {
|
404
403
|
let filteredItems: Array<T> = [];
|
405
404
|
|
406
|
-
option.children.forEach((item: {
|
405
|
+
option.children.forEach((item: {value: T}) => {
|
407
406
|
if (!this.state.value.includes(item.value)) {
|
408
407
|
filteredItems.push(item.value);
|
409
408
|
}
|
@@ -420,8 +419,7 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
420
419
|
let filteredItems: Array<T> = [];
|
421
420
|
|
422
421
|
option.children.forEach((item: ITreeNode<T>) => {
|
423
|
-
if (!this.state.value.includes(item.value)
|
424
|
-
&& !item.children) {
|
422
|
+
if (!this.state.value.includes(item.value) && !item.children) {
|
425
423
|
filteredItems.push(item.value);
|
426
424
|
}
|
427
425
|
});
|
@@ -479,9 +477,11 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
479
477
|
if (this.props.kind === 'synchronous') {
|
480
478
|
let filteredArr = arr.filter((item) => {
|
481
479
|
if (this.state.searchFieldValue) {
|
482
|
-
if (
|
483
|
-
.
|
484
|
-
|
480
|
+
if (
|
481
|
+
this.props
|
482
|
+
.getLabel(item.value)
|
483
|
+
.toLowerCase()
|
484
|
+
.includes(this.state.searchFieldValue.toLowerCase())
|
485
485
|
) {
|
486
486
|
return item.value;
|
487
487
|
} else {
|
@@ -496,8 +496,8 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
496
496
|
return <li className="suggestion-item--nothing-found">Nothing found</li>;
|
497
497
|
} else {
|
498
498
|
return filteredArr.map((option, i) => {
|
499
|
-
let selectedItem = this.state.value.some(
|
500
|
-
this.props.getId(obj) === this.props.getId(option.value),
|
499
|
+
let selectedItem = this.state.value.some(
|
500
|
+
(obj) => this.props.getId(obj) === this.props.getId(option.value),
|
501
501
|
);
|
502
502
|
|
503
503
|
return (
|
@@ -512,9 +512,11 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
512
512
|
getId={this.props.getId}
|
513
513
|
optionTemplate={this.props.optionTemplate}
|
514
514
|
getLabel={this.props.getLabel}
|
515
|
-
onClick={() =>
|
516
|
-
|
517
|
-
|
515
|
+
onClick={() =>
|
516
|
+
this.setState({
|
517
|
+
searchFieldValue: '',
|
518
|
+
})
|
519
|
+
}
|
518
520
|
/>
|
519
521
|
);
|
520
522
|
});
|
@@ -522,36 +524,36 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
522
524
|
} else if (this.props.kind === 'asynchronous') {
|
523
525
|
if (this.state.options.length > 0) {
|
524
526
|
return this.state.options.map((item, i) => {
|
525
|
-
let selectedItem = this.state.value.some(
|
526
|
-
this.props.getId(obj) === this.props.getId(item.value),
|
527
|
+
let selectedItem = this.state.value.some(
|
528
|
+
(obj) => this.props.getId(obj) === this.props.getId(item.value),
|
527
529
|
);
|
528
530
|
|
529
531
|
return (
|
530
532
|
<li
|
531
533
|
key={i}
|
532
|
-
className=
|
534
|
+
className="suggestion-item suggestion-item--multi-select"
|
533
535
|
onClick={(event) => {
|
534
536
|
this.handleValue(event, item);
|
535
537
|
}}
|
536
538
|
>
|
537
539
|
<button className="suggestion-item--btn" data-test-id="option">
|
538
|
-
{this.props.optionTemplate
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
</span>
|
546
|
-
)
|
547
|
-
}
|
540
|
+
{this.props.optionTemplate ? (
|
541
|
+
this.props.optionTemplate(item.value)
|
542
|
+
) : (
|
543
|
+
<span className={selectedItem ? 'suggestion-item--selected' : undefined}>
|
544
|
+
{this.props.getLabel(item.value)}
|
545
|
+
</span>
|
546
|
+
)}
|
548
547
|
</button>
|
549
548
|
</li>
|
550
549
|
);
|
551
550
|
});
|
552
|
-
|
553
551
|
} else {
|
554
|
-
return
|
552
|
+
return (
|
553
|
+
<li className="suggestion-item--nothing-found">
|
554
|
+
{this.props.noResultsFoundMessage ?? 'Nothing found'}
|
555
|
+
</li>
|
556
|
+
);
|
555
557
|
}
|
556
558
|
} else {
|
557
559
|
return;
|
@@ -580,14 +582,14 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
580
582
|
});
|
581
583
|
});
|
582
584
|
|
583
|
-
let selectedButton = this.state.value.some(
|
584
|
-
this.props.getId(obj) === this.props.getId(buttonValue.value),
|
585
|
+
let selectedButton = this.state.value.some(
|
586
|
+
(obj) => this.props.getId(obj) === this.props.getId(buttonValue.value),
|
585
587
|
);
|
586
588
|
|
587
589
|
if (!selectedButton) {
|
588
590
|
return (
|
589
591
|
<button
|
590
|
-
className=
|
592
|
+
className="autocomplete__button autocomplete__button--multi-select"
|
591
593
|
ref={this.categoryButtonRef}
|
592
594
|
onMouseOver={() => this.setState({buttonMouseEvent: true})}
|
593
595
|
onMouseOut={() => this.setState({buttonMouseEvent: false})}
|
@@ -598,9 +600,7 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
598
600
|
);
|
599
601
|
} else {
|
600
602
|
return (
|
601
|
-
<button
|
602
|
-
className='autocomplete__button autocomplete__button--multi-select autocomplete__button--disabled'
|
603
|
-
>
|
603
|
+
<button className="autocomplete__button autocomplete__button--multi-select autocomplete__button--disabled">
|
604
604
|
Category selected
|
605
605
|
</button>
|
606
606
|
);
|
@@ -640,32 +640,25 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
640
640
|
return this.props.valueTemplate(item, Wrapper);
|
641
641
|
}
|
642
642
|
|
643
|
-
const content = this.props.optionTemplate?.(item) ?? (
|
644
|
-
<span>
|
645
|
-
{this.props.getLabel(item)}
|
646
|
-
</span>
|
647
|
-
);
|
643
|
+
const content = this.props.optionTemplate?.(item) ?? <span>{this.props.getLabel(item)}</span>;
|
648
644
|
|
649
|
-
return
|
650
|
-
<Wrapper>
|
651
|
-
{content}
|
652
|
-
</Wrapper>
|
653
|
-
);
|
645
|
+
return <Wrapper>{content}</Wrapper>;
|
654
646
|
}
|
655
647
|
|
656
648
|
render() {
|
657
649
|
if (this.props.preview) {
|
658
650
|
return (
|
659
651
|
<SelectPreview
|
660
|
-
kind={
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
652
|
+
kind={
|
653
|
+
this.props.allowMultiple
|
654
|
+
? {
|
655
|
+
mode: 'multi-select',
|
656
|
+
getBackgroundColor: this.props.getBackgroundColor,
|
657
|
+
}
|
658
|
+
: {
|
659
|
+
mode: 'single-select',
|
660
|
+
getBorderColor: this.props.getBorderColor,
|
661
|
+
}
|
669
662
|
}
|
670
663
|
items={this.state.value}
|
671
664
|
valueTemplate={this.props.valueTemplate}
|
@@ -676,39 +669,35 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
676
669
|
|
677
670
|
const ListWrapper = this.props.sortable
|
678
671
|
? ({children}: {children: React.ReactNode}) => (
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
)}
|
691
|
-
</Droppable>
|
692
|
-
</DragDropContext>
|
693
|
-
)
|
672
|
+
<DragDropContext onDragEnd={this.onDragEnd}>
|
673
|
+
<Droppable droppableId="droppable" direction="horizontal">
|
674
|
+
{(provided, _snapshot) => (
|
675
|
+
<ul className="tags-input__tag-list" ref={provided.innerRef} {...provided.droppableProps}>
|
676
|
+
{children}
|
677
|
+
{provided.placeholder}
|
678
|
+
</ul>
|
679
|
+
)}
|
680
|
+
</Droppable>
|
681
|
+
</DragDropContext>
|
682
|
+
)
|
694
683
|
: ({children}: {children: React.ReactNode}) => <ul className="tags-input__tag-list">{children}</ul>;
|
695
684
|
|
696
685
|
const ItemWrapper = this.props.sortable
|
697
|
-
? ({children, itemId, i}: {children: React.ReactNode
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
686
|
+
? ({children, itemId, i}: {children: React.ReactNode; itemId: string; i: number}) => {
|
687
|
+
return (
|
688
|
+
<Draggable draggableId={itemId} index={i}>
|
689
|
+
{(provided2) => (
|
690
|
+
<div
|
691
|
+
ref={provided2.innerRef}
|
692
|
+
{...provided2.draggableProps}
|
693
|
+
{...provided2.dragHandleProps}
|
694
|
+
>
|
695
|
+
{children}
|
696
|
+
</div>
|
697
|
+
)}
|
698
|
+
</Draggable>
|
699
|
+
);
|
700
|
+
}
|
712
701
|
: ({children}: {children: React.ReactNode}) => <React.Fragment>{children}</React.Fragment>;
|
713
702
|
|
714
703
|
return (
|
@@ -730,20 +719,18 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
730
719
|
<div
|
731
720
|
className={`
|
732
721
|
tags-input sd-input__input
|
733
|
-
tags-input--${this.props.allowMultiple ? 'multi-select' : 'single-select'}`
|
734
|
-
}
|
722
|
+
tags-input--${this.props.allowMultiple ? 'multi-select' : 'single-select'}`}
|
735
723
|
ref={this.treeSelectRef}
|
736
724
|
data-test-id={this.props.allowMultiple ? undefined : 'open-popover'}
|
737
725
|
>
|
738
|
-
{this.props.allowMultiple
|
739
|
-
|
740
|
-
{this.props.readOnly
|
741
|
-
|
726
|
+
{this.props.allowMultiple ? (
|
727
|
+
<div className="tags-input__tags">
|
728
|
+
{this.props.readOnly || (
|
729
|
+
<button
|
742
730
|
ref={this.openDropdownRef}
|
743
731
|
className={`
|
744
732
|
tags-input__add-button
|
745
|
-
${this.props.disabled ? 'tags-input__add-button--disabled' : ''}`
|
746
|
-
}
|
733
|
+
${this.props.disabled ? 'tags-input__add-button--disabled' : ''}`}
|
747
734
|
onClick={(e) => {
|
748
735
|
e.stopPropagation();
|
749
736
|
|
@@ -760,12 +747,14 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
760
747
|
>
|
761
748
|
<i className="icon-plus-large"></i>
|
762
749
|
</button>
|
763
|
-
}
|
750
|
+
)}
|
764
751
|
|
765
752
|
<ListWrapper>
|
766
753
|
{this.state.value.map((item, i: number) => {
|
767
|
-
const Wrapper: React.ComponentType<{backgroundColor?: string}>
|
768
|
-
|
754
|
+
const Wrapper: React.ComponentType<{backgroundColor?: string}> = ({
|
755
|
+
backgroundColor,
|
756
|
+
children,
|
757
|
+
}) => (
|
769
758
|
<TreeSelectPill
|
770
759
|
item={item}
|
771
760
|
readOnly={this.props.readOnly}
|
@@ -791,63 +780,66 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
791
780
|
</ListWrapper>
|
792
781
|
|
793
782
|
{this.state.value.length > 0
|
794
|
-
?
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
783
|
+
? this.props.readOnly ||
|
784
|
+
this.props.disabled || (
|
785
|
+
<button
|
786
|
+
className="tags-input__remove-value"
|
787
|
+
style={{position: 'relative', bottom: '2px'}}
|
788
|
+
onClick={(e) => {
|
789
|
+
e.stopPropagation();
|
790
|
+
this.setState({value: []});
|
791
|
+
}}
|
792
|
+
>
|
793
|
+
<Icon name="remove-sign"></Icon>
|
794
|
+
</button>
|
795
|
+
)
|
796
|
+
: null}
|
807
797
|
</div>
|
808
|
-
|
809
|
-
|
810
|
-
|
798
|
+
) : (
|
799
|
+
<div className="tags-input__tags">
|
800
|
+
{this.props.readOnly || (
|
801
|
+
<button
|
811
802
|
className="tags-input__overlay-button"
|
812
803
|
ref={this.openDropdownRef}
|
813
804
|
onClick={() => {
|
814
805
|
this.setState({openDropdown: !this.state.openDropdown});
|
815
806
|
}}
|
816
807
|
/>
|
817
|
-
}
|
808
|
+
)}
|
818
809
|
|
819
|
-
{this.state.value.length < 1
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
</span>
|
810
|
+
{this.state.value.length < 1 && (
|
811
|
+
<span
|
812
|
+
className={
|
813
|
+
'tags-input__single-item' +
|
814
|
+
(this.props.readOnly ? ' tags-input__tag-item--readonly' : '')
|
815
|
+
}
|
816
|
+
>
|
817
|
+
<span className="tags-input__placeholder">{this.props.placeholder}</span>
|
828
818
|
</span>
|
829
|
-
}
|
819
|
+
)}
|
830
820
|
|
831
821
|
{this.state.value.map((item, i: number) => {
|
832
|
-
const Wrapper: React.ComponentType<{
|
833
|
-
|
822
|
+
const Wrapper: React.ComponentType<{
|
823
|
+
backgroundColor?: string;
|
824
|
+
borderColor?: string;
|
825
|
+
}> = ({backgroundColor, borderColor, children}) => (
|
834
826
|
<span
|
835
827
|
className={
|
836
|
-
'tags-input__single-item'
|
837
|
-
|
828
|
+
'tags-input__single-item' +
|
829
|
+
(this.props.readOnly ? ' tags-input__tag-item--readonly' : '')
|
838
830
|
}
|
839
831
|
onClick={() => !this.props.readOnly && this.removeClick(i)}
|
840
832
|
>
|
841
|
-
{this.props.getBorderColor
|
842
|
-
|
833
|
+
{this.props.getBorderColor && (
|
834
|
+
<div
|
843
835
|
className="item-border item-border-selected"
|
844
|
-
style={
|
845
|
-
|
846
|
-
|
836
|
+
style={
|
837
|
+
borderColor
|
838
|
+
? {backgroundColor: borderColor}
|
839
|
+
: {backgroundColor: this.props.getBorderColor(item)}
|
847
840
|
}
|
848
|
-
>
|
849
|
-
|
850
|
-
}
|
841
|
+
></div>
|
842
|
+
)}
|
851
843
|
|
852
844
|
<span
|
853
845
|
className="tags-input__helper-box"
|
@@ -861,33 +853,26 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
861
853
|
{children}
|
862
854
|
</span>
|
863
855
|
|
864
|
-
{
|
865
|
-
|
866
|
-
<
|
867
|
-
|
868
|
-
|
869
|
-
>
|
870
|
-
<Icon name='remove-sign'></Icon>
|
871
|
-
</span>
|
872
|
-
)
|
873
|
-
}
|
856
|
+
{this.props.readOnly !== true && this.props.required !== true && (
|
857
|
+
<span className="tags-input__remove-button" data-test-id="clear-value">
|
858
|
+
<Icon name="remove-sign"></Icon>
|
859
|
+
</span>
|
860
|
+
)}
|
874
861
|
</span>
|
875
862
|
</span>
|
876
863
|
);
|
877
864
|
|
878
|
-
return <React.Fragment key={i}>
|
879
|
-
{this.renderItemContent(item, Wrapper)}
|
880
|
-
</React.Fragment>;
|
865
|
+
return <React.Fragment key={i}>{this.renderItemContent(item, Wrapper)}</React.Fragment>;
|
881
866
|
})}
|
882
867
|
</div>
|
883
|
-
}
|
868
|
+
)}
|
884
869
|
</div>
|
885
870
|
|
886
871
|
<WithPortal active={this.state.openDropdown} data-test-id="tree-select-popover">
|
887
872
|
<div
|
888
873
|
className={
|
889
|
-
|
890
|
-
|
874
|
+
'autocomplete autocomplete--multi-select' +
|
875
|
+
(this.props.width === 'medium' ? ' autocomplete--fixed-width' : '')
|
891
876
|
}
|
892
877
|
style={{
|
893
878
|
zIndex: this.zIndex,
|
@@ -896,12 +881,12 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
896
881
|
}}
|
897
882
|
ref={this.dropdownRef}
|
898
883
|
>
|
899
|
-
<div className=
|
884
|
+
<div className="autocomplete__header">
|
900
885
|
<div className="autocomplete__icon">
|
901
886
|
<Icon name="search" className="search"></Icon>
|
902
887
|
</div>
|
903
888
|
|
904
|
-
<div className=
|
889
|
+
<div className="autocomplete__filter">
|
905
890
|
<input
|
906
891
|
className="autocomplete__input"
|
907
892
|
type="text"
|
@@ -933,8 +918,8 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
933
918
|
</div>
|
934
919
|
</div>
|
935
920
|
|
936
|
-
{
|
937
|
-
|
921
|
+
{this.state.activeTree.length > 0 && this.state.buttonValue != null && (
|
922
|
+
<div className="autocomplete__category-header">
|
938
923
|
<div
|
939
924
|
className="autocomplete__icon"
|
940
925
|
onClick={() => {
|
@@ -944,75 +929,73 @@ export class TreeSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
|
944
929
|
<Icon name="arrow-left" className="arrow-left"></Icon>
|
945
930
|
</div>
|
946
931
|
|
947
|
-
<div className=
|
948
|
-
<button className=
|
932
|
+
<div className="autocomplete__filter">
|
933
|
+
<button className="autocomplete__category-title">
|
949
934
|
{this.props.optionTemplate
|
950
935
|
? this.props.optionTemplate(this.state.buttonValue.value)
|
951
|
-
: this.props.getLabel(this.state.buttonValue.value)
|
952
|
-
}
|
936
|
+
: this.props.getLabel(this.state.buttonValue.value)}
|
953
937
|
</button>
|
954
938
|
|
955
|
-
{this.props.selectBranchWithChildren
|
956
|
-
&& this.branchButton(this.state.buttonValue)
|
957
|
-
}
|
939
|
+
{this.props.selectBranchWithChildren && this.branchButton(this.state.buttonValue)}
|
958
940
|
</div>
|
959
941
|
</div>
|
960
|
-
}
|
942
|
+
)}
|
961
943
|
|
962
|
-
{this.state.loading
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
944
|
+
{this.state.loading ? (
|
945
|
+
<ul className="suggestion-list--loader">
|
946
|
+
<Loader overlay={true}></Loader>
|
947
|
+
</ul>
|
948
|
+
) : this.state.searchFieldValue === '' ? (
|
949
|
+
this.props.getOptions ? (
|
950
|
+
<ul
|
951
|
+
className="suggestion-list suggestion-list--multi-select"
|
952
|
+
ref={this.ref}
|
953
|
+
data-test-id="options"
|
954
|
+
role="tree"
|
955
|
+
aria-multiselectable={this.props.allowMultiple}
|
956
|
+
>
|
957
|
+
{this.state.options.map((option, i: React.Key | undefined) => {
|
958
|
+
let selectedItem = this.state.value.some(
|
959
|
+
(obj) => this.props.getId(obj) === this.props.getId(option.value),
|
960
|
+
);
|
961
|
+
|
962
|
+
return (
|
963
|
+
<TreeSelectItem
|
964
|
+
key={i}
|
965
|
+
option={option}
|
966
|
+
handleTree={this.handleTree}
|
967
|
+
selectedItem={selectedItem}
|
968
|
+
allowMultiple={this.props.allowMultiple}
|
969
|
+
parentCategory={
|
970
|
+
this.state.buttonValue == null
|
986
971
|
? undefined
|
987
972
|
: this.props.getLabel(this.state.buttonValue.value)
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
973
|
+
}
|
974
|
+
getBorderColor={this.props.getBorderColor}
|
975
|
+
getBackgroundColor={this.props.getBackgroundColor}
|
976
|
+
getId={this.props.getId}
|
977
|
+
getLabel={this.props.getLabel}
|
978
|
+
optionTemplate={this.props.optionTemplate}
|
979
|
+
onKeyDown={() =>
|
980
|
+
this.setState({
|
995
981
|
buttonTarget: [
|
996
982
|
...this.state.buttonTarget,
|
997
983
|
this.props.getId(option.value),
|
998
984
|
],
|
999
|
-
})
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
: null
|
1005
|
-
: <ul
|
1006
|
-
className="suggestion-list suggestion-list--multi-select"
|
1007
|
-
ref={this.ref}
|
1008
|
-
>
|
1009
|
-
{this.filteredItem(
|
1010
|
-
this.props.singleLevelSearch
|
1011
|
-
? this.state.options
|
1012
|
-
: this.state.filterArr,
|
1013
|
-
)}
|
985
|
+
})
|
986
|
+
}
|
987
|
+
/>
|
988
|
+
);
|
989
|
+
})}
|
1014
990
|
</ul>
|
1015
|
-
|
991
|
+
) : null
|
992
|
+
) : (
|
993
|
+
<ul className="suggestion-list suggestion-list--multi-select" ref={this.ref}>
|
994
|
+
{this.filteredItem(
|
995
|
+
this.props.singleLevelSearch ? this.state.options : this.state.filterArr,
|
996
|
+
)}
|
997
|
+
</ul>
|
998
|
+
)}
|
1016
999
|
</div>
|
1017
1000
|
</WithPortal>
|
1018
1001
|
</InputWrapper>
|