@backstage-community/plugin-apiiro 0.1.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 (223) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +232 -0
  3. package/config.d.ts +30 -0
  4. package/dist/App.esm.js +12 -0
  5. package/dist/App.esm.js.map +1 -0
  6. package/dist/api/index.esm.js +71 -0
  7. package/dist/api/index.esm.js.map +1 -0
  8. package/dist/assets/BulleyeIcon.esm.js +454 -0
  9. package/dist/assets/BulleyeIcon.esm.js.map +1 -0
  10. package/dist/assets/NoResultIcon.esm.js +146 -0
  11. package/dist/assets/NoResultIcon.esm.js.map +1 -0
  12. package/dist/assets/RiskIcon.esm.js +27 -0
  13. package/dist/assets/RiskIcon.esm.js.map +1 -0
  14. package/dist/assets/SettingIcon.esm.js +49 -0
  15. package/dist/assets/SettingIcon.esm.js.map +1 -0
  16. package/dist/assets/apiiroLogo/apiiroLogo.esm.js +21 -0
  17. package/dist/assets/apiiroLogo/apiiroLogo.esm.js.map +1 -0
  18. package/dist/assets/apiiroLogo/apiiroSidebar.esm.js +23 -0
  19. package/dist/assets/apiiroLogo/apiiroSidebar.esm.js.map +1 -0
  20. package/dist/assets/apiiroLogo/apiiroSmall.esm.js +19 -0
  21. package/dist/assets/apiiroLogo/apiiroSmall.esm.js.map +1 -0
  22. package/dist/assets/languageIcons/C.esm.js +7 -0
  23. package/dist/assets/languageIcons/C.esm.js.map +1 -0
  24. package/dist/assets/languageIcons/Cicd.esm.js +7 -0
  25. package/dist/assets/languageIcons/Cicd.esm.js.map +1 -0
  26. package/dist/assets/languageIcons/Clojure.esm.js +7 -0
  27. package/dist/assets/languageIcons/Clojure.esm.js.map +1 -0
  28. package/dist/assets/languageIcons/Cpp.esm.js +7 -0
  29. package/dist/assets/languageIcons/Cpp.esm.js.map +1 -0
  30. package/dist/assets/languageIcons/Csharp.esm.js +7 -0
  31. package/dist/assets/languageIcons/Csharp.esm.js.map +1 -0
  32. package/dist/assets/languageIcons/Dart.esm.js +7 -0
  33. package/dist/assets/languageIcons/Dart.esm.js.map +1 -0
  34. package/dist/assets/languageIcons/Go.esm.js +7 -0
  35. package/dist/assets/languageIcons/Go.esm.js.map +1 -0
  36. package/dist/assets/languageIcons/Groovy.esm.js +7 -0
  37. package/dist/assets/languageIcons/Groovy.esm.js.map +1 -0
  38. package/dist/assets/languageIcons/HTML.esm.js +7 -0
  39. package/dist/assets/languageIcons/HTML.esm.js.map +1 -0
  40. package/dist/assets/languageIcons/HclLanguage.esm.js +7 -0
  41. package/dist/assets/languageIcons/HclLanguage.esm.js.map +1 -0
  42. package/dist/assets/languageIcons/Java.esm.js +7 -0
  43. package/dist/assets/languageIcons/Java.esm.js.map +1 -0
  44. package/dist/assets/languageIcons/Javascript.esm.js +7 -0
  45. package/dist/assets/languageIcons/Javascript.esm.js.map +1 -0
  46. package/dist/assets/languageIcons/Kotlin.esm.js +7 -0
  47. package/dist/assets/languageIcons/Kotlin.esm.js.map +1 -0
  48. package/dist/assets/languageIcons/ObjectiveC.esm.js +7 -0
  49. package/dist/assets/languageIcons/ObjectiveC.esm.js.map +1 -0
  50. package/dist/assets/languageIcons/PHP.esm.js +7 -0
  51. package/dist/assets/languageIcons/PHP.esm.js.map +1 -0
  52. package/dist/assets/languageIcons/Perl.esm.js +13 -0
  53. package/dist/assets/languageIcons/Perl.esm.js.map +1 -0
  54. package/dist/assets/languageIcons/Python.esm.js +7 -0
  55. package/dist/assets/languageIcons/Python.esm.js.map +1 -0
  56. package/dist/assets/languageIcons/Ruby.esm.js +7 -0
  57. package/dist/assets/languageIcons/Ruby.esm.js.map +1 -0
  58. package/dist/assets/languageIcons/Rust.esm.js +7 -0
  59. package/dist/assets/languageIcons/Rust.esm.js.map +1 -0
  60. package/dist/assets/languageIcons/Scala.esm.js +7 -0
  61. package/dist/assets/languageIcons/Scala.esm.js.map +1 -0
  62. package/dist/assets/languageIcons/Swift.esm.js +7 -0
  63. package/dist/assets/languageIcons/Swift.esm.js.map +1 -0
  64. package/dist/assets/languageIcons/Terraform.esm.js +7 -0
  65. package/dist/assets/languageIcons/Terraform.esm.js.map +1 -0
  66. package/dist/assets/languageIcons/Typescript.esm.js +7 -0
  67. package/dist/assets/languageIcons/Typescript.esm.js.map +1 -0
  68. package/dist/assets/languageIcons/Unknown.esm.js +7 -0
  69. package/dist/assets/languageIcons/Unknown.esm.js.map +1 -0
  70. package/dist/assets/languageIcons/VB.esm.js +10 -0
  71. package/dist/assets/languageIcons/VB.esm.js.map +1 -0
  72. package/dist/assets/languageIcons/YAML.esm.js +7 -0
  73. package/dist/assets/languageIcons/YAML.esm.js.map +1 -0
  74. package/dist/assets/providerIcons/Azure.esm.js +7 -0
  75. package/dist/assets/providerIcons/Azure.esm.js.map +1 -0
  76. package/dist/assets/providerIcons/Bitbucket.esm.js +7 -0
  77. package/dist/assets/providerIcons/Bitbucket.esm.js.map +1 -0
  78. package/dist/assets/providerIcons/Gitlab.esm.js +7 -0
  79. package/dist/assets/providerIcons/Gitlab.esm.js.map +1 -0
  80. package/dist/components/ApiiroSidebar.esm.js +10 -0
  81. package/dist/components/ApiiroSidebar.esm.js.map +1 -0
  82. package/dist/components/ApplicationsList/ApplicationsList.esm.js +196 -0
  83. package/dist/components/ApplicationsList/ApplicationsList.esm.js.map +1 -0
  84. package/dist/components/CalendarDatePicker.esm.js +154 -0
  85. package/dist/components/CalendarDatePicker.esm.js.map +1 -0
  86. package/dist/components/CalendarDatePicker.styles.esm.js +198 -0
  87. package/dist/components/CalendarDatePicker.styles.esm.js.map +1 -0
  88. package/dist/components/Chip.esm.js +60 -0
  89. package/dist/components/Chip.esm.js.map +1 -0
  90. package/dist/components/ChipsList.esm.js +207 -0
  91. package/dist/components/ChipsList.esm.js.map +1 -0
  92. package/dist/components/ComponentDisplay.esm.js +42 -0
  93. package/dist/components/ComponentDisplay.esm.js.map +1 -0
  94. package/dist/components/DataGrid/CustomColumnMenu.esm.js +29 -0
  95. package/dist/components/DataGrid/CustomColumnMenu.esm.js.map +1 -0
  96. package/dist/components/DataGrid/CustomPagination.esm.js +113 -0
  97. package/dist/components/DataGrid/CustomPagination.esm.js.map +1 -0
  98. package/dist/components/DataGrid/CustomSearchToolbar.esm.js +117 -0
  99. package/dist/components/DataGrid/CustomSearchToolbar.esm.js.map +1 -0
  100. package/dist/components/DataGrid/DataGrid.esm.js +336 -0
  101. package/dist/components/DataGrid/DataGrid.esm.js.map +1 -0
  102. package/dist/components/DataGrid/PinColumnMenuItem.esm.js +24 -0
  103. package/dist/components/DataGrid/PinColumnMenuItem.esm.js.map +1 -0
  104. package/dist/components/DueDate.esm.js +34 -0
  105. package/dist/components/DueDate.esm.js.map +1 -0
  106. package/dist/components/Header.esm.js +27 -0
  107. package/dist/components/Header.esm.js.map +1 -0
  108. package/dist/components/MainContributors/MainContributors.esm.js +62 -0
  109. package/dist/components/MainContributors/MainContributors.esm.js.map +1 -0
  110. package/dist/components/MetricsGroup/TabMetricsGroup.esm.js +37 -0
  111. package/dist/components/MetricsGroup/TabMetricsGroup.esm.js.map +1 -0
  112. package/dist/components/MetricsGroup/WidgetMetricsGroup.esm.js +36 -0
  113. package/dist/components/MetricsGroup/WidgetMetricsGroup.esm.js.map +1 -0
  114. package/dist/components/RepositoryDisplay/RepositoryDisplay.esm.js +121 -0
  115. package/dist/components/RepositoryDisplay/RepositoryDisplay.esm.js.map +1 -0
  116. package/dist/components/RiskLevel.esm.js +88 -0
  117. package/dist/components/RiskLevel.esm.js.map +1 -0
  118. package/dist/components/RiskStatus.esm.js +58 -0
  119. package/dist/components/RiskStatus.esm.js.map +1 -0
  120. package/dist/components/SimpleTooltip.esm.js +24 -0
  121. package/dist/components/SimpleTooltip.esm.js.map +1 -0
  122. package/dist/components/SourcesDisplay.esm.js +47 -0
  123. package/dist/components/SourcesDisplay.esm.js.map +1 -0
  124. package/dist/components/TagsList/TagsList.esm.js +38 -0
  125. package/dist/components/TagsList/TagsList.esm.js.map +1 -0
  126. package/dist/components/TeamsDisplay.esm.js +47 -0
  127. package/dist/components/TeamsDisplay.esm.js.map +1 -0
  128. package/dist/components/charts/ColumnChart.esm.js +402 -0
  129. package/dist/components/charts/ColumnChart.esm.js.map +1 -0
  130. package/dist/components/charts/GaugeChart.esm.js +249 -0
  131. package/dist/components/charts/GaugeChart.esm.js.map +1 -0
  132. package/dist/components/charts/LineChart.esm.js +328 -0
  133. package/dist/components/charts/LineChart.esm.js.map +1 -0
  134. package/dist/components/charts/PieChart.esm.js +233 -0
  135. package/dist/components/charts/PieChart.esm.js.map +1 -0
  136. package/dist/components/common/ChartBox.esm.js +88 -0
  137. package/dist/components/common/ChartBox.esm.js.map +1 -0
  138. package/dist/components/common/CustomTooltip.esm.js +255 -0
  139. package/dist/components/common/CustomTooltip.esm.js.map +1 -0
  140. package/dist/components/common/ErrorSnackbar.esm.js +39 -0
  141. package/dist/components/common/ErrorSnackbar.esm.js.map +1 -0
  142. package/dist/components/common/NotFound.esm.js +30 -0
  143. package/dist/components/common/NotFound.esm.js.map +1 -0
  144. package/dist/components/common/SomethingWentWrong.esm.js +35 -0
  145. package/dist/components/common/SomethingWentWrong.esm.js.map +1 -0
  146. package/dist/components/common/languageIcons.esm.js +61 -0
  147. package/dist/components/common/languageIcons.esm.js.map +1 -0
  148. package/dist/components/common/logoSpinner.esm.js +28 -0
  149. package/dist/components/common/logoSpinner.esm.js.map +1 -0
  150. package/dist/components/common/scmProviders.esm.js +41 -0
  151. package/dist/components/common/scmProviders.esm.js.map +1 -0
  152. package/dist/components/filters/DiscoveredOnFilter.esm.js +284 -0
  153. package/dist/components/filters/DiscoveredOnFilter.esm.js.map +1 -0
  154. package/dist/components/filters/FilterDropdown.esm.js +325 -0
  155. package/dist/components/filters/FilterDropdown.esm.js.map +1 -0
  156. package/dist/components/filters/FilterDropdownClear.esm.js +45 -0
  157. package/dist/components/filters/FilterDropdownClear.esm.js.map +1 -0
  158. package/dist/components/filters/FilterDropdownList.esm.js +102 -0
  159. package/dist/components/filters/FilterDropdownList.esm.js.map +1 -0
  160. package/dist/components/filters/FilterDropdownSearch.esm.js +65 -0
  161. package/dist/components/filters/FilterDropdownSearch.esm.js.map +1 -0
  162. package/dist/components/filters/RiskInsightFilter.esm.js +579 -0
  163. package/dist/components/filters/RiskInsightFilter.esm.js.map +1 -0
  164. package/dist/components/tiles/MttrVsSLATile.esm.js +170 -0
  165. package/dist/components/tiles/MttrVsSLATile.esm.js.map +1 -0
  166. package/dist/components/tiles/RiskOverTimeTile.esm.js +311 -0
  167. package/dist/components/tiles/RiskOverTimeTile.esm.js.map +1 -0
  168. package/dist/components/tiles/SLAAdherenceTile.esm.js +115 -0
  169. package/dist/components/tiles/SLAAdherenceTile.esm.js.map +1 -0
  170. package/dist/components/tiles/StatusTile.esm.js +235 -0
  171. package/dist/components/tiles/StatusTile.esm.js.map +1 -0
  172. package/dist/components/tiles/TopLanguagesTile.esm.js +234 -0
  173. package/dist/components/tiles/TopLanguagesTile.esm.js.map +1 -0
  174. package/dist/components/tiles/TopRiskTile.esm.js +208 -0
  175. package/dist/components/tiles/TopRiskTile.esm.js.map +1 -0
  176. package/dist/hooks/useUrlFilters.esm.js +102 -0
  177. package/dist/hooks/useUrlFilters.esm.js.map +1 -0
  178. package/dist/index.d.ts +28 -0
  179. package/dist/index.esm.js +42 -0
  180. package/dist/index.esm.js.map +1 -0
  181. package/dist/pages/Repositories/Repositories.esm.js +102 -0
  182. package/dist/pages/Repositories/Repositories.esm.js.map +1 -0
  183. package/dist/pages/Repositories/tableConfig.esm.js +294 -0
  184. package/dist/pages/Repositories/tableConfig.esm.js.map +1 -0
  185. package/dist/pages/Risks/Risks.esm.js +258 -0
  186. package/dist/pages/Risks/Risks.esm.js.map +1 -0
  187. package/dist/pages/Risks/tableConfig.esm.js +305 -0
  188. package/dist/pages/Risks/tableConfig.esm.js.map +1 -0
  189. package/dist/pages/tab/Tab.esm.js +147 -0
  190. package/dist/pages/tab/Tab.esm.js.map +1 -0
  191. package/dist/pages/tab/TabProvider.esm.js +11 -0
  192. package/dist/pages/tab/TabProvider.esm.js.map +1 -0
  193. package/dist/pages/widget/Widget.esm.js +161 -0
  194. package/dist/pages/widget/Widget.esm.js.map +1 -0
  195. package/dist/pages/widget/WidgetProvider.esm.js +12 -0
  196. package/dist/pages/widget/WidgetProvider.esm.js.map +1 -0
  197. package/dist/plugin.esm.js +30 -0
  198. package/dist/plugin.esm.js.map +1 -0
  199. package/dist/queries/filterOptions.queries.esm.js +46 -0
  200. package/dist/queries/filterOptions.queries.esm.js.map +1 -0
  201. package/dist/queries/mttr-statistics.queries.esm.js +61 -0
  202. package/dist/queries/mttr-statistics.queries.esm.js.map +1 -0
  203. package/dist/queries/repository.queries.esm.js +60 -0
  204. package/dist/queries/repository.queries.esm.js.map +1 -0
  205. package/dist/queries/risk-score-over-time.queries.esm.js +61 -0
  206. package/dist/queries/risk-score-over-time.queries.esm.js.map +1 -0
  207. package/dist/queries/risks.queries.esm.js +65 -0
  208. package/dist/queries/risks.queries.esm.js.map +1 -0
  209. package/dist/queries/sla-breach.queries.esm.js +57 -0
  210. package/dist/queries/sla-breach.queries.esm.js.map +1 -0
  211. package/dist/queries/top-risks.queries.esm.js +47 -0
  212. package/dist/queries/top-risks.queries.esm.js.map +1 -0
  213. package/dist/routes.esm.js +8 -0
  214. package/dist/routes.esm.js.map +1 -0
  215. package/dist/theme/themeUtils.esm.js +290 -0
  216. package/dist/theme/themeUtils.esm.js.map +1 -0
  217. package/dist/utils/dateFormatter.esm.js +67 -0
  218. package/dist/utils/dateFormatter.esm.js.map +1 -0
  219. package/dist/utils/numberFormatter.esm.js +21 -0
  220. package/dist/utils/numberFormatter.esm.js.map +1 -0
  221. package/dist/utils/utils.esm.js +27 -0
  222. package/dist/utils/utils.esm.js.map +1 -0
  223. package/package.json +90 -0
@@ -0,0 +1,305 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import Link from '@mui/material/Link';
3
+ import '@backstage/core-components';
4
+ import '@mui/material/SvgIcon';
5
+ import 'react';
6
+ import '@mui/x-data-grid';
7
+ import '@mui/material/Box';
8
+ import '@mui/material/styles';
9
+ import '@mui/material/MenuItem';
10
+ import '@mui/material/ListItemIcon';
11
+ import '@mui/material/ListItemText';
12
+ import '@mui/icons-material';
13
+ import '@mui/material/Typography';
14
+ import '@mui/material/Select';
15
+ import '@mui/material/Pagination';
16
+ import '@mui/material/TextField';
17
+ import '@mui/material/InputAdornment';
18
+ import '@mui/icons-material/Search';
19
+ import '@mui/icons-material/Clear';
20
+ import '@mui/material/IconButton';
21
+ import '../../components/common/ChartBox.esm.js';
22
+ import 'react-dom';
23
+ import '../../components/common/logoSpinner.esm.js';
24
+ import '@mui/material/Chip';
25
+ import { ChipsList } from '../../components/ChipsList.esm.js';
26
+ import { RiskLevel } from '../../components/RiskLevel.esm.js';
27
+ import { SimpleTooltip } from '../../components/SimpleTooltip.esm.js';
28
+ import { RiskStatus } from '../../components/RiskStatus.esm.js';
29
+ import { ComponentDisplay } from '../../components/ComponentDisplay.esm.js';
30
+ import { MainContributors } from '../../components/MainContributors/MainContributors.esm.js';
31
+ import { ApplicationsList } from '../../components/ApplicationsList/ApplicationsList.esm.js';
32
+ import { RepositoryDisplay } from '../../components/RepositoryDisplay/RepositoryDisplay.esm.js';
33
+ import { TagsList } from '../../components/TagsList/TagsList.esm.js';
34
+ import { TeamsDisplay } from '../../components/TeamsDisplay.esm.js';
35
+ import { SourcesDisplay } from '../../components/SourcesDisplay.esm.js';
36
+ import { DueDateDisplay } from '../../components/DueDate.esm.js';
37
+ import '../../components/filters/FilterDropdown.esm.js';
38
+ import '../../components/filters/RiskInsightFilter.esm.js';
39
+ import '../../components/CalendarDatePicker.esm.js';
40
+ import '@mui/material/ButtonBase';
41
+ import '@mui/material/Popper';
42
+ import '@mui/material/ClickAwayListener';
43
+ import '@mui/material/Tooltip';
44
+ import '@mui/material/Skeleton';
45
+ import '@mui/icons-material/KeyboardArrowDown';
46
+ import '@mui/icons-material/Close';
47
+ import { formatDate } from '../../utils/dateFormatter.esm.js';
48
+ import { APIIRO_DEFAULT_BASE_URL } from '@backstage-community/plugin-apiiro-common';
49
+
50
+ const risksColumns = [
51
+ {
52
+ field: "riskStatus",
53
+ headerName: "Risk Status",
54
+ flex: 1,
55
+ minWidth: 150,
56
+ headerAlign: "center",
57
+ valueGetter: (_, row) => row.riskStatus,
58
+ renderCell: (params) => /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", centered: true, children: /* @__PURE__ */ jsx(RiskStatus, { status: params.value, iconSize: "large" }) })
59
+ },
60
+ {
61
+ field: "riskLevel",
62
+ headerName: "Risk Level",
63
+ flex: 1,
64
+ minWidth: 150,
65
+ headerAlign: "center",
66
+ valueGetter: (_, row) => row.riskLevel,
67
+ sortComparator: (v1, v2) => {
68
+ const riskOrder = { Critical: 3, High: 2, Medium: 1, Low: 0 };
69
+ const order1 = riskOrder[v1] ?? -1;
70
+ const order2 = riskOrder[v2] ?? -1;
71
+ return order1 - order2;
72
+ },
73
+ renderCell: (params) => /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", centered: true, children: /* @__PURE__ */ jsx(RiskLevel, { level: params.value, iconSize: "large" }) })
74
+ },
75
+ {
76
+ field: "policyName",
77
+ headerName: "Policy Name",
78
+ flex: 1,
79
+ hideable: false,
80
+ minWidth: 220,
81
+ headerAlign: "center",
82
+ valueGetter: (_, row) => row.ruleName,
83
+ renderCell: (params) => /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", children: /* @__PURE__ */ jsx(
84
+ Link,
85
+ {
86
+ href: `${APIIRO_DEFAULT_BASE_URL}/profiles/repositories/${params.row.entity?.details?.key}/risk/development?fl[RiskStatus][values][0]=${params.row.riskStatus}&trigger=${params.row.id}`,
87
+ target: "_blank",
88
+ rel: "noopener noreferrer",
89
+ color: "inherit",
90
+ children: params.value ?? ""
91
+ }
92
+ ) })
93
+ },
94
+ {
95
+ field: "component",
96
+ headerName: "Component",
97
+ flex: 1,
98
+ minWidth: 200,
99
+ valueGetter: (_, row) => row.component,
100
+ renderCell: (params) => /* @__PURE__ */ jsx(
101
+ ComponentDisplay,
102
+ {
103
+ filePath: params.row.sourceCode?.filePath,
104
+ component: params.value ?? ""
105
+ }
106
+ )
107
+ },
108
+ {
109
+ field: "insights",
110
+ headerName: "Insights",
111
+ flex: 1,
112
+ headerAlign: "center",
113
+ minWidth: 300,
114
+ valueGetter: (_, row) => row.insights.map((insight) => insight.name).join(", "),
115
+ renderCell: (params) => {
116
+ const insights = params.row.insights || [];
117
+ return /* @__PURE__ */ jsx(
118
+ ChipsList,
119
+ {
120
+ items: insights.map((insight) => ({
121
+ id: insight.name,
122
+ label: insight.name,
123
+ tooltip: insight.reason
124
+ })),
125
+ maxVisible: 1,
126
+ gap: 0,
127
+ variant: "outlined",
128
+ chipSx: {
129
+ maxWidth: "200px",
130
+ "& .MuiChip-label": {
131
+ overflow: "hidden",
132
+ textOverflow: "ellipsis",
133
+ whiteSpace: "nowrap"
134
+ }
135
+ }
136
+ }
137
+ );
138
+ }
139
+ },
140
+ {
141
+ field: "applications",
142
+ headerName: "Applications",
143
+ flex: 1,
144
+ minWidth: 280,
145
+ headerAlign: "center",
146
+ renderCell: (params) => /* @__PURE__ */ jsx(ApplicationsList, { applications: params.row.applications || [] })
147
+ },
148
+ {
149
+ field: "repository",
150
+ headerName: "Repository",
151
+ flex: 1,
152
+ minWidth: 280,
153
+ headerAlign: "center",
154
+ renderCell: (params) => /* @__PURE__ */ jsx(RepositoryDisplay, { entity: params.row.entity })
155
+ },
156
+ {
157
+ field: "riskCategory",
158
+ headerName: "Risk Category",
159
+ flex: 1,
160
+ minWidth: 150,
161
+ headerAlign: "center",
162
+ valueGetter: (_, row) => row.riskCategory,
163
+ renderCell: (params) => /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", centered: true, children: params.value ?? "" })
164
+ },
165
+ {
166
+ field: "discoveredOn",
167
+ headerName: "Discovered On",
168
+ flex: 1,
169
+ headerAlign: "center",
170
+ minWidth: 150,
171
+ valueGetter: (_, row) => row.discoveredOn,
172
+ renderCell: (params) => {
173
+ const formattedDate = formatDate(params.value);
174
+ return /* @__PURE__ */ jsx(SimpleTooltip, { title: formattedDate, centered: true, children: formattedDate });
175
+ }
176
+ },
177
+ {
178
+ field: "source",
179
+ headerName: "Source",
180
+ flex: 1,
181
+ minWidth: 200,
182
+ headerAlign: "center",
183
+ valueGetter: (_, row) => row.source.map((source) => source.name).join(", "),
184
+ renderCell: (params) => /* @__PURE__ */ jsx(SourcesDisplay, { sources: params.row.source || [] })
185
+ },
186
+ {
187
+ field: "orgTeams",
188
+ headerName: "Teams",
189
+ flex: 1,
190
+ minWidth: 150,
191
+ headerAlign: "center",
192
+ valueGetter: (_, row) => row.orgTeams.map((orgTeam) => orgTeam.name).join(", "),
193
+ renderCell: (params) => /* @__PURE__ */ jsx(TeamsDisplay, { teams: params.row.orgTeams || [] })
194
+ },
195
+ {
196
+ field: "mainContributor",
197
+ headerName: "Main Contributor",
198
+ flex: 1,
199
+ minWidth: 150,
200
+ headerAlign: "center",
201
+ renderCell: (params) => /* @__PURE__ */ jsx(MainContributors, { contributors: params.row.contributors || [] })
202
+ },
203
+ {
204
+ field: "applicationTags",
205
+ headerName: "Application Tags",
206
+ flex: 1,
207
+ minWidth: 270,
208
+ headerAlign: "center",
209
+ renderCell: (params) => /* @__PURE__ */ jsx(TagsList, { tags: params.row.applicationTags || [] })
210
+ },
211
+ {
212
+ field: "repositoryTags",
213
+ headerName: "Repository Tags",
214
+ flex: 1,
215
+ minWidth: 270,
216
+ headerAlign: "center",
217
+ renderCell: (params) => /* @__PURE__ */ jsx(TagsList, { tags: params.row.repositoryTags || [] })
218
+ },
219
+ {
220
+ field: "repositoryGroup",
221
+ headerName: "Repository Group",
222
+ flex: 1,
223
+ minWidth: 150,
224
+ headerAlign: "center",
225
+ valueGetter: (_, row) => row.entity?.details?.repositoryGroup,
226
+ renderCell: (params) => /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", centered: true, children: params.value ?? "" })
227
+ },
228
+ {
229
+ field: "dueDate",
230
+ headerName: "Due Date",
231
+ flex: 1,
232
+ minWidth: 150,
233
+ type: "date",
234
+ headerAlign: "center",
235
+ valueGetter: (_, row) => row.dueDate ? new Date(row.dueDate) : null,
236
+ renderCell: (params) => {
237
+ return /* @__PURE__ */ jsx(DueDateDisplay, { dateString: params.value });
238
+ }
239
+ },
240
+ {
241
+ field: "serverUrl",
242
+ headerName: "Server URL",
243
+ flex: 1,
244
+ minWidth: 150,
245
+ valueGetter: (_, row) => row.entity?.details?.serverUrl,
246
+ renderCell: (params) => {
247
+ return /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", children: /* @__PURE__ */ jsx(
248
+ Link,
249
+ {
250
+ href: params.value,
251
+ target: "_blank",
252
+ rel: "noopener noreferrer",
253
+ style: { textDecoration: "underline" },
254
+ children: params.value
255
+ }
256
+ ) });
257
+ }
258
+ },
259
+ {
260
+ field: "findingName",
261
+ headerName: "Finding Name",
262
+ flex: 1,
263
+ minWidth: 180,
264
+ headerAlign: "center",
265
+ valueGetter: (_, row) => row.findingName,
266
+ renderCell: (params) => {
267
+ return /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", children: params.value ?? "" });
268
+ }
269
+ },
270
+ {
271
+ field: "findingCategory",
272
+ headerName: "Finding Category",
273
+ flex: 1,
274
+ minWidth: 180,
275
+ headerAlign: "center",
276
+ valueGetter: (_, row) => row.findingCategory,
277
+ renderCell: (params) => {
278
+ return /* @__PURE__ */ jsx(SimpleTooltip, { title: params.value ?? "", centered: true, children: params.value ?? "" });
279
+ }
280
+ }
281
+ ];
282
+ const columnVisibilityModal = {
283
+ riskStatus: true,
284
+ riskLevel: true,
285
+ policyName: true,
286
+ component: true,
287
+ insights: true,
288
+ applications: true,
289
+ repository: true,
290
+ riskCategory: true,
291
+ discoveredOn: true,
292
+ source: true,
293
+ orgTeams: true,
294
+ mainContributor: true,
295
+ applicationTags: false,
296
+ repositoryTags: false,
297
+ repositoryGroup: false,
298
+ dueDate: false,
299
+ serverUrl: false,
300
+ findingName: false,
301
+ findingCategory: false
302
+ };
303
+
304
+ export { columnVisibilityModal, risksColumns };
305
+ //# sourceMappingURL=tableConfig.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableConfig.esm.js","sources":["../../../src/pages/Risks/tableConfig.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 */\nimport Link from '@mui/material/Link';\nimport { GridColDef } from '@mui/x-data-grid';\nimport {\n ApplicationsList,\n ChipsList,\n ComponentDisplay,\n DueDateDisplay,\n MainContributors,\n RepositoryDisplay,\n RiskLevel,\n RiskStatus,\n SimpleTooltip,\n SourcesDisplay,\n TagsList,\n TeamsDisplay,\n} from '../../components';\nimport { formatDate } from '../../utils/dateFormatter';\nimport { APIIRO_DEFAULT_BASE_URL } from '@backstage-community/plugin-apiiro-common';\n\nexport const risksColumns: GridColDef[] = [\n {\n field: 'riskStatus',\n headerName: 'Risk Status',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n valueGetter: (_, row) => row.riskStatus,\n renderCell: (params: any) => (\n <SimpleTooltip title={params.value ?? ''} centered>\n <RiskStatus status={params.value} iconSize=\"large\" />\n </SimpleTooltip>\n ),\n },\n {\n field: 'riskLevel',\n headerName: 'Risk Level',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n valueGetter: (_, row) => row.riskLevel,\n sortComparator: (v1: string, v2: string) => {\n const riskOrder = { Critical: 3, High: 2, Medium: 1, Low: 0 };\n const order1 = riskOrder[v1 as keyof typeof riskOrder] ?? -1;\n const order2 = riskOrder[v2 as keyof typeof riskOrder] ?? -1;\n return order1 - order2;\n },\n renderCell: (params: any) => (\n <SimpleTooltip title={params.value ?? ''} centered>\n <RiskLevel level={params.value} iconSize=\"large\" />\n </SimpleTooltip>\n ),\n },\n {\n field: 'policyName',\n headerName: 'Policy Name',\n flex: 1,\n hideable: false,\n minWidth: 220,\n headerAlign: 'center',\n valueGetter: (_, row) => row.ruleName,\n renderCell: (params: any) => (\n <SimpleTooltip title={params.value ?? ''}>\n <Link\n href={`${APIIRO_DEFAULT_BASE_URL}/profiles/repositories/${params.row.entity?.details?.key}/risk/development?fl[RiskStatus][values][0]=${params.row.riskStatus}&trigger=${params.row.id}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n color=\"inherit\"\n >\n {params.value ?? ''}\n </Link>\n </SimpleTooltip>\n ),\n },\n {\n field: 'component',\n headerName: 'Component',\n flex: 1,\n minWidth: 200,\n valueGetter: (_, row) => row.component,\n renderCell: (params: any) => (\n <ComponentDisplay\n filePath={params.row.sourceCode?.filePath}\n component={params.value ?? ''}\n />\n ),\n },\n {\n field: 'insights',\n headerName: 'Insights',\n flex: 1,\n headerAlign: 'center',\n minWidth: 300,\n valueGetter: (_, row) =>\n row.insights.map((insight: any) => insight.name).join(', '),\n renderCell: (params: any) => {\n const insights = params.row.insights || [];\n return (\n <ChipsList\n items={insights.map((insight: any) => ({\n id: insight.name,\n label: insight.name,\n tooltip: insight.reason,\n }))}\n maxVisible={1}\n gap={0}\n variant=\"outlined\"\n chipSx={{\n maxWidth: '200px',\n '& .MuiChip-label': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n }}\n />\n );\n },\n },\n {\n field: 'applications',\n headerName: 'Applications',\n flex: 1,\n minWidth: 280,\n headerAlign: 'center',\n renderCell: (params: any) => (\n <ApplicationsList applications={params.row.applications || []} />\n ),\n },\n {\n field: 'repository',\n headerName: 'Repository',\n flex: 1,\n minWidth: 280,\n headerAlign: 'center',\n renderCell: (params: any) => (\n <RepositoryDisplay entity={params.row.entity} />\n ),\n },\n {\n field: 'riskCategory',\n headerName: 'Risk Category',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n valueGetter: (_, row) => row.riskCategory,\n renderCell: (params: any) => (\n <SimpleTooltip title={params.value ?? ''} centered>\n {params.value ?? ''}\n </SimpleTooltip>\n ),\n },\n {\n field: 'discoveredOn',\n headerName: 'Discovered On',\n flex: 1,\n headerAlign: 'center',\n minWidth: 150,\n valueGetter: (_, row) => row.discoveredOn,\n renderCell: (params: any) => {\n const formattedDate = formatDate(params.value);\n return (\n <SimpleTooltip title={formattedDate} centered>\n {formattedDate}\n </SimpleTooltip>\n );\n },\n },\n {\n field: 'source',\n headerName: 'Source',\n flex: 1,\n minWidth: 200,\n headerAlign: 'center',\n valueGetter: (_, row) =>\n row.source.map((source: any) => source.name).join(', '),\n renderCell: (params: any) => (\n <SourcesDisplay sources={params.row.source || []} />\n ),\n },\n {\n field: 'orgTeams',\n headerName: 'Teams',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n valueGetter: (_, row) =>\n row.orgTeams.map((orgTeam: any) => orgTeam.name).join(', '),\n renderCell: (params: any) => (\n <TeamsDisplay teams={params.row.orgTeams || []} />\n ),\n },\n {\n field: 'mainContributor',\n headerName: 'Main Contributor',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n renderCell: (params: any) => (\n <MainContributors contributors={params.row.contributors || []} />\n ),\n },\n {\n field: 'applicationTags',\n headerName: 'Application Tags',\n flex: 1,\n minWidth: 270,\n headerAlign: 'center',\n renderCell: (params: any) => (\n <TagsList tags={params.row.applicationTags || []} />\n ),\n },\n {\n field: 'repositoryTags',\n headerName: 'Repository Tags',\n flex: 1,\n minWidth: 270,\n headerAlign: 'center',\n renderCell: (params: any) => (\n <TagsList tags={params.row.repositoryTags || []} />\n ),\n },\n {\n field: 'repositoryGroup',\n headerName: 'Repository Group',\n flex: 1,\n minWidth: 150,\n headerAlign: 'center',\n valueGetter: (_, row) => row.entity?.details?.repositoryGroup,\n renderCell: (params: any) => (\n <SimpleTooltip title={params.value ?? ''} centered>\n {params.value ?? ''}\n </SimpleTooltip>\n ),\n },\n {\n field: 'dueDate',\n headerName: 'Due Date',\n flex: 1,\n minWidth: 150,\n type: 'date',\n headerAlign: 'center',\n valueGetter: (_, row) => (row.dueDate ? new Date(row.dueDate) : null),\n renderCell: (params: any) => {\n return <DueDateDisplay dateString={params.value} />;\n },\n },\n {\n field: 'serverUrl',\n headerName: 'Server URL',\n flex: 1,\n minWidth: 150,\n valueGetter: (_, row) => row.entity?.details?.serverUrl,\n renderCell: (params: any) => {\n return (\n <SimpleTooltip title={params.value ?? ''}>\n <Link\n href={params.value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ textDecoration: 'underline' }}\n >\n {params.value}\n </Link>\n </SimpleTooltip>\n );\n },\n },\n {\n field: 'findingName',\n headerName: 'Finding Name',\n flex: 1,\n minWidth: 180,\n headerAlign: 'center',\n valueGetter: (_, row) => row.findingName,\n renderCell: (params: any) => {\n return (\n <SimpleTooltip title={params.value ?? ''}>\n {params.value ?? ''}\n </SimpleTooltip>\n );\n },\n },\n {\n field: 'findingCategory',\n headerName: 'Finding Category',\n flex: 1,\n minWidth: 180,\n headerAlign: 'center',\n valueGetter: (_, row) => row.findingCategory,\n renderCell: (params: any) => {\n return (\n <SimpleTooltip title={params.value ?? ''} centered>\n {params.value ?? ''}\n </SimpleTooltip>\n );\n },\n },\n];\n\nexport const columnVisibilityModal = {\n riskStatus: true,\n riskLevel: true,\n policyName: true,\n component: true,\n insights: true,\n applications: true,\n repository: true,\n riskCategory: true,\n discoveredOn: true,\n source: true,\n orgTeams: true,\n mainContributor: true,\n applicationTags: false,\n repositoryTags: false,\n repositoryGroup: false,\n dueDate: false,\n serverUrl: false,\n findingName: false,\n findingCategory: false,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,MAAM,YAAA,GAA6B;AAAA,EACxC;AAAA,IACE,KAAA,EAAO,YAAA;AAAA,IACP,UAAA,EAAY,aAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,UAAA;AAAA,IAC7B,YAAY,CAAC,MAAA,yBACV,aAAA,EAAA,EAAc,KAAA,EAAO,OAAO,KAAA,IAAS,EAAA,EAAI,QAAA,EAAQ,IAAA,EAChD,8BAAC,UAAA,EAAA,EAAW,MAAA,EAAQ,OAAO,KAAA,EAAO,QAAA,EAAS,SAAQ,CAAA,EACrD;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,YAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,SAAA;AAAA,IAC7B,cAAA,EAAgB,CAAC,EAAA,EAAY,EAAA,KAAe;AAC1C,MAAA,MAAM,SAAA,GAAY,EAAE,QAAA,EAAU,CAAA,EAAG,MAAM,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,GAAA,EAAK,CAAA,EAAE;AAC5D,MAAA,MAAM,MAAA,GAAS,SAAA,CAAU,EAA4B,CAAA,IAAK,EAAA;AAC1D,MAAA,MAAM,MAAA,GAAS,SAAA,CAAU,EAA4B,CAAA,IAAK,EAAA;AAC1D,MAAA,OAAO,MAAA,GAAS,MAAA;AAAA,IAClB,CAAA;AAAA,IACA,YAAY,CAAC,MAAA,yBACV,aAAA,EAAA,EAAc,KAAA,EAAO,OAAO,KAAA,IAAS,EAAA,EAAI,QAAA,EAAQ,IAAA,EAChD,8BAAC,SAAA,EAAA,EAAU,KAAA,EAAO,OAAO,KAAA,EAAO,QAAA,EAAS,SAAQ,CAAA,EACnD;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,YAAA;AAAA,IACP,UAAA,EAAY,aAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,KAAA;AAAA,IACV,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,QAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,iBAAc,KAAA,EAAO,MAAA,CAAO,SAAS,EAAA,EACpC,QAAA,kBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,MAAM,CAAA,EAAG,uBAAuB,CAAA,uBAAA,EAA0B,MAAA,CAAO,IAAI,MAAA,EAAQ,OAAA,EAAS,GAAG,CAAA,4CAAA,EAA+C,OAAO,GAAA,CAAI,UAAU,CAAA,SAAA,EAAY,MAAA,CAAO,IAAI,EAAE,CAAA,CAAA;AAAA,QACtL,MAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAM,SAAA;AAAA,QAEL,iBAAO,KAAA,IAAS;AAAA;AAAA,KACnB,EACF;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,WAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,SAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAU,MAAA,CAAO,GAAA,CAAI,UAAA,EAAY,QAAA;AAAA,QACjC,SAAA,EAAW,OAAO,KAAA,IAAS;AAAA;AAAA;AAC7B,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,UAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,WAAA,EAAa,QAAA;AAAA,IACb,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KACf,GAAA,CAAI,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAiB,OAAA,CAAQ,IAAI,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,IAC5D,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,GAAA,CAAI,QAAA,IAAY,EAAC;AACzC,MAAA,uBACE,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,MAAkB;AAAA,YACrC,IAAI,OAAA,CAAQ,IAAA;AAAA,YACZ,OAAO,OAAA,CAAQ,IAAA;AAAA,YACf,SAAS,OAAA,CAAQ;AAAA,WACnB,CAAE,CAAA;AAAA,UACF,UAAA,EAAY,CAAA;AAAA,UACZ,GAAA,EAAK,CAAA;AAAA,UACL,OAAA,EAAQ,UAAA;AAAA,UACR,MAAA,EAAQ;AAAA,YACN,QAAA,EAAU,OAAA;AAAA,YACV,kBAAA,EAAoB;AAAA,cAClB,QAAA,EAAU,QAAA;AAAA,cACV,YAAA,EAAc,UAAA;AAAA,cACd,UAAA,EAAY;AAAA;AACd;AACF;AAAA,OACF;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA,IACE,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,gBAAA,EAAA,EAAiB,cAAc,MAAA,CAAO,GAAA,CAAI,YAAA,IAAgB,EAAC,EAAG;AAAA,GAEnE;AAAA,EACA;AAAA,IACE,KAAA,EAAO,YAAA;AAAA,IACP,UAAA,EAAY,YAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,qBAAkB,MAAA,EAAQ,MAAA,CAAO,IAAI,MAAA,EAAQ;AAAA,GAElD;AAAA,EACA;AAAA,IACE,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,eAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,YAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,MAAA,CAAO,KAAA,IAAS,EAAA,EAAI,QAAA,EAAQ,IAAA,EAC/C,QAAA,EAAA,MAAA,CAAO,SAAS,EAAA,EACnB;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,eAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,WAAA,EAAa,QAAA;AAAA,IACb,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,YAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,MAAA,CAAO,KAAK,CAAA;AAC7C,MAAA,2BACG,aAAA,EAAA,EAAc,KAAA,EAAO,aAAA,EAAe,QAAA,EAAQ,MAC1C,QAAA,EAAA,aAAA,EACH,CAAA;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA,IACE,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,QAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KACf,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,MAAA,KAAgB,MAAA,CAAO,IAAI,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,IACxD,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,cAAA,EAAA,EAAe,SAAS,MAAA,CAAO,GAAA,CAAI,MAAA,IAAU,EAAC,EAAG;AAAA,GAEtD;AAAA,EACA;AAAA,IACE,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,OAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KACf,GAAA,CAAI,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAiB,OAAA,CAAQ,IAAI,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,IAC5D,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,YAAA,EAAA,EAAa,OAAO,MAAA,CAAO,GAAA,CAAI,QAAA,IAAY,EAAC,EAAG;AAAA,GAEpD;AAAA,EACA;AAAA,IACE,KAAA,EAAO,iBAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,gBAAA,EAAA,EAAiB,cAAc,MAAA,CAAO,GAAA,CAAI,YAAA,IAAgB,EAAC,EAAG;AAAA,GAEnE;AAAA,EACA;AAAA,IACE,KAAA,EAAO,iBAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,QAAA,EAAA,EAAS,MAAM,MAAA,CAAO,GAAA,CAAI,eAAA,IAAmB,EAAC,EAAG;AAAA,GAEtD;AAAA,EACA;AAAA,IACE,KAAA,EAAO,gBAAA;AAAA,IACP,UAAA,EAAY,iBAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,QAAA,EAAA,EAAS,MAAM,MAAA,CAAO,GAAA,CAAI,cAAA,IAAkB,EAAC,EAAG;AAAA,GAErD;AAAA,EACA;AAAA,IACE,KAAA,EAAO,iBAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,aAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,QAAQ,OAAA,EAAS,eAAA;AAAA,IAC9C,UAAA,EAAY,CAAC,MAAA,qBACX,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,MAAA,CAAO,KAAA,IAAS,EAAA,EAAI,QAAA,EAAQ,IAAA,EAC/C,QAAA,EAAA,MAAA,CAAO,SAAS,EAAA,EACnB;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAA,EAAO,SAAA;AAAA,IACP,UAAA,EAAY,UAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAS,GAAA,CAAI,UAAU,IAAI,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,GAAI,IAAA;AAAA,IAChE,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,uBAAO,GAAA,CAAC,cAAA,EAAA,EAAe,UAAA,EAAY,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,IACnD;AAAA,GACF;AAAA,EACA;AAAA,IACE,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,YAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,aAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,QAAQ,OAAA,EAAS,SAAA;AAAA,IAC9C,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,uBACE,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,MAAA,CAAO,SAAS,EAAA,EACpC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,MAAM,MAAA,CAAO,KAAA;AAAA,UACb,MAAA,EAAO,QAAA;AAAA,UACP,GAAA,EAAI,qBAAA;AAAA,UACJ,KAAA,EAAO,EAAE,cAAA,EAAgB,WAAA,EAAY;AAAA,UAEpC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,OACV,EACF,CAAA;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA,IACE,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,WAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,uBACE,GAAA,CAAC,iBAAc,KAAA,EAAO,MAAA,CAAO,SAAS,EAAA,EACnC,QAAA,EAAA,MAAA,CAAO,SAAS,EAAA,EACnB,CAAA;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA,IACE,KAAA,EAAO,iBAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,WAAA,EAAa,QAAA;AAAA,IACb,WAAA,EAAa,CAAC,CAAA,EAAG,GAAA,KAAQ,GAAA,CAAI,eAAA;AAAA,IAC7B,UAAA,EAAY,CAAC,MAAA,KAAgB;AAC3B,MAAA,uBACE,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,MAAA,CAAO,KAAA,IAAS,IAAI,QAAA,EAAQ,IAAA,EAC/C,QAAA,EAAA,MAAA,CAAO,KAAA,IAAS,EAAA,EACnB,CAAA;AAAA,IAEJ;AAAA;AAEJ;AAEO,MAAM,qBAAA,GAAwB;AAAA,EACnC,UAAA,EAAY,IAAA;AAAA,EACZ,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,IAAA;AAAA,EACZ,SAAA,EAAW,IAAA;AAAA,EACX,QAAA,EAAU,IAAA;AAAA,EACV,YAAA,EAAc,IAAA;AAAA,EACd,UAAA,EAAY,IAAA;AAAA,EACZ,YAAA,EAAc,IAAA;AAAA,EACd,YAAA,EAAc,IAAA;AAAA,EACd,MAAA,EAAQ,IAAA;AAAA,EACR,QAAA,EAAU,IAAA;AAAA,EACV,eAAA,EAAiB,IAAA;AAAA,EACjB,eAAA,EAAiB,KAAA;AAAA,EACjB,cAAA,EAAgB,KAAA;AAAA,EAChB,eAAA,EAAiB,KAAA;AAAA,EACjB,OAAA,EAAS,KAAA;AAAA,EACT,SAAA,EAAW,KAAA;AAAA,EACX,WAAA,EAAa,KAAA;AAAA,EACb,eAAA,EAAiB;AACnB;;;;"}
@@ -0,0 +1,147 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Content } from '@backstage/core-components';
3
+ import { TabMetricsGroup } from '../../components/MetricsGroup/TabMetricsGroup.esm.js';
4
+ import { useApi, fetchApiRef } from '@backstage/core-plugin-api';
5
+ import { apiiroApiRef } from '../../api/index.esm.js';
6
+ import { useRepositoriesData } from '../../queries/repository.queries.esm.js';
7
+ import '@tanstack/react-query';
8
+ import { useEntity } from '@backstage/plugin-catalog-react';
9
+ import '../../components/common/ChartBox.esm.js';
10
+ import 'react';
11
+ import 'react-dom';
12
+ import { styled, useTheme } from '@mui/material/styles';
13
+ import { NotFound } from '../../components/common/NotFound.esm.js';
14
+ import { SomethingWentWrong } from '../../components/common/SomethingWentWrong.esm.js';
15
+ import Box from '@mui/material/Box';
16
+ import { LogoSpinner } from '../../components/common/logoSpinner.esm.js';
17
+ import { ApiiroLogo } from '../../assets/apiiroLogo/apiiroLogo.esm.js';
18
+ import '@mui/material/SvgIcon';
19
+ import { Risks } from '../Risks/Risks.esm.js';
20
+ import { APIIRO_PROJECT_ANNOTATION } from '@backstage-community/plugin-apiiro-common';
21
+ import { getLogoContainerColors } from '../../theme/themeUtils.esm.js';
22
+ import { stringifyEntityRef } from '@backstage/catalog-model';
23
+
24
+ const LogoContainer = styled(Box)(({ theme }) => {
25
+ const logoColors = getLogoContainerColors(theme);
26
+ return {
27
+ display: "flex",
28
+ flexDirection: "row",
29
+ justifyContent: "center",
30
+ alignItems: "center",
31
+ padding: "12px 15px",
32
+ gap: "10px",
33
+ width: "109px",
34
+ height: "40px",
35
+ background: logoColors.background,
36
+ borderRadius: "10px",
37
+ "& svg": {
38
+ width: "79px",
39
+ height: "22px",
40
+ "& path": {
41
+ fill: logoColors.logoFill
42
+ }
43
+ }
44
+ };
45
+ });
46
+ const Tab = () => {
47
+ const theme = useTheme();
48
+ const connectBackendApi = useApi(apiiroApiRef);
49
+ const { fetch } = useApi(fetchApiRef);
50
+ const { entity } = useEntity();
51
+ const repoId = entity?.metadata?.annotations?.[APIIRO_PROJECT_ANNOTATION] || void 0;
52
+ const entityRef = stringifyEntityRef(entity);
53
+ const { repositoriesData, repositoriesDataLoading, repositoriesDataError } = useRepositoriesData({
54
+ connectApi: connectBackendApi,
55
+ fetchApi: fetch,
56
+ enabled: true,
57
+ repositoryKey: repoId,
58
+ entityRef
59
+ });
60
+ if (repositoriesDataLoading) {
61
+ return /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsx(
62
+ Box,
63
+ {
64
+ display: "flex",
65
+ justifyContent: "center",
66
+ alignItems: "center",
67
+ minHeight: "300px",
68
+ children: /* @__PURE__ */ jsx(LogoSpinner, {})
69
+ }
70
+ ) });
71
+ }
72
+ if (repositoriesDataError) {
73
+ return /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsxs(
74
+ Box,
75
+ {
76
+ display: "flex",
77
+ justifyContent: "center",
78
+ alignItems: "center",
79
+ flexDirection: "column",
80
+ minHeight: "300px",
81
+ sx: {
82
+ border: `1px solid ${theme.palette.divider}`,
83
+ borderRadius: "12px",
84
+ backgroundColor: theme.palette.background.paper,
85
+ boxShadow: theme.shadows[1]
86
+ },
87
+ children: [
88
+ /* @__PURE__ */ jsx(LogoContainer, { sx: { alignSelf: "flex-end" }, children: /* @__PURE__ */ jsx(ApiiroLogo, {}) }),
89
+ /* @__PURE__ */ jsx(
90
+ SomethingWentWrong,
91
+ {
92
+ statusCode: repositoriesDataError?.details?.status
93
+ }
94
+ )
95
+ ]
96
+ }
97
+ ) });
98
+ }
99
+ const repositories = repositoriesData?.repositories;
100
+ if (!repositories || repositories.length === 0) {
101
+ return /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsxs(
102
+ Box,
103
+ {
104
+ display: "flex",
105
+ justifyContent: "flex-start",
106
+ alignItems: "center",
107
+ flexDirection: "column",
108
+ minHeight: "300px",
109
+ sx: {
110
+ border: `1px solid ${theme.palette.divider}`,
111
+ borderRadius: "12px",
112
+ backgroundColor: theme.palette.background.paper,
113
+ boxShadow: theme.shadows[1]
114
+ },
115
+ children: [
116
+ /* @__PURE__ */ jsx(LogoContainer, { sx: { alignSelf: "flex-end" }, children: /* @__PURE__ */ jsx(ApiiroLogo, {}) }),
117
+ /* @__PURE__ */ jsx(
118
+ Box,
119
+ {
120
+ display: "flex",
121
+ justifyContent: "center",
122
+ alignItems: "center",
123
+ minHeight: "250px",
124
+ children: /* @__PURE__ */ jsx(NotFound, { message: "Results for this repository are either unavailable on Apiiro or cannot be accessed." })
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ ) });
130
+ }
131
+ const repositoryData = repositories[0];
132
+ return /* @__PURE__ */ jsxs(Content, { children: [
133
+ /* @__PURE__ */ jsx(
134
+ TabMetricsGroup,
135
+ {
136
+ repositoryData,
137
+ entity,
138
+ repoId,
139
+ entityRef
140
+ }
141
+ ),
142
+ /* @__PURE__ */ jsx(Risks, { repoId, entityRef })
143
+ ] });
144
+ };
145
+
146
+ export { Tab };
147
+ //# sourceMappingURL=Tab.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.esm.js","sources":["../../../src/pages/tab/Tab.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 */\nimport { Content } from '@backstage/core-components';\nimport { TabMetricsGroup } from '../../components/MetricsGroup';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { apiiroApiRef } from '../../api';\nimport { fetchApiRef } from '@backstage/core-plugin-api';\nimport { useRepositoriesData } from '../../queries';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { NotFound, SomethingWentWrong } from '../../components/common';\nimport Box from '@mui/material/Box';\nimport { LogoSpinner } from '../../components/common/logoSpinner';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { ApiiroLogo } from '../../assets/apiiroLogo';\nimport { Risks } from '../Risks';\nimport { APIIRO_PROJECT_ANNOTATION } from '@backstage-community/plugin-apiiro-common';\nimport { getLogoContainerColors } from '../../theme/themeUtils';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\n\nconst LogoContainer = styled(Box)(({ theme }) => {\n const logoColors = getLogoContainerColors(theme);\n return {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '12px 15px',\n gap: '10px',\n width: '109px',\n height: '40px',\n background: logoColors.background,\n borderRadius: '10px',\n '& svg': {\n width: '79px',\n height: '22px',\n '& path': {\n fill: logoColors.logoFill,\n },\n },\n };\n});\n\nexport const Tab = () => {\n const theme = useTheme();\n const connectBackendApi = useApi(apiiroApiRef);\n const { fetch } = useApi(fetchApiRef);\n const { entity } = useEntity();\n const repoId =\n entity?.metadata?.annotations?.[APIIRO_PROJECT_ANNOTATION] || undefined;\n const entityRef = stringifyEntityRef(entity);\n\n const { repositoriesData, repositoriesDataLoading, repositoriesDataError } =\n useRepositoriesData({\n connectApi: connectBackendApi,\n fetchApi: fetch,\n enabled: true,\n repositoryKey: repoId,\n entityRef: entityRef,\n });\n\n if (repositoriesDataLoading) {\n return (\n <Content>\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n minHeight=\"300px\"\n >\n <LogoSpinner />\n </Box>\n </Content>\n );\n }\n\n if (repositoriesDataError) {\n return (\n <Content>\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection=\"column\"\n minHeight=\"300px\"\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '12px',\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[1],\n }}\n >\n <LogoContainer sx={{ alignSelf: 'flex-end' }}>\n <ApiiroLogo />\n </LogoContainer>\n <SomethingWentWrong\n statusCode={repositoriesDataError?.details?.status}\n />\n </Box>\n </Content>\n );\n }\n\n const repositories = repositoriesData?.repositories;\n\n if (!repositories || repositories.length === 0) {\n return (\n <Content>\n <Box\n display=\"flex\"\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n flexDirection=\"column\"\n minHeight=\"300px\"\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '12px',\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[1],\n }}\n >\n <LogoContainer sx={{ alignSelf: 'flex-end' }}>\n <ApiiroLogo />\n </LogoContainer>\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n minHeight=\"250px\"\n >\n <NotFound message=\"Results for this repository are either unavailable on Apiiro or cannot be accessed.\" />\n </Box>\n </Box>\n </Content>\n );\n }\n\n const repositoryData = repositories[0];\n return (\n <Content>\n <TabMetricsGroup\n repositoryData={repositoryData}\n entity={entity}\n repoId={repoId!}\n entityRef={entityRef}\n />\n <Risks repoId={repoId!} entityRef={entityRef} />\n </Content>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,gBAAgB,MAAA,CAAO,GAAG,EAAE,CAAC,EAAE,OAAM,KAAM;AAC/C,EAAA,MAAM,UAAA,GAAa,uBAAuB,KAAK,CAAA;AAC/C,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,KAAA;AAAA,IACf,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,OAAA,EAAS,WAAA;AAAA,IACT,GAAA,EAAK,MAAA;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,YAAY,UAAA,CAAW,UAAA;AAAA,IACvB,YAAA,EAAc,MAAA;AAAA,IACd,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,QAAA,EAAU;AAAA,QACR,MAAM,UAAA,CAAW;AAAA;AACnB;AACF,GACF;AACF,CAAC,CAAA;AAEM,MAAM,MAAM,MAAM;AACvB,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,iBAAA,GAAoB,OAAO,YAAY,CAAA;AAC7C,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAA,CAAO,WAAW,CAAA;AACpC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,SAAA,EAAU;AAC7B,EAAA,MAAM,MAAA,GACJ,MAAA,EAAQ,QAAA,EAAU,WAAA,GAAc,yBAAyB,CAAA,IAAK,MAAA;AAChE,EAAA,MAAM,SAAA,GAAY,mBAAmB,MAAM,CAAA;AAE3C,EAAA,MAAM,EAAE,gBAAA,EAAkB,uBAAA,EAAyB,qBAAA,KACjD,mBAAA,CAAoB;AAAA,IAClB,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU,KAAA;AAAA,IACV,OAAA,EAAS,IAAA;AAAA,IACT,aAAA,EAAe,MAAA;AAAA,IACf;AAAA,GACD,CAAA;AAEH,EAAA,IAAI,uBAAA,EAAyB;AAC3B,IAAA,2BACG,OAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAe,QAAA;AAAA,QACf,UAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAU,OAAA;AAAA,QAEV,8BAAC,WAAA,EAAA,EAAY;AAAA;AAAA,KACf,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,qBAAA,EAAuB;AACzB,IAAA,2BACG,OAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAe,QAAA;AAAA,QACf,UAAA,EAAW,QAAA;AAAA,QACX,aAAA,EAAc,QAAA;AAAA,QACd,SAAA,EAAU,OAAA;AAAA,QACV,EAAA,EAAI;AAAA,UACF,MAAA,EAAQ,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,CAAA;AAAA,UAC1C,YAAA,EAAc,MAAA;AAAA,UACd,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,KAAA;AAAA,UAC1C,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,SAC5B;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAI,EAAE,SAAA,EAAW,YAAW,EACzC,QAAA,kBAAA,GAAA,CAAC,cAAW,CAAA,EACd,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cACC,UAAA,EAAY,uBAAuB,OAAA,EAAS;AAAA;AAAA;AAC9C;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,eAAe,gBAAA,EAAkB,YAAA;AAEvC,EAAA,IAAI,CAAC,YAAA,IAAgB,YAAA,CAAa,MAAA,KAAW,CAAA,EAAG;AAC9C,IAAA,2BACG,OAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAe,YAAA;AAAA,QACf,UAAA,EAAW,QAAA;AAAA,QACX,aAAA,EAAc,QAAA;AAAA,QACd,SAAA,EAAU,OAAA;AAAA,QACV,EAAA,EAAI;AAAA,UACF,MAAA,EAAQ,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,CAAA;AAAA,UAC1C,YAAA,EAAc,MAAA;AAAA,UACd,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,KAAA;AAAA,UAC1C,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,SAC5B;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAI,EAAE,SAAA,EAAW,YAAW,EACzC,QAAA,kBAAA,GAAA,CAAC,cAAW,CAAA,EACd,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,MAAA;AAAA,cACR,cAAA,EAAe,QAAA;AAAA,cACf,UAAA,EAAW,QAAA;AAAA,cACX,SAAA,EAAU,OAAA;AAAA,cAEV,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,OAAA,EAAQ,qFAAA,EAAsF;AAAA;AAAA;AAC1G;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,cAAA,GAAiB,aAAa,CAAC,CAAA;AACrC,EAAA,4BACG,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,cAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAM,MAAA,EAAiB,SAAA,EAAsB;AAAA,GAAA,EAChD,CAAA;AAEJ;;;;"}
@@ -0,0 +1,11 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { QueryClientProvider } from '@tanstack/react-query';
3
+ import { queryClient } from '../../api/index.esm.js';
4
+ import { Tab } from './Tab.esm.js';
5
+
6
+ const ApiiroTab = () => {
7
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(Tab, {}) });
8
+ };
9
+
10
+ export { ApiiroTab };
11
+ //# sourceMappingURL=TabProvider.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabProvider.esm.js","sources":["../../../src/pages/tab/TabProvider.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 */\nimport { QueryClientProvider } from '@tanstack/react-query';\nimport { queryClient } from '../../api';\nimport { Tab } from './Tab';\n\n/** @public */\nexport const ApiiroTab = () => {\n return (\n <QueryClientProvider client={queryClient}>\n <Tab />\n </QueryClientProvider>\n );\n};\n"],"names":[],"mappings":";;;;;AAoBO,MAAM,YAAY,MAAM;AAC7B,EAAA,2BACG,mBAAA,EAAA,EAAoB,MAAA,EAAQ,WAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,OAAI,CAAA,EACP,CAAA;AAEJ;;;;"}