@rh-support/cases 2.6.186 → 2.6.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/case-list/CaseList.d.ts +0 -7
- package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +195 -113
- package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListContext.js +5 -2
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.js +2 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +3 -2
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.js +19 -6
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +35 -4
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +4 -12
- package/lib/esm/components/case-list/CaseListReducer.d.ts +22 -10
- package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListReducer.js +25 -7
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +18 -11
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +6 -2
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +1 -7
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +12 -16
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -5
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +12 -13
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +3 -0
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +11 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +116 -71
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +1 -3
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +5 -4
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +15 -54
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +18 -44
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +14 -44
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +1 -3
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +60 -59
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +7 -3
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +77 -60
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +0 -5
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +38 -68
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +5 -15
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +2 -3
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +8 -0
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +8 -0
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +1 -0
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +55 -24
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +29 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +16 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +21 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +12 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +31 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +92 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +20 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +28 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +241 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +11 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +23 -0
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +2 -1
- package/lib/esm/css/caseList.css +111 -22
- package/lib/esm/css/caseSearch.css +114 -0
- package/lib/esm/enums/case.d.ts +2 -1
- package/lib/esm/enums/case.d.ts.map +1 -1
- package/lib/esm/enums/case.js +14 -1
- package/lib/esm/enums/caseSearch.d.ts +1 -0
- package/lib/esm/enums/caseSearch.d.ts.map +1 -1
- package/lib/esm/enums/caseSearch.js +1 -1
- package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/hooks/useExportCaseListCSV.js +1 -9
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.js +1 -1
- package/lib/esm/utils/advanceSearchFormMapper.d.ts +11 -0
- package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +1 -0
- package/lib/esm/utils/advanceSearchFormMapper.js +71 -0
- package/lib/esm/utils/advanceSearchUtils.d.ts +24 -0
- package/lib/esm/utils/advanceSearchUtils.d.ts.map +1 -0
- package/lib/esm/utils/advanceSearchUtils.js +149 -0
- package/lib/esm/utils/caseListGraphQLUtils.d.ts +28 -0
- package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -0
- package/lib/esm/utils/caseListGraphQLUtils.js +280 -0
- package/lib/esm/utils/caseListMapper.d.ts +6 -0
- package/lib/esm/utils/caseListMapper.d.ts.map +1 -0
- package/lib/esm/utils/caseListMapper.js +36 -0
- package/lib/esm/utils/caseListVariablesBuilder.d.ts +15 -0
- package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -0
- package/lib/esm/utils/caseListVariablesBuilder.js +399 -0
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +26 -1
- package/lib/esm/utils/constants.d.ts +4 -1
- package/lib/esm/utils/constants.d.ts.map +1 -1
- package/lib/esm/utils/constants.js +20 -2
- package/lib/esm/utils/mockSolrResponse.js +1 -1
- package/lib/esm/utils/statusUtils.d.ts +4 -0
- package/lib/esm/utils/statusUtils.d.ts.map +1 -0
- package/lib/esm/utils/statusUtils.js +36 -0
- package/package.json +8 -8
package/lib/esm/css/caseList.css
CHANGED
|
@@ -186,11 +186,17 @@
|
|
|
186
186
|
.cases-main .case-search-table {
|
|
187
187
|
-ms-flex: 1;
|
|
188
188
|
flex-grow: 1;
|
|
189
|
-
display:
|
|
190
|
-
|
|
189
|
+
display: flex;
|
|
190
|
+
flex-direction: column;
|
|
191
|
+
min-width: 0;
|
|
191
192
|
border-radius: 0 0 16px !important;
|
|
192
193
|
}
|
|
193
194
|
|
|
195
|
+
.cases-main .case-search-table > .pf-v6-c-scroll-inner-wrapper {
|
|
196
|
+
overflow-x: auto;
|
|
197
|
+
flex: 1;
|
|
198
|
+
}
|
|
199
|
+
|
|
194
200
|
.case-search-bottom .case-list-table-toolbar {
|
|
195
201
|
-ms-flex-align: center;
|
|
196
202
|
align-items: center;
|
|
@@ -200,6 +206,10 @@
|
|
|
200
206
|
background-color: var(--pf-t--color--gray--10);
|
|
201
207
|
border-top: 1px solid var(--pf-t--global--border--color--100);
|
|
202
208
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
209
|
+
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
210
|
+
position: sticky;
|
|
211
|
+
top: 0;
|
|
212
|
+
z-index: 100;
|
|
203
213
|
}
|
|
204
214
|
|
|
205
215
|
.case-search-bottom .case-list-table-toolbar .toolbar-actions {
|
|
@@ -219,18 +229,21 @@
|
|
|
219
229
|
color: #06c !important;
|
|
220
230
|
}
|
|
221
231
|
|
|
222
|
-
.case-search-bottom .case-list-table-toolbar .toolbar-pagination button[disabled] {
|
|
223
|
-
color: #999;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
232
|
.case-search-bottom .case-list-table-toolbar button.pf-m-secondary:not([disabled]),
|
|
227
233
|
.case-search-bottom .case-list-table-toolbar button.pf-m-tertiary:not([disabled]),
|
|
228
234
|
.case-search-bottom .case-list-table-toolbar button.pf-m-control:not([disabled]) {
|
|
229
235
|
background-color: #fff;
|
|
230
236
|
}
|
|
231
237
|
|
|
238
|
+
.case-count-indicator {
|
|
239
|
+
font-size: 14px !important;
|
|
240
|
+
line-height: 1.5em;
|
|
241
|
+
white-space: nowrap;
|
|
242
|
+
padding-right: 1rem;
|
|
243
|
+
color: var(--pf-t--global--text--color--regular, #151515);
|
|
244
|
+
}
|
|
245
|
+
|
|
232
246
|
.cases-main .case-search-table .case-list-table {
|
|
233
|
-
border-top: 1px solid var(--pf-t--global--border--color--100);
|
|
234
247
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
235
248
|
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
236
249
|
}
|
|
@@ -277,17 +290,6 @@
|
|
|
277
290
|
text-transform: uppercase;
|
|
278
291
|
}
|
|
279
292
|
|
|
280
|
-
.case-search-bottom .case-search-table footer.toolbar-pagination {
|
|
281
|
-
margin-top: 0 !important;
|
|
282
|
-
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
283
|
-
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
284
|
-
border-radius: 16px !important;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
.case-search-bottom .case-search-table footer.toolbar-pagination > :first-child {
|
|
288
|
-
padding: 1rem;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
293
|
.case-search-bottom #case-filters-panel {
|
|
292
294
|
-ms-flex: 100%;
|
|
293
295
|
flex-basis: 100%;
|
|
@@ -300,11 +302,13 @@
|
|
|
300
302
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
301
303
|
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
302
304
|
border-radius: 0 0 0 16px;
|
|
305
|
+
align-self: stretch;
|
|
303
306
|
}
|
|
304
307
|
|
|
305
308
|
.case-search-filters .filter-header {
|
|
306
309
|
min-height: 4rem;
|
|
307
310
|
margin: 0;
|
|
311
|
+
padding: 0;
|
|
308
312
|
}
|
|
309
313
|
|
|
310
314
|
.case-search-filters .filter-header .pf-v6-svg {
|
|
@@ -349,6 +353,10 @@
|
|
|
349
353
|
font-size: 1rem;
|
|
350
354
|
font-weight: 600;
|
|
351
355
|
height: 4.3rem;
|
|
356
|
+
position: sticky;
|
|
357
|
+
top: 0;
|
|
358
|
+
z-index: 100;
|
|
359
|
+
background-color: #f2f2f2;
|
|
352
360
|
|
|
353
361
|
.pf-v6-c-button__icon.pf-m-end {
|
|
354
362
|
margin-right: -4px !important;
|
|
@@ -359,6 +367,8 @@
|
|
|
359
367
|
.filter-wrapper {
|
|
360
368
|
padding: 24px;
|
|
361
369
|
background-color: var(--pf-t--color--gray--10);
|
|
370
|
+
position: relative;
|
|
371
|
+
z-index: 0;
|
|
362
372
|
}
|
|
363
373
|
|
|
364
374
|
.filter-wrapper .filter-group > * {
|
|
@@ -413,10 +423,6 @@
|
|
|
413
423
|
.case-search-bottom .case-list-table-toolbar .toolbar-actions > * {
|
|
414
424
|
margin-bottom: 0;
|
|
415
425
|
}
|
|
416
|
-
|
|
417
|
-
.case-search-bottom .case-list-table-toolbar .toolbar-pagination {
|
|
418
|
-
margin-top: 0;
|
|
419
|
-
}
|
|
420
426
|
}
|
|
421
427
|
|
|
422
428
|
@media (min-width: 768px) {
|
|
@@ -645,3 +651,86 @@ th#product.pf-v6-c-table__th {
|
|
|
645
651
|
.case-list-table .pf-v6-c-table__button {
|
|
646
652
|
margin-bottom: 0px !important;
|
|
647
653
|
}
|
|
654
|
+
|
|
655
|
+
.skeleton-loader-row {
|
|
656
|
+
height: 62px;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.skeleton-loader-row .skeleton-sentinel {
|
|
660
|
+
display: flex;
|
|
661
|
+
align-items: center;
|
|
662
|
+
height: 100%;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
.skeleton-loader-row .skeleton-bar {
|
|
666
|
+
display: block;
|
|
667
|
+
height: 24px;
|
|
668
|
+
border-radius: 4px;
|
|
669
|
+
background-color: #e0e0e0;
|
|
670
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
.skeleton-loader-row .skeleton-bar--checkbox {
|
|
674
|
+
display: inline-block;
|
|
675
|
+
width: 16px;
|
|
676
|
+
height: 16px;
|
|
677
|
+
border-radius: 3px;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
@keyframes skeleton-pulse {
|
|
681
|
+
0% {
|
|
682
|
+
opacity: 1;
|
|
683
|
+
}
|
|
684
|
+
50% {
|
|
685
|
+
opacity: 0.4;
|
|
686
|
+
}
|
|
687
|
+
100% {
|
|
688
|
+
opacity: 1;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.infinite-scroll-footer-message {
|
|
693
|
+
display: flex;
|
|
694
|
+
justify-content: center;
|
|
695
|
+
align-items: center;
|
|
696
|
+
gap: 8px;
|
|
697
|
+
padding: 12px 0;
|
|
698
|
+
position: sticky;
|
|
699
|
+
left: 0;
|
|
700
|
+
background-color: #fff;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
.infinite-scroll-footer-text,
|
|
704
|
+
.infinite-scroll-alert,
|
|
705
|
+
.infinite-scroll-alert * {
|
|
706
|
+
font-size: 14px !important;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
.infinite-scroll-footer-message .pf-v6-c-alert.pf-m-inline.pf-m-plain {
|
|
710
|
+
padding: 0;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
.infinite-scroll-footer-message .pf-v6-c-button.pf-m-link.pf-m-inline {
|
|
714
|
+
text-decoration: none;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.infinite-scroll-retry-btn.pf-v6-c-button.pf-m-secondary {
|
|
718
|
+
border-radius: 999px;
|
|
719
|
+
padding: 8px 24px;
|
|
720
|
+
gap: 6px;
|
|
721
|
+
font-size: 14px;
|
|
722
|
+
font-weight: 400;
|
|
723
|
+
line-height: 1.5;
|
|
724
|
+
display: inline-flex;
|
|
725
|
+
align-items: center;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.infinite-scroll-retry-btn .pf-v6-c-button__icon {
|
|
729
|
+
display: inline-flex;
|
|
730
|
+
align-items: center;
|
|
731
|
+
line-height: 0;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
.infinite-scroll-retry-btn .pf-v6-c-button__icon svg {
|
|
735
|
+
vertical-align: middle;
|
|
736
|
+
}
|
|
@@ -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
|
+
}
|
package/lib/esm/enums/case.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare enum CaseStatus {
|
|
|
9
9
|
export declare enum CaseSeverity {
|
|
10
10
|
Urgent = "1 - Urgent",
|
|
11
11
|
Important = "2 - Important",
|
|
12
|
-
|
|
12
|
+
Medium = "3 - Medium",
|
|
13
13
|
Low = "4 - Low"
|
|
14
14
|
}
|
|
15
15
|
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";
|
|
@@ -56,6 +56,7 @@ export declare const caseListSortColumnIdsToSFDCMap: {
|
|
|
56
56
|
type: SFDCKeys;
|
|
57
57
|
closedDate: SFDCKeys;
|
|
58
58
|
};
|
|
59
|
+
export declare const caseListSortColumnIdsToGraphQLMap: Record<string, string>;
|
|
59
60
|
export declare const caseTableColumSortNamesMap: {
|
|
60
61
|
number: string;
|
|
61
62
|
summary: string;
|
|
@@ -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,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;AAGF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWpE,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAatC,CAAC"}
|
package/lib/esm/enums/case.js
CHANGED
|
@@ -11,7 +11,7 @@ export var CaseSeverity;
|
|
|
11
11
|
(function (CaseSeverity) {
|
|
12
12
|
CaseSeverity["Urgent"] = "1 - Urgent";
|
|
13
13
|
CaseSeverity["Important"] = "2 - Important";
|
|
14
|
-
CaseSeverity["
|
|
14
|
+
CaseSeverity["Medium"] = "3 - Medium";
|
|
15
15
|
CaseSeverity["Low"] = "4 - Low";
|
|
16
16
|
})(CaseSeverity || (CaseSeverity = {}));
|
|
17
17
|
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';
|
|
@@ -59,6 +59,19 @@ export const caseListSortColumnIdsToSFDCMap = {
|
|
|
59
59
|
[CaseListColumnIds.type]: SFDCKeys.caseType,
|
|
60
60
|
[CaseListColumnIds.caseClosedDate]: SFDCKeys.caseClosedDate,
|
|
61
61
|
};
|
|
62
|
+
// Maps CaseListColumnIds to GraphQL SalesforceSupportCase_OrderBy field paths
|
|
63
|
+
export const caseListSortColumnIdsToGraphQLMap = {
|
|
64
|
+
[CaseListColumnIds.caseId]: 'CaseNumber',
|
|
65
|
+
[CaseListColumnIds.summary]: 'Subject',
|
|
66
|
+
[CaseListColumnIds.severity]: 'Priority',
|
|
67
|
+
[CaseListColumnIds.owner]: 'OwnerId',
|
|
68
|
+
[CaseListColumnIds.created]: 'CreatedDate',
|
|
69
|
+
[CaseListColumnIds.status]: 'Status',
|
|
70
|
+
[CaseListColumnIds.modified]: 'LastModifiedDate',
|
|
71
|
+
[CaseListColumnIds.accountNumber]: 'Account_Number__c',
|
|
72
|
+
[CaseListColumnIds.type]: 'Type',
|
|
73
|
+
[CaseListColumnIds.caseClosedDate]: 'ClosedDate',
|
|
74
|
+
};
|
|
62
75
|
export const caseTableColumSortNamesMap = {
|
|
63
76
|
[CaseListColumnIds.caseId]: 'Case ID',
|
|
64
77
|
[CaseListColumnIds.summary]: 'Title',
|
|
@@ -33,6 +33,7 @@ export declare const advanceSearchFieldNameToSolrFieldMapping: {
|
|
|
33
33
|
case_description: string;
|
|
34
34
|
case_summary: string;
|
|
35
35
|
case_alternate_id: string;
|
|
36
|
+
case_openshift_cluster_id: string;
|
|
36
37
|
case_closedDate: string;
|
|
37
38
|
case_product: string;
|
|
38
39
|
case_status: 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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBpD,CAAC"}
|
|
@@ -19,4 +19,4 @@ export const fieldNameToSolrFieldMapping = {
|
|
|
19
19
|
[SolrKeys.type]: 'supportType',
|
|
20
20
|
[SolrKeys.isPrivate]: 'private',
|
|
21
21
|
};
|
|
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' });
|
|
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.openshiftClusterId]: 'openshiftClusterId', [SolrKeys.caseClosedDate]: 'closedDate' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportCaseListCSV.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportCaseListCSV.ts"],"names":[],"mappings":"
|
|
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 =
|
|
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,
|
|
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,GAAG,SAAS,sBACf,MAAM,cACd,mBAAmB;;;;EA+DtC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IAdvanceSearchDateRanges, IAdvanceSearchFormState, ICaseListFilterState, IFilterInfo } from '../components/case-list/CaseListFilterReducer';
|
|
2
|
+
import { CaseSearchQueryType } from '../enums/caseSearch';
|
|
3
|
+
export declare const hasAdvanceSearchActiveState: (filterState: ICaseListFilterState) => boolean;
|
|
4
|
+
export declare const deriveSearchQueryType: (filterState: ICaseListFilterState) => CaseSearchQueryType;
|
|
5
|
+
export declare const toNameOrSsoFilterValues: (value: string) => string[];
|
|
6
|
+
export declare const mapAdvanceSearchFormToFilterInfo: (formState: IAdvanceSearchFormState) => IFilterInfo;
|
|
7
|
+
export declare const mergeAdvanceSearchFormIntoFilterInfo: (formState: IAdvanceSearchFormState, currentFilterInfo?: Partial<IFilterInfo>) => IFilterInfo;
|
|
8
|
+
export declare const buildAdvanceSearchParsedQuery: (formState: IAdvanceSearchFormState, filterInfo: Partial<IFilterInfo>) => string;
|
|
9
|
+
export declare const mapAdvanceSearchFormToDateRanges: (formState: IAdvanceSearchFormState) => IAdvanceSearchDateRanges;
|
|
10
|
+
export declare const createCaseListFilterStateFromAdvanceSearchForm: (formState: IAdvanceSearchFormState, currentFilterState: ICaseListFilterState) => ICaseListFilterState;
|
|
11
|
+
//# sourceMappingURL=advanceSearchFormMapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanceSearchFormMapper.d.ts","sourceRoot":"","sources":["../../../src/utils/advanceSearchFormMapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACd,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1D,eAAO,MAAM,2BAA2B,GAAI,aAAa,oBAAoB,KAAG,OACwB,CAAC;AAEzG,eAAO,MAAM,qBAAqB,GAAI,aAAa,oBAAoB,KAAG,mBAC6B,CAAC;AAIxG,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,MAAM,EAc7D,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,WAAW,uBAAuB,KAAG,WAsBrF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC7C,WAAW,uBAAuB,EAClC,oBAAmB,OAAO,CAAC,WAAW,CAAM,KAC7C,WAoBF,CAAC;AAmBF,eAAO,MAAM,6BAA6B,GACtC,WAAW,uBAAuB,EAClC,YAAY,OAAO,CAAC,WAAW,CAAC,KACjC,MASF,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAAI,WAAW,uBAAuB,KAAG,wBAIpF,CAAC;AAEH,eAAO,MAAM,8CAA8C,GACvD,WAAW,uBAAuB,EAClC,oBAAoB,oBAAoB,KACzC,oBA0BF,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { toOldCaseTypeMapper } from '@rh-support/utils';
|
|
2
|
+
import { initialPaginationInfo } from '../components/case-list/CaseListFilterContext';
|
|
3
|
+
import { hasAdvanceSearchDateRanges } from '../components/case-list/CaseListFilterHelpers';
|
|
4
|
+
import { emptyFilters, } from '../components/case-list/CaseListFilterReducer';
|
|
5
|
+
import { CaseSearchQueryType } from '../enums/caseSearch';
|
|
6
|
+
import { SolrKeys, SolrPivotKeys } from '../enums/filters';
|
|
7
|
+
import { isAdvanceSearchFormEmpty } from './advanceSearchUtils';
|
|
8
|
+
import { createUserFriendlyQueryFromFilterStateAdvancedSearch } from './caseSearchUtils';
|
|
9
|
+
export const hasAdvanceSearchActiveState = (filterState) => { var _a, _b; return Boolean((_b = (_a = filterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.parsedQuery) === null || _b === void 0 ? void 0 : _b.trim()) || hasAdvanceSearchDateRanges(filterState); };
|
|
10
|
+
export const deriveSearchQueryType = (filterState) => hasAdvanceSearchActiveState(filterState) ? CaseSearchQueryType.ADVANCED : CaseSearchQueryType.BASIC;
|
|
11
|
+
const splitSearchTokens = (value) => value.trim().split(/\s+/).filter(Boolean);
|
|
12
|
+
export const toNameOrSsoFilterValues = (value) => {
|
|
13
|
+
const trimmed = value.trim();
|
|
14
|
+
if (!trimmed) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
if (trimmed.includes(',')) {
|
|
18
|
+
return trimmed
|
|
19
|
+
.split(',')
|
|
20
|
+
.map((entry) => entry.trim())
|
|
21
|
+
.filter(Boolean);
|
|
22
|
+
}
|
|
23
|
+
return [trimmed];
|
|
24
|
+
};
|
|
25
|
+
export const mapAdvanceSearchFormToFilterInfo = (formState) => {
|
|
26
|
+
const escalation = formState.showEscalatedOnly ? [{ key: 'true', value: 'true' }] : [];
|
|
27
|
+
return Object.assign(Object.assign({}, emptyFilters), { [SolrPivotKeys.product_version]: formState.products.map((product) => (Object.assign(Object.assign({}, product), { [SolrKeys.version]: [...(product[SolrKeys.version] || [])] }))), [SolrKeys.status]: [...formState.statuses], [SolrKeys.severity]: [...formState.severities], [SolrKeys.type]: toOldCaseTypeMapper(formState.supportTypes), [SolrKeys.escalation]: escalation, [SolrKeys.accountNumber]: [...formState.accountNumbers], [SolrKeys.alternateId]: splitSearchTokens(formState.personalReferenceNumber), [SolrKeys.openshiftClusterId]: splitSearchTokens(formState.openshiftClusterId), [SolrKeys.caseContactSSO]: toNameOrSsoFilterValues(formState.ownerNameAndSso), [SolrKeys.caseOwner]: toNameOrSsoFilterValues(formState.assignedToNameAndSso), [SolrKeys.group]: [...formState.groups], [SolrKeys.createdBySsoUsername]: toNameOrSsoFilterValues(formState.createdByNameAndSso), [SolrKeys.modifiedBy]: toNameOrSsoFilterValues(formState.lastModifiedByNameAndSso) });
|
|
28
|
+
};
|
|
29
|
+
export const mergeAdvanceSearchFormIntoFilterInfo = (formState, currentFilterInfo = {}) => {
|
|
30
|
+
const advanceSearchValues = mapAdvanceSearchFormToFilterInfo(formState);
|
|
31
|
+
return Object.assign(Object.assign(Object.assign({}, emptyFilters), currentFilterInfo), { [SolrPivotKeys.product_version]: advanceSearchValues[SolrPivotKeys.product_version], [SolrKeys.status]: advanceSearchValues[SolrKeys.status], [SolrKeys.severity]: advanceSearchValues[SolrKeys.severity], [SolrKeys.type]: advanceSearchValues[SolrKeys.type], [SolrKeys.escalation]: advanceSearchValues[SolrKeys.escalation], [SolrKeys.accountNumber]: advanceSearchValues[SolrKeys.accountNumber], [SolrKeys.alternateId]: advanceSearchValues[SolrKeys.alternateId], [SolrKeys.openshiftClusterId]: advanceSearchValues[SolrKeys.openshiftClusterId], [SolrKeys.caseContactSSO]: advanceSearchValues[SolrKeys.caseContactSSO], [SolrKeys.caseOwner]: advanceSearchValues[SolrKeys.caseOwner], [SolrKeys.group]: advanceSearchValues[SolrKeys.group], [SolrKeys.createdBySsoUsername]: advanceSearchValues[SolrKeys.createdBySsoUsername], [SolrKeys.modifiedBy]: advanceSearchValues[SolrKeys.modifiedBy] });
|
|
32
|
+
};
|
|
33
|
+
const formatDateRangeParsedQuery = (fieldLabel, range) => {
|
|
34
|
+
const { startDate, endDate } = range;
|
|
35
|
+
if (!startDate && !endDate) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (startDate && endDate) {
|
|
39
|
+
return `${fieldLabel}: ${startDate} to ${endDate}`;
|
|
40
|
+
}
|
|
41
|
+
if (startDate) {
|
|
42
|
+
return `${fieldLabel}: >= ${startDate}`;
|
|
43
|
+
}
|
|
44
|
+
return `${fieldLabel}: <= ${endDate}`;
|
|
45
|
+
};
|
|
46
|
+
export const buildAdvanceSearchParsedQuery = (formState, filterInfo) => {
|
|
47
|
+
const filterQueryParts = [
|
|
48
|
+
createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, ''),
|
|
49
|
+
formatDateRangeParsedQuery('createdDate', formState.createdDateRange),
|
|
50
|
+
formatDateRangeParsedQuery('lastModifiedDate', formState.lastModifiedDateRange),
|
|
51
|
+
formatDateRangeParsedQuery('closedDate', formState.closedDateRange),
|
|
52
|
+
].filter(Boolean);
|
|
53
|
+
return filterQueryParts.join(' and ');
|
|
54
|
+
};
|
|
55
|
+
export const mapAdvanceSearchFormToDateRanges = (formState) => ({
|
|
56
|
+
createdDateRange: Object.assign({}, formState.createdDateRange),
|
|
57
|
+
lastModifiedDateRange: Object.assign({}, formState.lastModifiedDateRange),
|
|
58
|
+
closedDateRange: Object.assign({}, formState.closedDateRange),
|
|
59
|
+
});
|
|
60
|
+
export const createCaseListFilterStateFromAdvanceSearchForm = (formState, currentFilterState) => {
|
|
61
|
+
var _a;
|
|
62
|
+
const filterInfo = mergeAdvanceSearchFormIntoFilterInfo(formState, currentFilterState.filterInfo);
|
|
63
|
+
const hasActiveAdvanceSearch = !isAdvanceSearchFormEmpty(formState);
|
|
64
|
+
const parsedQuery = hasActiveAdvanceSearch ? buildAdvanceSearchParsedQuery(formState, filterInfo) : '';
|
|
65
|
+
const nextFilterState = Object.assign(Object.assign({}, currentFilterState), { filterInfo, filterQueryInfo: {
|
|
66
|
+
queryString: ((_a = currentFilterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.queryString) || '',
|
|
67
|
+
parsedQuery,
|
|
68
|
+
type: hasActiveAdvanceSearch ? CaseSearchQueryType.ADVANCED : CaseSearchQueryType.BASIC,
|
|
69
|
+
}, paginationInfo: Object.assign(Object.assign({}, (currentFilterState.paginationInfo || initialPaginationInfo)), { currentPage: 1 }), advanceSearchDateRanges: hasActiveAdvanceSearch ? mapAdvanceSearchFormToDateRanges(formState) : undefined });
|
|
70
|
+
return Object.assign(Object.assign({}, nextFilterState), { filterQueryInfo: Object.assign(Object.assign({}, nextFilterState.filterQueryInfo), { type: deriveSearchQueryType(nextFilterState) }) });
|
|
71
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IAdvanceSearchDateRange, IAdvanceSearchFormState, ICaseListFilterState } from '../components/case-list/CaseListFilterReducer';
|
|
2
|
+
/** Matches PatternFly DatePicker yyyy-MM-dd parsing and rejects impossible dates (e.g. 2024-02-31). */
|
|
3
|
+
export declare const parseAdvanceSearchDate: (value: string) => Date | undefined;
|
|
4
|
+
export declare const isValidAdvanceSearchDateInput: (value: string) => boolean;
|
|
5
|
+
export declare const isAdvanceSearchDateRangeValid: (range: IAdvanceSearchDateRange) => boolean;
|
|
6
|
+
export declare const hasInvalidAdvanceSearchDates: (ranges: {
|
|
7
|
+
createdDateRange: IAdvanceSearchDateRange;
|
|
8
|
+
lastModifiedDateRange: IAdvanceSearchDateRange;
|
|
9
|
+
closedDateRange: IAdvanceSearchDateRange;
|
|
10
|
+
}) => boolean;
|
|
11
|
+
export interface IAdvanceSearchDateRangeFieldErrors {
|
|
12
|
+
startDate?: string;
|
|
13
|
+
endDate?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const getAdvanceSearchDateRangeFieldErrors: (range: IAdvanceSearchDateRange, messages: {
|
|
16
|
+
invalidDateFormat: string;
|
|
17
|
+
invalidDateRange: string;
|
|
18
|
+
}) => IAdvanceSearchDateRangeFieldErrors;
|
|
19
|
+
export declare const createInitialAdvanceSearchFormState: () => IAdvanceSearchFormState;
|
|
20
|
+
export declare const mapFilterStateToAdvanceSearchForm: (filterState: ICaseListFilterState) => IAdvanceSearchFormState;
|
|
21
|
+
export declare const isAdvanceSearchFormEmpty: (formState: IAdvanceSearchFormState) => boolean;
|
|
22
|
+
/** Counts total applied advanced-search filter values across all fields. */
|
|
23
|
+
export declare const getAdvanceSearchAppliedFilterCount: (filterState: ICaseListFilterState) => number;
|
|
24
|
+
//# sourceMappingURL=advanceSearchUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanceSearchUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/advanceSearchUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EAEvB,MAAM,+CAA+C,CAAC;AAKvD,uGAAuG;AACvG,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,SAsB7D,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,KAAG,OACE,CAAC;AAEjE,eAAO,MAAM,6BAA6B,GAAI,OAAO,uBAAuB,KAAG,OAa9E,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,QAAQ;IACjD,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,eAAe,EAAE,uBAAuB,CAAC;CAC5C,KAAG,OAGsD,CAAC;AAE3D,MAAM,WAAW,kCAAkC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,oCAAoC,GAC7C,OAAO,uBAAuB,EAC9B,UAAU;IACN,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC5B,KACF,kCAqBF,CAAC;AAOF,eAAO,MAAM,mCAAmC,QAAO,uBAiBrD,CAAC;AAEH,eAAO,MAAM,iCAAiC,GAAI,aAAa,oBAAoB,KAAG,uBA6BrF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAW,uBAAuB,KAAG,OAG7E,CAAC;AAuBF,4EAA4E;AAC5E,eAAO,MAAM,kCAAkC,GAAI,aAAa,oBAAoB,KAAG,MAyBtF,CAAC"}
|