@ansible/ansible-ui-framework 0.0.269 → 0.0.271

Sign up to get free protection for your applications and to get access to all the features.
package/cjs/PageBody.js CHANGED
@@ -10,21 +10,37 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
13
29
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
30
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
31
  };
16
32
  Object.defineProperty(exports, "__esModule", { value: true });
17
33
  exports.PageBody = void 0;
18
34
  var jsx_runtime_1 = require("react/jsx-runtime");
19
- var react_i18next_1 = require("react-i18next");
20
- var _1 = require(".");
21
35
  var ErrorBoundary_1 = __importDefault(require("./components/ErrorBoundary"));
36
+ var useBreakPoint_1 = require("./components/useBreakPoint");
22
37
  var Settings_1 = require("./Settings");
38
+ var useFrameworkTranslations_1 = require("./useFrameworkTranslations");
23
39
  function PageBody(props) {
24
- var usePadding = (0, _1.useBreakpoint)('xxl') && props.disablePadding !== true;
40
+ var usePadding = (0, useBreakPoint_1.useBreakpoint)('xxl') && props.disablePadding !== true;
25
41
  var settings = (0, Settings_1.useSettings)();
26
- var t = (0, react_i18next_1.useTranslation)().t;
27
- return ((0, jsx_runtime_1.jsx)(ErrorBoundary_1.default, __assign({ message: t('Error') }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
42
+ var _a = __read((0, useFrameworkTranslations_1.useFrameworkTranslations)(), 1), translations = _a[0];
43
+ return ((0, jsx_runtime_1.jsx)(ErrorBoundary_1.default, __assign({ message: translations.errorText }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
28
44
  display: 'flex',
29
45
  flexDirection: 'column',
30
46
  height: '100%',
package/cjs/PageForm.d.ts CHANGED
@@ -2,7 +2,7 @@ import { JSONSchema6 } from 'json-schema';
2
2
  import { CSSProperties, ReactNode } from 'react';
3
3
  import { DeepPartial, ErrorOption, FieldPath, FieldValues, SubmitHandler, UseFormReturn } from 'react-hook-form';
4
4
  import { PartialDeep } from 'type-fest';
5
- import { PageHeaderProps } from '.';
5
+ import { PageHeaderProps } from './PageHeader';
6
6
  export declare type FormPageProps<T extends object> = PageHeaderProps & {
7
7
  children?: ReactNode;
8
8
  defaultValues?: PartialDeep<T>;
package/cjs/PageForm.js CHANGED
@@ -38,8 +38,10 @@ var react_icons_1 = require("@patternfly/react-icons");
38
38
  var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
39
39
  var react_1 = require("react");
40
40
  var react_hook_form_1 = require("react-hook-form");
41
- var _1 = require(".");
41
+ var Collapse_1 = require("./components/Collapse");
42
42
  var Scrollable_1 = require("./components/Scrollable");
43
+ var useBreakPoint_1 = require("./components/useBreakPoint");
44
+ var PageHeader_1 = require("./PageHeader");
43
45
  var Settings_1 = require("./Settings");
44
46
  function FormPage(props) {
45
47
  // const methods = useForm<PartialDeep<T>>({
@@ -64,7 +66,7 @@ function FormPage(props) {
64
66
  return false;
65
67
  });
66
68
  var _a = __read((0, react_1.useContext)(Settings_1.SettingsContext), 1), settings = _a[0];
67
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!props.hideHeader && (0, jsx_runtime_1.jsx)(_1.PageHeader, __assign({}, props)), (0, jsx_runtime_1.jsxs)(react_core_1.Form
69
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!props.hideHeader && (0, jsx_runtime_1.jsx)(PageHeader_1.PageHeader, __assign({}, props)), (0, jsx_runtime_1.jsxs)(react_core_1.Form
68
70
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
69
71
  , __assign({
70
72
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
@@ -78,7 +80,7 @@ function FormPage(props) {
78
80
  exports.FormPage = FormPage;
79
81
  function FormPageAlerts() {
80
82
  var errors = (0, react_hook_form_1.useFormState)().errors;
81
- var isMd = (0, _1.useBreakpoint)('md');
83
+ var isMd = (0, useBreakPoint_1.useBreakpoint)('md');
82
84
  return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: errors && Object.keys(errors).length > 0 && ((0, jsx_runtime_1.jsx)(react_core_1.Alert, { title: "Please fix validation errors.", isInline: true, style: { width: '100%', paddingLeft: isMd ? 190 : undefined }, variant: "danger" })) }));
83
85
  }
84
86
  exports.FormPageAlerts = FormPageAlerts;
@@ -327,7 +329,7 @@ function PageForm(props) {
327
329
  });
328
330
  var handleSubmit = form.handleSubmit, setFieldError = form.setError;
329
331
  var _a = __read((0, react_1.useState)(''), 2), error = _a[0], setError = _a[1];
330
- var isMd = (0, _1.useBreakpoint)('md');
332
+ var isMd = (0, useBreakPoint_1.useBreakpoint)('md');
331
333
  var _b = __read((0, react_1.useContext)(Settings_1.SettingsContext), 1), settings = _b[0];
332
334
  var isHorizontal = props.isVertical ? false : settings.formLayout === 'horizontal';
333
335
  var multipleColumns = props.singleColumn ? false : settings.formColumns === 'multiple';
@@ -356,7 +358,7 @@ function PageForm(props) {
356
358
  // padding={{ default: props.onCancel ? 'padding' : 'noPadding' }}
357
359
  variant: "light", style: { maxWidth: maxWidth } }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: [props.schema && (0, jsx_runtime_1.jsx)(FormSchema, { schema: props.schema }), props.children] })) }))) : ((0, jsx_runtime_1.jsx)(Scrollable_1.Scrollable, __assign({ style: { height: '100%', flexGrow: 1 } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.PageSection, __assign({ isFilled: true,
358
360
  // padding={{ default: props.onCancel ? 'padding' : 'noPadding' }}
359
- variant: "light", style: { maxWidth: maxWidth } }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: [props.schema && (0, jsx_runtime_1.jsx)(FormSchema, { schema: props.schema }), props.children] })) })) }))), (0, jsx_runtime_1.jsx)(_1.Collapse, __assign({ open: !!error }, { children: (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)(react_core_1.PageSection, __assign({ isFilled: false, style: {
361
+ variant: "light", style: { maxWidth: maxWidth } }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Grid, __assign({ hasGutter: true, span: 12, sm: sm, md: md, lg: lg, xl: xl, xl2: xl2 }, { children: [props.schema && (0, jsx_runtime_1.jsx)(FormSchema, { schema: props.schema }), props.children] })) })) }))), (0, jsx_runtime_1.jsx)(Collapse_1.Collapse, __assign({ open: !!error }, { children: (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)(react_core_1.PageSection, __assign({ isFilled: false, style: {
360
362
  borderTop: 'thin solid var(--pf-global--BorderColor--100)',
361
363
  backgroundColor: settings.theme === 'dark' ? 'var(--pf-global--BackgroundColor--400)' : undefined,
362
364
  }, variant: "light" }, { 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: props.cancelText })))] })) }))) : ((0, jsx_runtime_1.jsx)(PageFormSubmitButton, __assign({ style: { marginTop: 48 } }, { children: props.submitText })))] })) }))
package/cjs/PageHeader.js CHANGED
@@ -16,21 +16,21 @@ var jsx_runtime_1 = require("react/jsx-runtime");
16
16
  var react_core_1 = require("@patternfly/react-core");
17
17
  var react_icons_1 = require("@patternfly/react-icons");
18
18
  var react_1 = require("react");
19
- var react_router_dom_1 = require("react-router-dom");
20
19
  var useBreakPoint_1 = require("./components/useBreakPoint");
20
+ var usePageNavigate_1 = require("./components/usePageNavigate");
21
21
  var Settings_1 = require("./Settings");
22
22
  function Breadcrumbs(props) {
23
- var history = (0, react_router_dom_1.useNavigate)();
23
+ var navigate = (0, usePageNavigate_1.usePageNavigate)();
24
24
  if (!props.breadcrumbs)
25
25
  return (0, jsx_runtime_1.jsx)(react_1.Fragment, {});
26
26
  return ((0, jsx_runtime_1.jsx)(react_core_1.Breadcrumb, __assign({ style: props.style }, { children: props.breadcrumbs.map(function (breadcrumb) {
27
27
  var _a;
28
28
  if (!breadcrumb.label)
29
29
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
30
- return ((0, jsx_runtime_1.jsx)(react_core_1.BreadcrumbItem, __assign({ id: breadcrumb.id, component: breadcrumb.component, onClick: breadcrumb.to ? function () { return breadcrumb.to && history(breadcrumb.to); } : undefined, style: {
31
- color: breadcrumb.to ? 'var(--pf-c-breadcrumb__link--Color)' : undefined,
32
- cursor: breadcrumb.to ? 'pointer' : undefined,
33
- }, isActive: breadcrumb.to === undefined }, { children: breadcrumb.label }), (_a = breadcrumb.id) !== null && _a !== void 0 ? _a : breadcrumb.label));
30
+ return ((0, jsx_runtime_1.jsx)(react_core_1.BreadcrumbItem, __assign({ id: breadcrumb.id, component: breadcrumb.component, isActive: breadcrumb.to === undefined }, { children: breadcrumb.to ? ((0, jsx_runtime_1.jsx)("a", __assign({ href: breadcrumb.to, onClick: function (e) {
31
+ e.preventDefault();
32
+ navigate(breadcrumb.to);
33
+ } }, { children: breadcrumb.label }))) : (breadcrumb.label) }), (_a = breadcrumb.id) !== null && _a !== void 0 ? _a : breadcrumb.label));
34
34
  }) })));
35
35
  }
36
36
  /**
package/cjs/PageLayout.js CHANGED
@@ -10,14 +10,30 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
13
29
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
30
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
31
  };
16
32
  Object.defineProperty(exports, "__esModule", { value: true });
17
33
  exports.PageLayout = void 0;
18
34
  var jsx_runtime_1 = require("react/jsx-runtime");
19
- var react_i18next_1 = require("react-i18next");
20
35
  var ErrorBoundary_1 = __importDefault(require("./components/ErrorBoundary"));
36
+ var useFrameworkTranslations_1 = require("./useFrameworkTranslations");
21
37
  /**
22
38
  * PageLayout enables the responsive layout of the page.
23
39
  *
@@ -30,8 +46,8 @@ var ErrorBoundary_1 = __importDefault(require("./components/ErrorBoundary"));
30
46
  * <Page>
31
47
  */
32
48
  function PageLayout(props) {
33
- var t = (0, react_i18next_1.useTranslation)().t;
34
- return ((0, jsx_runtime_1.jsx)(ErrorBoundary_1.default, __assign({ message: t('Error') }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
49
+ var _a = __read((0, useFrameworkTranslations_1.useFrameworkTranslations)(), 1), translations = _a[0];
50
+ return ((0, jsx_runtime_1.jsx)(ErrorBoundary_1.default, __assign({ message: translations.errorText }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
35
51
  display: 'flex',
36
52
  flexDirection: 'column',
37
53
  height: '100%',
@@ -43,13 +43,13 @@ var jsx_runtime_1 = require("react/jsx-runtime");
43
43
  var react_core_1 = require("@patternfly/react-core");
44
44
  var react_icons_1 = require("@patternfly/react-icons");
45
45
  var react_1 = require("react");
46
- var react_i18next_1 = require("react-i18next");
47
46
  var BulkSelector_1 = require("./components/BulkSelector");
48
47
  var SingleSelect_1 = require("./components/SingleSelect");
49
48
  var useBreakPoint_1 = require("./components/useBreakPoint");
50
49
  var PageTableViewType_1 = require("./PageTableViewType");
51
50
  var Settings_1 = require("./Settings");
52
51
  var TypedActions_1 = require("./TypedActions");
52
+ var useFrameworkTranslations_1 = require("./useFrameworkTranslations");
53
53
  function toolbarActionsHaveBulkActions(actions) {
54
54
  var e_1, _a;
55
55
  if (!actions)
@@ -217,9 +217,9 @@ function ToolbarTextFilter(props) {
217
217
  } }, { children: (0, jsx_runtime_1.jsx)(react_icons_1.ArrowRightIcon, {}) })))] }));
218
218
  }
219
219
  function ToolbarSelectFilter(props) {
220
- var t = (0, react_i18next_1.useTranslation)().t;
220
+ var _a = __read((0, useFrameworkTranslations_1.useFrameworkTranslations)(), 1), translations = _a[0];
221
221
  var addFilter = props.addFilter, removeFilter = props.removeFilter, options = props.options, values = props.values;
222
- var _a = __read((0, react_1.useState)(false), 2), open = _a[0], setOpen = _a[1];
222
+ var _b = __read((0, react_1.useState)(false), 2), open = _b[0], setOpen = _b[1];
223
223
  var onSelect = (0, react_1.useCallback)(function (e, value) {
224
224
  if (values.includes(value.toString())) {
225
225
  removeFilter(value.toString());
@@ -229,5 +229,5 @@ function ToolbarSelectFilter(props) {
229
229
  }
230
230
  }, [addFilter, removeFilter, values]);
231
231
  var selections = values;
232
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(react_core_1.Select, __assign({ variant: react_core_1.SelectVariant.checkbox, isOpen: open, onToggle: setOpen, selections: selections, onSelect: onSelect, placeholderText: values.length ? t('Selected') : (0, jsx_runtime_1.jsx)("span", __assign({ style: { opacity: 0.7 } }, { children: props.placeholder })) }, { children: options.map(function (option) { return ((0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ id: option.value, value: option.value }, { children: option.label }), option.value)); }) })) }));
232
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(react_core_1.Select, __assign({ variant: react_core_1.SelectVariant.checkbox, isOpen: open, onToggle: setOpen, selections: selections, onSelect: onSelect, placeholderText: values.length ? (translations.selectedText) : ((0, jsx_runtime_1.jsx)("span", __assign({ style: { opacity: 0.7 } }, { children: props.placeholder }))) }, { children: options.map(function (option) { return ((0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ id: option.value, value: option.value }, { children: option.label }), option.value)); }) })) }));
233
233
  }
package/cjs/Settings.d.ts CHANGED
@@ -15,5 +15,4 @@ export declare function useSettingsDialog(t: (t: string) => string): () => void;
15
15
  export declare function SettingsDialog(props: {
16
16
  open: boolean;
17
17
  setOpen: (open: boolean) => void;
18
- t: (t: string) => string;
19
18
  }): JSX.Element;
package/cjs/Settings.js CHANGED
@@ -33,6 +33,7 @@ var react_core_1 = require("@patternfly/react-core");
33
33
  var react_1 = require("react");
34
34
  var SingleSelect_1 = require("./components/SingleSelect");
35
35
  var PageDialog_1 = require("./PageDialog");
36
+ var useFrameworkTranslations_1 = require("./useFrameworkTranslations");
36
37
  exports.SettingsContext = (0, react_1.createContext)([
37
38
  {},
38
39
  function () { return null; },
@@ -93,7 +94,7 @@ function useSettingsDialog(t) {
93
94
  var _b = __read((0, PageDialog_1.usePageDialog)(), 2), _ = _b[0], setDialog = _b[1];
94
95
  (0, react_1.useEffect)(function () {
95
96
  if (open) {
96
- setDialog((0, jsx_runtime_1.jsx)(SettingsDialog, { open: open, setOpen: setOpen, t: t }));
97
+ setDialog((0, jsx_runtime_1.jsx)(SettingsDialog, { open: open, setOpen: setOpen }));
97
98
  }
98
99
  else {
99
100
  setDialog(undefined);
@@ -106,17 +107,17 @@ function SettingsDialog(props) {
106
107
  var _a, _b, _c, _d;
107
108
  var onClose = function () { return props.setOpen(false); };
108
109
  var _e = __read((0, react_1.useContext)(exports.SettingsContext), 2), settings = _e[0], setSettings = _e[1];
109
- var t = props.t;
110
+ var _f = __read((0, useFrameworkTranslations_1.useFrameworkTranslations)(), 1), translations = _f[0];
110
111
  return ((0, jsx_runtime_1.jsx)(react_core_1.Modal, __assign({ title: "Settings", isOpen: props.open, onClose: onClose, variant: react_core_1.ModalVariant.medium, tabIndex: 0, actions: [
111
- (0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ variant: "primary", onClick: onClose }, { children: t('Close') }), "close"),
112
+ (0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ variant: "primary", onClick: onClose }, { children: translations.closeText }), "close"),
112
113
  ] }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Form, __assign({ isHorizontal: settings.formLayout === 'horizontal' }, { children: [(0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Theme", value: (_a = settings.theme) !== null && _a !== void 0 ? _a : 'system', onChange: function (theme) {
113
114
  return setSettings(__assign(__assign({}, settings), { theme: theme }));
114
- } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "system" }, { children: t('System default') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "light" }, { children: t('Light') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "dark" }, { children: t('Dark') }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Table Layout", value: (_b = settings.tableLayout) !== null && _b !== void 0 ? _b : 'comfortable', onChange: function (tableLayout) {
115
+ } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "system" }, { children: 'System default' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "light" }, { children: 'Light' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "dark" }, { children: 'Dark' }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Table Layout", value: (_b = settings.tableLayout) !== null && _b !== void 0 ? _b : 'comfortable', onChange: function (tableLayout) {
115
116
  return setSettings(__assign(__assign({}, settings), { tableLayout: tableLayout }));
116
- } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "comfortable" }, { children: t('Comfortable') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "compact" }, { children: t('Compact') }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Form Columns", value: (_c = settings.formColumns) !== null && _c !== void 0 ? _c : 'multiple', onChange: function (formColumns) {
117
+ } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "comfortable" }, { children: 'Comfortable' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "compact" }, { children: 'Compact' }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Form Columns", value: (_c = settings.formColumns) !== null && _c !== void 0 ? _c : 'multiple', onChange: function (formColumns) {
117
118
  return setSettings(__assign(__assign({}, settings), { formColumns: formColumns }));
118
- } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "multiple" }, { children: t('Multiple columns') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "single" }, { children: t('Single column') }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Form Layout", value: (_d = settings.formLayout) !== null && _d !== void 0 ? _d : 'vertical', onChange: function (formLayout) {
119
+ } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "multiple" }, { children: 'Multiple columns' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "single" }, { children: 'Single column' }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Form Layout", value: (_d = settings.formLayout) !== null && _d !== void 0 ? _d : 'vertical', onChange: function (formLayout) {
119
120
  return setSettings(__assign(__assign({}, settings), { formLayout: formLayout }));
120
- } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "vertical" }, { children: t('Vertical labels') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "horizontal" }, { children: t('Horizontal labels') }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Borders", value: settings.borders ? 'true' : 'false', onChange: function (value) { return setSettings(__assign(__assign({}, settings), { borders: value === 'true' })); }, style: { paddingBottom: 120 } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "true" }, { children: t('Yes') })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "false" }, { children: t('No') }))] }))] })) })));
121
+ } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "vertical" }, { children: 'Vertical labels' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "horizontal" }, { children: 'Horizontal labels' }))] })), (0, jsx_runtime_1.jsxs)(SingleSelect_1.SingleSelect, __assign({ label: "Borders", value: settings.borders ? 'true' : 'false', onChange: function (value) { return setSettings(__assign(__assign({}, settings), { borders: value === 'true' })); }, style: { paddingBottom: 120 } }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "true" }, { children: 'Yes' })), (0, jsx_runtime_1.jsx)(react_core_1.SelectOption, __assign({ value: "false" }, { children: 'No' }))] }))] })) })));
121
122
  }
122
123
  exports.SettingsDialog = SettingsDialog;
@@ -1,19 +1,10 @@
1
- import { ReactNode } from 'react';
2
- import { PatternFlyColor } from './components/patternfly-colors';
1
+ /// <reference types="react" />
3
2
  export declare function LabelsCell(props: {
4
3
  labels: string[];
5
4
  }): JSX.Element;
6
5
  export declare function DateCell(props: {
7
6
  value: number | string;
8
7
  }): JSX.Element;
9
- export declare function TextCell(props: {
10
- icon?: ReactNode;
11
- text?: string;
12
- iconSize?: 'sm' | 'md' | 'lg';
13
- to?: string;
14
- onClick?: () => void;
15
- textColor?: PatternFlyColor;
16
- }): JSX.Element;
17
8
  export declare function CopyCell(props: {
18
9
  text?: string;
19
10
  minWidth?: number;
@@ -27,16 +27,13 @@ var __read = (this && this.__read) || function (o, n) {
27
27
  return ar;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.BytesCell = exports.CapacityCell = exports.SinceCell = exports.CopyCell = exports.TextCell = exports.DateCell = exports.LabelsCell = void 0;
30
+ exports.BytesCell = exports.CapacityCell = exports.SinceCell = exports.CopyCell = exports.DateCell = exports.LabelsCell = void 0;
31
31
  var jsx_runtime_1 = require("react/jsx-runtime");
32
32
  var react_core_1 = require("@patternfly/react-core");
33
33
  var luxon_1 = require("luxon");
34
34
  var react_1 = require("react");
35
- var react_i18next_1 = require("react-i18next");
36
- var react_router_dom_1 = require("react-router-dom");
37
- var IconWrapper_1 = require("./components/IconWrapper");
38
- var patternfly_colors_1 = require("./components/patternfly-colors");
39
- var Settings_1 = require("./Settings");
35
+ var Settings_1 = require("../Settings");
36
+ var useFrameworkTranslations_1 = require("../useFrameworkTranslations");
40
37
  function LabelsCell(props) {
41
38
  return ((0, jsx_runtime_1.jsx)(react_core_1.LabelGroup, __assign({ numLabels: 999, style: { flexWrap: 'nowrap' } }, { children: props.labels.map(function (label) { return ((0, jsx_runtime_1.jsx)(react_core_1.Label, { children: label }, label)); }) })));
42
39
  }
@@ -46,25 +43,6 @@ function DateCell(props) {
46
43
  return ((0, jsx_runtime_1.jsxs)(react_core_1.Split, __assign({ hasGutter: true }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: date.toLocaleDateString() }), (0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: date.toLocaleTimeString() })] })));
47
44
  }
48
45
  exports.DateCell = DateCell;
49
- function TextCell(props) {
50
- var _a, _b, _c, _d, _e;
51
- return ((0, jsx_runtime_1.jsxs)(react_core_1.Split, { children: [props.icon && ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: (0, jsx_runtime_1.jsx)(IconWrapper_1.IconWrapper, __assign({ size: (_a = props.iconSize) !== null && _a !== void 0 ? _a : 'md' }, { children: props.icon })) })), props.to ? ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: (0, jsx_runtime_1.jsx)(react_core_1.Tooltip, __assign({ content: (_b = props.text) !== null && _b !== void 0 ? _b : '' }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
52
- maxWidth: 300,
53
- whiteSpace: 'nowrap',
54
- textOverflow: 'ellipsis',
55
- overflow: 'hidden',
56
- } }, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.Link, __assign({ to: props.to }, { children: (_c = props.text) !== null && _c !== void 0 ? _c : '' })) })) })) })) : props.onClick !== undefined ? ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, __assign({ onClick: props.onClick }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Button, __assign({ variant: "link", isInline: true, style: {
57
- whiteSpace: 'nowrap',
58
- } }, { children: props.text })) }))) : ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, __assign({ style: {
59
- color: props.textColor ? (0, patternfly_colors_1.getPatternflyColor)(props.textColor) : undefined,
60
- } }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Tooltip, __assign({ content: (_d = props.text) !== null && _d !== void 0 ? _d : '' }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
61
- maxWidth: 300,
62
- whiteSpace: 'nowrap',
63
- textOverflow: 'ellipsis',
64
- overflow: 'hidden',
65
- } }, { children: (_e = props.text) !== null && _e !== void 0 ? _e : '' })) })) })))] }));
66
- }
67
- exports.TextCell = TextCell;
68
46
  function CopyCell(props) {
69
47
  if (!props.text)
70
48
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
@@ -96,7 +74,7 @@ function SinceCell(props) {
96
74
  }
97
75
  exports.SinceCell = SinceCell;
98
76
  function CapacityCell(props) {
99
- var t = (0, react_i18next_1.useTranslation)().t;
77
+ var _a = __read((0, useFrameworkTranslations_1.useFrameworkTranslations)(), 1), translations = _a[0];
100
78
  var settings = (0, Settings_1.useSettings)();
101
79
  var ratio = props.used / props.capacity;
102
80
  if (props.capacity === 0)
@@ -124,7 +102,7 @@ function CapacityCell(props) {
124
102
  borderRadius: 2,
125
103
  } }) })) })), props.format ? ((0, jsx_runtime_1.jsx)(react_core_1.FlexItem, { children: props.format
126
104
  .replace('{used}', props.used.toString())
127
- .replace('{capacity}', props.capacity.toString()) })) : ((0, jsx_runtime_1.jsxs)(react_core_1.FlexItem, { children: [props.used, t(' of '), props.capacity] }))] })));
105
+ .replace('{capacity}', props.capacity.toString()) })) : ((0, jsx_runtime_1.jsxs)(react_core_1.FlexItem, { children: [props.used, " ".concat(translations.ofText, " "), props.capacity] }))] })));
128
106
  }
129
107
  exports.CapacityCell = CapacityCell;
130
108
  function BytesCell(props) {
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { PatternFlyColor } from '../components/patternfly-colors';
3
+ export interface TextCellProps {
4
+ icon?: ReactNode;
5
+ iconSize?: 'sm' | 'md' | 'lg';
6
+ text?: string;
7
+ to?: string;
8
+ onClick?: () => void;
9
+ textColor?: PatternFlyColor;
10
+ maxWidth?: number;
11
+ disableLinks?: boolean;
12
+ }
13
+ export declare function TextCell(props: TextCellProps): JSX.Element;
@@ -0,0 +1,39 @@
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.TextCell = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_core_1 = require("@patternfly/react-core");
17
+ var IconWrapper_1 = require("../components/IconWrapper");
18
+ var patternfly_colors_1 = require("../components/patternfly-colors");
19
+ var usePageNavigate_1 = require("../components/usePageNavigate");
20
+ function TextCell(props) {
21
+ var _a, _b;
22
+ var navigate = (0, usePageNavigate_1.usePageNavigate)();
23
+ return ((0, jsx_runtime_1.jsxs)(react_core_1.Split, __assign({ style: { maxWidth: '100%' } }, { children: [props.icon && ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: (0, jsx_runtime_1.jsx)(IconWrapper_1.IconWrapper, __assign({ size: (_a = props.iconSize) !== null && _a !== void 0 ? _a : 'sm' }, { children: props.icon })) })), props.text && ((0, jsx_runtime_1.jsx)(react_core_1.SplitItem, __assign({ style: { maxWidth: '100%' } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ style: {
24
+ maxWidth: (_b = props.maxWidth) !== null && _b !== void 0 ? _b : '100%',
25
+ whiteSpace: 'nowrap',
26
+ textOverflow: 'ellipsis',
27
+ overflow: 'hidden',
28
+ color: props.textColor ? (0, patternfly_colors_1.getPatternflyColor)(props.textColor) : undefined,
29
+ } }, { children: !props.disableLinks && (props.to || props.onClick) ? ((0, jsx_runtime_1.jsx)("a", __assign({ href: props.to, onClick: function (e) {
30
+ e.preventDefault();
31
+ if (props.onClick) {
32
+ props.onClick();
33
+ }
34
+ else {
35
+ navigate(props.to);
36
+ }
37
+ } }, { children: props.text }))) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: props.text })) })) })))] })));
38
+ }
39
+ exports.TextCell = TextCell;
@@ -25,9 +25,6 @@ export interface IDetailListItem {
25
25
  help?: ReactNode;
26
26
  }
27
27
  export declare type IDetail = IDetailText | IDetailList;
28
- export declare function Details(props: {
29
- details: IDetail[];
30
- }): JSX.Element;
31
28
  export declare function DetailsList(props: {
32
29
  children?: ReactNode;
33
30
  }): JSX.Element;
@@ -11,14 +11,10 @@ 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.DetailsSkeleton = exports.Detail = exports.DetailsList = exports.Details = exports.isDetailList = exports.isDetailText = void 0;
14
+ exports.DetailsSkeleton = exports.Detail = exports.DetailsList = exports.isDetailList = exports.isDetailText = void 0;
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
16
  var react_core_1 = require("@patternfly/react-core");
17
- var react_router_dom_1 = require("react-router-dom");
18
- var PageCells_1 = require("../PageCells");
19
17
  var Settings_1 = require("../Settings");
20
- var Help_1 = require("./Help");
21
- var IconWrapper_1 = require("./IconWrapper");
22
18
  function isDetailText(detail) {
23
19
  return 'label' in detail && !('items' in detail);
24
20
  }
@@ -27,32 +23,6 @@ function isDetailList(detail) {
27
23
  return 'items' in detail && 'label' in detail;
28
24
  }
29
25
  exports.isDetailList = isDetailList;
30
- function Details(props) {
31
- var details = props.details;
32
- return ((0, jsx_runtime_1.jsx)(react_core_1.DescriptionList, __assign({ orientation: {
33
- sm: 'vertical',
34
- md: 'horizontal',
35
- lg: 'horizontal',
36
- xl: 'horizontal',
37
- '2xl': 'horizontal',
38
- } }, { children: details.map(function (detail, index) {
39
- if (isDetailText(detail)) {
40
- if (!detail.text)
41
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
42
- var Icon = detail.icon;
43
- return ((0, jsx_runtime_1.jsxs)(react_core_1.DescriptionListGroup, { children: [(0, jsx_runtime_1.jsx)(react_core_1.DescriptionListTerm, { children: detail.label }), (0, jsx_runtime_1.jsx)(react_core_1.DescriptionListDescription, __assign({ id: detail.label.toLowerCase().split(' ').join('-') }, { children: (0, jsx_runtime_1.jsxs)(react_core_1.Split, { children: [Icon && ((0, jsx_runtime_1.jsx)(IconWrapper_1.IconWrapper, __assign({ size: "sm" }, { children: (0, jsx_runtime_1.jsx)(Icon, {}) }))), detail.to ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Link, __assign({ to: detail.to }, { children: detail.text }))) : detail.link ? ((0, jsx_runtime_1.jsx)("a", __assign({ href: detail.link, target: "_blank", rel: "noreferrer" }, { children: detail.text }))) : detail.color ? ((0, jsx_runtime_1.jsx)("span", __assign({ style: { color: detail.color } }, { children: detail.text }))) : detail.copy ? ((0, jsx_runtime_1.jsx)(PageCells_1.CopyCell, { text: detail.text })) : detail.since ? ((0, jsx_runtime_1.jsx)(PageCells_1.SinceCell, { value: detail.text })) : (detail.text), detail.help && (0, jsx_runtime_1.jsx)(Help_1.Help, { title: detail.helpTitle, help: detail.help })] }, index) }))] }, index));
44
- }
45
- else if (isDetailList(detail)) {
46
- return ((0, jsx_runtime_1.jsxs)(react_core_1.DescriptionListGroup, { children: [(0, jsx_runtime_1.jsx)(react_core_1.DescriptionListTerm, { children: detail.label }), (0, jsx_runtime_1.jsx)(react_core_1.DescriptionListDescription, __assign({ id: detail.label.toLowerCase().split(' ').join('-') }, { children: (0, jsx_runtime_1.jsx)(react_core_1.Stack, __assign({ hasGutter: true }, { children: detail.items.map(function (item, index) {
47
- var Icon = item.icon;
48
- return ((0, jsx_runtime_1.jsxs)(react_core_1.Split, __assign({ hasGutter: true }, { children: [Icon && (0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: item.icon }), (0, jsx_runtime_1.jsx)(react_core_1.SplitItem, { children: item.text }), item.help && (0, jsx_runtime_1.jsx)(Help_1.Help, { title: item.helpTitle, help: item.help })] }), index));
49
- }) })) }))] }, index));
50
- }
51
- else
52
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
53
- }) })));
54
- }
55
- exports.Details = Details;
56
26
  function DetailsList(props) {
57
27
  var settings = (0, Settings_1.useSettings)();
58
28
  var orientation = settings.formLayout;
@@ -0,0 +1 @@
1
+ export declare function usePageNavigate(): (to?: string) => void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePageNavigate = void 0;
4
+ var react_1 = require("react");
5
+ function usePageNavigate() {
6
+ var navigate = (0, react_1.useCallback)(function (to) {
7
+ if (to === null || to === void 0 ? void 0 : to.startsWith('http')) {
8
+ open(to, '_blank');
9
+ }
10
+ else {
11
+ open(to, '_self');
12
+ }
13
+ }, []);
14
+ return navigate;
15
+ }
16
+ exports.usePageNavigate = usePageNavigate;
package/cjs/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  export * from './BulkActionDialog';
2
+ export * from './cells/PageCells';
3
+ export * from './cells/TextCell';
2
4
  export * from './components/BulkSelector';
3
5
  export * from './components/Collapse';
4
6
  export * from './components/Details';
5
7
  export * from './components/Help';
8
+ export * from './components/icons/RunningIcon';
6
9
  export * from './components/patternfly-colors';
7
10
  export * from './components/useBreakPoint';
8
11
  export * from './PageAlertToaster';
9
- export * from './components/Help';
10
- export * from './components/icons/RunningIcon';
11
12
  export * from './PageBody';
12
- export * from './PageCells';
13
13
  export * from './PageDataList';
14
14
  export * from './PageDialog';
15
15
  export * from './PageForm';
package/cjs/index.js CHANGED
@@ -15,17 +15,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./BulkActionDialog"), exports);
18
+ __exportStar(require("./cells/PageCells"), exports);
19
+ __exportStar(require("./cells/TextCell"), exports);
18
20
  __exportStar(require("./components/BulkSelector"), exports);
19
21
  __exportStar(require("./components/Collapse"), exports);
20
22
  __exportStar(require("./components/Details"), exports);
21
23
  __exportStar(require("./components/Help"), exports);
24
+ __exportStar(require("./components/icons/RunningIcon"), exports);
22
25
  __exportStar(require("./components/patternfly-colors"), exports);
23
26
  __exportStar(require("./components/useBreakPoint"), exports);
24
27
  __exportStar(require("./PageAlertToaster"), exports);
25
- __exportStar(require("./components/Help"), exports);
26
- __exportStar(require("./components/icons/RunningIcon"), exports);
27
28
  __exportStar(require("./PageBody"), exports);
28
- __exportStar(require("./PageCells"), exports);
29
29
  __exportStar(require("./PageDataList"), exports);
30
30
  __exportStar(require("./PageDialog"), exports);
31
31
  __exportStar(require("./PageForm"), exports);
@@ -1,15 +1,17 @@
1
1
  import { Dispatch, ReactNode, SetStateAction } from 'react';
2
2
  export interface IFrameworkTranslations {
3
- errorText: string;
4
3
  cancelText: string;
5
4
  closeText: string;
6
5
  confirmText: string;
6
+ errorText: string;
7
+ noItemsFound: string;
7
8
  pendingText: string;
9
+ processingText: string;
10
+ selectedText: string;
8
11
  submitText: string;
9
12
  submittingText: string;
10
13
  successText: string;
11
- processingText: string;
12
- noItemsFound: string;
14
+ ofText: string;
13
15
  }
14
16
  export declare function FrameworkTranslationsProvider(props: {
15
17
  children: ReactNode;
@@ -15,16 +15,18 @@ exports.useFrameworkTranslations = exports.FrameworkTranslationsProvider = void
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
16
  var react_1 = require("react");
17
17
  var defaultTranslations = {
18
- errorText: 'Error',
19
18
  cancelText: 'Cancel',
20
19
  closeText: 'Close',
21
20
  confirmText: 'Confirm',
21
+ errorText: 'Error',
22
+ noItemsFound: 'No items found',
22
23
  pendingText: 'Pending',
24
+ processingText: 'Processing',
23
25
  submitText: 'Submit',
24
26
  submittingText: 'Submitting',
25
27
  successText: 'Success',
26
- processingText: 'Processing',
27
- noItemsFound: 'No items found',
28
+ selectedText: 'Selected',
29
+ ofText: 'of',
28
30
  };
29
31
  var FrameworkTranslationsContext = (0, react_1.createContext)([defaultTranslations, function () { return alert('Use FrameworkTranslationsProvider'); }]);
30
32
  function FrameworkTranslationsProvider(props) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ansible/ansible-ui-framework",
3
3
  "description": "Framework for building consistent responsive web applications using PatternFly.",
4
- "version": "0.0.269",
4
+ "version": "0.0.271",
5
5
  "author": "Red Hat",
6
6
  "license": "MIT",
7
7
  "repository": {