@backstage-community/plugin-azure-devops 0.4.4 → 0.4.5

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 (124) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/alpha/package.json +1 -1
  3. package/dist/alpha/plugin.esm.js +69 -0
  4. package/dist/alpha/plugin.esm.js.map +1 -0
  5. package/dist/alpha.esm.js +1 -68
  6. package/dist/alpha.esm.js.map +1 -1
  7. package/dist/api/AzureDevOpsApi.esm.js +8 -0
  8. package/dist/api/AzureDevOpsApi.esm.js.map +1 -0
  9. package/dist/{esm/AzureDevOpsApi-GBxs-uQ7.esm.js → api/AzureDevOpsClient.esm.js} +2 -20
  10. package/dist/api/AzureDevOpsClient.esm.js.map +1 -0
  11. package/dist/components/AzureGitTagsIcon/AzureGitTagsIcon.esm.js +7 -0
  12. package/dist/components/AzureGitTagsIcon/AzureGitTagsIcon.esm.js.map +1 -0
  13. package/dist/components/AzurePipelinesIcon/AzurePipelinesIcon.esm.js +27 -0
  14. package/dist/components/AzurePipelinesIcon/AzurePipelinesIcon.esm.js.map +1 -0
  15. package/dist/{esm/AzurePullRequestsIcon-DOAkj-X3.esm.js → components/AzurePullRequestsIcon/AzurePullRequestsIcon.esm.js} +2 -2
  16. package/dist/components/AzurePullRequestsIcon/AzurePullRequestsIcon.esm.js.map +1 -0
  17. package/dist/{esm/index-Bwu2-Sgs.esm.js → components/BuildTable/BuildTable.esm.js} +6 -106
  18. package/dist/components/BuildTable/BuildTable.esm.js.map +1 -0
  19. package/dist/components/EntityPageAzureGitTags/EntityPageAzureGitTags.esm.js +22 -0
  20. package/dist/components/EntityPageAzureGitTags/EntityPageAzureGitTags.esm.js.map +1 -0
  21. package/dist/components/EntityPageAzureGitTags/index.esm.js +2 -0
  22. package/dist/components/EntityPageAzureGitTags/index.esm.js.map +1 -0
  23. package/dist/components/EntityPageAzurePipelines/EntityPageAzurePipelines.esm.js +32 -0
  24. package/dist/components/EntityPageAzurePipelines/EntityPageAzurePipelines.esm.js.map +1 -0
  25. package/dist/components/EntityPageAzurePipelines/index.esm.js +2 -0
  26. package/dist/components/EntityPageAzurePipelines/index.esm.js.map +1 -0
  27. package/dist/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.esm.js +22 -0
  28. package/dist/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.esm.js.map +1 -0
  29. package/dist/components/EntityPageAzurePullRequests/index.esm.js +2 -0
  30. package/dist/components/EntityPageAzurePullRequests/index.esm.js.map +1 -0
  31. package/dist/components/GitTagTable/GitTagTable.esm.js +59 -0
  32. package/dist/components/GitTagTable/GitTagTable.esm.js.map +1 -0
  33. package/dist/components/PullRequestStatusButtonGroup/PullRequestStatusButtonGroup.esm.js +41 -0
  34. package/dist/components/PullRequestStatusButtonGroup/PullRequestStatusButtonGroup.esm.js.map +1 -0
  35. package/dist/components/PullRequestTable/PullRequestTable.esm.js +93 -0
  36. package/dist/components/PullRequestTable/PullRequestTable.esm.js.map +1 -0
  37. package/dist/components/PullRequestsPage/PullRequestsPage.esm.js +79 -0
  38. package/dist/components/PullRequestsPage/PullRequestsPage.esm.js.map +1 -0
  39. package/dist/components/PullRequestsPage/index.esm.js +6 -0
  40. package/dist/components/PullRequestsPage/index.esm.js.map +1 -0
  41. package/dist/components/PullRequestsPage/lib/AutoCompleteIcon/AutoCompleteIcon.esm.js +16 -0
  42. package/dist/components/PullRequestsPage/lib/AutoCompleteIcon/AutoCompleteIcon.esm.js.map +1 -0
  43. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCard.esm.js +86 -0
  44. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCard.esm.js.map +1 -0
  45. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicies.esm.js +10 -0
  46. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicies.esm.js.map +1 -0
  47. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicy.esm.js +66 -0
  48. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicy.esm.js.map +1 -0
  49. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewer.esm.js +33 -0
  50. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewer.esm.js.map +1 -0
  51. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewers.esm.js +17 -0
  52. package/dist/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewers.esm.js.map +1 -0
  53. package/dist/components/PullRequestsPage/lib/PullRequestGrid/PullRequestGrid.esm.js +29 -0
  54. package/dist/components/PullRequestsPage/lib/PullRequestGrid/PullRequestGrid.esm.js.map +1 -0
  55. package/dist/components/PullRequestsPage/lib/PullRequestGridColumn/PullRequestGridColumn.esm.js +50 -0
  56. package/dist/components/PullRequestsPage/lib/PullRequestGridColumn/PullRequestGridColumn.esm.js.map +1 -0
  57. package/dist/components/PullRequestsPage/lib/filters/allFilter.esm.js +6 -0
  58. package/dist/components/PullRequestsPage/lib/filters/allFilter.esm.js.map +1 -0
  59. package/dist/components/PullRequestsPage/lib/filters/assignedToTeamFilter.esm.js +18 -0
  60. package/dist/components/PullRequestsPage/lib/filters/assignedToTeamFilter.esm.js.map +1 -0
  61. package/dist/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.esm.js +20 -0
  62. package/dist/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.esm.js.map +1 -0
  63. package/dist/components/PullRequestsPage/lib/filters/assignedToUserFilter.esm.js +21 -0
  64. package/dist/components/PullRequestsPage/lib/filters/assignedToUserFilter.esm.js.map +1 -0
  65. package/dist/components/PullRequestsPage/lib/filters/createFilter.esm.js +45 -0
  66. package/dist/components/PullRequestsPage/lib/filters/createFilter.esm.js.map +1 -0
  67. package/dist/components/PullRequestsPage/lib/filters/createdByTeamFilter.esm.js +18 -0
  68. package/dist/components/PullRequestsPage/lib/filters/createdByTeamFilter.esm.js.map +1 -0
  69. package/dist/components/PullRequestsPage/lib/filters/createdByTeamsFilter.esm.js +32 -0
  70. package/dist/components/PullRequestsPage/lib/filters/createdByTeamsFilter.esm.js.map +1 -0
  71. package/dist/components/PullRequestsPage/lib/filters/createdByUserFilter.esm.js +19 -0
  72. package/dist/components/PullRequestsPage/lib/filters/createdByUserFilter.esm.js.map +1 -0
  73. package/dist/components/PullRequestsPage/lib/filters/types.esm.js +17 -0
  74. package/dist/components/PullRequestsPage/lib/filters/types.esm.js.map +1 -0
  75. package/dist/components/PullRequestsPage/lib/hooks/useFilterProcessor.esm.js +37 -0
  76. package/dist/components/PullRequestsPage/lib/hooks/useFilterProcessor.esm.js.map +1 -0
  77. package/dist/components/PullRequestsPage/lib/utils.esm.js +47 -0
  78. package/dist/components/PullRequestsPage/lib/utils.esm.js.map +1 -0
  79. package/dist/{esm/index-BJ_pWnMh.esm.js → components/ReadmeCard/ReadmeCard.esm.js} +6 -27
  80. package/dist/components/ReadmeCard/ReadmeCard.esm.js.map +1 -0
  81. package/dist/components/ReadmeCard/index.esm.js +2 -0
  82. package/dist/components/ReadmeCard/index.esm.js.map +1 -0
  83. package/dist/hooks/useBuildRuns.esm.js +37 -0
  84. package/dist/hooks/useBuildRuns.esm.js.map +1 -0
  85. package/dist/hooks/useDashboardPullRequests.esm.js +43 -0
  86. package/dist/hooks/useDashboardPullRequests.esm.js.map +1 -0
  87. package/dist/hooks/useGitTags.esm.js +30 -0
  88. package/dist/hooks/useGitTags.esm.js.map +1 -0
  89. package/dist/hooks/usePullRequests.esm.js +41 -0
  90. package/dist/hooks/usePullRequests.esm.js.map +1 -0
  91. package/dist/hooks/useReadme.esm.js +32 -0
  92. package/dist/hooks/useReadme.esm.js.map +1 -0
  93. package/dist/hooks/useUserEmail.esm.js +12 -0
  94. package/dist/hooks/useUserEmail.esm.js.map +1 -0
  95. package/dist/hooks/useUserTeamIds.esm.js +23 -0
  96. package/dist/hooks/useUserTeamIds.esm.js.map +1 -0
  97. package/dist/index.esm.js +7 -92
  98. package/dist/index.esm.js.map +1 -1
  99. package/dist/plugin.esm.js +74 -0
  100. package/dist/plugin.esm.js.map +1 -0
  101. package/dist/routes.esm.js +17 -0
  102. package/dist/routes.esm.js.map +1 -0
  103. package/dist/utils/arrayHas.esm.js +15 -0
  104. package/dist/utils/arrayHas.esm.js.map +1 -0
  105. package/dist/utils/equalsIgnoreCase.esm.js +6 -0
  106. package/dist/utils/equalsIgnoreCase.esm.js.map +1 -0
  107. package/dist/{esm/getAnnotationValuesFromEntity-G8YVs-3R.esm.js → utils/getAnnotationValuesFromEntity.esm.js} +2 -2
  108. package/dist/utils/getAnnotationValuesFromEntity.esm.js.map +1 -0
  109. package/dist/utils/getDurationFromDates.esm.js +34 -0
  110. package/dist/utils/getDurationFromDates.esm.js.map +1 -0
  111. package/package.json +10 -10
  112. package/dist/esm/AzureDevOpsApi-GBxs-uQ7.esm.js.map +0 -1
  113. package/dist/esm/AzurePullRequestsIcon-DOAkj-X3.esm.js.map +0 -1
  114. package/dist/esm/PullRequestsPage-CkhRQsgx.esm.js +0 -610
  115. package/dist/esm/PullRequestsPage-CkhRQsgx.esm.js.map +0 -1
  116. package/dist/esm/getAnnotationValuesFromEntity-G8YVs-3R.esm.js.map +0 -1
  117. package/dist/esm/index-1Rl7C23d.esm.js +0 -102
  118. package/dist/esm/index-1Rl7C23d.esm.js.map +0 -1
  119. package/dist/esm/index-BJ_pWnMh.esm.js.map +0 -1
  120. package/dist/esm/index-Bo-6jkQA.esm.js +0 -178
  121. package/dist/esm/index-Bo-6jkQA.esm.js.map +0 -1
  122. package/dist/esm/index-Bwu2-Sgs.esm.js.map +0 -1
  123. package/dist/esm/index-W1pvc5vi.esm.js +0 -25
  124. package/dist/esm/index-W1pvc5vi.esm.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export { EntityPageAzurePullRequests } from './EntityPageAzurePullRequests.esm.js';
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import Box from '@material-ui/core/Box';
2
+ import { ResponseErrorPanel, Table, Link } from '@backstage/core-components';
3
+ import React from 'react';
4
+ import { AzureGitTagsIcon } from '../AzureGitTagsIcon/AzureGitTagsIcon.esm.js';
5
+ import { useEntity } from '@backstage/plugin-catalog-react';
6
+ import { useGitTags } from '../../hooks/useGitTags.esm.js';
7
+
8
+ const columns = [
9
+ {
10
+ title: "Tag",
11
+ field: "name",
12
+ highlight: false,
13
+ defaultSort: "desc",
14
+ width: "auto",
15
+ render: (row) => {
16
+ var _a;
17
+ return /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(Link, { to: (_a = row.link) != null ? _a : "" }, row.name));
18
+ }
19
+ },
20
+ {
21
+ title: "Commit",
22
+ field: "peeledObjectId",
23
+ width: "auto",
24
+ render: (row) => {
25
+ var _a;
26
+ return /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(Link, { to: (_a = row.commitLink) != null ? _a : "" }, row.peeledObjectId));
27
+ }
28
+ },
29
+ {
30
+ title: "Created By",
31
+ field: "createdBy",
32
+ width: "auto"
33
+ }
34
+ ];
35
+ const GitTagTable = () => {
36
+ const { entity } = useEntity();
37
+ const { items, loading, error } = useGitTags(entity);
38
+ if (error) {
39
+ return /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error });
40
+ }
41
+ return /* @__PURE__ */ React.createElement(
42
+ Table,
43
+ {
44
+ isLoading: loading,
45
+ columns,
46
+ options: {
47
+ search: true,
48
+ paging: true,
49
+ pageSize: 5,
50
+ showEmptyDataSourceMessage: !loading
51
+ },
52
+ title: /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(AzureGitTagsIcon, { style: { fontSize: 30 } }), /* @__PURE__ */ React.createElement(Box, { mr: 1 }), "Azure Repos - Git Tags (", items ? items.length : 0, ")"),
53
+ data: items != null ? items : []
54
+ }
55
+ );
56
+ };
57
+
58
+ export { GitTagTable };
59
+ //# sourceMappingURL=GitTagTable.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitTagTable.esm.js","sources":["../../../src/components/GitTagTable/GitTagTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 Box from '@material-ui/core/Box';\nimport {\n Link,\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport { GitTag } from '@backstage-community/plugin-azure-devops-common';\nimport React from 'react';\n\nimport { AzureGitTagsIcon } from '../AzureGitTagsIcon';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { useGitTags } from '../../hooks/useGitTags';\n\nconst columns: TableColumn[] = [\n {\n title: 'Tag',\n field: 'name',\n highlight: false,\n defaultSort: 'desc',\n width: 'auto',\n render: (row: Partial<GitTag>) => (\n <Box display=\"flex\" alignItems=\"center\">\n <Link to={row.link ?? ''}>{row.name}</Link>\n </Box>\n ),\n },\n {\n title: 'Commit',\n field: 'peeledObjectId',\n width: 'auto',\n render: (row: Partial<GitTag>) => (\n <Box display=\"flex\" alignItems=\"center\">\n <Link to={row.commitLink ?? ''}>{row.peeledObjectId}</Link>\n </Box>\n ),\n },\n {\n title: 'Created By',\n field: 'createdBy',\n width: 'auto',\n },\n];\n\nexport const GitTagTable = () => {\n const { entity } = useEntity();\n\n const { items, loading, error } = useGitTags(entity);\n\n if (error) {\n return <ResponseErrorPanel error={error} />;\n }\n\n return (\n <Table\n isLoading={loading}\n columns={columns}\n options={{\n search: true,\n paging: true,\n pageSize: 5,\n showEmptyDataSourceMessage: !loading,\n }}\n title={\n <Box display=\"flex\" alignItems=\"center\">\n <AzureGitTagsIcon style={{ fontSize: 30 }} />\n <Box mr={1} />\n Azure Repos - Git Tags ({items ? items.length : 0})\n </Box>\n }\n data={items ?? []}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AA8BA,MAAM,OAAyB,GAAA;AAAA,EAC7B;AAAA,IACE,KAAO,EAAA,KAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,IACP,SAAW,EAAA,KAAA;AAAA,IACX,WAAa,EAAA,MAAA;AAAA,IACb,KAAO,EAAA,MAAA;AAAA,IACP,MAAA,EAAQ,CAAC,GAAsB,KAAA;AArCnC,MAAA,IAAA,EAAA,CAAA;AAsCM,MAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,OAAA,EAAQ,MAAO,EAAA,UAAA,EAAW,4BAC5B,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAI,EAAA,CAAA,EAAA,GAAA,GAAA,CAAI,IAAJ,KAAA,IAAA,GAAA,EAAA,GAAY,EAAK,EAAA,EAAA,GAAA,CAAI,IAAK,CACtC,CAAA,CAAA;AAAA,KAAA;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAO,EAAA,QAAA;AAAA,IACP,KAAO,EAAA,gBAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,IACP,MAAA,EAAQ,CAAC,GAAsB,KAAA;AA/CnC,MAAA,IAAA,EAAA,CAAA;AAgDM,MAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,OAAA,EAAQ,MAAO,EAAA,UAAA,EAAW,4BAC5B,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAI,EAAA,CAAA,EAAA,GAAA,GAAA,CAAI,UAAJ,KAAA,IAAA,GAAA,EAAA,GAAkB,EAAK,EAAA,EAAA,GAAA,CAAI,cAAe,CACtD,CAAA,CAAA;AAAA,KAAA;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAO,EAAA,YAAA;AAAA,IACP,KAAO,EAAA,WAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,GACT;AACF,CAAA,CAAA;AAEO,MAAM,cAAc,MAAM;AAC/B,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,SAAU,EAAA,CAAA;AAE7B,EAAA,MAAM,EAAE,KAAO,EAAA,OAAA,EAAS,KAAM,EAAA,GAAI,WAAW,MAAM,CAAA,CAAA;AAEnD,EAAA,IAAI,KAAO,EAAA;AACT,IAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,sBAAmB,KAAc,EAAA,CAAA,CAAA;AAAA,GAC3C;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,OAAA;AAAA,MACX,OAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,QACR,MAAQ,EAAA,IAAA;AAAA,QACR,QAAU,EAAA,CAAA;AAAA,QACV,4BAA4B,CAAC,OAAA;AAAA,OAC/B;AAAA,MACA,KAAA,kBACG,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,OAAQ,EAAA,MAAA,EAAO,YAAW,QAC7B,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,gBAAiB,EAAA,EAAA,KAAA,EAAO,EAAE,QAAA,EAAU,IAAM,EAAA,CAAA,kBAC1C,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,EAAI,EAAA,CAAA,EAAG,CAAE,EAAA,0BAAA,EACW,KAAQ,GAAA,KAAA,CAAM,MAAS,GAAA,CAAA,EAAE,GACpD,CAAA;AAAA,MAEF,IAAA,EAAM,wBAAS,EAAC;AAAA,KAAA;AAAA,GAClB,CAAA;AAEJ;;;;"}
@@ -0,0 +1,41 @@
1
+ import Button from '@material-ui/core/Button';
2
+ import ButtonGroup from '@material-ui/core/ButtonGroup';
3
+ import { PullRequestStatus } from '@backstage-community/plugin-azure-devops-common';
4
+ import React from 'react';
5
+
6
+ const PullRequestStatusButtonGroup = ({
7
+ status,
8
+ setStatus
9
+ }) => {
10
+ return /* @__PURE__ */ React.createElement(ButtonGroup, { "aria-label": "outlined button group" }, /* @__PURE__ */ React.createElement(
11
+ Button,
12
+ {
13
+ color: status === PullRequestStatus.Active ? "primary" : "default",
14
+ onClick: () => {
15
+ setStatus(PullRequestStatus.Active);
16
+ }
17
+ },
18
+ "Active"
19
+ ), /* @__PURE__ */ React.createElement(
20
+ Button,
21
+ {
22
+ color: status === PullRequestStatus.Completed ? "primary" : "default",
23
+ onClick: () => {
24
+ setStatus(PullRequestStatus.Completed);
25
+ }
26
+ },
27
+ "Completed"
28
+ ), /* @__PURE__ */ React.createElement(
29
+ Button,
30
+ {
31
+ color: status === PullRequestStatus.Abandoned ? "primary" : "default",
32
+ onClick: () => {
33
+ setStatus(PullRequestStatus.Abandoned);
34
+ }
35
+ },
36
+ "Abandoned"
37
+ ));
38
+ };
39
+
40
+ export { PullRequestStatusButtonGroup };
41
+ //# sourceMappingURL=PullRequestStatusButtonGroup.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestStatusButtonGroup.esm.js","sources":["../../../src/components/PullRequestStatusButtonGroup/PullRequestStatusButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 Button from '@material-ui/core/Button';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\n\nimport { PullRequestStatus } from '@backstage-community/plugin-azure-devops-common';\nimport React from 'react';\n\nexport const PullRequestStatusButtonGroup = ({\n status,\n setStatus,\n}: {\n status: PullRequestStatus;\n setStatus: (pullRequestStatus: PullRequestStatus) => void;\n}) => {\n return (\n <ButtonGroup aria-label=\"outlined button group\">\n <Button\n color={status === PullRequestStatus.Active ? 'primary' : 'default'}\n onClick={() => {\n setStatus(PullRequestStatus.Active);\n }}\n >\n Active\n </Button>\n <Button\n color={status === PullRequestStatus.Completed ? 'primary' : 'default'}\n onClick={() => {\n setStatus(PullRequestStatus.Completed);\n }}\n >\n Completed\n </Button>\n <Button\n color={status === PullRequestStatus.Abandoned ? 'primary' : 'default'}\n onClick={() => {\n setStatus(PullRequestStatus.Abandoned);\n }}\n >\n Abandoned\n </Button>\n </ButtonGroup>\n );\n};\n"],"names":[],"mappings":";;;;;AAsBO,MAAM,+BAA+B,CAAC;AAAA,EAC3C,MAAA;AAAA,EACA,SAAA;AACF,CAGM,KAAA;AACJ,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,WAAY,EAAA,EAAA,YAAA,EAAW,uBACtB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA,KAAW,iBAAkB,CAAA,MAAA,GAAS,SAAY,GAAA,SAAA;AAAA,MACzD,SAAS,MAAM;AACb,QAAA,SAAA,CAAU,kBAAkB,MAAM,CAAA,CAAA;AAAA,OACpC;AAAA,KAAA;AAAA,IACD,QAAA;AAAA,GAGD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA,KAAW,iBAAkB,CAAA,SAAA,GAAY,SAAY,GAAA,SAAA;AAAA,MAC5D,SAAS,MAAM;AACb,QAAA,SAAA,CAAU,kBAAkB,SAAS,CAAA,CAAA;AAAA,OACvC;AAAA,KAAA;AAAA,IACD,WAAA;AAAA,GAGD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA,KAAW,iBAAkB,CAAA,SAAA,GAAY,SAAY,GAAA,SAAA;AAAA,MAC5D,SAAS,MAAM;AACb,QAAA,SAAA,CAAU,kBAAkB,SAAS,CAAA,CAAA;AAAA,OACvC;AAAA,KAAA;AAAA,IACD,WAAA;AAAA,GAGH,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,93 @@
1
+ import Box from '@material-ui/core/Box';
2
+ import Chip from '@material-ui/core/Chip';
3
+ import { ResponseErrorPanel, Table, Link } from '@backstage/core-components';
4
+ import { PullRequestStatus } from '@backstage-community/plugin-azure-devops-common';
5
+ import React, { useState } from 'react';
6
+ import { AzurePullRequestsIcon } from '../AzurePullRequestsIcon/AzurePullRequestsIcon.esm.js';
7
+ import { DateTime } from 'luxon';
8
+ import { PullRequestStatusButtonGroup } from '../PullRequestStatusButtonGroup/PullRequestStatusButtonGroup.esm.js';
9
+ import { useEntity } from '@backstage/plugin-catalog-react';
10
+ import { usePullRequests } from '../../hooks/usePullRequests.esm.js';
11
+
12
+ const columns = [
13
+ {
14
+ title: "ID",
15
+ field: "pullRequestId",
16
+ highlight: false,
17
+ width: "auto"
18
+ },
19
+ {
20
+ title: "Title",
21
+ field: "title",
22
+ width: "auto",
23
+ render: (row) => {
24
+ var _a;
25
+ return /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(Link, { to: (_a = row.link) != null ? _a : "" }, row.title), row.isDraft && /* @__PURE__ */ React.createElement(Box, { paddingLeft: 1 }, /* @__PURE__ */ React.createElement(
26
+ Chip,
27
+ {
28
+ label: "Draft",
29
+ variant: "outlined",
30
+ color: "secondary",
31
+ size: "small"
32
+ }
33
+ )));
34
+ }
35
+ },
36
+ {
37
+ title: "Source",
38
+ field: "sourceRefName",
39
+ width: "auto"
40
+ },
41
+ {
42
+ title: "Target",
43
+ field: "targetRefName",
44
+ width: "auto"
45
+ },
46
+ {
47
+ title: "Created By",
48
+ field: "createdBy",
49
+ width: "auto"
50
+ },
51
+ {
52
+ title: "Created",
53
+ field: "creationDate",
54
+ width: "auto",
55
+ render: (row) => (row.creationDate ? DateTime.fromISO(row.creationDate) : DateTime.now()).toRelative()
56
+ }
57
+ ];
58
+ const PullRequestTable = ({ defaultLimit }) => {
59
+ const [pullRequestStatusState, setPullRequestStatusState] = useState(PullRequestStatus.Active);
60
+ const { entity } = useEntity();
61
+ const { items, loading, error } = usePullRequests(
62
+ entity,
63
+ defaultLimit,
64
+ pullRequestStatusState
65
+ );
66
+ if (error) {
67
+ return /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error });
68
+ }
69
+ return /* @__PURE__ */ React.createElement(
70
+ Table,
71
+ {
72
+ isLoading: loading,
73
+ columns,
74
+ options: {
75
+ search: true,
76
+ paging: true,
77
+ pageSize: 5,
78
+ showEmptyDataSourceMessage: !loading
79
+ },
80
+ title: /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(AzurePullRequestsIcon, { style: { fontSize: 30 } }), /* @__PURE__ */ React.createElement(Box, { mr: 1 }), "Azure Repos - Pull Requests (", items ? items.length : 0, ")", /* @__PURE__ */ React.createElement(Box, { position: "absolute", right: 320, top: 20 }, /* @__PURE__ */ React.createElement(
81
+ PullRequestStatusButtonGroup,
82
+ {
83
+ status: pullRequestStatusState,
84
+ setStatus: setPullRequestStatusState
85
+ }
86
+ ))),
87
+ data: items != null ? items : []
88
+ }
89
+ );
90
+ };
91
+
92
+ export { PullRequestTable };
93
+ //# sourceMappingURL=PullRequestTable.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestTable.esm.js","sources":["../../../src/components/PullRequestTable/PullRequestTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 Box from '@material-ui/core/Box';\nimport Chip from '@material-ui/core/Chip';\nimport {\n Link,\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport {\n PullRequest,\n PullRequestStatus,\n} from '@backstage-community/plugin-azure-devops-common';\nimport React, { useState } from 'react';\n\nimport { AzurePullRequestsIcon } from '../AzurePullRequestsIcon';\nimport { DateTime } from 'luxon';\nimport { PullRequestStatusButtonGroup } from '../PullRequestStatusButtonGroup';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { usePullRequests } from '../../hooks/usePullRequests';\n\nconst columns: TableColumn[] = [\n {\n title: 'ID',\n field: 'pullRequestId',\n highlight: false,\n width: 'auto',\n },\n {\n title: 'Title',\n field: 'title',\n width: 'auto',\n render: (row: Partial<PullRequest>) => (\n <Box display=\"flex\" alignItems=\"center\">\n <Link to={row.link ?? ''}>{row.title}</Link>\n {row.isDraft && (\n <Box paddingLeft={1}>\n <Chip\n label=\"Draft\"\n variant=\"outlined\"\n color=\"secondary\"\n size=\"small\"\n />\n </Box>\n )}\n </Box>\n ),\n },\n {\n title: 'Source',\n field: 'sourceRefName',\n width: 'auto',\n },\n {\n title: 'Target',\n field: 'targetRefName',\n width: 'auto',\n },\n {\n title: 'Created By',\n field: 'createdBy',\n width: 'auto',\n },\n {\n title: 'Created',\n field: 'creationDate',\n width: 'auto',\n render: (row: Partial<PullRequest>) =>\n (row.creationDate\n ? DateTime.fromISO(row.creationDate)\n : DateTime.now()\n ).toRelative(),\n },\n];\n\ntype PullRequestTableProps = {\n defaultLimit?: number;\n};\n\nexport const PullRequestTable = ({ defaultLimit }: PullRequestTableProps) => {\n const [pullRequestStatusState, setPullRequestStatusState] =\n useState<PullRequestStatus>(PullRequestStatus.Active);\n const { entity } = useEntity();\n\n const { items, loading, error } = usePullRequests(\n entity,\n defaultLimit,\n pullRequestStatusState,\n );\n\n if (error) {\n return <ResponseErrorPanel error={error} />;\n }\n\n return (\n <Table\n isLoading={loading}\n columns={columns}\n options={{\n search: true,\n paging: true,\n pageSize: 5,\n showEmptyDataSourceMessage: !loading,\n }}\n title={\n <Box display=\"flex\" alignItems=\"center\">\n <AzurePullRequestsIcon style={{ fontSize: 30 }} />\n <Box mr={1} />\n Azure Repos - Pull Requests ({items ? items.length : 0})\n <Box position=\"absolute\" right={320} top={20}>\n <PullRequestStatusButtonGroup\n status={pullRequestStatusState}\n setStatus={setPullRequestStatusState}\n />\n </Box>\n </Box>\n }\n data={items ?? []}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAoCA,MAAM,OAAyB,GAAA;AAAA,EAC7B;AAAA,IACE,KAAO,EAAA,IAAA;AAAA,IACP,KAAO,EAAA,eAAA;AAAA,IACP,SAAW,EAAA,KAAA;AAAA,IACX,KAAO,EAAA,MAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAO,EAAA,OAAA;AAAA,IACP,KAAO,EAAA,OAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,IACP,MAAA,EAAQ,CAAC,GAA2B,KAAA;AA/CxC,MAAA,IAAA,EAAA,CAAA;AAgDM,MAAC,uBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,SAAQ,MAAO,EAAA,UAAA,EAAW,4BAC5B,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,KAAI,EAAI,GAAA,GAAA,CAAA,IAAA,KAAJ,YAAY,EAAK,EAAA,EAAA,GAAA,CAAI,KAAM,CACpC,EAAA,GAAA,CAAI,2BACF,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,aAAa,CAChB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,KAAM,EAAA,OAAA;AAAA,UACN,OAAQ,EAAA,UAAA;AAAA,UACR,KAAM,EAAA,WAAA;AAAA,UACN,IAAK,EAAA,OAAA;AAAA,SAAA;AAAA,OAET,CAEJ,CAAA,CAAA;AAAA,KAAA;AAAA,GAEJ;AAAA,EACA;AAAA,IACE,KAAO,EAAA,QAAA;AAAA,IACP,KAAO,EAAA,eAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAO,EAAA,QAAA;AAAA,IACP,KAAO,EAAA,eAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAO,EAAA,YAAA;AAAA,IACP,KAAO,EAAA,WAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,KAAO,EAAA,SAAA;AAAA,IACP,KAAO,EAAA,cAAA;AAAA,IACP,KAAO,EAAA,MAAA;AAAA,IACP,MAAQ,EAAA,CAAC,GACN,KAAA,CAAA,GAAA,CAAI,YACD,GAAA,QAAA,CAAS,OAAQ,CAAA,GAAA,CAAI,YAAY,CAAA,GACjC,QAAS,CAAA,GAAA,IACX,UAAW,EAAA;AAAA,GACjB;AACF,CAAA,CAAA;AAMO,MAAM,gBAAmB,GAAA,CAAC,EAAE,YAAA,EAA0C,KAAA;AAC3E,EAAA,MAAM,CAAC,sBAAwB,EAAA,yBAAyB,CACtD,GAAA,QAAA,CAA4B,kBAAkB,MAAM,CAAA,CAAA;AACtD,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,SAAU,EAAA,CAAA;AAE7B,EAAA,MAAM,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAU,GAAA,eAAA;AAAA,IAChC,MAAA;AAAA,IACA,YAAA;AAAA,IACA,sBAAA;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,sBAAmB,KAAc,EAAA,CAAA,CAAA;AAAA,GAC3C;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,OAAA;AAAA,MACX,OAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,QACR,MAAQ,EAAA,IAAA;AAAA,QACR,QAAU,EAAA,CAAA;AAAA,QACV,4BAA4B,CAAC,OAAA;AAAA,OAC/B;AAAA,MACA,KACE,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,OAAA,EAAQ,QAAO,UAAW,EAAA,QAAA,EAAA,kBAC5B,KAAA,CAAA,aAAA,CAAA,qBAAA,EAAA,EAAsB,KAAO,EAAA,EAAE,QAAU,EAAA,EAAA,IAAM,CAChD,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,EAAA,EAAI,CAAG,EAAA,CAAA,EAAE,+BACgB,EAAA,KAAA,GAAQ,MAAM,MAAS,GAAA,CAAA,EAAE,GACvD,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAI,QAAS,EAAA,UAAA,EAAW,KAAO,EAAA,GAAA,EAAK,KAAK,EACxC,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,4BAAA;AAAA,QAAA;AAAA,UACC,MAAQ,EAAA,sBAAA;AAAA,UACR,SAAW,EAAA,yBAAA;AAAA,SAAA;AAAA,OAEf,CACF,CAAA;AAAA,MAEF,IAAA,EAAM,wBAAS,EAAC;AAAA,KAAA;AAAA,GAClB,CAAA;AAEJ;;;;"}
@@ -0,0 +1,79 @@
1
+ import { Page, Header, Content, Progress, ResponseErrorPanel } from '@backstage/core-components';
2
+ import React, { useState } from 'react';
3
+ import { getPullRequestGroupConfigs, getPullRequestGroups } from './lib/utils.esm.js';
4
+ import { FilterType } from './lib/filters/types.esm.js';
5
+ import 'luxon';
6
+ import 'humanize-duration';
7
+ import { azureDevOpsPullRequestDashboardReadPermission } from '@backstage-community/plugin-azure-devops-common';
8
+ import { PullRequestGrid } from './lib/PullRequestGrid/PullRequestGrid.esm.js';
9
+ import '../../api/AzureDevOpsApi.esm.js';
10
+ import '@backstage/errors';
11
+ import '@backstage/core-plugin-api';
12
+ import 'react-use/esm/useAsync';
13
+ import { useDashboardPullRequests } from '../../hooks/useDashboardPullRequests.esm.js';
14
+ import '@backstage/catalog-model';
15
+ import { useFilterProcessor } from './lib/hooks/useFilterProcessor.esm.js';
16
+ import { RequirePermission } from '@backstage/plugin-permission-react';
17
+
18
+ const PullRequestsPageContent = ({
19
+ pullRequestGroups,
20
+ loading,
21
+ error
22
+ }) => {
23
+ if (loading && (!pullRequestGroups || pullRequestGroups.length <= 0)) {
24
+ return /* @__PURE__ */ React.createElement(Progress, null);
25
+ }
26
+ if (error) {
27
+ return /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error });
28
+ }
29
+ return /* @__PURE__ */ React.createElement(PullRequestGrid, { pullRequestGroups: pullRequestGroups != null ? pullRequestGroups : [] });
30
+ };
31
+ const DEFAULT_COLUMN_CONFIGS = [
32
+ {
33
+ title: "Created by me",
34
+ filters: [{ type: FilterType.CreatedByCurrentUser }],
35
+ simplified: false
36
+ },
37
+ {
38
+ title: "Other PRs",
39
+ filters: [{ type: FilterType.All }],
40
+ simplified: true
41
+ }
42
+ ];
43
+ const PullRequestsPage = (props) => {
44
+ const { projectName, pollingInterval, defaultColumnConfigs, teamsLimit } = props;
45
+ const { pullRequests, loading, error } = useDashboardPullRequests(
46
+ projectName,
47
+ pollingInterval,
48
+ teamsLimit
49
+ );
50
+ const [columnConfigs] = useState(
51
+ defaultColumnConfigs != null ? defaultColumnConfigs : DEFAULT_COLUMN_CONFIGS
52
+ );
53
+ const filterProcessor = useFilterProcessor();
54
+ const pullRequestGroupConfigs = getPullRequestGroupConfigs(
55
+ columnConfigs,
56
+ filterProcessor
57
+ );
58
+ const pullRequestGroups = getPullRequestGroups(
59
+ pullRequests,
60
+ pullRequestGroupConfigs
61
+ );
62
+ return /* @__PURE__ */ React.createElement(Page, { themeId: "tool" }, /* @__PURE__ */ React.createElement(Header, { title: "Azure Pull Requests" }), /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(
63
+ RequirePermission,
64
+ {
65
+ permission: azureDevOpsPullRequestDashboardReadPermission
66
+ },
67
+ /* @__PURE__ */ React.createElement(
68
+ PullRequestsPageContent,
69
+ {
70
+ pullRequestGroups,
71
+ loading,
72
+ error
73
+ }
74
+ )
75
+ )));
76
+ };
77
+
78
+ export { PullRequestsPage };
79
+ //# sourceMappingURL=PullRequestsPage.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestsPage.esm.js","sources":["../../../src/components/PullRequestsPage/PullRequestsPage.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 Content,\n Header,\n Page,\n Progress,\n ResponseErrorPanel,\n} from '@backstage/core-components';\nimport { PullRequestColumnConfig, PullRequestGroup } from './lib/types';\nimport React, { useState } from 'react';\nimport { getPullRequestGroupConfigs, getPullRequestGroups } from './lib/utils';\nimport { FilterType } from './lib/filters';\nimport { PullRequestGrid } from './lib/PullRequestGrid';\nimport { useDashboardPullRequests } from '../../hooks';\nimport { useFilterProcessor } from './lib/hooks';\nimport { RequirePermission } from '@backstage/plugin-permission-react';\nimport { azureDevOpsPullRequestDashboardReadPermission } from '@backstage-community/plugin-azure-devops-common';\n\ntype PullRequestsPageContentProps = {\n pullRequestGroups: PullRequestGroup[] | undefined;\n loading: boolean;\n error?: Error;\n};\n\nconst PullRequestsPageContent = ({\n pullRequestGroups,\n loading,\n error,\n}: PullRequestsPageContentProps) => {\n if (loading && (!pullRequestGroups || pullRequestGroups.length <= 0)) {\n return <Progress />;\n }\n\n if (error) {\n return <ResponseErrorPanel error={error} />;\n }\n\n return <PullRequestGrid pullRequestGroups={pullRequestGroups ?? []} />;\n};\n\nconst DEFAULT_COLUMN_CONFIGS: PullRequestColumnConfig[] = [\n {\n title: 'Created by me',\n filters: [{ type: FilterType.CreatedByCurrentUser }],\n simplified: false,\n },\n {\n title: 'Other PRs',\n filters: [{ type: FilterType.All }],\n simplified: true,\n },\n];\n\ntype PullRequestsPageProps = {\n projectName?: string;\n pollingInterval?: number;\n defaultColumnConfigs?: PullRequestColumnConfig[];\n teamsLimit?: number;\n};\n\nexport const PullRequestsPage = (props: PullRequestsPageProps) => {\n const { projectName, pollingInterval, defaultColumnConfigs, teamsLimit } =\n props;\n\n const { pullRequests, loading, error } = useDashboardPullRequests(\n projectName,\n pollingInterval,\n teamsLimit,\n );\n\n const [columnConfigs] = useState(\n defaultColumnConfigs ?? DEFAULT_COLUMN_CONFIGS,\n );\n\n const filterProcessor = useFilterProcessor();\n\n const pullRequestGroupConfigs = getPullRequestGroupConfigs(\n columnConfigs,\n filterProcessor,\n );\n\n const pullRequestGroups = getPullRequestGroups(\n pullRequests,\n pullRequestGroupConfigs,\n );\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Azure Pull Requests\" />\n <Content>\n <RequirePermission\n permission={azureDevOpsPullRequestDashboardReadPermission}\n >\n <PullRequestsPageContent\n pullRequestGroups={pullRequestGroups}\n loading={loading}\n error={error}\n />\n </RequirePermission>\n </Content>\n </Page>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuCA,MAAM,0BAA0B,CAAC;AAAA,EAC/B,iBAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AACF,CAAoC,KAAA;AAClC,EAAA,IAAI,OAAY,KAAA,CAAC,iBAAqB,IAAA,iBAAA,CAAkB,UAAU,CAAI,CAAA,EAAA;AACpE,IAAA,2CAAQ,QAAS,EAAA,IAAA,CAAA,CAAA;AAAA,GACnB;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,sBAAmB,KAAc,EAAA,CAAA,CAAA;AAAA,GAC3C;AAEA,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA,EAAgB,iBAAmB,EAAA,iBAAA,IAAA,IAAA,GAAA,iBAAA,GAAqB,EAAI,EAAA,CAAA,CAAA;AACtE,CAAA,CAAA;AAEA,MAAM,sBAAoD,GAAA;AAAA,EACxD;AAAA,IACE,KAAO,EAAA,eAAA;AAAA,IACP,SAAS,CAAC,EAAE,IAAM,EAAA,UAAA,CAAW,sBAAsB,CAAA;AAAA,IACnD,UAAY,EAAA,KAAA;AAAA,GACd;AAAA,EACA;AAAA,IACE,KAAO,EAAA,WAAA;AAAA,IACP,SAAS,CAAC,EAAE,IAAM,EAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IAClC,UAAY,EAAA,IAAA;AAAA,GACd;AACF,CAAA,CAAA;AASa,MAAA,gBAAA,GAAmB,CAAC,KAAiC,KAAA;AAChE,EAAA,MAAM,EAAE,WAAA,EAAa,eAAiB,EAAA,oBAAA,EAAsB,YAC1D,GAAA,KAAA,CAAA;AAEF,EAAA,MAAM,EAAE,YAAA,EAAc,OAAS,EAAA,KAAA,EAAU,GAAA,wBAAA;AAAA,IACvC,WAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,CAAC,aAAa,CAAI,GAAA,QAAA;AAAA,IACtB,oBAAwB,IAAA,IAAA,GAAA,oBAAA,GAAA,sBAAA;AAAA,GAC1B,CAAA;AAEA,EAAA,MAAM,kBAAkB,kBAAmB,EAAA,CAAA;AAE3C,EAAA,MAAM,uBAA0B,GAAA,0BAAA;AAAA,IAC9B,aAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAoB,GAAA,oBAAA;AAAA,IACxB,YAAA;AAAA,IACA,uBAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,OAAA,EAAQ,MACZ,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAO,KAAM,EAAA,qBAAA,EAAsB,CACpC,kBAAA,KAAA,CAAA,aAAA,CAAC,OACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,6CAAA;AAAA,KAAA;AAAA,oBAEZ,KAAA,CAAA,aAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,iBAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,OAAA;AAAA,KACF;AAAA,GAEJ,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,6 @@
1
+ export { PullRequestsPage } from './PullRequestsPage.esm.js';
2
+ export { FilterType } from './lib/filters/types.esm.js';
3
+ import 'luxon';
4
+ import 'humanize-duration';
5
+ import '@backstage-community/plugin-azure-devops-common';
6
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,16 @@
1
+ import DoneAllIcon from '@material-ui/icons/DoneAll';
2
+ import React from 'react';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+
5
+ const useStyles = makeStyles((theme) => ({
6
+ root: (props) => ({
7
+ color: props.hasAutoComplete ? theme.palette.success.main : theme.palette.grey[400]
8
+ })
9
+ }));
10
+ const AutoCompleteIcon = (props) => {
11
+ const classes = useStyles(props);
12
+ return /* @__PURE__ */ React.createElement(DoneAllIcon, { className: classes.root });
13
+ };
14
+
15
+ export { AutoCompleteIcon };
16
+ //# sourceMappingURL=AutoCompleteIcon.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoCompleteIcon.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/AutoCompleteIcon/AutoCompleteIcon.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 DoneAllIcon from '@material-ui/icons/DoneAll';\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n root: (props: { hasAutoComplete: boolean }) => ({\n color: props.hasAutoComplete\n ? theme.palette.success.main\n : theme.palette.grey[400],\n }),\n}));\n\nexport const AutoCompleteIcon = (props: { hasAutoComplete: boolean }) => {\n const classes = useStyles(props);\n return <DoneAllIcon className={classes.root} />;\n};\n"],"names":[],"mappings":";;;;AAoBA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,IAAA,EAAM,CAAC,KAAyC,MAAA;AAAA,IAC9C,KAAA,EAAO,KAAM,CAAA,eAAA,GACT,KAAM,CAAA,OAAA,CAAQ,QAAQ,IACtB,GAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,GAC5B,CAAA;AACF,CAAE,CAAA,CAAA,CAAA;AAEW,MAAA,gBAAA,GAAmB,CAAC,KAAwC,KAAA;AACvE,EAAM,MAAA,OAAA,GAAU,UAAU,KAAK,CAAA,CAAA;AAC/B,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,SAAW,EAAA,OAAA,CAAQ,IAAM,EAAA,CAAA,CAAA;AAC/C;;;;"}
@@ -0,0 +1,86 @@
1
+ import { Link, Avatar } from '@backstage/core-components';
2
+ import Card from '@material-ui/core/Card';
3
+ import CardContent from '@material-ui/core/CardContent';
4
+ import CardHeader from '@material-ui/core/CardHeader';
5
+ import Typography from '@material-ui/core/Typography';
6
+ import { AutoCompleteIcon } from '../AutoCompleteIcon/AutoCompleteIcon.esm.js';
7
+ import { DateTime } from 'luxon';
8
+ import { PullRequestCardPolicies } from './PullRequestCardPolicies.esm.js';
9
+ import { PullRequestCardReviewers } from './PullRequestCardReviewers.esm.js';
10
+ import React from 'react';
11
+ import { makeStyles } from '@material-ui/core/styles';
12
+
13
+ const useStyles = makeStyles(
14
+ (theme) => ({
15
+ card: {
16
+ backgroundColor: theme.palette.type === "dark" ? theme.palette.grey[700] : theme.palette.common.white
17
+ },
18
+ cardHeaderSimplified: {
19
+ paddingBottom: theme.spacing(2)
20
+ },
21
+ cardHeaderAction: {
22
+ display: "flex",
23
+ alignSelf: "center",
24
+ margin: 0
25
+ },
26
+ content: {
27
+ display: "flex",
28
+ flexDirection: "row"
29
+ },
30
+ policies: {
31
+ flex: 1
32
+ },
33
+ avatar: { width: "2.5rem", height: "2.5rem" },
34
+ avatarText: { fontSize: "1rem" }
35
+ }),
36
+ { name: "PullRequestCard" }
37
+ );
38
+ const PullRequestCard = ({
39
+ pullRequest,
40
+ simplified
41
+ }) => {
42
+ var _a, _b, _c, _d, _e, _f;
43
+ const classes = useStyles();
44
+ const title = /* @__PURE__ */ React.createElement(Link, { to: (_a = pullRequest.link) != null ? _a : "", title: pullRequest.description }, pullRequest.title);
45
+ const repoLink = /* @__PURE__ */ React.createElement(Link, { to: (_c = (_b = pullRequest.repository) == null ? void 0 : _b.url) != null ? _c : "", color: "inherit" }, (_d = pullRequest.repository) == null ? void 0 : _d.name);
46
+ const creationDate = pullRequest.creationDate ? DateTime.fromISO(pullRequest.creationDate).toRelative() : void 0;
47
+ const subheader = /* @__PURE__ */ React.createElement(Typography, { component: "span" }, repoLink, " \xB7 ", creationDate);
48
+ const avatar = /* @__PURE__ */ React.createElement(
49
+ Avatar,
50
+ {
51
+ displayName: (_e = pullRequest.createdBy) == null ? void 0 : _e.displayName,
52
+ picture: (_f = pullRequest.createdBy) == null ? void 0 : _f.imageUrl,
53
+ classes: { avatar: classes.avatar, avatarText: classes.avatarText }
54
+ }
55
+ );
56
+ return /* @__PURE__ */ React.createElement(
57
+ Card,
58
+ {
59
+ classes: { root: classes.card },
60
+ "data-pull-request-id": pullRequest.pullRequestId
61
+ },
62
+ /* @__PURE__ */ React.createElement(
63
+ CardHeader,
64
+ {
65
+ avatar,
66
+ title,
67
+ subheader,
68
+ action: /* @__PURE__ */ React.createElement(AutoCompleteIcon, { hasAutoComplete: pullRequest.hasAutoComplete }),
69
+ classes: {
70
+ ...simplified && { root: classes.cardHeaderSimplified },
71
+ action: classes.cardHeaderAction
72
+ }
73
+ }
74
+ ),
75
+ !simplified && /* @__PURE__ */ React.createElement(CardContent, { className: classes.content }, pullRequest.policies && /* @__PURE__ */ React.createElement(
76
+ PullRequestCardPolicies,
77
+ {
78
+ policies: pullRequest.policies,
79
+ className: classes.policies
80
+ }
81
+ ), pullRequest.reviewers && /* @__PURE__ */ React.createElement(PullRequestCardReviewers, { reviewers: pullRequest.reviewers }))
82
+ );
83
+ };
84
+
85
+ export { PullRequestCard };
86
+ //# sourceMappingURL=PullRequestCard.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestCard.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/PullRequestCard/PullRequestCard.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Avatar, Link } from '@backstage/core-components';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Typography from '@material-ui/core/Typography';\n\nimport { AutoCompleteIcon } from '../AutoCompleteIcon';\nimport { DashboardPullRequest } from '@backstage-community/plugin-azure-devops-common';\nimport { DateTime } from 'luxon';\nimport { PullRequestCardPolicies } from './PullRequestCardPolicies';\nimport { PullRequestCardReviewers } from './PullRequestCardReviewers';\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n theme => ({\n card: {\n backgroundColor:\n theme.palette.type === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.common.white,\n },\n cardHeaderSimplified: {\n paddingBottom: theme.spacing(2),\n },\n cardHeaderAction: {\n display: 'flex',\n alignSelf: 'center',\n margin: 0,\n },\n content: {\n display: 'flex',\n flexDirection: 'row',\n },\n policies: {\n flex: 1,\n },\n avatar: { width: '2.5rem', height: '2.5rem' },\n avatarText: { fontSize: '1rem' },\n }),\n { name: 'PullRequestCard' },\n);\n\ntype PullRequestCardProps = {\n pullRequest: DashboardPullRequest;\n simplified?: boolean;\n};\n\nexport const PullRequestCard = ({\n pullRequest,\n simplified,\n}: PullRequestCardProps) => {\n const classes = useStyles();\n\n const title = (\n <Link to={pullRequest.link ?? ''} title={pullRequest.description}>\n {pullRequest.title}\n </Link>\n );\n\n const repoLink = (\n <Link to={pullRequest.repository?.url ?? ''} color=\"inherit\">\n {pullRequest.repository?.name}\n </Link>\n );\n\n const creationDate = pullRequest.creationDate\n ? DateTime.fromISO(pullRequest.creationDate).toRelative()\n : undefined;\n\n const subheader = (\n <Typography component=\"span\">\n {repoLink} · {creationDate}\n </Typography>\n );\n\n const avatar = (\n <Avatar\n displayName={pullRequest.createdBy?.displayName}\n picture={pullRequest.createdBy?.imageUrl}\n classes={{ avatar: classes.avatar, avatarText: classes.avatarText }}\n />\n );\n\n return (\n <Card\n classes={{ root: classes.card }}\n data-pull-request-id={pullRequest.pullRequestId}\n >\n <CardHeader\n avatar={avatar}\n title={title}\n subheader={subheader}\n action={\n <AutoCompleteIcon hasAutoComplete={pullRequest.hasAutoComplete} />\n }\n classes={{\n ...(simplified && { root: classes.cardHeaderSimplified }),\n action: classes.cardHeaderAction,\n }}\n />\n\n {!simplified && (\n <CardContent className={classes.content}>\n {pullRequest.policies && (\n <PullRequestCardPolicies\n policies={pullRequest.policies}\n className={classes.policies}\n />\n )}\n\n {pullRequest.reviewers && (\n <PullRequestCardReviewers reviewers={pullRequest.reviewers} />\n )}\n </CardContent>\n )}\n </Card>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { PullRequestCardPolicy } from './PullRequestCardPolicy.esm.js';
2
+ import React from 'react';
3
+
4
+ const PullRequestCardPolicies = ({
5
+ policies,
6
+ className
7
+ }) => /* @__PURE__ */ React.createElement("div", { className }, policies.map((policy) => /* @__PURE__ */ React.createElement(PullRequestCardPolicy, { key: policy.id, policy })));
8
+
9
+ export { PullRequestCardPolicies };
10
+ //# sourceMappingURL=PullRequestCardPolicies.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestCardPolicies.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicies.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Policy } from '@backstage-community/plugin-azure-devops-common';\nimport { PullRequestCardPolicy } from './PullRequestCardPolicy';\nimport React from 'react';\n\ntype PullRequestCardProps = {\n policies: Policy[];\n className: string;\n};\n\nexport const PullRequestCardPolicies = ({\n policies,\n className,\n}: PullRequestCardProps) => (\n <div className={className}>\n {policies.map(policy => (\n <PullRequestCardPolicy key={policy.id} policy={policy} />\n ))}\n </div>\n);\n"],"names":[],"mappings":";;;AAyBO,MAAM,0BAA0B,CAAC;AAAA,EACtC,QAAA;AAAA,EACA,SAAA;AACF,CAAA,qBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SACF,EAAA,EAAA,QAAA,CAAS,GAAI,CAAA,CAAA,MAAA,qBACX,KAAA,CAAA,aAAA,CAAA,qBAAA,EAAA,EAAsB,GAAK,EAAA,MAAA,CAAO,EAAI,EAAA,MAAA,EAAgB,CACxD,CACH;;;;"}
@@ -0,0 +1,66 @@
1
+ import { PolicyType, PolicyEvaluationStatus } from '@backstage-community/plugin-azure-devops-common';
2
+ import { withStyles, styled } from '@material-ui/core/styles';
3
+ import Typography from '@material-ui/core/Typography';
4
+ import CancelIcon from '@material-ui/icons/Cancel';
5
+ import GroupWorkIcon from '@material-ui/icons/GroupWork';
6
+ import React from 'react';
7
+ import WatchLaterIcon from '@material-ui/icons/WatchLater';
8
+
9
+ const PolicyRequiredIcon = withStyles(
10
+ (theme) => ({
11
+ root: {
12
+ color: theme.palette.info.main
13
+ }
14
+ }),
15
+ { name: "PolicyRequiredIcon" }
16
+ )(WatchLaterIcon);
17
+ const PolicyIssueIcon = withStyles(
18
+ (theme) => ({
19
+ root: {
20
+ color: theme.palette.error.main
21
+ }
22
+ }),
23
+ { name: "PolicyIssueIcon" }
24
+ )(CancelIcon);
25
+ const PolicyInProgressIcon = withStyles(
26
+ (theme) => ({
27
+ root: {
28
+ color: theme.palette.info.main
29
+ }
30
+ }),
31
+ { name: "PolicyInProgressIcon" }
32
+ )(GroupWorkIcon);
33
+ function getPolicyIcon(policy) {
34
+ switch (policy.type) {
35
+ case PolicyType.Build:
36
+ switch (policy.status) {
37
+ case PolicyEvaluationStatus.Running:
38
+ return /* @__PURE__ */ React.createElement(PolicyInProgressIcon, null);
39
+ case PolicyEvaluationStatus.Rejected:
40
+ return /* @__PURE__ */ React.createElement(PolicyIssueIcon, null);
41
+ case PolicyEvaluationStatus.Queued:
42
+ return /* @__PURE__ */ React.createElement(PolicyRequiredIcon, null);
43
+ default:
44
+ return null;
45
+ }
46
+ case PolicyType.MinimumReviewers:
47
+ case PolicyType.RequiredReviewers:
48
+ return /* @__PURE__ */ React.createElement(PolicyRequiredIcon, null);
49
+ case PolicyType.Status:
50
+ case PolicyType.Comments:
51
+ return /* @__PURE__ */ React.createElement(PolicyIssueIcon, null);
52
+ default:
53
+ return null;
54
+ }
55
+ }
56
+ const PullRequestCardPolicyContainer = styled("div")({
57
+ display: "flex",
58
+ alignItems: "center",
59
+ flexWrap: "wrap"
60
+ });
61
+ const PullRequestCardPolicy = ({
62
+ policy
63
+ }) => /* @__PURE__ */ React.createElement(PullRequestCardPolicyContainer, null, getPolicyIcon(policy), " ", /* @__PURE__ */ React.createElement(Typography, { component: "span" }, policy.text));
64
+
65
+ export { PullRequestCardPolicy };
66
+ //# sourceMappingURL=PullRequestCardPolicy.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestCardPolicy.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardPolicy.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 Policy,\n PolicyEvaluationStatus,\n PolicyType,\n} from '@backstage-community/plugin-azure-devops-common';\nimport { styled, withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\n\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport GroupWorkIcon from '@material-ui/icons/GroupWork';\nimport React from 'react';\nimport WatchLaterIcon from '@material-ui/icons/WatchLater';\n\nconst PolicyRequiredIcon = withStyles(\n theme => ({\n root: {\n color: theme.palette.info.main,\n },\n }),\n { name: 'PolicyRequiredIcon' },\n)(WatchLaterIcon);\n\nconst PolicyIssueIcon = withStyles(\n theme => ({\n root: {\n color: theme.palette.error.main,\n },\n }),\n { name: 'PolicyIssueIcon' },\n)(CancelIcon);\n\nconst PolicyInProgressIcon = withStyles(\n theme => ({\n root: {\n color: theme.palette.info.main,\n },\n }),\n { name: 'PolicyInProgressIcon' },\n)(GroupWorkIcon);\n\nfunction getPolicyIcon(policy: Policy): React.JSX.Element | null {\n switch (policy.type) {\n case PolicyType.Build:\n switch (policy.status) {\n case PolicyEvaluationStatus.Running:\n return <PolicyInProgressIcon />;\n case PolicyEvaluationStatus.Rejected:\n return <PolicyIssueIcon />;\n case PolicyEvaluationStatus.Queued:\n return <PolicyRequiredIcon />;\n default:\n return null;\n }\n case PolicyType.MinimumReviewers:\n case PolicyType.RequiredReviewers:\n return <PolicyRequiredIcon />;\n case PolicyType.Status:\n case PolicyType.Comments:\n return <PolicyIssueIcon />;\n default:\n return null;\n }\n}\n\nconst PullRequestCardPolicyContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n});\n\ntype PullRequestCardPolicyProps = {\n policy: Policy;\n};\n\nexport const PullRequestCardPolicy = ({\n policy,\n}: PullRequestCardPolicyProps) => (\n <PullRequestCardPolicyContainer>\n {getPolicyIcon(policy)}{' '}\n <Typography component=\"span\">{policy.text}</Typography>\n </PullRequestCardPolicyContainer>\n);\n"],"names":[],"mappings":";;;;;;;;AA6BA,MAAM,kBAAqB,GAAA,UAAA;AAAA,EACzB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,KAC5B;AAAA,GACF,CAAA;AAAA,EACA,EAAE,MAAM,oBAAqB,EAAA;AAC/B,CAAA,CAAE,cAAc,CAAA,CAAA;AAEhB,MAAM,eAAkB,GAAA,UAAA;AAAA,EACtB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,IAAA;AAAA,KAC7B;AAAA,GACF,CAAA;AAAA,EACA,EAAE,MAAM,iBAAkB,EAAA;AAC5B,CAAA,CAAE,UAAU,CAAA,CAAA;AAEZ,MAAM,oBAAuB,GAAA,UAAA;AAAA,EAC3B,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,KAC5B;AAAA,GACF,CAAA;AAAA,EACA,EAAE,MAAM,sBAAuB,EAAA;AACjC,CAAA,CAAE,aAAa,CAAA,CAAA;AAEf,SAAS,cAAc,MAA0C,EAAA;AAC/D,EAAA,QAAQ,OAAO,IAAM;AAAA,IACnB,KAAK,UAAW,CAAA,KAAA;AACd,MAAA,QAAQ,OAAO,MAAQ;AAAA,QACrB,KAAK,sBAAuB,CAAA,OAAA;AAC1B,UAAA,2CAAQ,oBAAqB,EAAA,IAAA,CAAA,CAAA;AAAA,QAC/B,KAAK,sBAAuB,CAAA,QAAA;AAC1B,UAAA,2CAAQ,eAAgB,EAAA,IAAA,CAAA,CAAA;AAAA,QAC1B,KAAK,sBAAuB,CAAA,MAAA;AAC1B,UAAA,2CAAQ,kBAAmB,EAAA,IAAA,CAAA,CAAA;AAAA,QAC7B;AACE,UAAO,OAAA,IAAA,CAAA;AAAA,OACX;AAAA,IACF,KAAK,UAAW,CAAA,gBAAA,CAAA;AAAA,IAChB,KAAK,UAAW,CAAA,iBAAA;AACd,MAAA,2CAAQ,kBAAmB,EAAA,IAAA,CAAA,CAAA;AAAA,IAC7B,KAAK,UAAW,CAAA,MAAA,CAAA;AAAA,IAChB,KAAK,UAAW,CAAA,QAAA;AACd,MAAA,2CAAQ,eAAgB,EAAA,IAAA,CAAA,CAAA;AAAA,IAC1B;AACE,MAAO,OAAA,IAAA,CAAA;AAAA,GACX;AACF,CAAA;AAEA,MAAM,8BAAA,GAAiC,MAAO,CAAA,KAAK,CAAE,CAAA;AAAA,EACnD,OAAS,EAAA,MAAA;AAAA,EACT,UAAY,EAAA,QAAA;AAAA,EACZ,QAAU,EAAA,MAAA;AACZ,CAAC,CAAA,CAAA;AAMM,MAAM,wBAAwB,CAAC;AAAA,EACpC,MAAA;AACF,CAAA,qBACG,KAAA,CAAA,aAAA,CAAA,8BAAA,EAAA,IAAA,EACE,aAAc,CAAA,MAAM,CAAG,EAAA,GAAA,kBACvB,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,SAAU,EAAA,MAAA,EAAA,EAAQ,MAAO,CAAA,IAAK,CAC5C;;;;"}
@@ -0,0 +1,33 @@
1
+ import { Avatar } from '@backstage/core-components';
2
+ import React from 'react';
3
+ import { makeStyles } from '@material-ui/core/styles';
4
+
5
+ const useStyles = makeStyles(
6
+ {
7
+ avatar: {
8
+ width: "2.5rem",
9
+ height: "2.5rem",
10
+ border: "0.3rem solid silver"
11
+ },
12
+ avatarText: {
13
+ fontSize: "1rem"
14
+ }
15
+ },
16
+ { name: "PullRequestCardReviewer" }
17
+ );
18
+ const PullRequestCardReviewer = ({
19
+ reviewer
20
+ }) => {
21
+ const classes = useStyles();
22
+ return /* @__PURE__ */ React.createElement(
23
+ Avatar,
24
+ {
25
+ displayName: reviewer.displayName,
26
+ picture: reviewer.imageUrl,
27
+ classes
28
+ }
29
+ );
30
+ };
31
+
32
+ export { PullRequestCardReviewer };
33
+ //# sourceMappingURL=PullRequestCardReviewer.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestCardReviewer.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewer.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Avatar } from '@backstage/core-components';\nimport React from 'react';\nimport { Reviewer } from '@backstage-community/plugin-azure-devops-common';\nimport { makeStyles } from '@material-ui/core/styles';\n\ntype PullRequestCardReviewerProps = {\n reviewer: Reviewer;\n};\n\nconst useStyles = makeStyles(\n {\n avatar: {\n width: '2.5rem',\n height: '2.5rem',\n border: '0.3rem solid silver',\n },\n avatarText: {\n fontSize: '1rem',\n },\n },\n { name: 'PullRequestCardReviewer' },\n);\n\nexport const PullRequestCardReviewer = ({\n reviewer,\n}: PullRequestCardReviewerProps) => {\n const classes = useStyles();\n\n return (\n <Avatar\n displayName={reviewer.displayName}\n picture={reviewer.imageUrl}\n classes={classes}\n />\n );\n};\n"],"names":[],"mappings":";;;;AAyBA,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB;AAAA,IACE,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA,QAAA;AAAA,MACP,MAAQ,EAAA,QAAA;AAAA,MACR,MAAQ,EAAA,qBAAA;AAAA,KACV;AAAA,IACA,UAAY,EAAA;AAAA,MACV,QAAU,EAAA,MAAA;AAAA,KACZ;AAAA,GACF;AAAA,EACA,EAAE,MAAM,yBAA0B,EAAA;AACpC,CAAA,CAAA;AAEO,MAAM,0BAA0B,CAAC;AAAA,EACtC,QAAA;AACF,CAAoC,KAAA;AAClC,EAAA,MAAM,UAAU,SAAU,EAAA,CAAA;AAE1B,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAa,QAAS,CAAA,WAAA;AAAA,MACtB,SAAS,QAAS,CAAA,QAAA;AAAA,MAClB,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,17 @@
1
+ import { PullRequestCardReviewer } from './PullRequestCardReviewer.esm.js';
2
+ import React from 'react';
3
+ import { reviewerFilter } from '../utils.esm.js';
4
+ import { styled } from '@material-ui/core/styles';
5
+
6
+ const PullRequestCardReviewersContainer = styled("div")({
7
+ "& > *": {
8
+ marginTop: 4,
9
+ marginBottom: 4
10
+ }
11
+ });
12
+ const PullRequestCardReviewers = ({
13
+ reviewers
14
+ }) => /* @__PURE__ */ React.createElement(PullRequestCardReviewersContainer, null, reviewers.filter(reviewerFilter).map((reviewer) => /* @__PURE__ */ React.createElement(PullRequestCardReviewer, { key: reviewer.id, reviewer })));
15
+
16
+ export { PullRequestCardReviewers };
17
+ //# sourceMappingURL=PullRequestCardReviewers.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullRequestCardReviewers.esm.js","sources":["../../../../../src/components/PullRequestsPage/lib/PullRequestCard/PullRequestCardReviewers.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { PullRequestCardReviewer } from './PullRequestCardReviewer';\nimport React from 'react';\nimport { Reviewer } from '@backstage-community/plugin-azure-devops-common';\nimport { reviewerFilter } from '../utils';\nimport { styled } from '@material-ui/core/styles';\n\nconst PullRequestCardReviewersContainer = styled('div')({\n '& > *': {\n marginTop: 4,\n marginBottom: 4,\n },\n});\n\ntype PullRequestCardReviewersProps = {\n reviewers: Reviewer[];\n};\n\nexport const PullRequestCardReviewers = ({\n reviewers,\n}: PullRequestCardReviewersProps) => (\n <PullRequestCardReviewersContainer>\n {reviewers.filter(reviewerFilter).map(reviewer => (\n <PullRequestCardReviewer key={reviewer.id} reviewer={reviewer} />\n ))}\n </PullRequestCardReviewersContainer>\n);\n"],"names":[],"mappings":";;;;;AAsBA,MAAM,iCAAA,GAAoC,MAAO,CAAA,KAAK,CAAE,CAAA;AAAA,EACtD,OAAS,EAAA;AAAA,IACP,SAAW,EAAA,CAAA;AAAA,IACX,YAAc,EAAA,CAAA;AAAA,GAChB;AACF,CAAC,CAAA,CAAA;AAMM,MAAM,2BAA2B,CAAC;AAAA,EACvC,SAAA;AACF,CAAA,qBACG,KAAA,CAAA,aAAA,CAAA,iCAAA,EAAA,IAAA,EACE,SAAU,CAAA,MAAA,CAAO,cAAc,CAAE,CAAA,GAAA,CAAI,CACpC,QAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,2BAAwB,GAAK,EAAA,QAAA,CAAS,EAAI,EAAA,QAAA,EAAoB,CAChE,CACH;;;;"}