@rh-support/cases 2.6.219 → 2.6.227

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 (162) hide show
  1. package/lib/esm/components/case/NewCaseButton.js +1 -1
  2. package/lib/esm/components/case-list/CaseList.d.ts +7 -0
  3. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  4. package/lib/esm/components/case-list/CaseList.js +135 -366
  5. package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
  6. package/lib/esm/components/case-list/CaseListContext.js +2 -5
  7. package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/CaseListFilterContext.js +1 -2
  9. package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +2 -3
  10. package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
  11. package/lib/esm/components/case-list/CaseListFilterHelpers.js +6 -19
  12. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +4 -36
  13. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
  14. package/lib/esm/components/case-list/CaseListFilterReducer.js +12 -6
  15. package/lib/esm/components/case-list/CaseListReducer.d.ts +10 -22
  16. package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
  17. package/lib/esm/components/case-list/CaseListReducer.js +7 -25
  18. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
  19. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +11 -18
  20. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
  21. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +2 -6
  22. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +7 -1
  23. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  24. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +16 -12
  25. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +5 -2
  26. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
  27. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +13 -14
  28. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
  29. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +14 -21
  30. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
  31. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +0 -3
  32. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +1 -11
  33. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
  34. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +70 -90
  35. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +3 -1
  36. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  37. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
  38. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +4 -5
  39. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  40. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +54 -15
  41. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +3 -0
  42. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  43. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +44 -18
  44. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +3 -0
  45. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  46. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +44 -14
  47. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +3 -1
  48. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  49. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +59 -60
  50. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +3 -8
  51. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  52. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +55 -88
  53. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +5 -0
  54. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  55. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +70 -51
  56. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
  57. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +15 -5
  58. package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
  59. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
  60. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +3 -2
  61. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -1
  62. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +0 -1
  63. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  64. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +0 -1
  65. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  66. package/lib/esm/components/case-list/case-search/CaseSearch.js +24 -55
  67. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
  68. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -2
  69. package/lib/esm/css/caseList.css +22 -183
  70. package/lib/esm/css/caseSearch.css +0 -114
  71. package/lib/esm/enums/case.d.ts +5 -13
  72. package/lib/esm/enums/case.d.ts.map +1 -1
  73. package/lib/esm/enums/case.js +3 -23
  74. package/lib/esm/enums/caseSearch.d.ts +0 -3
  75. package/lib/esm/enums/caseSearch.d.ts.map +1 -1
  76. package/lib/esm/enums/caseSearch.js +1 -2
  77. package/lib/esm/enums/filters.d.ts +1 -3
  78. package/lib/esm/enums/filters.d.ts.map +1 -1
  79. package/lib/esm/enums/filters.js +0 -2
  80. package/lib/esm/hooks/useCloseCase.d.ts.map +1 -1
  81. package/lib/esm/hooks/useCloseCase.js +21 -38
  82. package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
  83. package/lib/esm/hooks/useExportCaseListCSV.js +9 -1
  84. package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
  85. package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
  86. package/lib/esm/hooks/useFilterStateOnLoad.js +5 -7
  87. package/lib/esm/index.js +0 -1
  88. package/lib/esm/models/caseList.d.ts +0 -1
  89. package/lib/esm/models/caseList.d.ts.map +1 -1
  90. package/lib/esm/test-utils/mockData.d.ts +0 -1
  91. package/lib/esm/test-utils/mockData.d.ts.map +1 -1
  92. package/lib/esm/test-utils/mockData.js +1 -2
  93. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  94. package/lib/esm/utils/caseSearchUtils.js +2 -39
  95. package/lib/esm/utils/constants.d.ts +1 -5
  96. package/lib/esm/utils/constants.d.ts.map +1 -1
  97. package/lib/esm/utils/constants.js +2 -10
  98. package/lib/esm/utils/mockSolrResponse.js +1 -1
  99. package/package.json +8 -10
  100. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts +0 -3
  101. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts.map +0 -1
  102. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.js +0 -177
  103. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts +0 -9
  104. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts.map +0 -1
  105. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.js +0 -105
  106. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +0 -8
  107. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +0 -1
  108. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +0 -8
  109. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +0 -10
  110. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +0 -1
  111. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +0 -29
  112. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +0 -10
  113. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +0 -1
  114. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +0 -16
  115. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +0 -9
  116. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +0 -1
  117. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +0 -21
  118. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +0 -12
  119. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +0 -1
  120. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +0 -31
  121. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +0 -10
  122. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +0 -1
  123. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +0 -10
  124. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +0 -10
  125. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +0 -1
  126. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +0 -92
  127. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +0 -9
  128. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +0 -1
  129. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +0 -20
  130. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +0 -9
  131. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +0 -1
  132. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +0 -28
  133. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +0 -9
  134. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +0 -1
  135. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +0 -241
  136. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +0 -11
  137. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +0 -1
  138. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +0 -23
  139. package/lib/esm/hooks/useCaseLabels.d.ts +0 -14
  140. package/lib/esm/hooks/useCaseLabels.d.ts.map +0 -1
  141. package/lib/esm/hooks/useCaseLabels.js +0 -55
  142. package/lib/esm/utils/advanceSearchFormMapper.d.ts +0 -11
  143. package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +0 -1
  144. package/lib/esm/utils/advanceSearchFormMapper.js +0 -71
  145. package/lib/esm/utils/advanceSearchUtils.d.ts +0 -24
  146. package/lib/esm/utils/advanceSearchUtils.d.ts.map +0 -1
  147. package/lib/esm/utils/advanceSearchUtils.js +0 -150
  148. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts +0 -12
  149. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts.map +0 -1
  150. package/lib/esm/utils/caseGroupDefaultFilterUtils.js +0 -34
  151. package/lib/esm/utils/caseGroupDefaultUtils.d.ts +0 -10
  152. package/lib/esm/utils/caseGroupDefaultUtils.d.ts.map +0 -1
  153. package/lib/esm/utils/caseGroupDefaultUtils.js +0 -20
  154. package/lib/esm/utils/caseListGraphQLUtils.d.ts +0 -28
  155. package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +0 -1
  156. package/lib/esm/utils/caseListGraphQLUtils.js +0 -280
  157. package/lib/esm/utils/caseListMapper.d.ts +0 -6
  158. package/lib/esm/utils/caseListMapper.d.ts.map +0 -1
  159. package/lib/esm/utils/caseListMapper.js +0 -44
  160. package/lib/esm/utils/caseListVariablesBuilder.d.ts +0 -15
  161. package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +0 -1
  162. package/lib/esm/utils/caseListVariablesBuilder.js +0 -517
@@ -1,280 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { GET_CASES_BY_FILTERS, GET_GROUP_IDS_BY_NAME, GET_PRODUCTS, GET_USER_IDS_BY_FEDERATION, } from '@rh-support/utils';
11
- import { SolrKeys, SolrPivotKeys } from '../enums/filters';
12
- import { mapGraphQLResponseToCaseList } from './caseListMapper';
13
- import { createGraphQLVariablesFromFilterState, getOwnerFederationIdsToResolve, } from './caseListVariablesBuilder';
14
- const pageCursors = new Map();
15
- /**
16
- * Workaround step 1 for Assigned To (case OwnerId): lookup RedHatSupportUser and
17
- * RedHatSupportGroup IDs by federation ID or name. Pre-resolved here and passed into
18
- * createGraphQLVariablesFromFilterState as OwnerId — do not use nested Owner filters on the case where clause.
19
- */
20
- function resolveOwnerIds(searchTerms, apolloClient) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- var _a, _b, _c, _d, _e, _f, _g, _h;
23
- if (!searchTerms.length)
24
- return [];
25
- const ownerIds = [];
26
- for (const searchTerm of searchTerms) {
27
- try {
28
- const [userResult, groupResult] = yield Promise.all([
29
- apolloClient.query({
30
- query: GET_USER_IDS_BY_FEDERATION,
31
- variables: {
32
- searchTerm,
33
- namePattern: `%${searchTerm}%`,
34
- },
35
- fetchPolicy: 'cache-first',
36
- }),
37
- apolloClient.query({
38
- query: GET_GROUP_IDS_BY_NAME,
39
- variables: {
40
- namePattern: `%${searchTerm}%`,
41
- },
42
- fetchPolicy: 'cache-first',
43
- }),
44
- ]);
45
- const userEdges = ((_d = (_c = (_b = (_a = userResult.data) === null || _a === void 0 ? void 0 : _a.redhat_support_uiapi) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.RedHatSupportUser) === null || _d === void 0 ? void 0 : _d.edges) || [];
46
- userEdges.forEach((edge) => {
47
- var _a, _b, _c;
48
- const federationId = (_b = (_a = edge.node) === null || _a === void 0 ? void 0 : _a.FederationIdentifier) === null || _b === void 0 ? void 0 : _b.value;
49
- if (((_c = edge.node) === null || _c === void 0 ? void 0 : _c.Id) && federationId) {
50
- ownerIds.push(edge.node.Id);
51
- }
52
- });
53
- const groupEdges = ((_h = (_g = (_f = (_e = groupResult.data) === null || _e === void 0 ? void 0 : _e.redhat_support_uiapi) === null || _f === void 0 ? void 0 : _f.query) === null || _g === void 0 ? void 0 : _g.RedHatSupportGroup) === null || _h === void 0 ? void 0 : _h.edges) || [];
54
- groupEdges.forEach((edge) => {
55
- var _a;
56
- if ((_a = edge.node) === null || _a === void 0 ? void 0 : _a.Id) {
57
- ownerIds.push(edge.node.Id);
58
- }
59
- });
60
- }
61
- catch (error) {
62
- console.error('[GraphQL] Failed to resolve owner IDs:', error);
63
- }
64
- }
65
- return [...new Set(ownerIds)];
66
- });
67
- }
68
- export function clearPageCursors() {
69
- pageCursors.clear();
70
- }
71
- function getCursorForPage(page) {
72
- var _a;
73
- if (page <= 1)
74
- return undefined;
75
- return (_a = pageCursors.get(page)) !== null && _a !== void 0 ? _a : undefined;
76
- }
77
- function storeEndCursor(currentPage, endCursor) {
78
- pageCursors.set(currentPage + 1, endCursor);
79
- }
80
- /**
81
- * Resolves missing Product2 IDs for product/version filters loaded from URL.
82
- * When filters come from the UI, IDs are already set by ProductsFilter/VersionsFilter.
83
- * When filters come from a URL (which only contains product/version names), this function
84
- * queries GraphQL to resolve names → IDs so buildProductFilter can construct the where clause.
85
- * Uses cache-first policy to avoid redundant network calls.
86
- */
87
- function resolveVersionProductIds(filterState, apolloClient) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
90
- const products = (_a = filterState.filterInfo) === null || _a === void 0 ? void 0 : _a[SolrPivotKeys.product_version];
91
- if (!(products === null || products === void 0 ? void 0 : products.length))
92
- return;
93
- for (const product of products) {
94
- // Resolve parent product ID by name (only needed for URL-based filters)
95
- if (!product.productId) {
96
- try {
97
- const { data: prodData } = yield apolloClient.query({
98
- query: GET_PRODUCTS,
99
- variables: {
100
- where: { Name: { eq: product.value }, IsActive: { eq: true } },
101
- first: 1,
102
- },
103
- fetchPolicy: 'cache-first',
104
- });
105
- const parentEdges = (_e = (_d = (_c = (_b = prodData === null || prodData === void 0 ? void 0 : prodData.redhat_support_uiapi) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.RedHatSupportProduct2) === null || _d === void 0 ? void 0 : _d.edges) !== null && _e !== void 0 ? _e : [];
106
- if (parentEdges.length > 0) {
107
- product.productId = parentEdges[0].node.Id;
108
- }
109
- }
110
- catch (_k) {
111
- // continue without parent ID
112
- }
113
- }
114
- const versions = product[SolrKeys.version];
115
- if (!(versions === null || versions === void 0 ? void 0 : versions.length) || !product.productId)
116
- continue;
117
- const hasUnresolvedVersions = versions.some((v) => v.productId === undefined || v.productId === null);
118
- if (!hasUnresolvedVersions)
119
- continue;
120
- // Fetch child products for this parent and match version names to their Product2 IDs
121
- try {
122
- const { data } = yield apolloClient.query({
123
- query: GET_PRODUCTS,
124
- variables: {
125
- where: { ParentProduct__c: { eq: product.productId }, IsActive: { eq: true } },
126
- first: 200,
127
- orderBy: { Name: { order: 'ASC' } },
128
- },
129
- fetchPolicy: 'cache-first',
130
- });
131
- const edges = (_j = (_h = (_g = (_f = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _f === void 0 ? void 0 : _f.query) === null || _g === void 0 ? void 0 : _g.RedHatSupportProduct2) === null || _h === void 0 ? void 0 : _h.edges) !== null && _j !== void 0 ? _j : [];
132
- const childProducts = edges.map((edge) => ({
133
- id: edge.node.Id,
134
- name: edge.node.Name.value,
135
- }));
136
- versions.forEach((ver) => {
137
- if (ver.productId)
138
- return;
139
- const match = childProducts.find((cp) => cp.name === ver.value || cp.name.endsWith(ver.value));
140
- if (match) {
141
- ver.productId = match.id;
142
- }
143
- });
144
- }
145
- catch (error) {
146
- console.error('[GraphQL] Failed to resolve version product IDs:', error);
147
- }
148
- }
149
- });
150
- }
151
- export function getCaseListFromGraphQL(filterState_1, apolloClient_1, limitOverride_1, signal_1, selectedCaseNumbers_1) {
152
- return __awaiter(this, arguments, void 0, function* (filterState, apolloClient, limitOverride, signal, selectedCaseNumbers, includeSecureSupportCases = false) {
153
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
154
- try {
155
- yield resolveVersionProductIds(filterState, apolloClient);
156
- // Pre-resolve Assigned To owner IDs — users and groups (see resolveOwnerIds / caseListVariablesBuilder comments).
157
- const federationIdsToResolve = getOwnerFederationIdsToResolve(filterState);
158
- let resolvedUserIds;
159
- if (federationIdsToResolve.length) {
160
- const ownerUserIds = yield resolveOwnerIds(federationIdsToResolve, apolloClient);
161
- resolvedUserIds = { ownerUserIds };
162
- }
163
- const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds, includeSecureSupportCases);
164
- if (limitOverride) {
165
- variables.first = limitOverride;
166
- }
167
- const currentPage = ((_a = filterState.paginationInfo) === null || _a === void 0 ? void 0 : _a.currentPage) || 1;
168
- if (selectedCaseNumbers === null || selectedCaseNumbers === void 0 ? void 0 : selectedCaseNumbers.length) {
169
- const caseNumberFilter = { CaseNumber__c: { in: selectedCaseNumbers } };
170
- variables.first = selectedCaseNumbers.length;
171
- if ((_b = variables.where) === null || _b === void 0 ? void 0 : _b.and) {
172
- variables.where.and.push(caseNumberFilter);
173
- }
174
- else if (variables.where) {
175
- variables.where = { and: [variables.where, caseNumberFilter] };
176
- }
177
- else {
178
- variables.where = caseNumberFilter;
179
- }
180
- variables.after = undefined;
181
- }
182
- else {
183
- variables.after = getCursorForPage(currentPage);
184
- }
185
- const { data, error } = yield apolloClient.query({
186
- query: GET_CASES_BY_FILTERS,
187
- variables,
188
- fetchPolicy: 'network-only',
189
- context: signal ? { fetchOptions: { signal } } : undefined,
190
- });
191
- const connection = (_d = (_c = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.RedHatSupportCase;
192
- if (!connection) {
193
- return {
194
- caseListResponse: { response: { docs: [], numFound: 0, start: 0 } },
195
- showErrorMessage: !!error,
196
- hasNextPage: false,
197
- endCursor: undefined,
198
- };
199
- }
200
- if ((_e = connection.pageInfo) === null || _e === void 0 ? void 0 : _e.endCursor) {
201
- storeEndCursor(currentPage, connection.pageInfo.endCursor);
202
- }
203
- const docs = mapGraphQLResponseToCaseList(connection.edges || []);
204
- return {
205
- caseListResponse: {
206
- response: {
207
- docs,
208
- numFound: connection.totalCount || 0,
209
- start: 0,
210
- },
211
- },
212
- showErrorMessage: false,
213
- hasNextPage: (_g = (_f = connection.pageInfo) === null || _f === void 0 ? void 0 : _f.hasNextPage) !== null && _g !== void 0 ? _g : false,
214
- endCursor: (_j = (_h = connection.pageInfo) === null || _h === void 0 ? void 0 : _h.endCursor) !== null && _j !== void 0 ? _j : undefined,
215
- };
216
- }
217
- catch (error) {
218
- if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' || ((_k = error === null || error === void 0 ? void 0 : error.message) === null || _k === void 0 ? void 0 : _k.includes('aborted')) || (signal === null || signal === void 0 ? void 0 : signal.aborted)) {
219
- return {
220
- caseListResponse: { response: { docs: [], numFound: 0, start: 0 } },
221
- showErrorMessage: false,
222
- hasNextPage: false,
223
- endCursor: undefined,
224
- };
225
- }
226
- console.error('[GraphQL] getCaseListFromGraphQL error:', error);
227
- return {
228
- caseListResponse: { response: { docs: [], numFound: 0, start: 0 } },
229
- showErrorMessage: true,
230
- hasNextPage: false,
231
- endCursor: undefined,
232
- };
233
- }
234
- });
235
- }
236
- /**
237
- * Fetches the next page of cases for infinite scroll.
238
- * Uses the provided `afterCursor` instead of the page-based cursor store.
239
- */
240
- export function loadMoreCases(filterState_1, apolloClient_1, afterCursor_1, signal_1) {
241
- return __awaiter(this, arguments, void 0, function* (filterState, apolloClient, afterCursor, signal, includeSecureSupportCases = false) {
242
- var _a, _b, _c, _d, _e, _f, _g;
243
- try {
244
- yield resolveVersionProductIds(filterState, apolloClient);
245
- // Pre-resolve Assigned To owner IDs — users and groups (see resolveOwnerIds / caseListVariablesBuilder comments).
246
- const federationIdsToResolve = getOwnerFederationIdsToResolve(filterState);
247
- let resolvedUserIds;
248
- if (federationIdsToResolve.length) {
249
- const ownerUserIds = yield resolveOwnerIds(federationIdsToResolve, apolloClient);
250
- resolvedUserIds = { ownerUserIds };
251
- }
252
- const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds, includeSecureSupportCases);
253
- variables.first = 20;
254
- variables.after = afterCursor;
255
- const { data } = yield apolloClient.query({
256
- query: GET_CASES_BY_FILTERS,
257
- variables,
258
- fetchPolicy: 'no-cache',
259
- context: Object.assign({ queryDeduplication: false }, (signal ? { fetchOptions: { signal } } : undefined)),
260
- });
261
- const connection = (_b = (_a = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.RedHatSupportCase;
262
- if (!connection) {
263
- return { docs: [], hasNextPage: false, endCursor: undefined };
264
- }
265
- const docs = mapGraphQLResponseToCaseList(connection.edges || []);
266
- return {
267
- docs,
268
- hasNextPage: (_d = (_c = connection.pageInfo) === null || _c === void 0 ? void 0 : _c.hasNextPage) !== null && _d !== void 0 ? _d : false,
269
- endCursor: (_f = (_e = connection.pageInfo) === null || _e === void 0 ? void 0 : _e.endCursor) !== null && _f !== void 0 ? _f : undefined,
270
- };
271
- }
272
- catch (error) {
273
- if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' || ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.includes('aborted')) || (signal === null || signal === void 0 ? void 0 : signal.aborted)) {
274
- throw error;
275
- }
276
- console.error('[GraphQL] loadMoreCases error:', error);
277
- throw error;
278
- }
279
- });
280
- }
@@ -1,6 +0,0 @@
1
- import { ICaseListItem, IGqlCaseNode } from '@rh-support/utils';
2
- export declare function mapGraphQLCaseToCaseListItem(node: IGqlCaseNode): ICaseListItem;
3
- export declare function mapGraphQLResponseToCaseList(edges: Array<{
4
- node: IGqlCaseNode;
5
- }>): ICaseListItem[];
6
- //# sourceMappingURL=caseListMapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caseListMapper.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAShE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAiC9E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,GAAG,aAAa,EAAE,CAElG"}
@@ -1,44 +0,0 @@
1
- import unescape from 'lodash/unescape';
2
- function mapCaseLabelNames(node) {
3
- var _a, _b;
4
- const edges = (_b = (_a = node.Case_Label_Links__r) === null || _a === void 0 ? void 0 : _a.edges) !== null && _b !== void 0 ? _b : [];
5
- const names = edges.map((edge) => { var _a, _b, _c; return (_c = (_b = (_a = edge.node) === null || _a === void 0 ? void 0 : _a.Label__r) === null || _b === void 0 ? void 0 : _b.Name) === null || _c === void 0 ? void 0 : _c.value; }).filter((name) => Boolean(name));
6
- return [...new Set(names)];
7
- }
8
- export function mapGraphQLCaseToCaseListItem(node) {
9
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
10
- const isEscalated = ((_a = node.IsEscalated) === null || _a === void 0 ? void 0 : _a.value) === true;
11
- return {
12
- id: node.Id || '',
13
- case_number: ((_b = node.CaseNumber__c) === null || _b === void 0 ? void 0 : _b.value) || '',
14
- case_summary: unescape(((_c = node.Subject) === null || _c === void 0 ? void 0 : _c.value) || ''),
15
- case_status: ((_d = node.Status) === null || _d === void 0 ? void 0 : _d.value) || '',
16
- case_severity: ((_e = node.Priority) === null || _e === void 0 ? void 0 : _e.value) || '',
17
- case_product: ((_h = (_g = (_f = node.Product) === null || _f === void 0 ? void 0 : _f.ParentProduct__r) === null || _g === void 0 ? void 0 : _g.Name) === null || _h === void 0 ? void 0 : _h.value)
18
- ? [node.Product.ParentProduct__r.Name.value]
19
- : ((_k = (_j = node.Product) === null || _j === void 0 ? void 0 : _j.Name) === null || _k === void 0 ? void 0 : _k.value)
20
- ? [node.Product.Name.value]
21
- : [],
22
- case_version: ((_m = (_l = node.Product) === null || _l === void 0 ? void 0 : _l.VersionName__c) === null || _m === void 0 ? void 0 : _m.value) || '',
23
- case_type: ((_o = node.Type) === null || _o === void 0 ? void 0 : _o.value) || '',
24
- case_accountNumber: ((_p = node.Account_Number__c) === null || _p === void 0 ? void 0 : _p.value) || '',
25
- case_contactName: ((_r = (_q = node.RedHatSupportContact) === null || _q === void 0 ? void 0 : _q.Name) === null || _r === void 0 ? void 0 : _r.value) || '',
26
- case_owner: ((_t = (_s = node.Owner) === null || _s === void 0 ? void 0 : _s.Name) === null || _t === void 0 ? void 0 : _t.value) || '',
27
- case_createdByName: ((_v = (_u = node.CreatedBy) === null || _u === void 0 ? void 0 : _u.Name) === null || _v === void 0 ? void 0 : _v.value) || '',
28
- case_createdDate: ((_w = node.CreatedDate) === null || _w === void 0 ? void 0 : _w.value) || '',
29
- case_lastModifiedByName: ((_y = (_x = node.LastModifiedBy) === null || _x === void 0 ? void 0 : _x.Name) === null || _y === void 0 ? void 0 : _y.value) || '',
30
- case_lastModifiedDate: ((_z = node.LastModifiedDate) === null || _z === void 0 ? void 0 : _z.value) || '',
31
- case_last_public_update_by: ((_1 = (_0 = node.LastModifiedBy) === null || _0 === void 0 ? void 0 : _0.Name) === null || _1 === void 0 ? void 0 : _1.value) || '',
32
- case_last_public_update_date: ((_2 = node.LastModifiedDate) === null || _2 === void 0 ? void 0 : _2.value) || '',
33
- case_customer_escalation: isEscalated,
34
- case_closedDate: ((_3 = node.ClosedDate) === null || _3 === void 0 ? void 0 : _3.value) || '',
35
- case_folderName: unescape(((_5 = (_4 = node.Group__r) === null || _4 === void 0 ? void 0 : _4.Name) === null || _5 === void 0 ? void 0 : _5.value) || ''),
36
- case_folderNumber: ((_6 = node.Group__c) === null || _6 === void 0 ? void 0 : _6.value) || ((_7 = node.Group__r) === null || _7 === void 0 ? void 0 : _7.Id) || '',
37
- case_alternate_id: unescape(((_8 = node.AlternateCaseId__c) === null || _8 === void 0 ? void 0 : _8.value) || ''),
38
- case_label: mapCaseLabelNames(node),
39
- uri: '',
40
- };
41
- }
42
- export function mapGraphQLResponseToCaseList(edges) {
43
- return edges.map((edge) => mapGraphQLCaseToCaseListItem(edge.node));
44
- }
@@ -1,15 +0,0 @@
1
- import type { ApolloClient } from '@apollo/client';
2
- import { ICaseListFilterState } from '../components/case-list/CaseListFilterReducer';
3
- export declare function getOwnerFederationIdsToResolve(filterState: ICaseListFilterState): string[];
4
- export interface IGraphQLCaseListVariables {
5
- after?: string;
6
- first: number;
7
- where?: Record<string, unknown>;
8
- orderBy?: Record<string, unknown>;
9
- }
10
- export interface IResolvedUserIds {
11
- /** Pre-resolved OwnerId values (RedHatSupportUser or RedHatSupportGroup). */
12
- ownerUserIds?: string[];
13
- }
14
- export declare function createGraphQLVariablesFromFilterState(filterState: ICaseListFilterState, apolloClient: ApolloClient, resolvedUserIds?: IResolvedUserIds, includeSecureSupportCases?: boolean): Promise<IGraphQLCaseListVariables>;
15
- //# sourceMappingURL=caseListVariablesBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"caseListVariablesBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListVariablesBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAcnD,OAAO,EAEH,oBAAoB,EAEvB,MAAM,+CAA+C,CAAC;AAMvD,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAM1F;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAqaD,wBAAsB,qCAAqC,CACvD,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,gBAAgB,EAClC,yBAAyB,UAAQ,GAClC,OAAO,CAAC,yBAAyB,CAAC,CAuIpC"}