@rh-support/cases 2.6.235 → 2.7.11

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 (175) hide show
  1. package/lib/esm/components/case/NewCaseButton.js +1 -1
  2. package/lib/esm/components/case-list/CaseList.d.ts +0 -7
  3. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  4. package/lib/esm/components/case-list/CaseList.js +372 -137
  5. package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
  6. package/lib/esm/components/case-list/CaseListContext.js +5 -2
  7. package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/CaseListFilterContext.js +2 -1
  9. package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +3 -2
  10. package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
  11. package/lib/esm/components/case-list/CaseListFilterHelpers.js +19 -6
  12. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +36 -4
  13. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
  14. package/lib/esm/components/case-list/CaseListFilterReducer.js +6 -12
  15. package/lib/esm/components/case-list/CaseListReducer.d.ts +22 -10
  16. package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
  17. package/lib/esm/components/case-list/CaseListReducer.js +25 -7
  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 +18 -11
  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 +20 -4
  22. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts +3 -0
  23. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts.map +1 -0
  24. package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.js +178 -0
  25. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +1 -7
  26. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  27. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +12 -16
  28. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -5
  29. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
  30. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +14 -13
  31. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
  32. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +21 -14
  33. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
  34. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +3 -0
  35. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +11 -1
  36. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
  37. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +90 -70
  38. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +1 -3
  39. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  40. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
  41. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +5 -4
  42. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  43. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +15 -54
  44. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +0 -3
  45. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  46. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +18 -44
  47. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +0 -3
  48. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  49. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +23 -49
  50. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +1 -3
  51. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  52. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +60 -59
  53. package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.d.ts +3 -0
  54. package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.d.ts.map +1 -0
  55. package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.js +8 -0
  56. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts +9 -0
  57. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts.map +1 -0
  58. package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.js +105 -0
  59. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +10 -3
  60. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  61. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +98 -84
  62. package/lib/esm/components/case-list/case-list-table/CaseListTableRow.d.ts +33 -0
  63. package/lib/esm/components/case-list/case-list-table/CaseListTableRow.d.ts.map +1 -0
  64. package/lib/esm/components/case-list/case-list-table/CaseListTableRow.js +51 -0
  65. package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.d.ts +9 -0
  66. package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.d.ts.map +1 -0
  67. package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.js +10 -0
  68. package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.d.ts.map +1 -1
  69. package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.js +27 -28
  70. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +0 -5
  71. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  72. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +51 -70
  73. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
  74. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +5 -15
  75. package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
  76. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
  77. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +4 -5
  78. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -1
  79. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +1 -0
  80. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +8 -0
  81. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +1 -0
  82. package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +8 -0
  83. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  84. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +15 -2
  85. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  86. package/lib/esm/components/case-list/case-search/CaseSearch.js +55 -24
  87. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +10 -0
  88. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +1 -0
  89. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +29 -0
  90. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +10 -0
  91. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +1 -0
  92. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +16 -0
  93. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +9 -0
  94. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +1 -0
  95. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +21 -0
  96. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +12 -0
  97. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +1 -0
  98. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +31 -0
  99. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +10 -0
  100. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +1 -0
  101. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +10 -0
  102. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +10 -0
  103. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +1 -0
  104. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +92 -0
  105. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +9 -0
  106. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +1 -0
  107. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +20 -0
  108. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +9 -0
  109. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +1 -0
  110. package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +28 -0
  111. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +9 -0
  112. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +1 -0
  113. package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +241 -0
  114. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +11 -0
  115. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +1 -0
  116. package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +23 -0
  117. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
  118. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +2 -1
  119. package/lib/esm/css/caseList.css +197 -28
  120. package/lib/esm/css/caseSearch.css +114 -0
  121. package/lib/esm/enums/case.d.ts +13 -5
  122. package/lib/esm/enums/case.d.ts.map +1 -1
  123. package/lib/esm/enums/case.js +23 -3
  124. package/lib/esm/enums/caseSearch.d.ts +3 -0
  125. package/lib/esm/enums/caseSearch.d.ts.map +1 -1
  126. package/lib/esm/enums/caseSearch.js +2 -1
  127. package/lib/esm/enums/filters.d.ts +5 -1
  128. package/lib/esm/enums/filters.d.ts.map +1 -1
  129. package/lib/esm/enums/filters.js +4 -0
  130. package/lib/esm/hooks/useCaseLabels.d.ts +14 -0
  131. package/lib/esm/hooks/useCaseLabels.d.ts.map +1 -0
  132. package/lib/esm/hooks/useCaseLabels.js +50 -0
  133. package/lib/esm/hooks/useCloseCase.d.ts +2 -2
  134. package/lib/esm/hooks/useCloseCase.d.ts.map +1 -1
  135. package/lib/esm/hooks/useCloseCase.js +54 -30
  136. package/lib/esm/hooks/useExportCaseListCSV.d.ts +1 -1
  137. package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
  138. package/lib/esm/hooks/useExportCaseListCSV.js +1 -9
  139. package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
  140. package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
  141. package/lib/esm/hooks/useFilterStateOnLoad.js +7 -5
  142. package/lib/esm/index.js +1 -0
  143. package/lib/esm/models/caseList.d.ts +1 -0
  144. package/lib/esm/models/caseList.d.ts.map +1 -1
  145. package/lib/esm/test-utils/mockData.d.ts +1 -0
  146. package/lib/esm/test-utils/mockData.d.ts.map +1 -1
  147. package/lib/esm/test-utils/mockData.js +2 -1
  148. package/lib/esm/utils/advanceSearchFormMapper.d.ts +11 -0
  149. package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +1 -0
  150. package/lib/esm/utils/advanceSearchFormMapper.js +71 -0
  151. package/lib/esm/utils/advanceSearchUtils.d.ts +24 -0
  152. package/lib/esm/utils/advanceSearchUtils.d.ts.map +1 -0
  153. package/lib/esm/utils/advanceSearchUtils.js +150 -0
  154. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts +12 -0
  155. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts.map +1 -0
  156. package/lib/esm/utils/caseGroupDefaultFilterUtils.js +34 -0
  157. package/lib/esm/utils/caseGroupDefaultUtils.d.ts +10 -0
  158. package/lib/esm/utils/caseGroupDefaultUtils.d.ts.map +1 -0
  159. package/lib/esm/utils/caseGroupDefaultUtils.js +20 -0
  160. package/lib/esm/utils/caseListGraphQLUtils.d.ts +28 -0
  161. package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -0
  162. package/lib/esm/utils/caseListGraphQLUtils.js +304 -0
  163. package/lib/esm/utils/caseListMapper.d.ts +6 -0
  164. package/lib/esm/utils/caseListMapper.d.ts.map +1 -0
  165. package/lib/esm/utils/caseListMapper.js +47 -0
  166. package/lib/esm/utils/caseListVariablesBuilder.d.ts +17 -0
  167. package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -0
  168. package/lib/esm/utils/caseListVariablesBuilder.js +535 -0
  169. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  170. package/lib/esm/utils/caseSearchUtils.js +39 -2
  171. package/lib/esm/utils/constants.d.ts +22 -19
  172. package/lib/esm/utils/constants.d.ts.map +1 -1
  173. package/lib/esm/utils/constants.js +9 -2
  174. package/lib/esm/utils/mockSolrResponse.js +1 -1
  175. package/package.json +9 -7
@@ -42,6 +42,102 @@
42
42
  min-width: 30rem;
43
43
  }
44
44
 
45
+ .case-search-form-group,
46
+ .case-search-input-container,
47
+ .cases-main .case-search-top .search-wrapper,
48
+ .cases-main .case-search-top .search-wrapper form,
49
+ .cases-main .case-search-top {
50
+ overflow: visible;
51
+ }
52
+
53
+ .advance-search-panel-container {
54
+ position: relative;
55
+ flex-shrink: 0;
56
+ }
57
+
58
+ .case-search-form-group .advance-search-toggle-btn.pf-v6-c-button {
59
+ border-radius: var(--pf-t--global--border--radius--pill);
60
+ flex-shrink: 0;
61
+ margin-left: 0;
62
+ }
63
+
64
+ .advance-search-panel-container:has(.advance-search-modal) {
65
+ z-index: var(--pf-t--global--z-index--xl);
66
+ }
67
+
68
+ .advance-search-modal-backdrop {
69
+ position: fixed;
70
+ inset: 0;
71
+ z-index: 0;
72
+ background-color: transparent;
73
+ }
74
+
75
+ .pf-v6-c-modal-box.advance-search-modal {
76
+ position: absolute;
77
+ top: calc(100% + var(--pf-t--global--spacer--sm, 8px));
78
+ right: 0;
79
+ z-index: 1;
80
+ margin: 0;
81
+ width: 360px;
82
+ max-width: min(400px, calc(100vw - var(--pf-t--global--spacer--lg, 24px)));
83
+ max-height: min(70vh, calc(100dvh - var(--pf-t--global--spacer--2xl, 48px)));
84
+ border-radius: 0;
85
+ --pf-v6-c-modal-box--BorderRadius: 0;
86
+ --pf-v6-c-modal-box--Width: 400px;
87
+ display: flex;
88
+ flex-direction: column;
89
+ overflow: hidden;
90
+ min-height: 0;
91
+ }
92
+
93
+ .pf-v6-c-modal-box.advance-search-modal > .pf-v6-c-modal-box__body {
94
+ flex: 1 1 auto;
95
+ min-height: 0;
96
+ overflow: auto;
97
+ -ms-overflow-style: none;
98
+ scrollbar-width: none;
99
+ }
100
+
101
+ .pf-v6-c-modal-box.advance-search-modal > .pf-v6-c-modal-box__body::-webkit-scrollbar {
102
+ display: none;
103
+ }
104
+
105
+ .pf-v6-c-modal-box.advance-search-modal > .pf-v6-c-modal-box__footer {
106
+ flex: 0 0 auto;
107
+ width: 100%;
108
+ background-color: var(--pf-v6-c-modal-box--BackgroundColor);
109
+ }
110
+
111
+ .advance-search-modal .pf-v6-c-expandable-section__toggle .pf-v6-c-button.pf-m-link {
112
+ --pf-v6-c-button--m-link--Color: var(--pf-t--global--text--color--regular, #151515);
113
+ --pf-v6-c-button--m-link--hover--Color: var(--pf-t--global--text--color--regular, #151515);
114
+ --pf-v6-c-button--m-link--visited--Color: var(--pf-t--global--text--color--regular, #151515);
115
+ }
116
+
117
+ .advance-search-modal .advance-search-expandable-section {
118
+ --pf-v6-c-expandable-section--Gap: 0;
119
+ }
120
+
121
+ .advance-search-modal .advance-search-expandable-section .pf-v6-c-expandable-section__toggle {
122
+ padding-inline: var(--pf-t--global--spacer--md);
123
+ }
124
+
125
+ .advance-search-modal .advance-search-expandable-section .pf-v6-c-expandable-section__content {
126
+ padding-inline: 0;
127
+ }
128
+
129
+ .advance-search-product-version-search .pf-v6-c-search-input {
130
+ width: 100%;
131
+ }
132
+
133
+ .advance-search-product-menu-item-badge.pf-v6-c-badge {
134
+ --pf-v6-c-badge--BorderRadius: var(--pf-t--global--border--radius--pill);
135
+ --pf-v6-c-badge--Color: var(--pf-t--global--text--color--on-brand--default);
136
+ --pf-v6-c-badge--BackgroundColor: var(--pf-t--global--color--brand--default);
137
+ font-size: var(--pf-t--global--font--size--body--sm);
138
+ min-width: 1.25rem;
139
+ }
140
+
45
141
  .case-search-form-group .filter-save-success-msg {
46
142
  color: var(--pf-v5-global--success-color--200);
47
143
  padding: 6px 0px;
@@ -59,3 +155,21 @@
59
155
  margin-left: 0.5rem;
60
156
  }
61
157
  }
158
+
159
+ .advance-search-modal .advance-search-dropdown-toggle-content {
160
+ gap: var(--pf-t--global--spacer--sm);
161
+ }
162
+
163
+ .advance-search-modal .advance-search-dropdown-toggle-badge-wrap {
164
+ flex-shrink: 0;
165
+ }
166
+
167
+ .advance-search-modal .advance-search-dropdown-toggle-badge.pf-v6-c-badge,
168
+ .advance-search-modal .pf-v6-c-text-input-group .advance-search-dropdown-toggle-badge.pf-v6-c-badge {
169
+ --pf-v6-c-badge--BorderRadius: var(--pf-t--global--border--radius--pill);
170
+ --pf-v6-c-badge--Color: var(--pf-t--global--text--color--on-brand--default);
171
+ --pf-v6-c-badge--BackgroundColor: var(--pf-t--global--color--brand--default);
172
+ font-size: var(--pf-t--global--font--size--body--sm);
173
+ font-weight: var(--pf-t--global--font--weight--body--bold);
174
+ padding-inline: var(--pf-t--global--spacer--sm);
175
+ }
@@ -1,15 +1,20 @@
1
1
  import { SFDCKeys, SolrKeys } from './filters';
2
2
  export declare enum CaseStatus {
3
- WaitingOnCustomer = "Waiting on Customer",
4
- WaitingOnRedHat = "Waiting on Red Hat",
3
+ WaitingOnCustomerActionRequired = "Waiting on Customer Action Required",
4
+ WaitingOnCustomerSolutionDelivered = "Waiting on Customer Solution Delivered",
5
+ InProgress = "In Progress",
5
6
  Open = "All open cases",
6
7
  Closed = "Closed",
7
- All = "All cases"
8
+ All = "All cases",
9
+ /** @deprecated Legacy alias -- do not use for new writes */
10
+ WaitingOnCustomer = "Waiting on Customer",
11
+ /** @deprecated Legacy alias -- do not use for new writes */
12
+ WaitingOnRedHat = "Waiting on Red Hat"
8
13
  }
9
14
  export declare enum CaseSeverity {
10
15
  Urgent = "1 - Urgent",
11
16
  Important = "2 - Important",
12
- Normal = "3 - Normal",
17
+ Medium = "3 - Medium",
13
18
  Low = "4 - Low"
14
19
  }
15
20
  export declare const caseListFields = "case_createdByName,case_createdDate,case_lastModifiedDate,case_lastModifiedByName,id,uri,case_summary,case_status,case_product,case_version,case_accountNumber,case_number,case_contactName,case_owner,case_severity,case_last_public_update_date,case_last_public_update_by,case_customer_escalation,case_folderName,case_closedDate";
@@ -26,7 +31,8 @@ export declare enum CaseListColumnIds {
26
31
  group = "folderName",
27
32
  alternateCaseId = "alternateCaseId",
28
33
  type = "type",
29
- caseClosedDate = "closedDate"
34
+ caseClosedDate = "closedDate",
35
+ caseLabel = "caseLabel"
30
36
  }
31
37
  export declare const caseListSortColumnIdsToSolrMap: {
32
38
  number: SolrKeys;
@@ -56,6 +62,7 @@ export declare const caseListSortColumnIdsToSFDCMap: {
56
62
  type: SFDCKeys;
57
63
  closedDate: SFDCKeys;
58
64
  };
65
+ export declare const caseListSortColumnIdsToGraphQLMap: Record<string, string>;
59
66
  export declare const caseTableColumSortNamesMap: {
60
67
  number: string;
61
68
  summary: string;
@@ -69,5 +76,6 @@ export declare const caseTableColumSortNamesMap: {
69
76
  alternateCaseId: string;
70
77
  type: string;
71
78
  closedDate: string;
79
+ caseLabel: string;
72
80
  };
73
81
  //# sourceMappingURL=case.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"case.d.ts","sourceRoot":"","sources":["../../../src/enums/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,oBAAY,UAAU;IAClB,iBAAiB,wBAAwB;IACzC,eAAe,uBAAuB;IACtC,IAAI,mBAAmB;IACvB,MAAM,WAAW;IACjB,GAAG,cAAc;CACpB;AAED,oBAAY,YAAY;IACpB,MAAM,eAAe;IACrB,SAAS,kBAAkB;IAC3B,MAAM,eAAe;IACrB,GAAG,YAAY;CAClB;AAED,eAAO,MAAM,cAAc,0UACgT,CAAC;AAE5U,oBAAY,iBAAiB;IACzB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,gBAAgB;IACrB,OAAO,gBAAgB;IACvB,MAAM,WAAW;IACjB,QAAQ,qBAAqB;IAC7B,iBAAiB,YAAY;IAC7B,aAAa,kBAAkB;IAC/B,KAAK,eAAe;IACpB,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,cAAc,eAAe;CAChC;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAa1C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAa1C,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAatC,CAAC"}
1
+ {"version":3,"file":"case.d.ts","sourceRoot":"","sources":["../../../src/enums/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/C,oBAAY,UAAU;IAClB,+BAA+B,wCAAwC;IACvE,kCAAkC,2CAA2C;IAC7E,UAAU,gBAAgB;IAC1B,IAAI,mBAAmB;IACvB,MAAM,WAAW;IACjB,GAAG,cAAc;IACjB,4DAA4D;IAC5D,iBAAiB,wBAAwB;IACzC,4DAA4D;IAC5D,eAAe,uBAAuB;CACzC;AAED,oBAAY,YAAY;IACpB,MAAM,eAAe;IACrB,SAAS,kBAAkB;IAC3B,MAAM,eAAe;IACrB,GAAG,YAAY;CAClB;AAED,eAAO,MAAM,cAAc,0UACgT,CAAC;AAE5U,oBAAY,iBAAiB;IACzB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,gBAAgB;IACrB,OAAO,gBAAgB;IACvB,MAAM,WAAW;IACjB,QAAQ,qBAAqB;IAC7B,iBAAiB,YAAY;IAC7B,aAAa,kBAAkB;IAC/B,KAAK,eAAe;IACpB,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,cAAc,eAAe;IAC7B,SAAS,cAAc;CAC1B;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAa1C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAa1C,CAAC;AAGF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWpE,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;CActC,CAAC"}
@@ -1,17 +1,22 @@
1
1
  import { SFDCKeys, SolrKeys } from './filters';
2
2
  export var CaseStatus;
3
3
  (function (CaseStatus) {
4
- CaseStatus["WaitingOnCustomer"] = "Waiting on Customer";
5
- CaseStatus["WaitingOnRedHat"] = "Waiting on Red Hat";
4
+ CaseStatus["WaitingOnCustomerActionRequired"] = "Waiting on Customer Action Required";
5
+ CaseStatus["WaitingOnCustomerSolutionDelivered"] = "Waiting on Customer Solution Delivered";
6
+ CaseStatus["InProgress"] = "In Progress";
6
7
  CaseStatus["Open"] = "All open cases";
7
8
  CaseStatus["Closed"] = "Closed";
8
9
  CaseStatus["All"] = "All cases";
10
+ /** @deprecated Legacy alias -- do not use for new writes */
11
+ CaseStatus["WaitingOnCustomer"] = "Waiting on Customer";
12
+ /** @deprecated Legacy alias -- do not use for new writes */
13
+ CaseStatus["WaitingOnRedHat"] = "Waiting on Red Hat";
9
14
  })(CaseStatus || (CaseStatus = {}));
10
15
  export var CaseSeverity;
11
16
  (function (CaseSeverity) {
12
17
  CaseSeverity["Urgent"] = "1 - Urgent";
13
18
  CaseSeverity["Important"] = "2 - Important";
14
- CaseSeverity["Normal"] = "3 - Normal";
19
+ CaseSeverity["Medium"] = "3 - Medium";
15
20
  CaseSeverity["Low"] = "4 - Low";
16
21
  })(CaseSeverity || (CaseSeverity = {}));
17
22
  export const caseListFields = 'case_createdByName,case_createdDate,case_lastModifiedDate,case_lastModifiedByName,id,uri,case_summary,case_status,case_product,case_version,case_accountNumber,case_number,case_contactName,case_owner,case_severity,case_last_public_update_date,case_last_public_update_by,case_customer_escalation,case_folderName,case_closedDate';
@@ -30,6 +35,7 @@ export var CaseListColumnIds;
30
35
  CaseListColumnIds["alternateCaseId"] = "alternateCaseId";
31
36
  CaseListColumnIds["type"] = "type";
32
37
  CaseListColumnIds["caseClosedDate"] = "closedDate";
38
+ CaseListColumnIds["caseLabel"] = "caseLabel";
33
39
  })(CaseListColumnIds || (CaseListColumnIds = {}));
34
40
  export const caseListSortColumnIdsToSolrMap = {
35
41
  [CaseListColumnIds.caseId]: SolrKeys.caseNumber,
@@ -59,6 +65,19 @@ export const caseListSortColumnIdsToSFDCMap = {
59
65
  [CaseListColumnIds.type]: SFDCKeys.caseType,
60
66
  [CaseListColumnIds.caseClosedDate]: SFDCKeys.caseClosedDate,
61
67
  };
68
+ // Maps CaseListColumnIds to GraphQL RedHatSupportCase_OrderBy field paths
69
+ export const caseListSortColumnIdsToGraphQLMap = {
70
+ [CaseListColumnIds.caseId]: 'CaseNumber__c',
71
+ [CaseListColumnIds.summary]: 'Subject',
72
+ [CaseListColumnIds.severity]: 'Priority',
73
+ [CaseListColumnIds.owner]: 'OwnerId',
74
+ [CaseListColumnIds.created]: 'CreatedDate',
75
+ [CaseListColumnIds.status]: 'Status',
76
+ [CaseListColumnIds.modified]: 'LastModifiedDate',
77
+ [CaseListColumnIds.accountNumber]: 'Account_Number__c',
78
+ [CaseListColumnIds.type]: 'Type',
79
+ [CaseListColumnIds.caseClosedDate]: 'ClosedDate',
80
+ };
62
81
  export const caseTableColumSortNamesMap = {
63
82
  [CaseListColumnIds.caseId]: 'Case ID',
64
83
  [CaseListColumnIds.summary]: 'Title',
@@ -72,4 +91,5 @@ export const caseTableColumSortNamesMap = {
72
91
  [CaseListColumnIds.alternateCaseId]: 'Personal reference number',
73
92
  [CaseListColumnIds.type]: 'Support type',
74
93
  [CaseListColumnIds.caseClosedDate]: 'Close date',
94
+ [CaseListColumnIds.caseLabel]: 'Case labels',
75
95
  };
@@ -8,6 +8,7 @@ export declare const fieldNameToSolrFieldMapping: {
8
8
  case_status: string;
9
9
  case_accountNumber: string;
10
10
  case_folderNumber: string;
11
+ case_label: string;
11
12
  case_severity: string;
12
13
  case_owner_sso_username: string;
13
14
  case_customer_escalation: string;
@@ -33,11 +34,13 @@ export declare const advanceSearchFieldNameToSolrFieldMapping: {
33
34
  case_description: string;
34
35
  case_summary: string;
35
36
  case_alternate_id: string;
37
+ case_openshift_cluster_id: string;
36
38
  case_closedDate: string;
37
39
  case_product: string;
38
40
  case_status: string;
39
41
  case_accountNumber: string;
40
42
  case_folderNumber: string;
43
+ case_label: string;
41
44
  case_severity: string;
42
45
  case_customer_escalation: string;
43
46
  case_version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"caseSearch.d.ts","sourceRoot":"","sources":["../../../src/enums/caseSearch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,oBAAY,mBAAmB;IAC3B,KAAK,UAAU;IACf,QAAQ,aAAa;CACxB;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;CAavC,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBpD,CAAC"}
1
+ {"version":3,"file":"caseSearch.d.ts","sourceRoot":"","sources":["../../../src/enums/caseSearch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,oBAAY,mBAAmB;IAC3B,KAAK,UAAU;IACf,QAAQ,aAAa;CACxB;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CAcvC,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBpD,CAAC"}
@@ -10,6 +10,7 @@ export const fieldNameToSolrFieldMapping = {
10
10
  [SolrKeys.status]: 'status',
11
11
  [SolrKeys.accountNumber]: 'accountNumber',
12
12
  [SolrKeys.group]: 'group',
13
+ [SolrKeys.caseLabel]: 'caseLabel',
13
14
  [SolrKeys.severity]: 'severity',
14
15
  [SolrKeys.caseOwner]: 'owner',
15
16
  [SolrKeys.escalation]: 'escalated',
@@ -19,4 +20,4 @@ export const fieldNameToSolrFieldMapping = {
19
20
  [SolrKeys.type]: 'supportType',
20
21
  [SolrKeys.isPrivate]: 'private',
21
22
  };
22
- export const advanceSearchFieldNameToSolrFieldMapping = Object.assign(Object.assign({}, fieldNameToSolrFieldMapping), { [SolrKeys.fts]: 'FTS', [SolrKeys.cep]: 'CEP', [SolrKeys.accountName]: 'accountName', [SolrKeys.caseNumber]: 'caseNumber', [SolrKeys.caseOwner]: 'ownerSSO', [SolrKeys.modifiedBy]: 'lastModifiedByName', [SolrKeys.createdBySsoUsername]: 'createdBySSO', [SolrKeys.createdBy]: 'createdByName', [SolrKeys.contactName]: 'contactName', [SolrKeys.caseContactSSO]: 'contactSSO', [SolrKeys.modifiedDate]: 'lastModifiedDate', [SolrKeys.createdDate]: 'createdDate', [SolrKeys.description]: 'description', [SolrKeys.caseSummary]: 'summary', [SolrKeys.alternateId]: 'personalReferenceNumber', [SolrKeys.caseClosedDate]: 'closedDate' });
23
+ export const advanceSearchFieldNameToSolrFieldMapping = Object.assign(Object.assign({}, fieldNameToSolrFieldMapping), { [SolrKeys.fts]: 'FTS', [SolrKeys.cep]: 'CEP', [SolrKeys.accountName]: 'accountName', [SolrKeys.caseNumber]: 'caseNumber', [SolrKeys.caseOwner]: 'ownerSSO', [SolrKeys.modifiedBy]: 'lastModifiedByName', [SolrKeys.createdBySsoUsername]: 'createdBySSO', [SolrKeys.createdBy]: 'createdByName', [SolrKeys.contactName]: 'contactName', [SolrKeys.caseContactSSO]: 'contactSSO', [SolrKeys.modifiedDate]: 'lastModifiedDate', [SolrKeys.createdDate]: 'createdDate', [SolrKeys.description]: 'description', [SolrKeys.caseSummary]: 'summary', [SolrKeys.alternateId]: 'personalReferenceNumber', [SolrKeys.openshiftClusterId]: 'openshiftClusterId', [SolrKeys.caseClosedDate]: 'closedDate' });
@@ -37,7 +37,8 @@ export declare enum SolrKeys {
37
37
  alternateId = "case_alternate_id",
38
38
  caseClosedDate = "case_closedDate",
39
39
  openshiftClusterId = "case_openshift_cluster_id",
40
- isPrivate = "case_private"
40
+ isPrivate = "case_private",
41
+ caseLabel = "case_label"
41
42
  }
42
43
  export declare const advancedSearchMap: {
43
44
  case_number: string;
@@ -47,6 +48,7 @@ export declare const advancedSearchMap: {
47
48
  case_accountNumber: string;
48
49
  case_folderNumber: string;
49
50
  case_folderName: string;
51
+ case_label: string;
50
52
  case_severity: string;
51
53
  case_owner_sso_username: string;
52
54
  case_owner: string;
@@ -125,8 +127,10 @@ export declare const sfdcFieldToSolrMap: {
125
127
  caseType: SolrKeys;
126
128
  lastClosedAt: SolrKeys;
127
129
  };
130
+ export declare const ARCHIVED_STATUS = "Archived";
128
131
  export declare const AdditionalFilterLabels: {
129
132
  case_customer_escalation: string;
130
133
  case_private: string;
134
+ archived: string;
131
135
  };
132
136
  //# sourceMappingURL=filters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/enums/filters.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;CACpB;AAED,oBAAY,QAAQ;IAChB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,OAAO,iBAAiB;IACxB,MAAM,gBAAgB;IACtB,aAAa,uBAAuB;IACpC,KAAK,sBAAsB;IAC3B,SAAS,oBAAoB;IAC7B,QAAQ,kBAAkB;IAC1B,SAAS,4BAA4B;IACrC,SAAS,eAAe;IACxB,WAAW,qBAAqB;IAChC,cAAc,8BAA8B;IAC5C,UAAU,6BAA6B;IACvC,OAAO,iBAAiB;IACxB,SAAS,uBAAuB;IAChC,oBAAoB,gCAAgC;IACpD,WAAW,qBAAqB;IAChC,UAAU,4BAA4B;IACtC,YAAY,0BAA0B;IACtC,oBAAoB,iCAAiC;IACrD,sBAAsB,+BAA+B;IACrD,WAAW,qBAAqB;IAChC,GAAG,QAAQ;IACX,GAAG,cAAc;IACjB,IAAI,cAAc;IAClB,GAAG,gBAAgB;IACnB,WAAW,sBAAsB;IACjC,WAAW,sBAAsB;IACjC,cAAc,oBAAoB;IAClC,kBAAkB,8BAA8B;IAChD,SAAS,iBAAiB;CAC7B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B7B,CAAC;AAGF,oBAAY,aAAa;IACrB,eAAe,8BAA8B;CAChD;AAED,eAAO,MAAM,iBAAiB,8BAA4C,CAAC;AAC3E,oBAAY,QAAQ;IAChB,UAAU,eAAe;IACzB,WAAW,YAAY;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,aAAa,qBAAqB;IAClC,QAAQ,aAAa;IACrB,SAAS,YAAY;IACrB,WAAW,gBAAgB;IAC3B,SAAS,mBAAmB;IAC5B,UAAU,uBAAuB;IACjC,OAAO,YAAY;IACnB,SAAS,gBAAgB;IACzB,oBAAoB,gCAAgC;IACpD,WAAW,gBAAgB;IAC3B,UAAU,qBAAqB;IAC/B,YAAY,qBAAqB;IACjC,oBAAoB,qBAAqB;IACzC,sBAAsB,qBAAqB;IAC3C,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,cAAc,iBAAiB;CAClC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAsB9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/enums/filters.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;CACpB;AAED,oBAAY,QAAQ;IAChB,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,OAAO,iBAAiB;IACxB,MAAM,gBAAgB;IACtB,aAAa,uBAAuB;IACpC,KAAK,sBAAsB;IAC3B,SAAS,oBAAoB;IAC7B,QAAQ,kBAAkB;IAC1B,SAAS,4BAA4B;IACrC,SAAS,eAAe;IACxB,WAAW,qBAAqB;IAChC,cAAc,8BAA8B;IAC5C,UAAU,6BAA6B;IACvC,OAAO,iBAAiB;IACxB,SAAS,uBAAuB;IAChC,oBAAoB,gCAAgC;IACpD,WAAW,qBAAqB;IAChC,UAAU,4BAA4B;IACtC,YAAY,0BAA0B;IACtC,oBAAoB,iCAAiC;IACrD,sBAAsB,+BAA+B;IACrD,WAAW,qBAAqB;IAChC,GAAG,QAAQ;IACX,GAAG,cAAc;IACjB,IAAI,cAAc;IAClB,GAAG,gBAAgB;IACnB,WAAW,sBAAsB;IACjC,WAAW,sBAAsB;IACjC,cAAc,oBAAoB;IAClC,kBAAkB,8BAA8B;IAChD,SAAS,iBAAiB;IAC1B,SAAS,eAAe;CAC3B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC7B,CAAC;AAGF,oBAAY,aAAa;IACrB,eAAe,8BAA8B;CAChD;AAED,eAAO,MAAM,iBAAiB,8BAA4C,CAAC;AAC3E,oBAAY,QAAQ;IAChB,UAAU,eAAe;IACzB,WAAW,YAAY;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,aAAa,qBAAqB;IAClC,QAAQ,aAAa;IACrB,SAAS,YAAY;IACrB,WAAW,gBAAgB;IAC3B,SAAS,mBAAmB;IAC5B,UAAU,uBAAuB;IACjC,OAAO,YAAY;IACnB,SAAS,gBAAgB;IACzB,oBAAoB,gCAAgC;IACpD,WAAW,gBAAgB;IAC3B,UAAU,qBAAqB;IAC/B,YAAY,qBAAqB;IACjC,oBAAoB,qBAAqB;IACzC,sBAAsB,qBAAqB;IAC3C,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,cAAc,iBAAiB;CAClC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAsB9B,CAAC;AAEF,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC"}
@@ -40,6 +40,7 @@ export var SolrKeys;
40
40
  SolrKeys["caseClosedDate"] = "case_closedDate";
41
41
  SolrKeys["openshiftClusterId"] = "case_openshift_cluster_id";
42
42
  SolrKeys["isPrivate"] = "case_private";
43
+ SolrKeys["caseLabel"] = "case_label";
43
44
  })(SolrKeys || (SolrKeys = {}));
44
45
  export const advancedSearchMap = {
45
46
  case_number: 'caseNumber',
@@ -49,6 +50,7 @@ export const advancedSearchMap = {
49
50
  case_accountNumber: 'accountNumber',
50
51
  case_folderNumber: 'group',
51
52
  case_folderName: 'groupName',
53
+ case_label: 'caseLabel',
52
54
  case_severity: 'severity',
53
55
  case_owner_sso_username: 'caseOwner',
54
56
  case_owner: 'ownerName',
@@ -130,7 +132,9 @@ export const sfdcFieldToSolrMap = {
130
132
  [SFDCKeys.caseType]: SolrKeys.type,
131
133
  [SFDCKeys.caseClosedDate]: SolrKeys.caseClosedDate,
132
134
  };
135
+ export const ARCHIVED_STATUS = 'Archived';
133
136
  export const AdditionalFilterLabels = {
134
137
  [SolrKeys.escalation]: 'Escalated cases',
135
138
  [SolrKeys.isPrivate]: 'Private cases',
139
+ archived: ARCHIVED_STATUS,
136
140
  };
@@ -0,0 +1,14 @@
1
+ export interface ICaseLabelOption {
2
+ id: string;
3
+ name: string;
4
+ }
5
+ interface UseCaseLabelsResult {
6
+ labels: ICaseLabelOption[];
7
+ loading: boolean;
8
+ error: Error | undefined;
9
+ refetch: () => Promise<void>;
10
+ }
11
+ /** Fetches account-scoped case labels for the Case List Case labels filter. */
12
+ export declare function useCaseLabels(accountId?: string): UseCaseLabelsResult;
13
+ export {};
14
+ //# sourceMappingURL=useCaseLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCaseLabels.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCaseLabels.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAOD,UAAU,mBAAmB;IACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,CA8BrE"}
@@ -0,0 +1,50 @@
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 { useApolloClient } from '@apollo/client/react';
11
+ import { fetchAllAccountCaseLabels } from '@rh-support/utils';
12
+ import unescape from 'lodash/unescape';
13
+ import { useCallback, useEffect, useState } from 'react';
14
+ const mapCaseLabelNode = (node) => {
15
+ var _a, _b;
16
+ return ({
17
+ id: node.Id,
18
+ name: unescape((_b = (_a = node.Name) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ''),
19
+ });
20
+ };
21
+ /** Fetches account-scoped case labels for the Case List Case labels filter. */
22
+ export function useCaseLabels(accountId) {
23
+ const client = useApolloClient();
24
+ const [labels, setLabels] = useState([]);
25
+ const [loading, setLoading] = useState(false);
26
+ const [error, setError] = useState(undefined);
27
+ const fetchLabels = useCallback(() => __awaiter(this, void 0, void 0, function* () {
28
+ if (!accountId) {
29
+ setLabels([]);
30
+ return;
31
+ }
32
+ setLoading(true);
33
+ setError(undefined);
34
+ try {
35
+ const labelNodes = yield fetchAllAccountCaseLabels(client, accountId);
36
+ setLabels(labelNodes.map(mapCaseLabelNode).filter((label) => label.id && label.name));
37
+ }
38
+ catch (e) {
39
+ setError(e);
40
+ setLabels([]);
41
+ }
42
+ finally {
43
+ setLoading(false);
44
+ }
45
+ }), [accountId, client]);
46
+ useEffect(() => {
47
+ fetchLabels();
48
+ }, [fetchLabels]);
49
+ return { labels, loading, error, refetch: fetchLabels };
50
+ }
@@ -14,9 +14,9 @@ export declare function useCloseCase(props: IUseCloseCaseProps): {
14
14
  maxCasesSelected: boolean;
15
15
  showWarning: boolean;
16
16
  showError: boolean;
17
- getTooltipContent: () => any;
17
+ getTooltipContent: () => string;
18
18
  onCancel: () => void;
19
- onConfirm: (commentBody: any) => Promise<void>;
19
+ onConfirm: (commentBody: any) => Promise<boolean>;
20
20
  onBtnClick: () => void;
21
21
  };
22
22
  //# sourceMappingURL=useCloseCase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCloseCase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCloseCase.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAQD,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB;;;;;;;;;;;;;EAoGrD"}
1
+ {"version":3,"file":"useCloseCase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCloseCase.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AAQD,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB;;;;;;;;;;;qCAoCX,OAAO,CAAC,OAAO,CAAC;;EAuF1D"}
@@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { publicApi } from '@cee-eng/hydrajs';
11
- import { ToastNotification, useFetch } from '@rh-support/components';
10
+ import { useApolloClient } from '@apollo/client/react';
11
+ import { ToastNotification } from '@rh-support/components';
12
12
  import { useCanCreateCase } from '@rh-support/react-context';
13
- import { dtmTrackEventCaseStepEncountered } from '@rh-support/utils';
13
+ import { CREATE_CASE_COMMENT, dtmTrackEventCaseStepEncountered, sanitizeForSalesforce, updateCaseDetailsByGraphQL, } from '@rh-support/utils';
14
14
  import filter from 'lodash/filter';
15
15
  import find from 'lodash/find';
16
16
  import includes from 'lodash/includes';
@@ -21,8 +21,9 @@ const reflect = (p) => p.then((v) => ({ v, status: 'fulfilled' }), (e) => ({ e,
21
21
  export function useCloseCase(props) {
22
22
  const { caseList, selectedCases, onCasesCloseSuccess } = props;
23
23
  const { t } = useTranslation();
24
+ const apolloClient = useApolloClient();
24
25
  const maxCasesSelected = (selectedCases || []).length > MAX_ALLOWED_CASES;
25
- const { request, isFetching } = useFetch(publicApi.kase.updateCase);
26
+ const [isFetching, setIsFetching] = useState(false);
26
27
  const closedCaseIds = filter(selectedCases, (selected) => {
27
28
  const caseDetails = find(caseList, (caseObj) => caseObj['case_number'] === selected);
28
29
  return caseDetails && caseDetails['case_status'] !== 'Closed' ? false : true;
@@ -38,10 +39,7 @@ export function useCloseCase(props) {
38
39
  isFetching;
39
40
  const [isModalOpen, setIsModalOpen] = useState(false);
40
41
  const canCreateCase = useCanCreateCase();
41
- const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
42
- propgateErrors: true,
43
- });
44
- // To handle button click
42
+ const [isPostingComment, setIsPostingComment] = useState(false);
45
43
  const onBtnClick = () => {
46
44
  if (canCreateCase.alert()) {
47
45
  return;
@@ -52,31 +50,57 @@ export function useCloseCase(props) {
52
50
  };
53
51
  const onConfirm = (commentBody) => __awaiter(this, void 0, void 0, function* () {
54
52
  const promiseArr = [];
55
- setIsModalOpen(false);
53
+ setIsFetching(true);
56
54
  const toastId = ToastNotification.addSuccessMessage(t(`Closing selected cases`));
57
- filter(selectedCases, (selected) => !includes(closedCaseIds, selected)).forEach((caseNumber, i) => {
58
- const product = caseList[i].case_product[0];
59
- const version = caseList[i].case_version;
60
- const p = request(caseNumber, { status: 'Closed' });
55
+ const casesToClose = filter(selectedCases, (selected) => !includes(closedCaseIds, selected));
56
+ casesToClose.forEach((caseNumber) => {
57
+ const caseDetails = find(caseList, (caseObj) => caseObj.case_number === caseNumber);
58
+ if (!caseDetails)
59
+ return;
60
+ const salesforceCaseId = caseDetails.id;
61
+ const product = caseDetails.case_product[0];
62
+ const version = caseDetails.case_version;
63
+ const p = (() => __awaiter(this, void 0, void 0, function* () {
64
+ try {
65
+ if (commentBody) {
66
+ setIsPostingComment(true);
67
+ try {
68
+ yield apolloClient.mutate({
69
+ mutation: CREATE_CASE_COMMENT,
70
+ variables: {
71
+ commentInput: {
72
+ Case__c: salesforceCaseId,
73
+ Body__c: sanitizeForSalesforce(commentBody),
74
+ Visibility__c: 'Public',
75
+ IsAssociate__c: false,
76
+ },
77
+ },
78
+ });
79
+ }
80
+ finally {
81
+ setIsPostingComment(false);
82
+ }
83
+ }
84
+ yield updateCaseDetailsByGraphQL(apolloClient, salesforceCaseId, { Status: 'Closed' });
85
+ ToastNotification.clearToast(toastId);
86
+ ToastNotification.addSuccessMessage(t('Case {{caseNumber}} successfully closed', { caseNumber }));
87
+ dtmTrackEventCaseStepEncountered('close', caseNumber, product, version);
88
+ }
89
+ catch (_a) {
90
+ ToastNotification.clearToast(toastId);
91
+ ToastNotification.addDangerMessage(t('Could not close case {{caseNumber}}', { caseNumber }));
92
+ throw new Error(`Could not close case ${caseNumber}`);
93
+ }
94
+ }))();
61
95
  promiseArr.push(p);
62
- p.then((res) => __awaiter(this, void 0, void 0, function* () {
63
- yield postCommentRequest({
64
- caseNumber,
65
- commentBody,
66
- contentType: `markdown`,
67
- doNotChangeStatus: true,
68
- });
69
- ToastNotification.clearToast(toastId);
70
- ToastNotification.addSuccessMessage(t('Case {{caseNumber}} successfully closed', { caseNumber }));
71
- // Only call dtm track event only when the case has been closed successfully.
72
- dtmTrackEventCaseStepEncountered('close', caseNumber, product, version);
73
- }), (err) => {
74
- ToastNotification.clearToast(toastId);
75
- ToastNotification.addDangerMessage(t('Could not close case {{caseNumber}}', { caseNumber }));
76
- });
77
96
  });
78
- yield Promise.all(promiseArr.map(reflect));
79
- onCasesCloseSuccess && onCasesCloseSuccess();
97
+ const results = yield Promise.all(promiseArr.map(reflect));
98
+ setIsFetching(false);
99
+ const allSucceeded = results.every((result) => result.status === 'fulfilled');
100
+ if (allSucceeded) {
101
+ onCasesCloseSuccess === null || onCasesCloseSuccess === void 0 ? void 0 : onCasesCloseSuccess();
102
+ }
103
+ return allSucceeded;
80
104
  });
81
105
  const onCancel = () => {
82
106
  setIsModalOpen(false);
@@ -10,7 +10,7 @@ export declare function useExportCaseListCSV(props: IUseExportCaseListCSV): {
10
10
  isExportButtonDisabled: boolean;
11
11
  openUpdateSeverityModal: boolean;
12
12
  showError: boolean;
13
- getTooltipContent: () => any;
13
+ getTooltipContent: () => string;
14
14
  toggleDownloadCSVModal: () => void;
15
15
  };
16
16
  //# sourceMappingURL=useExportCaseListCSV.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExportCaseListCSV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportCaseListCSV.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B,MAAM,WAAW,qBAAqB;IAClC,uBAAuB,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB;;;;;;EAqChE"}
1
+ {"version":3,"file":"useExportCaseListCSV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportCaseListCSV.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B,MAAM,WAAW,qBAAqB;IAClC,uBAAuB,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB;;;;;;EA+BhE"}
@@ -1,18 +1,12 @@
1
- import { useFetch } from '@rh-support/components';
2
1
  import { useState } from 'react';
3
2
  import { useTranslation } from 'react-i18next';
4
- import { getCaseListFromSolr } from '../utils/caseListUtils';
5
3
  export const MAX_LIMIT = 1000;
6
4
  export function useExportCaseListCSV(props) {
7
5
  const { isExportCsvDisabled, selectedCases } = props;
8
6
  const { t } = useTranslation();
9
- // const currentFilteredCaseCount = currentFilteredCaseList?.numFound ?? 0;
10
- const { isFetching } = useFetch(getCaseListFromSolr, { propgateErrors: true });
11
7
  const [openUpdateSeverityModal, setOpenUpdateSeverityModal] = useState(false);
12
- const isFetchingCSVData = isFetching;
13
8
  let showError = selectedCases.length > MAX_LIMIT;
14
- const isBtnDisabled = isFetchingCSVData || showError;
15
- // To show tooltip if export csv is disabled when SOLR is down
9
+ const isBtnDisabled = showError;
16
10
  const getTooltipContent = () => {
17
11
  let tooltipText = t('Your download will include the first 1000 cases in your list.');
18
12
  if (showError) {
@@ -23,9 +17,7 @@ export function useExportCaseListCSV(props) {
23
17
  }
24
18
  return tooltipText;
25
19
  };
26
- // To check if export csv button is disabled
27
20
  const isExportButtonDisabled = isBtnDisabled || isExportCsvDisabled;
28
- // To toggle download csv modal
29
21
  const toggleDownloadCSVModal = () => {
30
22
  setOpenUpdateSeverityModal((openUpdateSeverityModal) => !openUpdateSeverityModal);
31
23
  };
@@ -1,6 +1,6 @@
1
1
  import { CaseSearchQueryType } from '../enums/caseSearch';
2
2
  export declare function useFilterStateOnLoad(): {
3
- set: (queryFromUrl: string, pageSizeFromUrl: number, currentPageFromUrl: number, searchType: CaseSearchQueryType) => {
3
+ set: (queryFromUrl: string, pageSizeFromUrl: number | undefined, currentPageFromUrl: number, searchType: CaseSearchQueryType) => {
4
4
  initFilterState: any;
5
5
  defaultSearchName: string;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,sBACH,MAAM,cACd,mBAAmB;;;;EA+DtC"}
1
+ {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAU1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,GAAG,SAAS,sBACf,MAAM,cACd,mBAAmB;;;;EAiEtC"}