@backstage-community/plugin-cost-insights 0.26.0 → 0.28.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 +17 -0
- package/dist/alerts/ProjectGrowthAlert.esm.js.map +1 -1
- package/dist/alerts/UnlabeledDataflowAlert.esm.js.map +1 -1
- package/dist/alpha/plugin.esm.js +2 -1
- package/dist/alpha/plugin.esm.js.map +1 -1
- package/dist/alpha/router.esm.js +1 -0
- package/dist/alpha/router.esm.js.map +1 -1
- package/dist/alpha.d.ts +31 -10
- package/dist/api/CostInsightsApi.esm.js.map +1 -1
- package/dist/components/ActionItems/ActionItemCard.esm.js.map +1 -1
- package/dist/components/ActionItems/ActionItems.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertDialog.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertInsights.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertInsightsHeader.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertInsightsSection.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertInsightsSectionHeader.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertStatusSummary.esm.js.map +1 -1
- package/dist/components/AlertInsights/AlertStatusSummaryButton.esm.js.map +1 -1
- package/dist/components/AlertInstructionsLayout/AlertInstructionsLayout.esm.js.map +1 -1
- package/dist/components/BarChart/BarChart.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartLabel.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartLegend.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartStepper.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartStepperButton.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartSteps.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartTick.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartTooltip.esm.js.map +1 -1
- package/dist/components/BarChart/BarChartTooltipItem.esm.js.map +1 -1
- package/dist/components/CopyUrlToClipboard/CopyUrlToClipboard.esm.js.map +1 -1
- package/dist/components/CostGrowth/CostGrowth.esm.js +11 -2
- package/dist/components/CostGrowth/CostGrowth.esm.js.map +1 -1
- package/dist/components/CostGrowth/CostGrowthIndicator.esm.js.map +1 -1
- package/dist/components/CostInsightsHeader/CostInsightsHeader.esm.js.map +1 -1
- package/dist/components/CostInsightsLayout/CostInsightsLayout.esm.js.map +1 -1
- package/dist/components/CostInsightsNavigation/CostInsightsNavigation.esm.js.map +1 -1
- package/dist/components/CostInsightsPage/CostInsightsPage.esm.js +5 -1
- package/dist/components/CostInsightsPage/CostInsightsPage.esm.js.map +1 -1
- package/dist/components/CostInsightsPage/CostInsightsPageRoot.esm.js.map +1 -1
- package/dist/components/CostInsightsPage/CostInsightsThemeProvider.esm.js.map +1 -1
- package/dist/components/CostInsightsPage/index.esm.js +5 -1
- package/dist/components/CostInsightsPage/index.esm.js.map +1 -1
- package/dist/components/CostInsightsPage/selector.esm.js +1 -1
- package/dist/components/CostInsightsPage/selector.esm.js.map +1 -1
- package/dist/components/CostInsightsTabs/CostInsightsTabs.esm.js.map +1 -1
- package/dist/components/CostInsightsTabs/selector.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js +20 -6
- package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/CostOverviewCard.esm.js +17 -4
- package/dist/components/CostOverviewCard/CostOverviewCard.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/CostOverviewChart.esm.js +1 -1
- package/dist/components/CostOverviewCard/CostOverviewChart.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/CostOverviewHeader.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js +11 -3
- package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js.map +1 -1
- package/dist/components/CostOverviewCard/selector.esm.js +3 -2
- package/dist/components/CostOverviewCard/selector.esm.js.map +1 -1
- package/dist/components/CurrencySelect/CurrencySelect.esm.js.map +1 -1
- package/dist/components/EntityCosts/EntityCosts.esm.js +5 -1
- package/dist/components/EntityCosts/EntityCosts.esm.js.map +1 -1
- package/dist/components/EntityCosts/index.esm.js +5 -1
- package/dist/components/EntityCosts/index.esm.js.map +1 -1
- package/dist/components/LabelDataflowInstructionsPage/LabelDataflowInstructionsPage.esm.js.map +1 -1
- package/dist/components/LabelDataflowInstructionsPage/index.esm.js +5 -1
- package/dist/components/LabelDataflowInstructionsPage/index.esm.js.map +1 -1
- package/dist/components/LegendItem/LegendItem.esm.js.map +1 -1
- package/dist/components/MetricSelect/MetricSelect.esm.js.map +1 -1
- package/dist/components/PeriodSelect/DateRangePicker.esm.js +218 -0
- package/dist/components/PeriodSelect/DateRangePicker.esm.js.map +1 -0
- package/dist/components/ProductInsights/ProductInsights.esm.js +9 -2
- package/dist/components/ProductInsights/ProductInsights.esm.js.map +1 -1
- package/dist/components/ProductInsightsCard/ProductEntityDialog.esm.js.map +1 -1
- package/dist/components/ProductInsightsCard/ProductEntityTable.esm.js.map +1 -1
- package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js +32 -8
- package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js.map +1 -1
- package/dist/components/ProductInsightsCard/ProductInsightsCardList.esm.js.map +1 -1
- package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js +24 -4
- package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js.map +1 -1
- package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertCard.esm.js.map +1 -1
- package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertChart.esm.js.map +1 -1
- package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js +1 -1
- package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js.map +1 -1
- package/dist/components/ProjectGrowthInstructionsPage/index.esm.js +5 -1
- package/dist/components/ProjectGrowthInstructionsPage/index.esm.js.map +1 -1
- package/dist/components/ProjectSelect/ProjectSelect.esm.js.map +1 -1
- package/dist/components/UnlabeledDataflowAlertCard/UnlabeledDataflowAlertCard.esm.js.map +1 -1
- package/dist/components/WhyCostsMatter/WhyCostsMatter.esm.js.map +1 -1
- package/dist/example/alerts/KubernetesMigrationAlert.esm.js.map +1 -1
- package/dist/example/client.esm.js +1 -1
- package/dist/example/client.esm.js.map +1 -1
- package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationAlertCard.esm.js.map +1 -1
- package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js +1 -0
- package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js.map +1 -1
- package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js +1 -0
- package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js.map +1 -1
- package/dist/example/forms/KubernetesMigrationDismissForm.esm.js.map +1 -1
- package/dist/forms/AlertAcceptForm.esm.js.map +1 -1
- package/dist/forms/AlertDismissForm.esm.js.map +1 -1
- package/dist/forms/AlertSnoozeForm.esm.js.map +1 -1
- package/dist/hooks/useConfig.esm.js +2 -2
- package/dist/hooks/useConfig.esm.js.map +1 -1
- package/dist/hooks/useCurrency.esm.js +1 -1
- package/dist/hooks/useCurrency.esm.js.map +1 -1
- package/dist/hooks/useFilters.esm.js +1 -1
- package/dist/hooks/useFilters.esm.js.map +1 -1
- package/dist/hooks/useGroups.esm.js +1 -1
- package/dist/hooks/useGroups.esm.js.map +1 -1
- package/dist/hooks/useLastCompleteBillingDate.esm.js +1 -1
- package/dist/hooks/useLastCompleteBillingDate.esm.js.map +1 -1
- package/dist/hooks/useLoading.esm.js +1 -1
- package/dist/hooks/useLoading.esm.js.map +1 -1
- package/dist/hooks/useScroll.esm.js +1 -1
- package/dist/hooks/useScroll.esm.js.map +1 -1
- package/dist/index.d.ts +16 -2
- package/dist/index.esm.js +1 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/plugin.esm.js +1 -1
- package/dist/plugin.esm.js.map +1 -1
- package/dist/routes.esm.js.map +1 -1
- package/dist/testUtils/filters.esm.js.map +1 -1
- package/dist/testUtils/loading.esm.js.map +1 -1
- package/dist/testUtils/mockData.esm.js.map +1 -1
- package/dist/testUtils/products.esm.js.map +1 -1
- package/dist/testUtils/providers.esm.js.map +1 -1
- package/dist/testUtils/testUtils.esm.js +30 -11
- package/dist/testUtils/testUtils.esm.js.map +1 -1
- package/dist/types/Alert.esm.js.map +1 -1
- package/dist/types/ChangeStatistic.esm.js.map +1 -1
- package/dist/types/CurrencyType.esm.js.map +1 -1
- package/dist/types/DateFormat.esm.js.map +1 -1
- package/dist/types/Duration.esm.js +1 -0
- package/dist/types/Duration.esm.js.map +1 -1
- package/dist/types/Icon.esm.js.map +1 -1
- package/dist/utils/alerts.esm.js.map +1 -1
- package/dist/utils/assert.esm.js.map +1 -1
- package/dist/utils/change.esm.js +20 -6
- package/dist/utils/change.esm.js.map +1 -1
- package/dist/utils/charts.esm.js.map +1 -1
- package/dist/utils/config.esm.js.map +1 -1
- package/dist/utils/currency.esm.js +6 -1
- package/dist/utils/currency.esm.js.map +1 -1
- package/dist/utils/duration.esm.js +41 -5
- package/dist/utils/duration.esm.js.map +1 -1
- package/dist/utils/filters.esm.js.map +1 -1
- package/dist/utils/formatters.esm.js +25 -4
- package/dist/utils/formatters.esm.js.map +1 -1
- package/dist/utils/grammar.esm.js.map +1 -1
- package/dist/utils/graphs.esm.js +1 -1
- package/dist/utils/graphs.esm.js.map +1 -1
- package/dist/utils/history.esm.js.map +1 -1
- package/dist/utils/loading.esm.js.map +1 -1
- package/dist/utils/navigation.esm.js.map +1 -1
- package/dist/utils/scroll.esm.js.map +1 -1
- package/dist/utils/sort.esm.js.map +1 -1
- package/dist/utils/styles.esm.js.map +1 -1
- package/dist/utils/sum.esm.js.map +1 -1
- package/package.json +15 -13
- package/dist/components/PeriodSelect/PeriodSelect.esm.js +0 -72
- package/dist/components/PeriodSelect/PeriodSelect.esm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.esm.js","sources":["../../src/utils/styles.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 {\n emphasize,\n lighten,\n darken,\n getLuminance,\n} from '@material-ui/core/styles/colorManipulator';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport { CostInsightsTheme, CostInsightsThemeOptions } from '../types';\n\nexport const costInsightsLightTheme = {\n palette: {\n blue: '#509AF5',\n lightBlue: '#9BF0E1',\n darkBlue: '#4101F5',\n magenta: '#DC148C',\n yellow: '#FFC864',\n tooltip: {\n background: '#171717',\n color: '#DDD',\n },\n navigationText: '#b5b5b5',\n alertBackground: 'rgba(219, 219, 219, 0.13)',\n dataViz: [\n '#509BF5',\n '#4B917D',\n '#FF6437',\n '#F573A0',\n '#F59B23',\n '#B49BC8',\n '#C39687',\n '#A0C3D2',\n '#FFC864',\n '#BABABA',\n ],\n },\n} as CostInsightsThemeOptions;\n\n// Higher tonal values from light theme (Google recommends 600 -> 200)\n// https://material.io/design/color/the-color-system.html#tools-for-picking-colors\nexport const costInsightsDarkTheme = {\n palette: {\n blue: '#77b8f9',\n lightBlue: '#d8f9f4',\n darkBlue: '#b595fd',\n magenta: '#ee93cd',\n yellow: '#fff2da',\n tooltip: {\n background: '#EEE',\n color: '#424242',\n },\n navigationText: '#b5b5b5',\n alertBackground: 'rgba(32, 32, 32, 0.13)',\n dataViz: [\n '#8accff',\n '#7bc2ac',\n '#ff9664',\n '#ffa5d1',\n '#ffcc57',\n '#e6ccfb',\n '#f7c7b7',\n '#d2f6ff',\n '#fffb94',\n '#ececec',\n ],\n },\n} as CostInsightsThemeOptions;\n\n// The opposite of Material UI's emphasize function - darken darks, lighten lights\nexport function brighten(color: string, coefficient = 0.2) {\n return getLuminance(color) > 0.5\n ? lighten(color, coefficient)\n : darken(color, coefficient);\n}\n\nexport const useCostOverviewStyles = (theme: CostInsightsTheme) => ({\n axis: {\n fill: theme.palette.text.primary,\n },\n container: {\n height: 450,\n width: 1200,\n },\n cartesianGrid: {\n stroke: theme.palette.textVerySubtle,\n },\n chart: {\n margin: {\n right: 30,\n top: 16,\n },\n },\n yAxis: {\n width: 75,\n },\n});\n\nexport const useOverviewTabsStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) => ({\n default: {\n padding: theme.spacing(2),\n fontWeight: theme.typography.fontWeightBold,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n },\n selected: {\n color: theme.palette.text.primary,\n },\n }),\n);\n\nexport const useBarChartStyles = (theme: CostInsightsTheme) => ({\n axis: {\n fill: theme.palette.text.primary,\n },\n barChart: {\n margin: {\n left: 16,\n right: 16,\n },\n },\n cartesianGrid: {\n stroke: theme.palette.textVerySubtle,\n },\n cursor: {\n fill: theme.palette.textVerySubtle,\n fillOpacity: 0.3,\n },\n container: {\n height: 400,\n width: 1200,\n },\n infoIcon: {\n marginLeft: 2,\n fontSize: '1.25em',\n },\n xAxis: {\n height: 50,\n },\n});\n\nexport const useBarChartLayoutStyles = makeStyles(theme =>\n createStyles({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n },\n legend: {\n paddingBottom: theme.spacing(2),\n },\n }),\n);\n\nexport const useBarChartStepperButtonStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n root: {\n ...theme.typography.button,\n boxSizing: 'border-box',\n transition: theme.transitions.create(\n ['background-color', 'box-shadow', 'border'],\n {\n duration: theme.transitions.duration.short,\n },\n ),\n borderRadius: '50%',\n padding: 0,\n width: 40,\n height: 40,\n boxShadow: theme.shadows[6],\n '&:active': {\n boxShadow: theme.shadows[12],\n },\n color: theme.palette.text.primary,\n backgroundColor: lighten(theme.palette.background.default, 0.1),\n '&:hover': {\n backgroundColor: lighten(theme.palette.background.default, 0.2),\n textDecoration: 'none',\n },\n },\n }),\n);\n\nexport const useBarChartLabelStyles = makeStyles(theme =>\n createStyles({\n foreignObject: {\n textAlign: 'center',\n },\n label: {\n fontWeight: theme.typography.fontWeightBold,\n display: 'block',\n textDecoration: 'none',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n infoIcon: {\n marginLeft: 2,\n fontSize: '1.25em',\n },\n button: {\n textTransform: 'none',\n fontWeight: theme.typography.fontWeightBold,\n fontSize: theme.typography.fontSize,\n },\n }),\n);\n\nexport const useCostInsightsStyles = makeStyles(theme => ({\n h6Subtle: {\n ...theme.typography.h6,\n fontWeight: 'normal',\n color: theme.palette.textSubtle,\n },\n}));\n\nexport const useCostInsightsTabsStyles = makeStyles<Theme>(theme => ({\n tabs: {\n borderBottom: `1px solid ${theme.palette.textVerySubtle}`,\n backgroundColor: brighten(theme.palette.background.default),\n padding: theme.spacing(0, 4),\n },\n tab: {\n minHeight: 68,\n minWidth: 180,\n padding: theme.spacing(1, 4),\n '&:hover': {\n color: 'inherit',\n backgroundColor: 'inherit',\n },\n },\n indicator: {\n backgroundColor: theme.palette.navigation.indicator,\n height: 4,\n },\n tabLabel: {\n display: 'flex',\n alignItems: 'center',\n },\n tabLabelText: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n },\n menuItem: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n minWidth: 180,\n padding: theme.spacing(2, 2),\n },\n menuItemSelected: {\n backgroundColor: lighten(theme.palette.background.default, 0.3),\n },\n}));\n\nexport const useAlertCardActionHeaderStyles = makeStyles(theme =>\n createStyles({\n root: {\n paddingBottom: theme.spacing(2),\n borderRadius: 'unset',\n },\n title: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: 1.5,\n },\n action: {\n margin: 0,\n },\n }),\n);\n\nexport const useCostGrowthStyles = makeStyles(theme =>\n createStyles({\n excess: {\n color: theme.palette.status.error,\n },\n savings: {\n color: theme.palette.status.ok,\n },\n indicator: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n }),\n);\n\nexport const useCostGrowthLegendStyles = makeStyles(theme => ({\n h5: {\n ...theme.typography.h5,\n fontWeight: 500,\n padding: 0,\n },\n marker: {\n display: 'inherit',\n marginRight: theme.spacing(1),\n },\n helpIcon: {\n display: 'inherit',\n },\n title: {\n ...theme.typography.overline,\n fontWeight: 500,\n lineHeight: 0,\n marginRight: theme.spacing(1),\n color: theme.palette.textSubtle,\n },\n tooltip: {\n display: 'block',\n padding: theme.spacing(1),\n backgroundColor: theme.palette.navigation.background,\n },\n tooltipText: {\n color: theme.palette.background.default,\n fontSize: theme.typography.fontSize,\n lineHeight: 1.5,\n },\n}));\n\nexport const useBarChartStepperStyles = makeStyles(theme =>\n createStyles({\n paper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-around',\n alignItems: 'center',\n background: 'transparent',\n padding: 8,\n },\n step: {\n backgroundColor: theme.palette.action.disabled,\n borderRadius: '50%',\n width: 9,\n height: 9,\n margin: '0 2px',\n },\n stepActive: {\n backgroundColor: theme.palette.primary.main,\n },\n steps: {\n display: 'flex',\n flexDirection: 'row',\n },\n backButton: {\n position: 'absolute',\n left: 0,\n top: 'calc(50% - 60px)',\n zIndex: 100,\n },\n nextButton: {\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 60px)',\n zIndex: 100,\n },\n }),\n);\n\nexport const useNavigationStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n menuList: {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.navigation.background,\n minWidth: 250,\n },\n menuItem: {\n background: 'transparent',\n border: 0,\n textTransform: 'none',\n width: '100%',\n minHeight: theme.spacing(6),\n margin: theme.spacing(0.5, 2, 0.5, 0),\n },\n listItemIcon: {\n minWidth: 40,\n },\n navigationIcon: {\n fill: theme.palette.navigationText,\n },\n title: {\n whiteSpace: 'nowrap',\n lineHeight: 1,\n color: theme.palette.navigationText,\n fontWeight: theme.typography.fontWeightBold,\n },\n }),\n);\n\nexport const useTooltipStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n tooltip: {\n backgroundColor: theme.palette.tooltip.background,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[1],\n color: theme.palette.tooltip.color,\n fontSize: theme.typography.fontSize,\n minWidth: 300,\n },\n maxWidth: {\n maxWidth: 300,\n },\n actions: {\n padding: theme.spacing(2),\n },\n header: {\n padding: theme.spacing(2),\n },\n content: {\n padding: theme.spacing(2),\n },\n lensIcon: {\n fontSize: `.75rem`,\n },\n divider: {\n backgroundColor: emphasize(theme.palette.divider, 1),\n },\n truncate: {\n maxWidth: 200,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n subtitle: {\n fontStyle: 'italic',\n },\n }),\n);\n\nexport const useAlertInsightsSectionStyles = makeStyles(theme =>\n createStyles({\n button: {\n backgroundColor: theme.palette.textVerySubtle,\n color: theme.palette.text.primary,\n },\n }),\n);\n\nexport const useSelectStyles = makeStyles(theme =>\n createStyles({\n select: {\n minWidth: 200,\n textAlign: 'start',\n backgroundColor: theme.palette.background.paper,\n },\n menuItem: {\n minWidth: 200,\n padding: theme.spacing(2),\n '&.compact': {\n padding: theme.spacing(1, 2),\n },\n },\n }),\n);\n\nexport const useActionItemCardStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n card: {\n boxShadow: 'none',\n },\n avatar: {\n backgroundColor: theme.palette.textVerySubtle,\n color: theme.palette.text.primary,\n },\n root: {\n minHeight: 80,\n paddingBottom: theme.spacing(2),\n borderRadius: theme.shape.borderRadius,\n },\n activeRoot: {\n cursor: 'pointer',\n transition: theme.transitions.create('background', {\n duration: theme.transitions.duration.short,\n }),\n '&:hover': {\n background: theme.palette.alertBackground,\n },\n },\n action: {\n margin: 0,\n },\n title: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n },\n }),\n);\n\nexport const useProductInsightsCardStyles = makeStyles(theme =>\n createStyles({\n root: {\n padding: theme.spacing(2, 2, 2, 2.5), // restore backstage default padding\n },\n action: {\n margin: 0, // unset negative margins\n },\n }),\n);\n\nexport const useProductInsightsChartStyles = makeStyles(theme =>\n createStyles({\n indicator: {\n fontWeight: theme.typography.fontWeightBold,\n fontSize: '1.25rem',\n },\n actions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }),\n);\n\nexport const useBackdropStyles = makeStyles(theme =>\n createStyles({\n root: {\n zIndex: theme.zIndex.modal,\n },\n }),\n);\n\nexport const useSubtleTypographyStyles = makeStyles(theme =>\n createStyles({\n root: {\n color: theme.palette.textSubtle,\n },\n }),\n);\n\nexport const useEntityDialogStyles = makeStyles(theme =>\n createStyles({\n dialogContent: {\n padding: 0,\n },\n dialogTitle: {\n padding: 0,\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n zIndex: 100,\n },\n row: {\n fontSize: theme.typography.fontSize * 1.25,\n },\n rowTotal: {\n fontWeight: theme.typography.fontWeightBold,\n },\n colFirst: {\n paddingLeft: theme.spacing(2),\n },\n colLast: {\n paddingRight: theme.spacing(2),\n },\n column: {\n fontWeight: theme.typography.fontWeightBold,\n },\n growth: {\n display: 'flex',\n flexDirection: 'row',\n alignContent: 'center',\n justifyContent: 'flex-end',\n },\n }),\n);\n\nexport const useAlertDialogStyles = makeStyles(theme =>\n createStyles({\n content: {\n padding: theme.spacing(0, 5, 2, 5),\n },\n actions: {\n padding: theme.spacing(2, 5),\n },\n radio: {\n margin: theme.spacing(-0.5, 0, -0.5, 0),\n },\n icon: {\n color: theme.palette.primary.dark,\n margin: theme.spacing(2.5, 2.5, 0, 0),\n padding: 0,\n },\n }),\n);\n\nexport const useAlertStatusSummaryButtonStyles = makeStyles(() => ({\n icon: {\n transform: 'transform 5s',\n },\n clicked: {\n transform: 'rotate(180deg)',\n },\n}));\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"styles.esm.js","sources":["../../src/utils/styles.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 {\n emphasize,\n lighten,\n darken,\n getLuminance,\n} from '@material-ui/core/styles/colorManipulator';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport { CostInsightsTheme, CostInsightsThemeOptions } from '../types';\n\nexport const costInsightsLightTheme = {\n palette: {\n blue: '#509AF5',\n lightBlue: '#9BF0E1',\n darkBlue: '#4101F5',\n magenta: '#DC148C',\n yellow: '#FFC864',\n tooltip: {\n background: '#171717',\n color: '#DDD',\n },\n navigationText: '#b5b5b5',\n alertBackground: 'rgba(219, 219, 219, 0.13)',\n dataViz: [\n '#509BF5',\n '#4B917D',\n '#FF6437',\n '#F573A0',\n '#F59B23',\n '#B49BC8',\n '#C39687',\n '#A0C3D2',\n '#FFC864',\n '#BABABA',\n ],\n },\n} as CostInsightsThemeOptions;\n\n// Higher tonal values from light theme (Google recommends 600 -> 200)\n// https://material.io/design/color/the-color-system.html#tools-for-picking-colors\nexport const costInsightsDarkTheme = {\n palette: {\n blue: '#77b8f9',\n lightBlue: '#d8f9f4',\n darkBlue: '#b595fd',\n magenta: '#ee93cd',\n yellow: '#fff2da',\n tooltip: {\n background: '#EEE',\n color: '#424242',\n },\n navigationText: '#b5b5b5',\n alertBackground: 'rgba(32, 32, 32, 0.13)',\n dataViz: [\n '#8accff',\n '#7bc2ac',\n '#ff9664',\n '#ffa5d1',\n '#ffcc57',\n '#e6ccfb',\n '#f7c7b7',\n '#d2f6ff',\n '#fffb94',\n '#ececec',\n ],\n },\n} as CostInsightsThemeOptions;\n\n// The opposite of Material UI's emphasize function - darken darks, lighten lights\nexport function brighten(color: string, coefficient = 0.2) {\n return getLuminance(color) > 0.5\n ? lighten(color, coefficient)\n : darken(color, coefficient);\n}\n\nexport const useCostOverviewStyles = (theme: CostInsightsTheme) => ({\n axis: {\n fill: theme.palette.text.primary,\n },\n container: {\n height: 450,\n width: 1200,\n },\n cartesianGrid: {\n stroke: theme.palette.textVerySubtle,\n },\n chart: {\n margin: {\n right: 30,\n top: 16,\n },\n },\n yAxis: {\n width: 75,\n },\n});\n\nexport const useOverviewTabsStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) => ({\n default: {\n padding: theme.spacing(2),\n fontWeight: theme.typography.fontWeightBold,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n },\n selected: {\n color: theme.palette.text.primary,\n },\n }),\n);\n\nexport const useBarChartStyles = (theme: CostInsightsTheme) => ({\n axis: {\n fill: theme.palette.text.primary,\n },\n barChart: {\n margin: {\n left: 16,\n right: 16,\n },\n },\n cartesianGrid: {\n stroke: theme.palette.textVerySubtle,\n },\n cursor: {\n fill: theme.palette.textVerySubtle,\n fillOpacity: 0.3,\n },\n container: {\n height: 400,\n width: 1200,\n },\n infoIcon: {\n marginLeft: 2,\n fontSize: '1.25em',\n },\n xAxis: {\n height: 50,\n },\n});\n\nexport const useBarChartLayoutStyles = makeStyles(theme =>\n createStyles({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n },\n legend: {\n paddingBottom: theme.spacing(2),\n },\n }),\n);\n\nexport const useBarChartStepperButtonStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n root: {\n ...theme.typography.button,\n boxSizing: 'border-box',\n transition: theme.transitions.create(\n ['background-color', 'box-shadow', 'border'],\n {\n duration: theme.transitions.duration.short,\n },\n ),\n borderRadius: '50%',\n padding: 0,\n width: 40,\n height: 40,\n boxShadow: theme.shadows[6],\n '&:active': {\n boxShadow: theme.shadows[12],\n },\n color: theme.palette.text.primary,\n backgroundColor: lighten(theme.palette.background.default, 0.1),\n '&:hover': {\n backgroundColor: lighten(theme.palette.background.default, 0.2),\n textDecoration: 'none',\n },\n },\n }),\n);\n\nexport const useBarChartLabelStyles = makeStyles(theme =>\n createStyles({\n foreignObject: {\n textAlign: 'center',\n },\n label: {\n fontWeight: theme.typography.fontWeightBold,\n display: 'block',\n textDecoration: 'none',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n infoIcon: {\n marginLeft: 2,\n fontSize: '1.25em',\n },\n button: {\n textTransform: 'none',\n fontWeight: theme.typography.fontWeightBold,\n fontSize: theme.typography.fontSize,\n },\n }),\n);\n\nexport const useCostInsightsStyles = makeStyles(theme => ({\n h6Subtle: {\n ...theme.typography.h6,\n fontWeight: 'normal',\n color: theme.palette.textSubtle,\n },\n}));\n\nexport const useCostInsightsTabsStyles = makeStyles<Theme>(theme => ({\n tabs: {\n borderBottom: `1px solid ${theme.palette.textVerySubtle}`,\n backgroundColor: brighten(theme.palette.background.default),\n padding: theme.spacing(0, 4),\n },\n tab: {\n minHeight: 68,\n minWidth: 180,\n padding: theme.spacing(1, 4),\n '&:hover': {\n color: 'inherit',\n backgroundColor: 'inherit',\n },\n },\n indicator: {\n backgroundColor: theme.palette.navigation.indicator,\n height: 4,\n },\n tabLabel: {\n display: 'flex',\n alignItems: 'center',\n },\n tabLabelText: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n },\n menuItem: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n minWidth: 180,\n padding: theme.spacing(2, 2),\n },\n menuItemSelected: {\n backgroundColor: lighten(theme.palette.background.default, 0.3),\n },\n}));\n\nexport const useAlertCardActionHeaderStyles = makeStyles(theme =>\n createStyles({\n root: {\n paddingBottom: theme.spacing(2),\n borderRadius: 'unset',\n },\n title: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: 1.5,\n },\n action: {\n margin: 0,\n },\n }),\n);\n\nexport const useCostGrowthStyles = makeStyles(theme =>\n createStyles({\n excess: {\n color: theme.palette.status.error,\n },\n savings: {\n color: theme.palette.status.ok,\n },\n indicator: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n }),\n);\n\nexport const useCostGrowthLegendStyles = makeStyles(theme => ({\n h5: {\n ...theme.typography.h5,\n fontWeight: 500,\n padding: 0,\n },\n marker: {\n display: 'inherit',\n marginRight: theme.spacing(1),\n },\n helpIcon: {\n display: 'inherit',\n },\n title: {\n ...theme.typography.overline,\n fontWeight: 500,\n lineHeight: 0,\n marginRight: theme.spacing(1),\n color: theme.palette.textSubtle,\n },\n tooltip: {\n display: 'block',\n padding: theme.spacing(1),\n backgroundColor: theme.palette.navigation.background,\n },\n tooltipText: {\n color: theme.palette.background.default,\n fontSize: theme.typography.fontSize,\n lineHeight: 1.5,\n },\n}));\n\nexport const useBarChartStepperStyles = makeStyles(theme =>\n createStyles({\n paper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-around',\n alignItems: 'center',\n background: 'transparent',\n padding: 8,\n },\n step: {\n backgroundColor: theme.palette.action.disabled,\n borderRadius: '50%',\n width: 9,\n height: 9,\n margin: '0 2px',\n },\n stepActive: {\n backgroundColor: theme.palette.primary.main,\n },\n steps: {\n display: 'flex',\n flexDirection: 'row',\n },\n backButton: {\n position: 'absolute',\n left: 0,\n top: 'calc(50% - 60px)',\n zIndex: 100,\n },\n nextButton: {\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 60px)',\n zIndex: 100,\n },\n }),\n);\n\nexport const useNavigationStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n menuList: {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.navigation.background,\n minWidth: 250,\n },\n menuItem: {\n background: 'transparent',\n border: 0,\n textTransform: 'none',\n width: '100%',\n minHeight: theme.spacing(6),\n margin: theme.spacing(0.5, 2, 0.5, 0),\n },\n listItemIcon: {\n minWidth: 40,\n },\n navigationIcon: {\n fill: theme.palette.navigationText,\n },\n title: {\n whiteSpace: 'nowrap',\n lineHeight: 1,\n color: theme.palette.navigationText,\n fontWeight: theme.typography.fontWeightBold,\n },\n }),\n);\n\nexport const useTooltipStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n tooltip: {\n backgroundColor: theme.palette.tooltip.background,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[1],\n color: theme.palette.tooltip.color,\n fontSize: theme.typography.fontSize,\n minWidth: 300,\n },\n maxWidth: {\n maxWidth: 300,\n },\n actions: {\n padding: theme.spacing(2),\n },\n header: {\n padding: theme.spacing(2),\n },\n content: {\n padding: theme.spacing(2),\n },\n lensIcon: {\n fontSize: `.75rem`,\n },\n divider: {\n backgroundColor: emphasize(theme.palette.divider, 1),\n },\n truncate: {\n maxWidth: 200,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n subtitle: {\n fontStyle: 'italic',\n },\n }),\n);\n\nexport const useAlertInsightsSectionStyles = makeStyles(theme =>\n createStyles({\n button: {\n backgroundColor: theme.palette.textVerySubtle,\n color: theme.palette.text.primary,\n },\n }),\n);\n\nexport const useSelectStyles = makeStyles(theme =>\n createStyles({\n select: {\n minWidth: 200,\n textAlign: 'start',\n backgroundColor: theme.palette.background.paper,\n },\n menuItem: {\n minWidth: 200,\n padding: theme.spacing(2),\n '&.compact': {\n padding: theme.spacing(1, 2),\n },\n },\n }),\n);\n\nexport const useActionItemCardStyles = makeStyles<CostInsightsTheme>(\n (theme: CostInsightsTheme) =>\n createStyles({\n card: {\n boxShadow: 'none',\n },\n avatar: {\n backgroundColor: theme.palette.textVerySubtle,\n color: theme.palette.text.primary,\n },\n root: {\n minHeight: 80,\n paddingBottom: theme.spacing(2),\n borderRadius: theme.shape.borderRadius,\n },\n activeRoot: {\n cursor: 'pointer',\n transition: theme.transitions.create('background', {\n duration: theme.transitions.duration.short,\n }),\n '&:hover': {\n background: theme.palette.alertBackground,\n },\n },\n action: {\n margin: 0,\n },\n title: {\n fontSize: theme.typography.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n },\n }),\n);\n\nexport const useProductInsightsCardStyles = makeStyles(theme =>\n createStyles({\n root: {\n padding: theme.spacing(2, 2, 2, 2.5), // restore backstage default padding\n },\n action: {\n margin: 0, // unset negative margins\n },\n }),\n);\n\nexport const useProductInsightsChartStyles = makeStyles(theme =>\n createStyles({\n indicator: {\n fontWeight: theme.typography.fontWeightBold,\n fontSize: '1.25rem',\n },\n actions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }),\n);\n\nexport const useBackdropStyles = makeStyles(theme =>\n createStyles({\n root: {\n zIndex: theme.zIndex.modal,\n },\n }),\n);\n\nexport const useSubtleTypographyStyles = makeStyles(theme =>\n createStyles({\n root: {\n color: theme.palette.textSubtle,\n },\n }),\n);\n\nexport const useEntityDialogStyles = makeStyles(theme =>\n createStyles({\n dialogContent: {\n padding: 0,\n },\n dialogTitle: {\n padding: 0,\n },\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n zIndex: 100,\n },\n row: {\n fontSize: theme.typography.fontSize * 1.25,\n },\n rowTotal: {\n fontWeight: theme.typography.fontWeightBold,\n },\n colFirst: {\n paddingLeft: theme.spacing(2),\n },\n colLast: {\n paddingRight: theme.spacing(2),\n },\n column: {\n fontWeight: theme.typography.fontWeightBold,\n },\n growth: {\n display: 'flex',\n flexDirection: 'row',\n alignContent: 'center',\n justifyContent: 'flex-end',\n },\n }),\n);\n\nexport const useAlertDialogStyles = makeStyles(theme =>\n createStyles({\n content: {\n padding: theme.spacing(0, 5, 2, 5),\n },\n actions: {\n padding: theme.spacing(2, 5),\n },\n radio: {\n margin: theme.spacing(-0.5, 0, -0.5, 0),\n },\n icon: {\n color: theme.palette.primary.dark,\n margin: theme.spacing(2.5, 2.5, 0, 0),\n padding: 0,\n },\n }),\n);\n\nexport const useAlertStatusSummaryButtonStyles = makeStyles(() => ({\n icon: {\n transform: 'transform 5s',\n },\n clicked: {\n transform: 'rotate(180deg)',\n },\n}));\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sum.esm.js","sources":["../../src/utils/sum.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 { DateAggregation } from '@backstage-community/plugin-cost-insights-common';\n\nexport const aggregationSum = (aggregation: DateAggregation[]) =>\n aggregation.reduce((total, curAgg) => total + curAgg.amount, 0);\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sum.esm.js","sources":["../../src/utils/sum.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 { DateAggregation } from '@backstage-community/plugin-cost-insights-common';\n\nexport const aggregationSum = (aggregation: DateAggregation[]) =>\n aggregation.reduce((total, curAgg) => total + curAgg.amount, 0);\n"],"names":[],"mappings":"AAkBO,MAAM,cAAA,GAAiB,CAAC,WAAA,KAC7B,WAAA,CAAY,MAAA,CAAO,CAAC,KAAA,EAAO,MAAA,KAAW,KAAA,GAAQ,MAAA,CAAO,MAAA,EAAQ,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage-community/plugin-cost-insights",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "A Backstage plugin that helps you keep track of your cloud spend",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -67,18 +67,20 @@
|
|
|
67
67
|
"test": "backstage-cli package test"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@backstage-community/plugin-cost-insights-common": "^0.
|
|
71
|
-
"@backstage/catalog-model": "^1.7.
|
|
70
|
+
"@backstage-community/plugin-cost-insights-common": "^0.13.0",
|
|
71
|
+
"@backstage/catalog-model": "^1.7.7",
|
|
72
72
|
"@backstage/config": "^1.3.6",
|
|
73
|
-
"@backstage/core-compat-api": "^0.5.
|
|
74
|
-
"@backstage/core-components": "^0.18.
|
|
75
|
-
"@backstage/core-plugin-api": "^1.12.
|
|
76
|
-
"@backstage/frontend-plugin-api": "^0.
|
|
77
|
-
"@backstage/plugin-catalog-react": "^1.
|
|
78
|
-
"@backstage/theme": "^0.7.
|
|
73
|
+
"@backstage/core-compat-api": "^0.5.9",
|
|
74
|
+
"@backstage/core-components": "^0.18.8",
|
|
75
|
+
"@backstage/core-plugin-api": "^1.12.4",
|
|
76
|
+
"@backstage/frontend-plugin-api": "^0.15.1",
|
|
77
|
+
"@backstage/plugin-catalog-react": "^2.1.0",
|
|
78
|
+
"@backstage/theme": "^0.7.2",
|
|
79
|
+
"@date-io/luxon": "1.x",
|
|
79
80
|
"@material-ui/core": "^4.12.2",
|
|
80
81
|
"@material-ui/icons": "^4.9.1",
|
|
81
82
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
83
|
+
"@material-ui/pickers": "^3.3.11",
|
|
82
84
|
"@material-ui/styles": "^4.9.6",
|
|
83
85
|
"@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
|
|
84
86
|
"@types/recharts": "^2.0.0",
|
|
@@ -93,10 +95,10 @@
|
|
|
93
95
|
"yup": "^1.0.0"
|
|
94
96
|
},
|
|
95
97
|
"devDependencies": {
|
|
96
|
-
"@backstage/cli": "^0.
|
|
97
|
-
"@backstage/core-app-api": "^1.19.
|
|
98
|
-
"@backstage/dev-utils": "^1.1.
|
|
99
|
-
"@backstage/test-utils": "^1.7.
|
|
98
|
+
"@backstage/cli": "^0.36.0",
|
|
99
|
+
"@backstage/core-app-api": "^1.19.6",
|
|
100
|
+
"@backstage/dev-utils": "^1.1.21",
|
|
101
|
+
"@backstage/test-utils": "^1.7.16",
|
|
100
102
|
"@testing-library/dom": "^10.0.0",
|
|
101
103
|
"@testing-library/jest-dom": "^6.0.0",
|
|
102
104
|
"@testing-library/react": "^15.0.0",
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import MenuItem from '@material-ui/core/MenuItem';
|
|
3
|
-
import Select from '@material-ui/core/Select';
|
|
4
|
-
import '../../types/Alert.esm.js';
|
|
5
|
-
import { Duration } from '../../types/Duration.esm.js';
|
|
6
|
-
import { formatLastTwoLookaheadQuarters } from '../../utils/formatters.esm.js';
|
|
7
|
-
import { findAlways } from '../../utils/assert.esm.js';
|
|
8
|
-
import { useSelectStyles } from '../../utils/styles.esm.js';
|
|
9
|
-
import '../../hooks/useConfig.esm.js';
|
|
10
|
-
import '../../hooks/useCurrency.esm.js';
|
|
11
|
-
import '../../hooks/useFilters.esm.js';
|
|
12
|
-
import '../../hooks/useGroups.esm.js';
|
|
13
|
-
import '../../hooks/useLoading.esm.js';
|
|
14
|
-
import '../../hooks/useScroll.esm.js';
|
|
15
|
-
import { useLastCompleteBillingDate } from '../../hooks/useLastCompleteBillingDate.esm.js';
|
|
16
|
-
|
|
17
|
-
function getDefaultOptions(lastCompleteBillingDate) {
|
|
18
|
-
return [
|
|
19
|
-
{
|
|
20
|
-
value: Duration.P90D,
|
|
21
|
-
label: "Past 6 Months"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
value: Duration.P30D,
|
|
25
|
-
label: "Past 60 Days"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
value: Duration.P3M,
|
|
29
|
-
label: formatLastTwoLookaheadQuarters(lastCompleteBillingDate)
|
|
30
|
-
}
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
const PeriodSelect = ({
|
|
34
|
-
duration,
|
|
35
|
-
onSelect,
|
|
36
|
-
options
|
|
37
|
-
}) => {
|
|
38
|
-
const classes = useSelectStyles();
|
|
39
|
-
const lastCompleteBillingDate = useLastCompleteBillingDate();
|
|
40
|
-
const optionsOrDefault = options ?? getDefaultOptions(lastCompleteBillingDate);
|
|
41
|
-
const handleOnChange = (e) => {
|
|
42
|
-
onSelect(e.target.value);
|
|
43
|
-
};
|
|
44
|
-
const renderValue = (value) => {
|
|
45
|
-
const option = findAlways(optionsOrDefault, (o) => o.value === value);
|
|
46
|
-
return /* @__PURE__ */ jsx("b", { children: option.label });
|
|
47
|
-
};
|
|
48
|
-
return /* @__PURE__ */ jsx(
|
|
49
|
-
Select,
|
|
50
|
-
{
|
|
51
|
-
className: classes.select,
|
|
52
|
-
variant: "outlined",
|
|
53
|
-
onChange: handleOnChange,
|
|
54
|
-
value: duration,
|
|
55
|
-
renderValue,
|
|
56
|
-
"data-testid": "period-select",
|
|
57
|
-
children: optionsOrDefault.map((option) => /* @__PURE__ */ jsx(
|
|
58
|
-
MenuItem,
|
|
59
|
-
{
|
|
60
|
-
className: classes.menuItem,
|
|
61
|
-
value: option.value,
|
|
62
|
-
"data-testid": `period-select-option-${option.value}`,
|
|
63
|
-
children: option.label
|
|
64
|
-
},
|
|
65
|
-
option.value
|
|
66
|
-
))
|
|
67
|
-
}
|
|
68
|
-
);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export { PeriodSelect, getDefaultOptions };
|
|
72
|
-
//# sourceMappingURL=PeriodSelect.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodSelect.esm.js","sources":["../../../src/components/PeriodSelect/PeriodSelect.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\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 MenuItem from '@material-ui/core/MenuItem';\nimport Select, { SelectProps } from '@material-ui/core/Select';\nimport { Duration } from '../../types';\nimport { formatLastTwoLookaheadQuarters } from '../../utils/formatters';\nimport { findAlways } from '../../utils/assert';\nimport { useSelectStyles as useStyles } from '../../utils/styles';\nimport { useLastCompleteBillingDate } from '../../hooks';\n\nexport type PeriodOption = {\n value: Duration;\n label: string;\n};\n\nexport function getDefaultOptions(\n lastCompleteBillingDate: string,\n): PeriodOption[] {\n return [\n {\n value: Duration.P90D,\n label: 'Past 6 Months',\n },\n {\n value: Duration.P30D,\n label: 'Past 60 Days',\n },\n {\n value: Duration.P3M,\n label: formatLastTwoLookaheadQuarters(lastCompleteBillingDate),\n },\n ];\n}\n\ntype PeriodSelectProps = {\n duration: Duration;\n onSelect: (duration: Duration) => void;\n options?: PeriodOption[];\n};\n\nexport const PeriodSelect = ({\n duration,\n onSelect,\n options,\n}: PeriodSelectProps) => {\n const classes = useStyles();\n const lastCompleteBillingDate = useLastCompleteBillingDate();\n const optionsOrDefault =\n options ?? getDefaultOptions(lastCompleteBillingDate);\n\n const handleOnChange: SelectProps['onChange'] = e => {\n onSelect(e.target.value as Duration);\n };\n\n const renderValue: SelectProps['renderValue'] = value => {\n const option = findAlways(optionsOrDefault, o => o.value === value);\n return <b>{option.label}</b>;\n };\n\n return (\n <Select\n className={classes.select}\n variant=\"outlined\"\n onChange={handleOnChange}\n value={duration}\n renderValue={renderValue}\n data-testid=\"period-select\"\n >\n {optionsOrDefault.map(option => (\n <MenuItem\n className={classes.menuItem}\n key={option.value}\n value={option.value}\n data-testid={`period-select-option-${option.value}`}\n >\n {option.label}\n </MenuItem>\n ))}\n </Select>\n );\n};\n"],"names":["useStyles"],"mappings":";;;;;;;;;;;;;;;;AA6BO,SAAS,kBACd,uBACgB,EAAA;AAChB,EAAO,OAAA;AAAA,IACL;AAAA,MACE,OAAO,QAAS,CAAA,IAAA;AAAA,MAChB,KAAO,EAAA;AAAA,KACT;AAAA,IACA;AAAA,MACE,OAAO,QAAS,CAAA,IAAA;AAAA,MAChB,KAAO,EAAA;AAAA,KACT;AAAA,IACA;AAAA,MACE,OAAO,QAAS,CAAA,GAAA;AAAA,MAChB,KAAA,EAAO,+BAA+B,uBAAuB;AAAA;AAC/D,GACF;AACF;AAQO,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,MAAM,UAAUA,eAAU,EAAA;AAC1B,EAAA,MAAM,0BAA0B,0BAA2B,EAAA;AAC3D,EAAM,MAAA,gBAAA,GACJ,OAAW,IAAA,iBAAA,CAAkB,uBAAuB,CAAA;AAEtD,EAAA,MAAM,iBAA0C,CAAK,CAAA,KAAA;AACnD,IAAS,QAAA,CAAA,CAAA,CAAE,OAAO,KAAiB,CAAA;AAAA,GACrC;AAEA,EAAA,MAAM,cAA0C,CAAS,KAAA,KAAA;AACvD,IAAA,MAAM,SAAS,UAAW,CAAA,gBAAA,EAAkB,CAAK,CAAA,KAAA,CAAA,CAAE,UAAU,KAAK,CAAA;AAClE,IAAO,uBAAA,GAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAAA,GAC1B;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAQ,CAAA,MAAA;AAAA,MACnB,OAAQ,EAAA,UAAA;AAAA,MACR,QAAU,EAAA,cAAA;AAAA,MACV,KAAO,EAAA,QAAA;AAAA,MACP,WAAA;AAAA,MACA,aAAY,EAAA,eAAA;AAAA,MAEX,QAAA,EAAA,gBAAA,CAAiB,IAAI,CACpB,MAAA,qBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,WAAW,OAAQ,CAAA,QAAA;AAAA,UAEnB,OAAO,MAAO,CAAA,KAAA;AAAA,UACd,aAAA,EAAa,CAAwB,qBAAA,EAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,UAEhD,QAAO,EAAA,MAAA,CAAA;AAAA,SAAA;AAAA,QAJH,MAAO,CAAA;AAAA,OAMf;AAAA;AAAA,GACH;AAEJ;;;;"}
|