@red-hat-developer-hub/plugin-cost-management 2.2.2 → 2.4.0
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 +23 -0
- package/README.md +28 -1
- package/dist/Router.esm.js +16 -10
- package/dist/Router.esm.js.map +1 -1
- package/dist/alpha.d.ts +136 -0
- package/dist/alpha.esm.js +108 -0
- package/dist/alpha.esm.js.map +1 -0
- package/dist/components/BasePage.esm.js +8 -5
- package/dist/components/BasePage.esm.js.map +1 -1
- package/dist/components/InfoCardTitle.esm.js +2 -2
- package/dist/components/InfoCardTitle.esm.js.map +1 -1
- package/dist/components/PageLayout.esm.js +37 -30
- package/dist/components/PageLayout.esm.js.map +1 -1
- package/dist/components/icon/AnalyticsIcon.esm.js +3 -3
- package/dist/components/icon/AnalyticsIcon.esm.js.map +1 -1
- package/dist/components/icon/AnalyticsIconFilled.esm.js +2 -2
- package/dist/components/icon/AnalyticsIconFilled.esm.js.map +1 -1
- package/dist/components/icon/AnalyticsIconOutlined.esm.js +2 -2
- package/dist/components/icon/AnalyticsIconOutlined.esm.js.map +1 -1
- package/dist/components/icon/CostManagementIcon.esm.js +3 -3
- package/dist/components/icon/CostManagementIcon.esm.js.map +1 -1
- package/dist/components/icon/CostManagementIconFilled.esm.js +2 -2
- package/dist/components/icon/CostManagementIconFilled.esm.js.map +1 -1
- package/dist/components/icon/CostManagementIconOutlined.esm.js +2 -2
- package/dist/components/icon/CostManagementIconOutlined.esm.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/pages/openshift/OpenShiftPage.esm.js +257 -207
- package/dist/pages/openshift/OpenShiftPage.esm.js.map +1 -1
- package/dist/pages/openshift/components/AutocompleteComponent.esm.js +43 -40
- package/dist/pages/openshift/components/AutocompleteComponent.esm.js.map +1 -1
- package/dist/pages/openshift/components/DownloadIconButton.esm.js +11 -11
- package/dist/pages/openshift/components/DownloadIconButton.esm.js.map +1 -1
- package/dist/pages/openshift/components/Filters.esm.js +178 -161
- package/dist/pages/openshift/components/Filters.esm.js.map +1 -1
- package/dist/pages/openshift/components/PageHeader.esm.js +11 -6
- package/dist/pages/openshift/components/PageHeader.esm.js.map +1 -1
- package/dist/pages/openshift/components/SelectComponent.esm.js +30 -27
- package/dist/pages/openshift/components/SelectComponent.esm.js.map +1 -1
- package/dist/pages/openshift/components/TableToolbar.esm.js +187 -163
- package/dist/pages/openshift/components/TableToolbar.esm.js.map +1 -1
- package/dist/pages/optimizations/OptimizationsPage.esm.js +60 -56
- package/dist/pages/optimizations/OptimizationsPage.esm.js.map +1 -1
- package/dist/pages/optimizations/components/ComboBox.esm.js +37 -33
- package/dist/pages/optimizations/components/ComboBox.esm.js.map +1 -1
- package/dist/pages/optimizations/components/Filters.esm.js +35 -28
- package/dist/pages/optimizations/components/Filters.esm.js.map +1 -1
- package/dist/pages/optimizations/components/TableToolbar.esm.js +3 -2
- package/dist/pages/optimizations/components/TableToolbar.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/OptimizationsBreakdownPage.esm.js +51 -45
- package/dist/pages/optimizations-breakdown/OptimizationsBreakdownPage.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/OptimizationEngineTab.esm.js +79 -64
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/OptimizationEngineTab.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/CodeInfoCard.esm.js +4 -3
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/CodeInfoCard.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/ContainerInfoCard.esm.js +28 -20
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/ContainerInfoCard.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/ChartInfoCard.esm.js +4 -3
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/ChartInfoCard.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/components/IntlBreakdownChart.esm.js +3 -3
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/components/IntlBreakdownChart.esm.js.map +1 -1
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/components/intl-breakdown-chart/components/optimizations-breakdown-chart/components/optimizations-breakdown-chart/OptimizationsBreakdownChart.esm.js +29 -26
- package/dist/pages/optimizations-breakdown/components/optimization-engine-tab/components/chart-info-card/components/intl-breakdown-chart/components/optimizations-breakdown-chart/components/optimizations-breakdown-chart/OptimizationsBreakdownChart.esm.js.map +1 -1
- package/package.json +31 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @red-hat-developer-hub/plugin-cost-management
|
|
2
2
|
|
|
3
|
+
## 2.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ef3257c: Add a New Frontend System `/alpha` export so the plugin loads in RHDH 2.1, with Optimizations and Cost Management sidebar pages. Legacy PluginRoot exports are unchanged.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- @red-hat-developer-hub/plugin-cost-management-common@2.4.0
|
|
12
|
+
|
|
13
|
+
## 2.3.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- 1fc6bbe: Backstage version bump to v1.54.6
|
|
18
|
+
|
|
19
|
+
Also includes the workspace resolutions cleanup and MSW bump from #4459.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [1fc6bbe]
|
|
24
|
+
- @red-hat-developer-hub/plugin-cost-management-common@2.3.0
|
|
25
|
+
|
|
3
26
|
## 2.2.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -44,7 +44,34 @@ You can follow one of these options depending on your environment and how you ch
|
|
|
44
44
|
backend.add(import('@red-hat-developer-hub/plugin-cost-management-backend'));
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
1. Add the
|
|
47
|
+
1. Add the frontend plugin to your app.
|
|
48
|
+
|
|
49
|
+
**New Frontend System** (RHDH 2.1 / `app-next`):
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import costManagementPlugin from '@red-hat-developer-hub/plugin-cost-management/alpha';
|
|
53
|
+
|
|
54
|
+
const app = createApp({
|
|
55
|
+
features: [costManagementPlugin],
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Sidebar items come from the plugin: **Optimizations** (`/cost-management/optimizations`) and **Cost Management** (`/cost-management/openshift`). Optional overrides:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
app:
|
|
63
|
+
extensions:
|
|
64
|
+
- page:cost-management:
|
|
65
|
+
config:
|
|
66
|
+
title: Optimizations
|
|
67
|
+
path: /cost-management/optimizations
|
|
68
|
+
- page:cost-management/openshift:
|
|
69
|
+
config:
|
|
70
|
+
title: Cost Management
|
|
71
|
+
path: /cost-management/openshift
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Legacy frontend** (`FlatRoutes`):
|
|
48
75
|
|
|
49
76
|
```ts
|
|
50
77
|
// packages/app/src/App.tsx
|
package/dist/Router.esm.js
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
1
2
|
import { ErrorPage } from '@backstage/core-components';
|
|
2
|
-
import React from 'react';
|
|
3
3
|
import { Routes, Route } from 'react-router-dom';
|
|
4
4
|
import { OptimizationsPage } from './pages/optimizations/OptimizationsPage.esm.js';
|
|
5
5
|
import { OptimizationsBreakdownPage } from './pages/optimizations-breakdown/OptimizationsBreakdownPage.esm.js';
|
|
6
|
-
import { OpenShiftPage } from './pages/openshift/OpenShiftPage.esm.js';
|
|
7
6
|
import { usePatternFlyTheme } from './hooks/usePatternFlyTheme.esm.js';
|
|
8
7
|
|
|
8
|
+
const notFound = /* @__PURE__ */ jsx(ErrorPage, { status: "404", statusMessage: "Page not found" });
|
|
9
|
+
function OptimizationsRouter() {
|
|
10
|
+
usePatternFlyTheme();
|
|
11
|
+
return /* @__PURE__ */ jsxs(Routes, { children: [
|
|
12
|
+
/* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(OptimizationsPage, {}) }),
|
|
13
|
+
/* @__PURE__ */ jsx(Route, { path: "/:id/*", element: /* @__PURE__ */ jsx(OptimizationsBreakdownPage, {}) }),
|
|
14
|
+
/* @__PURE__ */ jsx(Route, { path: "*", element: notFound })
|
|
15
|
+
] });
|
|
16
|
+
}
|
|
9
17
|
function Router() {
|
|
10
18
|
usePatternFlyTheme();
|
|
11
|
-
return /* @__PURE__ */
|
|
12
|
-
Route,
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
));
|
|
19
|
+
return /* @__PURE__ */ jsxs(Routes, { children: [
|
|
20
|
+
/* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(OptimizationsPage, {}) }),
|
|
21
|
+
/* @__PURE__ */ jsx(Route, { path: "/:id/*", element: /* @__PURE__ */ jsx(OptimizationsBreakdownPage, {}) }),
|
|
22
|
+
/* @__PURE__ */ jsx(Route, { path: "*", element: notFound })
|
|
23
|
+
] });
|
|
18
24
|
}
|
|
19
25
|
|
|
20
|
-
export { Router };
|
|
26
|
+
export { OptimizationsRouter, Router };
|
|
21
27
|
//# sourceMappingURL=Router.esm.js.map
|
package/dist/Router.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.esm.js","sources":["../src/Router.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorPage } from '@backstage/core-components';\nimport
|
|
1
|
+
{"version":3,"file":"Router.esm.js","sources":["../src/Router.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorPage } from '@backstage/core-components';\nimport { Routes, Route } from 'react-router-dom';\nimport { OptimizationsPage } from './pages/optimizations/OptimizationsPage';\nimport { OptimizationsBreakdownPage } from './pages/optimizations-breakdown/OptimizationsBreakdownPage';\nimport { usePatternFlyTheme } from './hooks/usePatternFlyTheme';\n\nconst notFound = <ErrorPage status=\"404\" statusMessage=\"Page not found\" />;\n\n/**\n * NFS Optimizations page loader: list + breakdown only.\n * OpenShift is a separate PageBlueprint, not a child of this mount.\n */\nexport function OptimizationsRouter() {\n usePatternFlyTheme();\n\n return (\n <Routes>\n <Route path=\"/\" element={<OptimizationsPage />} />\n <Route path=\"/:id/*\" element={<OptimizationsBreakdownPage />} />\n <Route path=\"*\" element={notFound} />\n </Routes>\n );\n}\n\n/** @public Legacy ResourceOptimizationPage mount (list + breakdown). */\nexport function Router() {\n usePatternFlyTheme();\n\n return (\n <Routes>\n <Route path=\"/\" element={<OptimizationsPage />} />\n <Route path=\"/:id/*\" element={<OptimizationsBreakdownPage />} />\n <Route path=\"*\" element={notFound} />\n </Routes>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAsBA,MAAM,2BAAW,GAAA,CAAC,SAAA,EAAA,EAAU,MAAA,EAAO,KAAA,EAAM,eAAc,gBAAA,EAAiB,CAAA;AAMjE,SAAS,mBAAA,GAAsB;AACpC,EAAA,kBAAA,EAAmB;AAEnB,EAAA,4BACG,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,qBAAkB,CAAA,EAAI,CAAA;AAAA,wBAC/C,KAAA,EAAA,EAAM,IAAA,EAAK,UAAS,OAAA,kBAAS,GAAA,CAAC,8BAA2B,CAAA,EAAI,CAAA;AAAA,oBAC9D,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,GAAA,EAAI,SAAS,QAAA,EAAU;AAAA,GAAA,EACrC,CAAA;AAEJ;AAGO,SAAS,MAAA,GAAS;AACvB,EAAA,kBAAA,EAAmB;AAEnB,EAAA,4BACG,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,qBAAkB,CAAA,EAAI,CAAA;AAAA,wBAC/C,KAAA,EAAA,EAAM,IAAA,EAAK,UAAS,OAAA,kBAAS,GAAA,CAAC,8BAA2B,CAAA,EAAI,CAAA;AAAA,oBAC9D,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,GAAA,EAAI,SAAS,QAAA,EAAU;AAAA,GAAA,EACrC,CAAA;AAEJ;;;;"}
|
package/dist/alpha.d.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
3
|
+
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Cost Management plugin for the Backstage new frontend system.
|
|
7
|
+
* @alpha
|
|
8
|
+
*/
|
|
9
|
+
declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{
|
|
10
|
+
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
11
|
+
openShift: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
12
|
+
breakdown: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/:id/*">>;
|
|
13
|
+
}, {}, {
|
|
14
|
+
"api:cost-management/cost-management-slim": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
15
|
+
kind: "api";
|
|
16
|
+
name: "cost-management-slim";
|
|
17
|
+
config: {};
|
|
18
|
+
configInput: {};
|
|
19
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
20
|
+
inputs: {};
|
|
21
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
22
|
+
}>;
|
|
23
|
+
"api:cost-management/optimizations": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
24
|
+
kind: "api";
|
|
25
|
+
name: "optimizations";
|
|
26
|
+
config: {};
|
|
27
|
+
configInput: {};
|
|
28
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
29
|
+
inputs: {};
|
|
30
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
31
|
+
}>;
|
|
32
|
+
"api:cost-management/orchestrator-slim": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
33
|
+
kind: "api";
|
|
34
|
+
name: "orchestrator-slim";
|
|
35
|
+
config: {};
|
|
36
|
+
configInput: {};
|
|
37
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
38
|
+
inputs: {};
|
|
39
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
40
|
+
}>;
|
|
41
|
+
"icon-bundle:cost-management/cost-management-icons": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
42
|
+
kind: "icon-bundle";
|
|
43
|
+
name: "cost-management-icons";
|
|
44
|
+
config: {};
|
|
45
|
+
configInput: {};
|
|
46
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<{
|
|
47
|
+
[x: string]: _backstage_frontend_plugin_api.IconComponent | _backstage_frontend_plugin_api.IconElement;
|
|
48
|
+
}, "core.icons", {}>;
|
|
49
|
+
inputs: {};
|
|
50
|
+
params: {
|
|
51
|
+
icons: { [key in string]: _backstage_frontend_plugin_api.IconComponent | _backstage_frontend_plugin_api.IconElement; };
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
"page:cost-management": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
55
|
+
kind: "page";
|
|
56
|
+
name: undefined;
|
|
57
|
+
config: {
|
|
58
|
+
path: string | undefined;
|
|
59
|
+
title: string | undefined;
|
|
60
|
+
};
|
|
61
|
+
configInput: {
|
|
62
|
+
path?: string | undefined;
|
|
63
|
+
title?: string | undefined;
|
|
64
|
+
};
|
|
65
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
66
|
+
optional: true;
|
|
67
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
68
|
+
optional: true;
|
|
69
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
70
|
+
optional: true;
|
|
71
|
+
}>;
|
|
72
|
+
inputs: {
|
|
73
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
74
|
+
optional: true;
|
|
75
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
76
|
+
optional: true;
|
|
77
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
78
|
+
optional: true;
|
|
79
|
+
}>, {
|
|
80
|
+
singleton: false;
|
|
81
|
+
optional: false;
|
|
82
|
+
internal: false;
|
|
83
|
+
}>;
|
|
84
|
+
};
|
|
85
|
+
params: {
|
|
86
|
+
path: string;
|
|
87
|
+
title?: string;
|
|
88
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
89
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
90
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
91
|
+
noHeader?: boolean;
|
|
92
|
+
};
|
|
93
|
+
}>;
|
|
94
|
+
"page:cost-management/openshift": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
95
|
+
kind: "page";
|
|
96
|
+
name: "openshift";
|
|
97
|
+
config: {
|
|
98
|
+
path: string | undefined;
|
|
99
|
+
title: string | undefined;
|
|
100
|
+
};
|
|
101
|
+
configInput: {
|
|
102
|
+
path?: string | undefined;
|
|
103
|
+
title?: string | undefined;
|
|
104
|
+
};
|
|
105
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
106
|
+
optional: true;
|
|
107
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
108
|
+
optional: true;
|
|
109
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
110
|
+
optional: true;
|
|
111
|
+
}>;
|
|
112
|
+
inputs: {
|
|
113
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
114
|
+
optional: true;
|
|
115
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
116
|
+
optional: true;
|
|
117
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
118
|
+
optional: true;
|
|
119
|
+
}>, {
|
|
120
|
+
singleton: false;
|
|
121
|
+
optional: false;
|
|
122
|
+
internal: false;
|
|
123
|
+
}>;
|
|
124
|
+
};
|
|
125
|
+
params: {
|
|
126
|
+
path: string;
|
|
127
|
+
title?: string;
|
|
128
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
129
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
130
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
131
|
+
noHeader?: boolean;
|
|
132
|
+
};
|
|
133
|
+
}>;
|
|
134
|
+
}>;
|
|
135
|
+
|
|
136
|
+
export { _default as default };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { fetchApiRef, discoveryApiRef, identityApiRef } from '@backstage/core-plugin-api';
|
|
3
|
+
import { ApiBlueprint, createApiFactory, PageBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
4
|
+
import { IconBundleBlueprint } from '@backstage/plugin-app-react';
|
|
5
|
+
import { OptimizationsClient, OrchestratorSlimClient, CostManagementSlimClient } from '@red-hat-developer-hub/plugin-cost-management-common/clients';
|
|
6
|
+
import { optimizationsApiRef, orchestratorSlimApiRef, costManagementSlimApiRef } from './apis.esm.js';
|
|
7
|
+
import '@material-ui/core/SvgIcon';
|
|
8
|
+
import { CostManagementIconOutlined } from './components/icon/CostManagementIconOutlined.esm.js';
|
|
9
|
+
import { rootRouteRef, openShiftRouteRef, optimizationsBreakdownRouteRef } from './routes.esm.js';
|
|
10
|
+
|
|
11
|
+
const optimizationsApi = ApiBlueprint.make({
|
|
12
|
+
name: "optimizations",
|
|
13
|
+
params: (defineParams) => defineParams(
|
|
14
|
+
createApiFactory({
|
|
15
|
+
api: optimizationsApiRef,
|
|
16
|
+
deps: {
|
|
17
|
+
discoveryApi: discoveryApiRef,
|
|
18
|
+
fetchApi: fetchApiRef
|
|
19
|
+
},
|
|
20
|
+
factory: ({ discoveryApi, fetchApi }) => new OptimizationsClient({
|
|
21
|
+
discoveryApi,
|
|
22
|
+
fetchApi
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
)
|
|
26
|
+
});
|
|
27
|
+
const orchestratorSlimApi = ApiBlueprint.make({
|
|
28
|
+
name: "orchestrator-slim",
|
|
29
|
+
params: (defineParams) => defineParams(
|
|
30
|
+
createApiFactory({
|
|
31
|
+
api: orchestratorSlimApiRef,
|
|
32
|
+
deps: {
|
|
33
|
+
discoveryApi: discoveryApiRef,
|
|
34
|
+
fetchApi: fetchApiRef,
|
|
35
|
+
identityApi: identityApiRef
|
|
36
|
+
},
|
|
37
|
+
factory: ({ discoveryApi, fetchApi, identityApi }) => new OrchestratorSlimClient({
|
|
38
|
+
discoveryApi,
|
|
39
|
+
fetchApi,
|
|
40
|
+
identityApi
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
)
|
|
44
|
+
});
|
|
45
|
+
const costManagementSlimApi = ApiBlueprint.make({
|
|
46
|
+
name: "cost-management-slim",
|
|
47
|
+
params: (defineParams) => defineParams(
|
|
48
|
+
createApiFactory({
|
|
49
|
+
api: costManagementSlimApiRef,
|
|
50
|
+
deps: {
|
|
51
|
+
discoveryApi: discoveryApiRef,
|
|
52
|
+
fetchApi: fetchApiRef
|
|
53
|
+
},
|
|
54
|
+
factory: ({ discoveryApi, fetchApi }) => new CostManagementSlimClient({
|
|
55
|
+
discoveryApi,
|
|
56
|
+
fetchApi
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
)
|
|
60
|
+
});
|
|
61
|
+
const costManagementIcons = IconBundleBlueprint.make({
|
|
62
|
+
name: "cost-management-icons",
|
|
63
|
+
params: {
|
|
64
|
+
icons: {
|
|
65
|
+
costManagementIconOutlined: CostManagementIconOutlined
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const optimizationsPage = PageBlueprint.make({
|
|
70
|
+
params: {
|
|
71
|
+
path: "/cost-management/optimizations",
|
|
72
|
+
routeRef: rootRouteRef,
|
|
73
|
+
title: "Optimizations",
|
|
74
|
+
icon: /* @__PURE__ */ jsx(CostManagementIconOutlined, {}),
|
|
75
|
+
noHeader: true,
|
|
76
|
+
loader: () => import('./Router.esm.js').then((m) => /* @__PURE__ */ jsx(m.OptimizationsRouter, {}))
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const openShiftPage = PageBlueprint.make({
|
|
80
|
+
name: "openshift",
|
|
81
|
+
params: {
|
|
82
|
+
path: "/cost-management/openshift",
|
|
83
|
+
routeRef: openShiftRouteRef,
|
|
84
|
+
title: "Cost Management",
|
|
85
|
+
icon: /* @__PURE__ */ jsx(CostManagementIconOutlined, {}),
|
|
86
|
+
noHeader: true,
|
|
87
|
+
loader: () => import('./pages/openshift/OpenShiftPage.esm.js').then((m) => /* @__PURE__ */ jsx(m.OpenShiftPage, {}))
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
var alpha = createFrontendPlugin({
|
|
91
|
+
pluginId: "cost-management",
|
|
92
|
+
extensions: [
|
|
93
|
+
optimizationsApi,
|
|
94
|
+
orchestratorSlimApi,
|
|
95
|
+
costManagementSlimApi,
|
|
96
|
+
costManagementIcons,
|
|
97
|
+
optimizationsPage,
|
|
98
|
+
openShiftPage
|
|
99
|
+
],
|
|
100
|
+
routes: {
|
|
101
|
+
root: rootRouteRef,
|
|
102
|
+
openShift: openShiftRouteRef,
|
|
103
|
+
breakdown: optimizationsBreakdownRouteRef
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
export { alpha as default };
|
|
108
|
+
//# sourceMappingURL=alpha.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * New Frontend System entry (`./alpha`).\n *\n * @packageDocumentation\n */\n\nimport {\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n ApiBlueprint,\n createApiFactory,\n createFrontendPlugin,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport { IconBundleBlueprint } from '@backstage/plugin-app-react';\nimport {\n CostManagementSlimClient,\n OptimizationsClient,\n OrchestratorSlimClient,\n} from '@red-hat-developer-hub/plugin-cost-management-common/clients';\nimport {\n costManagementSlimApiRef,\n optimizationsApiRef,\n orchestratorSlimApiRef,\n} from './apis';\nimport { CostManagementIconOutlined } from './components/icon';\nimport {\n optimizationsBreakdownRouteRef,\n openShiftRouteRef,\n rootRouteRef,\n} from './routes';\n\nconst optimizationsApi = ApiBlueprint.make({\n name: 'optimizations',\n params: defineParams =>\n defineParams(\n createApiFactory({\n api: optimizationsApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new OptimizationsClient({\n discoveryApi,\n fetchApi,\n }),\n }),\n ),\n});\n\nconst orchestratorSlimApi = ApiBlueprint.make({\n name: 'orchestrator-slim',\n params: defineParams =>\n defineParams(\n createApiFactory({\n api: orchestratorSlimApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ discoveryApi, fetchApi, identityApi }) =>\n new OrchestratorSlimClient({\n discoveryApi,\n fetchApi,\n identityApi,\n }),\n }),\n ),\n});\n\nconst costManagementSlimApi = ApiBlueprint.make({\n name: 'cost-management-slim',\n params: defineParams =>\n defineParams(\n createApiFactory({\n api: costManagementSlimApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CostManagementSlimClient({\n discoveryApi,\n fetchApi,\n }),\n }),\n ),\n});\n\nconst costManagementIcons = IconBundleBlueprint.make({\n name: 'cost-management-icons',\n params: {\n icons: {\n costManagementIconOutlined: CostManagementIconOutlined,\n },\n },\n});\n\nconst optimizationsPage = PageBlueprint.make({\n params: {\n path: '/cost-management/optimizations',\n routeRef: rootRouteRef,\n title: 'Optimizations',\n icon: <CostManagementIconOutlined />,\n noHeader: true,\n loader: () => import('./Router').then(m => <m.OptimizationsRouter />),\n },\n});\n\nconst openShiftPage = PageBlueprint.make({\n name: 'openshift',\n params: {\n path: '/cost-management/openshift',\n routeRef: openShiftRouteRef,\n title: 'Cost Management',\n icon: <CostManagementIconOutlined />,\n noHeader: true,\n loader: () =>\n import('./pages/openshift/OpenShiftPage').then(m => <m.OpenShiftPage />),\n },\n});\n\n/**\n * Cost Management plugin for the Backstage new frontend system.\n * @alpha\n */\nexport default createFrontendPlugin({\n pluginId: 'cost-management',\n extensions: [\n optimizationsApi,\n orchestratorSlimApi,\n costManagementSlimApi,\n costManagementIcons,\n optimizationsPage,\n openShiftPage,\n ],\n routes: {\n root: rootRouteRef,\n openShift: openShiftRouteRef,\n breakdown: optimizationsBreakdownRouteRef,\n },\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { PageWithHeader, Content, ContentHeader, SupportButton } from '@backstage/core-components';
|
|
3
3
|
|
|
4
4
|
function BasePage(props) {
|
|
@@ -13,15 +13,18 @@ function BasePage(props) {
|
|
|
13
13
|
showSupportButton = false,
|
|
14
14
|
withContentPadding = false
|
|
15
15
|
} = props;
|
|
16
|
-
return /* @__PURE__ */
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
17
|
PageWithHeader,
|
|
18
18
|
{
|
|
19
19
|
title: pageTitle,
|
|
20
20
|
type: pageType,
|
|
21
21
|
typeLink: pageTypeLink,
|
|
22
|
-
themeId: pageThemeId
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
themeId: pageThemeId,
|
|
23
|
+
children: /* @__PURE__ */ jsxs(Content, { noPadding: !withContentPadding, children: [
|
|
24
|
+
showContentHeader && /* @__PURE__ */ jsx(ContentHeader, { title: contentHeaderTitle, children: showSupportButton && /* @__PURE__ */ jsx(SupportButton, { children: "Support" }) }),
|
|
25
|
+
children
|
|
26
|
+
] })
|
|
27
|
+
}
|
|
25
28
|
);
|
|
26
29
|
}
|
|
27
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePage.esm.js","sources":["../../src/components/BasePage.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport
|
|
1
|
+
{"version":3,"file":"BasePage.esm.js","sources":["../../src/components/BasePage.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PropsWithChildren } from 'react';\nimport {\n PageWithHeader,\n Content,\n ContentHeader,\n SupportButton,\n} from '@backstage/core-components';\n\n/** @public */\nexport function BasePage(\n props: PropsWithChildren<{\n pageThemeId?: string;\n pageTitle: string;\n pageType?: string;\n pageTypeLink?: string;\n contentHeaderTitle?: string;\n showSupportButton?: boolean;\n showContentHeader?: boolean;\n withContentPadding?: boolean;\n }>,\n) {\n const {\n children,\n contentHeaderTitle = '',\n pageThemeId = 'tool',\n pageTitle,\n pageType,\n pageTypeLink,\n showContentHeader = false,\n showSupportButton = false,\n withContentPadding = false,\n } = props;\n\n return (\n <PageWithHeader\n title={pageTitle}\n type={pageType}\n typeLink={pageTypeLink}\n themeId={pageThemeId}\n >\n <Content noPadding={!withContentPadding}>\n {showContentHeader && (\n <ContentHeader title={contentHeaderTitle}>\n {showSupportButton && <SupportButton>Support</SupportButton>}\n </ContentHeader>\n )}\n {children}\n </Content>\n </PageWithHeader>\n );\n}\n"],"names":[],"mappings":";;;AAyBO,SAAS,SACd,KAAA,EAUA;AACA,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,kBAAA,GAAqB,EAAA;AAAA,IACrB,WAAA,GAAc,MAAA;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA,GAAoB,KAAA;AAAA,IACpB,iBAAA,GAAoB,KAAA;AAAA,IACpB,kBAAA,GAAqB;AAAA,GACvB,GAAI,KAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,QAAA;AAAA,MACN,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,CAAC,kBAAA,EAClB,QAAA,EAAA;AAAA,QAAA,iBAAA,oBACC,GAAA,CAAC,iBAAc,KAAA,EAAO,kBAAA,EACnB,+CAAqB,GAAA,CAAC,aAAA,EAAA,EAAc,qBAAO,CAAA,EAC9C,CAAA;AAAA,QAED;AAAA,OAAA,EACH;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import Typography from '@material-ui/core/Typography';
|
|
3
3
|
|
|
4
4
|
const InfoCardTitle = (props) => {
|
|
5
|
-
return /* @__PURE__ */
|
|
5
|
+
return /* @__PURE__ */ jsx(Typography, { variant: "body1", children: /* @__PURE__ */ jsx("b", { children: props.title }) });
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export { InfoCardTitle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoCardTitle.esm.js","sources":["../../src/components/InfoCardTitle.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport Typography from '@material-ui/core/Typography';\n\ninterface InfoCardTitleProps {\n title: React.ReactNode;\n}\n\nexport const InfoCardTitle = (props: InfoCardTitleProps) => {\n return (\n <Typography variant=\"body1\">\n <b>{props.title}</b>\n </Typography>\n );\n};\n"],"names":[],"mappings":";;;AAuBO,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA8B;AAC1D,EAAA,uBACE,
|
|
1
|
+
{"version":3,"file":"InfoCardTitle.esm.js","sources":["../../src/components/InfoCardTitle.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { default as React } from 'react';\nimport Typography from '@material-ui/core/Typography';\n\ninterface InfoCardTitleProps {\n title: React.ReactNode;\n}\n\nexport const InfoCardTitle = (props: InfoCardTitleProps) => {\n return (\n <Typography variant=\"body1\">\n <b>{props.title}</b>\n </Typography>\n );\n};\n"],"names":[],"mappings":";;;AAuBO,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA8B;AAC1D,EAAA,uBACE,GAAA,CAAC,cAAW,OAAA,EAAQ,OAAA,EAClB,8BAAC,GAAA,EAAA,EAAG,QAAA,EAAA,KAAA,CAAM,OAAM,CAAA,EAClB,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import Box from '@material-ui/core/Box';
|
|
3
4
|
import Button from '@material-ui/core/Button';
|
|
4
5
|
import Drawer from '@material-ui/core/Drawer';
|
|
@@ -14,40 +15,46 @@ function Filters(props) {
|
|
|
14
15
|
);
|
|
15
16
|
const theme = useTheme();
|
|
16
17
|
const [filterDrawerOpen, setFilterDrawerOpen] = useState(false);
|
|
17
|
-
return isScreenSmallerThanBreakpoint ? /* @__PURE__ */
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
style: { marginTop: theme.spacing(1), marginLeft: theme.spacing(1) },
|
|
21
|
-
onClick: () => setFilterDrawerOpen(true),
|
|
22
|
-
startIcon: /* @__PURE__ */ React.createElement(FilterListIcon, null)
|
|
23
|
-
},
|
|
24
|
-
"Filters"
|
|
25
|
-
), /* @__PURE__ */ React.createElement(
|
|
26
|
-
Drawer,
|
|
27
|
-
{
|
|
28
|
-
open: filterDrawerOpen,
|
|
29
|
-
onClose: () => setFilterDrawerOpen(false),
|
|
30
|
-
anchor: props.options?.drawerAnchor ?? "left",
|
|
31
|
-
disableAutoFocus: true,
|
|
32
|
-
keepMounted: true,
|
|
33
|
-
variant: "temporary"
|
|
34
|
-
},
|
|
35
|
-
/* @__PURE__ */ React.createElement(Box, { m: 2 }, /* @__PURE__ */ React.createElement(
|
|
36
|
-
Typography,
|
|
18
|
+
return isScreenSmallerThanBreakpoint ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
19
|
+
/* @__PURE__ */ jsx(
|
|
20
|
+
Button,
|
|
37
21
|
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
),
|
|
44
|
-
|
|
22
|
+
style: { marginTop: theme.spacing(1), marginLeft: theme.spacing(1) },
|
|
23
|
+
onClick: () => setFilterDrawerOpen(true),
|
|
24
|
+
startIcon: /* @__PURE__ */ jsx(FilterListIcon, {}),
|
|
25
|
+
children: "Filters"
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
/* @__PURE__ */ jsx(
|
|
29
|
+
Drawer,
|
|
30
|
+
{
|
|
31
|
+
open: filterDrawerOpen,
|
|
32
|
+
onClose: () => setFilterDrawerOpen(false),
|
|
33
|
+
anchor: props.options?.drawerAnchor ?? "left",
|
|
34
|
+
disableAutoFocus: true,
|
|
35
|
+
keepMounted: true,
|
|
36
|
+
variant: "temporary",
|
|
37
|
+
children: /* @__PURE__ */ jsxs(Box, { m: 2, children: [
|
|
38
|
+
/* @__PURE__ */ jsx(
|
|
39
|
+
Typography,
|
|
40
|
+
{
|
|
41
|
+
variant: "h6",
|
|
42
|
+
component: "h2",
|
|
43
|
+
style: { marginBottom: theme.spacing(1) },
|
|
44
|
+
children: "Filters"
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
props.children
|
|
48
|
+
] })
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
] }) : /* @__PURE__ */ jsx(Grid, { item: true, lg: 2, children: props.children });
|
|
45
52
|
}
|
|
46
53
|
function Table(props) {
|
|
47
|
-
return /* @__PURE__ */
|
|
54
|
+
return /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, lg: 10, children: props.children });
|
|
48
55
|
}
|
|
49
56
|
function PageLayout(props) {
|
|
50
|
-
return /* @__PURE__ */
|
|
57
|
+
return /* @__PURE__ */ jsx(Grid, { container: true, style: { position: "relative" }, children: props.children });
|
|
51
58
|
}
|
|
52
59
|
PageLayout.Filters = Filters;
|
|
53
60
|
PageLayout.Table = Table;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.esm.js","sources":["../../src/components/PageLayout.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React,
|
|
1
|
+
{"version":3,"file":"PageLayout.esm.js","sources":["../../src/components/PageLayout.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { default as React, useState } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Drawer from '@material-ui/core/Drawer';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport { Theme, useTheme } from '@material-ui/core/styles';\nimport FilterListIcon from '@material-ui/icons/FilterList';\n\nfunction Filters(props: {\n children: React.ReactNode;\n options?: {\n drawerBreakpoint?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;\n drawerAnchor?: 'left' | 'right' | 'top' | 'bottom';\n };\n}) {\n const isScreenSmallerThanBreakpoint = useMediaQuery((theme: Theme) =>\n theme.breakpoints.down(props.options?.drawerBreakpoint ?? 'md'),\n );\n const theme = useTheme();\n const [filterDrawerOpen, setFilterDrawerOpen] = useState<boolean>(false);\n\n return isScreenSmallerThanBreakpoint ? (\n <>\n <Button\n style={{ marginTop: theme.spacing(1), marginLeft: theme.spacing(1) }}\n onClick={() => setFilterDrawerOpen(true)}\n startIcon={<FilterListIcon />}\n >\n Filters\n </Button>\n <Drawer\n open={filterDrawerOpen}\n onClose={() => setFilterDrawerOpen(false)}\n anchor={props.options?.drawerAnchor ?? 'left'}\n disableAutoFocus\n keepMounted\n variant=\"temporary\"\n >\n <Box m={2}>\n <Typography\n variant=\"h6\"\n component=\"h2\"\n style={{ marginBottom: theme.spacing(1) }}\n >\n Filters\n </Typography>\n {props.children}\n </Box>\n </Drawer>\n </>\n ) : (\n <Grid item lg={2}>\n {props.children}\n </Grid>\n );\n}\n\nfunction Table(props: { children: React.ReactNode }) {\n return (\n <Grid item xs={12} lg={10}>\n {props.children}\n </Grid>\n );\n}\n\n/** @public */\nexport function PageLayout(props: { children: React.ReactNode }) {\n return (\n <Grid container style={{ position: 'relative' }}>\n {props.children}\n </Grid>\n );\n}\n\nPageLayout.Filters = Filters;\nPageLayout.Table = Table;\n"],"names":["theme"],"mappings":";;;;;;;;;;;AA0BA,SAAS,QAAQ,KAAA,EAMd;AACD,EAAA,MAAM,6BAAA,GAAgC,aAAA;AAAA,IAAc,CAACA,WACnDA,MAAAA,CAAM,WAAA,CAAY,KAAK,KAAA,CAAM,OAAA,EAAS,oBAAoB,IAAI;AAAA,GAChE;AACA,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEvE,EAAA,OAAO,gDACL,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAE;AAAA,QACnE,OAAA,EAAS,MAAM,mBAAA,CAAoB,IAAI,CAAA;AAAA,QACvC,SAAA,sBAAY,cAAA,EAAA,EAAe,CAAA;AAAA,QAC5B,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,gBAAA;AAAA,QACN,OAAA,EAAS,MAAM,mBAAA,CAAoB,KAAK,CAAA;AAAA,QACxC,MAAA,EAAQ,KAAA,CAAM,OAAA,EAAS,YAAA,IAAgB,MAAA;AAAA,QACvC,gBAAA,EAAgB,IAAA;AAAA,QAChB,WAAA,EAAW,IAAA;AAAA,QACX,OAAA,EAAQ,WAAA;AAAA,QAER,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,CAAA,EAAG,CAAA,EACN,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,IAAA;AAAA,cACR,SAAA,EAAU,IAAA;AAAA,cACV,OAAO,EAAE,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAE;AAAA,cACzC,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,UACC,KAAA,CAAM;AAAA,SAAA,EACT;AAAA;AAAA;AACF,GAAA,EACF,CAAA,uBAEC,IAAA,EAAA,EAAK,IAAA,EAAI,MAAC,EAAA,EAAI,CAAA,EACZ,gBAAM,QAAA,EACT,CAAA;AAEJ;AAEA,SAAS,MAAM,KAAA,EAAsC;AACnD,EAAA,uBACE,GAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EAAC,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EACpB,QAAA,EAAA,KAAA,CAAM,QAAA,EACT,CAAA;AAEJ;AAGO,SAAS,WAAW,KAAA,EAAsC;AAC/D,EAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAW,EAC3C,QAAA,EAAA,KAAA,CAAM,QAAA,EACT,CAAA;AAEJ;AAEA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,UAAA,CAAW,KAAA,GAAQ,KAAA;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import SvgIcon from '@material-ui/core/SvgIcon';
|
|
3
3
|
|
|
4
4
|
const AnalyticsIcon = (props) => {
|
|
5
5
|
const variant = props.variant ?? "outlined";
|
|
6
|
-
const path = variant === "outlined" ? /* @__PURE__ */
|
|
7
|
-
return /* @__PURE__ */
|
|
6
|
+
const path = variant === "outlined" ? /* @__PURE__ */ jsx("path", { d: "M280-280h80v-200h-80v200Zm320 0h80v-400h-80v400Zm-160 0h80v-120h-80v120Zm0-200h80v-80h-80v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0-560v560-560Z" }) : /* @__PURE__ */ jsx("path", { d: "M280-280h80v-200h-80v200Zm320 0h80v-400h-80v400Zm-160 0h80v-120h-80v120Zm0-200h80v-80h-80v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z" });
|
|
7
|
+
return /* @__PURE__ */ jsx(SvgIcon, { ...props, viewBox: "0 -960 960 960", children: path });
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export { AnalyticsIcon };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsIcon.esm.js","sources":["../../../src/components/icon/AnalyticsIcon.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport
|
|
1
|
+
{"version":3,"file":"AnalyticsIcon.esm.js","sources":["../../../src/components/icon/AnalyticsIcon.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\n\n/**\n * The Analytics icon.\n *\n * @public\n */\nexport const AnalyticsIcon = (\n props: SvgIconProps & { variant?: 'outlined' | 'filled' },\n) => {\n const variant = props.variant ?? 'outlined';\n const path =\n variant === 'outlined' ? (\n <path d=\"M280-280h80v-200h-80v200Zm320 0h80v-400h-80v400Zm-160 0h80v-120h-80v120Zm0-200h80v-80h-80v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0-560v560-560Z\" />\n ) : (\n <path d=\"M280-280h80v-200h-80v200Zm320 0h80v-400h-80v400Zm-160 0h80v-120h-80v120Zm0-200h80v-80h-80v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z\" />\n );\n\n return (\n <SvgIcon {...props} viewBox=\"0 -960 960 960\">\n {path}\n </SvgIcon>\n );\n};\n"],"names":[],"mappings":";;;AAuBO,MAAM,aAAA,GAAgB,CAC3B,KAAA,KACG;AACH,EAAA,MAAM,OAAA,GAAU,MAAM,OAAA,IAAW,UAAA;AACjC,EAAA,MAAM,IAAA,GACJ,OAAA,KAAY,UAAA,mBACV,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4PAAA,EAA6P,CAAA,mBAErQ,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sNAAA,EAAuN,CAAA;AAGnO,EAAA,2BACG,OAAA,EAAA,EAAS,GAAG,KAAA,EAAO,OAAA,EAAQ,kBACzB,QAAA,EAAA,IAAA,EACH,CAAA;AAEJ;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { AnalyticsIcon } from './AnalyticsIcon.esm.js';
|
|
3
3
|
|
|
4
4
|
const AnalyticsIconFilled = (props) => {
|
|
5
|
-
return /* @__PURE__ */
|
|
5
|
+
return /* @__PURE__ */ jsx(AnalyticsIcon, { variant: "filled", ...props });
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export { AnalyticsIconFilled };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsIconFilled.esm.js","sources":["../../../src/components/icon/AnalyticsIconFilled.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport
|
|
1
|
+
{"version":3,"file":"AnalyticsIconFilled.esm.js","sources":["../../../src/components/icon/AnalyticsIconFilled.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { SvgIconProps } from '@material-ui/core/SvgIcon';\nimport { AnalyticsIcon } from './AnalyticsIcon';\n\n/**\n * The filled variant of the Analytics icon.\n *\n * @public\n */\nexport const AnalyticsIconFilled = (props: SvgIconProps) => {\n return <AnalyticsIcon variant=\"filled\" {...props} />;\n};\n"],"names":[],"mappings":";;;AAwBO,MAAM,mBAAA,GAAsB,CAAC,KAAA,KAAwB;AAC1D,EAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAc,OAAA,EAAQ,QAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AACpD;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { AnalyticsIcon } from './AnalyticsIcon.esm.js';
|
|
3
3
|
|
|
4
4
|
const AnalyticsIconOutlined = (props) => {
|
|
5
|
-
return /* @__PURE__ */
|
|
5
|
+
return /* @__PURE__ */ jsx(AnalyticsIcon, { variant: "outlined", ...props });
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export { AnalyticsIconOutlined };
|