@rh-support/cases 2.6.235 → 2.7.10

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 (174) 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 +1 -1
  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.map +1 -1
  137. package/lib/esm/hooks/useExportCaseListCSV.js +1 -9
  138. package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
  139. package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
  140. package/lib/esm/hooks/useFilterStateOnLoad.js +7 -5
  141. package/lib/esm/index.js +1 -0
  142. package/lib/esm/models/caseList.d.ts +1 -0
  143. package/lib/esm/models/caseList.d.ts.map +1 -1
  144. package/lib/esm/test-utils/mockData.d.ts +1 -0
  145. package/lib/esm/test-utils/mockData.d.ts.map +1 -1
  146. package/lib/esm/test-utils/mockData.js +2 -1
  147. package/lib/esm/utils/advanceSearchFormMapper.d.ts +11 -0
  148. package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +1 -0
  149. package/lib/esm/utils/advanceSearchFormMapper.js +71 -0
  150. package/lib/esm/utils/advanceSearchUtils.d.ts +24 -0
  151. package/lib/esm/utils/advanceSearchUtils.d.ts.map +1 -0
  152. package/lib/esm/utils/advanceSearchUtils.js +150 -0
  153. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts +12 -0
  154. package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts.map +1 -0
  155. package/lib/esm/utils/caseGroupDefaultFilterUtils.js +34 -0
  156. package/lib/esm/utils/caseGroupDefaultUtils.d.ts +10 -0
  157. package/lib/esm/utils/caseGroupDefaultUtils.d.ts.map +1 -0
  158. package/lib/esm/utils/caseGroupDefaultUtils.js +20 -0
  159. package/lib/esm/utils/caseListGraphQLUtils.d.ts +28 -0
  160. package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -0
  161. package/lib/esm/utils/caseListGraphQLUtils.js +304 -0
  162. package/lib/esm/utils/caseListMapper.d.ts +6 -0
  163. package/lib/esm/utils/caseListMapper.d.ts.map +1 -0
  164. package/lib/esm/utils/caseListMapper.js +47 -0
  165. package/lib/esm/utils/caseListVariablesBuilder.d.ts +17 -0
  166. package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -0
  167. package/lib/esm/utils/caseListVariablesBuilder.js +535 -0
  168. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  169. package/lib/esm/utils/caseSearchUtils.js +39 -2
  170. package/lib/esm/utils/constants.d.ts +4 -1
  171. package/lib/esm/utils/constants.d.ts.map +1 -1
  172. package/lib/esm/utils/constants.js +9 -2
  173. package/lib/esm/utils/mockSolrResponse.js +1 -1
  174. package/package.json +8 -6
@@ -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
+ }
@@ -16,7 +16,7 @@ export declare function useCloseCase(props: IUseCloseCaseProps): {
16
16
  showError: boolean;
17
17
  getTooltipContent: () => any;
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);
@@ -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"}
@@ -4,6 +4,7 @@ import findKey from 'lodash/findKey';
4
4
  import { useContext, useMemo } from 'react';
5
5
  import { CaseListFilterStateContext, initialCaseFilterState } from '../components/case-list/CaseListFilterContext';
6
6
  import { SolrKeys } from '../enums/filters';
7
+ import { decodeCaseListUrlFilterQuery, getDefaultGroupFilterSelection, shouldApplyDefaultGroupFilter, } from '../utils/caseGroupDefaultFilterUtils';
7
8
  import { createFilterStateFromUrlQuery } from '../utils/caseSearchUtils';
8
9
  // TODO Comment
9
10
  export function useFilterStateOnLoad() {
@@ -12,14 +13,15 @@ export function useFilterStateOnLoad() {
12
13
  const savesSearches = find(hydraUserPreferences.data, (pref) => pref.key === UserPreferencesKeys.caseSavedSearchFilters);
13
14
  const savedSearchesObj = useMemo(() => ((savesSearches === null || savesSearches === void 0 ? void 0 : savesSearches.value) ? JSON.parse(savesSearches.value) : {}), [savesSearches]);
14
15
  const set = (queryFromUrl, pageSizeFromUrl, currentPageFromUrl, searchType) => {
16
+ var _a;
15
17
  let savedSearchFilterState = null;
16
18
  const defaultSavedSearchKey = findKey(savedSearchesObj, { defaultChecked: true });
17
19
  if (defaultSavedSearchKey) {
18
20
  const { filterState: filterStateSaved, queryString, type, sortState, } = savedSearchesObj[defaultSavedSearchKey];
19
21
  savedSearchFilterState = Object.assign(Object.assign({}, filterState), { sortInfo: sortState, filterQueryInfo: Object.assign(Object.assign({}, filterState.filterQueryInfo), { queryString, type }), filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), filterStateSaved) });
20
22
  }
21
- const defaultGroup = (caseGroups.data || []).find((group) => group.isDefault);
22
- const [urlQuery] = (queryFromUrl || '').split(/ orderBy /i);
23
+ const defaultGroupFilter = getDefaultGroupFilterSelection(caseGroups.data, (_a = globalMetadataState.loggedInUser) === null || _a === void 0 ? void 0 : _a.data);
24
+ const applyDefaultGroup = shouldApplyDefaultGroupFilter(queryFromUrl, hydraUserPreferences.data);
23
25
  /**
24
26
  When user lands on page for the first time:
25
27
  If we have any query in url(for example redirect from dashboard), we apply the query, if not
@@ -27,12 +29,12 @@ export function useFilterStateOnLoad() {
27
29
  check if user has default group the apply group filter,
28
30
  non of the above, we apply default search values
29
31
  */
30
- let defaultFilterState = urlQuery && urlQuery !== 'undefined'
32
+ let defaultFilterState = decodeCaseListUrlFilterQuery(queryFromUrl)
31
33
  ? createFilterStateFromUrlQuery(queryFromUrl, globalMetadataState, pageSizeFromUrl, currentPageFromUrl, searchType)
32
34
  : defaultSavedSearchKey
33
35
  ? savedSearchFilterState
34
- : !!(defaultGroup === null || defaultGroup === void 0 ? void 0 : defaultGroup.name)
35
- ? Object.assign(Object.assign({}, filterState), { filterInfo: Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: [{ key: defaultGroup.groupNum, value: defaultGroup.name }] }) }) : filterState;
36
+ : applyDefaultGroup && defaultGroupFilter.length > 0
37
+ ? Object.assign(Object.assign({}, filterState), { filterInfo: Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: defaultGroupFilter }) }) : filterState;
36
38
  return {
37
39
  initFilterState: defaultFilterState,
38
40
  defaultSearchName: defaultSavedSearchKey && !queryFromUrl ? defaultSavedSearchKey : '',