@backstage-community/plugin-cost-insights 0.12.25 → 0.12.26

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 (230) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/alerts/ProjectGrowthAlert.esm.js +24 -0
  3. package/dist/alerts/ProjectGrowthAlert.esm.js.map +1 -0
  4. package/dist/alerts/UnlabeledDataflowAlert.esm.js +25 -0
  5. package/dist/alerts/UnlabeledDataflowAlert.esm.js.map +1 -0
  6. package/dist/api/CostInsightsApi.esm.js +8 -0
  7. package/dist/api/CostInsightsApi.esm.js.map +1 -0
  8. package/dist/components/ActionItems/ActionItemCard.esm.js +46 -0
  9. package/dist/components/ActionItems/ActionItemCard.esm.js.map +1 -0
  10. package/dist/components/ActionItems/ActionItems.esm.js +90 -0
  11. package/dist/components/ActionItems/ActionItems.esm.js.map +1 -0
  12. package/dist/components/AlertInsights/AlertDialog.esm.js +123 -0
  13. package/dist/components/AlertInsights/AlertDialog.esm.js.map +1 -0
  14. package/dist/components/AlertInsights/AlertInsights.esm.js +157 -0
  15. package/dist/components/AlertInsights/AlertInsights.esm.js.map +1 -0
  16. package/dist/components/AlertInsights/AlertInsightsHeader.esm.js +17 -0
  17. package/dist/components/AlertInsights/AlertInsightsHeader.esm.js.map +1 -0
  18. package/dist/components/AlertInsights/AlertInsightsSection.esm.js +57 -0
  19. package/dist/components/AlertInsights/AlertInsightsSection.esm.js.map +1 -0
  20. package/dist/components/AlertInsights/AlertInsightsSectionHeader.esm.js +30 -0
  21. package/dist/components/AlertInsights/AlertInsightsSectionHeader.esm.js.map +1 -0
  22. package/dist/components/AlertInsights/AlertStatusSummary.esm.js +93 -0
  23. package/dist/components/AlertInsights/AlertStatusSummary.esm.js.map +1 -0
  24. package/dist/components/AlertInsights/AlertStatusSummaryButton.esm.js +35 -0
  25. package/dist/components/AlertInsights/AlertStatusSummaryButton.esm.js.map +1 -0
  26. package/dist/components/AlertInstructionsLayout/AlertInstructionsLayout.esm.js +47 -0
  27. package/dist/components/AlertInstructionsLayout/AlertInstructionsLayout.esm.js.map +1 -0
  28. package/dist/components/BarChart/BarChart.esm.js +167 -0
  29. package/dist/components/BarChart/BarChart.esm.js.map +1 -0
  30. package/dist/components/BarChart/BarChartLabel.esm.js +31 -0
  31. package/dist/components/BarChart/BarChartLabel.esm.js.map +1 -0
  32. package/dist/components/BarChart/BarChartLegend.esm.js +47 -0
  33. package/dist/components/BarChart/BarChartLegend.esm.js.map +1 -0
  34. package/dist/components/BarChart/BarChartStepper.esm.js +91 -0
  35. package/dist/components/BarChart/BarChartStepper.esm.js.map +1 -0
  36. package/dist/components/BarChart/BarChartStepperButton.esm.js +27 -0
  37. package/dist/components/BarChart/BarChartStepperButton.esm.js.map +1 -0
  38. package/dist/components/BarChart/BarChartSteps.esm.js +25 -0
  39. package/dist/components/BarChart/BarChartSteps.esm.js.map +1 -0
  40. package/dist/components/BarChart/BarChartTick.esm.js +29 -0
  41. package/dist/components/BarChart/BarChartTick.esm.js.map +1 -0
  42. package/dist/components/BarChart/BarChartTooltip.esm.js +30 -0
  43. package/dist/components/BarChart/BarChartTooltip.esm.js.map +1 -0
  44. package/dist/components/BarChart/BarChartTooltipItem.esm.js +24 -0
  45. package/dist/components/BarChart/BarChartTooltipItem.esm.js.map +1 -0
  46. package/dist/components/CopyUrlToClipboard/CopyUrlToClipboard.esm.js +44 -0
  47. package/dist/components/CopyUrlToClipboard/CopyUrlToClipboard.esm.js.map +1 -0
  48. package/dist/components/CostGrowth/CostGrowth.esm.js +55 -0
  49. package/dist/components/CostGrowth/CostGrowth.esm.js.map +1 -0
  50. package/dist/components/CostGrowth/CostGrowthIndicator.esm.js +31 -0
  51. package/dist/components/CostGrowth/CostGrowthIndicator.esm.js.map +1 -0
  52. package/dist/components/CostInsightsHeader/CostInsightsHeader.esm.js +57 -0
  53. package/dist/components/CostInsightsHeader/CostInsightsHeader.esm.js.map +1 -0
  54. package/dist/components/CostInsightsLayout/CostInsightsLayout.esm.js +35 -0
  55. package/dist/components/CostInsightsLayout/CostInsightsLayout.esm.js.map +1 -0
  56. package/dist/components/CostInsightsNavigation/CostInsightsNavigation.esm.js +87 -0
  57. package/dist/components/CostInsightsNavigation/CostInsightsNavigation.esm.js.map +1 -0
  58. package/dist/components/CostInsightsPage/CostInsightsPage.esm.js +229 -0
  59. package/dist/components/CostInsightsPage/CostInsightsPage.esm.js.map +1 -0
  60. package/dist/components/CostInsightsPage/CostInsightsPageRoot.esm.js +15 -0
  61. package/dist/components/CostInsightsPage/CostInsightsPageRoot.esm.js.map +1 -0
  62. package/dist/components/CostInsightsPage/CostInsightsThemeProvider.esm.js +24 -0
  63. package/dist/components/CostInsightsPage/CostInsightsThemeProvider.esm.js.map +1 -0
  64. package/dist/components/CostInsightsPage/index.esm.js +2 -0
  65. package/dist/components/CostInsightsPage/index.esm.js.map +1 -0
  66. package/dist/components/CostInsightsPage/selector.esm.js +15 -0
  67. package/dist/components/CostInsightsPage/selector.esm.js.map +1 -0
  68. package/dist/components/CostInsightsTabs/CostInsightsTabs.esm.js +89 -0
  69. package/dist/components/CostInsightsTabs/CostInsightsTabs.esm.js.map +1 -0
  70. package/dist/components/CostInsightsTabs/selector.esm.js +17 -0
  71. package/dist/components/CostInsightsTabs/selector.esm.js.map +1 -0
  72. package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js +196 -0
  73. package/dist/components/CostOverviewCard/CostOverviewBreakdownChart.esm.js.map +1 -0
  74. package/dist/components/CostOverviewCard/CostOverviewCard.esm.js +99 -0
  75. package/dist/components/CostOverviewCard/CostOverviewCard.esm.js.map +1 -0
  76. package/dist/components/CostOverviewCard/CostOverviewChart.esm.js +157 -0
  77. package/dist/components/CostOverviewCard/CostOverviewChart.esm.js.map +1 -0
  78. package/dist/components/CostOverviewCard/CostOverviewHeader.esm.js +25 -0
  79. package/dist/components/CostOverviewCard/CostOverviewHeader.esm.js.map +1 -0
  80. package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js +54 -0
  81. package/dist/components/CostOverviewCard/CostOverviewLegend.esm.js.map +1 -0
  82. package/dist/components/CostOverviewCard/selector.esm.js +22 -0
  83. package/dist/components/CostOverviewCard/selector.esm.js.map +1 -0
  84. package/dist/components/CurrencySelect/CurrencySelect.esm.js +52 -0
  85. package/dist/components/CurrencySelect/CurrencySelect.esm.js.map +1 -0
  86. package/dist/{esm/index-BPzWHt3A.esm.js → components/EntityCosts/EntityCosts.esm.js} +14 -80
  87. package/dist/{esm/index-BPzWHt3A.esm.js.map → components/EntityCosts/EntityCosts.esm.js.map} +1 -1
  88. package/dist/components/EntityCosts/index.esm.js +2 -0
  89. package/dist/components/EntityCosts/index.esm.js.map +1 -0
  90. package/dist/{esm/index-BA6m_qFS.esm.js → components/LabelDataflowInstructionsPage/LabelDataflowInstructionsPage.esm.js} +2 -79
  91. package/dist/components/LabelDataflowInstructionsPage/LabelDataflowInstructionsPage.esm.js.map +1 -0
  92. package/dist/components/LabelDataflowInstructionsPage/index.esm.js +2 -0
  93. package/dist/components/LabelDataflowInstructionsPage/index.esm.js.map +1 -0
  94. package/dist/components/LegendItem/LegendItem.esm.js +44 -0
  95. package/dist/components/LegendItem/LegendItem.esm.js.map +1 -0
  96. package/dist/components/MetricSelect/MetricSelect.esm.js +37 -0
  97. package/dist/components/MetricSelect/MetricSelect.esm.js.map +1 -0
  98. package/dist/components/PeriodSelect/PeriodSelect.esm.js +72 -0
  99. package/dist/components/PeriodSelect/PeriodSelect.esm.js.map +1 -0
  100. package/dist/components/ProductInsights/ProductInsights.esm.js +98 -0
  101. package/dist/components/ProductInsights/ProductInsights.esm.js.map +1 -0
  102. package/dist/components/ProductInsightsCard/ProductEntityDialog.esm.js +42 -0
  103. package/dist/components/ProductInsightsCard/ProductEntityDialog.esm.js.map +1 -0
  104. package/dist/components/ProductInsightsCard/ProductEntityTable.esm.js +139 -0
  105. package/dist/components/ProductInsightsCard/ProductEntityTable.esm.js.map +1 -0
  106. package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js +83 -0
  107. package/dist/components/ProductInsightsCard/ProductInsightsCard.esm.js.map +1 -0
  108. package/dist/components/ProductInsightsCard/ProductInsightsCardList.esm.js +34 -0
  109. package/dist/components/ProductInsightsCard/ProductInsightsCardList.esm.js.map +1 -0
  110. package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js +148 -0
  111. package/dist/components/ProductInsightsCard/ProductInsightsChart.esm.js.map +1 -0
  112. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertCard.esm.js +20 -0
  113. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertCard.esm.js.map +1 -0
  114. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertChart.esm.js +46 -0
  115. package/dist/components/ProjectGrowthAlertCard/ProjectGrowthAlertChart.esm.js.map +1 -0
  116. package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js +111 -0
  117. package/dist/components/ProjectGrowthInstructionsPage/ProjectGrowthInstructionsPage.esm.js.map +1 -0
  118. package/dist/components/ProjectGrowthInstructionsPage/index.esm.js +2 -0
  119. package/dist/components/ProjectGrowthInstructionsPage/index.esm.js.map +1 -0
  120. package/dist/components/ProjectSelect/ProjectSelect.esm.js +47 -0
  121. package/dist/components/ProjectSelect/ProjectSelect.esm.js.map +1 -0
  122. package/dist/components/UnlabeledDataflowAlertCard/UnlabeledDataflowAlertCard.esm.js +41 -0
  123. package/dist/components/UnlabeledDataflowAlertCard/UnlabeledDataflowAlertCard.esm.js.map +1 -0
  124. package/dist/components/WhyCostsMatter/WhyCostsMatter.esm.js +21 -0
  125. package/dist/components/WhyCostsMatter/WhyCostsMatter.esm.js.map +1 -0
  126. package/dist/example/alerts/KubernetesMigrationAlert.esm.js +86 -0
  127. package/dist/example/alerts/KubernetesMigrationAlert.esm.js.map +1 -0
  128. package/dist/example/client.esm.js +194 -0
  129. package/dist/example/client.esm.js.map +1 -0
  130. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationAlertCard.esm.js +33 -0
  131. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationAlertCard.esm.js.map +1 -0
  132. package/dist/{esm/index-BTIHr4n_.esm.js → example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js} +69 -48
  133. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChart.esm.js.map +1 -0
  134. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js +107 -0
  135. package/dist/example/components/KubernetesMigrationAlertCard/KubernetesMigrationBarChartLegend.esm.js.map +1 -0
  136. package/dist/example/forms/KubernetesMigrationDismissForm.esm.js +57 -0
  137. package/dist/example/forms/KubernetesMigrationDismissForm.esm.js.map +1 -0
  138. package/dist/forms/AlertAcceptForm.esm.js +27 -0
  139. package/dist/forms/AlertAcceptForm.esm.js.map +1 -0
  140. package/dist/forms/AlertDismissForm.esm.js +100 -0
  141. package/dist/forms/AlertDismissForm.esm.js.map +1 -0
  142. package/dist/forms/AlertSnoozeForm.esm.js +52 -0
  143. package/dist/forms/AlertSnoozeForm.esm.js.map +1 -0
  144. package/dist/hooks/useConfig.esm.js +153 -0
  145. package/dist/hooks/useConfig.esm.js.map +1 -0
  146. package/dist/hooks/useCurrency.esm.js +26 -0
  147. package/dist/hooks/useCurrency.esm.js.map +1 -0
  148. package/dist/hooks/useFilters.esm.js +67 -0
  149. package/dist/hooks/useFilters.esm.js.map +1 -0
  150. package/dist/hooks/useGroups.esm.js +55 -0
  151. package/dist/hooks/useGroups.esm.js.map +1 -0
  152. package/dist/hooks/useLastCompleteBillingDate.esm.js +65 -0
  153. package/dist/hooks/useLastCompleteBillingDate.esm.js.map +1 -0
  154. package/dist/hooks/useLoading.esm.js +54 -0
  155. package/dist/hooks/useLoading.esm.js.map +1 -0
  156. package/dist/hooks/useScroll.esm.js +24 -0
  157. package/dist/hooks/useScroll.esm.js.map +1 -0
  158. package/dist/index.esm.js +37 -22
  159. package/dist/index.esm.js.map +1 -1
  160. package/dist/plugin.esm.js +55 -0
  161. package/dist/plugin.esm.js.map +1 -0
  162. package/dist/testUtils/filters.esm.js +8 -0
  163. package/dist/testUtils/filters.esm.js.map +1 -0
  164. package/dist/testUtils/loading.esm.js +14 -0
  165. package/dist/testUtils/loading.esm.js.map +1 -0
  166. package/dist/testUtils/mockData.esm.js +485 -0
  167. package/dist/testUtils/mockData.esm.js.map +1 -0
  168. package/dist/testUtils/products.esm.js +49 -0
  169. package/dist/testUtils/products.esm.js.map +1 -0
  170. package/dist/testUtils/providers.esm.js +41 -0
  171. package/dist/testUtils/providers.esm.js.map +1 -0
  172. package/dist/testUtils/testUtils.esm.js +142 -0
  173. package/dist/testUtils/testUtils.esm.js.map +1 -0
  174. package/dist/types/Alert.esm.js +66 -0
  175. package/dist/types/Alert.esm.js.map +1 -0
  176. package/dist/types/ChangeStatistic.esm.js +15 -0
  177. package/dist/types/ChangeStatistic.esm.js.map +1 -0
  178. package/dist/types/CurrencyType.esm.js +10 -0
  179. package/dist/types/CurrencyType.esm.js.map +1 -0
  180. package/dist/types/DateFormat.esm.js +4 -0
  181. package/dist/types/DateFormat.esm.js.map +1 -0
  182. package/dist/types/Duration.esm.js +10 -0
  183. package/dist/types/Duration.esm.js.map +1 -0
  184. package/dist/types/Icon.esm.js +12 -0
  185. package/dist/types/Icon.esm.js.map +1 -0
  186. package/dist/utils/alerts.esm.js +72 -0
  187. package/dist/utils/alerts.esm.js.map +1 -0
  188. package/dist/utils/assert.esm.js +29 -0
  189. package/dist/utils/assert.esm.js.map +1 -0
  190. package/dist/utils/change.esm.js +58 -0
  191. package/dist/utils/change.esm.js.map +1 -0
  192. package/dist/utils/charts.esm.js +9 -0
  193. package/dist/utils/charts.esm.js.map +1 -0
  194. package/dist/utils/config.esm.js +19 -0
  195. package/dist/utils/config.esm.js.map +1 -0
  196. package/dist/utils/currency.esm.js +56 -0
  197. package/dist/utils/currency.esm.js.map +1 -0
  198. package/dist/utils/duration.esm.js +55 -0
  199. package/dist/utils/duration.esm.js.map +1 -0
  200. package/dist/utils/filters.esm.js +14 -0
  201. package/dist/utils/filters.esm.js.map +1 -0
  202. package/dist/utils/formatters.esm.js +103 -0
  203. package/dist/utils/formatters.esm.js.map +1 -0
  204. package/dist/utils/grammar.esm.js +14 -0
  205. package/dist/utils/grammar.esm.js.map +1 -0
  206. package/dist/utils/graphs.esm.js +48 -0
  207. package/dist/utils/graphs.esm.js.map +1 -0
  208. package/dist/utils/history.esm.js +32 -0
  209. package/dist/utils/history.esm.js.map +1 -0
  210. package/dist/utils/loading.esm.js +51 -0
  211. package/dist/utils/loading.esm.js.map +1 -0
  212. package/dist/utils/navigation.esm.js +56 -0
  213. package/dist/utils/navigation.esm.js.map +1 -0
  214. package/dist/utils/scroll.esm.js +38 -0
  215. package/dist/utils/scroll.esm.js.map +1 -0
  216. package/dist/utils/sort.esm.js +10 -0
  217. package/dist/utils/sort.esm.js.map +1 -0
  218. package/dist/utils/styles.esm.js +562 -0
  219. package/dist/utils/styles.esm.js.map +1 -0
  220. package/dist/utils/sum.esm.js +4 -0
  221. package/dist/utils/sum.esm.js.map +1 -0
  222. package/package.json +17 -12
  223. package/dist/esm/index-BA6m_qFS.esm.js.map +0 -1
  224. package/dist/esm/index-BFM2mP6Z.esm.js +0 -4084
  225. package/dist/esm/index-BFM2mP6Z.esm.js.map +0 -1
  226. package/dist/esm/index-BTIHr4n_.esm.js.map +0 -1
  227. package/dist/esm/index-DaitkcPN.esm.js +0 -1136
  228. package/dist/esm/index-DaitkcPN.esm.js.map +0 -1
  229. package/dist/esm/selector-D7iXJwd9.esm.js +0 -594
  230. package/dist/esm/selector-D7iXJwd9.esm.js.map +0 -1
@@ -0,0 +1,562 @@
1
+ import { lighten, emphasize, getLuminance, darken } from '@material-ui/core/styles/colorManipulator';
2
+ import { makeStyles, createStyles } from '@material-ui/core/styles';
3
+
4
+ const costInsightsLightTheme = {
5
+ palette: {
6
+ blue: "#509AF5",
7
+ lightBlue: "#9BF0E1",
8
+ darkBlue: "#4101F5",
9
+ magenta: "#DC148C",
10
+ yellow: "#FFC864",
11
+ tooltip: {
12
+ background: "#171717",
13
+ color: "#DDD"
14
+ },
15
+ navigationText: "#b5b5b5",
16
+ alertBackground: "rgba(219, 219, 219, 0.13)",
17
+ dataViz: [
18
+ "#509BF5",
19
+ "#4B917D",
20
+ "#FF6437",
21
+ "#F573A0",
22
+ "#F59B23",
23
+ "#B49BC8",
24
+ "#C39687",
25
+ "#A0C3D2",
26
+ "#FFC864",
27
+ "#BABABA"
28
+ ]
29
+ }
30
+ };
31
+ const costInsightsDarkTheme = {
32
+ palette: {
33
+ blue: "#77b8f9",
34
+ lightBlue: "#d8f9f4",
35
+ darkBlue: "#b595fd",
36
+ magenta: "#ee93cd",
37
+ yellow: "#fff2da",
38
+ tooltip: {
39
+ background: "#EEE",
40
+ color: "#424242"
41
+ },
42
+ navigationText: "#b5b5b5",
43
+ alertBackground: "rgba(32, 32, 32, 0.13)",
44
+ dataViz: [
45
+ "#8accff",
46
+ "#7bc2ac",
47
+ "#ff9664",
48
+ "#ffa5d1",
49
+ "#ffcc57",
50
+ "#e6ccfb",
51
+ "#f7c7b7",
52
+ "#d2f6ff",
53
+ "#fffb94",
54
+ "#ececec"
55
+ ]
56
+ }
57
+ };
58
+ function brighten(color, coefficient = 0.2) {
59
+ return getLuminance(color) > 0.5 ? lighten(color, coefficient) : darken(color, coefficient);
60
+ }
61
+ const useCostOverviewStyles = (theme) => ({
62
+ axis: {
63
+ fill: theme.palette.text.primary
64
+ },
65
+ container: {
66
+ height: 450,
67
+ width: 1200
68
+ },
69
+ cartesianGrid: {
70
+ stroke: theme.palette.textVerySubtle
71
+ },
72
+ chart: {
73
+ margin: {
74
+ right: 30,
75
+ top: 16
76
+ }
77
+ },
78
+ yAxis: {
79
+ width: 75
80
+ }
81
+ });
82
+ const useOverviewTabsStyles = makeStyles(
83
+ (theme) => ({
84
+ default: {
85
+ padding: theme.spacing(2),
86
+ fontWeight: theme.typography.fontWeightBold,
87
+ color: theme.palette.text.secondary,
88
+ textTransform: "uppercase"
89
+ },
90
+ selected: {
91
+ color: theme.palette.text.primary
92
+ }
93
+ })
94
+ );
95
+ const useBarChartStyles = (theme) => ({
96
+ axis: {
97
+ fill: theme.palette.text.primary
98
+ },
99
+ barChart: {
100
+ margin: {
101
+ left: 16,
102
+ right: 16
103
+ }
104
+ },
105
+ cartesianGrid: {
106
+ stroke: theme.palette.textVerySubtle
107
+ },
108
+ cursor: {
109
+ fill: theme.palette.textVerySubtle,
110
+ fillOpacity: 0.3
111
+ },
112
+ container: {
113
+ height: 400,
114
+ width: 1200
115
+ },
116
+ infoIcon: {
117
+ marginLeft: 2,
118
+ fontSize: "1.25em"
119
+ },
120
+ xAxis: {
121
+ height: 50
122
+ }
123
+ });
124
+ const useBarChartLayoutStyles = makeStyles(
125
+ (theme) => createStyles({
126
+ wrapper: {
127
+ display: "flex",
128
+ flexDirection: "column"
129
+ },
130
+ legend: {
131
+ paddingBottom: theme.spacing(2)
132
+ }
133
+ })
134
+ );
135
+ const useBarChartStepperButtonStyles = makeStyles(
136
+ (theme) => createStyles({
137
+ root: {
138
+ ...theme.typography.button,
139
+ boxSizing: "border-box",
140
+ transition: theme.transitions.create(
141
+ ["background-color", "box-shadow", "border"],
142
+ {
143
+ duration: theme.transitions.duration.short
144
+ }
145
+ ),
146
+ borderRadius: "50%",
147
+ padding: 0,
148
+ width: 40,
149
+ height: 40,
150
+ boxShadow: theme.shadows[6],
151
+ "&:active": {
152
+ boxShadow: theme.shadows[12]
153
+ },
154
+ color: theme.palette.text.primary,
155
+ backgroundColor: lighten(theme.palette.background.default, 0.1),
156
+ "&:hover": {
157
+ backgroundColor: lighten(theme.palette.background.default, 0.2),
158
+ textDecoration: "none"
159
+ }
160
+ }
161
+ })
162
+ );
163
+ const useBarChartLabelStyles = makeStyles(
164
+ (theme) => createStyles({
165
+ foreignObject: {
166
+ textAlign: "center"
167
+ },
168
+ label: {
169
+ fontWeight: theme.typography.fontWeightBold,
170
+ display: "block",
171
+ textDecoration: "none",
172
+ overflow: "hidden",
173
+ textOverflow: "ellipsis",
174
+ whiteSpace: "nowrap"
175
+ },
176
+ infoIcon: {
177
+ marginLeft: 2,
178
+ fontSize: "1.25em"
179
+ },
180
+ button: {
181
+ textTransform: "none",
182
+ fontWeight: theme.typography.fontWeightBold,
183
+ fontSize: theme.typography.fontSize
184
+ }
185
+ })
186
+ );
187
+ const useCostInsightsStyles = makeStyles((theme) => ({
188
+ h6Subtle: {
189
+ ...theme.typography.h6,
190
+ fontWeight: "normal",
191
+ color: theme.palette.textSubtle
192
+ }
193
+ }));
194
+ const useCostInsightsTabsStyles = makeStyles((theme) => ({
195
+ tabs: {
196
+ borderBottom: `1px solid ${theme.palette.textVerySubtle}`,
197
+ backgroundColor: brighten(theme.palette.background.default),
198
+ padding: theme.spacing(0, 4)
199
+ },
200
+ tab: {
201
+ minHeight: 68,
202
+ minWidth: 180,
203
+ padding: theme.spacing(1, 4),
204
+ "&:hover": {
205
+ color: "inherit",
206
+ backgroundColor: "inherit"
207
+ }
208
+ },
209
+ indicator: {
210
+ backgroundColor: theme.palette.navigation.indicator,
211
+ height: 4
212
+ },
213
+ tabLabel: {
214
+ display: "flex",
215
+ alignItems: "center"
216
+ },
217
+ tabLabelText: {
218
+ fontSize: theme.typography.fontSize,
219
+ fontWeight: theme.typography.fontWeightBold
220
+ },
221
+ menuItem: {
222
+ display: "flex",
223
+ justifyContent: "space-between",
224
+ alignItems: "center",
225
+ minWidth: 180,
226
+ padding: theme.spacing(2, 2)
227
+ },
228
+ menuItemSelected: {
229
+ backgroundColor: lighten(theme.palette.background.default, 0.3)
230
+ }
231
+ }));
232
+ makeStyles(
233
+ (theme) => createStyles({
234
+ root: {
235
+ paddingBottom: theme.spacing(2),
236
+ borderRadius: "unset"
237
+ },
238
+ title: {
239
+ fontSize: theme.typography.fontSize,
240
+ fontWeight: theme.typography.fontWeightBold,
241
+ lineHeight: 1.5
242
+ },
243
+ action: {
244
+ margin: 0
245
+ }
246
+ })
247
+ );
248
+ const useCostGrowthStyles = makeStyles(
249
+ (theme) => createStyles({
250
+ excess: {
251
+ color: theme.palette.status.error
252
+ },
253
+ savings: {
254
+ color: theme.palette.status.ok
255
+ },
256
+ indicator: {
257
+ display: "flex",
258
+ flexDirection: "row",
259
+ alignItems: "center",
260
+ justifyContent: "flex-end"
261
+ }
262
+ })
263
+ );
264
+ const useCostGrowthLegendStyles = makeStyles((theme) => ({
265
+ h5: {
266
+ ...theme.typography.h5,
267
+ fontWeight: 500,
268
+ padding: 0
269
+ },
270
+ marker: {
271
+ display: "inherit",
272
+ marginRight: theme.spacing(1)
273
+ },
274
+ helpIcon: {
275
+ display: "inherit"
276
+ },
277
+ title: {
278
+ ...theme.typography.overline,
279
+ fontWeight: 500,
280
+ lineHeight: 0,
281
+ marginRight: theme.spacing(1),
282
+ color: theme.palette.textSubtle
283
+ },
284
+ tooltip: {
285
+ display: "block",
286
+ padding: theme.spacing(1),
287
+ backgroundColor: theme.palette.navigation.background
288
+ },
289
+ tooltipText: {
290
+ color: theme.palette.background.default,
291
+ fontSize: theme.typography.fontSize,
292
+ lineHeight: 1.5
293
+ }
294
+ }));
295
+ const useBarChartStepperStyles = makeStyles(
296
+ (theme) => createStyles({
297
+ paper: {
298
+ display: "flex",
299
+ flexDirection: "row",
300
+ justifyContent: "space-around",
301
+ alignItems: "center",
302
+ background: "transparent",
303
+ padding: 8
304
+ },
305
+ step: {
306
+ backgroundColor: theme.palette.action.disabled,
307
+ borderRadius: "50%",
308
+ width: 9,
309
+ height: 9,
310
+ margin: "0 2px"
311
+ },
312
+ stepActive: {
313
+ backgroundColor: theme.palette.primary.main
314
+ },
315
+ steps: {
316
+ display: "flex",
317
+ flexDirection: "row"
318
+ },
319
+ backButton: {
320
+ position: "absolute",
321
+ left: 0,
322
+ top: "calc(50% - 60px)",
323
+ zIndex: 100
324
+ },
325
+ nextButton: {
326
+ position: "absolute",
327
+ right: 0,
328
+ top: "calc(50% - 60px)",
329
+ zIndex: 100
330
+ }
331
+ })
332
+ );
333
+ const useNavigationStyles = makeStyles(
334
+ (theme) => createStyles({
335
+ menuList: {
336
+ borderRadius: theme.shape.borderRadius,
337
+ backgroundColor: theme.palette.navigation.background,
338
+ minWidth: 250
339
+ },
340
+ menuItem: {
341
+ background: "transparent",
342
+ border: 0,
343
+ textTransform: "none",
344
+ width: "100%",
345
+ minHeight: theme.spacing(6),
346
+ margin: theme.spacing(0.5, 2, 0.5, 0)
347
+ },
348
+ listItemIcon: {
349
+ minWidth: 40
350
+ },
351
+ navigationIcon: {
352
+ fill: theme.palette.navigationText
353
+ },
354
+ title: {
355
+ whiteSpace: "nowrap",
356
+ lineHeight: 1,
357
+ color: theme.palette.navigationText,
358
+ fontWeight: theme.typography.fontWeightBold
359
+ }
360
+ })
361
+ );
362
+ const useTooltipStyles = makeStyles(
363
+ (theme) => createStyles({
364
+ tooltip: {
365
+ backgroundColor: theme.palette.tooltip.background,
366
+ borderRadius: theme.shape.borderRadius,
367
+ boxShadow: theme.shadows[1],
368
+ color: theme.palette.tooltip.color,
369
+ fontSize: theme.typography.fontSize,
370
+ minWidth: 300
371
+ },
372
+ maxWidth: {
373
+ maxWidth: 300
374
+ },
375
+ actions: {
376
+ padding: theme.spacing(2)
377
+ },
378
+ header: {
379
+ padding: theme.spacing(2)
380
+ },
381
+ content: {
382
+ padding: theme.spacing(2)
383
+ },
384
+ lensIcon: {
385
+ fontSize: `.75rem`
386
+ },
387
+ divider: {
388
+ backgroundColor: emphasize(theme.palette.divider, 1)
389
+ },
390
+ truncate: {
391
+ maxWidth: 200,
392
+ whiteSpace: "nowrap",
393
+ overflow: "hidden",
394
+ textOverflow: "ellipsis"
395
+ },
396
+ subtitle: {
397
+ fontStyle: "italic"
398
+ }
399
+ })
400
+ );
401
+ const useAlertInsightsSectionStyles = makeStyles(
402
+ (theme) => createStyles({
403
+ button: {
404
+ backgroundColor: theme.palette.textVerySubtle,
405
+ color: theme.palette.text.primary
406
+ }
407
+ })
408
+ );
409
+ const useSelectStyles = makeStyles(
410
+ (theme) => createStyles({
411
+ select: {
412
+ minWidth: 200,
413
+ textAlign: "start",
414
+ backgroundColor: theme.palette.background.paper
415
+ },
416
+ menuItem: {
417
+ minWidth: 200,
418
+ padding: theme.spacing(2),
419
+ "&.compact": {
420
+ padding: theme.spacing(1, 2)
421
+ }
422
+ }
423
+ })
424
+ );
425
+ const useActionItemCardStyles = makeStyles(
426
+ (theme) => createStyles({
427
+ card: {
428
+ boxShadow: "none"
429
+ },
430
+ avatar: {
431
+ backgroundColor: theme.palette.textVerySubtle,
432
+ color: theme.palette.text.primary
433
+ },
434
+ root: {
435
+ minHeight: 80,
436
+ paddingBottom: theme.spacing(2),
437
+ borderRadius: theme.shape.borderRadius
438
+ },
439
+ activeRoot: {
440
+ cursor: "pointer",
441
+ transition: theme.transitions.create("background", {
442
+ duration: theme.transitions.duration.short
443
+ }),
444
+ "&:hover": {
445
+ background: theme.palette.alertBackground
446
+ }
447
+ },
448
+ action: {
449
+ margin: 0
450
+ },
451
+ title: {
452
+ fontSize: theme.typography.fontSize,
453
+ fontWeight: theme.typography.fontWeightBold
454
+ }
455
+ })
456
+ );
457
+ const useProductInsightsCardStyles = makeStyles(
458
+ (theme) => createStyles({
459
+ root: {
460
+ padding: theme.spacing(2, 2, 2, 2.5)
461
+ // restore backstage default padding
462
+ },
463
+ action: {
464
+ margin: 0
465
+ // unset negative margins
466
+ }
467
+ })
468
+ );
469
+ const useProductInsightsChartStyles = makeStyles(
470
+ (theme) => createStyles({
471
+ indicator: {
472
+ fontWeight: theme.typography.fontWeightBold,
473
+ fontSize: "1.25rem"
474
+ },
475
+ actions: {
476
+ display: "flex",
477
+ justifyContent: "space-between",
478
+ alignItems: "center"
479
+ }
480
+ })
481
+ );
482
+ const useBackdropStyles = makeStyles(
483
+ (theme) => createStyles({
484
+ root: {
485
+ zIndex: theme.zIndex.modal
486
+ }
487
+ })
488
+ );
489
+ const useSubtleTypographyStyles = makeStyles(
490
+ (theme) => createStyles({
491
+ root: {
492
+ color: theme.palette.textSubtle
493
+ }
494
+ })
495
+ );
496
+ const useEntityDialogStyles = makeStyles(
497
+ (theme) => createStyles({
498
+ dialogContent: {
499
+ padding: 0
500
+ },
501
+ dialogTitle: {
502
+ padding: 0
503
+ },
504
+ closeButton: {
505
+ position: "absolute",
506
+ right: theme.spacing(1),
507
+ top: theme.spacing(1),
508
+ color: theme.palette.grey[500],
509
+ zIndex: 100
510
+ },
511
+ row: {
512
+ fontSize: theme.typography.fontSize * 1.25
513
+ },
514
+ rowTotal: {
515
+ fontWeight: theme.typography.fontWeightBold
516
+ },
517
+ colFirst: {
518
+ paddingLeft: theme.spacing(2)
519
+ },
520
+ colLast: {
521
+ paddingRight: theme.spacing(2)
522
+ },
523
+ column: {
524
+ fontWeight: theme.typography.fontWeightBold
525
+ },
526
+ growth: {
527
+ display: "flex",
528
+ flexDirection: "row",
529
+ alignContent: "center",
530
+ justifyContent: "flex-end"
531
+ }
532
+ })
533
+ );
534
+ const useAlertDialogStyles = makeStyles(
535
+ (theme) => createStyles({
536
+ content: {
537
+ padding: theme.spacing(0, 5, 2, 5)
538
+ },
539
+ actions: {
540
+ padding: theme.spacing(2, 5)
541
+ },
542
+ radio: {
543
+ margin: theme.spacing(-0.5, 0, -0.5, 0)
544
+ },
545
+ icon: {
546
+ color: theme.palette.primary.dark,
547
+ margin: theme.spacing(2.5, 2.5, 0, 0),
548
+ padding: 0
549
+ }
550
+ })
551
+ );
552
+ const useAlertStatusSummaryButtonStyles = makeStyles(() => ({
553
+ icon: {
554
+ transform: "transform 5s"
555
+ },
556
+ clicked: {
557
+ transform: "rotate(180deg)"
558
+ }
559
+ }));
560
+
561
+ export { brighten, costInsightsDarkTheme, costInsightsLightTheme, useActionItemCardStyles, useAlertDialogStyles, useAlertInsightsSectionStyles, useAlertStatusSummaryButtonStyles, useBackdropStyles, useBarChartLabelStyles, useBarChartLayoutStyles, useBarChartStepperButtonStyles, useBarChartStepperStyles, useBarChartStyles, useCostGrowthLegendStyles, useCostGrowthStyles, useCostInsightsStyles, useCostInsightsTabsStyles, useCostOverviewStyles, useEntityDialogStyles, useNavigationStyles, useOverviewTabsStyles, useProductInsightsCardStyles, useProductInsightsChartStyles, useSelectStyles, useSubtleTypographyStyles, useTooltipStyles };
562
+ //# sourceMappingURL=styles.esm.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,4 @@
1
+ const aggregationSum = (aggregation) => aggregation.reduce((total, curAgg) => total + curAgg.amount, 0);
2
+
3
+ export { aggregationSum };
4
+ //# sourceMappingURL=sum.esm.js.map
@@ -0,0 +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":"AAkBa,MAAA,cAAA,GAAiB,CAAC,WAAA,KAC7B,WAAY,CAAA,MAAA,CAAO,CAAC,KAAA,EAAO,MAAW,KAAA,KAAA,GAAQ,MAAO,CAAA,MAAA,EAAQ,CAAC;;;;"}
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-cost-insights",
3
- "version": "0.12.25",
3
+ "version": "0.12.26",
4
4
  "description": "A Backstage plugin that helps you keep track of your cloud spend",
5
5
  "backstage": {
6
- "role": "frontend-plugin"
6
+ "role": "frontend-plugin",
7
+ "pluginId": "cost-insights",
8
+ "pluginPackages": [
9
+ "@backstage-community/plugin-cost-insights",
10
+ "@backstage-community/plugin-cost-insights-common"
11
+ ]
7
12
  },
8
13
  "publishConfig": {
9
14
  "access": "public",
@@ -37,13 +42,13 @@
37
42
  "test": "backstage-cli package test"
38
43
  },
39
44
  "dependencies": {
40
- "@backstage-community/plugin-cost-insights-common": "^0.1.3",
41
- "@backstage/catalog-model": "^1.4.5",
45
+ "@backstage-community/plugin-cost-insights-common": "^0.1.4",
46
+ "@backstage/catalog-model": "^1.5.0",
42
47
  "@backstage/config": "^1.2.0",
43
- "@backstage/core-components": "^0.14.4",
44
- "@backstage/core-plugin-api": "^1.9.2",
45
- "@backstage/plugin-catalog-react": "^1.11.3",
46
- "@backstage/theme": "^0.5.3",
48
+ "@backstage/core-components": "^0.14.9",
49
+ "@backstage/core-plugin-api": "^1.9.3",
50
+ "@backstage/plugin-catalog-react": "^1.12.2",
51
+ "@backstage/theme": "^0.5.6",
47
52
  "@material-ui/core": "^4.12.2",
48
53
  "@material-ui/icons": "^4.9.1",
49
54
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -61,10 +66,10 @@
61
66
  "yup": "^1.0.0"
62
67
  },
63
68
  "devDependencies": {
64
- "@backstage/cli": "^0.26.3",
65
- "@backstage/core-app-api": "^1.12.4",
66
- "@backstage/dev-utils": "^1.0.31",
67
- "@backstage/test-utils": "^1.5.4",
69
+ "@backstage/cli": "^0.26.11",
70
+ "@backstage/core-app-api": "^1.14.1",
71
+ "@backstage/dev-utils": "^1.0.36",
72
+ "@backstage/test-utils": "^1.5.9",
68
73
  "@testing-library/dom": "^10.0.0",
69
74
  "@testing-library/jest-dom": "^6.0.0",
70
75
  "@testing-library/react": "^15.0.0",