@ansible/ansible-ui-framework 0.0.239 → 0.0.241

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.
@@ -0,0 +1,92 @@
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
+ 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
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.PageAlertToasterProvider = exports.usePageAlertToaster = exports.PageAlertToasterContext = void 0;
40
+ var react_1 = require("react");
41
+ var jsx_runtime_1 = require("react/jsx-runtime");
42
+ var react_core_1 = require("@patternfly/react-core");
43
+ var react_2 = require("react");
44
+ exports.PageAlertToasterContext = (0, react_2.createContext)({
45
+ addAlert: function () { return null; },
46
+ removeAlert: function () { return null; },
47
+ replaceAlert: function () { return null; },
48
+ removeAlerts: function () { return null; },
49
+ });
50
+ function usePageAlertToaster() {
51
+ return (0, react_2.useContext)(exports.PageAlertToasterContext);
52
+ }
53
+ exports.usePageAlertToaster = usePageAlertToaster;
54
+ function PageAlertToasterProvider(props) {
55
+ var _a = __read((0, react_2.useState)([]), 2), toasterAlerts = _a[0], setToasterAlerts = _a[1];
56
+ var _b = __read((0, react_2.useState)(function () {
57
+ function removeAlerts(filter) {
58
+ setToasterAlerts(function (alerts) { return (filter ? alerts.filter(filter) : []); });
59
+ }
60
+ function removeAlert(alert) {
61
+ setToasterAlerts(function (alerts) { return alerts.filter(function (a) { return a !== alert; }); });
62
+ }
63
+ function addAlert(alert) {
64
+ if (Number.isInteger(alert.timeout)) {
65
+ setTimeout(function () { return removeAlert(alert); }, alert.timeout);
66
+ delete alert.timeout;
67
+ }
68
+ setToasterAlerts(function (alerts) { return __spreadArray(__spreadArray([], __read(alerts), false), [alert], false); });
69
+ }
70
+ function replaceAlert(oldAlert, alert) {
71
+ setToasterAlerts(function (alerts) {
72
+ var oldAlertIndex = alerts.findIndex(function (a) { return a === oldAlert; });
73
+ if (oldAlertIndex !== -1) {
74
+ if (Number.isInteger(alert.timeout)) {
75
+ setTimeout(function () { return removeAlert(alert); }, alert.timeout);
76
+ delete alert.timeout;
77
+ }
78
+ var newAlerts = __spreadArray([], __read(alerts), false);
79
+ newAlerts[oldAlertIndex] = alert;
80
+ return newAlerts;
81
+ }
82
+ return alerts;
83
+ });
84
+ }
85
+ return { addAlert: addAlert, removeAlert: removeAlert, removeAlerts: removeAlerts, replaceAlert: replaceAlert };
86
+ }), 1), pageAlertToaster = _b[0];
87
+ return ((0, jsx_runtime_1.jsxs)(exports.PageAlertToasterContext.Provider, __assign({ value: pageAlertToaster }, { children: [(0, jsx_runtime_1.jsx)(react_core_1.AlertGroup, __assign({ isToast: true, isLiveRegion: true }, { children: toasterAlerts.map(function (alertProps, index) {
88
+ var _a, _b;
89
+ return ((0, react_1.createElement)(react_core_1.Alert, __assign({}, alertProps, { key: (_b = (_a = alertProps.key) !== null && _a !== void 0 ? _a : alertProps.id) !== null && _b !== void 0 ? _b : index, actionClose: (0, jsx_runtime_1.jsx)(react_core_1.AlertActionCloseButton, { onClose: function () { return pageAlertToaster.removeAlert(alertProps); } }) })));
90
+ }) })), props.children] })));
91
+ }
92
+ exports.PageAlertToasterProvider = PageAlertToasterProvider;
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PageFrameworkProvider = void 0;
4
4
  var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var PageAlertToaster_1 = require("./PageAlertToaster");
5
6
  var PageDialog_1 = require("./PageDialog");
6
7
  var Settings_1 = require("./Settings");
7
8
  var useFrameworkTranslations_1 = require("./useFrameworkTranslations");
8
9
  function PageFrameworkProvider(props) {
9
- return ((0, jsx_runtime_1.jsx)(useFrameworkTranslations_1.FrameworkTranslationsProvider, { children: (0, jsx_runtime_1.jsx)(Settings_1.SettingsProvider, { children: (0, jsx_runtime_1.jsx)(PageDialog_1.PageDialogProvider, { children: props.children }) }) }));
10
+ return ((0, jsx_runtime_1.jsx)(useFrameworkTranslations_1.FrameworkTranslationsProvider, { children: (0, jsx_runtime_1.jsx)(Settings_1.SettingsProvider, { children: (0, jsx_runtime_1.jsx)(PageDialog_1.PageDialogProvider, { children: (0, jsx_runtime_1.jsx)(PageAlertToaster_1.PageAlertToasterProvider, { children: props.children }) }) }) }));
10
11
  }
11
12
  exports.PageFrameworkProvider = PageFrameworkProvider;
@@ -0,0 +1,14 @@
1
+ import { AlertProps } from '@patternfly/react-core';
2
+ import { ReactNode } from 'react';
3
+ export declare type AlertToasterProps = AlertProps;
4
+ export interface IPageAlertToaster {
5
+ addAlert: (alert: AlertToasterProps) => void;
6
+ removeAlert: (alert: AlertToasterProps) => void;
7
+ replaceAlert: (oldAlert: AlertToasterProps, newAlert: AlertToasterProps) => void;
8
+ removeAlerts: (filter?: (alert: AlertToasterProps) => boolean) => void;
9
+ }
10
+ export declare const PageAlertToasterContext: import("react").Context<IPageAlertToaster>;
11
+ export declare function usePageAlertToaster(): IPageAlertToaster;
12
+ export declare function PageAlertToasterProvider(props: {
13
+ children: ReactNode;
14
+ }): JSX.Element;
@@ -0,0 +1,48 @@
1
+ import { createElement as _createElement } from "react";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Alert, AlertActionCloseButton, AlertGroup } from '@patternfly/react-core';
4
+ import { createContext, useContext, useState } from 'react';
5
+ export const PageAlertToasterContext = createContext({
6
+ addAlert: () => null,
7
+ removeAlert: () => null,
8
+ replaceAlert: () => null,
9
+ removeAlerts: () => null,
10
+ });
11
+ export function usePageAlertToaster() {
12
+ return useContext(PageAlertToasterContext);
13
+ }
14
+ export function PageAlertToasterProvider(props) {
15
+ const [toasterAlerts, setToasterAlerts] = useState([]);
16
+ const [pageAlertToaster] = useState(() => {
17
+ function removeAlerts(filter) {
18
+ setToasterAlerts((alerts) => (filter ? alerts.filter(filter) : []));
19
+ }
20
+ function removeAlert(alert) {
21
+ setToasterAlerts((alerts) => alerts.filter((a) => a !== alert));
22
+ }
23
+ function addAlert(alert) {
24
+ if (Number.isInteger(alert.timeout)) {
25
+ setTimeout(() => removeAlert(alert), alert.timeout);
26
+ delete alert.timeout;
27
+ }
28
+ setToasterAlerts((alerts) => [...alerts, alert]);
29
+ }
30
+ function replaceAlert(oldAlert, alert) {
31
+ setToasterAlerts((alerts) => {
32
+ const oldAlertIndex = alerts.findIndex((a) => a === oldAlert);
33
+ if (oldAlertIndex !== -1) {
34
+ if (Number.isInteger(alert.timeout)) {
35
+ setTimeout(() => removeAlert(alert), alert.timeout);
36
+ delete alert.timeout;
37
+ }
38
+ const newAlerts = [...alerts];
39
+ newAlerts[oldAlertIndex] = alert;
40
+ return newAlerts;
41
+ }
42
+ return alerts;
43
+ });
44
+ }
45
+ return { addAlert, removeAlert, removeAlerts, replaceAlert };
46
+ });
47
+ return (_jsxs(PageAlertToasterContext.Provider, { value: pageAlertToaster, children: [_jsx(AlertGroup, { isToast: true, isLiveRegion: true, children: toasterAlerts.map((alertProps, index) => (_createElement(Alert, { ...alertProps, key: alertProps.key ?? alertProps.id ?? index, actionClose: _jsx(AlertActionCloseButton, { onClose: () => pageAlertToaster.removeAlert(alertProps) }) }))) }), props.children] }));
48
+ }
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { PageAlertToasterProvider } from './PageAlertToaster';
2
3
  import { PageDialogProvider } from './PageDialog';
3
4
  import { SettingsProvider } from './Settings';
4
5
  import { FrameworkTranslationsProvider } from './useFrameworkTranslations';
5
6
  export function PageFrameworkProvider(props) {
6
- return (_jsx(FrameworkTranslationsProvider, { children: _jsx(SettingsProvider, { children: _jsx(PageDialogProvider, { children: props.children }) }) }));
7
+ return (_jsx(FrameworkTranslationsProvider, { children: _jsx(SettingsProvider, { children: _jsx(PageDialogProvider, { children: _jsx(PageAlertToasterProvider, { children: props.children }) }) }) }));
7
8
  }
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.239",
4
+ "version": "0.0.241",
5
5
  "author": "Red Hat",
6
6
  "license": "MIT",
7
7
  "repository": {