@ansible/ansible-ui-framework 0.0.428 → 0.0.449
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/README.md +1 -1
- package/cjs/PageActions/PageAction.d.ts +1 -1
- package/cjs/PageActions/PageSingleAction.js +1 -1
- package/cjs/PageCells/TextCell.d.ts +1 -1
- package/cjs/PageDetails/PageDetail.d.ts +6 -0
- package/cjs/PageDetails/PageDetail.js +27 -0
- package/cjs/PageDetails/PageDetails.d.ts +5 -0
- package/cjs/PageDetails/PageDetails.js +45 -0
- package/cjs/PageDetails/PageDetailsFromColumns.d.ts +6 -0
- package/cjs/{PageTable/PageTableDetails.js → PageDetails/PageDetailsFromColumns.js} +7 -6
- package/cjs/PageForm/Inputs/PageFormCheckbox.d.ts +9 -8
- package/cjs/PageForm/Inputs/PageFormCheckbox.js +8 -4
- package/cjs/PageForm/Inputs/PageFormFileUpload.js +1 -1
- package/cjs/PageForm/Inputs/PageFormSelect.js +1 -1
- package/cjs/PageForm/Inputs/PageFormSelectOption.d.ts +2 -0
- package/cjs/PageForm/Inputs/PageFormSelectOption.js +11 -1
- package/cjs/PageForm/Inputs/PageFormTextArea.js +1 -1
- package/cjs/PageForm/Inputs/PageFormTextInput.js +1 -1
- package/cjs/PageForm/PageForm.d.ts +2 -0
- package/cjs/PageForm/PageForm.js +10 -9
- package/cjs/PageForm/Utils/PageFormHidden.d.ts +6 -0
- package/cjs/PageForm/Utils/PageFormHidden.js +13 -0
- package/cjs/PageForm/Utils/PageFormSection.d.ts +5 -0
- package/cjs/PageForm/Utils/PageFormSection.js +20 -0
- package/cjs/PageForm/{Inputs → Utils}/PageFormWatch.d.ts +0 -0
- package/cjs/PageForm/{Inputs → Utils}/PageFormWatch.js +1 -2
- package/cjs/PageHeader.d.ts +9 -11
- package/cjs/PageHeader.js +9 -11
- package/cjs/PageTable/PageTable.d.ts +2 -7
- package/cjs/PageTable/PageTable.js +1 -7
- package/cjs/PageTable/PageTableCard.js +3 -3
- package/cjs/PageTabs.d.ts +2 -1
- package/cjs/PageTabs.js +6 -2
- package/cjs/index.d.ts +3 -3
- package/cjs/index.js +3 -3
- package/package.json +1 -1
- package/cjs/PageDataList.d.ts +0 -46
- package/cjs/PageDataList.js +0 -61
- package/cjs/PageForm/FormPage.d.ts +0 -17
- package/cjs/PageForm/FormPage.js +0 -73
- package/cjs/PageTable/PageTableDetails.d.ts +0 -6
- package/cjs/components/Details.d.ts +0 -36
- package/cjs/components/Details.js +0 -63
- package/docs/Components.md +0 -9
- package/docs/Framework.md +0 -19
- package/docs/Guides.md +0 -6
- package/docs/_config.yml +0 -2
- package/docs/assets/css/style.scss +0 -139
- package/docs/components/BulkActionDialog.md +0 -30
- package/docs/components/PageFramework.md +0 -11
- package/docs/components/PageHeader.md +0 -31
- package/docs/components/PageLayout.md +0 -18
- package/docs/components/PageTable.md +0 -17
- package/docs/guides/GettingStarted.md +0 -90
- package/docs/guides/PageTableGuide.md +0 -178
package/README.md
CHANGED
@@ -2,4 +2,4 @@
|
|
2
2
|
|
3
3
|
A framework for building applications using [PatternFly](https://www.patternfly.org), developed by the Ansible UI developers.
|
4
4
|
|
5
|
-
[Documentation](https://
|
5
|
+
[Documentation](https://github.com/ansible/ansible-ui/wiki/Ansible-UI-Framework)
|
@@ -26,7 +26,7 @@ export type IPageSingleAction<T extends object> = IPageActionCommon & {
|
|
26
26
|
type: PageActionType.single;
|
27
27
|
variant?: ButtonVariant;
|
28
28
|
onClick: (item: T) => void;
|
29
|
-
isDisabled?: (item: T) => string;
|
29
|
+
isDisabled?: (item: T) => string | undefined;
|
30
30
|
isHidden?: (item: T) => boolean;
|
31
31
|
};
|
32
32
|
export type IPageDropdownAction<T extends object> = IPageActionCommon & {
|
@@ -30,6 +30,6 @@ function PageSingleAction(props) {
|
|
30
30
|
if (props.iconOnly) {
|
31
31
|
variant = react_core_1.ButtonVariant.plain;
|
32
32
|
}
|
33
|
-
return ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)(react_core_1.Tooltip, __assign({ content: tooltip, trigger: tooltip ? undefined : 'manual' }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ variant: variant, icon: Icon ? ((0, jsx_runtime_1.jsx)("span", __assign({ style: { marginLeft: -4, paddingRight: 4 } }, { children: (0, jsx_runtime_1.jsx)(Icon, {}) }))) : undefined, isAriaDisabled: Boolean(isDisabled), onClick: function () { return selectedItem && action.onClick(selectedItem); }, isDanger: action.isDanger }, { children: props.iconOnly && Icon ? (0, jsx_runtime_1.jsx)(Icon, {}) : action.shortLabel ? action.shortLabel : action.label })) })) }));
|
33
|
+
return ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)(react_core_1.Tooltip, __assign({ content: tooltip, trigger: tooltip ? undefined : 'manual' }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ id: props.action.label.toLowerCase().split(' ').join('-'), variant: variant, icon: Icon ? ((0, jsx_runtime_1.jsx)("span", __assign({ style: { marginLeft: -4, paddingRight: 4 } }, { children: (0, jsx_runtime_1.jsx)(Icon, {}) }))) : undefined, isAriaDisabled: Boolean(isDisabled), onClick: function () { return selectedItem && action.onClick(selectedItem); }, isDanger: action.isDanger }, { children: props.iconOnly && Icon ? (0, jsx_runtime_1.jsx)(Icon, {}) : action.shortLabel ? action.shortLabel : action.label })) })) }));
|
34
34
|
}
|
35
35
|
exports.PageSingleAction = PageSingleAction;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.PageDetail = void 0;
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
|
+
var react_core_1 = require("@patternfly/react-core");
|
17
|
+
function PageDetail(props) {
|
18
|
+
var _a;
|
19
|
+
if (props.children === null || typeof props.children === 'undefined' || props.children === '') {
|
20
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
21
|
+
}
|
22
|
+
if (props.isEmpty) {
|
23
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
24
|
+
}
|
25
|
+
return ((0, jsx_runtime_1.jsxs)(react_core_1.DescriptionListGroup, { children: [props.label && (0, jsx_runtime_1.jsx)(react_core_1.DescriptionListTerm, { children: props.label }), (0, jsx_runtime_1.jsx)(react_core_1.DescriptionListDescription, __assign({ id: (_a = props.label) === null || _a === void 0 ? void 0 : _a.toLowerCase().split(' ').join('-') }, { children: props.children }))] }));
|
26
|
+
}
|
27
|
+
exports.PageDetail = PageDetail;
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.PageDetails = void 0;
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
|
+
var react_core_1 = require("@patternfly/react-core");
|
17
|
+
var Settings_1 = require("../Settings");
|
18
|
+
function PageDetails(props) {
|
19
|
+
var disablePadding = props.disablePadding;
|
20
|
+
var settings = (0, Settings_1.useSettings)();
|
21
|
+
var orientation = settings.formLayout;
|
22
|
+
var columns = settings.formColumns;
|
23
|
+
var isCompact = false;
|
24
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.PageSection, __assign({ padding: { default: 'noPadding' }, style: {
|
25
|
+
backgroundColor: settings.theme === 'dark'
|
26
|
+
? 'var(--pf-global--BackgroundColor--300)'
|
27
|
+
: 'var(--pf-global--BackgroundColor--100)',
|
28
|
+
} }, { children: (0, jsx_runtime_1.jsx)(react_core_1.DescriptionList, __assign({ orientation: {
|
29
|
+
sm: orientation,
|
30
|
+
md: orientation,
|
31
|
+
lg: orientation,
|
32
|
+
xl: orientation,
|
33
|
+
'2xl': orientation,
|
34
|
+
}, columnModifier: columns === 'multiple'
|
35
|
+
? {
|
36
|
+
default: '1Col',
|
37
|
+
sm: '1Col',
|
38
|
+
md: '2Col',
|
39
|
+
lg: '2Col',
|
40
|
+
xl: '3Col',
|
41
|
+
'2xl': '3Col',
|
42
|
+
}
|
43
|
+
: undefined, style: { maxWidth: 1200, padding: disablePadding ? undefined : 24 }, isCompact: isCompact }, { children: props.children })) })));
|
44
|
+
}
|
45
|
+
exports.PageDetails = PageDetails;
|
@@ -11,16 +11,17 @@ var __assign = (this && this.__assign) || function () {
|
|
11
11
|
return __assign.apply(this, arguments);
|
12
12
|
};
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
-
exports.
|
14
|
+
exports.PageDetailsFromColumns = void 0;
|
15
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
16
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
17
17
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
18
|
-
var
|
19
|
-
var
|
20
|
-
|
18
|
+
var PageTable_1 = require("../PageTable/PageTable");
|
19
|
+
var PageDetail_1 = require("./PageDetail");
|
20
|
+
var PageDetails_1 = require("./PageDetails");
|
21
|
+
function PageDetailsFromColumns(props) {
|
21
22
|
var item = props.item, columns = props.columns;
|
22
23
|
if (!item)
|
23
24
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
24
|
-
return ((0, jsx_runtime_1.jsx)(
|
25
|
+
return ((0, jsx_runtime_1.jsx)(PageDetails_1.PageDetails, { children: columns.map(function (column) { return ((0, jsx_runtime_1.jsx)(PageDetail_1.PageDetail, __assign({ label: column.header }, { children: (0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: column, item: item }) }), column.id)); }) }));
|
25
26
|
}
|
26
|
-
exports.
|
27
|
+
exports.PageDetailsFromColumns = PageDetailsFromColumns;
|
@@ -1,9 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { CheckboxProps } from '@patternfly/react-core';
|
3
|
+
import { Validate } from 'react-hook-form';
|
4
|
+
export type PageFormCheckboxProps = {
|
5
|
+
id?: string;
|
4
6
|
name: string;
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
}): JSX.Element;
|
7
|
+
validate?: Validate<string> | Record<string, Validate<string>>;
|
8
|
+
} & Omit<CheckboxProps, 'id' | 'onChange' | 'value'>;
|
9
|
+
/** PatternFly Checkbox wrapper for use with react-hook-form */
|
10
|
+
export declare function PageFormCheckbox(props: PageFormCheckboxProps): JSX.Element;
|
@@ -15,10 +15,14 @@ exports.PageFormCheckbox = void 0;
|
|
15
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
16
|
var react_core_1 = require("@patternfly/react-core");
|
17
17
|
var react_hook_form_1 = require("react-hook-form");
|
18
|
+
/** PatternFly Checkbox wrapper for use with react-hook-form */
|
18
19
|
function PageFormCheckbox(props) {
|
19
|
-
var
|
20
|
-
var
|
21
|
-
|
22
|
-
|
20
|
+
var name = props.name, readOnly = props.readOnly, validate = props.validate;
|
21
|
+
var _a = (0, react_hook_form_1.useFormContext)(), control = _a.control, isSubmitting = _a.formState.isSubmitting;
|
22
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: name, control: control, shouldUnregister: true, render: function (_a) {
|
23
|
+
var _b;
|
24
|
+
var _c = _a.field, onChange = _c.onChange, value = _c.value;
|
25
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.Checkbox, __assign({}, props, { id: (_b = props.id) !== null && _b !== void 0 ? _b : name.split('.').join('-'), isChecked: !!value, onChange: onChange, readOnly: readOnly || isSubmitting, minLength: undefined, maxLength: undefined, ref: undefined })));
|
26
|
+
}, rules: { validate: validate } }));
|
23
27
|
}
|
24
28
|
exports.PageFormCheckbox = PageFormCheckbox;
|
@@ -42,7 +42,7 @@ function PageFormFileUpload(props) {
|
|
42
42
|
var handleFileReadStarted = function (_fileHandle) {
|
43
43
|
setIsLoading(true);
|
44
44
|
};
|
45
|
-
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, render: function (_a) {
|
45
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, shouldUnregister: true, render: function (_a) {
|
46
46
|
var _b = _a.field, onChange = _b.onChange, value = _b.value, error = _a.fieldState.error;
|
47
47
|
var handleClear = function (_event) {
|
48
48
|
setFilename('');
|
@@ -18,7 +18,7 @@ var FormGroupSelect_1 = require("./FormGroupSelect");
|
|
18
18
|
/** PatternFly Select wrapper for use with react-hook-form */
|
19
19
|
function PageFormSelect(props) {
|
20
20
|
var _a = (0, react_hook_form_1.useFormContext)(), control = _a.control, isSubmitting = _a.formState.isSubmitting;
|
21
|
-
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, render: function (_a) {
|
21
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, shouldUnregister: true, render: function (_a) {
|
22
22
|
var _b = _a.field, onChange = _b.onChange, value = _b.value, error = _a.fieldState.error;
|
23
23
|
return ((0, jsx_runtime_1.jsx)(FormGroupSelect_1.FormGroupSelect, __assign({}, props, { value: value, onSelect: function (_, value) { return onChange(value); }, helperTextInvalid: error === null || error === void 0 ? void 0 : error.message, isReadOnly: props.isReadOnly || isSubmitting })));
|
24
24
|
} }));
|
@@ -1,7 +1,9 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
+
import { Validate } from 'react-hook-form';
|
2
3
|
import { FormGroupSelectOptionProps } from './FormGroupSelectOption';
|
3
4
|
export type PageFormSelectOptionProps<T> = {
|
4
5
|
name: string;
|
6
|
+
validate?: Validate<string> | Record<string, Validate<string>>;
|
5
7
|
} & Omit<FormGroupSelectOptionProps<T>, 'onSelect' | 'value'>;
|
6
8
|
/** Select wrapper for use with react-hook-form */
|
7
9
|
export declare function PageFormSelectOption<T>(props: PageFormSelectOptionProps<T>): JSX.Element;
|
@@ -14,14 +14,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.PageFormSelectOption = void 0;
|
15
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
16
|
var react_hook_form_1 = require("react-hook-form");
|
17
|
+
var capitalize_1 = require("../../utils/capitalize");
|
17
18
|
var FormGroupSelectOption_1 = require("./FormGroupSelectOption");
|
18
19
|
/** Select wrapper for use with react-hook-form */
|
19
20
|
function PageFormSelectOption(props) {
|
21
|
+
var label = props.label, isRequired = props.isRequired, validate = props.validate;
|
20
22
|
var _a = (0, react_hook_form_1.useFormContext)(), control = _a.control, isSubmitting = _a.formState.isSubmitting;
|
21
|
-
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, render: function (_a) {
|
23
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: props.name, control: control, shouldUnregister: true, render: function (_a) {
|
22
24
|
var _b;
|
23
25
|
var _c = _a.field, onChange = _c.onChange, value = _c.value, error = _a.fieldState.error;
|
24
26
|
return ((0, jsx_runtime_1.jsx)(FormGroupSelectOption_1.FormGroupSelectOption, __assign({}, props, { id: (_b = props.id) !== null && _b !== void 0 ? _b : props.name, value: value, onSelect: function (_, value) { return onChange(value); }, helperTextInvalid: error === null || error === void 0 ? void 0 : error.message, isReadOnly: props.isReadOnly || isSubmitting })));
|
27
|
+
}, rules: {
|
28
|
+
required: typeof label === 'string' && typeof isRequired === 'boolean'
|
29
|
+
? {
|
30
|
+
value: true,
|
31
|
+
message: "".concat((0, capitalize_1.capitalizeFirstLetter)(label.toLocaleLowerCase()), " is required."),
|
32
|
+
}
|
33
|
+
: isRequired,
|
34
|
+
validate: validate,
|
25
35
|
} }));
|
26
36
|
}
|
27
37
|
exports.PageFormSelectOption = PageFormSelectOption;
|
@@ -20,7 +20,7 @@ var FormGroupTextArea_1 = require("./FormGroupTextArea");
|
|
20
20
|
function PageFormTextArea(props) {
|
21
21
|
var name = props.name, label = props.label, isReadOnly = props.isReadOnly, isRequired = props.isRequired, minLength = props.minLength, maxLength = props.maxLength, pattern = props.pattern, validate = props.validate;
|
22
22
|
var _a = (0, react_hook_form_1.useFormContext)(), control = _a.control, isSubmitting = _a.formState.isSubmitting;
|
23
|
-
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: name, control: control, render: function (_a) {
|
23
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: name, control: control, shouldUnregister: true, render: function (_a) {
|
24
24
|
var _b;
|
25
25
|
var _c = _a.field, onChange = _c.onChange, value = _c.value, error = _a.fieldState.error;
|
26
26
|
return ((0, jsx_runtime_1.jsx)(FormGroupTextArea_1.FormGroupTextArea, __assign({}, props, { id: (_b = props.id) !== null && _b !== void 0 ? _b : name, value: value, onChange: onChange, helperTextInvalid: error === null || error === void 0 ? void 0 : error.message, isReadOnly: isReadOnly || isSubmitting, minLength: undefined, maxLength: undefined })));
|
@@ -22,7 +22,7 @@ var FormGroupTextInput_1 = require("./FormGroupTextInput");
|
|
22
22
|
function PageFormTextInput(props) {
|
23
23
|
var label = props.label, name = props.name, isReadOnly = props.isReadOnly, isRequired = props.isRequired, minLength = props.minLength, maxLength = props.maxLength, pattern = props.pattern, validate = props.validate, selectTitle = props.selectTitle;
|
24
24
|
var _a = (0, react_hook_form_1.useFormContext)(), control = _a.control, setValue = _a.setValue, _b = _a.formState, isSubmitting = _b.isSubmitting, isValidating = _b.isValidating;
|
25
|
-
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: name, control: control, render: function (_a) {
|
25
|
+
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { name: name, control: control, shouldUnregister: true, render: function (_a) {
|
26
26
|
var _b;
|
27
27
|
var _c = _a.field, onChange = _c.onChange, value = _c.value, error = _a.fieldState.error;
|
28
28
|
return ((0, jsx_runtime_1.jsx)(FormGroupTextInput_1.FormGroupTextInput, __assign({}, props, { id: (_b = props.id) !== null && _b !== void 0 ? _b : name.split('.').join('-'), value: value, onChange: onChange, helperTextInvalid: !(validate && isValidating) && (error === null || error === void 0 ? void 0 : error.message), isReadOnly: isReadOnly || isSubmitting, minLength: undefined, maxLength: undefined }, { children: selectTitle && ((0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ variant: "control", onClick: function () {
|
@@ -12,6 +12,8 @@ export declare function PageForm<T extends object>(props: {
|
|
12
12
|
isVertical?: boolean;
|
13
13
|
singleColumn?: boolean;
|
14
14
|
disableScrolling?: boolean;
|
15
|
+
disableBody?: boolean;
|
16
|
+
disablePadding?: boolean;
|
15
17
|
}): JSX.Element;
|
16
18
|
export type PageFormSubmitHandler<T extends FieldValues> = (data: T, setError: (error: string) => void, setFieldError: (fieldName: FieldPath<T>, error: ErrorOption) => void) => Promise<unknown>;
|
17
19
|
export declare function PageFormSubmitButton(props: {
|
package/cjs/PageForm/PageForm.js
CHANGED
@@ -71,12 +71,13 @@ var react_1 = require("react");
|
|
71
71
|
var react_hook_form_1 = require("react-hook-form");
|
72
72
|
var Scrollable_1 = require("../components/Scrollable");
|
73
73
|
var useBreakPoint_1 = require("../components/useBreakPoint");
|
74
|
+
var PageBody_1 = require("../PageBody");
|
74
75
|
var Settings_1 = require("../Settings");
|
75
76
|
var useFrameworkTranslations_1 = require("../useFrameworkTranslations");
|
76
77
|
function PageForm(props) {
|
77
78
|
var _this = this;
|
78
79
|
var _a;
|
79
|
-
var schema = props.schema, defaultValue = props.defaultValue;
|
80
|
+
var schema = props.schema, defaultValue = props.defaultValue, disableBody = props.disableBody, disablePadding = props.disablePadding;
|
80
81
|
var form = (0, react_hook_form_1.useForm)({
|
81
82
|
defaultValues: defaultValue !== null && defaultValue !== void 0 ? defaultValue : {},
|
82
83
|
resolver: schema
|
@@ -96,9 +97,7 @@ function PageForm(props) {
|
|
96
97
|
var xl = multipleColumns ? (isHorizontal ? 6 : 6) : 12;
|
97
98
|
var xl2 = multipleColumns ? (isHorizontal ? 4 : 4) : 12;
|
98
99
|
var maxWidth = multipleColumns ? undefined : isHorizontal ? 960 : 800;
|
99
|
-
|
100
|
-
// <PageBody>
|
101
|
-
(0, jsx_runtime_1.jsx)(react_hook_form_1.FormProvider, __assign({}, form, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Form
|
100
|
+
var Component = ((0, jsx_runtime_1.jsx)(react_hook_form_1.FormProvider, __assign({}, form, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Form
|
102
101
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
103
102
|
, __assign({
|
104
103
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
@@ -128,12 +127,14 @@ function PageForm(props) {
|
|
128
127
|
flexGrow: 1,
|
129
128
|
overflow: props.disableScrolling ? undefined : 'hidden',
|
130
129
|
gap: 0,
|
131
|
-
} }, { children: [props.disableScrolling ? ((0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: maxWidth, padding: 24 } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: props.children })) }))) : ((0, jsx_runtime_1.jsx)(Scrollable_1.Scrollable, __assign({ style: { height: '100%', flexGrow: 1 } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: maxWidth, padding: 24 } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: props.children })) })) }))), error && ((0, jsx_runtime_1.jsx)(react_core_1.Alert, { variant: "danger", title: error !== null && error !== void 0 ? error : '', isInline: true, style: { paddingLeft: isMd && props.onCancel ? 190 : undefined } })), props.onCancel ? ((0, jsx_runtime_1.jsx)("div", __assign({ style: {
|
130
|
+
} }, { children: [props.disableScrolling ? ((0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: maxWidth, padding: disablePadding ? undefined : 24 } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: props.children })) }))) : ((0, jsx_runtime_1.jsx)(Scrollable_1.Scrollable, __assign({ style: { height: '100%', flexGrow: 1 } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: maxWidth, padding: disablePadding ? undefined : 24 } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: props.children })) })) }))), error && ((0, jsx_runtime_1.jsx)(react_core_1.Alert, { variant: "danger", title: error !== null && error !== void 0 ? error : '', isInline: true, style: { paddingLeft: isMd && props.onCancel ? 190 : undefined } })), props.onCancel ? ((0, jsx_runtime_1.jsx)("div", __assign({ style: {
|
132
131
|
backgroundColor: settings.theme === 'dark' ? 'var(--pf-global--BackgroundColor--400)' : undefined,
|
133
|
-
padding: 24,
|
134
|
-
} }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.ActionGroup, __assign({ style: { marginTop: 0 } }, { children: [(0, jsx_runtime_1.jsx)(PageFormSubmitButton, { children: props.submitText }), props.onCancel && ((0, jsx_runtime_1.jsx)(PageFormCancelButton, __assign({ onCancel: props.onCancel }, { children: (_a = props.cancelText) !== null && _a !== void 0 ? _a : frameworkTranslations.cancelText })))] })) }))) : ((0, jsx_runtime_1.jsx)(PageFormSubmitButton, __assign({ style: { marginTop: 48 } }, { children: props.submitText })))] })) }))
|
135
|
-
|
136
|
-
|
132
|
+
padding: disablePadding ? undefined : 24,
|
133
|
+
} }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.ActionGroup, __assign({ style: { marginTop: 0 } }, { children: [(0, jsx_runtime_1.jsx)(PageFormSubmitButton, { children: props.submitText }), props.onCancel && ((0, jsx_runtime_1.jsx)(PageFormCancelButton, __assign({ onCancel: props.onCancel }, { children: (_a = props.cancelText) !== null && _a !== void 0 ? _a : frameworkTranslations.cancelText })))] })) }))) : ((0, jsx_runtime_1.jsx)(PageFormSubmitButton, __assign({ style: { marginTop: 48 } }, { children: props.submitText })))] })) })));
|
134
|
+
if (!disableBody) {
|
135
|
+
Component = (0, jsx_runtime_1.jsx)(PageBody_1.PageBody, { children: Component });
|
136
|
+
}
|
137
|
+
return Component;
|
137
138
|
}
|
138
139
|
exports.PageForm = PageForm;
|
139
140
|
function PageFormSubmitButton(props) {
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.PageFormHidden = void 0;
|
4
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
5
|
+
var react_hook_form_1 = require("react-hook-form");
|
6
|
+
function PageFormHidden(props) {
|
7
|
+
var value = (0, react_hook_form_1.useWatch)({ name: props.watch });
|
8
|
+
var hidden = props.hidden(value);
|
9
|
+
if (hidden)
|
10
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
11
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: props.children });
|
12
|
+
}
|
13
|
+
exports.PageFormHidden = PageFormHidden;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.PageFormSection = void 0;
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
16
|
+
var react_core_1 = require("@patternfly/react-core");
|
17
|
+
function PageFormSection(props) {
|
18
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.FormSection, __assign({ title: props.title, style: { marginTop: 16 } }, { children: props.children })));
|
19
|
+
}
|
20
|
+
exports.PageFormSection = PageFormSection;
|
File without changes
|
@@ -4,8 +4,7 @@ exports.PageFormWatch = void 0;
|
|
4
4
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
5
5
|
var react_hook_form_1 = require("react-hook-form");
|
6
6
|
function PageFormWatch(props) {
|
7
|
-
var
|
8
|
-
var value = (0, react_hook_form_1.useWatch)({ control: control, name: props.watch });
|
7
|
+
var value = (0, react_hook_form_1.useWatch)({ name: props.watch });
|
9
8
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: props.children(value) });
|
10
9
|
}
|
11
10
|
exports.PageFormWatch = PageFormWatch;
|
package/cjs/PageHeader.d.ts
CHANGED
@@ -31,16 +31,14 @@ export interface PageHeaderProps {
|
|
31
31
|
* @param {ReactNode} headerActions - The actions for the page.
|
32
32
|
*
|
33
33
|
* @example
|
34
|
-
* <
|
35
|
-
* <
|
36
|
-
*
|
37
|
-
*
|
38
|
-
*
|
39
|
-
*
|
40
|
-
*
|
41
|
-
*
|
42
|
-
*
|
43
|
-
* </PageLayout>
|
44
|
-
* <Page>
|
34
|
+
* <PageLayout>
|
35
|
+
* <PageHeader
|
36
|
+
* breadcrumbs={[{ label: 'Home', to: '/home' }, { label: 'Page title' }]}
|
37
|
+
* title='Page title'
|
38
|
+
* description='Page description'
|
39
|
+
* headerActions={<TypedActions actions={actions} />}
|
40
|
+
* />
|
41
|
+
* ...
|
42
|
+
* </PageLayout>
|
45
43
|
*/
|
46
44
|
export declare function PageHeader(props: PageHeaderProps): JSX.Element;
|
package/cjs/PageHeader.js
CHANGED
@@ -45,17 +45,15 @@ function Breadcrumbs(props) {
|
|
45
45
|
* @param {ReactNode} headerActions - The actions for the page.
|
46
46
|
*
|
47
47
|
* @example
|
48
|
-
* <
|
49
|
-
* <
|
50
|
-
*
|
51
|
-
*
|
52
|
-
*
|
53
|
-
*
|
54
|
-
*
|
55
|
-
*
|
56
|
-
*
|
57
|
-
* </PageLayout>
|
58
|
-
* <Page>
|
48
|
+
* <PageLayout>
|
49
|
+
* <PageHeader
|
50
|
+
* breadcrumbs={[{ label: 'Home', to: '/home' }, { label: 'Page title' }]}
|
51
|
+
* title='Page title'
|
52
|
+
* description='Page description'
|
53
|
+
* headerActions={<TypedActions actions={actions} />}
|
54
|
+
* />
|
55
|
+
* ...
|
56
|
+
* </PageLayout>
|
59
57
|
*/
|
60
58
|
function PageHeader(props) {
|
61
59
|
var navigation = props.navigation, breadcrumbs = props.breadcrumbs, title = props.title, description = props.description, controls = props.controls, headerActions = props.headerActions;
|
@@ -1,12 +1,7 @@
|
|
1
1
|
import { Dispatch, ReactNode, SetStateAction } from 'react';
|
2
2
|
import { IPageAction } from '../PageActions/PageAction';
|
3
|
-
import { PageHeaderProps } from '../PageHeader';
|
4
3
|
import { PageTableViewType } from './PageTableViewType';
|
5
4
|
import { IToolbarFilter } from './PageToolbar';
|
6
|
-
export type TablePageProps<T extends object> = PageHeaderProps & PageTableProps<T> & {
|
7
|
-
error?: Error;
|
8
|
-
};
|
9
|
-
export declare function TablePage<T extends object>(props: TablePageProps<T>): JSX.Element;
|
10
5
|
export type PageTableProps<T extends object> = {
|
11
6
|
keyFn: (item: T) => string | number;
|
12
7
|
itemCount?: number;
|
@@ -111,11 +106,11 @@ export interface ITableColumnTypeDateTime<T extends object> extends ITableColumn
|
|
111
106
|
}
|
112
107
|
export interface ITableColumnTypeDescription<T extends object> extends ITableColumnCommon<T> {
|
113
108
|
type: 'description';
|
114
|
-
value: CellFn<T, string | undefined>;
|
109
|
+
value: CellFn<T, string | undefined | null>;
|
115
110
|
}
|
116
111
|
export interface ITableColumnTypeText<T extends object> extends ITableColumnCommon<T> {
|
117
112
|
type: 'text';
|
118
|
-
value: CellFn<T, string | undefined>;
|
113
|
+
value: CellFn<T, string | null | undefined>;
|
119
114
|
}
|
120
115
|
export type ITableColumn<T extends object> = ITableColumnTypeReactNode<T> | ITableColumnTypeDateTime<T> | ITableColumnTypeLabels<T> | ITableColumnTypeCount<T> | ITableColumnTypeText<T> | ITableColumnTypeDescription<T>;
|
121
116
|
export declare function TableColumnCell<T extends object>(props: {
|
@@ -30,7 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
30
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
31
31
|
};
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
33
|
-
exports.TableColumnCell = exports.TableColumnCardType = exports.TableColumnSomething = exports.PageTable =
|
33
|
+
exports.TableColumnCell = exports.TableColumnCardType = exports.TableColumnSomething = exports.PageTable = void 0;
|
34
34
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
35
35
|
var react_core_1 = require("@patternfly/react-core");
|
36
36
|
var react_icons_1 = require("@patternfly/react-icons");
|
@@ -46,18 +46,12 @@ var DateTimeCell_1 = require("../PageCells/DateTimeCell");
|
|
46
46
|
var LabelsCell_1 = require("../PageCells/LabelsCell");
|
47
47
|
var TextCell_1 = require("../PageCells/TextCell");
|
48
48
|
var PageColumnModal_1 = require("../PageColumnModal");
|
49
|
-
var PageHeader_1 = require("../PageHeader");
|
50
|
-
var PageLayout_1 = require("../PageLayout");
|
51
49
|
var Settings_1 = require("../Settings");
|
52
50
|
var PagePagination_1 = require("./PagePagination");
|
53
51
|
var PageTableCards_1 = require("./PageTableCards");
|
54
52
|
var PageTableList_1 = require("./PageTableList");
|
55
53
|
var PageTableViewType_1 = require("./PageTableViewType");
|
56
54
|
var PageToolbar_1 = require("./PageToolbar");
|
57
|
-
function TablePage(props) {
|
58
|
-
return ((0, jsx_runtime_1.jsxs)(PageLayout_1.PageLayout, { children: [(0, jsx_runtime_1.jsx)(PageHeader_1.PageHeader, __assign({}, props)), (0, jsx_runtime_1.jsx)(PageTable, __assign({}, props))] }));
|
59
|
-
}
|
60
|
-
exports.TablePage = TablePage;
|
61
55
|
/**
|
62
56
|
* The PageTable component is used for adding a table to a page.
|
63
57
|
*
|
@@ -28,9 +28,9 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
28
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
29
29
|
var react_core_1 = require("@patternfly/react-core");
|
30
30
|
var react_1 = require("react");
|
31
|
-
var Details_1 = require("../components/Details");
|
32
31
|
var IconWrapper_1 = require("../components/IconWrapper");
|
33
32
|
var PageActions_1 = require("../PageActions/PageActions");
|
33
|
+
var PageDetail_1 = require("../PageDetails/PageDetail");
|
34
34
|
var PageTable_1 = require("./PageTable");
|
35
35
|
function PageTableCard(props) {
|
36
36
|
var _a;
|
@@ -144,9 +144,9 @@ function useColumnsToTableCardFn(columns, keyFn) {
|
|
144
144
|
icon: (_a = nameColumn === null || nameColumn === void 0 ? void 0 : nameColumn.icon) === null || _a === void 0 ? void 0 : _a.call(nameColumn, item),
|
145
145
|
title: (0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: nameColumn, item: item }),
|
146
146
|
subtitle: subtitleColumn && (!subtitleColumn.value || subtitleColumn.value(item)) && ((0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: subtitleColumn, item: item })),
|
147
|
-
cardBody: ((0, jsx_runtime_1.jsx)(react_core_1.CardBody, { children: (0, jsx_runtime_1.jsxs)(react_core_1.DescriptionList, __assign({ isCompact: true }, { children: [hasDescription && ((0, jsx_runtime_1.jsx)(
|
147
|
+
cardBody: ((0, jsx_runtime_1.jsx)(react_core_1.CardBody, { children: (0, jsx_runtime_1.jsxs)(react_core_1.DescriptionList, __assign({ isCompact: true }, { children: [hasDescription && ((0, jsx_runtime_1.jsx)(PageDetail_1.PageDetail, { children: descriptionColumn.type === 'description' ? ((0, jsx_runtime_1.jsx)("div", { children: descriptionColumn.value(item) })) : ((0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: descriptionColumn, item: item })) }, descriptionColumn.id)), cardColumns
|
148
148
|
.filter(function (column) { return !column.value || column.value(item); })
|
149
|
-
.map(function (column) { return ((0, jsx_runtime_1.jsx)(
|
149
|
+
.map(function (column) { return ((0, jsx_runtime_1.jsx)(PageDetail_1.PageDetail, __assign({ label: column.header }, { children: (0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: column, item: item }) }), column.id)); }), countColumns.length > 0 && ((0, jsx_runtime_1.jsx)(PageDetail_1.PageDetail, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: { display: 'flex', gap: 16, marginTop: 8, flexWrap: 'wrap' } }, { children: countColumns.map(function (column, i) { return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { display: 'flex', gap: 6, alignItems: 'baseline' } }, { children: [(0, jsx_runtime_1.jsx)(PageTable_1.TableColumnCell, { column: column, item: item }), (0, jsx_runtime_1.jsx)("small", __assign({ style: { opacity: 0.7 } }, { children: column.header }))] }), i)); }) })) }))] })) })),
|
150
150
|
labels: labelColumn && ((_b = labelColumn.value(item)) === null || _b === void 0 ? void 0 : _b.map(function (label) { return ({ label: label }); })),
|
151
151
|
};
|
152
152
|
if (!hasDescription && cardColumns.length === 0 && countColumns.length === 0) {
|
package/cjs/PageTabs.d.ts
CHANGED
@@ -3,9 +3,10 @@ export declare function PageTabs(props: {
|
|
3
3
|
children: ReactNode;
|
4
4
|
preComponents?: ReactNode;
|
5
5
|
postComponents?: ReactNode;
|
6
|
+
loading?: boolean;
|
6
7
|
}): JSX.Element;
|
7
8
|
export declare function PageTab(props: {
|
8
|
-
|
9
|
+
label?: string;
|
9
10
|
children: ReactNode;
|
10
11
|
}): JSX.Element;
|
11
12
|
export declare function PageTabsOld(props: {
|
package/cjs/PageTabs.js
CHANGED
@@ -33,19 +33,23 @@ var react_core_1 = require("@patternfly/react-core");
|
|
33
33
|
var react_1 = require("react");
|
34
34
|
function PageTabs(props) {
|
35
35
|
var _a;
|
36
|
+
var loading = props.loading;
|
36
37
|
var _b = __read((0, react_1.useState)(0), 2), activeKey = _b[0], setActiveKey = _b[1];
|
37
38
|
var onSelect = (0, react_1.useCallback)(function (_, key) { return setActiveKey(key); }, [setActiveKey]);
|
38
39
|
var children = react_1.Children.toArray(props.children);
|
39
40
|
var tabs = children.map(function (child, index) {
|
40
41
|
if ((0, react_1.isValidElement)(child)) {
|
41
42
|
if (child.type === PageTab) {
|
42
|
-
var
|
43
|
-
return ((0, jsx_runtime_1.jsx)(react_core_1.Tab, { title:
|
43
|
+
var label = child.props.label;
|
44
|
+
return ((0, jsx_runtime_1.jsx)(react_core_1.Tab, { title: label ? label : (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, { width: "60px" }), eventKey: index }, label !== null && label !== void 0 ? label : index));
|
44
45
|
}
|
45
46
|
}
|
46
47
|
return child;
|
47
48
|
});
|
48
49
|
var content = children[activeKey];
|
50
|
+
if (loading) {
|
51
|
+
return ((0, jsx_runtime_1.jsx)(PageTabs, { children: (0, jsx_runtime_1.jsx)(PageTab, { children: (0, jsx_runtime_1.jsx)(react_core_1.PageSection, __assign({ variant: "light" }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Skeleton, {}) })) }) }));
|
52
|
+
}
|
49
53
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_core_1.PageSection, __assign({ type: react_core_1.PageSectionTypes.tabs }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Flex, __assign({ spaceItems: { default: 'spaceItemsNone' } }, { children: [props.preComponents && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_core_1.FlexItem
|
50
54
|
// style={{ paddingLeft: 16 }}
|
51
55
|
, { children: props.preComponents }), (0, jsx_runtime_1.jsx)(react_core_1.Divider, { orientation: { default: 'vertical' }, component: "div" })] })), (0, jsx_runtime_1.jsx)(react_core_1.FlexItem, __assign({ grow: { default: 'grow' } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Tabs, __assign({ activeKey: activeKey, onSelect: onSelect, inset: props.preComponents
|
package/cjs/index.d.ts
CHANGED
@@ -2,7 +2,6 @@ export * from './BulkActionDialog';
|
|
2
2
|
export * from './BulkConfirmationDialog';
|
3
3
|
export * from './components/BulkSelector';
|
4
4
|
export * from './components/Collapse';
|
5
|
-
export * from './components/Details';
|
6
5
|
export * from './components/Help';
|
7
6
|
export * from './components/icons/RunningIcon';
|
8
7
|
export * from './components/pfcolors';
|
@@ -20,7 +19,9 @@ export * from './PageCells/DateTimeCell';
|
|
20
19
|
export * from './PageCells/ElapsedTimeCell';
|
21
20
|
export * from './PageCells/LabelsCell';
|
22
21
|
export * from './PageCells/TextCell';
|
23
|
-
export * from './
|
22
|
+
export * from './PageDetails/PageDetail';
|
23
|
+
export * from './PageDetails/PageDetails';
|
24
|
+
export * from './PageDetails/PageDetailsFromColumns';
|
24
25
|
export * from './PageDialog';
|
25
26
|
export * from './PageForm/Inputs/FormGroupSelect';
|
26
27
|
export * from './PageForm/Inputs/FormGroupSelectOption';
|
@@ -31,7 +32,6 @@ export * from './PageHeader';
|
|
31
32
|
export * from './PageLayout';
|
32
33
|
export * from './PageTable/PageTable';
|
33
34
|
export * from './PageTable/PageTableCards';
|
34
|
-
export * from './PageTable/PageTableDetails';
|
35
35
|
export * from './PageTable/PageToolbar';
|
36
36
|
export * from './PageTable/useTableItems';
|
37
37
|
export * from './PageTabs';
|