@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.
- package/lib/esm/components/case/NewCaseButton.js +1 -1
- package/lib/esm/components/case-list/CaseList.d.ts +7 -0
- package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +135 -366
- package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListContext.js +2 -5
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.js +1 -2
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +2 -3
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.js +6 -19
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +4 -36
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +12 -6
- package/lib/esm/components/case-list/CaseListReducer.d.ts +10 -22
- package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListReducer.js +7 -25
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +11 -18
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +2 -6
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +7 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +16 -12
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +5 -2
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +13 -14
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +14 -21
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +0 -3
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +1 -11
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +70 -90
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +3 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +4 -5
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +54 -15
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +3 -0
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +44 -18
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +3 -0
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +44 -14
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +3 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +59 -60
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +3 -8
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +55 -88
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +5 -0
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +70 -51
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +15 -5
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +3 -2
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +0 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +0 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +24 -55
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -2
- package/lib/esm/css/caseList.css +22 -183
- package/lib/esm/css/caseSearch.css +0 -114
- package/lib/esm/enums/case.d.ts +5 -13
- package/lib/esm/enums/case.d.ts.map +1 -1
- package/lib/esm/enums/case.js +3 -23
- package/lib/esm/enums/caseSearch.d.ts +0 -3
- package/lib/esm/enums/caseSearch.d.ts.map +1 -1
- package/lib/esm/enums/caseSearch.js +1 -2
- package/lib/esm/enums/filters.d.ts +1 -3
- package/lib/esm/enums/filters.d.ts.map +1 -1
- package/lib/esm/enums/filters.js +0 -2
- package/lib/esm/hooks/useCloseCase.d.ts.map +1 -1
- package/lib/esm/hooks/useCloseCase.js +21 -38
- package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/hooks/useExportCaseListCSV.js +9 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.js +5 -7
- package/lib/esm/index.js +0 -1
- package/lib/esm/models/caseList.d.ts +0 -1
- package/lib/esm/models/caseList.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.d.ts +0 -1
- package/lib/esm/test-utils/mockData.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.js +1 -2
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +2 -39
- package/lib/esm/utils/constants.d.ts +1 -5
- package/lib/esm/utils/constants.d.ts.map +1 -1
- package/lib/esm/utils/constants.js +2 -10
- package/lib/esm/utils/mockSolrResponse.js +1 -1
- package/package.json +8 -10
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.js +0 -177
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts +0 -9
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.js +0 -105
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +0 -8
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +0 -8
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +0 -29
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +0 -16
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +0 -21
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +0 -12
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +0 -31
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +0 -92
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +0 -20
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +0 -28
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +0 -241
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +0 -11
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +0 -23
- package/lib/esm/hooks/useCaseLabels.d.ts +0 -14
- package/lib/esm/hooks/useCaseLabels.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseLabels.js +0 -55
- package/lib/esm/utils/advanceSearchFormMapper.d.ts +0 -11
- package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +0 -1
- package/lib/esm/utils/advanceSearchFormMapper.js +0 -71
- package/lib/esm/utils/advanceSearchUtils.d.ts +0 -24
- package/lib/esm/utils/advanceSearchUtils.d.ts.map +0 -1
- package/lib/esm/utils/advanceSearchUtils.js +0 -150
- package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts +0 -12
- package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseGroupDefaultFilterUtils.js +0 -34
- package/lib/esm/utils/caseGroupDefaultUtils.d.ts +0 -10
- package/lib/esm/utils/caseGroupDefaultUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseGroupDefaultUtils.js +0 -20
- package/lib/esm/utils/caseListGraphQLUtils.d.ts +0 -28
- package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseListGraphQLUtils.js +0 -280
- package/lib/esm/utils/caseListMapper.d.ts +0 -6
- package/lib/esm/utils/caseListMapper.d.ts.map +0 -1
- package/lib/esm/utils/caseListMapper.js +0 -44
- package/lib/esm/utils/caseListVariablesBuilder.d.ts +0 -15
- package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +0 -1
- 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"}
|