diff --git a/packages/react-catalog-view-extension/package.json b/packages/react-catalog-view-extension/package.json index e1655fb5e6d..670b2d91540 100644 --- a/packages/react-catalog-view-extension/package.json +++ b/packages/react-catalog-view-extension/package.json @@ -62,11 +62,11 @@ "node-sass": "^4.12.0", "rimraf": "^2.6.2", "shx": "^0.3.2", - "typescript": "3.4.5" + "typescript": "^3.8.3" }, "peerDependencies": { "prop-types": "^15.6.1", "react": "^16.4.0", "react-dom": "^15.6.2 || ^16.4.0" } -} +} \ No newline at end of file diff --git a/packages/react-catalog-view-extension/src/components/CatalogItemHeader/CatalogItemHeader.tsx b/packages/react-catalog-view-extension/src/components/CatalogItemHeader/CatalogItemHeader.tsx index f955d68c235..50eb6412d49 100644 --- a/packages/react-catalog-view-extension/src/components/CatalogItemHeader/CatalogItemHeader.tsx +++ b/packages/react-catalog-view-extension/src/components/CatalogItemHeader/CatalogItemHeader.tsx @@ -1,8 +1,6 @@ import * as React from 'react'; import classNames from 'classnames'; -import { Omit } from '../../helpers/typeUtils'; - export interface CatalogItemHeaderProps extends Omit, 'title'> { /** Additional css classes */ className?: string; diff --git a/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTile.tsx b/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTile.tsx index 17d6a4d730d..8f0156d1101 100644 --- a/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTile.tsx +++ b/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTile.tsx @@ -7,7 +7,6 @@ import { CardBody } from '@patternfly/react-core/dist/js/components/Card/CardBod import { CardFooter } from '@patternfly/react-core/dist/js/components/Card/CardFooter'; import classNames from 'classnames'; -import { Omit } from '../../helpers/typeUtils'; export interface CatalogTileProps extends Omit, 'title'> { /** Id */ id?: any; diff --git a/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTileBadge.tsx b/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTileBadge.tsx index 7f779ca5fb9..2812c2561ca 100644 --- a/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTileBadge.tsx +++ b/packages/react-catalog-view-extension/src/components/CatalogTile/CatalogTileBadge.tsx @@ -2,8 +2,6 @@ import * as React from 'react'; import { Tooltip } from '@patternfly/react-core'; import classNames from 'classnames'; -import { Omit } from '../../helpers/typeUtils'; - export interface CatalogTileBadgeProps extends Omit, 'title'> { /** Children (typically an Icon) */ children?: React.ReactNode; diff --git a/packages/react-catalog-view-extension/src/components/FilterSidePanel/FilterSidePanelCategory.tsx b/packages/react-catalog-view-extension/src/components/FilterSidePanel/FilterSidePanelCategory.tsx index b1c25e00f2a..400ff7beb62 100644 --- a/packages/react-catalog-view-extension/src/components/FilterSidePanel/FilterSidePanelCategory.tsx +++ b/packages/react-catalog-view-extension/src/components/FilterSidePanel/FilterSidePanelCategory.tsx @@ -5,7 +5,6 @@ import { default as formStyles } from '@patternfly/react-styles/css/components/F import { css } from '@patternfly/react-styles'; import { childrenToArray } from '../../helpers/util'; -import { Omit } from '../../helpers/typeUtils'; export interface FilterSidePanelCategoryProps extends Omit, 'title'> { /** Children nodes */ diff --git a/packages/react-catalog-view-extension/src/components/PropertiesSidePanel/PropertyItem.tsx b/packages/react-catalog-view-extension/src/components/PropertiesSidePanel/PropertyItem.tsx index 3630c14f25e..0621e5ce4b8 100644 --- a/packages/react-catalog-view-extension/src/components/PropertiesSidePanel/PropertyItem.tsx +++ b/packages/react-catalog-view-extension/src/components/PropertiesSidePanel/PropertyItem.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import classNames from 'classnames'; -import { Omit } from '../../helpers/typeUtils'; import { Text, TextVariants } from '@patternfly/react-core/dist/js/components/Text/Text'; export interface PropertyItemProps extends Omit, 'label' | 'value'> { diff --git a/packages/react-catalog-view-extension/src/components/VerticalTabs/VerticalTabsTab.tsx b/packages/react-catalog-view-extension/src/components/VerticalTabs/VerticalTabsTab.tsx index 9b839c758bf..6a3c06dabaa 100644 --- a/packages/react-catalog-view-extension/src/components/VerticalTabs/VerticalTabsTab.tsx +++ b/packages/react-catalog-view-extension/src/components/VerticalTabs/VerticalTabsTab.tsx @@ -1,8 +1,6 @@ import * as React from 'react'; import classNames from 'classnames'; -import { Omit } from '../../helpers/typeUtils'; - export interface VerticalTabsTabProps extends Omit, 'title'> { /** Child tab nodes (VerticalTabsTab's) */ children?: React.ReactNode; diff --git a/packages/react-catalog-view-extension/src/helpers/typeUtils.ts b/packages/react-catalog-view-extension/src/helpers/typeUtils.ts deleted file mode 100644 index 12e2c0ebd43..00000000000 --- a/packages/react-catalog-view-extension/src/helpers/typeUtils.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type OneOf = T[K]; - -// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html -export type Omit = Pick>; diff --git a/packages/react-charts/package.json b/packages/react-charts/package.json index 01d64adf03f..7796c05e31c 100644 --- a/packages/react-charts/package.json +++ b/packages/react-charts/package.json @@ -69,6 +69,6 @@ "fs-extra": "^6.0.1", "glob": "^7.1.2", "rimraf": "^2.6.2", - "typescript": "3.4.5" + "typescript": "^3.8.3" } -} +} \ No newline at end of file diff --git a/packages/react-charts/src/components/ChartLegend/ChartLegend.tsx b/packages/react-charts/src/components/ChartLegend/ChartLegend.tsx index 71ceeeb05ec..e7ae2822474 100644 --- a/packages/react-charts/src/components/ChartLegend/ChartLegend.tsx +++ b/packages/react-charts/src/components/ChartLegend/ChartLegend.tsx @@ -4,7 +4,6 @@ import { BlockProps, ColorScalePropType, EventPropTypeInterface, - Omit, OrientationTypes, PaddingProps, StringOrNumberOrCallback, diff --git a/packages/react-charts/src/declarations.d.ts b/packages/react-charts/src/declarations.d.ts index 31573b4b28d..c04bcf9ceb4 100644 --- a/packages/react-charts/src/declarations.d.ts +++ b/packages/react-charts/src/declarations.d.ts @@ -5,3 +5,8 @@ declare module 'victory-core' { export const Path: any; export const TextSize: any; } + +declare module 'hoist-non-react-statics' { + const hoist: any; + export default hoist; +} diff --git a/packages/react-core/package.json b/packages/react-core/package.json index c7997e71cfb..c25231ff77c 100644 --- a/packages/react-core/package.json +++ b/packages/react-core/package.json @@ -70,7 +70,7 @@ "generator-tsx-docgen": "^0.1.0", "glob": "^7.1.2", "rimraf": "^2.6.2", - "typescript": "3.4.5", + "typescript": "^3.8.3", "yo": "^3.1.1" }, "peerDependencies": { @@ -78,4 +78,4 @@ "react": "^16.4.0", "react-dom": "^15.6.2 || ^16.4.0" } -} +} \ No newline at end of file diff --git a/packages/react-core/src/components/Accordion/AccordionToggle.tsx b/packages/react-core/src/components/Accordion/AccordionToggle.tsx index 42958e69507..37b645ace31 100644 --- a/packages/react-core/src/components/Accordion/AccordionToggle.tsx +++ b/packages/react-core/src/components/Accordion/AccordionToggle.tsx @@ -2,7 +2,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/Accordion/accordion'; import AngleRightIcon from '@patternfly/react-icons/dist/js/icons/angle-right-icon'; -import { Omit } from '../../helpers/typeUtils'; import { AccordionContext } from './AccordionContext'; export interface AccordionToggleProps extends Omit, 'type'> { diff --git a/packages/react-core/src/components/Alert/Alert.tsx b/packages/react-core/src/components/Alert/Alert.tsx index 1cfdc43514b..fc59afd826b 100644 --- a/packages/react-core/src/components/Alert/Alert.tsx +++ b/packages/react-core/src/components/Alert/Alert.tsx @@ -4,7 +4,6 @@ import styles from '@patternfly/react-styles/css/components/Alert/alert'; import accessibleStyles from '@patternfly/react-styles/css/utilities/Accessibility/accessibility'; import { AlertIcon } from './AlertIcon'; import { capitalize } from '../../helpers/util'; -import { Omit } from '../../helpers/typeUtils'; import { InjectedOuiaProps, withOuiaContext } from '../withOuia'; export enum AlertVariant { diff --git a/packages/react-core/src/components/AlertGroup/AlertGroup.tsx b/packages/react-core/src/components/AlertGroup/AlertGroup.tsx index f4a48e321bb..537ac49e3fa 100644 --- a/packages/react-core/src/components/AlertGroup/AlertGroup.tsx +++ b/packages/react-core/src/components/AlertGroup/AlertGroup.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; import { canUseDOM } from '../../helpers'; -import { Omit } from '../../helpers/typeUtils'; import { AlertGroupInline } from './AlertGroupInline'; export interface AlertGroupProps extends Omit, 'className'> { diff --git a/packages/react-core/src/components/BackgroundImage/BackgroundImage.tsx b/packages/react-core/src/components/BackgroundImage/BackgroundImage.tsx index a6eade21c50..1821ffc1fc2 100644 --- a/packages/react-core/src/components/BackgroundImage/BackgroundImage.tsx +++ b/packages/react-core/src/components/BackgroundImage/BackgroundImage.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { Omit } from '../../helpers/typeUtils'; import { css, StyleSheet } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/BackgroundImage/background-image'; diff --git a/packages/react-core/src/components/Checkbox/Checkbox.tsx b/packages/react-core/src/components/Checkbox/Checkbox.tsx index 42bacd8c3a4..f05f0671640 100644 --- a/packages/react-core/src/components/Checkbox/Checkbox.tsx +++ b/packages/react-core/src/components/Checkbox/Checkbox.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Check/check'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; export interface CheckboxProps extends Omit, 'type' | 'onChange' | 'disabled' | 'label'> { diff --git a/packages/react-core/src/components/ClipboardCopy/ClipboardCopy.tsx b/packages/react-core/src/components/ClipboardCopy/ClipboardCopy.tsx index 16c7d58daaf..6e9b5819e05 100644 --- a/packages/react-core/src/components/ClipboardCopy/ClipboardCopy.tsx +++ b/packages/react-core/src/components/ClipboardCopy/ClipboardCopy.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/ClipboardCopy/clipboard-copy'; import { css } from '@patternfly/react-styles'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; import { PopoverPosition } from '../Popover'; import { TextInput } from '../TextInput'; import { TooltipPosition } from '../Tooltip'; diff --git a/packages/react-core/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx b/packages/react-core/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx index 420b892b99d..d0fa1373bc7 100644 --- a/packages/react-core/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx +++ b/packages/react-core/src/components/ClipboardCopy/ClipboardCopyExpanded.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/ClipboardCopy/clipboard-copy'; import { css } from '@patternfly/react-styles'; import { ClipboardCopyProps } from './ClipboardCopy'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; export interface ClipboardCopyExpandedProps extends Omit { className?: string; diff --git a/packages/react-core/src/components/DataList/DataListAction.tsx b/packages/react-core/src/components/DataList/DataListAction.tsx index 9eae93d8031..d8d6e2b6ee9 100644 --- a/packages/react-core/src/components/DataList/DataListAction.tsx +++ b/packages/react-core/src/components/DataList/DataListAction.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { css, pickProperties } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/DataList/data-list'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; const visibilityModifiers = pickProperties(styles.modifiers, [ 'hidden', diff --git a/packages/react-core/src/components/DataList/DataListCell.tsx b/packages/react-core/src/components/DataList/DataListCell.tsx index 3607e1aae59..f316e14fa03 100644 --- a/packages/react-core/src/components/DataList/DataListCell.tsx +++ b/packages/react-core/src/components/DataList/DataListCell.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css, getModifier } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/DataList/data-list'; -import { Omit } from '../../helpers/typeUtils'; export interface DataListCellProps extends Omit, 'width'> { /** Content rendered inside the DataList cell */ diff --git a/packages/react-core/src/components/DataList/DataListCheck.tsx b/packages/react-core/src/components/DataList/DataListCheck.tsx index 9c92c99a8e6..efa5722d265 100644 --- a/packages/react-core/src/components/DataList/DataListCheck.tsx +++ b/packages/react-core/src/components/DataList/DataListCheck.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/DataList/data-list'; -import { Omit } from '../../helpers/typeUtils'; export interface DataListCheckProps extends Omit, 'onChange' | 'checked'> { /** Additional classes added to the DataList item checkbox */ diff --git a/packages/react-core/src/components/DataList/DataListItem.tsx b/packages/react-core/src/components/DataList/DataListItem.tsx index c9687b75796..5e9fd2bd8f0 100644 --- a/packages/react-core/src/components/DataList/DataListItem.tsx +++ b/packages/react-core/src/components/DataList/DataListItem.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/DataList/data-list'; -import { Omit } from '../../helpers/typeUtils'; import { DataListContext } from './DataList'; import { KeyTypes } from '../Select'; diff --git a/packages/react-core/src/components/DataList/DataListItemRow.tsx b/packages/react-core/src/components/DataList/DataListItemRow.tsx index 5158cf8f030..7301d2a9352 100644 --- a/packages/react-core/src/components/DataList/DataListItemRow.tsx +++ b/packages/react-core/src/components/DataList/DataListItemRow.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/DataList/data-list'; -import { Omit } from '../../helpers/typeUtils'; export interface DataListItemRowProps extends Omit, 'children'> { children: React.ReactNode; diff --git a/packages/react-core/src/components/DataToolbar/DataToolbarGroup.tsx b/packages/react-core/src/components/DataToolbar/DataToolbarGroup.tsx index e4951c275e1..3a0a4d59a6c 100644 --- a/packages/react-core/src/components/DataToolbar/DataToolbarGroup.tsx +++ b/packages/react-core/src/components/DataToolbar/DataToolbarGroup.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/DataToolbar/data-toolbar'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; import { DataToolbarBreakpointMod } from './DataToolbarUtils'; import { formatBreakpointMods } from '../../helpers/util'; import { RefObject } from 'react'; diff --git a/packages/react-core/src/components/Dropdown/DropdownGroup.tsx b/packages/react-core/src/components/Dropdown/DropdownGroup.tsx index ed9fb9e75d0..ffb0cd72ec6 100644 --- a/packages/react-core/src/components/Dropdown/DropdownGroup.tsx +++ b/packages/react-core/src/components/Dropdown/DropdownGroup.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import { DropdownContext } from './dropdownConstants'; -import { Omit } from '../../helpers/typeUtils'; export interface DropdownGroupProps extends Omit, 'label'> { /** Checkboxes within group */ diff --git a/packages/react-core/src/components/Dropdown/DropdownToggleCheckbox.tsx b/packages/react-core/src/components/Dropdown/DropdownToggleCheckbox.tsx index 2d1b741f466..9a4858159c3 100644 --- a/packages/react-core/src/components/Dropdown/DropdownToggleCheckbox.tsx +++ b/packages/react-core/src/components/Dropdown/DropdownToggleCheckbox.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Dropdown/dropdown'; import { css } from '@patternfly/react-styles'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; export interface DropdownToggleCheckboxProps extends Omit, 'type' | 'onChange' | 'disabled' | 'checked'> { diff --git a/packages/react-core/src/components/EmptyState/EmptyStateIcon.tsx b/packages/react-core/src/components/EmptyState/EmptyStateIcon.tsx index 8ea6d1ae50a..6dc4182b095 100644 --- a/packages/react-core/src/components/EmptyState/EmptyStateIcon.tsx +++ b/packages/react-core/src/components/EmptyState/EmptyStateIcon.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/EmptyState/empty-state'; -import { Omit } from '../../helpers/typeUtils'; export enum IconSize { sm = 'sm', diff --git a/packages/react-core/src/components/FileUpload/FileUpload.tsx b/packages/react-core/src/components/FileUpload/FileUpload.tsx index be5dd00a61d..6e1f16443a9 100644 --- a/packages/react-core/src/components/FileUpload/FileUpload.tsx +++ b/packages/react-core/src/components/FileUpload/FileUpload.tsx @@ -1,6 +1,5 @@ import * as React from 'react'; import Dropzone, { DropzoneProps, DropFileEventHandler } from 'react-dropzone'; -import { Omit } from '../../helpers'; import { FileUploadField, FileUploadFieldProps } from './FileUploadField'; import { readFile, fileReaderType } from '../../helpers/fileUtils'; diff --git a/packages/react-core/src/components/FileUpload/FileUploadField.tsx b/packages/react-core/src/components/FileUpload/FileUploadField.tsx index 77b354003da..b1d7295eb96 100644 --- a/packages/react-core/src/components/FileUpload/FileUploadField.tsx +++ b/packages/react-core/src/components/FileUpload/FileUploadField.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/FileUpload/file-upload'; import { css } from '@patternfly/react-styles'; -import { Omit } from '../../helpers'; import { InputGroup } from '../InputGroup'; import { TextInput } from '../TextInput'; import { Button, ButtonVariant } from '../Button'; diff --git a/packages/react-core/src/components/Form/FormGroup.tsx b/packages/react-core/src/components/Form/FormGroup.tsx index b6b6f001980..f28dcbdfbe5 100644 --- a/packages/react-core/src/components/Form/FormGroup.tsx +++ b/packages/react-core/src/components/Form/FormGroup.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { Omit } from '../../helpers/typeUtils'; import styles from '@patternfly/react-styles/css/components/Form/form'; import { ASTERISK } from '../../helpers/htmlConstants'; import { FormContext } from './FormContext'; diff --git a/packages/react-core/src/components/FormSelect/FormSelect.tsx b/packages/react-core/src/components/FormSelect/FormSelect.tsx index 3895e34ef49..b2eac6400b5 100644 --- a/packages/react-core/src/components/FormSelect/FormSelect.tsx +++ b/packages/react-core/src/components/FormSelect/FormSelect.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/FormControl/form-control'; import { css } from '@patternfly/react-styles'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; import { ValidatedOptions } from '../../helpers/constants'; export interface FormSelectProps diff --git a/packages/react-core/src/components/FormSelect/FormSelectOption.tsx b/packages/react-core/src/components/FormSelect/FormSelectOption.tsx index 51eff5c9b3f..21a6fe31a33 100644 --- a/packages/react-core/src/components/FormSelect/FormSelectOption.tsx +++ b/packages/react-core/src/components/FormSelect/FormSelectOption.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { Omit } from '../../helpers/typeUtils'; export interface FormSelectOptionProps extends Omit, 'disabled'> { /** additional classes added to the Select Option */ diff --git a/packages/react-core/src/components/FormSelect/FormSelectOptionGroup.tsx b/packages/react-core/src/components/FormSelect/FormSelectOptionGroup.tsx index cb01b909b61..adbf69e1e21 100644 --- a/packages/react-core/src/components/FormSelect/FormSelectOptionGroup.tsx +++ b/packages/react-core/src/components/FormSelect/FormSelectOptionGroup.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { Omit } from '../../helpers/typeUtils'; export interface FormSelectOptionGroupProps extends Omit, 'disabled'> { /** content rendered inside the Select Option Group */ diff --git a/packages/react-core/src/components/List/List.tsx b/packages/react-core/src/components/List/List.tsx index 1f47e45cda2..4bb2866edeb 100644 --- a/packages/react-core/src/components/List/List.tsx +++ b/packages/react-core/src/components/List/List.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/List/list'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; export enum OrderType { number = '1', diff --git a/packages/react-core/src/components/Nav/Nav.tsx b/packages/react-core/src/components/Nav/Nav.tsx index d687f98330e..c0da632b34c 100644 --- a/packages/react-core/src/components/Nav/Nav.tsx +++ b/packages/react-core/src/components/Nav/Nav.tsx @@ -2,7 +2,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Nav/nav'; import { css } from '@patternfly/react-styles'; import { InjectedOuiaProps, withOuiaContext } from '../withOuia'; -import { Omit } from '../../helpers/typeUtils'; export type NavSelectClickHandler = ( e: React.FormEvent, diff --git a/packages/react-core/src/components/Nav/NavItem.tsx b/packages/react-core/src/components/Nav/NavItem.tsx index 425a4009ff4..c49766dd7fc 100644 --- a/packages/react-core/src/components/Nav/NavItem.tsx +++ b/packages/react-core/src/components/Nav/NavItem.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Nav/nav'; import { css } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; import { NavContext, NavSelectClickHandler } from './Nav'; export interface NavItemProps extends Omit, 'onClick'> { diff --git a/packages/react-core/src/components/OptionsMenu/OptionsMenuItem.tsx b/packages/react-core/src/components/OptionsMenu/OptionsMenuItem.tsx index 93115f3a49c..b3ecffa3c2e 100644 --- a/packages/react-core/src/components/OptionsMenu/OptionsMenuItem.tsx +++ b/packages/react-core/src/components/OptionsMenu/OptionsMenuItem.tsx @@ -3,7 +3,6 @@ import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/OptionsMenu/options-menu'; import { DropdownItem } from '../Dropdown'; import CheckIcon from '@patternfly/react-icons/dist/js/icons/check-icon'; -import { Omit } from '../../helpers/typeUtils'; export interface OptionsMenuItemProps extends Omit, 'onSelect' | 'onClick' | 'onKeyDown' | 'type'> { diff --git a/packages/react-core/src/components/Popover/PopoverHeader.tsx b/packages/react-core/src/components/Popover/PopoverHeader.tsx index 173e8d16653..fd56a1e4188 100644 --- a/packages/react-core/src/components/Popover/PopoverHeader.tsx +++ b/packages/react-core/src/components/Popover/PopoverHeader.tsx @@ -1,6 +1,5 @@ import * as React from 'react'; import { Title, TitleSize } from '../Title'; -import { Omit } from '../../helpers/typeUtils'; export const PopoverHeader: React.FunctionComponent = ({ children, diff --git a/packages/react-core/src/components/Progress/Progress.tsx b/packages/react-core/src/components/Progress/Progress.tsx index f6c6a9db7f6..b278aa60e79 100644 --- a/packages/react-core/src/components/Progress/Progress.tsx +++ b/packages/react-core/src/components/Progress/Progress.tsx @@ -3,7 +3,6 @@ import styles from '@patternfly/react-styles/css/components/Progress/progress'; import { css, getModifier } from '@patternfly/react-styles'; import { ProgressContainer, ProgressMeasureLocation, ProgressVariant } from './ProgressContainer'; import { getUniqueId } from '../../helpers/util'; -import { Omit } from '../../helpers/typeUtils'; export enum ProgressSize { sm = 'sm', diff --git a/packages/react-core/src/components/Progress/ProgressContainer.tsx b/packages/react-core/src/components/Progress/ProgressContainer.tsx index f0e40f6cd0c..899e45a9156 100644 --- a/packages/react-core/src/components/Progress/ProgressContainer.tsx +++ b/packages/react-core/src/components/Progress/ProgressContainer.tsx @@ -4,7 +4,6 @@ import { css } from '@patternfly/react-styles'; import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon'; import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon'; import { AriaProps, ProgressBar } from './ProgressBar'; -import { Omit } from '../../helpers/typeUtils'; export enum ProgressMeasureLocation { outside = 'outside', diff --git a/packages/react-core/src/components/Radio/Radio.tsx b/packages/react-core/src/components/Radio/Radio.tsx index 7436aaa68ed..d867b8bb29c 100644 --- a/packages/react-core/src/components/Radio/Radio.tsx +++ b/packages/react-core/src/components/Radio/Radio.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Radio/radio'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; export interface RadioProps extends Omit, 'disabled' | 'label' | 'onChange' | 'type'> { diff --git a/packages/react-core/src/components/Select/Select.tsx b/packages/react-core/src/components/Select/Select.tsx index b88dc766e82..6b2bf3d3a96 100644 --- a/packages/react-core/src/components/Select/Select.tsx +++ b/packages/react-core/src/components/Select/Select.tsx @@ -11,7 +11,7 @@ import { SelectToggle } from './SelectToggle'; import { SelectContext, SelectVariant, SelectDirection, KeyTypes } from './selectConstants'; import { Chip, ChipGroup } from '../ChipGroup'; import { keyHandler, getNextIndex } from '../../helpers/util'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; import { InjectedOuiaProps, withOuiaContext } from '../withOuia'; import { Divider } from '../Divider'; diff --git a/packages/react-core/src/components/Select/SelectMenu.tsx b/packages/react-core/src/components/Select/SelectMenu.tsx index 8e485aba094..c40ce921640 100644 --- a/packages/react-core/src/components/Select/SelectMenu.tsx +++ b/packages/react-core/src/components/Select/SelectMenu.tsx @@ -4,7 +4,7 @@ import { default as formStyles } from '@patternfly/react-styles/css/components/F import { css } from '@patternfly/react-styles'; import { SelectOptionObject, SelectOption } from './SelectOption'; import { SelectConsumer, SelectVariant } from './selectConstants'; -import { Omit, PickOptional } from '../../helpers/typeUtils'; +import { PickOptional } from '../../helpers/typeUtils'; // eslint-disable-next-line @typescript-eslint/no-var-requires const FocusTrap: any = require('focus-trap-react'); diff --git a/packages/react-core/src/components/Select/SelectOption.tsx b/packages/react-core/src/components/Select/SelectOption.tsx index ed8f071591e..177703e9bc3 100644 --- a/packages/react-core/src/components/Select/SelectOption.tsx +++ b/packages/react-core/src/components/Select/SelectOption.tsx @@ -4,7 +4,6 @@ import { default as checkStyles } from '@patternfly/react-styles/css/components/ import { css } from '@patternfly/react-styles'; import CheckIcon from '@patternfly/react-icons/dist/js/icons/check-icon'; import { SelectConsumer, SelectVariant, KeyTypes } from './selectConstants'; -import { Omit } from '../../helpers/typeUtils'; export interface SelectOptionObject { /** Function returns a string to represent the select option object */ diff --git a/packages/react-core/src/components/SimpleList/SimpleList.tsx b/packages/react-core/src/components/SimpleList/SimpleList.tsx index a03336ffbe2..d8089cfbb1b 100644 --- a/packages/react-core/src/components/SimpleList/SimpleList.tsx +++ b/packages/react-core/src/components/SimpleList/SimpleList.tsx @@ -3,7 +3,6 @@ import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/SimpleList/simple-list'; import { SimpleListGroup } from './SimpleListGroup'; import { SimpleListItemProps } from './SimpleListItem'; -import { Omit } from '../../helpers/typeUtils'; export interface SimpleListProps extends Omit, 'onSelect'> { /** Content rendered inside the SimpleList */ diff --git a/packages/react-core/src/components/SimpleList/SimpleListGroup.tsx b/packages/react-core/src/components/SimpleList/SimpleListGroup.tsx index 94d10aa1802..ebdcf4b81f8 100644 --- a/packages/react-core/src/components/SimpleList/SimpleListGroup.tsx +++ b/packages/react-core/src/components/SimpleList/SimpleListGroup.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { css } from '@patternfly/react-styles'; import styles from '@patternfly/react-styles/css/components/SimpleList/simple-list'; -import { Omit } from '../../helpers/typeUtils'; export interface SimpleListGroupProps extends Omit, 'title'> { /** Content rendered inside the SimpleList group */ diff --git a/packages/react-core/src/components/Spinner/Spinner.tsx b/packages/react-core/src/components/Spinner/Spinner.tsx index c52afe3557b..4b33caf6ba4 100644 --- a/packages/react-core/src/components/Spinner/Spinner.tsx +++ b/packages/react-core/src/components/Spinner/Spinner.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/Spinner/spinner'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; export enum spinnerSize { sm = 'sm', diff --git a/packages/react-core/src/components/Switch/Switch.tsx b/packages/react-core/src/components/Switch/Switch.tsx index 865874f2beb..fc3762ed877 100644 --- a/packages/react-core/src/components/Switch/Switch.tsx +++ b/packages/react-core/src/components/Switch/Switch.tsx @@ -3,7 +3,6 @@ import styles from '@patternfly/react-styles/css/components/Switch/switch'; import { css } from '@patternfly/react-styles'; import CheckIcon from '@patternfly/react-icons/dist/js/icons/check-icon'; import { getUniqueId } from '../../helpers/util'; -import { Omit } from '../../helpers/typeUtils'; import { InjectedOuiaProps, withOuiaContext } from '../withOuia'; export interface SwitchProps diff --git a/packages/react-core/src/components/Tabs/Tab.tsx b/packages/react-core/src/components/Tabs/Tab.tsx index 1625f7a3200..fe623f3abc8 100644 --- a/packages/react-core/src/components/Tabs/Tab.tsx +++ b/packages/react-core/src/components/Tabs/Tab.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { Omit } from '../../helpers/typeUtils'; export interface TabProps extends Omit, 'title'> { /** content rendered inside the Tab content area. */ @@ -18,4 +17,4 @@ export interface TabProps extends Omit; } -export const Tab: React.FunctionComponent = (_props: TabProps) => null; +export const Tab: React.FunctionComponent = () => null; diff --git a/packages/react-core/src/components/Tabs/TabButton.tsx b/packages/react-core/src/components/Tabs/TabButton.tsx index 3f338d836f2..96ce2da5cf7 100644 --- a/packages/react-core/src/components/Tabs/TabButton.tsx +++ b/packages/react-core/src/components/Tabs/TabButton.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -export interface TabButtonProps extends React.HTMLProps { +export interface TabButtonProps extends Omit, 'ref'> { /** content rendered inside the Tab content area. */ children?: React.ReactNode; /** additional classes added to the Tab */ @@ -8,10 +8,10 @@ export interface TabButtonProps extends React.HTMLProps instead of a - - + Tab item 1 + +
  • - - - - - + Tab item 2 + +
  • - - - - - + Tab item 3 + +
  • @@ -251,7 +230,7 @@ exports[`should call handleScrollButtons tabs with scrolls 1`] = ` id="tab1" key="0/.0" > - Tab 1 section - + - Tab 2 section - + - Tab 3 section - + @@ -470,29 +449,22 @@ exports[`should call scrollLeft tabs with scrolls 1`] = ` id="pf-tab-0-tab1" onClick={[Function]} > - - - - - + Tab item 1 + +
  • - - - - - + Tab item 2 + +
  • - - - - - + Tab item 3 + +
  • @@ -613,7 +571,7 @@ exports[`should call scrollLeft tabs with scrolls 1`] = ` id="tab1" key="0/.0" > - Tab 1 section - + - Tab 2 section - + - Tab 3 section - + @@ -832,29 +790,22 @@ exports[`should call scrollRight tabs with scrolls 1`] = ` id="pf-tab-0-tab1" onClick={[Function]} > - - - - - + Tab item 1 + +
  • - - - - - + Tab item 2 + +
  • - - - - - + Tab item 3 + +
  • @@ -975,7 +912,7 @@ exports[`should call scrollRight tabs with scrolls 1`] = ` id="tab1" key="0/.0" > - Tab 1 section - + - Tab 2 section - + - Tab 3 section - + diff --git a/packages/react-core/src/components/TextArea/TextArea.tsx b/packages/react-core/src/components/TextArea/TextArea.tsx index 98d847cb2ab..63a10b509ac 100644 --- a/packages/react-core/src/components/TextArea/TextArea.tsx +++ b/packages/react-core/src/components/TextArea/TextArea.tsx @@ -2,7 +2,6 @@ import * as React from 'react'; import { HTMLProps } from 'react'; import styles from '@patternfly/react-styles/css/components/FormControl/form-control'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; import { ValidatedOptions } from '../../helpers/constants'; export enum TextAreResizeOrientation { diff --git a/packages/react-core/src/components/TextInput/TextInput.tsx b/packages/react-core/src/components/TextInput/TextInput.tsx index 10baf47273e..de4ac56ef81 100644 --- a/packages/react-core/src/components/TextInput/TextInput.tsx +++ b/packages/react-core/src/components/TextInput/TextInput.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import styles from '@patternfly/react-styles/css/components/FormControl/form-control'; import { css } from '@patternfly/react-styles'; -import { Omit, withInnerRef } from '../../helpers'; import { ValidatedOptions } from '../../helpers/constants'; export enum TextInputTypes { @@ -18,7 +17,7 @@ export enum TextInputTypes { url = 'url' } -export interface TextInputProps extends Omit, 'onChange' | 'disabled'> { +export interface TextInputProps extends Omit, 'onChange' | 'disabled' | 'ref'> { /** Additional classes added to the TextInput. */ className?: string; /** Flag to show if the input is disabled. */ @@ -57,7 +56,7 @@ export interface TextInputProps extends Omit, innerRef?: React.Ref; } -class TextInputBase extends React.Component { +export class TextInputBase extends React.Component { static defaultProps: TextInputProps = { 'aria-label': null as string, className: '', @@ -120,5 +119,6 @@ class TextInputBase extends React.Component { } } -const TextInputFR = withInnerRef(TextInputBase); -export { TextInputFR as TextInput, TextInputBase }; +export const TextInput = React.forwardRef((props: TextInputProps, ref: React.Ref) => ( + +)); diff --git a/packages/react-core/src/components/Title/Title.tsx b/packages/react-core/src/components/Title/Title.tsx index 0bf143e4065..dc45ad2ec2f 100644 --- a/packages/react-core/src/components/Title/Title.tsx +++ b/packages/react-core/src/components/Title/Title.tsx @@ -1,6 +1,5 @@ import * as React from 'react'; import { css, getModifier } from '@patternfly/react-styles'; -import { Omit } from '../../helpers/typeUtils'; import styles from '@patternfly/react-styles/css/components/Title/title'; import { BaseSizes } from '../../styles/sizes'; diff --git a/packages/react-core/src/helpers/index.ts b/packages/react-core/src/helpers/index.ts index b91bdd1a430..93812a9259c 100644 --- a/packages/react-core/src/helpers/index.ts +++ b/packages/react-core/src/helpers/index.ts @@ -3,4 +3,3 @@ export * from './util'; export * from './constants'; export * from './htmlConstants'; export * from './typeUtils'; -export * from './withInnerRef'; diff --git a/packages/react-core/src/helpers/typeUtils.ts b/packages/react-core/src/helpers/typeUtils.ts index dd1b8ea7add..9c51227e265 100644 --- a/packages/react-core/src/helpers/typeUtils.ts +++ b/packages/react-core/src/helpers/typeUtils.ts @@ -1,8 +1,3 @@ -export type OneOf = T[K]; - -// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html -export type Omit = Pick>; - // Gathers all the required keys from an interface/type T export type RequiredKeys = { [K in keyof T]-?: ({} extends { [P in K]: T[K] } ? never : K); diff --git a/packages/react-core/src/helpers/withInnerRef.tsx b/packages/react-core/src/helpers/withInnerRef.tsx deleted file mode 100644 index c1bf35a73a3..00000000000 --- a/packages/react-core/src/helpers/withInnerRef.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import * as React from 'react'; - -/** - * @param {React.ComponentType} WrappedComponent - React component - */ -export function withInnerRef }>( - WrappedComponent: React.ComponentType

    -): React.ForwardRefExoticComponent & React.RefAttributes> { - // eslint-disable-next-line react/display-name - return React.forwardRef((props, ref) => ); -} diff --git a/packages/react-icons/src/common.d.ts b/packages/react-icons/src/common.d.ts index 024bcf47d38..85b01ca1aaf 100644 --- a/packages/react-icons/src/common.d.ts +++ b/packages/react-icons/src/common.d.ts @@ -1,4 +1,3 @@ -import { OneOf, Omit } from './typeUtils'; import { HTMLProps } from 'react'; export const IconSize: { @@ -10,7 +9,7 @@ export const IconSize: { export interface IconProps extends Omit, 'size'> { color?: string; - size?: OneOf; + size?: keyof typeof IconSize; title?: string; noVerticalAlign?: boolean; } @@ -19,4 +18,4 @@ export const propTypes: Record<'size' | 'color', any>; export const defaultProps: typeof propTypes; -export const getSize: (size: OneOf) => string; +export const getSize: (size: keyof typeof IconSize) => string; diff --git a/packages/react-inline-edit-extension/src/components/TableTextInput/TableTextInput.d.ts b/packages/react-inline-edit-extension/src/components/TableTextInput/TableTextInput.d.ts index 5fd6117322f..2571d51fef9 100644 --- a/packages/react-inline-edit-extension/src/components/TableTextInput/TableTextInput.d.ts +++ b/packages/react-inline-edit-extension/src/components/TableTextInput/TableTextInput.d.ts @@ -1,6 +1,5 @@ import { SFC, FormEvent } from 'react'; import { TextInputProps } from '@patternfly/react-core/dist/js/components/TextInput'; -import { Omit } from '@patternfly/react-core/dist/js/helpers/typeUtils'; export interface TableTextInputProps extends Omit { defaultValue?: string; diff --git a/packages/react-integration/demo-app-ts/package.json b/packages/react-integration/demo-app-ts/package.json index 5072c8f09f1..3200752ee56 100644 --- a/packages/react-integration/demo-app-ts/package.json +++ b/packages/react-integration/demo-app-ts/package.json @@ -18,7 +18,7 @@ "@types/react-dom": "^16.8.0", "@types/react-router-dom": "^4.3.1", "react-scripts": "2.1.3", - "typescript": "3.4.5" + "typescript": "^3.8.3" }, "browserslist": [ ">0.2%", @@ -26,4 +26,4 @@ "not ie <= 11", "not op_mini all" ] -} +} \ No newline at end of file diff --git a/packages/react-integration/package.json b/packages/react-integration/package.json index e6ed281c38b..5136e2c4370 100644 --- a/packages/react-integration/package.json +++ b/packages/react-integration/package.json @@ -38,7 +38,7 @@ "local-web-server": "^2.6.1", "rimraf": "^2.6.2", "ts-loader": "^5.3.3", - "typescript": "3.4.5", + "typescript": "^3.8.3", "webpack": "^4.25.1" } -} +} \ No newline at end of file diff --git a/packages/react-styles/package.json b/packages/react-styles/package.json index 08aba55d5c0..2a910ac695d 100644 --- a/packages/react-styles/package.json +++ b/packages/react-styles/package.json @@ -51,7 +51,7 @@ "jsdom": "^15.1.0", "relative": "^3.0.2", "rimraf": "^2.6.2", - "typescript": "3.4.5" + "typescript": "^3.8.3" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/react-table/package.json b/packages/react-table/package.json index b908041d1aa..c86d9e5d747 100644 --- a/packages/react-table/package.json +++ b/packages/react-table/package.json @@ -68,6 +68,6 @@ "fs-extra": "^6.0.1", "glob": "^7.1.2", "rimraf": "^2.6.2", - "typescript": "3.4.5" + "typescript": "^3.8.3" } -} +} \ No newline at end of file diff --git a/packages/react-table/src/components/Table/Table.tsx b/packages/react-table/src/components/Table/Table.tsx index a6db4e61535..18dd62cd3b6 100644 --- a/packages/react-table/src/components/Table/Table.tsx +++ b/packages/react-table/src/components/Table/Table.tsx @@ -7,7 +7,6 @@ import { DropdownPosition } from '@patternfly/react-core/dist/js/components/Dropdown/dropdownConstants'; import { DropdownItemProps } from '@patternfly/react-core/dist/js/components/Dropdown/DropdownItem'; -import { Omit } from '@patternfly/react-core/dist/js/helpers/typeUtils'; import inlineStyles from '@patternfly/react-styles/css/components/InlineEdit/inline-edit'; import { css, getModifier } from '@patternfly/react-styles'; import { Provider } from './base'; diff --git a/packages/react-topology/package.json b/packages/react-topology/package.json index 4c82674cdbf..5d0fe3e3602 100644 --- a/packages/react-topology/package.json +++ b/packages/react-topology/package.json @@ -64,6 +64,6 @@ "fs-extra": "^6.0.1", "glob": "^7.1.2", "rimraf": "^2.6.2", - "typescript": "3.4.5" + "typescript": "^3.8.3" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 5c491bc4742..243b40ee515 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21890,9 +21890,10 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@3.4.5: - version "3.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" +typescript@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== typical@^2.6.0, typical@^2.6.1: version "2.6.1"