@rh-support/cases 2.6.7 → 2.6.8

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 (50) hide show
  1. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  2. package/lib/esm/components/case-list/CaseList.js +5 -10
  3. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts.map +1 -1
  4. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.js +34 -34
  5. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  6. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +3 -3
  7. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +4 -4
  9. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
  10. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +5 -5
  11. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
  12. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +4 -5
  13. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts.map +1 -1
  14. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.js +6 -6
  15. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  16. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +4 -5
  17. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  18. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +124 -32
  19. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  20. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +91 -20
  21. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  22. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +90 -18
  23. package/lib/esm/components/case-list/case-list-filters/TypeFilter.d.ts.map +1 -1
  24. package/lib/esm/components/case-list/case-list-filters/TypeFilter.js +67 -16
  25. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  26. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +112 -15
  27. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  28. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +15 -16
  29. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  30. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +7 -7
  31. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +1 -1
  32. package/lib/esm/components/case-list/case-list-table/SeverityLabel.d.ts.map +1 -1
  33. package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +6 -5
  34. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
  35. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +5 -7
  36. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +1 -1
  37. package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
  38. package/lib/esm/components/case-list/case-search/AdvanceSearch.js +13 -14
  39. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  40. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +21 -15
  41. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  42. package/lib/esm/components/case-list/case-search/CaseSearch.js +2 -2
  43. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts.map +1 -1
  44. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.js +16 -17
  45. package/lib/esm/css/caseList.css +89 -56
  46. package/lib/esm/css/caseSearch.css +13 -2
  47. package/lib/esm/css/escalation.css +4 -4
  48. package/lib/esm/scss/_main.scss +15 -11
  49. package/lib/esm/scss/_pf-overrides.scss +25 -12
  50. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"SeverityFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/SeverityFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBA8E3C"}
1
+ {"version":3,"file":"SeverityFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/SeverityFilter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAoL3C"}
@@ -1,33 +1,104 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
1
+ import { Button, MenuToggle, Select, SelectList, SelectOption, } from '@patternfly/react-core';
2
+ import { SingleSelectDropdown, useSelectKeyboardNavigator } from '@rh-support/components';
2
3
  import { getDropdownBtnPlaceholder } from '@rh-support/utils';
3
- import React, { useContext, useState } from 'react';
4
+ import isEmpty from 'lodash/isEmpty';
5
+ import React, { useContext, useEffect, useState } from 'react';
4
6
  import { useTranslation } from 'react-i18next';
5
7
  import { SolrKeys } from '../../../enums/filters';
6
8
  import { filterNamesMap } from '../../../utils/constants';
7
9
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../CaseListFilterContext';
8
10
  import { updateFilter } from '../CaseListFilterReducer';
9
11
  export function SeverityFilter(props) {
12
+ var _a;
10
13
  const { t } = useTranslation();
11
- const dispatch = useContext(CaseListFilterDispatchContext);
12
14
  const { filterInfo } = useContext(CaseListFilterStateContext);
15
+ const dispatch = useContext(CaseListFilterDispatchContext);
13
16
  const [isOpen, setIsOpen] = useState(false);
14
- const toggleIsOpen = (isExpanded) => setIsOpen(isExpanded);
15
- const onFilterChangeMultipleSelect = (event, selectedSeverities) => {
16
- const newState = filterInfo[SolrKeys.severity].includes(selectedSeverities)
17
- ? filterInfo[SolrKeys.severity].filter((item) => item !== selectedSeverities)
18
- : [...filterInfo[SolrKeys.severity], selectedSeverities];
19
- updateFilter(dispatch, { filterKey: SolrKeys.severity, values: newState });
17
+ const [selectedItems, setSelectedItems] = useState({});
18
+ const list = props.isSolrSearchDown
19
+ ? props.allCaseSeverities.map((severity) => ({ value: severity, key: severity }))
20
+ : props.filterValues.map((filterValue) => ({ value: filterValue.value, key: filterValue.value }));
21
+ const singleSelectOptions = list.map((item) => ({
22
+ value: item.value,
23
+ label: item.value,
24
+ }));
25
+ const selectedSeverity = ((_a = filterInfo[SolrKeys.severity]) === null || _a === void 0 ? void 0 : _a[0]) || '';
26
+ const selectedOption = {
27
+ value: selectedSeverity,
28
+ label: selectedSeverity,
29
+ };
30
+ const onToggleClick = (e) => {
31
+ e.stopPropagation();
32
+ setIsOpen(!isOpen);
33
+ };
34
+ const onSelect = (option) => {
35
+ if (props.isSolrSearchDown) {
36
+ updateFilter(dispatch, {
37
+ filterKey: SolrKeys.severity,
38
+ values: [option.value],
39
+ });
40
+ setIsOpen(false);
41
+ return;
42
+ }
43
+ const prevSelectedSeverities = Object.keys(selectedItems).filter((item) => selectedItems[item] && item);
44
+ if (selectedItems[option.value]) {
45
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: false })));
46
+ const index = prevSelectedSeverities.indexOf(option.value);
47
+ prevSelectedSeverities.splice(index, 1);
48
+ }
49
+ else {
50
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: true })));
51
+ prevSelectedSeverities.push(option.value);
52
+ }
53
+ updateFilter(dispatch, {
54
+ filterKey: SolrKeys.severity,
55
+ values: prevSelectedSeverities,
56
+ });
57
+ };
58
+ // Use the keyboard navigator hook
59
+ const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
60
+ list,
61
+ isOpen,
62
+ resetIndexOnClose: true,
63
+ setIsOpen,
64
+ onSelect,
65
+ });
66
+ const onClick = () => {
67
+ setSelectedItems({});
68
+ updateFilter(dispatch, {
69
+ filterKey: SolrKeys.severity,
70
+ values: [],
71
+ });
20
72
  };
21
- const onFilterChangeSingleSelect = (event, selectedSeverity) => {
22
- updateFilter(dispatch, { filterKey: SolrKeys.severity, values: [selectedSeverity] });
23
- setIsOpen(false);
73
+ const placeholder = props.isSolrSearchDown
74
+ ? t('Select a severity')
75
+ : getDropdownBtnPlaceholder(t('Select a severity'), filterInfo[SolrKeys.severity], ' ', list.length, t('All selected'));
76
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "default", onClick: onToggleClick, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true, onKeyDown: onInputKeyDown },
77
+ placeholder,
78
+ Object.keys(selectedItems).filter((key) => selectedItems[key] === true).length > 0 && (React.createElement(Button, { icon: "", variant: "plain", onClick: onClick, "aria-label": "Clear selection", className: "pf-v6-c-select__toggle-clear" }))));
79
+ const dropdownOptions = list.map((option, index) => !isEmpty(option.value) && (React.createElement(SelectOption, { key: option.key, value: option, hasCheckbox: !props.isSolrSearchDown, isSelected: selectedItems[option.value], isFocused: focusedItemIndex !== null && focusedItemIndex === index, id: `select-severity-${option.value.replace(' ', '-')}` }, option.value)));
80
+ const onSingleSelectChange = (option) => {
81
+ updateFilter(dispatch, {
82
+ filterKey: SolrKeys.severity,
83
+ values: [option.value],
84
+ });
24
85
  };
25
- const titleId = 'case-list-severity-filter';
26
- // solr is down and solr filter values are not available
27
- // we get filter values from hydra metadata api
28
- const singleSelectSolrIsDown = () => (React.createElement(Select, { id: titleId, variant: SelectVariant.single, "aria-label": "Select Input", onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChangeSingleSelect, selections: filterInfo[SolrKeys.severity][0], isOpen: isOpen, "aria-labelledby": titleId, placeholderText: t('Select a severity'), "data-tracking-id": "severity-filter", hasPlaceholderStyle: true }, props.allCaseSeverities.map((severity) => (React.createElement(SelectOption, { key: severity, value: severity })))));
29
- const multiSelect = () => (React.createElement(Select, { id: titleId, variant: SelectVariant.checkbox, "aria-label": t('Select a severity'), onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChangeMultipleSelect, selections: filterInfo[SolrKeys.severity], isOpen: isOpen, placeholderText: getDropdownBtnPlaceholder(t('Select a severity'), filterInfo[SolrKeys.severity], ' ', props.filterValues.length, t('All selected')), isCheckboxSelectionBadgeHidden: true, "aria-labelledby": titleId, "data-tracking-id": "severity-filter", hasPlaceholderStyle: true }, props.filterValues.map((filterValue) => (React.createElement(SelectOption, { key: filterValue.value, value: filterValue.value })))));
30
- return (React.createElement("div", { className: "pf-v5-c-select" },
31
- React.createElement("label", { htmlFor: titleId }, t(filterNamesMap[SolrKeys.severity])),
32
- props.isSolrSearchDown ? singleSelectSolrIsDown() : multiSelect()));
86
+ useEffect(() => {
87
+ var _a;
88
+ if (isEmpty(filterInfo[SolrKeys.severity])) {
89
+ setSelectedItems({});
90
+ }
91
+ else if (!props.isSolrSearchDown) {
92
+ const selectedSeverities = (_a = filterInfo[SolrKeys.severity]) === null || _a === void 0 ? void 0 : _a.reduce((selection, severity) => {
93
+ selection[severity] = true;
94
+ return selection;
95
+ }, {});
96
+ setSelectedItems(selectedSeverities);
97
+ }
98
+ // eslint-disable-next-line react-hooks/exhaustive-deps
99
+ }, [filterInfo[SolrKeys.severity], props.isSolrSearchDown]);
100
+ return (React.createElement("div", { className: "severity-filter" },
101
+ React.createElement("label", { htmlFor: "case-list-severity-filter", className: "pf-v6-u-mb-sm severity-filter-label" }, t(filterNamesMap[SolrKeys.severity])),
102
+ props.isSolrSearchDown ? (React.createElement(SingleSelectDropdown, { id: "case-list-severity-filter", selected: selectedOption, options: singleSelectOptions, placeholder: t('Select a severity'), onSelect: onSingleSelectChange, dataTrackingId: "severity-filter", isScrollable: true })) : (React.createElement(Select, { role: "menu", id: "case-list-severity-filter", "data-tracking-id": "severity-filter", isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), toggle: toggle, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
103
+ React.createElement(SelectList, null, dropdownOptions)))));
33
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StatusFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/StatusFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAA+B,MAAM,OAAO,CAAC;AAOpD,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBA4GzC"}
1
+ {"version":3,"file":"StatusFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/StatusFilter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAO/D,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBAkNzC"}
@@ -1,25 +1,73 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
2
- import React, { useContext, useState } from 'react';
1
+ import { Button, MenuToggle, Select, SelectList, SelectOption, } from '@patternfly/react-core';
2
+ import { SingleSelectDropdown, useSelectKeyboardNavigator } from '@rh-support/components';
3
+ import isEmpty from 'lodash/isEmpty';
4
+ import React, { useContext, useEffect, useState } from 'react';
3
5
  import { useTranslation } from 'react-i18next';
4
6
  import { SolrKeys } from '../../../enums/filters';
5
7
  import { filterNamesMap } from '../../../utils/constants';
6
8
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../CaseListFilterContext';
7
9
  import { updateFilter } from '../CaseListFilterReducer';
8
10
  export function StatusFilter(props) {
11
+ var _a;
9
12
  const dispatch = useContext(CaseListFilterDispatchContext);
10
13
  const { t } = useTranslation();
11
14
  const { filterInfo } = useContext(CaseListFilterStateContext);
12
15
  const [isOpen, setIsOpen] = useState(false);
13
- const toggleIsOpen = (isExpanded) => setIsOpen(isExpanded);
14
- const onFilterChange = (event, selectedStatus) => {
15
- const newState = filterInfo[SolrKeys.status].includes(selectedStatus)
16
- ? filterInfo[SolrKeys.status].filter((item) => item !== selectedStatus)
17
- : [...filterInfo[SolrKeys.status], selectedStatus];
18
- updateFilter(dispatch, { filterKey: SolrKeys.status, values: newState });
16
+ const [selectedItems, setSelectedItems] = useState({});
17
+ const list = props.isSolrSearchDown
18
+ ? props.allCaseStatuses.map((status) => ({ value: status, key: status }))
19
+ : props.filterValues.map((filterValue) => ({ value: filterValue.value, key: filterValue.value }));
20
+ const singleSelectOptions = list.map((item) => ({
21
+ value: item.value,
22
+ label: item.value,
23
+ }));
24
+ const selectedStatus = ((_a = filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.status]) === null || _a === void 0 ? void 0 : _a[0]) || '';
25
+ const selectedOption = {
26
+ value: selectedStatus,
27
+ label: selectedStatus,
19
28
  };
20
- const onFilterChangeSingleSelect = (event, selectedStatus) => {
21
- updateFilter(dispatch, { filterKey: SolrKeys.status, values: [selectedStatus] });
22
- setIsOpen(false);
29
+ const onToggleClick = (e) => {
30
+ e.stopPropagation();
31
+ setIsOpen(!isOpen);
32
+ };
33
+ const onSelect = (option) => {
34
+ if (props.isSolrSearchDown) {
35
+ updateFilter(dispatch, {
36
+ filterKey: SolrKeys.status,
37
+ values: [option.value],
38
+ });
39
+ setIsOpen(false);
40
+ return;
41
+ }
42
+ const prevSelectedStatuses = Object.keys(selectedItems).filter((item) => selectedItems[item] && item);
43
+ if (selectedItems[option.value]) {
44
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: false })));
45
+ const index = prevSelectedStatuses.indexOf(option.value);
46
+ prevSelectedStatuses.splice(index, 1);
47
+ }
48
+ else {
49
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: true })));
50
+ prevSelectedStatuses.push(option.value);
51
+ }
52
+ updateFilter(dispatch, {
53
+ filterKey: SolrKeys.status,
54
+ values: prevSelectedStatuses,
55
+ });
56
+ };
57
+ // Use the keyboard navigator hook
58
+ const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
59
+ list,
60
+ isOpen,
61
+ resetIndexOnClose: true,
62
+ setIsOpen,
63
+ onSelect,
64
+ });
65
+ const onClick = () => {
66
+ setSelectedItems({});
67
+ updateFilter(dispatch, {
68
+ filterKey: SolrKeys.status,
69
+ values: [],
70
+ });
23
71
  };
24
72
  const getBtnPlaceholder = (btnPlaceholder, selectedValues, type, totalLength, totalLengthString) => {
25
73
  if (!selectedValues || (selectedValues && selectedValues.length === 0)) {
@@ -45,12 +93,36 @@ export function StatusFilter(props) {
45
93
  }
46
94
  }
47
95
  };
96
+ const placeholder = props.isSolrSearchDown
97
+ ? t('Select a status')
98
+ : getBtnPlaceholder(t('Select a status'), (filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.status]) || [], ' ', list.length, t('All selected'));
99
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "default", onClick: onToggleClick, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true, onKeyDown: onInputKeyDown },
100
+ placeholder,
101
+ Object.keys(selectedItems).filter((key) => selectedItems[key] === true).length > 0 && (React.createElement(Button, { icon: "", variant: "plain", onClick: onClick, "aria-label": "Clear selection", className: "pf-v6-c-select__toggle-clear" }))));
102
+ const dropdownOptions = list.map((option, index) => !isEmpty(option.value) && (React.createElement(SelectOption, { key: option.key, value: option, hasCheckbox: !props.isSolrSearchDown, isSelected: selectedItems[option.value], isFocused: focusedItemIndex !== null && focusedItemIndex === index, id: `select-status-${option.value.replace(' ', '-')}` }, option.value)));
103
+ const onSingleSelectChange = (option) => {
104
+ updateFilter(dispatch, {
105
+ filterKey: SolrKeys.status,
106
+ values: [option.value],
107
+ });
108
+ };
109
+ useEffect(() => {
110
+ var _a;
111
+ if (isEmpty(filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.status])) {
112
+ setSelectedItems({});
113
+ }
114
+ else if (!props.isSolrSearchDown) {
115
+ const selectedStatuses = (_a = filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.status]) === null || _a === void 0 ? void 0 : _a.reduce((selection, status) => {
116
+ selection[status] = true;
117
+ return selection;
118
+ }, {});
119
+ setSelectedItems(selectedStatuses || {});
120
+ }
121
+ // eslint-disable-next-line react-hooks/exhaustive-deps
122
+ }, [filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.status], props.isSolrSearchDown]);
48
123
  const titleId = 'case-list-status-filter';
49
- // solr is down and solr filter values are not available
50
- // we get filter values from hydra metadata api
51
- const singleSelectSolrIsDown = () => (React.createElement(Select, { id: titleId, variant: SelectVariant.single, "aria-label": "Select Input", onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChangeSingleSelect, selections: filterInfo[SolrKeys.status][0], isOpen: isOpen, "aria-labelledby": titleId, placeholderText: t('Select a status'), "data-tracking-id": "status-filter", hasPlaceholderStyle: true }, props.allCaseStatuses.map((status) => (React.createElement(SelectOption, { key: status, value: status })))));
52
- const multiSelect = () => (React.createElement(Select, { id: titleId, variant: SelectVariant.checkbox, "aria-label": t('Select a status'), onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChange, selections: filterInfo[SolrKeys.status], isOpen: isOpen, placeholderText: getBtnPlaceholder(t('Select a status'), filterInfo[SolrKeys.status], ' ', props.filterValues.length, t('All selected')), isCheckboxSelectionBadgeHidden: true, "aria-labelledby": titleId, "data-tracking-id": "status-filter", hasPlaceholderStyle: true }, props.filterValues.map((filterValue) => (React.createElement(SelectOption, { key: filterValue.value, value: filterValue.value })))));
53
- return (React.createElement("div", { className: "pf-v5-c-select" },
54
- React.createElement("label", { htmlFor: titleId }, t(filterNamesMap[SolrKeys.status])),
55
- props.isSolrSearchDown ? singleSelectSolrIsDown() : multiSelect()));
124
+ return (React.createElement("div", { className: "status-filter" },
125
+ React.createElement("label", { htmlFor: titleId, className: "pf-v6-u-mb-sm status-filter-label" }, t(filterNamesMap[SolrKeys.status])),
126
+ props.isSolrSearchDown ? (React.createElement(SingleSelectDropdown, { id: titleId, selected: selectedOption, options: singleSelectOptions, placeholder: t('Select a status'), onSelect: onSingleSelectChange, dataTrackingId: "status-filter", isScrollable: true })) : (React.createElement(Select, { role: "menu", id: titleId, "data-tracking-id": "status-filter", isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), toggle: toggle, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
127
+ React.createElement(SelectList, null, dropdownOptions)))));
56
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TypeFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/TypeFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,qBAyDvC"}
1
+ {"version":3,"file":"TypeFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/TypeFilter.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,UAAU,MAAM;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,qBAkJvC"}
@@ -1,6 +1,8 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
1
+ import { Button, MenuToggle, Select, SelectList, SelectOption, } from '@patternfly/react-core';
2
+ import { useSelectKeyboardNavigator } from '@rh-support/components';
2
3
  import { getDropdownBtnPlaceholder, toNewCaseTypeMapper, toOldCaseTypeSwitcher } from '@rh-support/utils';
3
- import React, { useContext, useState } from 'react';
4
+ import isEmpty from 'lodash/isEmpty';
5
+ import React, { useContext, useEffect, useState } from 'react';
4
6
  import { useTranslation } from 'react-i18next';
5
7
  import { SolrKeys } from '../../../enums/filters';
6
8
  import { filterNamesMap } from '../../../utils/constants';
@@ -8,26 +10,75 @@ import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../Ca
8
10
  import { updateFilter } from '../CaseListFilterReducer';
9
11
  export function TypeFilter(props) {
10
12
  const { t } = useTranslation();
11
- const dispatch = useContext(CaseListFilterDispatchContext);
12
13
  const { filterInfo } = useContext(CaseListFilterStateContext);
14
+ const dispatch = useContext(CaseListFilterDispatchContext);
13
15
  const [isOpen, setIsOpen] = useState(false);
14
- const toggleIsOpen = (isExpanded) => setIsOpen(isExpanded);
15
- const onFilterChangeMultipleSelect = (event, selectedTypes) => {
16
- // To convert the selected type to old case type
17
- const convertedSelectedType = toOldCaseTypeSwitcher(selectedTypes);
18
- const newState = filterInfo[SolrKeys.type].includes(convertedSelectedType)
19
- ? filterInfo[SolrKeys.type].filter((item) => item !== convertedSelectedType)
20
- : [...filterInfo[SolrKeys.type], convertedSelectedType];
16
+ const [selectedItems, setSelectedItems] = useState({});
17
+ // Convert case types to new format
18
+ const newCaseTypesArray = toNewCaseTypeMapper(props.allCaseTypes).sort();
19
+ const list = newCaseTypesArray.map((type) => ({
20
+ value: type,
21
+ key: type,
22
+ }));
23
+ const onSelectHandler = (option) => {
24
+ const convertedSelectedType = toOldCaseTypeSwitcher([option.value]);
25
+ const prevSelectedTypes = Object.keys(selectedItems).filter((item) => selectedItems[item] && item);
26
+ if (selectedItems[option.value]) {
27
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: false })));
28
+ const index = prevSelectedTypes.indexOf(option.value);
29
+ prevSelectedTypes.splice(index, 1);
30
+ }
31
+ else {
32
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: true })));
33
+ prevSelectedTypes.push(option.value);
34
+ }
35
+ const newState = filterInfo[SolrKeys.type].includes(convertedSelectedType[0])
36
+ ? filterInfo[SolrKeys.type].filter((item) => item !== convertedSelectedType[0])
37
+ : [...filterInfo[SolrKeys.type], convertedSelectedType[0]];
21
38
  updateFilter(dispatch, {
22
39
  filterKey: SolrKeys.type,
23
40
  values: newState,
24
41
  });
25
42
  };
26
- const titleId = 'case-list-type-filter';
27
- // To switch from old case type to new support type
28
- const newCaseTypesArray = toNewCaseTypeMapper(props.allCaseTypes).sort();
43
+ const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
44
+ list,
45
+ isOpen,
46
+ setIsOpen,
47
+ onSelect: onSelectHandler,
48
+ });
49
+ const onToggleClick = (e) => {
50
+ e.stopPropagation();
51
+ setIsOpen(!isOpen);
52
+ };
53
+ const onClick = () => {
54
+ setSelectedItems({});
55
+ updateFilter(dispatch, {
56
+ filterKey: SolrKeys.type,
57
+ values: [],
58
+ });
59
+ };
29
60
  const toNewCaseTypesFilter = toNewCaseTypeMapper(filterInfo[SolrKeys.type]);
30
- return (React.createElement("div", { className: "pf-v5-c-select" },
31
- React.createElement("label", { htmlFor: titleId }, t(filterNamesMap[SolrKeys.type])),
32
- React.createElement(Select, { id: titleId, variant: SelectVariant.checkbox, "aria-label": t('Select a support type'), onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChangeMultipleSelect, selections: toNewCaseTypesFilter, isOpen: isOpen, placeholderText: getDropdownBtnPlaceholder(t('Select a support type'), toNewCaseTypesFilter, ' ', props.allCaseTypes.length, t('All selected')), isCheckboxSelectionBadgeHidden: true, "aria-labelledby": titleId, "data-tracking-id": "type-filter", hasPlaceholderStyle: true }, newCaseTypesArray.map((filterValue) => (React.createElement(SelectOption, { key: filterValue, value: filterValue }))))));
61
+ const placeholder = getDropdownBtnPlaceholder(t('Select a support type'), toNewCaseTypesFilter, ' ', props.allCaseTypes.length, t('All selected'));
62
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "default", onClick: onToggleClick, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true, onKeyDown: onInputKeyDown },
63
+ placeholder,
64
+ Object.keys(selectedItems).filter((key) => selectedItems[key] === true).length > 0 && (React.createElement(Button, { icon: "", variant: "plain", onClick: onClick, "aria-label": "Clear selection", className: "pf-v6-c-select__toggle-clear" }))));
65
+ const dropdownOptions = list.map((option, index) => !isEmpty(option.value) && (React.createElement(SelectOption, { key: option.key, value: option, hasCheckbox: true, isSelected: selectedItems[option.value], isFocused: focusedItemIndex !== null && focusedItemIndex === index, id: `select-type-${option.value.replace(' ', '-')}` }, option.value)));
66
+ useEffect(() => {
67
+ var _a;
68
+ if (isEmpty(filterInfo[SolrKeys.type])) {
69
+ setSelectedItems({});
70
+ }
71
+ else {
72
+ const selectedTypes = (_a = toNewCaseTypeMapper(filterInfo[SolrKeys.type])) === null || _a === void 0 ? void 0 : _a.reduce((selection, type) => {
73
+ selection[type] = true;
74
+ return selection;
75
+ }, {});
76
+ setSelectedItems(selectedTypes);
77
+ }
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
79
+ }, [filterInfo[SolrKeys.type]]);
80
+ return (React.createElement("div", { className: "type-filter" },
81
+ React.createElement("label", { htmlFor: "case-list-type-filter", className: "pf-v6-u-mb-sm case-list-type-filter-label" }, t(filterNamesMap[SolrKeys.type])),
82
+ React.createElement(Select, { role: "menu", id: "case-list-type-filter", "data-tracking-id": "type-filter", isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelectHandler(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), toggle: toggle, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
83
+ React.createElement(SelectList, null, dropdownOptions))));
33
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VersionsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/VersionsFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAoCxE,UAAU,MAAM;IACZ,WAAW,EAAE,cAAc,CAAC;IAC5B,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAClD;AAED,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,qBA+D1E"}
1
+ {"version":3,"file":"VersionsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/VersionsFilter.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAoCxE,UAAU,MAAM;IACZ,WAAW,EAAE,cAAc,CAAC;IAC5B,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAClD;AAED,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,MAAM,qBAkO1E"}
@@ -1,6 +1,8 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
1
+ import { Button, MenuToggle, Select, SelectList, SelectOption, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
2
+ import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
3
+ import { useSelectKeyboardNavigator } from '@rh-support/components';
2
4
  import isEmpty from 'lodash/isEmpty';
3
- import React, { useContext, useMemo, useState } from 'react';
5
+ import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
4
6
  import { useTranslation } from 'react-i18next';
5
7
  import { SolrKeys, SolrPivotKeys } from '../../../enums/filters';
6
8
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../CaseListFilterContext';
@@ -40,29 +42,124 @@ export function VersionsFilter({ productInfo, productVersionPivot }) {
40
42
  const { t } = useTranslation();
41
43
  const { filterInfo } = useContext(CaseListFilterStateContext);
42
44
  const dispatch = useContext(CaseListFilterDispatchContext);
45
+ const [inputValue, setInputValue] = useState('');
46
+ const [activeItem, setActiveItem] = useState(null);
43
47
  const [isOpen, setIsOpen] = useState(false);
44
- const toggleIsOpen = (isExpanded) => setIsOpen(isExpanded);
45
- const onFilterChange = (event, selectedVer) => {
46
- const newVerionState = productInfo.case_version.map((version) => version.value).includes(selectedVer)
47
- ? productInfo.case_version.filter((item) => item.value !== selectedVer)
48
- : [...productInfo.case_version, { field: SolrKeys.version, value: selectedVer }];
49
- // find current product from previous state
48
+ const [selectedItems, setSelectedItems] = useState({});
49
+ const textInputRef = useRef();
50
+ // Memoize versions to prevent unnecessary recalculations
51
+ const versions = useMemo(() => {
52
+ const versionValues = getVersionValuesForProduct(productVersionPivot, productInfo.value);
53
+ return versionValues === null || versionValues === void 0 ? void 0 : versionValues.sort((a, b) => compareVersions(a.value, b.value));
54
+ }, [productVersionPivot, productInfo.value]);
55
+ // Memoize list to prevent unnecessary recreations
56
+ const list = useMemo(() => (versions === null || versions === void 0 ? void 0 : versions.map((version) => ({
57
+ value: version.value,
58
+ key: version.value,
59
+ }))) || [], [versions]);
60
+ const [selectOptions, setSelectOptions] = useState(list);
61
+ const onToggleClick = (e) => {
62
+ e.stopPropagation();
63
+ setIsOpen(!isOpen);
64
+ };
65
+ const onSelect = (option) => {
66
+ const prevSelectedVersions = Object.keys(selectedItems).filter((item) => selectedItems[item] && item);
67
+ if (selectedItems[option.value]) {
68
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: !prevData[option.value] })));
69
+ const indexOfVersion = prevSelectedVersions.indexOf(option.value);
70
+ prevSelectedVersions.splice(indexOfVersion, 1);
71
+ }
72
+ else {
73
+ setSelectedItems((prevData) => (Object.assign(Object.assign({}, prevData), { [option.value]: true })));
74
+ prevSelectedVersions.push(option.value);
75
+ }
76
+ const newVersionState = prevSelectedVersions.map((version) => ({
77
+ field: SolrKeys.version,
78
+ value: version,
79
+ }));
50
80
  const productNewState = [...filterInfo[SolrPivotKeys.product_version]];
51
81
  const objIndex = productNewState.findIndex((item) => item.value === productInfo.value);
52
82
  // replace product with updated versions
53
83
  productNewState[objIndex] = {
54
84
  field: SolrKeys.product,
55
85
  value: productInfo.value,
56
- [SolrKeys.version]: newVerionState,
86
+ [SolrKeys.version]: newVersionState,
57
87
  };
58
88
  updateFilter(dispatch, { filterKey: SolrPivotKeys.product_version, values: productNewState });
59
89
  };
60
- const versions = useMemo(() => {
61
- const versionValues = getVersionValuesForProduct(productVersionPivot, productInfo.value);
62
- return versionValues === null || versionValues === void 0 ? void 0 : versionValues.sort((a, b) => compareVersions(a.value, b.value));
63
- }, [productVersionPivot, productInfo.value]);
90
+ // Use the keyboard navigator hook
91
+ const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
92
+ list,
93
+ isOpen,
94
+ ignoreResetOnListChange: false,
95
+ resetIndexOnClose: true,
96
+ isDisabled: false,
97
+ setIsOpen,
98
+ onSelect,
99
+ });
100
+ const onTextInputChange = (_event, value) => {
101
+ setInputValue(value);
102
+ };
103
+ const onClick = () => {
104
+ var _a;
105
+ setInputValue('');
106
+ setSelectedItems({});
107
+ const productNewState = [...filterInfo[SolrPivotKeys.product_version]];
108
+ const objIndex = productNewState.findIndex((item) => item.value === productInfo.value);
109
+ productNewState[objIndex] = {
110
+ field: SolrKeys.product,
111
+ value: productInfo.value,
112
+ [SolrKeys.version]: [],
113
+ };
114
+ updateFilter(dispatch, { filterKey: SolrPivotKeys.product_version, values: productNewState });
115
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
116
+ };
117
+ // Update activeItem when focusedItemIndex changes
118
+ useEffect(() => {
119
+ if (focusedItemIndex !== null && list[focusedItemIndex]) {
120
+ const focusedItem = list[focusedItemIndex];
121
+ setActiveItem(`select-multi-typeahead-checkbox-${focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.value.replace(' ', '-')}`);
122
+ }
123
+ else {
124
+ setActiveItem(null);
125
+ }
126
+ }, [focusedItemIndex, list]);
127
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: onToggleClick, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true },
128
+ React.createElement(TextInputGroup, { isPlain: true },
129
+ React.createElement(TextInputGroupMain, Object.assign({ value: inputValue, onClick: onToggleClick, onChange: onTextInputChange, onKeyDown: onInputKeyDown, id: "version-typeahead-select-input", autoComplete: "off", innerRef: textInputRef, placeholder: t('Version') }, (activeItem && { 'aria-activedescendant': activeItem }), { role: "combobox", isExpanded: isOpen, "aria-controls": "version-typeahead-listbox" })),
130
+ Object.keys(selectedItems).filter((key) => selectedItems[key] === true).length > 0 && (React.createElement(TextInputGroupUtilities, null,
131
+ React.createElement(Button, { icon: React.createElement(TimesIcon, { "aria-hidden": true }), variant: "plain", onClick: onClick, "aria-label": "Clear input value" }))))));
132
+ // Memoize dropdownOptions to prevent unnecessary rerenders
133
+ const dropdownOptions = useMemo(() => {
134
+ const optionsToRender = !isEmpty(selectOptions) ? selectOptions : list;
135
+ return optionsToRender.map((option, index) => option.value && (React.createElement(SelectOption, { key: option.key, value: option, hasCheckbox: true, isSelected: selectedItems[option.value], isFocused: focusedItemIndex !== null && focusedItemIndex === index, id: `select-multi-typeahead-${option.value.replace(' ', '-')}` }, option.value)));
136
+ }, [selectOptions, list, selectedItems, focusedItemIndex]);
137
+ // Update selectOptions when input value changes
138
+ useEffect(() => {
139
+ if (!inputValue) {
140
+ setSelectOptions(list);
141
+ return;
142
+ }
143
+ const newSelectOptions = list.filter((option) => String(option === null || option === void 0 ? void 0 : option.value).toLowerCase().startsWith(inputValue.toLowerCase()));
144
+ setSelectOptions(newSelectOptions.length ? newSelectOptions : [{ isDisabled: false, children: `No results found` }]);
145
+ if (!isOpen) {
146
+ setIsOpen(true);
147
+ }
148
+ // eslint-disable-next-line react-hooks/exhaustive-deps
149
+ }, [inputValue, list]);
150
+ // Update selectedItems when case_version changes
151
+ useEffect(() => {
152
+ const currentVersions = productInfo.case_version || [];
153
+ const selectedVersions = currentVersions.reduce((selection, version) => {
154
+ selection[version.value] = true;
155
+ return selection;
156
+ }, {});
157
+ setSelectedItems(selectedVersions);
158
+ }, [productInfo.case_version]);
64
159
  const titleId = 'case-list-versions-filter';
65
- return (React.createElement(React.Fragment, null, !isEmpty(versions) && (React.createElement(React.Fragment, null,
160
+ return (React.createElement(React.Fragment, null, !isEmpty(versions) && (React.createElement("div", { className: "version-filter-chip" },
66
161
  React.createElement("label", { hidden: true, htmlFor: titleId }, t('Open versions dropdown')),
67
- React.createElement(Select, { className: "version-filter-chip", variant: SelectVariant.checkbox, "aria-label": t('Version'), onToggle: (_event, isExpanded) => toggleIsOpen(isExpanded), onSelect: onFilterChange, selections: productInfo.case_version.map((ver) => ver.value), isOpen: isOpen, placeholderText: 'Version', isCheckboxSelectionBadgeHidden: true, "aria-labelledby": titleId, "data-tracking-id": "versions-filter", hasPlaceholderStyle: true }, (versions || []).map((filterValue) => (React.createElement(SelectOption, { key: filterValue.value, value: filterValue.value, component: "div" }))))))));
162
+ React.createElement("div", { className: "pf-v6-c-select" },
163
+ React.createElement(Select, { role: "menu", "data-tracking-id": "versions-filter", id: titleId, title: t('Version'), isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), popperProps: { direction: 'down', enableFlip: false }, toggle: toggle, isScrollable: true },
164
+ React.createElement(SelectList, null, dropdownOptions)))))));
68
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseListTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/CaseListTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAuB3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAQxD,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAEH,eAAe,EACf,SAAS,EAIZ,MAAM,0BAA0B,CAAC;AA4BlC,UAAU,MAAM;IACZ,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAsBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBAykB1C"}
1
+ {"version":3,"file":"CaseListTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/CaseListTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAqB3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAQxD,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAEH,eAAe,EACf,SAAS,EAIZ,MAAM,0BAA0B,CAAC;AA4BlC,UAAU,MAAM;IACZ,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAsBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBA+kB1C"}