@patternfly/react-core 4.198.14 → 4.198.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/esm/components/Form/FormFieldGroup.d.ts +1 -1
- package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts +2 -2
- package/dist/esm/components/Form/FormFieldGroupHeader.d.ts +3 -1
- package/dist/esm/components/Form/FormFieldGroupHeader.d.ts.map +1 -1
- package/dist/esm/components/Form/FormFieldGroupHeader.js.map +1 -1
- package/dist/esm/components/Form/InternalFormFieldGroup.d.ts +2 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadMain.d.ts +10 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadMain.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadMain.js +9 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadMain.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.d.ts +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.js +21 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatus.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitle.d.ts +6 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitle.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitle.js +9 -2
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitle.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitleIcon.d.ts +2 -0
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitleIcon.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitleIcon.js +2 -4
- package/dist/esm/components/MultipleFileUpload/MultipleFileUploadTitleIcon.js.map +1 -1
- package/dist/esm/components/MultipleFileUpload/index.d.ts +0 -6
- package/dist/esm/components/MultipleFileUpload/index.d.ts.map +1 -1
- package/dist/esm/components/MultipleFileUpload/index.js +0 -6
- package/dist/esm/components/MultipleFileUpload/index.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts +3 -1
- package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tab.js +4 -3
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/Tabs/TabButton.d.ts +2 -0
- package/dist/esm/components/Tabs/TabButton.d.ts.map +1 -1
- package/dist/esm/components/Tabs/TabButton.js +2 -2
- package/dist/esm/components/Tabs/TabButton.js.map +1 -1
- package/dist/esm/components/Tile/Tile.d.ts.map +1 -1
- package/dist/esm/components/Tile/Tile.js +1 -1
- package/dist/esm/components/Tile/Tile.js.map +1 -1
- package/dist/js/components/Form/FormFieldGroup.d.ts +1 -1
- package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +2 -2
- package/dist/js/components/Form/FormFieldGroupHeader.d.ts +3 -1
- package/dist/js/components/Form/FormFieldGroupHeader.d.ts.map +1 -1
- package/dist/js/components/Form/FormFieldGroupHeader.js.map +1 -1
- package/dist/js/components/Form/InternalFormFieldGroup.d.ts +2 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadMain.d.ts +10 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadMain.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadMain.js +9 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadMain.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.d.ts +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.js +21 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatus.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadStatusItem.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitle.d.ts +6 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitle.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitle.js +9 -2
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitle.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitleIcon.d.ts +2 -0
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitleIcon.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitleIcon.js +2 -4
- package/dist/js/components/MultipleFileUpload/MultipleFileUploadTitleIcon.js.map +1 -1
- package/dist/js/components/MultipleFileUpload/index.d.ts +0 -6
- package/dist/js/components/MultipleFileUpload/index.d.ts.map +1 -1
- package/dist/js/components/MultipleFileUpload/index.js +0 -6
- package/dist/js/components/MultipleFileUpload/index.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts +3 -1
- package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tab.js +4 -3
- package/dist/js/components/Tabs/Tab.js.map +1 -1
- package/dist/js/components/Tabs/TabButton.d.ts +2 -0
- package/dist/js/components/Tabs/TabButton.d.ts.map +1 -1
- package/dist/js/components/Tabs/TabButton.js +2 -2
- package/dist/js/components/Tabs/TabButton.js.map +1 -1
- package/dist/js/components/Tile/Tile.d.ts.map +1 -1
- package/dist/js/components/Tile/Tile.js +1 -1
- package/dist/js/components/Tile/Tile.js.map +1 -1
- package/dist/umd/react-core.css +10 -10
- package/dist/umd/react-core.js +65 -48
- package/dist/umd/react-core.min.css +10 -10
- package/dist/umd/react-core.min.js +4 -4
- package/package.json +5 -5
- package/src/components/Form/FormFieldGroup.tsx +1 -1
- package/src/components/Form/FormFieldGroupExpandable.tsx +2 -2
- package/src/components/Form/FormFieldGroupHeader.tsx +5 -1
- package/src/components/Form/InternalFormFieldGroup.tsx +2 -2
- package/src/components/Form/__tests__/FormFieldGroup.test.tsx +1 -1
- package/src/components/Form/__tests__/__snapshots__/FormFieldGroup.test.tsx.snap +1 -1
- package/src/components/Form/examples/Form.md +1 -1
- package/src/components/MultipleFileUpload/MultipleFileUploadMain.tsx +29 -8
- package/src/components/MultipleFileUpload/MultipleFileUploadStatus.tsx +24 -4
- package/src/components/MultipleFileUpload/MultipleFileUploadStatusItem.tsx +1 -1
- package/src/components/MultipleFileUpload/MultipleFileUploadTitle.tsx +19 -5
- package/src/components/MultipleFileUpload/MultipleFileUploadTitleIcon.tsx +4 -3
- package/src/components/MultipleFileUpload/__tests__/MultipleFileUploadMain.test.tsx +19 -2
- package/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitle.test.tsx +17 -2
- package/src/components/MultipleFileUpload/__tests__/MultipleFileUploadTitleIcon.test.tsx +1 -1
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadMain.test.tsx.snap +198 -2
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadTitle.test.tsx.snap +62 -4
- package/src/components/MultipleFileUpload/__tests__/__snapshots__/MultipleFileUploadTitleIcon.test.tsx.snap +2 -50
- package/src/components/MultipleFileUpload/examples/MultipleFileUpload.md +7 -60
- package/src/components/MultipleFileUpload/examples/MultipleFileUploadBasic.tsx +48 -74
- package/src/components/MultipleFileUpload/index.ts +0 -6
- package/src/components/Tabs/Tab.tsx +31 -24
- package/src/components/Tabs/TabButton.tsx +5 -1
- package/src/components/Tabs/examples/Tabs.md +527 -256
- package/src/components/Tile/Tile.tsx +3 -0
- package/src/components/Tile/__tests__/__snapshots__/Tile.test.tsx.snap +9 -0
- package/src/components/Tile/examples/Tile.md +41 -39
- package/src/demos/ComposableMenu/ComposableMenu.md +4 -9
- package/src/demos/ComposableMenu/examples/ComposableDateSelect.tsx +113 -0
- package/src/demos/MultipleFileUploadDemos.md +16 -0
- package/src/demos/TileDemo.md +17 -35
- package/src/{components/MultipleFileUpload/examples/MultipleFileUploadHorizontal.tsx → demos/examples/MultipleFileUpload/MultipleFileUploadRejectedFile.tsx} +60 -64
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "4.198.
|
|
3
|
+
"version": "4.198.17",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"generate": "node scripts/copyStyles.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@patternfly/react-icons": "^4.49.
|
|
38
|
-
"@patternfly/react-styles": "^4.48.
|
|
39
|
-
"@patternfly/react-tokens": "^4.50.
|
|
37
|
+
"@patternfly/react-icons": "^4.49.17",
|
|
38
|
+
"@patternfly/react-styles": "^4.48.17",
|
|
39
|
+
"@patternfly/react-tokens": "^4.50.17",
|
|
40
40
|
"focus-trap": "6.2.2",
|
|
41
41
|
"react-dropzone": "9.0.0",
|
|
42
42
|
"tippy.js": "5.1.2",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"react": "^16.8.0 || ^17.0.0",
|
|
61
61
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "0a5989506d02f2a0eef3f0a714dbcee41c556494"
|
|
64
64
|
}
|
|
@@ -6,7 +6,7 @@ export interface FormFieldGroupProps extends Omit<React.HTMLProps<HTMLDivElement
|
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
/** Additional classes added to the form field group. */
|
|
8
8
|
className?: string;
|
|
9
|
-
/** Form
|
|
9
|
+
/** Form field group header */
|
|
10
10
|
header?: React.ReactNode;
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -7,11 +7,11 @@ export interface FormFieldGroupExpandableProps extends React.HTMLProps<HTMLDivEl
|
|
|
7
7
|
children?: React.ReactNode;
|
|
8
8
|
/** Additional classes added to the form field group. */
|
|
9
9
|
className?: string;
|
|
10
|
-
/** Form
|
|
10
|
+
/** Form field group header */
|
|
11
11
|
header?: React.ReactNode;
|
|
12
12
|
/** Flag indicating if the form field group is initially expanded */
|
|
13
13
|
isExpanded?: boolean;
|
|
14
|
-
/** Aria-label to use on the form
|
|
14
|
+
/** Aria-label to use on the form field group toggle button */
|
|
15
15
|
toggleAriaLabel?: string;
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -2,17 +2,21 @@ import * as React from 'react';
|
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/Form/form';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
|
|
5
|
+
// typo - rename to FormFieldGroupHeaderTitleTextObject during breaking change release
|
|
5
6
|
export interface FormFiledGroupHeaderTitleTextObject {
|
|
6
7
|
/** Title text. */
|
|
7
8
|
text: React.ReactNode;
|
|
8
9
|
/** The applied to the title div for accessibility */
|
|
9
10
|
id: string;
|
|
10
11
|
}
|
|
12
|
+
|
|
13
|
+
export interface FormFieldGroupHeaderTitleTextObject extends FormFiledGroupHeaderTitleTextObject {}
|
|
14
|
+
|
|
11
15
|
export interface FormFieldGroupHeaderProps extends React.HTMLProps<HTMLDivElement> {
|
|
12
16
|
/** Additional classes added to the section */
|
|
13
17
|
className?: string;
|
|
14
18
|
/** Field group header title text */
|
|
15
|
-
titleText?:
|
|
19
|
+
titleText?: FormFieldGroupHeaderTitleTextObject;
|
|
16
20
|
/** Field group header title description */
|
|
17
21
|
titleDescription?: React.ReactNode;
|
|
18
22
|
/** Field group header actions */
|
|
@@ -9,7 +9,7 @@ export interface InternalFormFieldGroupProps extends Omit<React.HTMLProps<HTMLDi
|
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
/** Additional classes added to the form field group. */
|
|
11
11
|
className?: string;
|
|
12
|
-
/** Form
|
|
12
|
+
/** Form field group header */
|
|
13
13
|
header?: any;
|
|
14
14
|
/** Flag indicating if the field group is expandable */
|
|
15
15
|
isExpandable?: boolean;
|
|
@@ -17,7 +17,7 @@ export interface InternalFormFieldGroupProps extends Omit<React.HTMLProps<HTMLDi
|
|
|
17
17
|
isExpanded?: boolean;
|
|
18
18
|
/** Function callback called when user clicks toggle button */
|
|
19
19
|
onToggle?: () => void;
|
|
20
|
-
/** Aria-label to use on the form
|
|
20
|
+
/** Aria-label to use on the form field group toggle button */
|
|
21
21
|
toggleAriaLabel?: string;
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -5,7 +5,7 @@ import { FormFieldGroupHeader } from '../FormFieldGroupHeader';
|
|
|
5
5
|
import { Button } from '../../Button';
|
|
6
6
|
import { render } from '@testing-library/react';
|
|
7
7
|
|
|
8
|
-
test('Check form
|
|
8
|
+
test('Check form field group example against snapshot', () => {
|
|
9
9
|
const FieldGroup = (
|
|
10
10
|
<FormFieldGroup
|
|
11
11
|
header={
|
|
@@ -85,7 +85,7 @@ exports[`Check expandable form field group example against snapshot 1`] = `
|
|
|
85
85
|
</div>
|
|
86
86
|
`;
|
|
87
87
|
|
|
88
|
-
exports[`Check form
|
|
88
|
+
exports[`Check form field group example against snapshot 1`] = `
|
|
89
89
|
<div>
|
|
90
90
|
<div
|
|
91
91
|
class="pf-c-form__field-group"
|
|
@@ -1,22 +1,43 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/MultipleFileUpload/multiple-file-upload';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
+
import { MultipleFileUploadTitle } from './MultipleFileUploadTitle';
|
|
5
|
+
import { MultipleFileUploadButton } from './MultipleFileUploadButton';
|
|
6
|
+
import { MultipleFileUploadInfo } from './MultipleFileUploadInfo';
|
|
4
7
|
|
|
5
8
|
export interface MultipleFileUploadMainProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
|
-
/** Content rendered inside multiple file upload main */
|
|
7
|
-
children?: React.ReactNode;
|
|
8
9
|
/** Class to add to outer div */
|
|
9
10
|
className?: string;
|
|
11
|
+
/** Content rendered inside the title icon div */
|
|
12
|
+
titleIcon?: React.ReactNode;
|
|
13
|
+
/** Content rendered inside the title text div */
|
|
14
|
+
titleText?: React.ReactNode;
|
|
15
|
+
/** Content rendered inside the title text separator div */
|
|
16
|
+
titleTextSeparator?: React.ReactNode;
|
|
17
|
+
/** Content rendered inside the info div */
|
|
18
|
+
infoText?: React.ReactNode;
|
|
19
|
+
/** Flag to prevent the upload button from being rendered */
|
|
20
|
+
isUploadButtonHidden?: boolean;
|
|
10
21
|
}
|
|
11
22
|
|
|
12
23
|
export const MultipleFileUploadMain: React.FunctionComponent<MultipleFileUploadMainProps> = ({
|
|
13
24
|
className,
|
|
14
|
-
|
|
25
|
+
titleIcon,
|
|
26
|
+
titleText,
|
|
27
|
+
titleTextSeparator,
|
|
28
|
+
infoText,
|
|
29
|
+
isUploadButtonHidden,
|
|
15
30
|
...props
|
|
16
|
-
}: MultipleFileUploadMainProps) =>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
)
|
|
31
|
+
}: MultipleFileUploadMainProps) => {
|
|
32
|
+
const showTitle = !!titleIcon || !!titleText || !!titleTextSeparator;
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div className={css(styles.multipleFileUploadMain, className)} {...props}>
|
|
36
|
+
{showTitle && <MultipleFileUploadTitle icon={titleIcon} text={titleText} textSeparator={titleTextSeparator} />}
|
|
37
|
+
{isUploadButtonHidden || <MultipleFileUploadButton />}
|
|
38
|
+
{!!infoText && <MultipleFileUploadInfo>{infoText}</MultipleFileUploadInfo>}
|
|
39
|
+
</div>
|
|
40
|
+
);
|
|
41
|
+
};
|
|
21
42
|
|
|
22
43
|
MultipleFileUploadMain.displayName = 'MultipleFileUploadMain';
|
|
@@ -2,6 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/MultipleFileUpload/multiple-file-upload';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
import { ExpandableSection } from '../ExpandableSection';
|
|
5
|
+
import InProgressIcon from '@patternfly/react-icons/dist/esm/icons/in-progress-icon';
|
|
6
|
+
import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
|
|
7
|
+
import TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';
|
|
5
8
|
|
|
6
9
|
export interface MultipleFileUploadStatusProps extends React.HTMLProps<HTMLDivElement> {
|
|
7
10
|
/** Content rendered inside multi file upload status list */
|
|
@@ -11,7 +14,7 @@ export interface MultipleFileUploadStatusProps extends React.HTMLProps<HTMLDivEl
|
|
|
11
14
|
/** String to show in the status toggle */
|
|
12
15
|
statusToggleText?: string;
|
|
13
16
|
/** Icon to show in the status toggle */
|
|
14
|
-
statusToggleIcon?: React.ReactNode;
|
|
17
|
+
statusToggleIcon?: 'danger' | 'success' | 'inProgress' | React.ReactNode;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
export const MultipleFileUploadStatus: React.FunctionComponent<MultipleFileUploadStatusProps> = ({
|
|
@@ -21,15 +24,32 @@ export const MultipleFileUploadStatus: React.FunctionComponent<MultipleFileUploa
|
|
|
21
24
|
statusToggleIcon,
|
|
22
25
|
...props
|
|
23
26
|
}: MultipleFileUploadStatusProps) => {
|
|
27
|
+
const [icon, setIcon] = React.useState<React.ReactNode>();
|
|
28
|
+
const [isOpen, setIsOpen] = React.useState(true);
|
|
29
|
+
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
switch (statusToggleIcon) {
|
|
32
|
+
case 'danger':
|
|
33
|
+
setIcon(<TimesCircleIcon />);
|
|
34
|
+
break;
|
|
35
|
+
case 'success':
|
|
36
|
+
setIcon(<CheckCircleIcon />);
|
|
37
|
+
break;
|
|
38
|
+
case 'inProgress':
|
|
39
|
+
setIcon(<InProgressIcon />);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
setIcon(statusToggleIcon);
|
|
43
|
+
}
|
|
44
|
+
}, [statusToggleIcon]);
|
|
45
|
+
|
|
24
46
|
const toggle = (
|
|
25
47
|
<div className={styles.multipleFileUploadStatusProgress}>
|
|
26
|
-
<div className={styles.multipleFileUploadStatusProgressIcon}>{
|
|
48
|
+
<div className={styles.multipleFileUploadStatusProgressIcon}>{icon}</div>
|
|
27
49
|
<div className={styles.multipleFileUploadStatusItemProgressText}>{statusToggleText}</div>
|
|
28
50
|
</div>
|
|
29
51
|
);
|
|
30
52
|
|
|
31
|
-
const [isOpen, setIsOpen] = React.useState(true);
|
|
32
|
-
|
|
33
53
|
const toggleExpandableSection = () => {
|
|
34
54
|
setIsOpen(!isOpen);
|
|
35
55
|
};
|
|
@@ -65,7 +65,7 @@ export const MultipleFileUploadStatusItem: React.FunctionComponent<MultipleFileU
|
|
|
65
65
|
progressAriaLabelledBy,
|
|
66
66
|
buttonAriaLabel = 'Remove from list',
|
|
67
67
|
...props
|
|
68
|
-
}) => {
|
|
68
|
+
}: MultipleFileUploadStatusItemProps) => {
|
|
69
69
|
const [loadPercentage, setLoadPercentage] = React.useState(0);
|
|
70
70
|
const [loadResult, setLoadResult] = React.useState<undefined | 'danger' | 'success'>();
|
|
71
71
|
|
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/MultipleFileUpload/multiple-file-upload';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
-
|
|
4
|
+
import { MultipleFileUploadTitleIcon } from './MultipleFileUploadTitleIcon';
|
|
5
|
+
import { MultipleFileUploadTitleText } from './MultipleFileUploadTitleText';
|
|
6
|
+
import { MultipleFileUploadTitleTextSeparator } from './MultipleFileUploadTitleTextSeparator';
|
|
5
7
|
export interface MultipleFileUploadTitleProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
|
-
/** Content rendered inside multiple file upload title */
|
|
7
|
-
children?: React.ReactNode;
|
|
8
8
|
/** Class to add to outer div */
|
|
9
9
|
className?: string;
|
|
10
|
+
/** Content rendered inside the title icon div */
|
|
11
|
+
icon?: React.ReactNode;
|
|
12
|
+
/** Content rendered inside the title text div */
|
|
13
|
+
text?: React.ReactNode;
|
|
14
|
+
/** Content rendered inside the title text separator div */
|
|
15
|
+
textSeparator?: React.ReactNode;
|
|
10
16
|
}
|
|
11
17
|
|
|
12
18
|
export const MultipleFileUploadTitle: React.FunctionComponent<MultipleFileUploadTitleProps> = ({
|
|
13
19
|
className,
|
|
14
|
-
|
|
20
|
+
icon,
|
|
21
|
+
text = '',
|
|
22
|
+
textSeparator = '',
|
|
15
23
|
...props
|
|
16
24
|
}: MultipleFileUploadTitleProps) => (
|
|
17
25
|
<div className={css(styles.multipleFileUploadTitle, className)} {...props}>
|
|
18
|
-
{
|
|
26
|
+
{icon && <MultipleFileUploadTitleIcon>{icon}</MultipleFileUploadTitleIcon>}
|
|
27
|
+
{text && (
|
|
28
|
+
<MultipleFileUploadTitleText>
|
|
29
|
+
{`${text} `}
|
|
30
|
+
{textSeparator && <MultipleFileUploadTitleTextSeparator>{textSeparator}</MultipleFileUploadTitleTextSeparator>}
|
|
31
|
+
</MultipleFileUploadTitleText>
|
|
32
|
+
)}
|
|
19
33
|
</div>
|
|
20
34
|
);
|
|
21
35
|
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/MultipleFileUpload/multiple-file-upload';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
|
-
import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
|
|
5
|
-
|
|
6
4
|
export interface MultipleFileUploadTitleIconProps extends React.HTMLProps<HTMLDivElement> {
|
|
5
|
+
/** Content rendered inside multiple file upload title icon */
|
|
6
|
+
children?: React.ReactNode;
|
|
7
7
|
/** Class to add to outer div */
|
|
8
8
|
className?: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const MultipleFileUploadTitleIcon: React.FunctionComponent<MultipleFileUploadTitleIconProps> = ({
|
|
12
|
+
children,
|
|
12
13
|
className,
|
|
13
14
|
...props
|
|
14
15
|
}: MultipleFileUploadTitleIconProps) => (
|
|
15
16
|
<div className={css(styles.multipleFileUploadTitleIcon, className)} {...props}>
|
|
16
|
-
|
|
17
|
+
{children}
|
|
17
18
|
</div>
|
|
18
19
|
);
|
|
19
20
|
|
|
@@ -4,12 +4,29 @@ import { MultipleFileUploadMain } from '../MultipleFileUploadMain';
|
|
|
4
4
|
|
|
5
5
|
describe('MultipleFileUploadMain', () => {
|
|
6
6
|
test('renders with expected class names', () => {
|
|
7
|
-
const view = mount(<MultipleFileUploadMain
|
|
7
|
+
const view = mount(<MultipleFileUploadMain />);
|
|
8
8
|
expect(view).toMatchSnapshot();
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
test('renders custom class names', () => {
|
|
12
|
-
const view = mount(<MultipleFileUploadMain className="test"
|
|
12
|
+
const view = mount(<MultipleFileUploadMain className="test" />);
|
|
13
|
+
expect(view).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('passes props to the title as expected', () => {
|
|
17
|
+
const view = mount(
|
|
18
|
+
<MultipleFileUploadMain titleIcon="icon" titleText="title text" titleTextSeparator="title test separator" />
|
|
19
|
+
);
|
|
20
|
+
expect(view).toMatchSnapshot();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('renders without the button when expected', () => {
|
|
24
|
+
const view = mount(<MultipleFileUploadMain isUploadButtonHidden />);
|
|
25
|
+
expect(view).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('passes props to the info component as expected', () => {
|
|
29
|
+
const view = mount(<MultipleFileUploadMain infoText="info text" />);
|
|
13
30
|
expect(view).toMatchSnapshot();
|
|
14
31
|
});
|
|
15
32
|
});
|
|
@@ -4,12 +4,27 @@ import { MultipleFileUploadTitle } from '../MultipleFileUploadTitle';
|
|
|
4
4
|
|
|
5
5
|
describe('MultipleFileUploadTitle', () => {
|
|
6
6
|
test('renders with expected class names', () => {
|
|
7
|
-
const view = mount(<MultipleFileUploadTitle
|
|
7
|
+
const view = mount(<MultipleFileUploadTitle />);
|
|
8
8
|
expect(view).toMatchSnapshot();
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
test('renders custom class names', () => {
|
|
12
|
-
const view = mount(<MultipleFileUploadTitle className="test"
|
|
12
|
+
const view = mount(<MultipleFileUploadTitle className="test" />);
|
|
13
|
+
expect(view).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('renders with title icon', () => {
|
|
17
|
+
const view = mount(<MultipleFileUploadTitle icon="icon" />);
|
|
18
|
+
expect(view).toMatchSnapshot();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('renders with title text', () => {
|
|
22
|
+
const view = mount(<MultipleFileUploadTitle text="text" />);
|
|
23
|
+
expect(view).toMatchSnapshot();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('renders with title text separator', () => {
|
|
27
|
+
const view = mount(<MultipleFileUploadTitle text="text" textSeparator="text separator" />);
|
|
13
28
|
expect(view).toMatchSnapshot();
|
|
14
29
|
});
|
|
15
30
|
});
|
|
@@ -4,7 +4,7 @@ import { MultipleFileUploadTitleIcon } from '../MultipleFileUploadTitleIcon';
|
|
|
4
4
|
|
|
5
5
|
describe('MultipleFileUploadTitleIcon', () => {
|
|
6
6
|
test('renders with expected class names', () => {
|
|
7
|
-
const view = mount(<MultipleFileUploadTitleIcon
|
|
7
|
+
const view = mount(<MultipleFileUploadTitleIcon>Foo</MultipleFileUploadTitleIcon>);
|
|
8
8
|
expect(view).toMatchSnapshot();
|
|
9
9
|
});
|
|
10
10
|
|
|
@@ -1,5 +1,129 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`MultipleFileUploadMain passes props to the info component as expected 1`] = `
|
|
4
|
+
<MultipleFileUploadMain
|
|
5
|
+
infoText="info text"
|
|
6
|
+
>
|
|
7
|
+
<div
|
|
8
|
+
className="pf-c-multiple-file-upload__main"
|
|
9
|
+
>
|
|
10
|
+
<MultipleFileUploadButton>
|
|
11
|
+
<div
|
|
12
|
+
className="pf-c-multiple-file-upload__upload"
|
|
13
|
+
>
|
|
14
|
+
<Button
|
|
15
|
+
onClick={[Function]}
|
|
16
|
+
variant="secondary"
|
|
17
|
+
>
|
|
18
|
+
<ButtonBase
|
|
19
|
+
innerRef={null}
|
|
20
|
+
onClick={[Function]}
|
|
21
|
+
variant="secondary"
|
|
22
|
+
>
|
|
23
|
+
<button
|
|
24
|
+
aria-disabled={false}
|
|
25
|
+
aria-label={null}
|
|
26
|
+
className="pf-c-button pf-m-secondary"
|
|
27
|
+
data-ouia-component-id="OUIA-Generated-Button-secondary-4"
|
|
28
|
+
data-ouia-component-type="PF4/Button"
|
|
29
|
+
data-ouia-safe={true}
|
|
30
|
+
disabled={false}
|
|
31
|
+
onClick={[Function]}
|
|
32
|
+
role={null}
|
|
33
|
+
type="button"
|
|
34
|
+
>
|
|
35
|
+
Upload
|
|
36
|
+
</button>
|
|
37
|
+
</ButtonBase>
|
|
38
|
+
</Button>
|
|
39
|
+
</div>
|
|
40
|
+
</MultipleFileUploadButton>
|
|
41
|
+
<MultipleFileUploadInfo>
|
|
42
|
+
<div
|
|
43
|
+
className="pf-c-multiple-file-upload__info"
|
|
44
|
+
>
|
|
45
|
+
info text
|
|
46
|
+
</div>
|
|
47
|
+
</MultipleFileUploadInfo>
|
|
48
|
+
</div>
|
|
49
|
+
</MultipleFileUploadMain>
|
|
50
|
+
`;
|
|
51
|
+
|
|
52
|
+
exports[`MultipleFileUploadMain passes props to the title as expected 1`] = `
|
|
53
|
+
<MultipleFileUploadMain
|
|
54
|
+
titleIcon="icon"
|
|
55
|
+
titleText="title text"
|
|
56
|
+
titleTextSeparator="title test separator"
|
|
57
|
+
>
|
|
58
|
+
<div
|
|
59
|
+
className="pf-c-multiple-file-upload__main"
|
|
60
|
+
>
|
|
61
|
+
<MultipleFileUploadTitle
|
|
62
|
+
icon="icon"
|
|
63
|
+
text="title text"
|
|
64
|
+
textSeparator="title test separator"
|
|
65
|
+
>
|
|
66
|
+
<div
|
|
67
|
+
className="pf-c-multiple-file-upload__title"
|
|
68
|
+
>
|
|
69
|
+
<MultipleFileUploadTitleIcon>
|
|
70
|
+
<div
|
|
71
|
+
className="pf-c-multiple-file-upload__title-icon"
|
|
72
|
+
>
|
|
73
|
+
icon
|
|
74
|
+
</div>
|
|
75
|
+
</MultipleFileUploadTitleIcon>
|
|
76
|
+
<MultipleFileUploadTitleText>
|
|
77
|
+
<div
|
|
78
|
+
className="pf-c-multiple-file-upload__title-text"
|
|
79
|
+
>
|
|
80
|
+
title text
|
|
81
|
+
<MultipleFileUploadTitleTextSeparator>
|
|
82
|
+
<div
|
|
83
|
+
className="pf-c-multiple-file-upload__title-text-separator"
|
|
84
|
+
>
|
|
85
|
+
title test separator
|
|
86
|
+
</div>
|
|
87
|
+
</MultipleFileUploadTitleTextSeparator>
|
|
88
|
+
</div>
|
|
89
|
+
</MultipleFileUploadTitleText>
|
|
90
|
+
</div>
|
|
91
|
+
</MultipleFileUploadTitle>
|
|
92
|
+
<MultipleFileUploadButton>
|
|
93
|
+
<div
|
|
94
|
+
className="pf-c-multiple-file-upload__upload"
|
|
95
|
+
>
|
|
96
|
+
<Button
|
|
97
|
+
onClick={[Function]}
|
|
98
|
+
variant="secondary"
|
|
99
|
+
>
|
|
100
|
+
<ButtonBase
|
|
101
|
+
innerRef={null}
|
|
102
|
+
onClick={[Function]}
|
|
103
|
+
variant="secondary"
|
|
104
|
+
>
|
|
105
|
+
<button
|
|
106
|
+
aria-disabled={false}
|
|
107
|
+
aria-label={null}
|
|
108
|
+
className="pf-c-button pf-m-secondary"
|
|
109
|
+
data-ouia-component-id="OUIA-Generated-Button-secondary-3"
|
|
110
|
+
data-ouia-component-type="PF4/Button"
|
|
111
|
+
data-ouia-safe={true}
|
|
112
|
+
disabled={false}
|
|
113
|
+
onClick={[Function]}
|
|
114
|
+
role={null}
|
|
115
|
+
type="button"
|
|
116
|
+
>
|
|
117
|
+
Upload
|
|
118
|
+
</button>
|
|
119
|
+
</ButtonBase>
|
|
120
|
+
</Button>
|
|
121
|
+
</div>
|
|
122
|
+
</MultipleFileUploadButton>
|
|
123
|
+
</div>
|
|
124
|
+
</MultipleFileUploadMain>
|
|
125
|
+
`;
|
|
126
|
+
|
|
3
127
|
exports[`MultipleFileUploadMain renders custom class names 1`] = `
|
|
4
128
|
<MultipleFileUploadMain
|
|
5
129
|
className="test"
|
|
@@ -7,7 +131,37 @@ exports[`MultipleFileUploadMain renders custom class names 1`] = `
|
|
|
7
131
|
<div
|
|
8
132
|
className="pf-c-multiple-file-upload__main test"
|
|
9
133
|
>
|
|
10
|
-
|
|
134
|
+
<MultipleFileUploadButton>
|
|
135
|
+
<div
|
|
136
|
+
className="pf-c-multiple-file-upload__upload"
|
|
137
|
+
>
|
|
138
|
+
<Button
|
|
139
|
+
onClick={[Function]}
|
|
140
|
+
variant="secondary"
|
|
141
|
+
>
|
|
142
|
+
<ButtonBase
|
|
143
|
+
innerRef={null}
|
|
144
|
+
onClick={[Function]}
|
|
145
|
+
variant="secondary"
|
|
146
|
+
>
|
|
147
|
+
<button
|
|
148
|
+
aria-disabled={false}
|
|
149
|
+
aria-label={null}
|
|
150
|
+
className="pf-c-button pf-m-secondary"
|
|
151
|
+
data-ouia-component-id="OUIA-Generated-Button-secondary-2"
|
|
152
|
+
data-ouia-component-type="PF4/Button"
|
|
153
|
+
data-ouia-safe={true}
|
|
154
|
+
disabled={false}
|
|
155
|
+
onClick={[Function]}
|
|
156
|
+
role={null}
|
|
157
|
+
type="button"
|
|
158
|
+
>
|
|
159
|
+
Upload
|
|
160
|
+
</button>
|
|
161
|
+
</ButtonBase>
|
|
162
|
+
</Button>
|
|
163
|
+
</div>
|
|
164
|
+
</MultipleFileUploadButton>
|
|
11
165
|
</div>
|
|
12
166
|
</MultipleFileUploadMain>
|
|
13
167
|
`;
|
|
@@ -17,7 +171,49 @@ exports[`MultipleFileUploadMain renders with expected class names 1`] = `
|
|
|
17
171
|
<div
|
|
18
172
|
className="pf-c-multiple-file-upload__main"
|
|
19
173
|
>
|
|
20
|
-
|
|
174
|
+
<MultipleFileUploadButton>
|
|
175
|
+
<div
|
|
176
|
+
className="pf-c-multiple-file-upload__upload"
|
|
177
|
+
>
|
|
178
|
+
<Button
|
|
179
|
+
onClick={[Function]}
|
|
180
|
+
variant="secondary"
|
|
181
|
+
>
|
|
182
|
+
<ButtonBase
|
|
183
|
+
innerRef={null}
|
|
184
|
+
onClick={[Function]}
|
|
185
|
+
variant="secondary"
|
|
186
|
+
>
|
|
187
|
+
<button
|
|
188
|
+
aria-disabled={false}
|
|
189
|
+
aria-label={null}
|
|
190
|
+
className="pf-c-button pf-m-secondary"
|
|
191
|
+
data-ouia-component-id="OUIA-Generated-Button-secondary-1"
|
|
192
|
+
data-ouia-component-type="PF4/Button"
|
|
193
|
+
data-ouia-safe={true}
|
|
194
|
+
disabled={false}
|
|
195
|
+
onClick={[Function]}
|
|
196
|
+
role={null}
|
|
197
|
+
type="button"
|
|
198
|
+
>
|
|
199
|
+
Upload
|
|
200
|
+
</button>
|
|
201
|
+
</ButtonBase>
|
|
202
|
+
</Button>
|
|
203
|
+
</div>
|
|
204
|
+
</MultipleFileUploadButton>
|
|
205
|
+
</div>
|
|
206
|
+
</MultipleFileUploadMain>
|
|
207
|
+
`;
|
|
208
|
+
|
|
209
|
+
exports[`MultipleFileUploadMain renders without the button when expected 1`] = `
|
|
210
|
+
<MultipleFileUploadMain
|
|
211
|
+
isUploadButtonHidden={true}
|
|
212
|
+
>
|
|
213
|
+
<div
|
|
214
|
+
className="pf-c-multiple-file-upload__main"
|
|
215
|
+
>
|
|
216
|
+
<Component />
|
|
21
217
|
</div>
|
|
22
218
|
</MultipleFileUploadMain>
|
|
23
219
|
`;
|