@backstage-community/plugin-cost-insights 0.15.2 → 0.16.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.
Files changed (150) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/alerts/ProjectGrowthAlert.esm.js +2 -2
  3. package/dist/alerts/ProjectGrowthAlert.esm.js.map +1 -1
  4. package/dist/alerts/UnlabeledDataflowAlert.esm.js +2 -2
  5. package/dist/alerts/UnlabeledDataflowAlert.esm.js.map +1 -1
  6. package/dist/components/ActionItems/ActionItemCard.esm.js +3 -3
  7. package/dist/components/ActionItems/ActionItemCard.esm.js.map +1 -1
  8. package/dist/components/ActionItems/ActionItems.esm.js +52 -41
  9. package/dist/components/ActionItems/ActionItems.esm.js.map +1 -1
  10. package/dist/components/AlertInsights/AlertDialog.esm.js +79 -58
  11. package/dist/components/AlertInsights/AlertDialog.esm.js.map +1 -1
  12. package/dist/components/AlertInsights/AlertInsights.esm.js +57 -44
  13. package/dist/components/AlertInsights/AlertInsights.esm.js.map +1 -1
  14. package/dist/components/AlertInsights/AlertInsightsHeader.esm.js +10 -2
  15. package/dist/components/AlertInsights/AlertInsightsHeader.esm.js.map +1 -1
  16. package/dist/components/AlertInsights/AlertInsightsSection.esm.js +42 -34
  17. package/dist/components/AlertInsights/AlertInsightsSection.esm.js.map +1 -1
  18. package/dist/components/AlertInsights/AlertInsightsSectionHeader.esm.js +23 -12
  19. package/dist/components/AlertInsights/AlertInsightsSectionHeader.esm.js.map +1 -1
  20. package/dist/components/AlertInsights/AlertStatusSummary.esm.js +63 -55
  21. package/dist/components/AlertInsights/AlertStatusSummary.esm.js.map +1 -1
  22. package/dist/components/AlertInsights/AlertStatusSummaryButton.esm.js +7 -6
  23. package/dist/components/AlertInsights/AlertStatusSummaryButton.esm.js.map +1 -1
  24. package/dist/components/AlertInstructionsLayout/AlertInstructionsLayout.esm.js +23 -17
  25. package/dist/components/AlertInstructionsLayout/AlertInstructionsLayout.esm.js.map +1 -1
  26. package/dist/components/BarChart/BarChart.esm.js +83 -78
  27. package/dist/components/BarChart/BarChart.esm.js.map +1 -1
  28. package/dist/components/BarChart/BarChartLabel.esm.js +8 -5
  29. package/dist/components/BarChart/BarChartLabel.esm.js.map +1 -1
  30. package/dist/components/BarChart/BarChartLegend.esm.js +20 -16
  31. package/dist/components/BarChart/BarChartLegend.esm.js.map +1 -1
  32. package/dist/components/BarChart/BarChartStepper.esm.js +51 -48
  33. package/dist/components/BarChart/BarChartStepper.esm.js.map +1 -1
  34. package/dist/components/BarChart/BarChartStepperButton.esm.js +6 -5
  35. package/dist/components/BarChart/BarChartStepperButton.esm.js.map +1 -1
  36. package/dist/components/BarChart/BarChartSteps.esm.js +3 -3
  37. package/dist/components/BarChart/BarChartSteps.esm.js.map +1 -1
  38. package/dist/components/BarChart/BarChartTick.esm.js +5 -5
  39. package/dist/components/BarChart/BarChartTick.esm.js.map +1 -1
  40. package/dist/components/BarChart/BarChartTooltip.esm.js +27 -14
  41. package/dist/components/BarChart/BarChartTooltip.esm.js.map +1 -1
  42. package/dist/components/BarChart/BarChartTooltipItem.esm.js +11 -6
  43. package/dist/components/BarChart/BarChartTooltipItem.esm.js.map +1 -1
  44. package/dist/components/CopyUrlToClipboard/CopyUrlToClipboard.esm.js +3 -2
  45. package/dist/components/CopyUrlToClipboard/CopyUrlToClipboard.esm.js.map +1 -1
  46. package/dist/components/CostGrowth/CostGrowth.esm.js +26 -7
  47. package/dist/components/CostGrowth/CostGrowth.esm.js.map +1 -1
  48. package/dist/components/CostGrowth/CostGrowthIndicator.esm.js +6 -2
  49. package/dist/components/CostGrowth/CostGrowthIndicator.esm.js.map +1 -1
  50. package/dist/components/CostInsightsHeader/CostInsightsHeader.esm.js +77 -8
  51. package/dist/components/CostInsightsHeader/CostInsightsHeader.esm.js.map +1 -1
  52. package/dist/components/CostInsightsLayout/CostInsightsLayout.esm.js +16 -10
  53. package/dist/components/CostInsightsLayout/CostInsightsLayout.esm.js.map +1 -1
  54. package/dist/components/CostInsightsNavigation/CostInsightsNavigation.esm.js +41 -35
  55. package/dist/components/CostInsightsNavigation/CostInsightsNavigation.esm.js.map +1 -1
  56. package/dist/components/CostInsightsPage/CostInsightsPage.esm.js +116 -79
  57. package/dist/components/CostInsightsPage/CostInsightsPage.esm.js.map +1 -1
  58. package/dist/components/CostInsightsPage/CostInsightsPageRoot.esm.js +2 -2
  59. package/dist/components/CostInsightsPage/CostInsightsPageRoot.esm.js.map +1 -1
  60. package/dist/components/CostInsightsPage/CostInsightsThemeProvider.esm.js +5 -5
  61. package/dist/components/CostInsightsPage/CostInsightsThemeProvider.esm.js.map +1 -1
  62. package/dist/components/CostInsightsTabs/CostInsightsTabs.esm.js +58 -51
  63. package/dist/components/CostInsightsTabs/CostInsightsTabs.esm.js.map +1 -1
  64. package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js +74 -59
  65. package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js.map +1 -1
  66. package/dist/components/CostOverviewCard/CostOverviewCard.esm.js +45 -35
  67. package/dist/components/CostOverviewCard/CostOverviewCard.esm.js.map +1 -1
  68. package/dist/components/CostOverviewCard/CostOverviewChart.esm.js +86 -73
  69. package/dist/components/CostOverviewCard/CostOverviewChart.esm.js.map +1 -1
  70. package/dist/components/CostOverviewCard/CostOverviewHeader.esm.js +11 -6
  71. package/dist/components/CostOverviewCard/CostOverviewHeader.esm.js.map +1 -1
  72. package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js +21 -15
  73. package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js.map +1 -1
  74. package/dist/components/CurrencySelect/CurrencySelect.esm.js +24 -21
  75. package/dist/components/CurrencySelect/CurrencySelect.esm.js.map +1 -1
  76. package/dist/components/EntityCosts/EntityCosts.esm.js +8 -7
  77. package/dist/components/EntityCosts/EntityCosts.esm.js.map +1 -1
  78. package/dist/components/LabelDataflowInstructionsPage/LabelDataflowInstructionsPage.esm.js +65 -20
  79. package/dist/components/LabelDataflowInstructionsPage/LabelDataflowInstructionsPage.esm.js.map +1 -1
  80. package/dist/components/LegendItem/LegendItem.esm.js +34 -29
  81. package/dist/components/LegendItem/LegendItem.esm.js.map +1 -1
  82. package/dist/components/MetricSelect/MetricSelect.esm.js +19 -14
  83. package/dist/components/MetricSelect/MetricSelect.esm.js.map +1 -1
  84. package/dist/components/PeriodSelect/PeriodSelect.esm.js +15 -15
  85. package/dist/components/PeriodSelect/PeriodSelect.esm.js.map +1 -1
  86. package/dist/components/ProductInsights/ProductInsights.esm.js +12 -8
  87. package/dist/components/ProductInsights/ProductInsights.esm.js.map +1 -1
  88. package/dist/components/ProductInsightsCard/ProductEntityDialog.esm.js +20 -15
  89. package/dist/components/ProductInsightsCard/ProductEntityDialog.esm.js.map +1 -1
  90. package/dist/components/ProductInsightsCard/ProductEntityTable.esm.js +9 -9
  91. package/dist/components/ProductInsightsCard/ProductEntityTable.esm.js.map +1 -1
  92. package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js +25 -15
  93. package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js.map +1 -1
  94. package/dist/components/ProductInsightsCard/ProductInsightsCardList.esm.js +14 -14
  95. package/dist/components/ProductInsightsCard/ProductInsightsCardList.esm.js.map +1 -1
  96. package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js +43 -35
  97. package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js.map +1 -1
  98. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertCard.esm.js +5 -5
  99. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertCard.esm.js.map +1 -1
  100. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertChart.esm.js +5 -2
  101. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertChart.esm.js.map +1 -1
  102. package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js +55 -9
  103. package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js.map +1 -1
  104. package/dist/components/ProjectSelect/ProjectSelect.esm.js +15 -15
  105. package/dist/components/ProjectSelect/ProjectSelect.esm.js.map +1 -1
  106. package/dist/components/UnlabeledDataflowAlertCard/UnlabeledDataflowAlertCard.esm.js +12 -9
  107. package/dist/components/UnlabeledDataflowAlertCard/UnlabeledDataflowAlertCard.esm.js.map +1 -1
  108. package/dist/components/WhyCostsMatter/WhyCostsMatter.esm.js +40 -10
  109. package/dist/components/WhyCostsMatter/WhyCostsMatter.esm.js.map +1 -1
  110. package/dist/example/alerts/KubernetesMigrationAlert.esm.js +10 -3
  111. package/dist/example/alerts/KubernetesMigrationAlert.esm.js.map +1 -1
  112. package/dist/example/client.esm.js +1 -1
  113. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationAlertCard.esm.js +20 -17
  114. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationAlertCard.esm.js.map +1 -1
  115. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js +3 -2
  116. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js.map +1 -1
  117. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js +14 -9
  118. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js.map +1 -1
  119. package/dist/example/forms/KubernetesMigrationDismissForm.esm.js +21 -17
  120. package/dist/example/forms/KubernetesMigrationDismissForm.esm.js.map +1 -1
  121. package/dist/forms/AlertAcceptForm.esm.js +5 -4
  122. package/dist/forms/AlertAcceptForm.esm.js.map +1 -1
  123. package/dist/forms/AlertDismissForm.esm.js +47 -38
  124. package/dist/forms/AlertDismissForm.esm.js.map +1 -1
  125. package/dist/forms/AlertSnoozeForm.esm.js +20 -16
  126. package/dist/forms/AlertSnoozeForm.esm.js.map +1 -1
  127. package/dist/hooks/useConfig.esm.js +3 -2
  128. package/dist/hooks/useConfig.esm.js.map +1 -1
  129. package/dist/hooks/useCurrency.esm.js +6 -3
  130. package/dist/hooks/useCurrency.esm.js.map +1 -1
  131. package/dist/hooks/useFilters.esm.js +10 -7
  132. package/dist/hooks/useFilters.esm.js.map +1 -1
  133. package/dist/hooks/useGroups.esm.js +7 -4
  134. package/dist/hooks/useGroups.esm.js.map +1 -1
  135. package/dist/hooks/useLastCompleteBillingDate.esm.js +8 -7
  136. package/dist/hooks/useLastCompleteBillingDate.esm.js.map +1 -1
  137. package/dist/hooks/useLoading.esm.js +6 -2
  138. package/dist/hooks/useLoading.esm.js.map +1 -1
  139. package/dist/hooks/useScroll.esm.js +6 -3
  140. package/dist/hooks/useScroll.esm.js.map +1 -1
  141. package/dist/index.d.ts +17 -17
  142. package/dist/index.esm.js +2 -1
  143. package/dist/index.esm.js.map +1 -1
  144. package/dist/testUtils/providers.esm.js +3 -3
  145. package/dist/testUtils/providers.esm.js.map +1 -1
  146. package/dist/utils/navigation.esm.js +10 -10
  147. package/dist/utils/navigation.esm.js.map +1 -1
  148. package/dist/utils/scroll.esm.js +3 -2
  149. package/dist/utils/scroll.esm.js.map +1 -1
  150. package/package.json +18 -11
@@ -1,4 +1,5 @@
1
- import React, { useState, useCallback } from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useCallback } from 'react';
2
3
  import { ResponsiveContainer, BarChart as BarChart$1, Tooltip, CartesianGrid, XAxis, YAxis, Bar } from 'recharts';
3
4
  import Box from '@material-ui/core/Box';
4
5
  import { useTheme } from '@material-ui/core/styles';
@@ -25,7 +26,7 @@ const defaultTooltip = (baseCurrency) => {
25
26
  if (isInvalid({ label, payload })) return null;
26
27
  const title = titleOf(label);
27
28
  const items = payload.map(tooltipItemOf(baseCurrency)).filter(notEmpty);
28
- return /* @__PURE__ */ React.createElement(BarChartTooltip, { title }, items.map((item, index) => /* @__PURE__ */ React.createElement(BarChartTooltipItem, { key: `${item.label}-${index}`, item })));
29
+ return /* @__PURE__ */ jsx(BarChartTooltip, { title, children: items.map((item, index) => /* @__PURE__ */ jsx(BarChartTooltipItem, { item }, `${item.label}-${index}`)) });
29
30
  };
30
31
  return tooltip;
31
32
  };
@@ -73,93 +74,97 @@ const BarChart = (props) => {
73
74
  },
74
75
  [setStepWindow, resources, displayAmount]
75
76
  );
76
- return /* @__PURE__ */ React.createElement(
77
+ return /* @__PURE__ */ jsxs(
77
78
  Box,
78
79
  {
79
80
  position: "relative",
80
81
  onMouseLeave: () => setActiveChart(false),
81
82
  onMouseEnter: () => setActiveChart(true),
82
- "data-testid": "bar-chart-wrapper"
83
- },
84
- /* @__PURE__ */ React.createElement(
85
- ResponsiveContainer,
86
- {
87
- height: styles.container.height,
88
- width: responsive ? "100%" : styles.container.width
89
- },
90
- /* @__PURE__ */ React.createElement(
91
- BarChart$1,
92
- {
93
- style: { cursor: onClick ? "pointer" : null },
94
- onClick,
95
- onMouseMove,
96
- data: sortedResources,
97
- margin: styles.barChart.margin,
98
- barSize: 45,
99
- "data-testid": "bar-chart"
100
- },
101
- tooltip && /* @__PURE__ */ React.createElement(
102
- Tooltip,
103
- {
104
- filterNull: true,
105
- cursor: styles.cursor,
106
- animationDuration: 100,
107
- content: tooltip
108
- }
109
- ),
110
- /* @__PURE__ */ React.createElement(
111
- CartesianGrid,
112
- {
113
- vertical: false,
114
- stroke: styles.cartesianGrid.stroke
115
- }
116
- ),
117
- /* @__PURE__ */ React.createElement(
118
- XAxis,
83
+ "data-testid": "bar-chart-wrapper",
84
+ children: [
85
+ /* @__PURE__ */ jsx(
86
+ ResponsiveContainer,
119
87
  {
120
- dataKey: DataKey.Name,
121
- tickLine: false,
122
- interval: 0,
123
- height: styles.xAxis.height,
124
- tick: BarChartTick
88
+ height: styles.container.height,
89
+ width: responsive ? "100%" : styles.container.width,
90
+ children: /* @__PURE__ */ jsxs(
91
+ BarChart$1,
92
+ {
93
+ style: { cursor: onClick ? "pointer" : null },
94
+ onClick,
95
+ onMouseMove,
96
+ data: sortedResources,
97
+ margin: styles.barChart.margin,
98
+ barSize: 45,
99
+ "data-testid": "bar-chart",
100
+ children: [
101
+ tooltip && /* @__PURE__ */ jsx(
102
+ Tooltip,
103
+ {
104
+ filterNull: true,
105
+ cursor: styles.cursor,
106
+ animationDuration: 100,
107
+ content: tooltip
108
+ }
109
+ ),
110
+ /* @__PURE__ */ jsx(
111
+ CartesianGrid,
112
+ {
113
+ vertical: false,
114
+ stroke: styles.cartesianGrid.stroke
115
+ }
116
+ ),
117
+ /* @__PURE__ */ jsx(
118
+ XAxis,
119
+ {
120
+ dataKey: DataKey.Name,
121
+ tickLine: false,
122
+ interval: 0,
123
+ height: styles.xAxis.height,
124
+ tick: BarChartTick
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsx(
128
+ YAxis,
129
+ {
130
+ tickFormatter: currencyFormatter(baseCurrency).format,
131
+ domain: [() => 0, globalResourcesMax],
132
+ tick: styles.axis
133
+ }
134
+ ),
135
+ /* @__PURE__ */ jsx(
136
+ Bar,
137
+ {
138
+ dataKey: DataKey.Previous,
139
+ name: data.previousName,
140
+ fill: data.previousFill,
141
+ isAnimationActive: false
142
+ }
143
+ ),
144
+ /* @__PURE__ */ jsx(
145
+ Bar,
146
+ {
147
+ dataKey: DataKey.Current,
148
+ name: data.currentName,
149
+ fill: data.currentFill,
150
+ isAnimationActive: false
151
+ }
152
+ )
153
+ ]
154
+ }
155
+ )
125
156
  }
126
157
  ),
127
- /* @__PURE__ */ React.createElement(
128
- YAxis,
158
+ !disableStepper && /* @__PURE__ */ jsx(
159
+ BarChartStepper,
129
160
  {
130
- tickFormatter: currencyFormatter(baseCurrency).format,
131
- domain: [() => 0, globalResourcesMax],
132
- tick: styles.axis
133
- }
134
- ),
135
- /* @__PURE__ */ React.createElement(
136
- Bar,
137
- {
138
- dataKey: DataKey.Previous,
139
- name: data.previousName,
140
- fill: data.previousFill,
141
- isAnimationActive: false
142
- }
143
- ),
144
- /* @__PURE__ */ React.createElement(
145
- Bar,
146
- {
147
- dataKey: DataKey.Current,
148
- name: data.currentName,
149
- fill: data.currentFill,
150
- isAnimationActive: false
161
+ steps,
162
+ disableScroll: !activeChart,
163
+ onChange: onStepChange
151
164
  }
152
165
  )
153
- )
154
- ),
155
- !disableStepper && /* @__PURE__ */ React.createElement(
156
- BarChartStepper,
157
- {
158
- steps,
159
- disableScroll: !activeChart,
160
- onChange: onStepChange
161
- }
162
- )
166
+ ]
167
+ }
163
168
  );
164
169
  };
165
170
 
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.esm.js","sources":["../../../src/components/BarChart/BarChart.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 React, { useState, useCallback } from 'react';\nimport {\n Bar,\n BarChart as RechartsBarChart,\n CartesianGrid,\n Tooltip as RechartsTooltip,\n ResponsiveContainer,\n XAxis,\n YAxis,\n} from 'recharts';\nimport Box from '@material-ui/core/Box';\nimport { useTheme } from '@material-ui/core/styles';\nimport { BarChartTick } from './BarChartTick';\nimport { BarChartStepper } from './BarChartStepper';\nimport { BarChartTooltip } from './BarChartTooltip';\nimport { BarChartTooltipItem } from './BarChartTooltipItem';\nimport { currencyFormatter } from '../../utils/formatters';\nimport {\n ResourceData,\n DataKey,\n CostInsightsTheme,\n BarChartOptions,\n} from '../../types';\nimport { notEmpty } from '../../utils/assert';\nimport { useBarChartStyles } from '../../utils/styles';\nimport { resourceSort } from '../../utils/sort';\nimport { isInvalid, titleOf, tooltipItemOf } from '../../utils/graphs';\nimport { TooltipRenderer } from '../../types';\nimport { useConfig } from '../../hooks';\n\nconst defaultTooltip = (baseCurrency: Intl.NumberFormat) => {\n const tooltip: TooltipRenderer = ({ label, payload = [] }) => {\n if (isInvalid({ label, payload })) return null;\n\n const title = titleOf(label);\n const items = payload.map(tooltipItemOf(baseCurrency)).filter(notEmpty);\n return (\n <BarChartTooltip title={title}>\n {items.map((item, index) => (\n <BarChartTooltipItem key={`${item.label}-${index}`} item={item} />\n ))}\n </BarChartTooltip>\n );\n };\n return tooltip;\n};\n\n/** @public */\nexport type BarChartProps = {\n resources: ResourceData[];\n responsive?: boolean;\n displayAmount?: number;\n options?: Partial<BarChartOptions>;\n tooltip?: TooltipRenderer;\n onClick?: (...args: any[]) => void;\n onMouseMove?: (...args: any[]) => void;\n};\n\n/** @public */\nexport const BarChart = (props: BarChartProps) => {\n const { baseCurrency } = useConfig();\n\n const {\n resources,\n responsive = true,\n displayAmount = 6,\n options = {},\n tooltip = defaultTooltip(baseCurrency),\n onClick,\n onMouseMove,\n } = props;\n\n const theme = useTheme<CostInsightsTheme>();\n const styles = useBarChartStyles(theme);\n const [activeChart, setActiveChart] = useState(false);\n const [stepWindow, setStepWindow] = useState(() => [0, displayAmount]);\n\n const data = Object.assign(\n {\n previousFill: theme.palette.lightBlue,\n currentFill: theme.palette.darkBlue,\n previousName: 'Previous',\n currentName: 'Current',\n },\n options,\n );\n\n const [stepStart, stepEnd] = stepWindow;\n const steps = Math.ceil(resources.length / displayAmount);\n const disableStepper = resources.length <= displayAmount;\n\n const sortedResources = resources\n .sort(resourceSort)\n .slice(stepStart, stepEnd);\n\n // Pin the domain to the largest value in the series.\n // Intentionally redundant - This could simply be derived from the first element in the already sorted list,\n // but that may not be the case in the future when custom sorting is implemented.\n const globalResourcesMax = resources.reduce(\n (max, r: ResourceData) => Math.max(max, r.current, r.previous),\n 0,\n );\n\n const onStepChange = useCallback(\n (activeStep: number) => {\n const start = activeStep * displayAmount;\n const end = start + displayAmount;\n if (end > resources.length) {\n setStepWindow([start, resources.length]);\n } else {\n setStepWindow([start, end]);\n }\n },\n [setStepWindow, resources, displayAmount],\n );\n\n return (\n <Box\n position=\"relative\"\n onMouseLeave={() => setActiveChart(false)}\n onMouseEnter={() => setActiveChart(true)}\n data-testid=\"bar-chart-wrapper\"\n >\n {/* Setting fixed values for height and width generates a console warning in testing but enables ResponsiveContainer to render its children. */}\n <ResponsiveContainer\n height={styles.container.height}\n width={responsive ? '100%' : styles.container.width}\n >\n <RechartsBarChart\n style={{ cursor: onClick ? 'pointer' : null }}\n onClick={onClick}\n onMouseMove={onMouseMove}\n data={sortedResources}\n margin={styles.barChart.margin}\n barSize={45}\n data-testid=\"bar-chart\"\n >\n {tooltip && (\n <RechartsTooltip\n filterNull\n cursor={styles.cursor}\n animationDuration={100}\n content={tooltip}\n />\n )}\n <CartesianGrid\n vertical={false}\n stroke={styles.cartesianGrid.stroke}\n />\n <XAxis\n dataKey={DataKey.Name}\n tickLine={false}\n interval={0}\n height={styles.xAxis.height}\n tick={BarChartTick}\n />\n <YAxis\n tickFormatter={currencyFormatter(baseCurrency).format}\n domain={[() => 0, globalResourcesMax]}\n tick={styles.axis}\n />\n <Bar\n dataKey={DataKey.Previous}\n name={data.previousName}\n fill={data.previousFill}\n isAnimationActive={false}\n />\n <Bar\n dataKey={DataKey.Current}\n name={data.currentName}\n fill={data.currentFill}\n isAnimationActive={false}\n />\n </RechartsBarChart>\n </ResponsiveContainer>\n {!disableStepper && (\n <BarChartStepper\n steps={steps}\n disableScroll={!activeChart}\n onChange={onStepChange}\n />\n )}\n </Box>\n );\n};\n"],"names":["RechartsBarChart","RechartsTooltip"],"mappings":"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"}
1
+ {"version":3,"file":"BarChart.esm.js","sources":["../../../src/components/BarChart/BarChart.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 { useState, useCallback } from 'react';\nimport {\n Bar,\n BarChart as RechartsBarChart,\n CartesianGrid,\n Tooltip as RechartsTooltip,\n ResponsiveContainer,\n XAxis,\n YAxis,\n} from 'recharts';\nimport Box from '@material-ui/core/Box';\nimport { useTheme } from '@material-ui/core/styles';\nimport { BarChartTick } from './BarChartTick';\nimport { BarChartStepper } from './BarChartStepper';\nimport { BarChartTooltip } from './BarChartTooltip';\nimport { BarChartTooltipItem } from './BarChartTooltipItem';\nimport { currencyFormatter } from '../../utils/formatters';\nimport {\n ResourceData,\n DataKey,\n CostInsightsTheme,\n BarChartOptions,\n} from '../../types';\nimport { notEmpty } from '../../utils/assert';\nimport { useBarChartStyles } from '../../utils/styles';\nimport { resourceSort } from '../../utils/sort';\nimport { isInvalid, titleOf, tooltipItemOf } from '../../utils/graphs';\nimport { TooltipRenderer } from '../../types';\nimport { useConfig } from '../../hooks';\n\nconst defaultTooltip = (baseCurrency: Intl.NumberFormat) => {\n const tooltip: TooltipRenderer = ({ label, payload = [] }) => {\n if (isInvalid({ label, payload })) return null;\n\n const title = titleOf(label);\n const items = payload.map(tooltipItemOf(baseCurrency)).filter(notEmpty);\n return (\n <BarChartTooltip title={title}>\n {items.map((item, index) => (\n <BarChartTooltipItem key={`${item.label}-${index}`} item={item} />\n ))}\n </BarChartTooltip>\n );\n };\n return tooltip;\n};\n\n/** @public */\nexport type BarChartProps = {\n resources: ResourceData[];\n responsive?: boolean;\n displayAmount?: number;\n options?: Partial<BarChartOptions>;\n tooltip?: TooltipRenderer;\n onClick?: (...args: any[]) => void;\n onMouseMove?: (...args: any[]) => void;\n};\n\n/** @public */\nexport const BarChart = (props: BarChartProps) => {\n const { baseCurrency } = useConfig();\n\n const {\n resources,\n responsive = true,\n displayAmount = 6,\n options = {},\n tooltip = defaultTooltip(baseCurrency),\n onClick,\n onMouseMove,\n } = props;\n\n const theme = useTheme<CostInsightsTheme>();\n const styles = useBarChartStyles(theme);\n const [activeChart, setActiveChart] = useState(false);\n const [stepWindow, setStepWindow] = useState(() => [0, displayAmount]);\n\n const data = Object.assign(\n {\n previousFill: theme.palette.lightBlue,\n currentFill: theme.palette.darkBlue,\n previousName: 'Previous',\n currentName: 'Current',\n },\n options,\n );\n\n const [stepStart, stepEnd] = stepWindow;\n const steps = Math.ceil(resources.length / displayAmount);\n const disableStepper = resources.length <= displayAmount;\n\n const sortedResources = resources\n .sort(resourceSort)\n .slice(stepStart, stepEnd);\n\n // Pin the domain to the largest value in the series.\n // Intentionally redundant - This could simply be derived from the first element in the already sorted list,\n // but that may not be the case in the future when custom sorting is implemented.\n const globalResourcesMax = resources.reduce(\n (max, r: ResourceData) => Math.max(max, r.current, r.previous),\n 0,\n );\n\n const onStepChange = useCallback(\n (activeStep: number) => {\n const start = activeStep * displayAmount;\n const end = start + displayAmount;\n if (end > resources.length) {\n setStepWindow([start, resources.length]);\n } else {\n setStepWindow([start, end]);\n }\n },\n [setStepWindow, resources, displayAmount],\n );\n\n return (\n <Box\n position=\"relative\"\n onMouseLeave={() => setActiveChart(false)}\n onMouseEnter={() => setActiveChart(true)}\n data-testid=\"bar-chart-wrapper\"\n >\n {/* Setting fixed values for height and width generates a console warning in testing but enables ResponsiveContainer to render its children. */}\n <ResponsiveContainer\n height={styles.container.height}\n width={responsive ? '100%' : styles.container.width}\n >\n <RechartsBarChart\n style={{ cursor: onClick ? 'pointer' : null }}\n onClick={onClick}\n onMouseMove={onMouseMove}\n data={sortedResources}\n margin={styles.barChart.margin}\n barSize={45}\n data-testid=\"bar-chart\"\n >\n {tooltip && (\n <RechartsTooltip\n filterNull\n cursor={styles.cursor}\n animationDuration={100}\n content={tooltip}\n />\n )}\n <CartesianGrid\n vertical={false}\n stroke={styles.cartesianGrid.stroke}\n />\n <XAxis\n dataKey={DataKey.Name}\n tickLine={false}\n interval={0}\n height={styles.xAxis.height}\n tick={BarChartTick}\n />\n <YAxis\n tickFormatter={currencyFormatter(baseCurrency).format}\n domain={[() => 0, globalResourcesMax]}\n tick={styles.axis}\n />\n <Bar\n dataKey={DataKey.Previous}\n name={data.previousName}\n fill={data.previousFill}\n isAnimationActive={false}\n />\n <Bar\n dataKey={DataKey.Current}\n name={data.currentName}\n fill={data.currentFill}\n isAnimationActive={false}\n />\n </RechartsBarChart>\n </ResponsiveContainer>\n {!disableStepper && (\n <BarChartStepper\n steps={steps}\n disableScroll={!activeChart}\n onChange={onStepChange}\n />\n )}\n </Box>\n );\n};\n"],"names":["RechartsBarChart","RechartsTooltip"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import Box from '@material-ui/core/Box';
3
3
  import Typography from '@material-ui/core/Typography';
4
4
  import { useBarChartLabelStyles } from '../../utils/styles.esm.js';
@@ -13,7 +13,7 @@ const BarChartLabel = ({
13
13
  }) => {
14
14
  const classes = useBarChartLabelStyles();
15
15
  const translateX = width * -0.5;
16
- return /* @__PURE__ */ React.createElement(
16
+ return /* @__PURE__ */ jsx(
17
17
  "foreignObject",
18
18
  {
19
19
  className: classes.foreignObject,
@@ -21,9 +21,12 @@ const BarChartLabel = ({
21
21
  x,
22
22
  y,
23
23
  height,
24
- width
25
- },
26
- /* @__PURE__ */ React.createElement(Box, { display: "flex", flexDirection: "column", justifyContent: "center" }, /* @__PURE__ */ React.createElement(Typography, { className: classes.label, gutterBottom: true }, children), details)
24
+ width,
25
+ children: /* @__PURE__ */ jsxs(Box, { display: "flex", flexDirection: "column", justifyContent: "center", children: [
26
+ /* @__PURE__ */ jsx(Typography, { className: classes.label, gutterBottom: true, children }),
27
+ details
28
+ ] })
29
+ }
27
30
  );
28
31
  };
29
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartLabel.esm.js","sources":["../../../src/components/BarChart/BarChartLabel.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 React, { PropsWithChildren } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { useBarChartLabelStyles } from '../../utils/styles';\n\ntype BarChartLabelProps = {\n x: number;\n y: number;\n height: number;\n width: number;\n details?: JSX.Element;\n};\n\nexport const BarChartLabel = ({\n x,\n y,\n height,\n width,\n details,\n children,\n}: PropsWithChildren<BarChartLabelProps>) => {\n const classes = useBarChartLabelStyles();\n const translateX = width * -0.5;\n\n return (\n <foreignObject\n className={classes.foreignObject}\n style={{ transform: `translateX(${translateX}px)` }}\n x={x}\n y={y}\n height={height}\n width={width}\n >\n <Box display=\"flex\" flexDirection=\"column\" justifyContent=\"center\">\n <Typography className={classes.label} gutterBottom>\n {children}\n </Typography>\n {details}\n </Box>\n </foreignObject>\n );\n};\n"],"names":[],"mappings":";;;;;AA6BO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,CAAA;AAAA,EACA,CAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAA6C,KAAA;AAC3C,EAAA,MAAM,UAAU,sBAAuB,EAAA;AACvC,EAAA,MAAM,aAAa,KAAQ,GAAA,CAAA,GAAA;AAE3B,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAQ,CAAA,aAAA;AAAA,MACnB,KAAO,EAAA,EAAE,SAAW,EAAA,CAAA,WAAA,EAAc,UAAU,CAAM,GAAA,CAAA,EAAA;AAAA,MAClD,CAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KAAA;AAAA,wCAEC,GAAI,EAAA,EAAA,OAAA,EAAQ,MAAO,EAAA,aAAA,EAAc,UAAS,cAAe,EAAA,QAAA,EAAA,kBACvD,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,WAAW,OAAQ,CAAA,KAAA,EAAO,cAAY,IAC/C,EAAA,EAAA,QACH,GACC,OACH;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"BarChartLabel.esm.js","sources":["../../../src/components/BarChart/BarChartLabel.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 { PropsWithChildren } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { useBarChartLabelStyles } from '../../utils/styles';\n\ntype BarChartLabelProps = {\n x: number;\n y: number;\n height: number;\n width: number;\n details?: JSX.Element;\n};\n\nexport const BarChartLabel = ({\n x,\n y,\n height,\n width,\n details,\n children,\n}: PropsWithChildren<BarChartLabelProps>) => {\n const classes = useBarChartLabelStyles();\n const translateX = width * -0.5;\n\n return (\n <foreignObject\n className={classes.foreignObject}\n style={{ transform: `translateX(${translateX}px)` }}\n x={x}\n y={y}\n height={height}\n width={width}\n >\n <Box display=\"flex\" flexDirection=\"column\" justifyContent=\"center\">\n <Typography className={classes.label} gutterBottom>\n {children}\n </Typography>\n {details}\n </Box>\n </foreignObject>\n );\n};\n"],"names":[],"mappings":";;;;;AA6BO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,CAAA;AAAA,EACA,CAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAA6C,KAAA;AAC3C,EAAA,MAAM,UAAU,sBAAuB,EAAA;AACvC,EAAA,MAAM,aAAa,KAAQ,GAAA,CAAA,GAAA;AAE3B,EACE,uBAAA,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,WAAW,OAAQ,CAAA,aAAA;AAAA,MACnB,KAAO,EAAA,EAAE,SAAW,EAAA,CAAA,WAAA,EAAc,UAAU,CAAM,GAAA,CAAA,EAAA;AAAA,MAClD,CAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MAEA,+BAAC,GAAI,EAAA,EAAA,OAAA,EAAQ,QAAO,aAAc,EAAA,QAAA,EAAS,gBAAe,QACxD,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,cAAW,SAAW,EAAA,OAAA,CAAQ,KAAO,EAAA,YAAA,EAAY,MAC/C,QACH,EAAA,CAAA;AAAA,QACC;AAAA,OACH,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import Box from '@material-ui/core/Box';
3
3
  import { useTheme } from '@material-ui/core/styles';
4
4
  import { LegendItem } from '../LegendItem/LegendItem.esm.js';
@@ -26,21 +26,25 @@ const BarChartLegend = (props) => {
26
26
  },
27
27
  options
28
28
  );
29
- return /* @__PURE__ */ React.createElement(Box, { className: classes.legend, display: "flex", flexDirection: "row" }, /* @__PURE__ */ React.createElement(Box, { marginRight: 2 }, /* @__PURE__ */ React.createElement(
30
- LegendItem,
31
- {
32
- title: data.previousName,
33
- markerColor: options.hideMarker ? void 0 : data.previousFill
34
- },
35
- currencyFormatter(baseCurrency).format(costStart)
36
- )), /* @__PURE__ */ React.createElement(Box, { marginRight: 2 }, /* @__PURE__ */ React.createElement(
37
- LegendItem,
38
- {
39
- title: data.currentName,
40
- markerColor: options.hideMarker ? void 0 : data.currentFill
41
- },
42
- currencyFormatter(baseCurrency).format(costEnd)
43
- )), children);
29
+ return /* @__PURE__ */ jsxs(Box, { className: classes.legend, display: "flex", flexDirection: "row", children: [
30
+ /* @__PURE__ */ jsx(Box, { marginRight: 2, children: /* @__PURE__ */ jsx(
31
+ LegendItem,
32
+ {
33
+ title: data.previousName,
34
+ markerColor: options.hideMarker ? void 0 : data.previousFill,
35
+ children: currencyFormatter(baseCurrency).format(costStart)
36
+ }
37
+ ) }),
38
+ /* @__PURE__ */ jsx(Box, { marginRight: 2, children: /* @__PURE__ */ jsx(
39
+ LegendItem,
40
+ {
41
+ title: data.currentName,
42
+ markerColor: options.hideMarker ? void 0 : data.currentFill,
43
+ children: currencyFormatter(baseCurrency).format(costEnd)
44
+ }
45
+ ) }),
46
+ children
47
+ ] });
44
48
  };
45
49
 
46
50
  export { BarChartLegend };
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartLegend.esm.js","sources":["../../../src/components/BarChart/BarChartLegend.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 React, { PropsWithChildren } from 'react';\nimport Box from '@material-ui/core/Box';\nimport { useTheme } from '@material-ui/core/styles';\nimport { LegendItem } from '../LegendItem';\nimport { currencyFormatter } from '../../utils/formatters';\nimport { CostInsightsTheme } from '../../types';\nimport { useBarChartLayoutStyles as useStyles } from '../../utils/styles';\nimport { useConfig } from '../../hooks';\n\n/** @public */\nexport type BarChartLegendOptions = {\n previousName: string;\n previousFill: string;\n currentName: string;\n currentFill: string;\n hideMarker?: boolean;\n};\n\n/** @public */\nexport type BarChartLegendProps = {\n costStart: number;\n costEnd: number;\n options?: Partial<BarChartLegendOptions>;\n};\n\n/** @public */\nexport const BarChartLegend = (\n props: PropsWithChildren<BarChartLegendProps>,\n) => {\n const { costStart, costEnd, options = {}, children } = props;\n\n const theme = useTheme<CostInsightsTheme>();\n const classes = useStyles();\n const { baseCurrency } = useConfig();\n\n const data = Object.assign(\n {\n previousName: 'Previous',\n previousFill: theme.palette.lightBlue,\n currentName: 'Current',\n currentFill: theme.palette.darkBlue,\n },\n options,\n );\n\n return (\n <Box className={classes.legend} display=\"flex\" flexDirection=\"row\">\n <Box marginRight={2}>\n <LegendItem\n title={data.previousName}\n markerColor={options.hideMarker ? undefined : data.previousFill}\n >\n {currencyFormatter(baseCurrency).format(costStart)}\n </LegendItem>\n </Box>\n <Box marginRight={2}>\n <LegendItem\n title={data.currentName}\n markerColor={options.hideMarker ? undefined : data.currentFill}\n >\n {currencyFormatter(baseCurrency).format(costEnd)}\n </LegendItem>\n </Box>\n {children}\n </Box>\n );\n};\n"],"names":["useStyles"],"mappings":";;;;;;;;;;;;;;AA0Ca,MAAA,cAAA,GAAiB,CAC5B,KACG,KAAA;AACH,EAAA,MAAM,EAAE,SAAW,EAAA,OAAA,EAAS,UAAU,EAAC,EAAG,UAAa,GAAA,KAAA;AAEvD,EAAA,MAAM,QAAQ,QAA4B,EAAA;AAC1C,EAAA,MAAM,UAAUA,uBAAU,EAAA;AAC1B,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,SAAU,EAAA;AAEnC,EAAA,MAAM,OAAO,MAAO,CAAA,MAAA;AAAA,IAClB;AAAA,MACE,YAAc,EAAA,UAAA;AAAA,MACd,YAAA,EAAc,MAAM,OAAQ,CAAA,SAAA;AAAA,MAC5B,WAAa,EAAA,SAAA;AAAA,MACb,WAAA,EAAa,MAAM,OAAQ,CAAA;AAAA,KAC7B;AAAA,IACA;AAAA,GACF;AAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,SAAW,EAAA,OAAA,CAAQ,MAAQ,EAAA,OAAA,EAAQ,MAAO,EAAA,aAAA,EAAc,KAC3D,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,WAAA,EAAa,CAChB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAO,IAAK,CAAA,YAAA;AAAA,MACZ,WAAa,EAAA,OAAA,CAAQ,UAAa,GAAA,KAAA,CAAA,GAAY,IAAK,CAAA;AAAA,KAAA;AAAA,IAElD,iBAAkB,CAAA,YAAY,CAAE,CAAA,MAAA,CAAO,SAAS;AAAA,GAErD,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,aAAa,CAChB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAO,IAAK,CAAA,WAAA;AAAA,MACZ,WAAa,EAAA,OAAA,CAAQ,UAAa,GAAA,KAAA,CAAA,GAAY,IAAK,CAAA;AAAA,KAAA;AAAA,IAElD,iBAAkB,CAAA,YAAY,CAAE,CAAA,MAAA,CAAO,OAAO;AAAA,GAEnD,GACC,QACH,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"BarChartLegend.esm.js","sources":["../../../src/components/BarChart/BarChartLegend.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 { PropsWithChildren } from 'react';\nimport Box from '@material-ui/core/Box';\nimport { useTheme } from '@material-ui/core/styles';\nimport { LegendItem } from '../LegendItem';\nimport { currencyFormatter } from '../../utils/formatters';\nimport { CostInsightsTheme } from '../../types';\nimport { useBarChartLayoutStyles as useStyles } from '../../utils/styles';\nimport { useConfig } from '../../hooks';\n\n/** @public */\nexport type BarChartLegendOptions = {\n previousName: string;\n previousFill: string;\n currentName: string;\n currentFill: string;\n hideMarker?: boolean;\n};\n\n/** @public */\nexport type BarChartLegendProps = {\n costStart: number;\n costEnd: number;\n options?: Partial<BarChartLegendOptions>;\n};\n\n/** @public */\nexport const BarChartLegend = (\n props: PropsWithChildren<BarChartLegendProps>,\n) => {\n const { costStart, costEnd, options = {}, children } = props;\n\n const theme = useTheme<CostInsightsTheme>();\n const classes = useStyles();\n const { baseCurrency } = useConfig();\n\n const data = Object.assign(\n {\n previousName: 'Previous',\n previousFill: theme.palette.lightBlue,\n currentName: 'Current',\n currentFill: theme.palette.darkBlue,\n },\n options,\n );\n\n return (\n <Box className={classes.legend} display=\"flex\" flexDirection=\"row\">\n <Box marginRight={2}>\n <LegendItem\n title={data.previousName}\n markerColor={options.hideMarker ? undefined : data.previousFill}\n >\n {currencyFormatter(baseCurrency).format(costStart)}\n </LegendItem>\n </Box>\n <Box marginRight={2}>\n <LegendItem\n title={data.currentName}\n markerColor={options.hideMarker ? undefined : data.currentFill}\n >\n {currencyFormatter(baseCurrency).format(costEnd)}\n </LegendItem>\n </Box>\n {children}\n </Box>\n );\n};\n"],"names":["useStyles"],"mappings":";;;;;;;;;;;;;;AA0Ca,MAAA,cAAA,GAAiB,CAC5B,KACG,KAAA;AACH,EAAA,MAAM,EAAE,SAAW,EAAA,OAAA,EAAS,UAAU,EAAC,EAAG,UAAa,GAAA,KAAA;AAEvD,EAAA,MAAM,QAAQ,QAA4B,EAAA;AAC1C,EAAA,MAAM,UAAUA,uBAAU,EAAA;AAC1B,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,SAAU,EAAA;AAEnC,EAAA,MAAM,OAAO,MAAO,CAAA,MAAA;AAAA,IAClB;AAAA,MACE,YAAc,EAAA,UAAA;AAAA,MACd,YAAA,EAAc,MAAM,OAAQ,CAAA,SAAA;AAAA,MAC5B,WAAa,EAAA,SAAA;AAAA,MACb,WAAA,EAAa,MAAM,OAAQ,CAAA;AAAA,KAC7B;AAAA,IACA;AAAA,GACF;AAEA,EACE,uBAAA,IAAA,CAAC,OAAI,SAAW,EAAA,OAAA,CAAQ,QAAQ,OAAQ,EAAA,MAAA,EAAO,eAAc,KAC3D,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,GAAA,EAAA,EAAI,aAAa,CAChB,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAO,IAAK,CAAA,YAAA;AAAA,QACZ,WAAa,EAAA,OAAA,CAAQ,UAAa,GAAA,KAAA,CAAA,GAAY,IAAK,CAAA,YAAA;AAAA,QAElD,QAAkB,EAAA,iBAAA,CAAA,YAAY,CAAE,CAAA,MAAA,CAAO,SAAS;AAAA;AAAA,KAErD,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,GAAI,EAAA,EAAA,WAAA,EAAa,CAChB,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAO,IAAK,CAAA,WAAA;AAAA,QACZ,WAAa,EAAA,OAAA,CAAQ,UAAa,GAAA,KAAA,CAAA,GAAY,IAAK,CAAA,WAAA;AAAA,QAElD,QAAkB,EAAA,iBAAA,CAAA,YAAY,CAAE,CAAA,MAAA,CAAO,OAAO;AAAA;AAAA,KAEnD,EAAA,CAAA;AAAA,IACC;AAAA,GACH,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
2
3
  import Paper from '@material-ui/core/Paper';
3
4
  import Slide from '@material-ui/core/Slide';
4
5
  import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';
@@ -32,58 +33,60 @@ const BarChartStepper = ({
32
33
  return prevStep + offset;
33
34
  });
34
35
  };
35
- return /* @__PURE__ */ React.createElement(
36
+ return /* @__PURE__ */ jsxs(
36
37
  Paper,
37
38
  {
38
39
  "data-testid": "bar-chart-stepper",
39
40
  square: true,
40
41
  elevation: 0,
41
- className: classes.paper
42
- },
43
- /* @__PURE__ */ React.createElement(
44
- Slide,
45
- {
46
- direction: "right",
47
- in: !disableScroll && activeStep !== 0,
48
- mountOnEnter: true,
49
- unmountOnExit: true
50
- },
51
- /* @__PURE__ */ React.createElement(
52
- BarChartStepperButton,
53
- {
54
- name: "back",
55
- className: classes.backButton,
56
- onClick: handleBack
57
- },
58
- /* @__PURE__ */ React.createElement(ChevronLeftIcon, null)
59
- )
60
- ),
61
- /* @__PURE__ */ React.createElement(
62
- BarChartSteps,
63
- {
64
- steps: Math.min(10, stepsRemaining),
65
- activeStep: displayedStep,
66
- onClick: handleClick
67
- }
68
- ),
69
- /* @__PURE__ */ React.createElement(
70
- Slide,
71
- {
72
- direction: "left",
73
- in: !disableScroll && activeStep < steps - 1,
74
- mountOnEnter: true,
75
- unmountOnExit: true
76
- },
77
- /* @__PURE__ */ React.createElement(
78
- BarChartStepperButton,
79
- {
80
- name: "next",
81
- className: classes.nextButton,
82
- onClick: handleNext
83
- },
84
- /* @__PURE__ */ React.createElement(ChevronRightIcon, null)
85
- )
86
- )
42
+ className: classes.paper,
43
+ children: [
44
+ /* @__PURE__ */ jsx(
45
+ Slide,
46
+ {
47
+ direction: "right",
48
+ in: !disableScroll && activeStep !== 0,
49
+ mountOnEnter: true,
50
+ unmountOnExit: true,
51
+ children: /* @__PURE__ */ jsx(
52
+ BarChartStepperButton,
53
+ {
54
+ name: "back",
55
+ className: classes.backButton,
56
+ onClick: handleBack,
57
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, {})
58
+ }
59
+ )
60
+ }
61
+ ),
62
+ /* @__PURE__ */ jsx(
63
+ BarChartSteps,
64
+ {
65
+ steps: Math.min(10, stepsRemaining),
66
+ activeStep: displayedStep,
67
+ onClick: handleClick
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsx(
71
+ Slide,
72
+ {
73
+ direction: "left",
74
+ in: !disableScroll && activeStep < steps - 1,
75
+ mountOnEnter: true,
76
+ unmountOnExit: true,
77
+ children: /* @__PURE__ */ jsx(
78
+ BarChartStepperButton,
79
+ {
80
+ name: "next",
81
+ className: classes.nextButton,
82
+ onClick: handleNext,
83
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
84
+ }
85
+ )
86
+ }
87
+ )
88
+ ]
89
+ }
87
90
  );
88
91
  };
89
92
 
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartStepper.esm.js","sources":["../../../src/components/BarChart/BarChartStepper.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 React, { useEffect, useState } from 'react';\nimport Paper from '@material-ui/core/Paper';\nimport Slide from '@material-ui/core/Slide';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport { BarChartStepperButton } from './BarChartStepperButton';\nimport { BarChartSteps } from './BarChartSteps';\nimport { useBarChartStepperStyles } from '../../utils/styles';\n\ntype BarChartStepperProps = {\n disableScroll: boolean;\n steps: number;\n onChange: (activeStep: number) => void;\n};\n\nexport const BarChartStepper = ({\n steps,\n disableScroll,\n onChange,\n}: BarChartStepperProps) => {\n const classes = useBarChartStepperStyles();\n const [activeStep, setActiveStep] = useState(0);\n\n /*\n * This calc determines how many active steps to display in the stepper.\n * If the chart is displaying a large amount of resources,\n * the total dots are truncated to 10. As the user clicks forward,\n * eventually, there might be resources \"left over\" in excess of the ten dot limit.\n * Once the user has reached that threshold, the difference should appear constant\n * as the user clicks through the remaining resources and no extra dots should be displayed.\n */\n\n const diff = steps % 10;\n const stepsRemaining = steps - activeStep <= diff ? diff : steps;\n const displayedStep = activeStep % 10;\n\n useEffect(() => {\n onChange(activeStep);\n }, [activeStep, onChange]);\n\n const handleNext = () => {\n setActiveStep(prevStep => prevStep + 1);\n };\n\n const handleBack = () => {\n setActiveStep(prevStep => prevStep - 1);\n };\n\n const handleClick = (index: number) => {\n setActiveStep(prevStep => {\n const offset = index - (prevStep % 10);\n return prevStep + offset;\n });\n };\n\n return (\n <Paper\n data-testid=\"bar-chart-stepper\"\n square\n elevation={0}\n className={classes.paper}\n >\n <Slide\n direction=\"right\"\n in={!disableScroll && activeStep !== 0}\n mountOnEnter\n unmountOnExit\n >\n <BarChartStepperButton\n name=\"back\"\n className={classes.backButton}\n onClick={handleBack}\n >\n <ChevronLeftIcon />\n </BarChartStepperButton>\n </Slide>\n <BarChartSteps\n steps={Math.min(10, stepsRemaining)}\n activeStep={displayedStep}\n onClick={handleClick}\n />\n <Slide\n direction=\"left\"\n in={!disableScroll && activeStep < steps - 1}\n mountOnEnter\n unmountOnExit\n >\n <BarChartStepperButton\n name=\"next\"\n className={classes.nextButton}\n onClick={handleNext}\n >\n <ChevronRightIcon />\n </BarChartStepperButton>\n </Slide>\n </Paper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AA+BO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,KAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAA4B,KAAA;AAC1B,EAAA,MAAM,UAAU,wBAAyB,EAAA;AACzC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,CAAC,CAAA;AAW9C,EAAA,MAAM,OAAO,KAAQ,GAAA,EAAA;AACrB,EAAA,MAAM,cAAiB,GAAA,KAAA,GAAQ,UAAc,IAAA,IAAA,GAAO,IAAO,GAAA,KAAA;AAC3D,EAAA,MAAM,gBAAgB,UAAa,GAAA,EAAA;AAEnC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,UAAU,CAAA;AAAA,GAClB,EAAA,CAAC,UAAY,EAAA,QAAQ,CAAC,CAAA;AAEzB,EAAA,MAAM,aAAa,MAAM;AACvB,IAAc,aAAA,CAAA,CAAA,QAAA,KAAY,WAAW,CAAC,CAAA;AAAA,GACxC;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAc,aAAA,CAAA,CAAA,QAAA,KAAY,WAAW,CAAC,CAAA;AAAA,GACxC;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAkB,KAAA;AACrC,IAAA,aAAA,CAAc,CAAY,QAAA,KAAA;AACxB,MAAM,MAAA,MAAA,GAAS,QAAS,QAAW,GAAA,EAAA;AACnC,MAAA,OAAO,QAAW,GAAA,MAAA;AAAA,KACnB,CAAA;AAAA,GACH;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,mBAAA;AAAA,MACZ,MAAM,EAAA,IAAA;AAAA,MACN,SAAW,EAAA,CAAA;AAAA,MACX,WAAW,OAAQ,CAAA;AAAA,KAAA;AAAA,oBAEnB,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,OAAA;AAAA,QACV,EAAA,EAAI,CAAC,aAAA,IAAiB,UAAe,KAAA,CAAA;AAAA,QACrC,YAAY,EAAA,IAAA;AAAA,QACZ,aAAa,EAAA;AAAA,OAAA;AAAA,sBAEb,KAAA,CAAA,aAAA;AAAA,QAAC,qBAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,WAAW,OAAQ,CAAA,UAAA;AAAA,UACnB,OAAS,EAAA;AAAA,SAAA;AAAA,4CAER,eAAgB,EAAA,IAAA;AAAA;AACnB,KACF;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,cAAc,CAAA;AAAA,QAClC,UAAY,EAAA,aAAA;AAAA,QACZ,OAAS,EAAA;AAAA;AAAA,KACX;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,MAAA;AAAA,QACV,EAAI,EAAA,CAAC,aAAiB,IAAA,UAAA,GAAa,KAAQ,GAAA,CAAA;AAAA,QAC3C,YAAY,EAAA,IAAA;AAAA,QACZ,aAAa,EAAA;AAAA,OAAA;AAAA,sBAEb,KAAA,CAAA,aAAA;AAAA,QAAC,qBAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,WAAW,OAAQ,CAAA,UAAA;AAAA,UACnB,OAAS,EAAA;AAAA,SAAA;AAAA,4CAER,gBAAiB,EAAA,IAAA;AAAA;AACpB;AACF,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"BarChartStepper.esm.js","sources":["../../../src/components/BarChart/BarChartStepper.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 { useEffect, useState } from 'react';\nimport Paper from '@material-ui/core/Paper';\nimport Slide from '@material-ui/core/Slide';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport { BarChartStepperButton } from './BarChartStepperButton';\nimport { BarChartSteps } from './BarChartSteps';\nimport { useBarChartStepperStyles } from '../../utils/styles';\n\ntype BarChartStepperProps = {\n disableScroll: boolean;\n steps: number;\n onChange: (activeStep: number) => void;\n};\n\nexport const BarChartStepper = ({\n steps,\n disableScroll,\n onChange,\n}: BarChartStepperProps) => {\n const classes = useBarChartStepperStyles();\n const [activeStep, setActiveStep] = useState(0);\n\n /*\n * This calc determines how many active steps to display in the stepper.\n * If the chart is displaying a large amount of resources,\n * the total dots are truncated to 10. As the user clicks forward,\n * eventually, there might be resources \"left over\" in excess of the ten dot limit.\n * Once the user has reached that threshold, the difference should appear constant\n * as the user clicks through the remaining resources and no extra dots should be displayed.\n */\n\n const diff = steps % 10;\n const stepsRemaining = steps - activeStep <= diff ? diff : steps;\n const displayedStep = activeStep % 10;\n\n useEffect(() => {\n onChange(activeStep);\n }, [activeStep, onChange]);\n\n const handleNext = () => {\n setActiveStep(prevStep => prevStep + 1);\n };\n\n const handleBack = () => {\n setActiveStep(prevStep => prevStep - 1);\n };\n\n const handleClick = (index: number) => {\n setActiveStep(prevStep => {\n const offset = index - (prevStep % 10);\n return prevStep + offset;\n });\n };\n\n return (\n <Paper\n data-testid=\"bar-chart-stepper\"\n square\n elevation={0}\n className={classes.paper}\n >\n <Slide\n direction=\"right\"\n in={!disableScroll && activeStep !== 0}\n mountOnEnter\n unmountOnExit\n >\n <BarChartStepperButton\n name=\"back\"\n className={classes.backButton}\n onClick={handleBack}\n >\n <ChevronLeftIcon />\n </BarChartStepperButton>\n </Slide>\n <BarChartSteps\n steps={Math.min(10, stepsRemaining)}\n activeStep={displayedStep}\n onClick={handleClick}\n />\n <Slide\n direction=\"left\"\n in={!disableScroll && activeStep < steps - 1}\n mountOnEnter\n unmountOnExit\n >\n <BarChartStepperButton\n name=\"next\"\n className={classes.nextButton}\n onClick={handleNext}\n >\n <ChevronRightIcon />\n </BarChartStepperButton>\n </Slide>\n </Paper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA+BO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,KAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAA4B,KAAA;AAC1B,EAAA,MAAM,UAAU,wBAAyB,EAAA;AACzC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,CAAC,CAAA;AAW9C,EAAA,MAAM,OAAO,KAAQ,GAAA,EAAA;AACrB,EAAA,MAAM,cAAiB,GAAA,KAAA,GAAQ,UAAc,IAAA,IAAA,GAAO,IAAO,GAAA,KAAA;AAC3D,EAAA,MAAM,gBAAgB,UAAa,GAAA,EAAA;AAEnC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,UAAU,CAAA;AAAA,GAClB,EAAA,CAAC,UAAY,EAAA,QAAQ,CAAC,CAAA;AAEzB,EAAA,MAAM,aAAa,MAAM;AACvB,IAAc,aAAA,CAAA,CAAA,QAAA,KAAY,WAAW,CAAC,CAAA;AAAA,GACxC;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAc,aAAA,CAAA,CAAA,QAAA,KAAY,WAAW,CAAC,CAAA;AAAA,GACxC;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAkB,KAAA;AACrC,IAAA,aAAA,CAAc,CAAY,QAAA,KAAA;AACxB,MAAM,MAAA,MAAA,GAAS,QAAS,QAAW,GAAA,EAAA;AACnC,MAAA,OAAO,QAAW,GAAA,MAAA;AAAA,KACnB,CAAA;AAAA,GACH;AAEA,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,mBAAA;AAAA,MACZ,MAAM,EAAA,IAAA;AAAA,MACN,SAAW,EAAA,CAAA;AAAA,MACX,WAAW,OAAQ,CAAA,KAAA;AAAA,MAEnB,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,OAAA;AAAA,YACV,EAAA,EAAI,CAAC,aAAA,IAAiB,UAAe,KAAA,CAAA;AAAA,YACrC,YAAY,EAAA,IAAA;AAAA,YACZ,aAAa,EAAA,IAAA;AAAA,YAEb,QAAA,kBAAA,GAAA;AAAA,cAAC,qBAAA;AAAA,cAAA;AAAA,gBACC,IAAK,EAAA,MAAA;AAAA,gBACL,WAAW,OAAQ,CAAA,UAAA;AAAA,gBACnB,OAAS,EAAA,UAAA;AAAA,gBAET,8BAAC,eAAgB,EAAA,EAAA;AAAA;AAAA;AACnB;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,KAAO,EAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,cAAc,CAAA;AAAA,YAClC,UAAY,EAAA,aAAA;AAAA,YACZ,OAAS,EAAA;AAAA;AAAA,SACX;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,MAAA;AAAA,YACV,EAAI,EAAA,CAAC,aAAiB,IAAA,UAAA,GAAa,KAAQ,GAAA,CAAA;AAAA,YAC3C,YAAY,EAAA,IAAA;AAAA,YACZ,aAAa,EAAA,IAAA;AAAA,YAEb,QAAA,kBAAA,GAAA;AAAA,cAAC,qBAAA;AAAA,cAAA;AAAA,gBACC,IAAK,EAAA,MAAA;AAAA,gBACL,WAAW,OAAQ,CAAA,UAAA;AAAA,gBACnB,OAAS,EAAA,UAAA;AAAA,gBAET,8BAAC,gBAAiB,EAAA,EAAA;AAAA;AAAA;AACpB;AAAA;AACF;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,4 +1,5 @@
1
- import React, { forwardRef } from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
2
3
  import ButtonBase from '@material-ui/core/ButtonBase';
3
4
  import { useBarChartStepperButtonStyles } from '../../utils/styles.esm.js';
4
5
 
@@ -9,16 +10,16 @@ const BarChartStepperButton = forwardRef(
9
10
  ...buttonBaseProps
10
11
  }, ref) => {
11
12
  const classes = useBarChartStepperButtonStyles();
12
- return /* @__PURE__ */ React.createElement(
13
+ return /* @__PURE__ */ jsx(
13
14
  ButtonBase,
14
15
  {
15
16
  ref,
16
17
  classes,
17
18
  disableRipple: true,
18
19
  "data-testid": `bar-chart-stepper-button-${name}`,
19
- ...buttonBaseProps
20
- },
21
- children
20
+ ...buttonBaseProps,
21
+ children
22
+ }
22
23
  );
23
24
  }
24
25
  );
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartStepperButton.esm.js","sources":["../../../src/components/BarChart/BarChartStepperButton.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 React, { forwardRef, PropsWithChildren, Ref } from 'react';\nimport ButtonBase, { ButtonBaseProps } from '@material-ui/core/ButtonBase';\nimport { useBarChartStepperButtonStyles as useStyles } from '../../utils/styles';\n\ninterface BarChartStepperButtonProps extends ButtonBaseProps {\n name: string;\n}\n\nexport const BarChartStepperButton = forwardRef(\n (\n {\n name,\n children,\n ...buttonBaseProps\n }: PropsWithChildren<BarChartStepperButtonProps>,\n ref: Ref<HTMLButtonElement>,\n ) => {\n const classes = useStyles();\n return (\n <ButtonBase\n ref={ref}\n classes={classes}\n disableRipple\n data-testid={`bar-chart-stepper-button-${name}`}\n {...buttonBaseProps}\n >\n {children}\n </ButtonBase>\n );\n },\n);\n"],"names":["useStyles"],"mappings":";;;;AAwBO,MAAM,qBAAwB,GAAA,UAAA;AAAA,EACnC,CACE;AAAA,IACE,IAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,UAAUA,8BAAU,EAAA;AAC1B,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA;AAAA,QACA,aAAa,EAAA,IAAA;AAAA,QACb,aAAA,EAAa,4BAA4B,IAAI,CAAA,CAAA;AAAA,QAC5C,GAAG;AAAA,OAAA;AAAA,MAEH;AAAA,KACH;AAAA;AAGN;;;;"}
1
+ {"version":3,"file":"BarChartStepperButton.esm.js","sources":["../../../src/components/BarChart/BarChartStepperButton.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 { forwardRef, PropsWithChildren, Ref } from 'react';\nimport ButtonBase, { ButtonBaseProps } from '@material-ui/core/ButtonBase';\nimport { useBarChartStepperButtonStyles as useStyles } from '../../utils/styles';\n\ninterface BarChartStepperButtonProps extends ButtonBaseProps {\n name: string;\n}\n\nexport const BarChartStepperButton = forwardRef(\n (\n {\n name,\n children,\n ...buttonBaseProps\n }: PropsWithChildren<BarChartStepperButtonProps>,\n ref: Ref<HTMLButtonElement>,\n ) => {\n const classes = useStyles();\n return (\n <ButtonBase\n ref={ref}\n classes={classes}\n disableRipple\n data-testid={`bar-chart-stepper-button-${name}`}\n {...buttonBaseProps}\n >\n {children}\n </ButtonBase>\n );\n },\n);\n"],"names":["useStyles"],"mappings":";;;;;AAwBO,MAAM,qBAAwB,GAAA,UAAA;AAAA,EACnC,CACE;AAAA,IACE,IAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,UAAUA,8BAAU,EAAA;AAC1B,IACE,uBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA;AAAA,QACA,aAAa,EAAA,IAAA;AAAA,QACb,aAAA,EAAa,4BAA4B,IAAI,CAAA,CAAA;AAAA,QAC5C,GAAG,eAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import ButtonBase from '@material-ui/core/ButtonBase';
3
3
  import { useBarChartStepperStyles } from '../../utils/styles.esm.js';
4
4
 
@@ -12,13 +12,13 @@ const BarChartSteps = ({
12
12
  event.preventDefault();
13
13
  onClick(index);
14
14
  };
15
- return /* @__PURE__ */ React.createElement("div", { className: classes.steps }, [...new Array(steps)].map((_, index) => /* @__PURE__ */ React.createElement(ButtonBase, { key: index, centerRipple: true, onClick: handleOnClick(index) }, /* @__PURE__ */ React.createElement(
15
+ return /* @__PURE__ */ jsx("div", { className: classes.steps, children: [...new Array(steps)].map((_, index) => /* @__PURE__ */ jsx(ButtonBase, { centerRipple: true, onClick: handleOnClick(index), children: /* @__PURE__ */ jsx(
16
16
  "div",
17
17
  {
18
18
  "data-testid": "bar-chart-step",
19
19
  className: `${classes.step} ${index === activeStep ? classes.stepActive : ""}`
20
20
  }
21
- ))));
21
+ ) }, index)) });
22
22
  };
23
23
 
24
24
  export { BarChartSteps };
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartSteps.esm.js","sources":["../../../src/components/BarChart/BarChartSteps.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 React from 'react';\nimport ButtonBase from '@material-ui/core/ButtonBase';\nimport { useBarChartStepperStyles as useStyles } from '../../utils/styles';\n\nexport type BarChartStepsProps = {\n steps: number;\n activeStep: number;\n onClick: (index: number) => void;\n};\n\nexport const BarChartSteps = ({\n steps,\n activeStep,\n onClick,\n}: BarChartStepsProps) => {\n const classes = useStyles();\n const handleOnClick =\n (index: number) =>\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n onClick(index);\n };\n\n return (\n <div className={classes.steps}>\n {[...new Array(steps)].map((_, index) => (\n <ButtonBase key={index} centerRipple onClick={handleOnClick(index)}>\n <div\n data-testid=\"bar-chart-step\"\n className={`${classes.step} ${\n index === activeStep ? classes.stepActive : ''\n }`}\n />\n </ButtonBase>\n ))}\n </div>\n );\n};\n"],"names":["useStyles"],"mappings":";;;;AA0BO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAA0B,KAAA;AACxB,EAAA,MAAM,UAAUA,wBAAU,EAAA;AAC1B,EAAA,MAAM,aACJ,GAAA,CAAC,KACD,KAAA,CAAC,KAA2D,KAAA;AAC1D,IAAA,KAAA,CAAM,cAAe,EAAA;AACrB,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GACf;AAEF,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,OAAQ,CAAA,KAAA,EAAA,EACrB,CAAC,GAAG,IAAI,KAAM,CAAA,KAAK,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,EAAG,KAC7B,qBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,GAAA,EAAK,KAAO,EAAA,YAAA,EAAY,IAAC,EAAA,OAAA,EAAS,aAAc,CAAA,KAAK,CAC/D,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,gBAAA;AAAA,MACZ,SAAA,EAAW,GAAG,OAAQ,CAAA,IAAI,IACxB,KAAU,KAAA,UAAA,GAAa,OAAQ,CAAA,UAAA,GAAa,EAC9C,CAAA;AAAA;AAAA,GAEJ,CACD,CACH,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"BarChartSteps.esm.js","sources":["../../../src/components/BarChart/BarChartSteps.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 * as React from 'react';\nimport ButtonBase from '@material-ui/core/ButtonBase';\nimport { useBarChartStepperStyles as useStyles } from '../../utils/styles';\n\nexport type BarChartStepsProps = {\n steps: number;\n activeStep: number;\n onClick: (index: number) => void;\n};\n\nexport const BarChartSteps = ({\n steps,\n activeStep,\n onClick,\n}: BarChartStepsProps) => {\n const classes = useStyles();\n const handleOnClick =\n (index: number) =>\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n onClick(index);\n };\n\n return (\n <div className={classes.steps}>\n {[...new Array(steps)].map((_, index) => (\n <ButtonBase key={index} centerRipple onClick={handleOnClick(index)}>\n <div\n data-testid=\"bar-chart-step\"\n className={`${classes.step} ${\n index === activeStep ? classes.stepActive : ''\n }`}\n />\n </ButtonBase>\n ))}\n </div>\n );\n};\n"],"names":["useStyles"],"mappings":";;;;AA0BO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAA0B,KAAA;AACxB,EAAA,MAAM,UAAUA,wBAAU,EAAA;AAC1B,EAAA,MAAM,aACJ,GAAA,CAAC,KACD,KAAA,CAAC,KAA2D,KAAA;AAC1D,IAAA,KAAA,CAAM,cAAe,EAAA;AACrB,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GACf;AAEF,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,OAAA,CAAQ,OACrB,QAAC,EAAA,CAAA,GAAG,IAAI,KAAA,CAAM,KAAK,CAAC,EAAE,GAAI,CAAA,CAAC,CAAG,EAAA,KAAA,qBAC5B,GAAA,CAAA,UAAA,EAAA,EAAuB,cAAY,IAAC,EAAA,OAAA,EAAS,aAAc,CAAA,KAAK,CAC/D,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,gBAAA;AAAA,MACZ,SAAA,EAAW,GAAG,OAAQ,CAAA,IAAI,IACxB,KAAU,KAAA,UAAA,GAAa,OAAQ,CAAA,UAAA,GAAa,EAC9C,CAAA;AAAA;AAAA,GACF,EAAA,EANe,KAOjB,CACD,CACH,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { BarChartLabel } from './BarChartLabel.esm.js';
3
3
 
4
4
  const BarChartTick = ({
@@ -12,16 +12,16 @@ const BarChartTick = ({
12
12
  }) => {
13
13
  const gutterWidth = 5;
14
14
  const labelWidth = width / visibleTicksCount - gutterWidth * 2;
15
- return /* @__PURE__ */ React.createElement(
15
+ return /* @__PURE__ */ jsx(
16
16
  BarChartLabel,
17
17
  {
18
18
  x,
19
19
  y,
20
20
  height,
21
21
  width: labelWidth,
22
- details
23
- },
24
- !payload.value ? "Unlabeled" : payload.value
22
+ details,
23
+ children: !payload.value ? "Unlabeled" : payload.value
24
+ }
25
25
  );
26
26
  };
27
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"BarChartTick.esm.js","sources":["../../../src/components/BarChart/BarChartTick.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 React from 'react';\nimport { BarChartLabel } from './BarChartLabel';\n\ntype BarChartTickProps = {\n x: number;\n y: number;\n height: number;\n width: number;\n payload: {\n value: any;\n };\n visibleTicksCount: number;\n details?: JSX.Element;\n};\n\nexport const BarChartTick = ({\n x,\n y,\n height,\n width,\n payload,\n visibleTicksCount,\n details,\n}: BarChartTickProps) => {\n const gutterWidth = 5;\n const labelWidth = width / visibleTicksCount - gutterWidth * 2;\n return (\n <BarChartLabel\n x={x}\n y={y}\n height={height}\n width={labelWidth}\n details={details}\n >\n {!payload.value ? 'Unlabeled' : payload.value}\n </BarChartLabel>\n );\n};\n"],"names":[],"mappings":";;;AA+BO,MAAM,eAAe,CAAC;AAAA,EAC3B,CAAA;AAAA,EACA,CAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,MAAM,WAAc,GAAA,CAAA;AACpB,EAAM,MAAA,UAAA,GAAa,KAAQ,GAAA,iBAAA,GAAoB,WAAc,GAAA,CAAA;AAC7D,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,CAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MACP;AAAA,KAAA;AAAA,IAEC,CAAC,OAAA,CAAQ,KAAQ,GAAA,WAAA,GAAc,OAAQ,CAAA;AAAA,GAC1C;AAEJ;;;;"}
1
+ {"version":3,"file":"BarChartTick.esm.js","sources":["../../../src/components/BarChart/BarChartTick.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 { BarChartLabel } from './BarChartLabel';\n\ntype BarChartTickProps = {\n x: number;\n y: number;\n height: number;\n width: number;\n payload: {\n value: any;\n };\n visibleTicksCount: number;\n details?: JSX.Element;\n};\n\nexport const BarChartTick = ({\n x,\n y,\n height,\n width,\n payload,\n visibleTicksCount,\n details,\n}: BarChartTickProps) => {\n const gutterWidth = 5;\n const labelWidth = width / visibleTicksCount - gutterWidth * 2;\n return (\n <BarChartLabel\n x={x}\n y={y}\n height={height}\n width={labelWidth}\n details={details}\n >\n {!payload.value ? 'Unlabeled' : payload.value}\n </BarChartLabel>\n );\n};\n"],"names":[],"mappings":";;;AA8BO,MAAM,eAAe,CAAC;AAAA,EAC3B,CAAA;AAAA,EACA,CAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,MAAM,WAAc,GAAA,CAAA;AACpB,EAAM,MAAA,UAAA,GAAa,KAAQ,GAAA,iBAAA,GAAoB,WAAc,GAAA,CAAA;AAC7D,EACE,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,CAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MACP,OAAA;AAAA,MAEC,QAAC,EAAA,CAAA,OAAA,CAAQ,KAAQ,GAAA,WAAA,GAAc,OAAQ,CAAA;AAAA;AAAA,GAC1C;AAEJ;;;;"}