@rh-support/cases 2.6.170 → 2.6.173

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 (78) hide show
  1. package/lib/esm/components/case-list/CaseList.d.ts +7 -0
  2. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  3. package/lib/esm/components/case-list/CaseList.js +107 -106
  4. package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
  5. package/lib/esm/components/case-list/CaseListContext.js +2 -0
  6. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +1 -5
  7. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/CaseListFilterReducer.js +1 -2
  9. package/lib/esm/components/case-list/CaseListReducer.d.ts +8 -2
  10. package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
  11. package/lib/esm/components/case-list/CaseListReducer.js +13 -1
  12. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
  13. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +11 -18
  14. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
  15. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +2 -4
  16. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +7 -1
  17. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  18. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +15 -7
  19. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +5 -2
  20. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
  21. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +14 -14
  22. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +3 -1
  23. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  24. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
  25. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +4 -5
  26. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  27. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +54 -15
  28. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +3 -0
  29. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  30. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +44 -18
  31. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +3 -0
  32. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  33. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +44 -14
  34. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +3 -1
  35. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  36. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +32 -61
  37. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +1 -0
  38. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  39. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +6 -5
  40. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +5 -0
  41. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  42. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +68 -38
  43. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
  44. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +15 -5
  45. package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
  46. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
  47. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +3 -2
  48. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  49. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +0 -1
  50. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  51. package/lib/esm/components/case-list/case-search/CaseSearch.js +6 -6
  52. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
  53. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -2
  54. package/lib/esm/enums/case.d.ts +1 -2
  55. package/lib/esm/enums/case.d.ts.map +1 -1
  56. package/lib/esm/enums/case.js +1 -14
  57. package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
  58. package/lib/esm/hooks/useExportCaseListCSV.js +9 -1
  59. package/lib/esm/test-utils/mockData.js +1 -1
  60. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  61. package/lib/esm/utils/caseSearchUtils.js +1 -26
  62. package/lib/esm/utils/constants.d.ts +1 -2
  63. package/lib/esm/utils/constants.d.ts.map +1 -1
  64. package/lib/esm/utils/constants.js +3 -14
  65. package/lib/esm/utils/mockSolrResponse.js +1 -1
  66. package/package.json +6 -6
  67. package/lib/esm/utils/caseListGraphQLUtils.d.ts +0 -16
  68. package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +0 -1
  69. package/lib/esm/utils/caseListGraphQLUtils.js +0 -193
  70. package/lib/esm/utils/caseListMapper.d.ts +0 -6
  71. package/lib/esm/utils/caseListMapper.d.ts.map +0 -1
  72. package/lib/esm/utils/caseListMapper.js +0 -36
  73. package/lib/esm/utils/caseListVariablesBuilder.d.ts +0 -13
  74. package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +0 -1
  75. package/lib/esm/utils/caseListVariablesBuilder.js +0 -160
  76. package/lib/esm/utils/statusUtils.d.ts +0 -3
  77. package/lib/esm/utils/statusUtils.d.ts.map +0 -1
  78. package/lib/esm/utils/statusUtils.js +0 -22
@@ -1,160 +0,0 @@
1
- import { getTechnicalSupportRecordTypeId } from '@rh-support/utils';
2
- import { caseListSortColumnIdsToGraphQLMap } from '../enums/case';
3
- import { SolrKeys, SolrPivotKeys } from '../enums/filters';
4
- import { expandStatusGroupsToApiValues } from './statusUtils';
5
- export function getOwnerFederationIdsToResolve(filterState) {
6
- const { filterInfo } = filterState;
7
- if (!filterInfo)
8
- return [];
9
- const ownerSso = filterInfo[SolrKeys.caseOwner];
10
- const contactSso = filterInfo[SolrKeys.caseContactSSO];
11
- return [...new Set([...(ownerSso || []), ...(contactSso || [])])];
12
- }
13
- function buildOrderByFromSortInfo(sortInfo) {
14
- var _a;
15
- if (!(sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column))
16
- return { LastModifiedDate: { order: 'DESC' } };
17
- const gqlField = caseListSortColumnIdsToGraphQLMap[sortInfo.column];
18
- if (!gqlField)
19
- return { LastModifiedDate: { order: 'DESC' } };
20
- return { [gqlField]: { order: ((_a = sortInfo.direction) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'DESC' } };
21
- }
22
- function flattenAccountNumbers(accountFilters) {
23
- const numbers = [];
24
- accountFilters.forEach((item) => {
25
- if (Array.isArray(item.key)) {
26
- numbers.push(...item.key);
27
- }
28
- else if (item.key) {
29
- numbers.push(item.key);
30
- }
31
- });
32
- return [...new Set(numbers)];
33
- }
34
- function buildStatusFilter(statuses) {
35
- if (!(statuses === null || statuses === void 0 ? void 0 : statuses.length))
36
- return undefined;
37
- const expandedStatuses = expandStatusGroupsToApiValues(statuses);
38
- return { Status: { in: expandedStatuses } };
39
- }
40
- function buildProductFilter(products) {
41
- const conditions = [];
42
- const parentProductIds = [];
43
- const childProductIds = [];
44
- products.forEach((product) => {
45
- const versions = product[SolrKeys.version];
46
- if (versions === null || versions === void 0 ? void 0 : versions.length) {
47
- let hasVersionIds = false;
48
- versions.forEach((version) => {
49
- if (version.productId) {
50
- childProductIds.push(version.productId);
51
- hasVersionIds = true;
52
- }
53
- });
54
- // Fallback: if versions lack IDs (resolution failed), use parent product ID
55
- if (!hasVersionIds && product.productId) {
56
- parentProductIds.push(product.productId);
57
- }
58
- }
59
- else if (product.productId) {
60
- parentProductIds.push(product.productId);
61
- }
62
- });
63
- if (childProductIds.length) {
64
- conditions.push({ ProductId: { in: childProductIds } });
65
- }
66
- if (parentProductIds.length) {
67
- conditions.push({ Product: { ParentProduct__c: { in: parentProductIds } } });
68
- }
69
- return conditions;
70
- }
71
- function buildKeywordSearchFilter(queryString) {
72
- if (!queryString)
73
- return undefined;
74
- const keyword = queryString.replace(/\*$/g, '').trim();
75
- if (!keyword)
76
- return undefined;
77
- const caseNumberPattern = /^\d{8}$/;
78
- if (caseNumberPattern.test(keyword)) {
79
- return { CaseNumber__c: { eq: keyword } };
80
- }
81
- const likeValue = `%${keyword}%`;
82
- return {
83
- or: [{ Subject: { like: likeValue } }, { CaseNumber__c: { like: likeValue } }],
84
- };
85
- }
86
- export function createGraphQLVariablesFromFilterState(filterState, resolvedUserIds) {
87
- var _a;
88
- const { paginationInfo, sortInfo, filterInfo, filterQueryInfo } = filterState;
89
- const first = (paginationInfo === null || paginationInfo === void 0 ? void 0 : paginationInfo.pageSize) || 10;
90
- const orderBy = buildOrderByFromSortInfo(sortInfo);
91
- const andConditions = [];
92
- if (filterInfo) {
93
- const statusFilter = buildStatusFilter(filterInfo[SolrKeys.status]);
94
- if (statusFilter)
95
- andConditions.push(statusFilter);
96
- const severities = filterInfo[SolrKeys.severity];
97
- if (severities === null || severities === void 0 ? void 0 : severities.length) {
98
- andConditions.push({ Priority: { in: severities } });
99
- }
100
- const accounts = filterInfo[SolrKeys.accountNumber];
101
- if (accounts === null || accounts === void 0 ? void 0 : accounts.length) {
102
- const accountNumbers = flattenAccountNumbers(accounts);
103
- if (accountNumbers.length) {
104
- andConditions.push({ Account_Number__c: { in: accountNumbers } });
105
- }
106
- }
107
- // Product filter: uses stored parent/child Product2 IDs from filter state
108
- const products = filterInfo[SolrPivotKeys.product_version];
109
- if (products === null || products === void 0 ? void 0 : products.length) {
110
- const productConditions = buildProductFilter(products);
111
- if (productConditions.length === 1) {
112
- andConditions.push(productConditions[0]);
113
- }
114
- else if (productConditions.length > 1) {
115
- andConditions.push({ or: productConditions });
116
- }
117
- }
118
- const types = filterInfo[SolrKeys.type];
119
- if (types === null || types === void 0 ? void 0 : types.length) {
120
- andConditions.push({ Type: { in: types } });
121
- }
122
- const createdBySso = filterInfo[SolrKeys.createdBySsoUsername];
123
- const ssoOrConditions = [];
124
- if ((_a = resolvedUserIds === null || resolvedUserIds === void 0 ? void 0 : resolvedUserIds.ownerUserIds) === null || _a === void 0 ? void 0 : _a.length) {
125
- ssoOrConditions.push({ OwnerId: { in: resolvedUserIds.ownerUserIds } });
126
- }
127
- if (createdBySso === null || createdBySso === void 0 ? void 0 : createdBySso.length) {
128
- ssoOrConditions.push({ CreatedBy: { FederationIdentifier: { in: createdBySso } } });
129
- }
130
- if (ssoOrConditions.length === 1) {
131
- andConditions.push(ssoOrConditions[0]);
132
- }
133
- else if (ssoOrConditions.length > 1) {
134
- andConditions.push({ or: ssoOrConditions });
135
- }
136
- // TODO: Add group filter (case_folderNumber) when GraphQL field is available
137
- // TODO: Add case_alternate_id filter when GraphQL field is available
138
- }
139
- const escalation = filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.escalation];
140
- const technicalSupportId = getTechnicalSupportRecordTypeId();
141
- if (technicalSupportId) {
142
- andConditions.push({ RecordTypeId: { eq: technicalSupportId } });
143
- }
144
- if (escalation === null || escalation === void 0 ? void 0 : escalation.length) {
145
- andConditions.push({ IsEscalated: { eq: true } });
146
- }
147
- if (filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.queryString) {
148
- const keywordFilter = buildKeywordSearchFilter(filterQueryInfo.queryString);
149
- if (keywordFilter)
150
- andConditions.push(keywordFilter);
151
- }
152
- let where;
153
- if (andConditions.length === 1) {
154
- where = andConditions[0];
155
- }
156
- else if (andConditions.length > 1) {
157
- where = { and: andConditions };
158
- }
159
- return { first, where, orderBy };
160
- }
@@ -1,3 +0,0 @@
1
- export declare function expandStatusGroupsToApiValues(selectedStatuses: string[]): string[];
2
- export declare function mapSfdcStatusToPortalStatus(sfdcStatus: string): string;
3
- //# sourceMappingURL=statusUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statusUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/statusUtils.ts"],"names":[],"mappings":"AAEA,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWlF;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOtE"}
@@ -1,22 +0,0 @@
1
- import { PORTAL_STATUS_GROUPS } from './constants';
2
- export function expandStatusGroupsToApiValues(selectedStatuses) {
3
- const expanded = [];
4
- selectedStatuses.forEach((status) => {
5
- const group = PORTAL_STATUS_GROUPS[status];
6
- if (group) {
7
- expanded.push(...group);
8
- }
9
- else {
10
- expanded.push(status);
11
- }
12
- });
13
- return expanded;
14
- }
15
- export function mapSfdcStatusToPortalStatus(sfdcStatus) {
16
- for (const [portalStatus, sfdcStatuses] of Object.entries(PORTAL_STATUS_GROUPS)) {
17
- if (sfdcStatuses.includes(sfdcStatus)) {
18
- return portalStatus;
19
- }
20
- }
21
- return sfdcStatus;
22
- }