@openedx/paragon 23.14.2 → 23.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ActionRow/index.d.ts +18 -0
- package/dist/ActionRow/index.js +6 -24
- package/dist/ActionRow/index.js.map +1 -1
- package/dist/Alert/index.js +21 -24
- package/dist/Alert/index.js.map +1 -1
- package/dist/Annotation/index.d.ts +13 -0
- package/dist/Annotation/index.js +11 -30
- package/dist/Annotation/index.js.map +1 -1
- package/dist/Avatar/index.d.ts +11 -0
- package/dist/Avatar/index.js +7 -21
- package/dist/Avatar/index.js.map +1 -1
- package/dist/AvatarButton/index.d.ts +17 -0
- package/dist/AvatarButton/index.js +11 -33
- package/dist/AvatarButton/index.js.map +1 -1
- package/dist/Breadcrumb/BreadcrumbLink.js +5 -6
- package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
- package/dist/Breadcrumb/index.js +11 -12
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Bubble/index.js +15 -18
- package/dist/Bubble/index.js.map +1 -1
- package/dist/Button/index.d.ts +42 -7
- package/dist/Button/index.js +43 -115
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/BaseCard.js +11 -12
- package/dist/Card/BaseCard.js.map +1 -1
- package/dist/Card/CardBody.js +9 -12
- package/dist/Card/CardBody.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarousel.js +13 -14
- package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselHeader.js +4 -5
- package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselItems.js +3 -4
- package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselProvider.js +7 -8
- package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselSubtitle.js +5 -6
- package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
- package/dist/Card/CardCarousel/CardCarouselTitle.js +5 -6
- package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
- package/dist/Card/CardCarousel/messages.d.ts +13 -0
- package/dist/Card/CardCarousel/messages.js +4 -5
- package/dist/Card/CardCarousel/messages.js.map +1 -0
- package/dist/Card/CardContext.js +6 -7
- package/dist/Card/CardContext.js.map +1 -1
- package/dist/Card/CardDeck.js +9 -10
- package/dist/Card/CardDeck.js.map +1 -1
- package/dist/Card/CardDivider.js +8 -11
- package/dist/Card/CardDivider.js.map +1 -1
- package/dist/Card/CardFooter.js +9 -10
- package/dist/Card/CardFooter.js.map +1 -1
- package/dist/Card/CardGrid.js +6 -7
- package/dist/Card/CardGrid.js.map +1 -1
- package/dist/Card/CardHeader.js +9 -10
- package/dist/Card/CardHeader.js.map +1 -1
- package/dist/Card/CardImageCap.js +15 -16
- package/dist/Card/CardImageCap.js.map +1 -1
- package/dist/Card/CardSection.js +9 -10
- package/dist/Card/CardSection.js.map +1 -1
- package/dist/Card/CardStatus.js +9 -10
- package/dist/Card/CardStatus.js.map +1 -1
- package/dist/Card/index.js +9 -10
- package/dist/Card/index.js.map +1 -1
- package/dist/Chip/ChipIcon.js +8 -9
- package/dist/Chip/ChipIcon.js.map +1 -1
- package/dist/Chip/index.d.ts +22 -0
- package/dist/Chip/index.js +15 -70
- package/dist/Chip/index.js.map +1 -1
- package/dist/ChipCarousel/index.js +49 -53
- package/dist/ChipCarousel/index.js.map +1 -1
- package/dist/ChipCarousel/messages.d.ts +13 -0
- package/dist/ChipCarousel/messages.js +4 -5
- package/dist/ChipCarousel/messages.js.map +1 -0
- package/dist/CloseButton/index.js.map +1 -1
- package/dist/Collapse/index.js.map +1 -1
- package/dist/Collapsible/CollapsibleBody.js +6 -7
- package/dist/Collapsible/CollapsibleBody.js.map +1 -1
- package/dist/Collapsible/CollapsibleTrigger.js +9 -10
- package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
- package/dist/Collapsible/CollapsibleVisible.js +5 -6
- package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
- package/dist/ColorPicker/index.js +6 -7
- package/dist/ColorPicker/index.js.map +1 -1
- package/dist/Container/index.js +9 -12
- package/dist/Container/index.js.map +1 -1
- package/dist/DataTable/BulkActions.js +4 -5
- package/dist/DataTable/BulkActions.js.map +1 -1
- package/dist/DataTable/CardView.js +16 -18
- package/dist/DataTable/CardView.js.map +1 -1
- package/dist/DataTable/CollapsibleButtonGroup.js +5 -6
- package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
- package/dist/DataTable/DataTableLayout.js +5 -6
- package/dist/DataTable/DataTableLayout.js.map +1 -1
- package/dist/DataTable/EmptyTable.js +5 -6
- package/dist/DataTable/EmptyTable.js.map +1 -1
- package/dist/DataTable/ExpandAll.js +4 -5
- package/dist/DataTable/ExpandAll.js.map +1 -1
- package/dist/DataTable/ExpandRow.js +3 -4
- package/dist/DataTable/ExpandRow.js.map +1 -1
- package/dist/DataTable/FilterStatus.js +8 -9
- package/dist/DataTable/FilterStatus.js.map +1 -1
- package/dist/DataTable/RowStatus.js +4 -5
- package/dist/DataTable/RowStatus.js.map +1 -1
- package/dist/DataTable/SidebarFilters.js +3 -4
- package/dist/DataTable/SidebarFilters.js.map +1 -1
- package/dist/DataTable/Table.js +3 -4
- package/dist/DataTable/Table.js.map +1 -1
- package/dist/DataTable/TableActions.js +3 -4
- package/dist/DataTable/TableActions.js.map +1 -1
- package/dist/DataTable/TableCell.js +5 -6
- package/dist/DataTable/TableCell.js.map +1 -1
- package/dist/DataTable/TableControlBar.js +3 -4
- package/dist/DataTable/TableControlBar.js.map +1 -1
- package/dist/DataTable/TableFilters.js +6 -7
- package/dist/DataTable/TableFilters.js.map +1 -1
- package/dist/DataTable/TableFooter.js +4 -5
- package/dist/DataTable/TableFooter.js.map +1 -1
- package/dist/DataTable/TableHeaderCell.js +13 -15
- package/dist/DataTable/TableHeaderCell.js.map +1 -1
- package/dist/DataTable/TableHeaderRow.js +3 -4
- package/dist/DataTable/TableHeaderRow.js.map +1 -1
- package/dist/DataTable/TableRow.js +3 -4
- package/dist/DataTable/TableRow.js.map +1 -1
- package/dist/DataTable/filters/CheckboxFilter.js +25 -29
- package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
- package/dist/DataTable/filters/DropdownFilter.js +16 -20
- package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/MultiSelectDropdownFilter.js +25 -29
- package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/TextFilter.js +8 -9
- package/dist/DataTable/filters/TextFilter.js.map +1 -1
- package/dist/DataTable/hooks.js +11 -13
- package/dist/DataTable/hooks.js.map +1 -1
- package/dist/DataTable/index.js +35 -36
- package/dist/DataTable/index.js.map +1 -1
- package/dist/DataTable/messages.d.ts +13 -0
- package/dist/DataTable/messages.js +4 -5
- package/dist/DataTable/messages.js.map +1 -0
- package/dist/DataTable/selection/BaseSelectionStatus.js +11 -12
- package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelect.js +3 -4
- package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelectHeader.js +3 -4
- package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
- package/dist/DataTable/selection/ControlledSelectionStatus.js +4 -5
- package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
- package/dist/DataTable/selection/SelectionStatus.js +4 -5
- package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
- package/dist/DataTable/utils/getVisibleColumns.js +9 -13
- package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
- package/dist/Dropdown/index.js +17 -20
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Dropzone/DefaultContent.js +5 -6
- package/dist/Dropzone/DefaultContent.js.map +1 -1
- package/dist/Dropzone/DragError.js +3 -4
- package/dist/Dropzone/DragError.js.map +1 -1
- package/dist/Dropzone/GenericError.js +4 -5
- package/dist/Dropzone/GenericError.js.map +1 -1
- package/dist/Dropzone/UploadProgress.js +6 -7
- package/dist/Dropzone/UploadProgress.js.map +1 -1
- package/dist/Dropzone/index.js +14 -15
- package/dist/Dropzone/index.js.map +1 -1
- package/dist/Dropzone/messages.d.ts +53 -0
- package/dist/Dropzone/messages.js +12 -13
- package/dist/Dropzone/messages.js.map +1 -0
- package/dist/Fade/index.js.map +1 -1
- package/dist/Form/FormAutosuggest.js +18 -20
- package/dist/Form/FormAutosuggest.js.map +1 -1
- package/dist/Form/FormAutosuggestOption.js +6 -7
- package/dist/Form/FormAutosuggestOption.js.map +1 -1
- package/dist/Form/FormCheckbox.js +16 -18
- package/dist/Form/FormCheckbox.js.map +1 -1
- package/dist/Form/FormCheckboxSet.js +11 -12
- package/dist/Form/FormCheckboxSet.js.map +1 -1
- package/dist/Form/FormCheckboxSetContext.js +9 -10
- package/dist/Form/FormCheckboxSetContext.js.map +1 -1
- package/dist/Form/FormControl.js +12 -13
- package/dist/Form/FormControl.js.map +1 -1
- package/dist/Form/FormControlDecorator.js +4 -5
- package/dist/Form/FormControlDecorator.js.map +1 -1
- package/dist/Form/FormControlDecoratorGroup.js +8 -9
- package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
- package/dist/Form/FormControlFeedback.js +4 -5
- package/dist/Form/FormControlFeedback.js.map +1 -1
- package/dist/Form/FormControlFloatingLabel.js +3 -4
- package/dist/Form/FormControlFloatingLabel.js.map +1 -1
- package/dist/Form/FormControlSet.js +7 -8
- package/dist/Form/FormControlSet.js.map +1 -1
- package/dist/Form/FormGroup.js +9 -10
- package/dist/Form/FormGroup.js.map +1 -1
- package/dist/Form/FormGroupContext.js +7 -8
- package/dist/Form/FormGroupContext.js.map +1 -1
- package/dist/Form/FormLabel.d.ts +2 -11
- package/dist/Form/FormLabel.js +5 -15
- package/dist/Form/FormLabel.js.map +1 -1
- package/dist/Form/FormRadio.js +28 -31
- package/dist/Form/FormRadio.js.map +1 -1
- package/dist/Form/FormRadioSet.js +11 -12
- package/dist/Form/FormRadioSet.js.map +1 -1
- package/dist/Form/FormRadioSetContext.js +9 -10
- package/dist/Form/FormRadioSetContext.js.map +1 -1
- package/dist/Form/FormSwitch.js +25 -29
- package/dist/Form/FormSwitch.js.map +1 -1
- package/dist/Form/FormText.js +16 -19
- package/dist/Form/FormText.js.map +1 -1
- package/dist/Form/fieldUtils.js +11 -22
- package/dist/Form/fieldUtils.js.map +1 -1
- package/dist/Form/useCheckboxSetValues.js +1 -2
- package/dist/Form/useCheckboxSetValues.js.map +1 -1
- package/dist/Hyperlink/index.js +17 -21
- package/dist/Hyperlink/index.js.map +1 -1
- package/dist/Icon/index.js +10 -11
- package/dist/Icon/index.js.map +1 -1
- package/dist/IconButton/index.d.ts +8 -304
- package/dist/IconButton/index.js +21 -84
- package/dist/IconButton/index.js.map +1 -1
- package/dist/IconButtonToggle/index.js +5 -6
- package/dist/IconButtonToggle/index.js.map +1 -1
- package/dist/Image/index.js.map +1 -1
- package/dist/Layout/index.js +4 -5
- package/dist/Layout/index.js.map +1 -1
- package/dist/Media/index.js.map +1 -1
- package/dist/Menu/MenuItem.js +8 -9
- package/dist/Menu/MenuItem.js.map +1 -1
- package/dist/Menu/SelectMenu.js +8 -9
- package/dist/Menu/SelectMenu.js.map +1 -1
- package/dist/Menu/index.js +6 -7
- package/dist/Menu/index.js.map +1 -1
- package/dist/Modal/AlertModal.js +6 -7
- package/dist/Modal/AlertModal.js.map +1 -1
- package/dist/Modal/FullscreenModal.js +7 -8
- package/dist/Modal/FullscreenModal.js.map +1 -1
- package/dist/Modal/MarketingModal.js +9 -10
- package/dist/Modal/MarketingModal.js.map +1 -1
- package/dist/Modal/ModalCloseButton.js +5 -6
- package/dist/Modal/ModalCloseButton.js.map +1 -1
- package/dist/Modal/ModalContext.js +6 -7
- package/dist/Modal/ModalContext.js.map +1 -1
- package/dist/Modal/ModalDialog.js +16 -17
- package/dist/Modal/ModalDialog.js.map +1 -1
- package/dist/Modal/ModalDialogBody.js +5 -6
- package/dist/Modal/ModalDialogBody.js.map +1 -1
- package/dist/Modal/ModalDialogFooter.js +5 -6
- package/dist/Modal/ModalDialogFooter.js.map +1 -1
- package/dist/Modal/ModalDialogHeader.js +9 -12
- package/dist/Modal/ModalDialogHeader.js.map +1 -1
- package/dist/Modal/ModalDialogHero.js +5 -6
- package/dist/Modal/ModalDialogHero.js.map +1 -1
- package/dist/Modal/ModalDialogHeroBackground.js +6 -7
- package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
- package/dist/Modal/ModalDialogHeroContent.js +5 -6
- package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
- package/dist/Modal/ModalDialogTitle.js +5 -6
- package/dist/Modal/ModalDialogTitle.js.map +1 -1
- package/dist/Modal/ModalLayer.js +13 -16
- package/dist/Modal/ModalLayer.js.map +1 -1
- package/dist/Modal/ModalPopup.js +11 -12
- package/dist/Modal/ModalPopup.js.map +1 -1
- package/dist/Modal/PopperElement.js +7 -8
- package/dist/Modal/PopperElement.js.map +1 -1
- package/dist/Modal/StandardModal.js +7 -8
- package/dist/Modal/StandardModal.js.map +1 -1
- package/dist/OverflowScroll/OverflowScroll.js +12 -13
- package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
- package/dist/OverflowScroll/OverflowScrollItems.js +3 -4
- package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
- package/dist/Overlay/index.d.ts +2 -2
- package/dist/PageBanner/index.js +9 -10
- package/dist/PageBanner/index.js.map +1 -1
- package/dist/Pagination/PaginationContext.js +12 -13
- package/dist/Pagination/PaginationContext.js.map +1 -1
- package/dist/Pagination/subcomponents/PageButton.js +3 -4
- package/dist/Pagination/subcomponents/PageButton.js.map +1 -1
- package/dist/Popover/index.js +11 -14
- package/dist/Popover/index.js.map +1 -1
- package/dist/ProductTour/Checkpoint.js +12 -13
- package/dist/ProductTour/Checkpoint.js.map +1 -1
- package/dist/ProductTour/CheckpointActionRow.js +10 -11
- package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
- package/dist/ProductTour/CheckpointBody.js +3 -4
- package/dist/ProductTour/CheckpointBody.js.map +1 -1
- package/dist/ProductTour/CheckpointHeader.js +7 -8
- package/dist/ProductTour/CheckpointHeader.js.map +1 -1
- package/dist/ProductTour/CheckpointTitle.js +6 -9
- package/dist/ProductTour/CheckpointTitle.js.map +1 -1
- package/dist/ProductTour/index.js +3 -4
- package/dist/ProductTour/index.js.map +1 -1
- package/dist/ProductTour/messages.d.ts +23 -0
- package/dist/ProductTour/messages.js +6 -7
- package/dist/ProductTour/messages.js.map +1 -0
- package/dist/ProgressBar/index.js +11 -12
- package/dist/ProgressBar/index.js.map +1 -1
- package/dist/ResponsiveEmbed/index.js.map +1 -1
- package/dist/Scrollable/index.js +4 -5
- package/dist/Scrollable/index.js.map +1 -1
- package/dist/SearchField/SearchFieldLabel.js +4 -5
- package/dist/SearchField/SearchFieldLabel.js.map +1 -1
- package/dist/SelectableBox/SelectableBoxSet.js +13 -14
- package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
- package/dist/SelectableBox/index.js +14 -15
- package/dist/SelectableBox/index.js.map +1 -1
- package/dist/Skeleton/index.js.map +1 -1
- package/dist/Spinner/index.js +5 -6
- package/dist/Spinner/index.js.map +1 -1
- package/dist/Stack/index.js +12 -15
- package/dist/Stack/index.js.map +1 -1
- package/dist/StatefulButton/index.js +9 -10
- package/dist/StatefulButton/index.js.map +1 -1
- package/dist/Stepper/Stepper.js +4 -5
- package/dist/Stepper/Stepper.js.map +1 -1
- package/dist/Stepper/StepperActionRow.js +6 -7
- package/dist/Stepper/StepperActionRow.js.map +1 -1
- package/dist/Stepper/StepperContext.js +4 -5
- package/dist/Stepper/StepperContext.js.map +1 -1
- package/dist/Stepper/StepperHeader.js +23 -31
- package/dist/Stepper/StepperHeader.js.map +1 -1
- package/dist/Stepper/StepperHeaderStep.js +8 -9
- package/dist/Stepper/StepperHeaderStep.js.map +1 -1
- package/dist/Stepper/StepperStep.js +10 -11
- package/dist/Stepper/StepperStep.js.map +1 -1
- package/dist/Sticky/index.js +8 -12
- package/dist/Sticky/index.js.map +1 -1
- package/dist/Tabs/index.js +8 -9
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Toast/ToastContainer.js +3 -4
- package/dist/Toast/ToastContainer.js.map +1 -1
- package/dist/Toast/index.d.ts +20 -41
- package/dist/Toast/index.js +11 -48
- package/dist/Toast/index.js.map +1 -1
- package/dist/ToggleButton/index.js.map +1 -1
- package/dist/Tooltip/index.js +11 -14
- package/dist/Tooltip/index.js.map +1 -1
- package/dist/Truncate/index.js +9 -10
- package/dist/Truncate/index.js.map +1 -1
- package/dist/asInput/index.js +9 -13
- package/dist/asInput/index.js.map +1 -1
- package/dist/hooks/useArrowKeyNavigationHook.js +17 -21
- package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -1
- package/dist/hooks/useIsVisibleHook.js +4 -6
- package/dist/hooks/useIsVisibleHook.js.map +1 -1
- package/dist/hooks/useToggleHook.js +1 -3
- package/dist/hooks/useToggleHook.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/utils/newId.js +1 -2
- package/dist/utils/newId.js.map +1 -1
- package/package.json +1 -1
- package/src/ActionRow/{index.jsx → index.tsx} +14 -22
- package/src/Annotation/{index.jsx → index.tsx} +15 -22
- package/src/Avatar/{index.jsx → index.tsx} +13 -19
- package/src/AvatarButton/{index.jsx → index.tsx} +23 -31
- package/src/Button/index.tsx +68 -93
- package/src/Chip/index.tsx +26 -59
- package/src/CloseButton/index.tsx +1 -0
- package/src/Collapse/index.tsx +1 -0
- package/src/Fade/index.tsx +1 -0
- package/src/Form/FormLabel.tsx +2 -10
- package/src/IconButton/index.tsx +17 -81
- package/src/Image/index.tsx +2 -0
- package/src/Media/index.tsx +1 -0
- package/src/Modal/modal-popup.mdx +1 -1
- package/src/ResponsiveEmbed/index.tsx +1 -0
- package/src/Skeleton/index.tsx +1 -0
- package/src/Toast/index.tsx +21 -40
- package/src/ToggleButton/index.tsx +2 -0
- package/src/index.ts +4 -8
- /package/{src/CloseButton/index.jsx → dist/CloseButton/index.d.ts} +0 -0
- /package/{src/Collapse/index.jsx → dist/Collapse/index.d.ts} +0 -0
- /package/{src/Fade/index.jsx → dist/Fade/index.d.ts} +0 -0
- /package/{src/Image/index.jsx → dist/Image/index.d.ts} +0 -0
- /package/{src/Media/index.jsx → dist/Media/index.d.ts} +0 -0
- /package/{src/ResponsiveEmbed/index.jsx → dist/ResponsiveEmbed/index.d.ts} +0 -0
- /package/{src/Skeleton/index.jsx → dist/Skeleton/index.d.ts} +0 -0
- /package/{src/ToggleButton/index.jsx → dist/ToggleButton/index.d.ts} +0 -0
- /package/src/Card/CardCarousel/{messages.js → messages.ts} +0 -0
- /package/src/ChipCarousel/{messages.js → messages.ts} +0 -0
- /package/src/DataTable/{messages.js → messages.ts} +0 -0
- /package/src/Dropzone/{messages.js → messages.ts} +0 -0
- /package/src/ProductTour/{messages.js → messages.ts} +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
2
|
import ReactDOM from 'react-dom';
|
|
3
3
|
const TOAST_ROOT_ID = 'toast-root';
|
|
4
|
-
function ToastContainer(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} = _ref;
|
|
4
|
+
function ToastContainer({
|
|
5
|
+
children
|
|
6
|
+
}) {
|
|
8
7
|
const [rootElement, setRootElement] = useState(null);
|
|
9
8
|
useEffect(() => {
|
|
10
9
|
if (typeof document !== 'undefined') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastContainer.js","names":["useEffect","useState","ReactDOM","TOAST_ROOT_ID","ToastContainer","
|
|
1
|
+
{"version":3,"file":"ToastContainer.js","names":["useEffect","useState","ReactDOM","TOAST_ROOT_ID","ToastContainer","children","rootElement","setRootElement","document","existingElement","getElementById","createElement","id","className","body","appendChild","createPortal"],"sources":["../../src/Toast/ToastContainer.tsx"],"sourcesContent":["import { ReactNode, useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface ToastContainerProps {\n children: ReactNode;\n}\n\nconst TOAST_ROOT_ID = 'toast-root';\n\nfunction ToastContainer({ children }: ToastContainerProps) {\n const [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (typeof document !== 'undefined') {\n let existingElement = document.getElementById(TOAST_ROOT_ID);\n\n if (!existingElement) {\n existingElement = document.createElement('div');\n existingElement.id = TOAST_ROOT_ID;\n existingElement.className = 'toast-container';\n document.body.appendChild(existingElement);\n }\n setRootElement(existingElement);\n }\n }, []);\n\n return rootElement ? ReactDOM.createPortal(children, rootElement) : null;\n}\n\nexport default ToastContainer;\n"],"mappings":"AAAA,SAAoBA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACtD,OAAOC,QAAQ,MAAM,WAAW;AAMhC,MAAMC,aAAa,GAAG,YAAY;AAElC,SAASC,cAAcA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACzD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGN,QAAQ,CAAqB,IAAI,CAAC;EAExED,SAAS,CAAC,MAAM;IACd,IAAI,OAAOQ,QAAQ,KAAK,WAAW,EAAE;MACnC,IAAIC,eAAe,GAAGD,QAAQ,CAACE,cAAc,CAACP,aAAa,CAAC;MAE5D,IAAI,CAACM,eAAe,EAAE;QACpBA,eAAe,GAAGD,QAAQ,CAACG,aAAa,CAAC,KAAK,CAAC;QAC/CF,eAAe,CAACG,EAAE,GAAGT,aAAa;QAClCM,eAAe,CAACI,SAAS,GAAG,iBAAiB;QAC7CL,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACN,eAAe,CAAC;MAC5C;MACAF,cAAc,CAACE,eAAe,CAAC;IACjC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOH,WAAW,gBAAGJ,QAAQ,CAACc,YAAY,CAACX,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,eAAeF,cAAc","ignoreList":[]}
|
package/dist/Toast/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
export declare const TOAST_CLOSE_LABEL_TEXT = "Close";
|
|
4
3
|
export declare const TOAST_DELAY = 5000;
|
|
5
4
|
interface ToastAction {
|
|
@@ -8,52 +7,32 @@ interface ToastAction {
|
|
|
8
7
|
onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
|
|
9
8
|
}
|
|
10
9
|
interface ToastProps {
|
|
10
|
+
/** A string or an element that is rendered inside the main body of the `Toast`. */
|
|
11
11
|
children: string;
|
|
12
|
+
/**
|
|
13
|
+
* A function that is called on close. It can be used to perform
|
|
14
|
+
* actions upon closing of the `Toast`, such as setting the "show"
|
|
15
|
+
* element to false.
|
|
16
|
+
* */
|
|
12
17
|
onClose: () => void;
|
|
18
|
+
/** Boolean used to control whether the `Toast` shows. */
|
|
13
19
|
show: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Fields used to build optional action button.
|
|
22
|
+
* `label` is a string rendered inside the button.
|
|
23
|
+
* `href` is a link that will render the action button as an anchor tag.
|
|
24
|
+
* `onClick` is a function that is called when the button is clicked.
|
|
25
|
+
* The full type definition can be seen [here](https://github.com/openedx/paragon/blob/release-23.x/src/Toast/index.tsx#L16)
|
|
26
|
+
*/
|
|
14
27
|
action?: ToastAction;
|
|
28
|
+
/**
|
|
29
|
+
* Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
|
|
30
|
+
*/
|
|
15
31
|
closeLabel?: string;
|
|
32
|
+
/** Time in milliseconds for which the `Toast` will display. */
|
|
16
33
|
delay?: number;
|
|
34
|
+
/** Class names for the `BaseToast` component. */
|
|
17
35
|
className?: string;
|
|
18
36
|
}
|
|
19
|
-
declare function Toast({ action, children, className, closeLabel, onClose, show, ...rest }: ToastProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
declare namespace Toast {
|
|
21
|
-
var defaultProps: {
|
|
22
|
-
action: null;
|
|
23
|
-
closeLabel: undefined;
|
|
24
|
-
delay: number;
|
|
25
|
-
className: undefined;
|
|
26
|
-
};
|
|
27
|
-
var propTypes: {
|
|
28
|
-
/** A string or an element that is rendered inside the main body of the `Toast`. */
|
|
29
|
-
children: PropTypes.Validator<string>;
|
|
30
|
-
/**
|
|
31
|
-
* A function that is called on close. It can be used to perform
|
|
32
|
-
* actions upon closing of the `Toast`, such as setting the "show"
|
|
33
|
-
* element to false.
|
|
34
|
-
* */
|
|
35
|
-
onClose: PropTypes.Validator<(...args: any[]) => any>;
|
|
36
|
-
/** Boolean used to control whether the `Toast` shows */
|
|
37
|
-
show: PropTypes.Validator<boolean>;
|
|
38
|
-
/**
|
|
39
|
-
* Fields used to build optional action button.
|
|
40
|
-
* `label` is a string rendered inside the button.
|
|
41
|
-
* `href` is a link that will render the action button as an anchor tag.
|
|
42
|
-
* `onClick` is a function that is called when the button is clicked.
|
|
43
|
-
*/
|
|
44
|
-
action: PropTypes.Requireable<PropTypes.InferProps<{
|
|
45
|
-
label: PropTypes.Validator<string>;
|
|
46
|
-
href: PropTypes.Requireable<string>;
|
|
47
|
-
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
|
-
}>>;
|
|
49
|
-
/**
|
|
50
|
-
* Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
|
|
51
|
-
*/
|
|
52
|
-
closeLabel: PropTypes.Requireable<string>;
|
|
53
|
-
/** Time in milliseconds for which the `Toast` will display. */
|
|
54
|
-
delay: PropTypes.Requireable<number>;
|
|
55
|
-
/** Class names for the `BaseToast` component */
|
|
56
|
-
className: PropTypes.Requireable<string>;
|
|
57
|
-
};
|
|
58
|
-
}
|
|
37
|
+
declare function Toast({ action, children, className, closeLabel, onClose, show, delay, ...rest }: ToastProps): import("react/jsx-runtime").JSX.Element;
|
|
59
38
|
export default Toast;
|
package/dist/Toast/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import BaseToast from 'react-bootstrap/Toast';
|
|
5
4
|
import { useIntl } from 'react-intl';
|
|
6
5
|
import { Close } from '../../icons';
|
|
@@ -10,16 +9,16 @@ import Icon from '../Icon';
|
|
|
10
9
|
import IconButton from '../IconButton';
|
|
11
10
|
export const TOAST_CLOSE_LABEL_TEXT = 'Close';
|
|
12
11
|
export const TOAST_DELAY = 5000;
|
|
13
|
-
function Toast(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
function Toast({
|
|
13
|
+
action,
|
|
14
|
+
children,
|
|
15
|
+
className,
|
|
16
|
+
closeLabel,
|
|
17
|
+
onClose,
|
|
18
|
+
show,
|
|
19
|
+
delay = TOAST_DELAY,
|
|
20
|
+
...rest
|
|
21
|
+
}) {
|
|
23
22
|
const intl = useIntl();
|
|
24
23
|
const [autoHide, setAutoHide] = useState(true);
|
|
25
24
|
const intlCloseLabel = closeLabel || intl.formatMessage({
|
|
@@ -36,6 +35,7 @@ function Toast(_ref) {
|
|
|
36
35
|
onMouseOut: () => setAutoHide(true),
|
|
37
36
|
onMouseOver: () => setAutoHide(false),
|
|
38
37
|
show: show,
|
|
38
|
+
delay: delay,
|
|
39
39
|
...rest
|
|
40
40
|
}, /*#__PURE__*/React.createElement("div", {
|
|
41
41
|
className: "toast-header"
|
|
@@ -59,42 +59,5 @@ function Toast(_ref) {
|
|
|
59
59
|
variant: "inverse-outline-primary"
|
|
60
60
|
}, action.label)));
|
|
61
61
|
}
|
|
62
|
-
Toast.defaultProps = {
|
|
63
|
-
action: null,
|
|
64
|
-
closeLabel: undefined,
|
|
65
|
-
delay: TOAST_DELAY,
|
|
66
|
-
className: undefined
|
|
67
|
-
};
|
|
68
|
-
Toast.propTypes = {
|
|
69
|
-
/** A string or an element that is rendered inside the main body of the `Toast`. */
|
|
70
|
-
children: PropTypes.string.isRequired,
|
|
71
|
-
/**
|
|
72
|
-
* A function that is called on close. It can be used to perform
|
|
73
|
-
* actions upon closing of the `Toast`, such as setting the "show"
|
|
74
|
-
* element to false.
|
|
75
|
-
* */
|
|
76
|
-
onClose: PropTypes.func.isRequired,
|
|
77
|
-
/** Boolean used to control whether the `Toast` shows */
|
|
78
|
-
show: PropTypes.bool.isRequired,
|
|
79
|
-
/**
|
|
80
|
-
* Fields used to build optional action button.
|
|
81
|
-
* `label` is a string rendered inside the button.
|
|
82
|
-
* `href` is a link that will render the action button as an anchor tag.
|
|
83
|
-
* `onClick` is a function that is called when the button is clicked.
|
|
84
|
-
*/
|
|
85
|
-
action: PropTypes.shape({
|
|
86
|
-
label: PropTypes.string.isRequired,
|
|
87
|
-
href: PropTypes.string,
|
|
88
|
-
onClick: PropTypes.func
|
|
89
|
-
}),
|
|
90
|
-
/**
|
|
91
|
-
* Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.
|
|
92
|
-
*/
|
|
93
|
-
closeLabel: PropTypes.string,
|
|
94
|
-
/** Time in milliseconds for which the `Toast` will display. */
|
|
95
|
-
delay: PropTypes.number,
|
|
96
|
-
/** Class names for the `BaseToast` component */
|
|
97
|
-
className: PropTypes.string
|
|
98
|
-
};
|
|
99
62
|
export default Toast;
|
|
100
63
|
//# sourceMappingURL=index.js.map
|
package/dist/Toast/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useState","classNames","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","classNames","BaseToast","useIntl","Close","ToastContainer","Button","Icon","IconButton","TOAST_CLOSE_LABEL_TEXT","TOAST_DELAY","Toast","action","children","className","closeLabel","onClose","show","delay","rest","intl","autoHide","setAutoHide","intlCloseLabel","formatMessage","id","defaultMessage","description","createElement","autohide","onBlur","onFocus","onMouseOut","onMouseOver","iconAs","alt","src","onClick","variant","invertColors","as","href","size","label"],"sources":["../../src/Toast/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport BaseToast from 'react-bootstrap/Toast';\nimport { useIntl } from 'react-intl';\n\nimport { Close } from '../../icons';\nimport ToastContainer from './ToastContainer';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\nexport const TOAST_CLOSE_LABEL_TEXT = 'Close';\nexport const TOAST_DELAY = 5000;\n\ninterface ToastAction {\n label: string;\n href?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n}\n\ninterface ToastProps {\n /** A string or an element that is rendered inside the main body of the `Toast`. */\n children: string;\n /**\n * A function that is called on close. It can be used to perform\n * actions upon closing of the `Toast`, such as setting the \"show\"\n * element to false.\n * */\n onClose: () => void;\n /** Boolean used to control whether the `Toast` shows. */\n show: boolean;\n /**\n * Fields used to build optional action button.\n * `label` is a string rendered inside the button.\n * `href` is a link that will render the action button as an anchor tag.\n * `onClick` is a function that is called when the button is clicked.\n * The full type definition can be seen [here](https://github.com/openedx/paragon/blob/release-23.x/src/Toast/index.tsx#L16)\n */\n action?: ToastAction;\n /**\n * Alt text for the `Toast`'s dismiss button. Defaults to 'Close'.\n */\n closeLabel?: string;\n /** Time in milliseconds for which the `Toast` will display. */\n delay?: number;\n /** Class names for the `BaseToast` component. */\n className?: string;\n}\n\nfunction Toast({\n action,\n children,\n className,\n closeLabel,\n onClose,\n show,\n delay = TOAST_DELAY,\n ...rest\n}: ToastProps) {\n const intl = useIntl();\n const [autoHide, setAutoHide] = useState(true);\n\n const intlCloseLabel = closeLabel || intl.formatMessage({\n id: 'pgn.Toast.closeLabel',\n defaultMessage: 'Close',\n description: 'Close label for Toast component',\n });\n\n return (\n <ToastContainer>\n <BaseToast\n autohide={autoHide}\n className={classNames('pgn__toast', className)}\n onClose={onClose}\n onBlur={() => setAutoHide(true)}\n onFocus={() => setAutoHide(false)}\n onMouseOut={() => setAutoHide(true)}\n onMouseOver={() => setAutoHide(false)}\n show={show}\n delay={delay}\n {...rest}\n >\n <div className=\"toast-header\">\n <p className=\"small\">{children}</p>\n <div className=\"toast-header-btn-container\">\n <IconButton\n iconAs={Icon}\n alt={intlCloseLabel}\n className=\"align-self-start\"\n src={Close}\n onClick={onClose}\n variant=\"primary\"\n invertColors\n />\n </div>\n </div>\n {action && (\n <Button\n as={action.href ? 'a' : 'button'}\n href={action.href}\n onClick={action.onClick}\n size=\"sm\"\n variant=\"inverse-outline-primary\"\n >\n {action.label}\n </Button>\n )}\n </BaseToast>\n </ToastContainer>\n );\n}\n\nexport default Toast;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,OAAO,QAAQ,YAAY;AAEpC,SAASC,KAAK,QAAQ,aAAa;AACnC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,UAAU,MAAM,eAAe;AAEtC,OAAO,MAAMC,sBAAsB,GAAG,OAAO;AAC7C,OAAO,MAAMC,WAAW,GAAG,IAAI;AAqC/B,SAASC,KAAKA,CAAC;EACbC,MAAM;EACNC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,OAAO;EACPC,IAAI;EACJC,KAAK,GAAGR,WAAW;EACnB,GAAGS;AACO,CAAC,EAAE;EACb,MAAMC,IAAI,GAAGjB,OAAO,CAAC,CAAC;EACtB,MAAM,CAACkB,QAAQ,EAAEC,WAAW,CAAC,GAAGtB,QAAQ,CAAC,IAAI,CAAC;EAE9C,MAAMuB,cAAc,GAAGR,UAAU,IAAIK,IAAI,CAACI,aAAa,CAAC;IACtDC,EAAE,EAAE,sBAAsB;IAC1BC,cAAc,EAAE,OAAO;IACvBC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,oBACE5B,KAAA,CAAA6B,aAAA,CAACvB,cAAc,qBACbN,KAAA,CAAA6B,aAAA,CAAC1B,SAAS;IACR2B,QAAQ,EAAER,QAAS;IACnBP,SAAS,EAAEb,UAAU,CAAC,YAAY,EAAEa,SAAS,CAAE;IAC/CE,OAAO,EAAEA,OAAQ;IACjBc,MAAM,EAAEA,CAAA,KAAMR,WAAW,CAAC,IAAI,CAAE;IAChCS,OAAO,EAAEA,CAAA,KAAMT,WAAW,CAAC,KAAK,CAAE;IAClCU,UAAU,EAAEA,CAAA,KAAMV,WAAW,CAAC,IAAI,CAAE;IACpCW,WAAW,EAAEA,CAAA,KAAMX,WAAW,CAAC,KAAK,CAAE;IACtCL,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IAAA,GACTC;EAAI,gBAERpB,KAAA,CAAA6B,aAAA;IAAKd,SAAS,EAAC;EAAc,gBAC3Bf,KAAA,CAAA6B,aAAA;IAAGd,SAAS,EAAC;EAAO,GAAED,QAAY,CAAC,eACnCd,KAAA,CAAA6B,aAAA;IAAKd,SAAS,EAAC;EAA4B,gBACzCf,KAAA,CAAA6B,aAAA,CAACpB,UAAU;IACT0B,MAAM,EAAE3B,IAAK;IACb4B,GAAG,EAAEZ,cAAe;IACpBT,SAAS,EAAC,kBAAkB;IAC5BsB,GAAG,EAAEhC,KAAM;IACXiC,OAAO,EAAErB,OAAQ;IACjBsB,OAAO,EAAC,SAAS;IACjBC,YAAY;EAAA,CACb,CACE,CACF,CAAC,EACL3B,MAAM,iBACLb,KAAA,CAAA6B,aAAA,CAACtB,MAAM;IACLkC,EAAE,EAAE5B,MAAM,CAAC6B,IAAI,GAAG,GAAG,GAAG,QAAS;IACjCA,IAAI,EAAE7B,MAAM,CAAC6B,IAAK;IAClBJ,OAAO,EAAEzB,MAAM,CAACyB,OAAQ;IACxBK,IAAI,EAAC,IAAI;IACTJ,OAAO,EAAC;EAAyB,GAEhC1B,MAAM,CAAC+B,KACF,CAED,CACG,CAAC;AAErB;AAEA,eAAehC,KAAK","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","ToggleButtonGroup"],"sources":["../../src/ToggleButton/index.
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","ToggleButtonGroup"],"sources":["../../src/ToggleButton/index.tsx"],"sourcesContent":["export { default } from 'react-bootstrap/ToggleButton';\nexport { default as ToggleButtonGroup } from 'react-bootstrap/ToggleButtonGroup';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,8BAA8B;AACtD,SAASA,OAAO,IAAIC,iBAAiB,QAAQ,mCAAmC","ignoreList":[]}
|
package/dist/Tooltip/index.js
CHANGED
|
@@ -3,20 +3,17 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import BaseTooltip from 'react-bootstrap/Tooltip';
|
|
5
5
|
const PLACEMENT_VARIANTS = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
|
|
6
|
-
const Tooltip = /*#__PURE__*/React.forwardRef((
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
ref: ref
|
|
18
|
-
}, children);
|
|
19
|
-
});
|
|
6
|
+
const Tooltip = /*#__PURE__*/React.forwardRef(({
|
|
7
|
+
children,
|
|
8
|
+
variant,
|
|
9
|
+
...props
|
|
10
|
+
}, ref) => /*#__PURE__*/React.createElement(BaseTooltip, {
|
|
11
|
+
...props,
|
|
12
|
+
className: classNames({
|
|
13
|
+
'tooltip-light': variant === 'light'
|
|
14
|
+
}, props.className),
|
|
15
|
+
ref: ref
|
|
16
|
+
}, children));
|
|
20
17
|
Tooltip.propTypes = {
|
|
21
18
|
...BaseTooltip.propTypes,
|
|
22
19
|
/** An html id attribute, necessary for accessibility. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseTooltip","PLACEMENT_VARIANTS","Tooltip","forwardRef","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseTooltip","PLACEMENT_VARIANTS","Tooltip","forwardRef","children","variant","props","ref","createElement","className","propTypes","id","string","isRequired","placement","oneOf","arrowProps","shape","oneOfType","func","current","element","style","show","bool","popper","bsPrefix","node","defaultProps","undefined"],"sources":["../../src/Tooltip/index.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseTooltip, { type TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip';\nimport { type Placement } from 'react-bootstrap/Overlay';\nimport type { ComponentWithAsProp } from '../utils/types/bootstrap';\n\ninterface TooltipProps extends BaseTooltipProps {\n variant?: 'light';\n}\n\nconst PLACEMENT_VARIANTS: Placement[] = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nconst Tooltip: ComponentWithAsProp<'div', TooltipProps> = React.forwardRef(({\n children,\n variant,\n ...props\n}, ref) => (\n <BaseTooltip\n {...props}\n className={classNames({ 'tooltip-light': variant === 'light' }, props.className)}\n ref={ref}\n >\n {children}\n </BaseTooltip>\n));\n\nTooltip.propTypes = {\n ...BaseTooltip.propTypes,\n /** An html id attribute, necessary for accessibility. */\n id: PropTypes.string.isRequired,\n /**\n * Sets the direction the `Tooltip` is positioned towards.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n placement: PropTypes.oneOf(PLACEMENT_VARIANTS),\n /**\n * An `Overlay` injected set of props for positioning the `Tooltip` arrow.\n *\n * This is generally provided by the `Overlay` component positioning the tooltip.\n */\n arrowProps: PropTypes.shape({\n ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.element }),\n ]),\n style: PropTypes.shape({}),\n }),\n /** Whether the `Overlay` is shown. */\n show: PropTypes.bool,\n /** A `Popper.js` config object passed to the the underlying popper instance. */\n popper: PropTypes.shape({}),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n /** Specifies the content of the `Tooltip` */\n children: PropTypes.node,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** The visual style of the `Tooltip` */\n variant: PropTypes.string,\n};\n\nTooltip.defaultProps = {\n ...Tooltip.defaultProps,\n id: undefined,\n placement: 'right',\n arrowProps: undefined,\n show: undefined,\n popper: undefined,\n children: undefined,\n className: undefined,\n variant: undefined,\n bsPrefix: 'tooltip',\n};\n\nexport default Tooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAiD,yBAAyB;AAQ5F,MAAMC,kBAA+B,GAAG,CACtC,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,MAAM,EACN,YAAY,CACb;AAED,MAAMC,OAAiD,gBAAGL,KAAK,CAACM,UAAU,CAAC,CAAC;EAC1EC,QAAQ;EACRC,OAAO;EACP,GAAGC;AACL,CAAC,EAAEC,GAAG,kBACJV,KAAA,CAAAW,aAAA,CAACR,WAAW;EAAA,GACNM,KAAK;EACTG,SAAS,EAAEV,UAAU,CAAC;IAAE,eAAe,EAAEM,OAAO,KAAK;EAAQ,CAAC,EAAEC,KAAK,CAACG,SAAS,CAAE;EACjFF,GAAG,EAAEA;AAAI,GAERH,QACU,CACd,CAAC;AAEFF,OAAO,CAACQ,SAAS,GAAG;EAClB,GAAGV,WAAW,CAACU,SAAS;EACxB;EACAC,EAAE,EAAEb,SAAS,CAACc,MAAM,CAACC,UAAU;EAC/B;AACF;AACA;AACA;AACA;EACEC,SAAS,EAAEhB,SAAS,CAACiB,KAAK,CAACd,kBAAkB,CAAC;EAC9C;AACF;AACA;AACA;AACA;EACEe,UAAU,EAAElB,SAAS,CAACmB,KAAK,CAAC;IAC1BV,GAAG,EAAET,SAAS,CAACoB,SAAS,CAAC,CACvBpB,SAAS,CAACqB,IAAI,EACdrB,SAAS,CAACmB,KAAK,CAAC;MAAEG,OAAO,EAAEtB,SAAS,CAACuB;IAAQ,CAAC,CAAC,CAChD,CAAC;IACFC,KAAK,EAAExB,SAAS,CAACmB,KAAK,CAAC,CAAC,CAAC;EAC3B,CAAC,CAAC;EACF;EACAM,IAAI,EAAEzB,SAAS,CAAC0B,IAAI;EACpB;EACAC,MAAM,EAAE3B,SAAS,CAACmB,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3B;EACAS,QAAQ,EAAE5B,SAAS,CAACc,MAAM;EAC1B;EACAR,QAAQ,EAAEN,SAAS,CAAC6B,IAAI;EACxB;EACAlB,SAAS,EAAEX,SAAS,CAACc,MAAM;EAC3B;EACAP,OAAO,EAAEP,SAAS,CAACc;AACrB,CAAC;AAEDV,OAAO,CAAC0B,YAAY,GAAG;EACrB,GAAG1B,OAAO,CAAC0B,YAAY;EACvBjB,EAAE,EAAEkB,SAAS;EACbf,SAAS,EAAE,OAAO;EAClBE,UAAU,EAAEa,SAAS;EACrBN,IAAI,EAAEM,SAAS;EACfJ,MAAM,EAAEI,SAAS;EACjBzB,QAAQ,EAAEyB,SAAS;EACnBpB,SAAS,EAAEoB,SAAS;EACpBxB,OAAO,EAAEwB,SAAS;EAClBH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAexB,OAAO","ignoreList":[]}
|
package/dist/Truncate/index.js
CHANGED
|
@@ -5,16 +5,15 @@ import useWindowSize from '../hooks/useWindowSizeHook';
|
|
|
5
5
|
const DEFAULT_TRUNCATE_LINES = 1;
|
|
6
6
|
const DEFAULT_TRUNCATE_ELLIPSIS = '...';
|
|
7
7
|
const DEFAULT_TRUNCATE_ELEMENT_TYPE = 'div';
|
|
8
|
-
function TruncateDeprecated(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} = _ref;
|
|
8
|
+
function TruncateDeprecated({
|
|
9
|
+
children,
|
|
10
|
+
lines,
|
|
11
|
+
ellipsis,
|
|
12
|
+
elementType,
|
|
13
|
+
className,
|
|
14
|
+
whiteSpace,
|
|
15
|
+
onTruncate
|
|
16
|
+
}) {
|
|
18
17
|
const textContainer = useRef();
|
|
19
18
|
const {
|
|
20
19
|
width
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useLayoutEffect","useRef","useEffect","PropTypes","truncateLines","useWindowSize","DEFAULT_TRUNCATE_LINES","DEFAULT_TRUNCATE_ELLIPSIS","DEFAULT_TRUNCATE_ELEMENT_TYPE","TruncateDeprecated","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useLayoutEffect","useRef","useEffect","PropTypes","truncateLines","useWindowSize","DEFAULT_TRUNCATE_LINES","DEFAULT_TRUNCATE_ELLIPSIS","DEFAULT_TRUNCATE_ELEMENT_TYPE","TruncateDeprecated","children","lines","ellipsis","elementType","className","whiteSpace","onTruncate","textContainer","width","current","truncated","original","setAttribute","innerHTML","forEach","element","appendChild","createElement","ref","propTypes","string","isRequired","oneOfType","number","node","bool","func","defaultProps","undefined","Truncate","console","log","Deprecated"],"sources":["../../src/Truncate/index.jsx"],"sourcesContent":["import React, {\n useLayoutEffect, useRef, useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { truncateLines } from './utils';\nimport useWindowSize from '../hooks/useWindowSizeHook';\n\nconst DEFAULT_TRUNCATE_LINES = 1;\nconst DEFAULT_TRUNCATE_ELLIPSIS = '...';\nconst DEFAULT_TRUNCATE_ELEMENT_TYPE = 'div';\n\nfunction TruncateDeprecated({\n children, lines, ellipsis, elementType, className, whiteSpace, onTruncate,\n}) {\n const textContainer = useRef();\n const { width } = useWindowSize();\n\n useLayoutEffect(() => {\n if (textContainer.current) {\n const [truncated, original] = truncateLines(children, textContainer.current, {\n ellipsis,\n whiteSpace,\n lines,\n });\n textContainer.current.setAttribute('title', original);\n textContainer.current.setAttribute('aria-label', original);\n textContainer.current.innerHTML = '';\n truncated.forEach(element => {\n textContainer.current.appendChild(element);\n });\n if (onTruncate) {\n onTruncate(truncated);\n }\n }\n }, [children, ellipsis, lines, onTruncate, whiteSpace, width]);\n\n return React.createElement(elementType, {\n ref: textContainer,\n className,\n });\n}\n\nTruncateDeprecated.propTypes = {\n /** The expected text to which the ellipsis would be applied. */\n children: PropTypes.string.isRequired,\n /** The number of lines the text to be truncated to. */\n lines: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** Text content for the ellipsis - will appear after the truncated lines. */\n ellipsis: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\n /** Adds the whitespace from before the ellipsis. */\n whiteSpace: PropTypes.bool,\n /** Custom html element for truncated text. */\n elementType: PropTypes.string,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Callback fired when a text truncating */\n onTruncate: PropTypes.func,\n};\n\nTruncateDeprecated.defaultProps = {\n lines: DEFAULT_TRUNCATE_LINES,\n ellipsis: DEFAULT_TRUNCATE_ELLIPSIS,\n whiteSpace: false,\n elementType: DEFAULT_TRUNCATE_ELEMENT_TYPE,\n className: undefined,\n onTruncate: undefined,\n};\n\nfunction Truncate() {\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log('Please use Truncate.Deprecated until a replacement is created');\n }, []);\n return null;\n}\nTruncate.Deprecated = TruncateDeprecated;\n\nexport default Truncate;\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,eAAe,EAAEC,MAAM,EAAEC,SAAS,QAC7B,OAAO;AACd,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,aAAa,QAAQ,SAAS;AACvC,OAAOC,aAAa,MAAM,4BAA4B;AAEtD,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,yBAAyB,GAAG,KAAK;AACvC,MAAMC,6BAA6B,GAAG,KAAK;AAE3C,SAASC,kBAAkBA,CAAC;EAC1BC,QAAQ;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,WAAW;EAAEC,SAAS;EAAEC,UAAU;EAAEC;AACjE,CAAC,EAAE;EACD,MAAMC,aAAa,GAAGhB,MAAM,CAAC,CAAC;EAC9B,MAAM;IAAEiB;EAAM,CAAC,GAAGb,aAAa,CAAC,CAAC;EAEjCL,eAAe,CAAC,MAAM;IACpB,IAAIiB,aAAa,CAACE,OAAO,EAAE;MACzB,MAAM,CAACC,SAAS,EAAEC,QAAQ,CAAC,GAAGjB,aAAa,CAACM,QAAQ,EAAEO,aAAa,CAACE,OAAO,EAAE;QAC3EP,QAAQ;QACRG,UAAU;QACVJ;MACF,CAAC,CAAC;MACFM,aAAa,CAACE,OAAO,CAACG,YAAY,CAAC,OAAO,EAAED,QAAQ,CAAC;MACrDJ,aAAa,CAACE,OAAO,CAACG,YAAY,CAAC,YAAY,EAAED,QAAQ,CAAC;MAC1DJ,aAAa,CAACE,OAAO,CAACI,SAAS,GAAG,EAAE;MACpCH,SAAS,CAACI,OAAO,CAACC,OAAO,IAAI;QAC3BR,aAAa,CAACE,OAAO,CAACO,WAAW,CAACD,OAAO,CAAC;MAC5C,CAAC,CAAC;MACF,IAAIT,UAAU,EAAE;QACdA,UAAU,CAACI,SAAS,CAAC;MACvB;IACF;EACF,CAAC,EAAE,CAACV,QAAQ,EAAEE,QAAQ,EAAED,KAAK,EAAEK,UAAU,EAAED,UAAU,EAAEG,KAAK,CAAC,CAAC;EAE9D,oBAAOnB,KAAK,CAAC4B,aAAa,CAACd,WAAW,EAAE;IACtCe,GAAG,EAAEX,aAAa;IAClBH;EACF,CAAC,CAAC;AACJ;AAEAL,kBAAkB,CAACoB,SAAS,GAAG;EAC7B;EACAnB,QAAQ,EAAEP,SAAS,CAAC2B,MAAM,CAACC,UAAU;EACrC;EACApB,KAAK,EAAER,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC2B,MAAM,EAAE3B,SAAS,CAAC8B,MAAM,CAAC,CAAC;EAChE;EACArB,QAAQ,EAAET,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC2B,MAAM,EAAE3B,SAAS,CAAC8B,MAAM,EAAE9B,SAAS,CAAC+B,IAAI,CAAC,CAAC;EACnF;EACAnB,UAAU,EAAEZ,SAAS,CAACgC,IAAI;EAC1B;EACAtB,WAAW,EAAEV,SAAS,CAAC2B,MAAM;EAC7B;EACAhB,SAAS,EAAEX,SAAS,CAAC2B,MAAM;EAC3B;EACAd,UAAU,EAAEb,SAAS,CAACiC;AACxB,CAAC;AAED3B,kBAAkB,CAAC4B,YAAY,GAAG;EAChC1B,KAAK,EAAEL,sBAAsB;EAC7BM,QAAQ,EAAEL,yBAAyB;EACnCQ,UAAU,EAAE,KAAK;EACjBF,WAAW,EAAEL,6BAA6B;EAC1CM,SAAS,EAAEwB,SAAS;EACpBtB,UAAU,EAAEsB;AACd,CAAC;AAED,SAASC,QAAQA,CAAA,EAAG;EAClBrC,SAAS,CAAC,MAAM;IACd;IACAsC,OAAO,CAACC,GAAG,CAAC,+DAA+D,CAAC;EAC9E,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb;AACAF,QAAQ,CAACG,UAAU,GAAGjC,kBAAkB;AAExC,eAAe8B,QAAQ","ignoreList":[]}
|
package/dist/asInput/index.js
CHANGED
|
@@ -53,9 +53,7 @@ export const defaultProps = {
|
|
|
53
53
|
type: undefined,
|
|
54
54
|
inputRef: undefined
|
|
55
55
|
};
|
|
56
|
-
const asInput =
|
|
57
|
-
let inputType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
58
|
-
let labelFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
56
|
+
const asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {
|
|
59
57
|
class NewComponent extends React.Component {
|
|
60
58
|
constructor(props) {
|
|
61
59
|
super(props);
|
|
@@ -157,11 +155,10 @@ const asInput = function (WrappedComponent) {
|
|
|
157
155
|
}
|
|
158
156
|
return desc;
|
|
159
157
|
}
|
|
160
|
-
getAddons(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
} = _ref;
|
|
158
|
+
getAddons({
|
|
159
|
+
addonElements,
|
|
160
|
+
type
|
|
161
|
+
}) {
|
|
165
162
|
if (Array.isArray(addonElements)) {
|
|
166
163
|
return addonElements.map((addon, index) => /*#__PURE__*/React.cloneElement(addon, {
|
|
167
164
|
key: this.generateInputGroupAddonKey({
|
|
@@ -183,11 +180,10 @@ const asInput = function (WrappedComponent) {
|
|
|
183
180
|
return false;
|
|
184
181
|
}
|
|
185
182
|
}
|
|
186
|
-
generateInputGroupAddonKey(
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
} = _ref2;
|
|
183
|
+
generateInputGroupAddonKey({
|
|
184
|
+
prefix,
|
|
185
|
+
index
|
|
186
|
+
}) {
|
|
191
187
|
return `${this.state.id}-${prefix}-${index}`;
|
|
192
188
|
}
|
|
193
189
|
renderInput(describedBy) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","ValidationMessage","Variant","withDeprecatedProps","DeprTypes","getDisplayName","WrappedComponent","displayName","name","inputProps","label","oneOfType","string","element","isRequired","id","value","number","dangerIconDescription","description","disabled","bool","required","onChange","func","onKeyPress","onBlur","validator","isValid","validationMessage","className","themes","arrayOf","inline","inputGroupPrepend","inputGroupAppend","type","inputRef","shape","current","instanceOf","defaultProps","undefined","asInput","inputType","arguments","length","labelFirst","NewComponent","Component","constructor","props","handleChange","bind","handleBlur","handleKeyPress","renderInput","state","componentDidUpdate","prevProps","updatedState","Object","keys","setState","event","target","checked","val","getLabel","createElement","htmlFor","isGroupedInput","getDescriptions","errorId","descriptionId","desc","error","invalidMessage","variant","status","hasDangerTheme","DANGER","INFO","variantIconDescription","describedBy","key","trim","getAddons","_ref","addonElements","Array","isArray","map","addon","index","cloneElement","generateInputGroupAddonKey","prefix","indexOf","_ref2","others","renderInputGroupAppend","renderInputGroupPrepend","render","propTypes","deprType","FORMAT","expect","transform","join","message","ariaLabel","MOVED","newName"],"sources":["../../src/asInput/index.jsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport ValidationMessage from '../ValidationMessage/index';\nimport Variant from '../utils/constants';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const getDisplayName = WrappedComponent => WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\nexport const inputProps = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n name: PropTypes.string.isRequired,\n id: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dangerIconDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n onKeyPress: PropTypes.func,\n onBlur: PropTypes.func,\n validator: PropTypes.func,\n isValid: PropTypes.bool,\n validationMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n themes: PropTypes.arrayOf(PropTypes.string),\n inline: PropTypes.bool,\n inputGroupPrepend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n inputGroupAppend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n type: PropTypes.string,\n inputRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(PropTypes.element) }),\n ]),\n};\n\nexport const defaultProps = {\n onChange: () => {},\n onBlur: () => {},\n onKeyPress: () => {},\n id: undefined,\n value: '',\n dangerIconDescription: '',\n description: undefined,\n disabled: false,\n required: false,\n validator: undefined,\n isValid: true,\n validationMessage: '',\n className: undefined,\n themes: [],\n inline: false,\n inputGroupPrepend: undefined,\n inputGroupAppend: undefined,\n type: undefined,\n inputRef: undefined,\n};\n\nconst asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {\n class NewComponent extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderInput = this.renderInput.bind(this);\n\n const id = this.props.id ? this.props.id : newId('asInput');\n const isValid = this.props.validator ? true : this.props.isValid;\n const validationMessage = this.props.validator ? '' : this.props.validationMessage;\n const dangerIconDescription = this.props.validator ? '' : this.props.dangerIconDescription;\n this.state = {\n id,\n value: this.props.value,\n isValid,\n validationMessage,\n dangerIconDescription,\n };\n }\n\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps) {\n const updatedState = {};\n if (this.props.value !== prevProps.value) {\n updatedState.value = this.props.value;\n }\n if (this.props.isValid !== prevProps.isValid && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n }\n if (this.props.validationMessage !== prevProps.validationMessage && !this.props.validator) {\n updatedState.validationMessage = this.props.validationMessage;\n }\n if (this.props.dangerIconDescription !== prevProps.dangerIconDescription\n && !this.props.validator) {\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n // If validator goes away, revert to props\n if (this.props.validator !== prevProps.validator && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n updatedState.validationMessage = this.props.validationMessage;\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n if (Object.keys(updatedState).length > 0) {\n this.setState(updatedState);\n }\n }\n\n handleChange(event) {\n this.setState({ value: event.target.value });\n\n this.props.onChange(\n event.target.type === 'checkbox' ? event.target.checked : event.target.value,\n this.props.name,\n );\n }\n\n handleKeyPress(event) {\n this.props.onKeyPress(event, this.props.name);\n }\n\n handleBlur(event) {\n const val = event.target.value;\n\n if (this.props.validator) {\n this.setState(this.props.validator(val));\n }\n this.props.onBlur(val, this.props.name);\n }\n\n getLabel() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-for\n <label\n id={`label-${this.state.id}`}\n htmlFor={this.state.id}\n className={classNames({\n 'form-check-label': this.isGroupedInput(),\n })}\n >\n {this.props.label}\n </label>\n );\n }\n\n getDescriptions() {\n // possible future work: multiple feedback msgs?\n const errorId = `error-${this.state.id}`;\n const descriptionId = `description-${this.state.id}`;\n const desc = {};\n\n // TODO: refactor this component to use Variants instead of the themes array.\n desc.error = (\n <ValidationMessage\n id={errorId}\n isValid={this.state.isValid}\n invalidMessage={this.state.validationMessage}\n variant={{\n status: this.hasDangerTheme() ? Variant.status.DANGER : Variant.status.INFO,\n }}\n variantIconDescription={this.state.dangerIconDescription}\n />\n );\n desc.describedBy = errorId;\n\n if (this.props.description) {\n desc.description = (\n <small className=\"form-text\" id={descriptionId} key=\"1\">\n {this.props.description}\n </small>\n );\n desc.describedBy = `${desc.describedBy} ${descriptionId}`.trim();\n }\n\n return desc;\n }\n\n getAddons({ addonElements, type }) {\n if (Array.isArray(addonElements)) {\n return addonElements.map((addon, index) => React.cloneElement(\n addon,\n { key: this.generateInputGroupAddonKey({ prefix: type, index }) },\n ));\n }\n return addonElements;\n }\n\n hasDangerTheme() {\n return this.props.themes.indexOf('danger') >= 0;\n }\n\n isGroupedInput() {\n switch (inputType) {\n case 'checkbox':\n return true;\n default:\n return false;\n }\n }\n\n generateInputGroupAddonKey({ prefix, index }) {\n return `${this.state.id}-${prefix}-${index}`;\n }\n\n renderInput(describedBy) {\n const {\n className,\n inputRef,\n type,\n isValid,\n // unused\n validator,\n themes,\n inline,\n inputGroupPrepend,\n inputGroupAppend,\n label,\n dangerIconDescription,\n description,\n validationMessage,\n ...others\n } = this.props;\n\n return (\n <WrappedComponent\n {...others}\n id={this.state.id}\n value={this.state.value}\n className={classNames(\n {\n 'form-control': !this.isGroupedInput(),\n 'form-check-input': this.isGroupedInput(),\n 'is-invalid': !this.state.isValid,\n 'is-invalid-nodanger': !this.hasDangerTheme(),\n },\n className,\n )}\n aria-describedby={describedBy}\n aria-invalid={!isValid}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyPress={this.handleKeyPress}\n type={type}\n inputRef={inputRef}\n />\n );\n }\n\n renderInputGroupAppend() {\n return (\n <div className=\"input-group-append\">\n {this.getAddons({ type: 'append', addonElements: this.props.inputGroupAppend })}\n </div>\n );\n }\n\n renderInputGroupPrepend() {\n return (\n <div className=\"input-group-prepend\">\n {this.getAddons({ type: 'prepend', addonElements: this.props.inputGroupPrepend })}\n </div>\n );\n }\n\n render() {\n const { description, error, describedBy } = this.getDescriptions();\n return (\n <div className={classNames({\n 'form-group': !this.isGroupedInput(),\n 'form-inline': !this.isGroupedInput() && this.props.inline,\n 'form-check': this.isGroupedInput(),\n })}\n >\n {labelFirst && this.getLabel()}\n {this.props.inputGroupPrepend || this.props.inputGroupAppend ? (\n <div className={classNames('input-group')} data-testid=\"input-group\">\n {this.renderInputGroupPrepend()}\n {this.renderInput(describedBy)}\n {this.renderInputGroupAppend()}\n </div>\n ) : this.renderInput(describedBy)}\n {!labelFirst && this.getLabel()}\n {error}\n {description}\n </div>\n );\n }\n }\n\n NewComponent.displayName = `asInput(${getDisplayName(WrappedComponent)})`;\n\n NewComponent.propTypes = inputProps;\n\n NewComponent.defaultProps = defaultProps;\n\n return withDeprecatedProps(NewComponent, 'asInput', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n ariaLabel: {\n deprType: DeprTypes.MOVED,\n newName: 'aria-label',\n },\n });\n};\n\nexport default asInput;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","newId","ValidationMessage","Variant","withDeprecatedProps","DeprTypes","getDisplayName","WrappedComponent","displayName","name","inputProps","label","oneOfType","string","element","isRequired","id","value","number","dangerIconDescription","description","disabled","bool","required","onChange","func","onKeyPress","onBlur","validator","isValid","validationMessage","className","themes","arrayOf","inline","inputGroupPrepend","inputGroupAppend","type","inputRef","shape","current","instanceOf","defaultProps","undefined","asInput","inputType","labelFirst","NewComponent","Component","constructor","props","handleChange","bind","handleBlur","handleKeyPress","renderInput","state","componentDidUpdate","prevProps","updatedState","Object","keys","length","setState","event","target","checked","val","getLabel","createElement","htmlFor","isGroupedInput","getDescriptions","errorId","descriptionId","desc","error","invalidMessage","variant","status","hasDangerTheme","DANGER","INFO","variantIconDescription","describedBy","key","trim","getAddons","addonElements","Array","isArray","map","addon","index","cloneElement","generateInputGroupAddonKey","prefix","indexOf","others","renderInputGroupAppend","renderInputGroupPrepend","render","propTypes","deprType","FORMAT","expect","transform","join","message","ariaLabel","MOVED","newName"],"sources":["../../src/asInput/index.jsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport newId from '../utils/newId';\nimport ValidationMessage from '../ValidationMessage/index';\nimport Variant from '../utils/constants';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const getDisplayName = WrappedComponent => WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\nexport const inputProps = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n name: PropTypes.string.isRequired,\n id: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dangerIconDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n onKeyPress: PropTypes.func,\n onBlur: PropTypes.func,\n validator: PropTypes.func,\n isValid: PropTypes.bool,\n validationMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n themes: PropTypes.arrayOf(PropTypes.string),\n inline: PropTypes.bool,\n inputGroupPrepend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n inputGroupAppend: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n type: PropTypes.string,\n inputRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(PropTypes.element) }),\n ]),\n};\n\nexport const defaultProps = {\n onChange: () => {},\n onBlur: () => {},\n onKeyPress: () => {},\n id: undefined,\n value: '',\n dangerIconDescription: '',\n description: undefined,\n disabled: false,\n required: false,\n validator: undefined,\n isValid: true,\n validationMessage: '',\n className: undefined,\n themes: [],\n inline: false,\n inputGroupPrepend: undefined,\n inputGroupAppend: undefined,\n type: undefined,\n inputRef: undefined,\n};\n\nconst asInput = (WrappedComponent, inputType = undefined, labelFirst = true) => {\n class NewComponent extends React.Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderInput = this.renderInput.bind(this);\n\n const id = this.props.id ? this.props.id : newId('asInput');\n const isValid = this.props.validator ? true : this.props.isValid;\n const validationMessage = this.props.validator ? '' : this.props.validationMessage;\n const dangerIconDescription = this.props.validator ? '' : this.props.dangerIconDescription;\n this.state = {\n id,\n value: this.props.value,\n isValid,\n validationMessage,\n dangerIconDescription,\n };\n }\n\n /* eslint-disable react/no-did-update-set-state */\n componentDidUpdate(prevProps) {\n const updatedState = {};\n if (this.props.value !== prevProps.value) {\n updatedState.value = this.props.value;\n }\n if (this.props.isValid !== prevProps.isValid && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n }\n if (this.props.validationMessage !== prevProps.validationMessage && !this.props.validator) {\n updatedState.validationMessage = this.props.validationMessage;\n }\n if (this.props.dangerIconDescription !== prevProps.dangerIconDescription\n && !this.props.validator) {\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n // If validator goes away, revert to props\n if (this.props.validator !== prevProps.validator && !this.props.validator) {\n updatedState.isValid = this.props.isValid;\n updatedState.validationMessage = this.props.validationMessage;\n updatedState.dangerIconDescription = this.props.dangerIconDescription;\n }\n if (Object.keys(updatedState).length > 0) {\n this.setState(updatedState);\n }\n }\n\n handleChange(event) {\n this.setState({ value: event.target.value });\n\n this.props.onChange(\n event.target.type === 'checkbox' ? event.target.checked : event.target.value,\n this.props.name,\n );\n }\n\n handleKeyPress(event) {\n this.props.onKeyPress(event, this.props.name);\n }\n\n handleBlur(event) {\n const val = event.target.value;\n\n if (this.props.validator) {\n this.setState(this.props.validator(val));\n }\n this.props.onBlur(val, this.props.name);\n }\n\n getLabel() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-for\n <label\n id={`label-${this.state.id}`}\n htmlFor={this.state.id}\n className={classNames({\n 'form-check-label': this.isGroupedInput(),\n })}\n >\n {this.props.label}\n </label>\n );\n }\n\n getDescriptions() {\n // possible future work: multiple feedback msgs?\n const errorId = `error-${this.state.id}`;\n const descriptionId = `description-${this.state.id}`;\n const desc = {};\n\n // TODO: refactor this component to use Variants instead of the themes array.\n desc.error = (\n <ValidationMessage\n id={errorId}\n isValid={this.state.isValid}\n invalidMessage={this.state.validationMessage}\n variant={{\n status: this.hasDangerTheme() ? Variant.status.DANGER : Variant.status.INFO,\n }}\n variantIconDescription={this.state.dangerIconDescription}\n />\n );\n desc.describedBy = errorId;\n\n if (this.props.description) {\n desc.description = (\n <small className=\"form-text\" id={descriptionId} key=\"1\">\n {this.props.description}\n </small>\n );\n desc.describedBy = `${desc.describedBy} ${descriptionId}`.trim();\n }\n\n return desc;\n }\n\n getAddons({ addonElements, type }) {\n if (Array.isArray(addonElements)) {\n return addonElements.map((addon, index) => React.cloneElement(\n addon,\n { key: this.generateInputGroupAddonKey({ prefix: type, index }) },\n ));\n }\n return addonElements;\n }\n\n hasDangerTheme() {\n return this.props.themes.indexOf('danger') >= 0;\n }\n\n isGroupedInput() {\n switch (inputType) {\n case 'checkbox':\n return true;\n default:\n return false;\n }\n }\n\n generateInputGroupAddonKey({ prefix, index }) {\n return `${this.state.id}-${prefix}-${index}`;\n }\n\n renderInput(describedBy) {\n const {\n className,\n inputRef,\n type,\n isValid,\n // unused\n validator,\n themes,\n inline,\n inputGroupPrepend,\n inputGroupAppend,\n label,\n dangerIconDescription,\n description,\n validationMessage,\n ...others\n } = this.props;\n\n return (\n <WrappedComponent\n {...others}\n id={this.state.id}\n value={this.state.value}\n className={classNames(\n {\n 'form-control': !this.isGroupedInput(),\n 'form-check-input': this.isGroupedInput(),\n 'is-invalid': !this.state.isValid,\n 'is-invalid-nodanger': !this.hasDangerTheme(),\n },\n className,\n )}\n aria-describedby={describedBy}\n aria-invalid={!isValid}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyPress={this.handleKeyPress}\n type={type}\n inputRef={inputRef}\n />\n );\n }\n\n renderInputGroupAppend() {\n return (\n <div className=\"input-group-append\">\n {this.getAddons({ type: 'append', addonElements: this.props.inputGroupAppend })}\n </div>\n );\n }\n\n renderInputGroupPrepend() {\n return (\n <div className=\"input-group-prepend\">\n {this.getAddons({ type: 'prepend', addonElements: this.props.inputGroupPrepend })}\n </div>\n );\n }\n\n render() {\n const { description, error, describedBy } = this.getDescriptions();\n return (\n <div className={classNames({\n 'form-group': !this.isGroupedInput(),\n 'form-inline': !this.isGroupedInput() && this.props.inline,\n 'form-check': this.isGroupedInput(),\n })}\n >\n {labelFirst && this.getLabel()}\n {this.props.inputGroupPrepend || this.props.inputGroupAppend ? (\n <div className={classNames('input-group')} data-testid=\"input-group\">\n {this.renderInputGroupPrepend()}\n {this.renderInput(describedBy)}\n {this.renderInputGroupAppend()}\n </div>\n ) : this.renderInput(describedBy)}\n {!labelFirst && this.getLabel()}\n {error}\n {description}\n </div>\n );\n }\n }\n\n NewComponent.displayName = `asInput(${getDisplayName(WrappedComponent)})`;\n\n NewComponent.propTypes = inputProps;\n\n NewComponent.defaultProps = defaultProps;\n\n return withDeprecatedProps(NewComponent, 'asInput', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n ariaLabel: {\n deprType: DeprTypes.MOVED,\n newName: 'aria-label',\n },\n });\n};\n\nexport default asInput;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,24 +3,22 @@
|
|
|
3
3
|
// files confused. Renaming this file allows us to keep the URLs of the docs site
|
|
4
4
|
// unchanged.
|
|
5
5
|
import { useRef, useEffect } from 'react';
|
|
6
|
-
function handleEnter(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} = _ref;
|
|
6
|
+
function handleEnter({
|
|
7
|
+
event,
|
|
8
|
+
currentIndex,
|
|
9
|
+
activeElement
|
|
10
|
+
}) {
|
|
12
11
|
if (currentIndex === -1) {
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
14
|
activeElement.click();
|
|
16
15
|
event.preventDefault();
|
|
17
16
|
}
|
|
18
|
-
function handleArrowKey(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} = _ref2;
|
|
17
|
+
function handleArrowKey({
|
|
18
|
+
event,
|
|
19
|
+
currentIndex,
|
|
20
|
+
availableElements
|
|
21
|
+
}) {
|
|
24
22
|
// If the focus isn't in the container, focus on the first thing
|
|
25
23
|
if (currentIndex === -1) {
|
|
26
24
|
availableElements[0].focus();
|
|
@@ -46,13 +44,12 @@ function handleArrowKey(_ref2) {
|
|
|
46
44
|
/**
|
|
47
45
|
* Implement arrow key navigation for the given parentNode
|
|
48
46
|
*/
|
|
49
|
-
function handleEvents(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
} = _ref3;
|
|
47
|
+
function handleEvents({
|
|
48
|
+
event,
|
|
49
|
+
ignoredKeys = [],
|
|
50
|
+
parentNode,
|
|
51
|
+
selectors = 'a,button,input'
|
|
52
|
+
}) {
|
|
56
53
|
if (!parentNode) {
|
|
57
54
|
return;
|
|
58
55
|
}
|
|
@@ -97,8 +94,7 @@ function handleEvents(_ref3) {
|
|
|
97
94
|
/**
|
|
98
95
|
* A React hook to enable arrow key navigation on a component.
|
|
99
96
|
*/
|
|
100
|
-
export default function useArrowKeyNavigation() {
|
|
101
|
-
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
97
|
+
export default function useArrowKeyNavigation(props = {}) {
|
|
102
98
|
const {
|
|
103
99
|
selectors,
|
|
104
100
|
ignoredKeys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArrowKeyNavigationHook.js","names":["useRef","useEffect","handleEnter","
|
|
1
|
+
{"version":3,"file":"useArrowKeyNavigationHook.js","names":["useRef","useEffect","handleEnter","event","currentIndex","activeElement","click","preventDefault","handleArrowKey","availableElements","focus","nextElement","key","length","handleEvents","ignoredKeys","parentNode","selectors","includes","document","contains","querySelectorAll","Array","from","findIndex","availableElement","useArrowKeyNavigation","props","eventHandler","current","addEventListener","removeEventListener"],"sources":["../../src/hooks/useArrowKeyNavigationHook.tsx"],"sourcesContent":["// Note: this file was renamed from 'useArrowKeyNavigation.tsx' to 'useArrowKeyNavigationHook.tsx' to fix\n// some bugs in the Gatsby www site, where Webpack was getting the .tsx and .mdx\n// files confused. Renaming this file allows us to keep the URLs of the docs site\n// unchanged.\nimport { useRef, useEffect } from 'react';\n\ninterface HandleEnterArgs {\n event: KeyboardEvent;\n currentIndex: number;\n activeElement: HTMLElement;\n}\n\nfunction handleEnter({ event, currentIndex, activeElement }: HandleEnterArgs) {\n if (currentIndex === -1) { return; }\n activeElement.click();\n event.preventDefault();\n}\n\ninterface HandleArrowKeyArgs {\n event: KeyboardEvent;\n currentIndex: number;\n availableElements: NodeListOf<HTMLElement>;\n}\n\nfunction handleArrowKey({ event, currentIndex, availableElements }: HandleArrowKeyArgs) {\n // If the focus isn't in the container, focus on the first thing\n if (currentIndex === -1) { availableElements[0].focus(); }\n\n // Move the focus up or down. Wrap around ends of list.\n let nextElement;\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n nextElement = availableElements[(currentIndex + 1) % availableElements.length];\n }\n if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n nextElement = currentIndex - 1 < 0\n ? availableElements[currentIndex - 1 + availableElements.length]\n : availableElements[currentIndex - 1];\n }\n if (event.key === 'End') {\n nextElement = availableElements[availableElements.length - 1];\n }\n if (event.key === 'Home') {\n [nextElement] = availableElements;\n }\n\n nextElement?.focus();\n event.preventDefault();\n}\n\ninterface HandleEventsArgs {\n event: KeyboardEvent;\n ignoredKeys?: string[];\n parentNode: HTMLElement | undefined;\n selectors?: string;\n}\n\n/**\n * Implement arrow key navigation for the given parentNode\n */\nfunction handleEvents({\n event,\n ignoredKeys = [],\n parentNode,\n selectors = 'a,button,input',\n}: HandleEventsArgs) {\n if (!parentNode) { return; }\n\n const { key } = event;\n\n if (!['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Home', 'End'].includes(key)\n || ignoredKeys.includes(key)) {\n return;\n }\n\n const { activeElement } = document;\n\n // If we're not inside the container, don't do anything\n if (!parentNode.contains(activeElement)) { return; }\n\n // Get the list of elements we're allowed to scroll through\n const availableElements = parentNode.querySelectorAll<HTMLElement>(selectors);\n\n // No elements are available to loop through.\n if (!availableElements.length) { return; }\n\n // Which index is currently selected\n const currentIndex = Array.from(availableElements).findIndex(\n (availableElement) => availableElement === activeElement,\n );\n\n if (key === 'Enter' && activeElement) {\n handleEnter({ event, currentIndex, activeElement: activeElement as HTMLElement });\n }\n handleArrowKey({ event, currentIndex, availableElements });\n}\n\nexport interface ArrowKeyNavProps {\n /** e.g. 'a,button,input' */\n selectors?: string;\n ignoredKeys?: string[];\n}\n\n/**\n * A React hook to enable arrow key navigation on a component.\n */\nexport default function useArrowKeyNavigation(props: ArrowKeyNavProps = {}) {\n const { selectors, ignoredKeys } = props;\n const parentNode = useRef<HTMLElement>();\n\n useEffect(() => {\n const eventHandler = (event: KeyboardEvent) => {\n handleEvents({\n event, ignoredKeys, parentNode: parentNode.current, selectors,\n });\n };\n\n document.addEventListener('keydown', eventHandler);\n\n return () => document.removeEventListener('keydown', eventHandler);\n }, [ignoredKeys, selectors]);\n\n return parentNode;\n}\n"],"mappings":"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","ignoreList":[]}
|