@electrolux-oss/plugin-infrawallet 1.1.0-20251204084511-e456a8a → 1.1.0-20251205144717-9fbd78f
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.
|
@@ -8,12 +8,11 @@ import Chip from '@mui/material/Chip';
|
|
|
8
8
|
import CircularProgress from '@mui/material/CircularProgress';
|
|
9
9
|
import Divider from '@mui/material/Divider';
|
|
10
10
|
import FormControl from '@mui/material/FormControl';
|
|
11
|
-
import Grid from '@mui/material/
|
|
11
|
+
import Grid from '@mui/material/Grid2';
|
|
12
12
|
import TextField from '@mui/material/TextField';
|
|
13
|
-
import Tooltip from '@mui/material/Tooltip';
|
|
13
|
+
import Tooltip, { tooltipClasses } from '@mui/material/Tooltip';
|
|
14
14
|
import Typography from '@mui/material/Typography';
|
|
15
|
-
import { useTheme } from '@mui/material/styles';
|
|
16
|
-
import { withStyles } from '@mui/styles';
|
|
15
|
+
import { useTheme, styled } from '@mui/material/styles';
|
|
17
16
|
import React, { useState, useEffect } from 'react';
|
|
18
17
|
import { infraWalletApiRef } from '../../api/InfraWalletApi.esm.js';
|
|
19
18
|
import { getReportKeyAndValues, extractProvider, extractAccountInfo, tagExists } from '../../api/functions.esm.js';
|
|
@@ -21,15 +20,15 @@ import { ProviderIcon } from '../ProviderIcon/ProviderIcon.esm.js';
|
|
|
21
20
|
|
|
22
21
|
const icon = /* @__PURE__ */ React.createElement(CheckBoxOutlineBlankIcon, { fontSize: "small" });
|
|
23
22
|
const checkedIcon = /* @__PURE__ */ React.createElement(CheckBoxIcon, { fontSize: "small" });
|
|
24
|
-
const HtmlTooltip =
|
|
25
|
-
tooltip: {
|
|
23
|
+
const HtmlTooltip = styled(({ className, ...props }) => /* @__PURE__ */ React.createElement(Tooltip, { ...props, classes: { popper: className } }))(({ theme }) => ({
|
|
24
|
+
[`& .${tooltipClasses.tooltip}`]: {
|
|
26
25
|
backgroundColor: "#f5f5f9",
|
|
27
26
|
color: "rgba(0, 0, 0, 0.87)",
|
|
28
27
|
maxWidth: 400,
|
|
29
28
|
fontSize: typeof theme.typography?.pxToRem === "function" ? theme.typography.pxToRem(14) : "14px",
|
|
30
29
|
border: "1px solid #dadde9"
|
|
31
30
|
}
|
|
32
|
-
}))
|
|
31
|
+
}));
|
|
33
32
|
const FiltersComponent = ({
|
|
34
33
|
reports,
|
|
35
34
|
filters,
|
|
@@ -138,7 +137,7 @@ const FiltersComponent = ({
|
|
|
138
137
|
}
|
|
139
138
|
})();
|
|
140
139
|
}, [loadingTagValues, selectedTagKey, monthRange, infraWalletApi, alertApi, providerErrorsSetter]);
|
|
141
|
-
return /* @__PURE__ */ React.createElement(Grid, { container: true }, /* @__PURE__ */ React.createElement(Grid, {
|
|
140
|
+
return /* @__PURE__ */ React.createElement(Grid, { container: true }, /* @__PURE__ */ React.createElement(Grid, { size: { xs: 12 } }, Object.keys(keyValues).map((key) => /* @__PURE__ */ React.createElement(
|
|
142
141
|
FormControl,
|
|
143
142
|
{
|
|
144
143
|
key: `form-${key}`,
|
|
@@ -176,7 +175,7 @@ const FiltersComponent = ({
|
|
|
176
175
|
renderInput: (params) => /* @__PURE__ */ React.createElement(TextField, { ...params, variant: "standard", label: key.charAt(0).toUpperCase() + key.slice(1) })
|
|
177
176
|
}
|
|
178
177
|
)
|
|
179
|
-
)), /* @__PURE__ */ React.createElement(FormControl, { style: { marginTop: 10 } }, /* @__PURE__ */ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => filtersSetter({}) }, "Clear filters"))), /* @__PURE__ */ React.createElement(Grid, {
|
|
178
|
+
)), /* @__PURE__ */ React.createElement(FormControl, { style: { marginTop: 10 } }, /* @__PURE__ */ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => filtersSetter({}) }, "Clear filters"))), /* @__PURE__ */ React.createElement(Grid, { size: { xs: 12 } }, /* @__PURE__ */ React.createElement(Divider, null)), /* @__PURE__ */ React.createElement(Grid, { size: { xs: 12 } }, /* @__PURE__ */ React.createElement(FormControl, { sx: { marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 } }, /* @__PURE__ */ React.createElement(
|
|
180
179
|
Autocomplete,
|
|
181
180
|
{
|
|
182
181
|
id: "tag-providers",
|
|
@@ -247,7 +246,7 @@ const FiltersComponent = ({
|
|
|
247
246
|
title: /* @__PURE__ */ React.createElement(React.Fragment, null, "You can apply ", /* @__PURE__ */ React.createElement("b", null, "tags"), " to ", /* @__PURE__ */ React.createElement("em", null, "one or more"), " providers. ", /* @__PURE__ */ React.createElement("b", null, "Tags"), " will only filter the costs for the ", /* @__PURE__ */ React.createElement("b", null, "selected providers"), ", while ", /* @__PURE__ */ React.createElement("em", null, "others remain unchanged"), ".")
|
|
248
247
|
},
|
|
249
248
|
/* @__PURE__ */ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => selectedTagsSetter(selectedTags) }, "Apply")
|
|
250
|
-
))), /* @__PURE__ */ React.createElement(Grid, {
|
|
249
|
+
))), /* @__PURE__ */ React.createElement(Grid, { size: { xs: 12 } }, selectedTags.map((tag) => /* @__PURE__ */ React.createElement(
|
|
251
250
|
Chip,
|
|
252
251
|
{
|
|
253
252
|
size: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersComponent.esm.js","sources":["../../../src/components/FiltersComponent/FiltersComponent.tsx"],"sourcesContent":["import { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport Button from '@mui/material/Button';\nimport Checkbox from '@mui/material/Checkbox';\nimport Chip from '@mui/material/Chip';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport FormControl from '@mui/material/FormControl';\nimport Grid from '@mui/material/Grid';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { Theme, useTheme } from '@mui/material/styles';\nimport { withStyles } from '@mui/styles';\nimport { FC, default as React, useEffect, useState } from 'react';\nimport { infraWalletApiRef } from '../../api/InfraWalletApi';\nimport { extractAccountInfo, extractProvider, getReportKeyAndValues, tagExists } from '../../api/functions';\nimport { Tag } from '../../api/types';\nimport { ProviderIcon } from '../ProviderIcon';\nimport { FiltersComponentProps } from '../types';\n\nconst icon = <CheckBoxOutlineBlankIcon fontSize=\"small\" />;\nconst checkedIcon = <CheckBoxIcon fontSize=\"small\" />;\n\nconst HtmlTooltip = withStyles((theme: Theme) => ({\n tooltip: {\n backgroundColor: '#f5f5f9',\n color: 'rgba(0, 0, 0, 0.87)',\n maxWidth: 400,\n fontSize: typeof theme.typography?.pxToRem === 'function' ? theme.typography.pxToRem(14) : '14px',\n border: '1px solid #dadde9',\n },\n}))(Tooltip);\n\nexport const FiltersComponent: FC<FiltersComponentProps> = ({\n reports,\n filters,\n monthRange,\n filtersSetter,\n selectedTags: selectedTagsProp,\n selectedTagsSetter,\n providerErrorsSetter,\n}) => {\n const theme = useTheme();\n const keyValues: { [key: string]: string[] } = getReportKeyAndValues(reports);\n\n // tag providers\n const [tagProviders, _setTagProviders] = useState<string[]>(['AWS', 'Azure']);\n const [tagProvider, setTagProvider] = useState<string>();\n\n // tag keys\n const [openTagKey, setOpenTagKey] = useState(false);\n const [tagKeys, setTagKeys] = useState<Tag[] | undefined>(undefined);\n const [selectedTagKey, setSelectedTagKey] = useState<Tag | undefined>(undefined);\n const [resetTagKeys, setResetTagKeys] = useState(false);\n const loadingTagKeys = openTagKey && tagKeys === undefined;\n\n // tag values\n const [openTagValue, setOpenTagValue] = useState(false);\n const [tagValues, setTagValues] = useState<Tag[] | undefined>(undefined);\n const [resetTagValues, setResetTagValues] = useState(false);\n const loadingTagValues = openTagValue && tagValues === undefined;\n\n // user selected tags - initialize from prop (URL-derived tags)\n const [selectedTags, setSelectedTags] = useState<Tag[]>(selectedTagsProp || []);\n\n const infraWalletApi = useApi(infraWalletApiRef);\n const alertApi = useApi(alertApiRef);\n\n const handleFiltersChange = (key: string, newValue: string[]): void => {\n const updatedFilters = { ...filters, [key]: newValue };\n filtersSetter(updatedFilters);\n };\n\n const handleTagProviderChange = (provider: string | null) => {\n setTagProvider('');\n setOpenTagKey(false);\n setResetTagKeys(prev => !prev);\n setTagKeys(undefined);\n setSelectedTagKey(undefined);\n setOpenTagValue(false);\n setTagValues([]);\n\n if (provider) {\n setTagProvider(provider);\n setOpenTagKey(true);\n\n // Automatically add provider filter when Tag Provider is selected\n const currentProviderFilters = filters.provider || [];\n if (!currentProviderFilters.includes(provider)) {\n handleFiltersChange('provider', [...currentProviderFilters, provider]);\n }\n }\n };\n\n const handleTagKeyChange = (tagKey: Tag | string | null) => {\n setSelectedTagKey(undefined);\n setTagValues(undefined);\n setResetTagValues(prev => !prev);\n\n if (typeof tagKey === 'string') {\n return;\n }\n\n if (tagKey) {\n setSelectedTagKey(tagKey);\n setOpenTagValue(true);\n }\n };\n\n const handleTagValueSelection = (tag: Tag | string | null) => {\n if (typeof tag === 'string') {\n return;\n }\n\n if (tag && !tagExists(selectedTags, tag)) {\n setResetTagValues(prev => !prev);\n setSelectedTags([...selectedTags, tag]);\n }\n };\n\n const handleDeleteTag = (tagToDelete: Tag) => () => {\n setSelectedTags(\n selectedTags.filter(\n tag =>\n !(tag.provider === tagToDelete.provider && tag.key === tagToDelete.key && tag.value === tagToDelete.value),\n ),\n );\n };\n\n useEffect(() => {\n if (!loadingTagKeys) {\n return;\n }\n\n (async () => {\n if (tagProvider) {\n await infraWalletApi\n .getTagKeys(tagProvider, monthRange.startMonth, monthRange.endMonth)\n .then(response => {\n if (response.data) {\n setTagKeys(response.data);\n }\n if (response.status === 207 && response.errors) {\n providerErrorsSetter(response.errors);\n }\n })\n .catch(e => alertApi.post({ message: `${e.message}`, severity: 'error' }));\n }\n })();\n }, [loadingTagKeys, tagProvider, monthRange, infraWalletApi, alertApi, providerErrorsSetter]);\n\n useEffect(() => {\n if (!loadingTagValues) {\n return;\n }\n\n (async () => {\n if (selectedTagKey) {\n await infraWalletApi\n .getTagValues(selectedTagKey, monthRange.startMonth, monthRange.endMonth)\n .then(response => {\n if (response.data) {\n setTagValues(response.data);\n }\n if (response.status === 207 && response.errors) {\n providerErrorsSetter(response.errors);\n }\n })\n .catch(e => alertApi.post({ message: `${e.message}`, severity: 'error' }));\n }\n })();\n }, [loadingTagValues, selectedTagKey, monthRange, infraWalletApi, alertApi, providerErrorsSetter]);\n\n return (\n <Grid container>\n <Grid item xs={12}>\n {Object.keys(keyValues).map(key => (\n <FormControl\n key={`form-${key}`}\n sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}\n >\n <Autocomplete\n multiple\n id={`checkboxes-${key}`}\n options={keyValues[key] || []}\n value={(filters[key] || []).filter(v => (keyValues[key] || []).includes(v))}\n onChange={(_event, value: string[], _reason) => handleFiltersChange(key, value)}\n isOptionEqualToValue={(option, value) => option === value}\n disableCloseOnSelect\n renderOption={(props, option, { selected }) => {\n let provider = undefined;\n let providerIcon = undefined;\n let accountName = undefined;\n let accountId = undefined;\n if (key === 'provider') {\n provider = option;\n providerIcon = <ProviderIcon provider={provider} />;\n } else if (['account', 'service'].includes(key)) {\n provider = extractProvider(option);\n providerIcon = <ProviderIcon provider={provider} />;\n }\n\n if (key === 'account') {\n const account = extractAccountInfo(option.replace(`${provider}/`, ''));\n accountName = account.accountName;\n accountId = account.accountId;\n }\n\n return (\n <li {...props} key={option}>\n <Checkbox icon={icon} checkedIcon={checkedIcon} style={{ marginRight: 8 }} checked={selected} />\n {providerIcon && <>{providerIcon} </>}\n {key === 'account' ? (\n <div>\n <Typography variant=\"body2\">{accountName}</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {accountId}\n </Typography>\n </div>\n ) : (\n <Typography variant=\"body2\">{option.replace(`${provider}/`, '')}</Typography>\n )}\n </li>\n );\n }}\n renderInput={params => (\n <TextField {...params} variant=\"standard\" label={key.charAt(0).toUpperCase() + key.slice(1)} />\n )}\n />\n </FormControl>\n ))}\n <FormControl style={{ marginTop: 10 }}>\n <Button variant=\"contained\" color=\"primary\" onClick={() => filtersSetter({})}>\n Clear filters\n </Button>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n <Divider />\n </Grid>\n <Grid item xs={12}>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-providers\"\n options={tagProviders}\n onChange={(_, provider) => handleTagProviderChange(provider)}\n renderInput={params => <TextField {...params} variant=\"standard\" label=\"Tag provider\" />}\n renderOption={(props, option) => (\n <li {...props} key={option}>\n <Typography variant=\"body2\">{option}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-keys\"\n key={String(resetTagKeys)}\n // freeSolo\n disabled={!tagProvider}\n open={openTagKey}\n onOpen={() => setOpenTagKey(true)}\n onClose={() => setOpenTagKey(false)}\n options={tagKeys?.length ? tagKeys : [{ key: 'No value', provider: tagProvider as string }]}\n getOptionLabel={tag => tag.key}\n getOptionDisabled={tag => tag.key === 'No value'}\n loading={loadingTagKeys}\n onChange={(_, tagKey) => handleTagKeyChange(tagKey)}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"standard\"\n label=\"Tag keys\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <React.Fragment>\n {loadingTagKeys ? <CircularProgress color=\"inherit\" size={20} /> : null}\n {params.InputProps?.endAdornment}\n </React.Fragment>\n ),\n }}\n />\n )}\n renderOption={(props, option) => (\n <li {...props} key={option.key}>\n <Typography variant=\"body2\">{option.key}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-values\"\n key={String(resetTagValues)}\n // freeSolo\n disabled={!selectedTagKey}\n open={openTagValue}\n onOpen={() => setOpenTagValue(true)}\n onClose={() => setOpenTagValue(false)}\n options={\n tagValues?.length ? tagValues : [{ key: 'No value', value: 'No value', provider: tagProvider as string }]\n }\n getOptionLabel={tag => tag?.value || ''}\n getOptionDisabled={tag => tag?.value === 'No value' || tagExists(selectedTags, tag)}\n loading={loadingTagValues}\n onChange={(_, tag) => handleTagValueSelection(tag)}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"standard\"\n label=\"Tag values\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <React.Fragment>\n {loadingTagValues ? <CircularProgress color=\"inherit\" size={20} /> : null}\n {params.InputProps?.endAdornment}\n </React.Fragment>\n ),\n }}\n />\n )}\n renderOption={(props, option) => (\n <li {...props} key={option.value}>\n <Typography variant=\"body2\">{option.value}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl style={{ marginTop: 10 }}>\n <HtmlTooltip\n title={\n <React.Fragment>\n You can apply <b>tags</b> to <em>one or more</em> providers. <b>Tags</b> will only filter the costs for\n the <b>selected providers</b>, while <em>others remain unchanged</em>.\n </React.Fragment>\n }\n >\n <Button variant=\"contained\" color=\"primary\" onClick={() => selectedTagsSetter(selectedTags)}>\n Apply\n </Button>\n </HtmlTooltip>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n {selectedTags.map(tag => (\n <Chip\n size=\"small\"\n key={`${tag.provider}/${tag.key}=${tag.value}`}\n label={`${tag.provider}/${tag.key}=${tag.value}`}\n onDelete={handleDeleteTag(tag)}\n />\n ))}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FiltersComponent.esm.js","sources":["../../../src/components/FiltersComponent/FiltersComponent.tsx"],"sourcesContent":["import { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport Button from '@mui/material/Button';\nimport Checkbox from '@mui/material/Checkbox';\nimport Chip from '@mui/material/Chip';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport FormControl from '@mui/material/FormControl';\nimport Grid from '@mui/material/Grid2';\nimport TextField from '@mui/material/TextField';\nimport Tooltip, { TooltipProps, tooltipClasses } from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { FC, default as React, useEffect, useState } from 'react';\nimport { infraWalletApiRef } from '../../api/InfraWalletApi';\nimport { extractAccountInfo, extractProvider, getReportKeyAndValues, tagExists } from '../../api/functions';\nimport { Tag } from '../../api/types';\nimport { ProviderIcon } from '../ProviderIcon';\nimport { FiltersComponentProps } from '../types';\n\nconst icon = <CheckBoxOutlineBlankIcon fontSize=\"small\" />;\nconst checkedIcon = <CheckBoxIcon fontSize=\"small\" />;\n\nconst HtmlTooltip = styled(({ className, ...props }: TooltipProps) => (\n <Tooltip {...props} classes={{ popper: className }} />\n))(({ theme }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: '#f5f5f9',\n color: 'rgba(0, 0, 0, 0.87)',\n maxWidth: 400,\n fontSize: typeof theme.typography?.pxToRem === 'function' ? theme.typography.pxToRem(14) : '14px',\n border: '1px solid #dadde9',\n },\n}));\n\nexport const FiltersComponent: FC<FiltersComponentProps> = ({\n reports,\n filters,\n monthRange,\n filtersSetter,\n selectedTags: selectedTagsProp,\n selectedTagsSetter,\n providerErrorsSetter,\n}) => {\n const theme = useTheme();\n const keyValues: { [key: string]: string[] } = getReportKeyAndValues(reports);\n\n // tag providers\n const [tagProviders, _setTagProviders] = useState<string[]>(['AWS', 'Azure']);\n const [tagProvider, setTagProvider] = useState<string>();\n\n // tag keys\n const [openTagKey, setOpenTagKey] = useState(false);\n const [tagKeys, setTagKeys] = useState<Tag[] | undefined>(undefined);\n const [selectedTagKey, setSelectedTagKey] = useState<Tag | undefined>(undefined);\n const [resetTagKeys, setResetTagKeys] = useState(false);\n const loadingTagKeys = openTagKey && tagKeys === undefined;\n\n // tag values\n const [openTagValue, setOpenTagValue] = useState(false);\n const [tagValues, setTagValues] = useState<Tag[] | undefined>(undefined);\n const [resetTagValues, setResetTagValues] = useState(false);\n const loadingTagValues = openTagValue && tagValues === undefined;\n\n // user selected tags - initialize from prop (URL-derived tags)\n const [selectedTags, setSelectedTags] = useState<Tag[]>(selectedTagsProp || []);\n\n const infraWalletApi = useApi(infraWalletApiRef);\n const alertApi = useApi(alertApiRef);\n\n const handleFiltersChange = (key: string, newValue: string[]): void => {\n const updatedFilters = { ...filters, [key]: newValue };\n filtersSetter(updatedFilters);\n };\n\n const handleTagProviderChange = (provider: string | null) => {\n setTagProvider('');\n setOpenTagKey(false);\n setResetTagKeys(prev => !prev);\n setTagKeys(undefined);\n setSelectedTagKey(undefined);\n setOpenTagValue(false);\n setTagValues([]);\n\n if (provider) {\n setTagProvider(provider);\n setOpenTagKey(true);\n\n // Automatically add provider filter when Tag Provider is selected\n const currentProviderFilters = filters.provider || [];\n if (!currentProviderFilters.includes(provider)) {\n handleFiltersChange('provider', [...currentProviderFilters, provider]);\n }\n }\n };\n\n const handleTagKeyChange = (tagKey: Tag | string | null) => {\n setSelectedTagKey(undefined);\n setTagValues(undefined);\n setResetTagValues(prev => !prev);\n\n if (typeof tagKey === 'string') {\n return;\n }\n\n if (tagKey) {\n setSelectedTagKey(tagKey);\n setOpenTagValue(true);\n }\n };\n\n const handleTagValueSelection = (tag: Tag | string | null) => {\n if (typeof tag === 'string') {\n return;\n }\n\n if (tag && !tagExists(selectedTags, tag)) {\n setResetTagValues(prev => !prev);\n setSelectedTags([...selectedTags, tag]);\n }\n };\n\n const handleDeleteTag = (tagToDelete: Tag) => () => {\n setSelectedTags(\n selectedTags.filter(\n tag =>\n !(tag.provider === tagToDelete.provider && tag.key === tagToDelete.key && tag.value === tagToDelete.value),\n ),\n );\n };\n\n useEffect(() => {\n if (!loadingTagKeys) {\n return;\n }\n\n (async () => {\n if (tagProvider) {\n await infraWalletApi\n .getTagKeys(tagProvider, monthRange.startMonth, monthRange.endMonth)\n .then(response => {\n if (response.data) {\n setTagKeys(response.data);\n }\n if (response.status === 207 && response.errors) {\n providerErrorsSetter(response.errors);\n }\n })\n .catch(e => alertApi.post({ message: `${e.message}`, severity: 'error' }));\n }\n })();\n }, [loadingTagKeys, tagProvider, monthRange, infraWalletApi, alertApi, providerErrorsSetter]);\n\n useEffect(() => {\n if (!loadingTagValues) {\n return;\n }\n\n (async () => {\n if (selectedTagKey) {\n await infraWalletApi\n .getTagValues(selectedTagKey, monthRange.startMonth, monthRange.endMonth)\n .then(response => {\n if (response.data) {\n setTagValues(response.data);\n }\n if (response.status === 207 && response.errors) {\n providerErrorsSetter(response.errors);\n }\n })\n .catch(e => alertApi.post({ message: `${e.message}`, severity: 'error' }));\n }\n })();\n }, [loadingTagValues, selectedTagKey, monthRange, infraWalletApi, alertApi, providerErrorsSetter]);\n\n return (\n <Grid container>\n <Grid size={{ xs: 12 }}>\n {Object.keys(keyValues).map(key => (\n <FormControl\n key={`form-${key}`}\n sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}\n >\n <Autocomplete\n multiple\n id={`checkboxes-${key}`}\n options={keyValues[key] || []}\n value={(filters[key] || []).filter(v => (keyValues[key] || []).includes(v))}\n onChange={(_event, value: string[], _reason) => handleFiltersChange(key, value)}\n isOptionEqualToValue={(option, value) => option === value}\n disableCloseOnSelect\n renderOption={(props, option, { selected }) => {\n let provider = undefined;\n let providerIcon = undefined;\n let accountName = undefined;\n let accountId = undefined;\n if (key === 'provider') {\n provider = option;\n providerIcon = <ProviderIcon provider={provider} />;\n } else if (['account', 'service'].includes(key)) {\n provider = extractProvider(option);\n providerIcon = <ProviderIcon provider={provider} />;\n }\n\n if (key === 'account') {\n const account = extractAccountInfo(option.replace(`${provider}/`, ''));\n accountName = account.accountName;\n accountId = account.accountId;\n }\n\n return (\n <li {...props} key={option}>\n <Checkbox icon={icon} checkedIcon={checkedIcon} style={{ marginRight: 8 }} checked={selected} />\n {providerIcon && <>{providerIcon} </>}\n {key === 'account' ? (\n <div>\n <Typography variant=\"body2\">{accountName}</Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {accountId}\n </Typography>\n </div>\n ) : (\n <Typography variant=\"body2\">{option.replace(`${provider}/`, '')}</Typography>\n )}\n </li>\n );\n }}\n renderInput={params => (\n <TextField {...params} variant=\"standard\" label={key.charAt(0).toUpperCase() + key.slice(1)} />\n )}\n />\n </FormControl>\n ))}\n <FormControl style={{ marginTop: 10 }}>\n <Button variant=\"contained\" color=\"primary\" onClick={() => filtersSetter({})}>\n Clear filters\n </Button>\n </FormControl>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Divider />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-providers\"\n options={tagProviders}\n onChange={(_, provider) => handleTagProviderChange(provider)}\n renderInput={params => <TextField {...params} variant=\"standard\" label=\"Tag provider\" />}\n renderOption={(props, option) => (\n <li {...props} key={option}>\n <Typography variant=\"body2\">{option}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-keys\"\n key={String(resetTagKeys)}\n // freeSolo\n disabled={!tagProvider}\n open={openTagKey}\n onOpen={() => setOpenTagKey(true)}\n onClose={() => setOpenTagKey(false)}\n options={tagKeys?.length ? tagKeys : [{ key: 'No value', provider: tagProvider as string }]}\n getOptionLabel={tag => tag.key}\n getOptionDisabled={tag => tag.key === 'No value'}\n loading={loadingTagKeys}\n onChange={(_, tagKey) => handleTagKeyChange(tagKey)}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"standard\"\n label=\"Tag keys\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <React.Fragment>\n {loadingTagKeys ? <CircularProgress color=\"inherit\" size={20} /> : null}\n {params.InputProps?.endAdornment}\n </React.Fragment>\n ),\n }}\n />\n )}\n renderOption={(props, option) => (\n <li {...props} key={option.key}>\n <Typography variant=\"body2\">{option.key}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl sx={{ marginLeft: theme.spacing(1), marginRight: theme.spacing(3), minWidth: 300 }}>\n <Autocomplete\n id=\"tag-values\"\n key={String(resetTagValues)}\n // freeSolo\n disabled={!selectedTagKey}\n open={openTagValue}\n onOpen={() => setOpenTagValue(true)}\n onClose={() => setOpenTagValue(false)}\n options={\n tagValues?.length ? tagValues : [{ key: 'No value', value: 'No value', provider: tagProvider as string }]\n }\n getOptionLabel={tag => tag?.value || ''}\n getOptionDisabled={tag => tag?.value === 'No value' || tagExists(selectedTags, tag)}\n loading={loadingTagValues}\n onChange={(_, tag) => handleTagValueSelection(tag)}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"standard\"\n label=\"Tag values\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <React.Fragment>\n {loadingTagValues ? <CircularProgress color=\"inherit\" size={20} /> : null}\n {params.InputProps?.endAdornment}\n </React.Fragment>\n ),\n }}\n />\n )}\n renderOption={(props, option) => (\n <li {...props} key={option.value}>\n <Typography variant=\"body2\">{option.value}</Typography>\n </li>\n )}\n />\n </FormControl>\n <FormControl style={{ marginTop: 10 }}>\n <HtmlTooltip\n title={\n <React.Fragment>\n You can apply <b>tags</b> to <em>one or more</em> providers. <b>Tags</b> will only filter the costs for\n the <b>selected providers</b>, while <em>others remain unchanged</em>.\n </React.Fragment>\n }\n >\n <Button variant=\"contained\" color=\"primary\" onClick={() => selectedTagsSetter(selectedTags)}>\n Apply\n </Button>\n </HtmlTooltip>\n </FormControl>\n </Grid>\n <Grid size={{ xs: 12 }}>\n {selectedTags.map(tag => (\n <Chip\n size=\"small\"\n key={`${tag.provider}/${tag.key}=${tag.value}`}\n label={`${tag.provider}/${tag.key}=${tag.value}`}\n onDelete={handleDeleteTag(tag)}\n />\n ))}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electrolux-oss/plugin-infrawallet",
|
|
3
|
-
"version": "1.1.0-
|
|
3
|
+
"version": "1.1.0-20251205144717-9fbd78f",
|
|
4
4
|
"backstage": {
|
|
5
5
|
"role": "frontend-plugin",
|
|
6
6
|
"pluginId": "infrawallet",
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"@backstage/theme": "^0.7.0",
|
|
47
47
|
"@mui/icons-material": "6.1.1",
|
|
48
48
|
"@mui/material": "^6.1.1",
|
|
49
|
-
"@mui/styles": "^5.16.7",
|
|
50
49
|
"@mui/x-charts": "7.29.1",
|
|
51
50
|
"@mui/x-data-grid": "8.4.0",
|
|
52
51
|
"@mui/x-date-pickers": "7.29.3",
|