@rh-support/cases 2.6.10 → 2.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts.map +1 -1
  2. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.js +4 -6
  3. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
  4. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +1 -2
  5. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
  6. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +8 -9
  7. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.js +1 -2
  9. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  10. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +1 -3
  11. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  12. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +1 -2
  13. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +1 -2
  14. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +1 -2
  15. package/lib/esm/components/case-list/case-list-filters/TypeFilter.js +1 -2
  16. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +2 -3
  17. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  18. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +2 -2
  19. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  20. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +7 -4
  21. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -1
  22. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +16 -13
  23. package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
  24. package/lib/esm/components/case-list/case-search/AdvanceSearch.js +35 -81
  25. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts.map +1 -1
  26. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.js +16 -13
  27. package/lib/esm/css/caseList.css +3 -0
  28. package/lib/esm/test-utils/testUtils.d.ts +0 -2
  29. package/lib/esm/test-utils/testUtils.d.ts.map +1 -1
  30. package/lib/esm/test-utils/testUtils.js +4 -7
  31. package/lib/esm/utils/constants.d.ts.map +1 -1
  32. package/lib/esm/utils/constants.js +19 -18
  33. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsBookmarkedGroupFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAS7D,eAAO,MAAM,YAAY,eAAgB,MAAM,sBAS9C,CAAC;AAEF,UAAU,MAAM;IACZ,uBAAuB,EAAE,OAAO,CAAC;IACjC,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAOD,eAAO,MAAM,QAAQ,cAAe,MAAM,eAAe,MAAM,WACiB,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,qBAoL1D"}
1
+ {"version":3,"file":"AccountsBookmarkedGroupFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAS7D,eAAO,MAAM,YAAY,eAAgB,MAAM,sBAQ9C,CAAC;AAEF,UAAU,MAAM;IACZ,uBAAuB,EAAE,OAAO,CAAC;IACjC,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAOD,eAAO,MAAM,QAAQ,cAAe,MAAM,eAAe,MAAM,WACiB,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,qBAqL1D"}
@@ -1,4 +1,4 @@
1
- import { Label, MenuToggle, Select, SelectOption, TextInputGroup, TextInputGroupMain, Tooltip, } from '@patternfly/react-core';
1
+ import { Label, MenuFooter, MenuToggle, Select, SelectOption, TextInputGroup, TextInputGroupMain, Tooltip, } from '@patternfly/react-core';
2
2
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
3
3
  import { LoadingIndicator } from '@rh-support/components';
4
4
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
@@ -16,8 +16,7 @@ import { filterNamesMap } from '../../../utils/constants';
16
16
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../CaseListFilterContext';
17
17
  import { updateFilter } from '../CaseListFilterReducer';
18
18
  export const appendToMenu = (listLength) => {
19
- return (React.createElement(React.Fragment, null,
20
- listLength !== 0 && React.createElement("div", { className: "pf-v6-c-divider", role: "separator" }),
19
+ return (React.createElement(MenuFooter, { key: "menufooter" },
21
20
  React.createElement(Link, { className: "cta cta-link pf-v6-c-select__menu-item", to: "/manage/bookmarks" },
22
21
  React.createElement(Trans, null, "Manage bookmarks"))));
23
22
  };
@@ -88,7 +87,7 @@ export function AccountsBookmarkedGroupFilter(props) {
88
87
  ...filteredOptions.map((b, id) => (React.createElement(SelectOption, { key: id, value: b, className: "pf-v6-c-select__menu-wrapper", role: "presentation" },
89
88
  React.createElement("div", { className: "pf-v6-c-select__menu-item-main pf-v6-u-display-flex" },
90
89
  React.createElement("div", { className: "pf-v6-c-select__menu-item-main" },
91
- React.createElement("input", { className: "pf-v6-c-check__input pf-v6-u-mr-sm", type: "checkbox", checked: some(filterInfo[SolrKeys.accountNumber], b) }),
90
+ React.createElement("input", { className: "pf-v6-c-check__input pf-v6-u-mr-sm", type: "checkbox", checked: some(filterInfo[SolrKeys.accountNumber], b), onChange: () => { } }),
92
91
  React.createElement("span", null, b.value)),
93
92
  Array.isArray(b.key) && (React.createElement(Tooltip, { content: getInfoToolTip(b.value), "aria-label": t('Bookmarked Accounts List') },
94
93
  React.createElement(Label, { color: "teal", className: "pf-v6-u-ml-auto pf-v6-u-mr-sm", icon: React.createElement(InfoCircleIcon, null), "aria-label": t('Bookmarked Accounts') }, b.key.length))))))),
@@ -107,10 +106,9 @@ export function AccountsBookmarkedGroupFilter(props) {
107
106
  const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: onBookmarksToggle, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true },
108
107
  React.createElement(TextInputGroup, { isPlain: true },
109
108
  React.createElement(TextInputGroupMain, { value: input, onChange: (_, value) => onTextInputChange(value), onClick: (e) => {
110
- e.stopPropagation();
111
109
  setIsOpen(true);
112
110
  }, autoComplete: "off", placeholder: getDropdownBtnPlaceholder(t(canAccessManagedAccounts ? 'Select an account' : 'Search for a bookmark'), canAccessManagedAccounts ? selectedAccounts : selectedBookmarks, '', dropdownOptions.length, canAccessManagedAccounts ? t('All accounts selected') : t('All bookmarks selected')), role: "combobox", isExpanded: isOpen, "aria-controls": "bookmark-account-select-listbox" }))));
113
111
  return (React.createElement("div", { className: "pf-v6-c-select" },
114
112
  React.createElement("label", { htmlFor: "case-list-account-filter", className: "case-list-account-filter-label" }, canAccessManagedAccounts ? t('Accounts') : t(filterNamesMap[SolrKeys.accountNumber])),
115
- React.createElement(Select, { toggle: toggle, onSelect: onBookmarksSelect, isOpen: isOpen, onOpenChange: (nextOpen) => setIsOpen(nextOpen), "data-tracking-id": "accounts-filter", id: "case-list-account-filter", isScrollable: true, popperProps: { direction: 'down', enableFlip: false }, shouldFocusFirstItemOnOpen: false }, bookmarkedAccountsOptions)));
113
+ React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, toggle: toggle, onSelect: onBookmarksSelect, isOpen: isOpen, onOpenChange: (nextOpen) => setIsOpen(nextOpen), "data-tracking-id": "accounts-filter", id: "case-list-account-filter", isScrollable: true, popperProps: { direction: 'down', enableFlip: false } }, bookmarkedAccountsOptions)));
116
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CreatorSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/CreatorSsoNameFilter.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,eAAO,MAAM,WAAW,0BAIvB,CAAC;AAYF,eAAO,MAAM,eAAe;;;;;;;GAA6E,CAAC;AAE1G,eAAO,MAAM,kBAAkB,iEAyC9B,CAAC;AAEF,wBAAgB,oBAAoB,sBA6PnC"}
1
+ {"version":3,"file":"CreatorSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/CreatorSsoNameFilter.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,eAAO,MAAM,WAAW,0BAIvB,CAAC;AAYF,eAAO,MAAM,eAAe;;;;;;;GAA6E,CAAC;AAE1G,eAAO,MAAM,kBAAkB,iEAyC9B,CAAC;AAEF,wBAAgB,oBAAoB,sBA8PnC"}
@@ -202,7 +202,6 @@ export function CreatorSsoNameFilter() {
202
202
  setExternalQuery(query);
203
203
  };
204
204
  const onExternalToggle = (e) => {
205
- e.stopPropagation();
206
205
  setIsExternalOpen((pre) => !pre);
207
206
  };
208
207
  const externalToggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: onExternalToggle, innerRef: toggleRef, isExpanded: isExternalOpen, isFullWidth: true },
@@ -215,6 +214,6 @@ export function CreatorSsoNameFilter() {
215
214
  return (React.createElement("div", null,
216
215
  React.createElement("label", { htmlFor: "case-list-username-filter", className: "case-list-username-filter-label" },
217
216
  React.createElement(Trans, null, filterNamesMap['usernameFilterTitle'])),
218
- !loggedInUserRights.data.isInternal() ? (React.createElement(Select, { id: "external-ssousername-filter", "data-tracking-id": "external-ssousername-filter", isOpen: isExternalOpen, onOpenChange: () => setIsExternalOpen(false), toggle: isExternalNonOrgAdmin ? customToggle : externalToggle, popperProps: { direction: 'down', enableFlip: false }, isScrollable: true, onSelect: (_e, v) => onSelectExternal(v) },
217
+ !loggedInUserRights.data.isInternal() ? (React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, id: "external-ssousername-filter", "data-tracking-id": "external-ssousername-filter", isOpen: isExternalOpen, onOpenChange: () => setIsExternalOpen(false), toggle: isExternalNonOrgAdmin ? customToggle : externalToggle, popperProps: { direction: 'down', enableFlip: false, maxWidth: '10rem' }, isScrollable: true, onSelect: (_e, v) => onSelectExternal(v) },
219
218
  React.createElement(SelectList, null, filteredExternalList))) : (React.createElement(InternalSsoNameFilter, null))));
220
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GroupsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/GroupsFilter.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAShF,wBAAgB,YAAY,sBA8P3B"}
1
+ {"version":3,"file":"GroupsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/GroupsFilter.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAShF,wBAAgB,YAAY,sBA+P3B"}
@@ -1,4 +1,4 @@
1
- import { Button, Divider, MenuToggle, Select, SelectList, SelectOption, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
1
+ import { Button, MenuFooter, MenuToggle, Select, SelectList, SelectOption, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
2
2
  import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
3
3
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
4
  import { ability, resourceActions, resources } from '@rh-support/user-permissions';
@@ -30,7 +30,6 @@ export function GroupsFilter() {
30
30
  const [selectedItems, setSelectedItems] = useState({});
31
31
  const textInputRef = useRef();
32
32
  const onToggleClick = (e) => {
33
- e.stopPropagation();
34
33
  setIsOpen(!isOpen);
35
34
  };
36
35
  const onSelect = (option) => {
@@ -163,11 +162,11 @@ export function GroupsFilter() {
163
162
  return (React.createElement("div", { className: "group-filter" },
164
163
  React.createElement("label", { htmlFor: "case-list-group-filter", className: "pf-v6-u-mb-sm group-filter-label" }, t(filterNamesMap[SolrKeys.group])),
165
164
  React.createElement("div", { className: "pf-v6-c-select" },
166
- React.createElement(Select, { role: "menu", "data-tracking-id": "groups-filter", id: "case-list-group-filter", title: t(filterNamesMap[SolrKeys.group]), isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), popperProps: { direction: 'down', enableFlip: false }, toggle: toggle, isScrollable: true },
167
- React.createElement(SelectList, null, dropdownOptions),
168
- canViewCaseGroups && (React.createElement(React.Fragment, null,
169
- React.createElement(Divider, { className: "case-group-filter" }),
170
- React.createElement(SelectList, null,
171
- React.createElement(Link, { className: "cta cta-link pf-v6-c-select__menu-item", to: "/manage/groups" },
172
- React.createElement(Trans, null, "Manage groups")))))))));
165
+ React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, "data-tracking-id": "groups-filter", id: "case-list-group-filter", title: t(filterNamesMap[SolrKeys.group]), isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), popperProps: { direction: 'down', enableFlip: false }, toggle: toggle, isScrollable: true },
166
+ React.createElement(SelectList, null,
167
+ dropdownOptions,
168
+ canViewCaseGroups && (React.createElement(React.Fragment, null,
169
+ React.createElement(MenuFooter, { className: "group-filter-manage-groups-footer" },
170
+ React.createElement(Link, { className: "cta cta-link", to: "/manage/groups" },
171
+ React.createElement(Trans, null, "Manage groups"))))))))));
173
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/InternalSsoNameFilter.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,qBAAqB,sBAgS5C"}
1
+ {"version":3,"file":"InternalSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/InternalSsoNameFilter.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,qBAAqB,sBAiS5C"}
@@ -195,13 +195,12 @@ export default function InternalSsoNameFilter() {
195
195
  onSearchAsync(query);
196
196
  };
197
197
  const onInternalToggle = (e) => {
198
- e.stopPropagation();
199
198
  setIsInternalOpen((pre) => !pre);
200
199
  };
201
200
  const internalToggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: onInternalToggle, innerRef: toggleRef, isExpanded: isInternalOpen, isFullWidth: true },
202
201
  React.createElement(TextInputGroup, { isPlain: true },
203
202
  React.createElement(TextInputGroupMain, { value: internalQuery, onClick: onInternalToggle, onKeyDown: onInputKeyDown, placeholder: getDropdownBtnPlaceholder(t('Search for a name'), selectedInternalContacts.map((i) => i.label), ' ', filteredInternalList.length, t('All selected')), onChange: onInternalQueryChange, isExpanded: isInternalOpen, innerRef: internalInputRef, "aria-controls": "internal-ssousername-filter", role: "combobox" }),
204
203
  React.createElement(TextInputGroupUtilities, null, !isEmpty(internalQuery) && (React.createElement(Button, { icon: isFetchingInternalContacts ? (React.createElement(LoadingIndicator, { show: true, size: "sm" })) : (React.createElement(TimesCircleIcon, { "aria-hidden": true })), variant: "plain", onClick: () => setInternalQuery(''), isDisabled: isFetchingInternalContacts, "aria-label": t('Clear') }))))));
205
- return (React.createElement(Select, { id: "internal-ssousername-filter", "data-tracking-id": "internal-ssousername-filter", isOpen: isInternalOpen, onOpenChange: () => setIsInternalOpen(false), toggle: internalToggle, popperProps: { direction: 'down', enableFlip: false }, isScrollable: true, onSelect: (_e, v) => onSelectInternal(v) },
204
+ return (React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, id: "internal-ssousername-filter", "data-tracking-id": "internal-ssousername-filter", isOpen: isInternalOpen, onOpenChange: () => setIsInternalOpen(false), toggle: internalToggle, popperProps: { direction: 'down', enableFlip: false, maxWidth: '10rem' }, isScrollable: true, onSelect: (_e, v) => onSelectInternal(v) },
206
205
  React.createElement(SelectList, null, filteredInternalList)));
207
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProductFilterChip.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/ProductFilterChip.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAGxE,UAAU,MAAM;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,WAAW,EAAE,mBAAwB,EAAE,EAAE,MAAM,qBAuElF"}
1
+ {"version":3,"file":"ProductFilterChip.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/ProductFilterChip.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAgB,MAAM,0BAA0B,CAAC;AAGxE,UAAU,MAAM;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,WAAW,EAAE,mBAAwB,EAAE,EAAE,MAAM,qBAsElF"}
@@ -2,7 +2,6 @@ import { Button, ButtonVariant, Label, LabelGroup } from '@patternfly/react-core
2
2
  import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
3
3
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
4
4
  import React, { useContext } from 'react';
5
- import { Trans } from 'react-i18next';
6
5
  import { SolrKeys, SolrPivotKeys } from '../../../enums/filters';
7
6
  import { filterNamesMap } from '../../../utils/constants';
8
7
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../CaseListFilterContext';
@@ -25,8 +24,7 @@ export function ProductFilterChip({ productList, productVersionPivot = [] }) {
25
24
  updateFilter(dispatch, { filterKey: SolrPivotKeys.product_version, values: updatedProducts });
26
25
  };
27
26
  return (React.createElement("div", { className: "filter-chip" },
28
- React.createElement("span", { className: "filter-chip__heading" },
29
- React.createElement(Trans, null, filterNamesMap[SolrKeys.product])),
27
+ React.createElement("span", { className: "filter-chip__heading" }, filterNamesMap[SolrKeys.product]),
30
28
  canAccessVersionsFilter ? (React.createElement(React.Fragment, null, productList.map((currentProduct, index) => (React.createElement(LabelGroup, { numLabels: 10, key: `${currentProduct.value}-${index}`, categoryName: currentProduct.value },
31
29
  React.createElement(VersionsFilter, { productInfo: currentProduct, productVersionPivot: productVersionPivot }),
32
30
  currentProduct[SolrKeys.version].map((chip) => (React.createElement(Label, { variant: "outline", key: chip.value, onClose: () => deleteVersion(currentProduct, chip) }, chip.value))),
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/ProductsFilter.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBA8P3C"}
1
+ {"version":3,"file":"ProductsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/ProductsFilter.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,UAAU,MAAM;IACZ,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBA+P3C"}
@@ -78,7 +78,6 @@ export function ProductsFilter(props) {
78
78
  });
79
79
  };
80
80
  const onToggleClick = (e) => {
81
- e.stopPropagation();
82
81
  setIsOpen(!isOpen);
83
82
  };
84
83
  const onClick = () => {
@@ -158,6 +157,6 @@ export function ProductsFilter(props) {
158
157
  };
159
158
  return (React.createElement("div", { className: "product-filter" },
160
159
  React.createElement("label", { htmlFor: "case-list-products-filter", className: "pf-v6-u-mb-sm products-filter-label" }, t(filterNamesMap[SolrKeys.product])),
161
- isSolrSearchDown ? (React.createElement(SingleSelectDropdown, { id: "case-list-products-filter", selected: selectedOption, options: singleSelectOptions, placeholder: allProducts.length > 0 ? t('Select a product') : t('No products available'), onSelect: (options) => onSingleSelectChange(options[0]), dataTrackingId: "products-filter", isScrollable: true, isDisabled: allProducts.length === 0 })) : (React.createElement(Select, { id: "case-list-products-filter", "data-tracking-id": "products-filter", isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), toggle: toggleForMultiSelect, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
160
+ isSolrSearchDown ? (React.createElement(SingleSelectDropdown, { id: "case-list-products-filter", selected: selectedOption, options: singleSelectOptions, placeholder: allProducts.length > 0 ? t('Select a product') : t('No products available'), onSelect: (options) => onSingleSelectChange(options[0]), dataTrackingId: "products-filter", isScrollable: true, isDisabled: allProducts.length === 0 })) : (React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, id: "case-list-products-filter", "data-tracking-id": "products-filter", isOpen: isOpen, selected: selectedItems, onSelect: (_e, v) => onSelect(v), onOpenChange: (nextOpen) => setIsOpen(nextOpen), toggle: toggleForMultiSelect, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
162
161
  React.createElement(SelectList, null, renderOptions())))));
163
162
  }
@@ -28,7 +28,6 @@ export function SeverityFilter(props) {
28
28
  label: selectedSeverity,
29
29
  };
30
30
  const onToggleClick = (e) => {
31
- e.stopPropagation();
32
31
  setIsOpen(!isOpen);
33
32
  };
34
33
  const onSelect = (option) => {
@@ -99,6 +98,6 @@ export function SeverityFilter(props) {
99
98
  }, [filterInfo[SolrKeys.severity], props.isSolrSearchDown]);
100
99
  return (React.createElement("div", { className: "severity-filter" },
101
100
  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 } },
101
+ 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, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, 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
102
  React.createElement(SelectList, null, dropdownOptions)))));
104
103
  }
@@ -27,7 +27,6 @@ export function StatusFilter(props) {
27
27
  label: selectedStatus,
28
28
  };
29
29
  const onToggleClick = (e) => {
30
- e.stopPropagation();
31
30
  setIsOpen(!isOpen);
32
31
  };
33
32
  const onSelect = (option) => {
@@ -123,6 +122,6 @@ export function StatusFilter(props) {
123
122
  const titleId = 'case-list-status-filter';
124
123
  return (React.createElement("div", { className: "status-filter" },
125
124
  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 } },
125
+ 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, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, 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
126
  React.createElement(SelectList, null, dropdownOptions)))));
128
127
  }
@@ -47,7 +47,6 @@ export function TypeFilter(props) {
47
47
  onSelect: onSelectHandler,
48
48
  });
49
49
  const onToggleClick = (e) => {
50
- e.stopPropagation();
51
50
  setIsOpen(!isOpen);
52
51
  };
53
52
  const onClick = () => {
@@ -79,6 +78,6 @@ export function TypeFilter(props) {
79
78
  }, [filterInfo[SolrKeys.type]]);
80
79
  return (React.createElement("div", { className: "type-filter" },
81
80
  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 } },
81
+ React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, 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
82
  React.createElement(SelectList, null, dropdownOptions))));
84
83
  }
@@ -59,7 +59,6 @@ export function VersionsFilter({ productInfo, productVersionPivot }) {
59
59
  }))) || [], [versions]);
60
60
  const [selectOptions, setSelectOptions] = useState(list);
61
61
  const onToggleClick = (e) => {
62
- e.stopPropagation();
63
62
  setIsOpen(!isOpen);
64
63
  };
65
64
  const onSelect = (option) => {
@@ -157,9 +156,9 @@ export function VersionsFilter({ productInfo, productVersionPivot }) {
157
156
  setSelectedItems(selectedVersions);
158
157
  }, [productInfo.case_version]);
159
158
  const titleId = 'case-list-versions-filter';
160
- return (React.createElement(React.Fragment, null, !isEmpty(versions) && (React.createElement("div", { className: "version-filter-chip" },
159
+ return (React.createElement(React.Fragment, null, (!isEmpty(versions) || true) && (React.createElement("div", { className: "version-filter-chip" },
161
160
  React.createElement("label", { hidden: true, htmlFor: titleId }, t('Open versions dropdown')),
162
161
  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 },
162
+ React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, "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
163
  React.createElement(SelectList, null, dropdownOptions)))))));
165
164
  }
@@ -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;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"}
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,qBA2kB1C"}
@@ -349,8 +349,8 @@ export function CaseListTable(props) {
349
349
  React.createElement(TableActionsDropdown, { caseList: caseListData, selectedCases: selectedCases, onCasesCloseSuccess: onCasesCloseSuccess, currentFilteredCaseList: props.caseList })),
350
350
  React.createElement("span", { className: "toolbar-pagination" },
351
351
  React.createElement(TablePagination, { perPage: (_c = props.paginationInfo) === null || _c === void 0 ? void 0 : _c.pageSize, currentPage: (_d = props.paginationInfo) === null || _d === void 0 ? void 0 : _d.currentPage, onPerPageSelect: onPerPageSelect, onSetPage: onSetPage, variant: PaginationVariant.top, itemCount: getItemCount() }))),
352
- React.createElement("div", { className: "pf-v6-c-scroll-inner-wrapper pf-v6-u-flex-grow-1" },
353
- React.createElement(Table, { variant: TableVariant.compact, "aria-label": "case-list", className: "case-list-table pf-v6-u-flex-grow-1" },
352
+ React.createElement("div", { className: "pf-v6-c-scroll-inner-wrapper" },
353
+ React.createElement(Table, { variant: TableVariant.compact, "aria-label": "case-list", className: "case-list-table" },
354
354
  React.createElement(Thead, null,
355
355
  React.createElement(Tr, { key: "tableHeaderRow", isBorderRow: true },
356
356
  React.createElement(Th, { select: {
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadCSVFileModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/DownloadCSVFileModal.tsx"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAmBlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClD,oBAAoB,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,oBAAoB,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAoBD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA6ZzD"}
1
+ {"version":3,"file":"DownloadCSVFileModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/DownloadCSVFileModal.tsx"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAqBlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClD,oBAAoB,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,oBAAoB,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAoBD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA4ZzD"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import './DownloadCSVFileModal.scss';
11
11
  import { publicApi } from '@cee-eng/hydrajs';
12
- import { Button, Checkbox, Form, FormGroup, Grid, GridItem, InputGroup, Modal, ModalFooter, ModalVariant, Spinner, TextInput, ValidatedOptions, } from '@patternfly/react-core';
12
+ import { Button, Checkbox, Form, FormGroup, Grid, GridItem, InputGroup, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, Spinner, TextInput, ValidatedOptions, } from '@patternfly/react-core';
13
13
  import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
14
14
  import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
15
15
  import { ToastNotification, useFetch } from '@rh-support/components';
@@ -287,9 +287,12 @@ export default function DownloadCSVFileModal(props) {
287
287
  }
288
288
  // eslint-disable-next-line react-hooks/exhaustive-deps
289
289
  }, [allCheckBoxNotSelected, checkboxes.selectAll]);
290
- return (React.createElement(Modal, { title: t('Download CSV file'), className: "download-csv-modal", variant: ModalVariant.large, isOpen: onModalshow, onClose: onCancel },
291
- React.createElement("p", null, downloadCSVModalDescription(selectedCases.length || filteredCaseCount)),
292
- downloadCSVModalBody(),
290
+ return (React.createElement(Modal, { className: "download-csv-modal", variant: ModalVariant.large, isOpen: onModalshow, onClose: onCancel },
291
+ React.createElement(ModalHeader, null,
292
+ React.createElement("h2", null, t('Download CSV file'))),
293
+ React.createElement(ModalBody, null,
294
+ React.createElement("p", null, downloadCSVModalDescription(selectedCases.length || filteredCaseCount)),
295
+ downloadCSVModalBody()),
293
296
  React.createElement(ModalFooter, null,
294
297
  React.createElement(Button, { key: "submit", icon: isFetchingCSVData ? React.createElement(Spinner, { size: "md" }) : React.createElement(DownloadIcon, null), variant: "primary", "data-tracking-id": "download-csv-modal-submit", onClick: isSecureSupportUser ? onExportCSVClickSecureSupport : onExportCSVClick, isDisabled: (isSaveClicked && isEmpty(splitExtensionName)) || isDisabled || isFetchingCSVData }, t('Download')),
295
298
  React.createElement(Button, { key: "back", variant: "secondary", onClick: onCancel, isDisabled: isDisabled || isFetchingCSVData, "data-tracking-id": "download-csv-modal-cancel" }, t('Cancel')))));
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/case-list/case-list-table/table-column-selector/TableColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAWpC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAE,MAAM,qBAgGpF"}
1
+ {"version":3,"file":"TableColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/case-list/case-list-table/table-column-selector/TableColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAWpC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAE,MAAM,qBAgGpF"}
@@ -2,6 +2,9 @@ import './TableColumnSelector.scss';
2
2
  import { Checkbox, Dropdown, DropdownList, Grid, GridItem, MenuToggle, } from '@patternfly/react-core';
3
3
  import React, { useState } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
+ function getCheckboxId(key) {
6
+ return `${key}-column-selector`;
7
+ }
5
8
  export function TableColumnSelector({ onColumnSelectorChange, cachedColumns }) {
6
9
  const { t } = useTranslation();
7
10
  const [isOpen, setIsOpen] = useState(false);
@@ -22,24 +25,24 @@ export function TableColumnSelector({ onColumnSelectorChange, cachedColumns }) {
22
25
  setIsOpen(!isOpen);
23
26
  };
24
27
  const caseListColumnHeaderOne = [
25
- { label: 'Owner', key: 'contactName' },
26
- { label: 'Severity', key: 'severity' },
27
- { label: 'Created by', key: 'createdDate' },
28
- { label: 'Account number', key: 'accountNumber' },
29
- { label: 'Support type', key: 'type' },
30
- { label: 'Group', key: 'folderName' },
28
+ { label: t('Owner'), key: 'contactName' },
29
+ { label: t('Severity'), key: 'severity' },
30
+ { label: t('Created by'), key: 'createdDate' },
31
+ { label: t('Account number'), key: 'accountNumber' },
32
+ { label: t('Support type'), key: 'type' },
33
+ { label: t('Group'), key: 'folderName' },
31
34
  ];
32
35
  const caseListColumnHeaderTwo = [
33
- { label: 'Modified by', key: 'lastModifiedDate' },
34
- { label: 'Status', key: 'status' },
35
- { label: 'Product and version', key: 'product' },
36
- { label: 'Personal reference number', key: 'alternateCaseId' },
37
- { label: 'Closed date', key: 'closedDate' },
36
+ { label: t('Modified by'), key: 'lastModifiedDate' },
37
+ { label: t('Status'), key: 'status' },
38
+ { label: t('Product and version'), key: 'product' },
39
+ { label: t('Personal reference number'), key: 'alternateCaseId' },
40
+ { label: t('Closed date'), key: 'closedDate' },
38
41
  ];
39
42
  const generateCheckboxes = (fieldDefinitions) => {
40
- return fieldDefinitions === null || fieldDefinitions === void 0 ? void 0 : fieldDefinitions.map((field) => (React.createElement(Checkbox, { key: field.key, className: "case-column-selector", label: t(field.label), isChecked: cachedColumns.includes(field.key), onChange: () => {
43
+ return fieldDefinitions === null || fieldDefinitions === void 0 ? void 0 : fieldDefinitions.map((field) => (React.createElement(Checkbox, { key: field.key, className: "case-column-selector", label: field.label, isChecked: cachedColumns.includes(field.key), onChange: () => {
41
44
  handleCheckboxChange(field.key);
42
- }, id: field.key, name: field.key })));
45
+ }, id: getCheckboxId(field.key), name: field.key })));
43
46
  };
44
47
  return (React.createElement(Dropdown, { isOpen: isOpen, onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: (toggleRef) => (React.createElement(MenuToggle, { className: "pf-v6-u-flex-1", ref: toggleRef, onClick: onToggleClick, isExpanded: isOpen }, t('Columns'))), shouldFocusToggleOnSelect: true, id: "case-list-table-column-dropdown", "data-tracking-id": "case-list-table-column-dropdown", className: "column-selector" },
45
48
  React.createElement(DropdownList, null,
@@ -1 +1 @@
1
- {"version":3,"file":"AdvanceSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/AdvanceSearch.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,0BAA0B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBAoV1C"}
1
+ {"version":3,"file":"AdvanceSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/AdvanceSearch.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,0BAA0B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBA0S1C"}
@@ -1,8 +1,10 @@
1
- import { Button, Flex, FlexItem, Icon, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
1
+ import { Button, Flex, FlexItem, Icon, MenuToggle, Select, SelectList, SelectOption, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
2
2
  import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
3
3
  import InfoIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
4
4
  import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
5
+ import { LoadingIndicator, useSelectKeyboardNavigator } from '@rh-support/components';
5
6
  import isEmpty from 'lodash/isEmpty';
7
+ import map from 'lodash/map';
6
8
  import React, { useContext, useEffect, useRef, useState } from 'react';
7
9
  import { Trans, useTranslation } from 'react-i18next';
8
10
  import { CaseSearchQueryType } from '../../../enums/caseSearch';
@@ -15,7 +17,7 @@ export function AdvanceSearch(props) {
15
17
  const isFirstMountRef = useRef(true);
16
18
  const [inputString, setInputString] = useState('');
17
19
  const [autoCompleteList, setAutoCompleteList] = useState([]);
18
- const dropdownWrapperRef = useRef(null);
20
+ const [isOpen, setIsOpen] = useState(false);
19
21
  const parseQuery = () => {
20
22
  try {
21
23
  parse(inputString);
@@ -43,11 +45,10 @@ export function AdvanceSearch(props) {
43
45
  }
44
46
  };
45
47
  const { parse, parseSafe, parserRef } = useAdvanceSearchParser({ onInit: parseQuery });
46
- const [isAutoCompleteListVisible, setIsAutoCompleteListVisible] = useState(false);
47
48
  const [isParsingSuccessful, setIsParsingSuccessful] = useState(false);
49
+ const [isParsing, setIsParsing] = useState(false);
48
50
  const parserErrorRef = useRef(null);
49
51
  const searchInputRef = useRef(null);
50
- const [selectedItemIndex, setSelectedItemIndex] = useState(null);
51
52
  useEffect(() => {
52
53
  if (filterQueryInfo.type === CaseSearchQueryType.BASIC)
53
54
  return;
@@ -74,25 +75,6 @@ export function AdvanceSearch(props) {
74
75
  props.onSearchValChange && props.onSearchValChange(inputString);
75
76
  // eslint-disable-next-line react-hooks/exhaustive-deps
76
77
  }, [inputString]);
77
- const handleClickOutside = (e) => {
78
- if (dropdownWrapperRef.current.contains(e.target)) {
79
- // inside click
80
- return;
81
- }
82
- // outside click
83
- setIsAutoCompleteListVisible(false);
84
- };
85
- useEffect(() => {
86
- if (isAutoCompleteListVisible) {
87
- document.addEventListener('mousedown', handleClickOutside);
88
- }
89
- else {
90
- document.removeEventListener('mousedown', handleClickOutside);
91
- }
92
- return () => {
93
- document.removeEventListener('mousedown', handleClickOutside);
94
- };
95
- }, [isAutoCompleteListVisible]);
96
78
  const onQueryStringChange = (value) => {
97
79
  const query = value;
98
80
  setInputString(query);
@@ -152,63 +134,20 @@ export function AdvanceSearch(props) {
152
134
  });
153
135
  }
154
136
  setAutoCompleteList(sortedList);
137
+ setIsParsing(false);
155
138
  }
156
139
  };
157
140
  const onItemClick = (itemValue) => {
141
+ setIsParsing(true);
158
142
  setInputString(inputString.substring(0, parserErrorRef.current.location.start.offset) + itemValue);
159
- searchInputRef.current.focus();
160
- };
161
- const onInputFocus = () => {
162
- setIsAutoCompleteListVisible(true);
163
- };
164
- const selectNextItem = (next = 1) => {
165
- const selectedId = selectedItemIndex;
166
- //select next item
167
- let nextId;
168
- if (selectedId !== null) {
169
- nextId = (selectedId + next + autoCompleteList.length) % autoCompleteList.length;
170
- }
171
- else {
172
- nextId = next === 1 ? 0 : autoCompleteList.length - 1;
173
- }
174
- setSelectedItemIndex(nextId);
175
143
  };
176
144
  // To determine if search button is enabled or not
177
145
  const isAdvancedSearchButtonDisabled = props.isSearchDisabled ||
178
146
  (isEmpty(inputString) && isEmpty(filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.parsedQuery)) ||
179
147
  !isParsingSuccessful;
180
- const onKeyDown = (e) => {
181
- setIsAutoCompleteListVisible(true);
182
- const whichKey = e.which;
183
- if (whichKey !== 38 && whichKey !== 40 && whichKey !== 13)
184
- return;
185
- e.preventDefault();
186
- e.stopPropagation();
187
- if (whichKey === 38) {
188
- // key UP
189
- selectNextItem(-1);
190
- }
191
- else if (whichKey === 40) {
192
- // key DOWN
193
- selectNextItem();
194
- }
195
- else if (whichKey === 13) {
196
- //key ENTER
197
- if (e.ctrlKey && !isAdvancedSearchButtonDisabled) {
198
- onSearchSubmit();
199
- }
200
- else {
201
- if (selectedItemIndex !== null) {
202
- onItemClick(autoCompleteList[selectedItemIndex].value);
203
- }
204
- }
205
- }
206
- return false;
207
- };
208
148
  const onClear = () => {
209
149
  setInputString('');
210
150
  setAutoCompleteList([]);
211
- setIsAutoCompleteListVisible(false);
212
151
  props.onSearchClear && props.onSearchClear();
213
152
  };
214
153
  const onSearchSubmit = () => {
@@ -221,26 +160,41 @@ export function AdvanceSearch(props) {
221
160
  parsedQuery += '*';
222
161
  }
223
162
  }
224
- setIsAutoCompleteListVisible(false);
225
163
  props.onSearchSubmit && props.onSearchSubmit(CaseSearchQueryType.ADVANCED, parsedQuery);
226
164
  };
227
165
  const onBasicClick = () => {
228
166
  props.onSearchTypeChange && props.onSearchTypeChange(CaseSearchQueryType.BASIC);
229
167
  };
230
168
  const isQueryInValid = inputString && !isParsingSuccessful;
169
+ const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
170
+ list: autoCompleteList,
171
+ isOpen,
172
+ resetIndexOnClose: true,
173
+ isDisabled: false,
174
+ setIsOpen,
175
+ onSelect: (item) => onItemClick(item.value),
176
+ });
177
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: () => setIsOpen((open) => !open), onKeyDown: onInputKeyDown, innerRef: toggleRef, isExpanded: isOpen, isFullWidth: true },
178
+ React.createElement(TextInputGroup, { isPlain: true },
179
+ React.createElement(TextInputGroupMain, { value: inputString, onChange: (event, value) => onQueryStringChange(value), onClick: () => setIsOpen((open) => !open), ref: searchInputRef, placeholder: t('i18nEnterSolrQuery', 'Enter SOLR query, for example: severity:"1 (Urgent)" and status:"Waiting on Customer"'), className: "pf-v6-u-pr-2xl", type: "text", "aria-invalid": isQueryInValid ? true : false, autoComplete: "off", id: "advance-search-typeahead", "aria-label": t('Enter search query'), "aria-describedby": "advance-query-error-helper" }),
180
+ inputString && (React.createElement(TextInputGroupUtilities, null,
181
+ React.createElement(Button, { icon: inputString && isParsingSuccessful ? (React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
182
+ React.createElement(FlexItem, null,
183
+ React.createElement(Icon, { size: "md" },
184
+ React.createElement(CheckCircleIcon, { color: "#3E8635" }))),
185
+ React.createElement(FlexItem, null,
186
+ React.createElement(TimesCircleIcon, null)))) : (React.createElement(TimesCircleIcon, null)), onClick: onClear, variant: "plain", "data-tracking-id": "clear-search", "aria-label": t('Clear this search') }))))));
231
187
  return (React.createElement(React.Fragment, null,
232
- React.createElement("div", { className: "pf-v6-c-select pf-m-expanded", ref: dropdownWrapperRef },
233
- React.createElement(TextInputGroup, null,
234
- React.createElement(TextInputGroupMain, { value: inputString, onChange: (event, value) => onQueryStringChange(value), onFocus: onInputFocus, ref: searchInputRef, onKeyDown: onKeyDown, placeholder: t('i18nEnterSolrQuery', 'Enter SOLR query, for example: severity:"1 (Urgent)" and status:"Waiting on Customer"'), className: "pf-v6-u-pr-2xl", type: "text", "aria-invalid": isQueryInValid ? true : false, autoComplete: "off", id: "advance-search-typeahead", "aria-label": t('Enter search query'), "aria-describedby": "advance-query-error-helper" }),
235
- inputString && (React.createElement(TextInputGroupUtilities, null,
236
- React.createElement(Button, { icon: inputString && isParsingSuccessful ? (React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
237
- React.createElement(FlexItem, null,
238
- React.createElement(Icon, { size: "md" },
239
- React.createElement(CheckCircleIcon, { color: "#3E8635" }))),
240
- React.createElement(FlexItem, null,
241
- React.createElement(TimesCircleIcon, null)))) : (React.createElement(TimesCircleIcon, null)), onClick: onClear, variant: "plain", "data-tracking-id": "clear-search", "aria-label": t('Clear this search') })))),
242
- isAutoCompleteListVisible && (React.createElement("ul", { className: "pf-v6-c-select__menu", "aria-labelledby": "advance-search-typeahead-label", role: "listbox" }, autoCompleteList.map((item, index) => (React.createElement("li", { key: index, role: "presentation", className: `pf-v6-c-select__menu-wrapper ${selectedItemIndex === index ? 'pf-m-focus' : ''}` },
243
- React.createElement("button", { type: "button", onClick: (e) => onItemClick(item.value), className: "pf-v6-c-select__menu-item", "aria-selected": selectedItemIndex === index ? true : false, role: "option" }, item.display))))))),
188
+ React.createElement(Select, { shouldFocusToggleOnSelect: true, shouldPreventScrollOnItemFocus: true, isOpen: isOpen, selected: null, onSelect: (_e, v) => onItemClick(v), onOpenChange: (open) => {
189
+ if (!isParsing) {
190
+ setIsOpen(open);
191
+ }
192
+ }, popperProps: { direction: 'down', enableFlip: false }, toggle: toggle, isScrollable: true },
193
+ React.createElement(SelectList, null,
194
+ !isParsing &&
195
+ map(autoCompleteList, (item, index) => (React.createElement(SelectOption, { key: item.value, value: item.value, isFocused: focusedItemIndex !== null && focusedItemIndex === index }, item.display))),
196
+ isParsing && (React.createElement(SelectOption, null,
197
+ React.createElement(LoadingIndicator, null))))),
244
198
  React.createElement(Button, { type: "button", variant: "primary", "data-tracking-id": "case-list-adv-search-button", className: "search-btn", onClick: onSearchSubmit, isDisabled: isAdvancedSearchButtonDisabled },
245
199
  React.createElement(Trans, null, "Search")),
246
200
  React.createElement(Button, { hasNoPadding: true, className: "case-search-toggle", variant: "link", onClick: onBasicClick, "data-tracking-id": "case-list-basic-toggle-button" },
@@ -1 +1 @@
1
- {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAO/D,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAOD,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAClB,EAAE,MAAM,qBA8SR"}
1
+ {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAO/D,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAOD,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAClB,EAAE,MAAM,qBAkTR"}
@@ -7,7 +7,7 @@ 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 { Button, ButtonVariant, Checkbox, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalFooter, ModalVariant, TextArea, TextInput, } from '@patternfly/react-core';
10
+ import { Button, ButtonVariant, Checkbox, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, TextArea, TextInput, } from '@patternfly/react-core';
11
11
  import { ToastNotification, useConfirmation } from '@rh-support/components';
12
12
  import { GlobalMetadataDispatchContext, GlobalMetadataStateContext, updateUserPreferences, UserPreferencesKeys, } from '@rh-support/react-context';
13
13
  import find from 'lodash/find';
@@ -182,18 +182,21 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
182
182
  setLocalDefaultChecked(((_a = previousBookmarkedSearchesObj[selectedSearchNameToEdit]) === null || _a === void 0 ? void 0 : _a.defaultChecked) || false);
183
183
  // eslint-disable-next-line react-hooks/exhaustive-deps
184
184
  }, [filterInfo, filterQueryInfo.queryString, isAdding, selectedSearchNameToEdit, currentCaseSearchString]);
185
- return (React.createElement(Modal, { variant: ModalVariant.medium, title: isAdding ? t('Save search and filters') : t('Edit saved search and filters'), isOpen: isModalOpen, onClose: closeModal, style: { overflow: 'visible' }, className: "save-search-modal" },
186
- React.createElement(Form, { className: "save-search-form" },
187
- React.createElement(FormGroup, { label: React.createElement("span", { className: "save-for-later-label-name" }, t('Name')), isRequired: true, fieldId: "save-search-name", className: "form-group pull-bottom-narrow save-for-later-name" },
188
- saveButtonIsClicked && isDuplicateNameError && (React.createElement(FormHelperText, null,
189
- React.createElement(HelperText, null,
190
- React.createElement(HelperTextItem, null,
191
- React.createElement(Trans, null, "Filter with same name already exists. Please enter a unique name."))))),
192
- React.createElement(TextInput, { isRequired: true, type: "text", placeholder: t('Enter a unique name to reference in the future'), id: "save-search-name", name: "save-search-name", "aria-describedby": "save-search-name-helper", value: localSavedSearchName, onChange: (_event, value) => handleSaveSearchNameChange(value), validated: saveButtonIsClicked && (isDuplicateNameError || isEmpty(localSavedSearchName.trim()))
193
- ? 'error'
194
- : 'default' })),
195
- React.createElement(FormGroup, { label: React.createElement("span", { className: "save-for-later-label-query" }, t('Search and filter query')), isRequired: true, fieldId: "filter-query", className: "form-group pf-v6-u-mt-lg save-for-later-query" },
196
- React.createElement(TextArea, { isRequired: true, type: "text", id: "filter-query", name: "filter-query", "aria-describedby": "filter-query-helper", value: queryStr, isDisabled: true, resizeOrientation: "vertical" }))),
185
+ return (React.createElement(Modal, { variant: ModalVariant.medium, isOpen: isModalOpen, onClose: closeModal, style: { overflow: 'visible' }, className: "save-search-modal" },
186
+ React.createElement(ModalHeader, null,
187
+ React.createElement("h2", null, isAdding ? t('Save search and filters') : t('Edit saved search and filters'))),
188
+ React.createElement(ModalBody, null,
189
+ React.createElement(Form, { className: "save-search-form" },
190
+ React.createElement(FormGroup, { label: React.createElement("span", { className: "save-for-later-label-name" }, t('Name')), isRequired: true, fieldId: "save-search-name", className: "form-group pull-bottom-narrow save-for-later-name" },
191
+ saveButtonIsClicked && isDuplicateNameError && (React.createElement(FormHelperText, null,
192
+ React.createElement(HelperText, null,
193
+ React.createElement(HelperTextItem, null,
194
+ React.createElement(Trans, null, "Filter with same name already exists. Please enter a unique name."))))),
195
+ React.createElement(TextInput, { isRequired: true, type: "text", placeholder: t('Enter a unique name to reference in the future'), id: "save-search-name", name: "save-search-name", "aria-describedby": "save-search-name-helper", value: localSavedSearchName, onChange: (_event, value) => handleSaveSearchNameChange(value), validated: saveButtonIsClicked && (isDuplicateNameError || isEmpty(localSavedSearchName.trim()))
196
+ ? 'error'
197
+ : 'default' })),
198
+ React.createElement(FormGroup, { label: React.createElement("span", { className: "save-for-later-label-query" }, t('Search and filter query')), isRequired: true, fieldId: "filter-query", className: "form-group pf-v6-u-mt-lg save-for-later-query" },
199
+ React.createElement(TextArea, { isRequired: true, type: "text", id: "filter-query", name: "filter-query", "aria-describedby": "filter-query-helper", value: queryStr, isDisabled: true, resizeOrientation: "vertical" })))),
197
200
  React.createElement(ModalFooter, null,
198
201
  React.createElement(Button, { key: "save", variant: ButtonVariant.primary, isLoading: isUpdating, spinnerAriaValueText: hydraUserPreferences.isFetching ? 'Saving' : undefined, isDisabled: hydraUserPreferences.isFetching ||
199
202
  (saveButtonIsClicked && (isEmpty(localSavedSearchName.trim()) || isDuplicateNameError)), "data-tracking-id": isAdding ? 'case-list-bookmark-search-saved' : 'case-list-bookmark-search-edited', onClick: save },
@@ -112,6 +112,9 @@
112
112
 
113
113
  .cases-main .case-search-top .filter-chip-wrapper .filter-chip {
114
114
  display: inline-flex;
115
+ flex-wrap: wrap;
116
+ row-gap: 0.5rem;
117
+ column-gap: 0.5rem;
115
118
  align-items: baseline;
116
119
  margin: 0.4rem 1rem 0.4rem 0;
117
120
  }
@@ -9,8 +9,6 @@ export declare function renderWithRouter(ui: any, { route, history }?: {
9
9
  }): IRenderWithRouter;
10
10
  export declare const generateUrl: (path: string, pathParams: any) => string;
11
11
  export declare class EscalationPageTestUtils {
12
- private pageUtils;
13
- constructor(utils: any);
14
12
  get saveBtn(): HTMLElement;
15
13
  get cancelBtn(): HTMLElement;
16
14
  clickBtn(btn: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/test-utils/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAuB,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7D,UAAU,iBAAkB,SAAQ,YAAY;IAC5C,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC5B,EAAE,KAAA,EACF,EAAE,KAAW,EAAE,OAA0D,EAAE;;;CAAK,GACjF,iBAAiB,CAKnB;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,sBAAe,MAUtD,CAAC;AAEF,qBAAa,uBAAuB;IAChC,OAAO,CAAC,SAAS,CAAe;gBACpB,KAAK,KAAA;IAGjB,IAAI,OAAO,gBAEV;IAED,IAAI,SAAS,gBAEZ;IAED,QAAQ,CAAC,GAAG,KAAA;IAIZ,OAAO,CAAC,KAAK;IAIb,IAAI,aAAa,gBAEhB;IAED,IAAI,YAAY,gBAEf;IAED,IAAI,WAAW,gBAEd;IAED,IAAI,UAAU,gBAEb;IAED,IAAI,eAAe,gBAElB;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,cAAc,gBAEjB;IAED,IAAI,OAAO,gBAEV;IAED,IAAI,QAAQ,gBAEX;IAED,IAAI,UAAU,gBAEb;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,YAAY,gBAEf;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,WAAW,gBAEd;IAED,gBAAgB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAI7B,mCAAmC;IAYnC,uCAAuC;IAIvC,kCAAkC;CAYrC"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/test-utils/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAU,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAuB,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7D,UAAU,iBAAkB,SAAQ,YAAY;IAC5C,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC5B,EAAE,KAAA,EACF,EAAE,KAAW,EAAE,OAA0D,EAAE;;;CAAK,GACjF,iBAAiB,CAKnB;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,sBAAe,MAUtD,CAAC;AAEF,qBAAa,uBAAuB;IAChC,IAAI,OAAO,gBAEV;IAED,IAAI,SAAS,gBAEZ;IAED,QAAQ,CAAC,GAAG,KAAA;IAIZ,OAAO,CAAC,KAAK;IAIb,IAAI,aAAa,gBAEhB;IAED,IAAI,YAAY,gBAEf;IAED,IAAI,WAAW,gBAEd;IAED,IAAI,UAAU,gBAEb;IAED,IAAI,eAAe,gBAElB;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,cAAc,gBAEjB;IAED,IAAI,OAAO,gBAEV;IAED,IAAI,QAAQ,gBAEX;IAED,IAAI,UAAU,gBAEb;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,YAAY,gBAEf;IAED,IAAI,gBAAgB,gBAEnB;IAED,IAAI,WAAW,gBAEd;IAED,gBAAgB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAI7B,mCAAmC;IAYnC,uCAAuC;IAIvC,kCAAkC;CAYrC"}
@@ -1,4 +1,4 @@
1
- import { fireEvent, render } from '@testing-library/react';
1
+ import { fireEvent, render, screen } from '@testing-library/react';
2
2
  import { createMemoryHistory } from 'history';
3
3
  import React from 'react';
4
4
  import { Router } from 'react-router-dom';
@@ -16,20 +16,17 @@ export const generateUrl = (path, pathParams) => {
16
16
  return tempPath;
17
17
  };
18
18
  export class EscalationPageTestUtils {
19
- constructor(utils) {
20
- this.pageUtils = utils;
21
- }
22
19
  get saveBtn() {
23
- return this.pageUtils.queryByText(/Send Request/i, { selector: 'button' });
20
+ return screen.getByRole('button', { name: /Send Request/i });
24
21
  }
25
22
  get cancelBtn() {
26
- return this.pageUtils.queryByText(/Cancel/i, { selector: 'button' });
23
+ return screen.getByRole('button', { name: /Cancel/i });
27
24
  }
28
25
  clickBtn(btn) {
29
26
  fireEvent.click(btn);
30
27
  }
31
28
  field(fieldLabel) {
32
- return this.pageUtils.queryByLabelText(fieldLabel);
29
+ return screen.getByLabelText(fieldLabel);
33
30
  }
34
31
  get requestorName() {
35
32
  return this.field(/Your Name/i);
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAmB1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iDAAiD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAmB1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iDAAiD,CAAC"}
@@ -1,23 +1,24 @@
1
+ import i18n from 'i18next';
1
2
  import { SolrKeys } from '../enums/filters';
2
3
  // used for adding title text for different solr fields
3
4
  export const filterNamesMap = {
4
- [SolrKeys.status]: 'Status',
5
- [SolrKeys.severity]: 'Severity',
6
- [SolrKeys.group]: 'Groups',
7
- [SolrKeys.accountNumber]: 'Bookmarks',
8
- [SolrKeys.caseSummary]: 'Title',
9
- [SolrKeys.escalation]: 'Escalated',
10
- [SolrKeys.contactName]: 'Owner',
11
- [SolrKeys.product]: 'Products',
12
- [SolrKeys.version]: 'Version',
13
- [SolrKeys.createdBy]: 'Created by',
14
- [SolrKeys.createdDate]: 'Created date',
15
- [SolrKeys.modifiedBy]: 'Modified by',
16
- [SolrKeys.uri]: 'Uri',
17
- [SolrKeys.caseNumber]: 'Case number',
18
- [SolrKeys.createdBySsoUsername]: 'Created by me',
19
- [SolrKeys.caseContactSSO]: 'Owned by me',
20
- [SolrKeys.type]: 'Support type',
21
- usernameFilterTitle: 'Username',
5
+ [SolrKeys.status]: i18n.t('Status'),
6
+ [SolrKeys.severity]: i18n.t('Severity'),
7
+ [SolrKeys.group]: i18n.t('Groups'),
8
+ [SolrKeys.accountNumber]: i18n.t('Bookmarks'),
9
+ [SolrKeys.caseSummary]: i18n.t('Title'),
10
+ [SolrKeys.escalation]: i18n.t('Escalated'),
11
+ [SolrKeys.contactName]: i18n.t('Owner'),
12
+ [SolrKeys.product]: i18n.t('Products'),
13
+ [SolrKeys.version]: i18n.t('Version'),
14
+ [SolrKeys.createdBy]: i18n.t('Created by'),
15
+ [SolrKeys.createdDate]: i18n.t('Created date'),
16
+ [SolrKeys.modifiedBy]: i18n.t('Modified by'),
17
+ [SolrKeys.uri]: i18n.t('Uri'),
18
+ [SolrKeys.caseNumber]: i18n.t('Case number'),
19
+ [SolrKeys.createdBySsoUsername]: i18n.t('Created by me'),
20
+ [SolrKeys.caseContactSSO]: i18n.t('Owned by me'),
21
+ [SolrKeys.type]: i18n.t('Support type'),
22
+ usernameFilterTitle: i18n.t('Username'),
22
23
  };
23
24
  export const UpdatedCaseDataEvent = 'PCM-Next > case-list-data-background-refresh';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/cases",
3
- "version": "2.6.10",
3
+ "version": "2.6.11",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -43,8 +43,8 @@
43
43
  "@patternfly/patternfly": "6.2.1",
44
44
  "@patternfly/react-core": "6.2.1",
45
45
  "@patternfly/react-table": "6.2.1",
46
- "@rh-support/components": "2.5.28",
47
- "@rh-support/react-context": "2.5.30",
46
+ "@rh-support/components": "2.5.29",
47
+ "@rh-support/react-context": "2.5.31",
48
48
  "@rh-support/types": "2.0.5",
49
49
  "@rh-support/user-permissions": "2.5.19",
50
50
  "@rh-support/utils": "2.5.18",
@@ -96,5 +96,5 @@
96
96
  "defaults and supports es6-module",
97
97
  "maintained node versions"
98
98
  ],
99
- "gitHead": "dc194981196fd9b18c9d82ed3f39b7c66d65f5f3"
99
+ "gitHead": "e0bf8c7dfd320b0250ba6cb2efa66abcd1c0edf1"
100
100
  }