@rh-support/cases 2.4.10-beta.6 → 2.5.1

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 (130) hide show
  1. package/README.md +2 -0
  2. package/lib/esm/components/case/NewCaseButton.d.ts +2 -1
  3. package/lib/esm/components/case/NewCaseButton.d.ts.map +1 -1
  4. package/lib/esm/components/case-list/CaseList.d.ts +4 -3
  5. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  6. package/lib/esm/components/case-list/CaseList.js +42 -44
  7. package/lib/esm/components/case-list/CaseListContext.d.ts +1 -1
  8. package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
  9. package/lib/esm/components/case-list/CaseListFilterContext.d.ts +1 -1
  10. package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
  11. package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
  12. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +6 -3
  13. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
  14. package/lib/esm/components/case-list/CaseListFilterReducer.js +3 -0
  15. package/lib/esm/components/case-list/CaseListReducer.d.ts +2 -2
  16. package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
  17. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts +3 -2
  18. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts.map +1 -1
  19. package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.js +25 -11
  20. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts +2 -1
  21. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
  22. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +10 -5
  23. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts +2 -1
  24. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
  25. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +19 -4
  26. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +2 -1
  27. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  28. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +1 -1
  29. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -1
  30. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
  31. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts +12 -1
  32. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
  33. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +138 -163
  34. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts +2 -1
  35. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
  36. package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +1 -1
  37. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +2 -1
  38. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
  39. package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +157 -27
  40. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts +3 -0
  41. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts.map +1 -0
  42. package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.js +207 -0
  43. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +2 -1
  44. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  45. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +1 -1
  46. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +2 -1
  47. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  48. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +7 -5
  49. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +2 -1
  50. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  51. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +4 -4
  52. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +2 -1
  53. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  54. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +4 -4
  55. package/lib/esm/components/case-list/case-list-filters/TypeFilter.d.ts +2 -1
  56. package/lib/esm/components/case-list/case-list-filters/TypeFilter.d.ts.map +1 -1
  57. package/lib/esm/components/case-list/case-list-filters/TypeFilter.js +3 -3
  58. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +2 -1
  59. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  60. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +35 -4
  61. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +2 -1
  62. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  63. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +211 -113
  64. package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.d.ts +2 -1
  65. package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.d.ts.map +1 -1
  66. package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.js +7 -2
  67. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +19 -0
  68. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -0
  69. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +296 -0
  70. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.scss +27 -0
  71. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts +3 -1
  72. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
  73. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +19 -96
  74. package/lib/esm/components/case-list/case-list-table/SeverityLabel.d.ts +2 -1
  75. package/lib/esm/components/case-list/case-list-table/SeverityLabel.d.ts.map +1 -1
  76. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts +9 -0
  77. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -0
  78. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +53 -0
  79. package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.scss +7 -0
  80. package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts +2 -1
  81. package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
  82. package/lib/esm/components/case-list/case-search/AdvanceSearch.js +18 -13
  83. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts +2 -1
  84. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  85. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +7 -6
  86. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts +2 -1
  87. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  88. package/lib/esm/components/case-list/case-search/CaseSearch.js +2 -2
  89. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts +2 -1
  90. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts.map +1 -1
  91. package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.js +48 -40
  92. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -1
  93. package/lib/esm/components/escalations/EscalationForm.d.ts +1 -1
  94. package/lib/esm/components/escalations/EscalationForm.d.ts.map +1 -1
  95. package/lib/esm/components/escalations/EscalationForm.js +18 -9
  96. package/lib/esm/components/escalations/PartnerEscalation.d.ts +2 -1
  97. package/lib/esm/components/escalations/PartnerEscalation.d.ts.map +1 -1
  98. package/lib/esm/components/index.d.ts +2 -8
  99. package/lib/esm/components/index.d.ts.map +1 -1
  100. package/lib/esm/components/index.js +5 -8
  101. package/lib/esm/css/caseList.css +85 -64
  102. package/lib/esm/css/caseSearch.css +1 -1
  103. package/lib/esm/css/escalation.css +4 -4
  104. package/lib/esm/enums/cache.d.ts +1 -1
  105. package/lib/esm/enums/cache.d.ts.map +1 -1
  106. package/lib/esm/enums/case.js +1 -1
  107. package/lib/esm/enums/filters.d.ts +1 -1
  108. package/lib/esm/enums/filters.d.ts.map +1 -1
  109. package/lib/esm/enums/filters.js +1 -1
  110. package/lib/esm/i18n/template-es.js +1 -1
  111. package/lib/esm/index.d.ts +0 -2
  112. package/lib/esm/index.d.ts.map +1 -1
  113. package/lib/esm/index.js +0 -2
  114. package/lib/esm/models/caseList.d.ts +5 -2
  115. package/lib/esm/models/caseList.d.ts.map +1 -1
  116. package/lib/esm/scss/_main.scss +11 -11
  117. package/lib/esm/scss/_pf-overrides.scss +40 -4
  118. package/lib/esm/scss/index.scss +0 -1
  119. package/lib/esm/test-utils/testSetup.d.ts +1 -1
  120. package/lib/esm/test-utils/testSetup.d.ts.map +1 -1
  121. package/lib/esm/test-utils/testSetup.js +1 -1
  122. package/lib/esm/test-utils/testUtils.d.ts +1 -1
  123. package/lib/esm/test-utils/testUtils.js +1 -1
  124. package/lib/esm/utils/caseListUtils.js +3 -3
  125. package/lib/esm/utils/caseSearchUtils.d.ts +3 -3
  126. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  127. package/lib/esm/utils/caseSearchUtils.js +18 -5
  128. package/lib/esm/utils/constants.js +1 -1
  129. package/lib/esm/utils/routeUtils.js +2 -1
  130. package/package.json +35 -32
@@ -1,4 +1,5 @@
1
- import { Button } from '@patternfly/react-core';
1
+ import { Button, Flex, FlexItem, Icon, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
2
+ import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
2
3
  import InfoIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
3
4
  import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
4
5
  import isEmpty from 'lodash/isEmpty';
@@ -83,8 +84,8 @@ export function AdvanceSearch(props) {
83
84
  document.removeEventListener('mousedown', handleClickOutside);
84
85
  };
85
86
  }, [isAutoCompleteListVisible]);
86
- const onQueryStringChange = (ev) => {
87
- const query = ev.target.value;
87
+ const onQueryStringChange = (value) => {
88
+ const query = value;
88
89
  setInputString(query);
89
90
  };
90
91
  const autoCompleteSetup = (expectedArray = null, phrase = '') => {
@@ -211,18 +212,22 @@ export function AdvanceSearch(props) {
211
212
  };
212
213
  const isQueryInValid = inputString && !isParsingSuccessful;
213
214
  return (React.createElement(React.Fragment, null,
214
- React.createElement("div", { className: "pf-c-select pf-m-expanded", ref: dropdownWrapperRef },
215
- React.createElement("div", { className: "pf-c-select__toggle pf-m-typeahead" },
216
- React.createElement("div", { className: "pf-c-select__toggle-wrapper" },
217
- React.createElement("input", { value: inputString, onChange: onQueryStringChange, onFocus: onInputFocus, ref: searchInputRef, onKeyDown: onKeyDown, placeholder: t('i18nEnterSolrQuery', 'Enter SOLR query, for example: severity:"1 (Urgent)" and status:"Waiting on Customer"'), className: `pf-c-form-control pf-c-select__toggle-typeahead ${inputString && isParsingSuccessful ? 'pf-m-success' : ''}`, 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" })),
218
- inputString && (React.createElement(Button, { onClick: onClear, className: "pf-c-button pf-m-plain pf-c-select__toggle-clear", variant: "plain", "data-tracking-id": "clear-search", "aria-label": t('Clear this search') },
219
- React.createElement(TimesCircleIcon, null)))),
220
- isAutoCompleteListVisible && (React.createElement("ul", { className: "pf-c-select__menu", "aria-labelledby": "advance-search-typeahead-label", role: "listbox" }, autoCompleteList.map((item, index) => (React.createElement("li", { key: index, role: "presentation", className: `pf-c-select__menu-wrapper ${selectedItemIndex === index ? 'pf-m-focus' : ''}` },
221
- React.createElement("button", { type: "button", onClick: (e) => onItemClick(item.value), className: "pf-c-select__menu-item", "aria-selected": selectedItemIndex === index ? true : false, role: "option" }, item.display))))))),
222
- React.createElement(Button, { type: "button", variant: "primary", "data-tracking-id": "case-list-adv-search-button", className: "pf-u-ml-sm", onClick: onSearchSubmit, isDisabled: isAdvancedSearchButtonDisabled },
215
+ React.createElement("div", { className: "pf-v5-c-select pf-m-expanded", ref: dropdownWrapperRef },
216
+ React.createElement(TextInputGroup, null,
217
+ 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-v5-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" }),
218
+ inputString && (React.createElement(TextInputGroupUtilities, null,
219
+ React.createElement(Button, { onClick: onClear, variant: "plain", "data-tracking-id": "clear-search", "aria-label": t('Clear this search') }, inputString && isParsingSuccessful ? (React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
220
+ React.createElement(FlexItem, null,
221
+ React.createElement(Icon, { size: "md" },
222
+ React.createElement(CheckCircleIcon, { color: "#3E8635" }))),
223
+ React.createElement(FlexItem, null,
224
+ React.createElement(TimesCircleIcon, null)))) : (React.createElement(TimesCircleIcon, null)))))),
225
+ isAutoCompleteListVisible && (React.createElement("ul", { className: "pf-v5-c-select__menu", "aria-labelledby": "advance-search-typeahead-label", role: "listbox" }, autoCompleteList.map((item, index) => (React.createElement("li", { key: index, role: "presentation", className: `pf-v5-c-select__menu-wrapper ${selectedItemIndex === index ? 'pf-m-focus' : ''}` },
226
+ React.createElement("button", { type: "button", onClick: (e) => onItemClick(item.value), className: "pf-v5-c-select__menu-item", "aria-selected": selectedItemIndex === index ? true : false, role: "option" }, item.display))))))),
227
+ React.createElement(Button, { type: "button", variant: "primary", "data-tracking-id": "case-list-adv-search-button", className: "pf-v5-u-ml-sm", onClick: onSearchSubmit, isDisabled: isAdvancedSearchButtonDisabled },
223
228
  React.createElement(Trans, null, "Search")),
224
229
  React.createElement(Button, { variant: "link", onClick: onBasicClick, "data-tracking-id": "case-list-basic-toggle-button" },
225
230
  React.createElement(Trans, null, "Basic")),
226
- React.createElement(Button, { variant: "link", className: "pf-u-px-0", component: "a", rel: "noopener noreferrer", target: "_blank", href: "https://source.redhat.com/communitiesatredhat/applications/integration-community-of-practice/all/testallin/all_in_blog/advanced_search_in_the_customer_support_tool", "data-tracking-id": "advance-search-guide" },
231
+ React.createElement(Button, { variant: "link", className: "pf-v5-u-px-0", component: "a", rel: "noopener noreferrer", target: "_blank", "aria-label": "Advanced search guide", href: "https://source.redhat.com/communitiesatredhat/applications/integration-community-of-practice/all/testallin/all_in_blog/advanced_search_in_the_customer_support_tool", "data-tracking-id": "advance-search-guide" },
227
232
  React.createElement(InfoIcon, null))));
228
233
  }
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { CaseSearchQueryType } from '../../../enums/caseSearch';
2
3
  interface IProps {
3
4
  currentCaseSearchString: string;
@@ -5,6 +6,6 @@ interface IProps {
5
6
  isAdvancedSearchValid: boolean;
6
7
  defaultSavedSearchName: string;
7
8
  }
8
- export declare function BookmarkedSearchesSelector(props: IProps): JSX.Element;
9
+ export declare function BookmarkedSearchesSelector(props: IProps): React.JSX.Element;
9
10
  export {};
10
11
  //# sourceMappingURL=BookmarkedSearchesSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAahE,UAAU,MAAM;IACZ,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eAgTvD"}
1
+ {"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAahE,UAAU,MAAM;IACZ,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,qBAgTvD"}
@@ -7,7 +7,8 @@ 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, Dropdown, DropdownItem, DropdownSeparator, DropdownToggle, DropdownToggleAction, Split, SplitItem, } from '@patternfly/react-core';
10
+ import { Button, ButtonVariant, Split, SplitItem } from '@patternfly/react-core';
11
+ import { Dropdown, DropdownItem, DropdownSeparator, DropdownToggle, DropdownToggleAction, } from '@patternfly/react-core/deprecated';
11
12
  import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon';
12
13
  import StarIcon from '@patternfly/react-icons/dist/js/icons/star-icon';
13
14
  import { ConfirmationServiceProvider } from '@rh-support/components';
@@ -166,16 +167,16 @@ export function BookmarkedSearchesSelector(props) {
166
167
  .sort()
167
168
  .map((bookmarkedSearch) => {
168
169
  var _a;
169
- return (React.createElement("li", { className: "pf-c-dropdown__menu-item pf-u-p-xs", key: bookmarkedSearch },
170
+ return (React.createElement("li", { className: "pf-v5-c-dropdown__menu-item pf-v5-u-p-xs", key: bookmarkedSearch },
170
171
  React.createElement(Split, { key: `split-parent-${bookmarkedSearch}` },
171
172
  React.createElement(SplitItem, { isFilled: true, key: `split-left-${bookmarkedSearch}` },
172
- React.createElement(Button, { variant: ButtonVariant.plain, isBlock: true, className: "pf-u-text-align-left", onClick: onBookmarkSelectorChange(bookmarkedSearch, bookmarkedSearches[bookmarkedSearch], true) },
173
- ((_a = bookmarkedSearches[bookmarkedSearch]) === null || _a === void 0 ? void 0 : _a.defaultChecked) && (React.createElement(StarIcon, { title: "{t('Default search')}", color: "#F0AB00", className: "pf-u-mr-sm", "aria-label": t('Default search') })),
173
+ React.createElement(Button, { variant: ButtonVariant.plain, isBlock: true, className: "pf-v5-u-text-align-left", onClick: onBookmarkSelectorChange(bookmarkedSearch, bookmarkedSearches[bookmarkedSearch], true) },
174
+ ((_a = bookmarkedSearches[bookmarkedSearch]) === null || _a === void 0 ? void 0 : _a.defaultChecked) && (React.createElement(StarIcon, { title: "{t('Default search')}", color: "#F0AB00", className: "pf-v5-u-mr-sm", "aria-label": t('Default search') })),
174
175
  ' ',
175
176
  bookmarkedSearch)),
176
177
  React.createElement(SplitItem, { key: `split-right-${bookmarkedSearch}` },
177
178
  ' ',
178
- React.createElement(Button, { "aria-label": t('Edit or delete saved search'), className: "pf-u-pr-sm", onClick: onEditSavedSearchClick(bookmarkedSearch), variant: ButtonVariant.link, icon: React.createElement(PencilAltIcon, null) })))));
179
+ React.createElement(Button, { "aria-label": t('Edit or delete saved search'), className: "pf-v5-u-pr-sm", onClick: onEditSavedSearchClick(bookmarkedSearch), variant: ButtonVariant.link, icon: React.createElement(PencilAltIcon, null) })))));
179
180
  });
180
181
  const renderMostRecentSearch = [
181
182
  React.createElement(DropdownItem, { key: "most-recent-search", component: "button", onClick: onBookmarkSelectorChange('', mostRecentSearch, true) },
@@ -193,7 +194,7 @@ export function BookmarkedSearchesSelector(props) {
193
194
  const advancedSearchPhraseIsNotValid = filterState.filterQueryInfo.type === CaseSearchQueryType.ADVANCED && !props.isAdvancedSearchValid;
194
195
  const noFilterOrSearchQueryApplied = !props.currentCaseSearchString && (isOnlyDefaultFilterApplied(filterState) || isNoFilterApplied(filterState));
195
196
  return (React.createElement(React.Fragment, null,
196
- React.createElement("div", { className: "bookmark-search-dropdown-wrapper" },
197
+ React.createElement("div", { className: "bookmark-search-dropdown-wrapper", "data-tracking-id": "bookmark-search-id" },
197
198
  React.createElement(Dropdown, { className: "bookmark-search-dropdown", isOpen: isMenuOpen, dropdownItems: renderListItems, toggle: React.createElement(DropdownToggle, { splitButtonItems: [
198
199
  React.createElement(DropdownToggleAction, { onClick: onSaveForLaterClick, key: "action", isDisabled: !!selectedSearch ||
199
200
  noFilterOrSearchQueryApplied ||
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  defaultSavedSearchName?: string;
3
4
  }
4
- export declare function CaseSearch(props: IProps): JSX.Element;
5
+ export declare function CaseSearch(props: IProps): React.JSX.Element;
5
6
  export {};
6
7
  //# sourceMappingURL=CaseSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAsBA,UAAU,MAAM;IACZ,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,eA0LvC"}
1
+ {"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAkB5E,UAAU,MAAM;IACZ,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,qBA0LvC"}
@@ -94,7 +94,7 @@ export function CaseSearch(props) {
94
94
  const renderBasicSearch = () => {
95
95
  return (React.createElement(React.Fragment, null,
96
96
  React.createElement("div", { className: "case-search-input-container" },
97
- React.createElement(SearchInput, { className: "pf-u-w-100", placeholder: t('Search by keyword or case ID'), value: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), "data-tracking-id": "search-cases-text-input", id: "case-search-basic", "aria-label": t('Search by keyword or case ID'), onChange: onSearchValChange, onClear: clearSearchVal }),
97
+ React.createElement(SearchInput, { className: "pf-v5-u-w-100", placeholder: t('Search by keyword or case ID'), value: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), "data-tracking-id": "search-cases-text-input", id: "case-search-basic", "aria-label": t('Search by keyword or case ID'), onChange: (_event, val) => onSearchValChange(val), onClear: clearSearchVal }),
98
98
  React.createElement(Button, { variant: "primary", type: "submit", className: "search-btn", "data-tracking-id": "case-list-search-button", isDisabled: isSearchButtonDisabled },
99
99
  React.createElement(Trans, null, "Search")),
100
100
  canUseAdvancedSearch && (React.createElement(Button, { variant: "link", onClick: () => onSearchTypeChange(CaseSearchQueryType.ADVANCED), isDisabled: isFetching, "data-tracking-id": "case-list-adv-toggle-button" },
@@ -102,7 +102,7 @@ export function CaseSearch(props) {
102
102
  };
103
103
  const renderAdvanceSearch = () => {
104
104
  return canUseAdvancedSearch ? (React.createElement(React.Fragment, null,
105
- React.createElement(AdvanceSearch, { isSearchDisabled: isSearchButtonDisabled, onSearchValChange: onSearchValChange, onSearchClear: clearAdvancedSearchVal, onSearchSubmit: onCaseSearchAdvanced, onSearchTypeChange: onSearchTypeChange, onAdvancedSearchValidation: (isValid) => setIsAdvancedSearchValid(isValid) }))) : (React.createElement(React.Fragment, null));
105
+ React.createElement(AdvanceSearch, { isSearchDisabled: isSearchButtonDisabled, onSearchValChange: onSearchValChange, onSearchClear: clearAdvancedSearchVal, onSearchSubmit: onCaseSearchAdvanced, onSearchTypeChange: onSearchTypeChange, onAdvancedSearchValidation: (isValid) => setIsAdvancedSearchValid(isValid) }))) : (renderBasicSearch());
106
106
  };
107
107
  return (React.createElement(React.Fragment, null,
108
108
  React.createElement("form", { onSubmit: handleSubmit, onKeyDown: handleSearchInputKeyDown },
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  isModalOpen: boolean;
3
4
  modalToggle: () => void;
@@ -7,6 +8,6 @@ interface IProps {
7
8
  currentSearchType: string;
8
9
  clearSearchName: () => void;
9
10
  }
10
- export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, clearSearchName, }: IProps): JSX.Element;
11
+ export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, clearSearchName, }: IProps): React.JSX.Element;
11
12
  export {};
12
13
  //# sourceMappingURL=SaveCaseSearchModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA6BA,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,eAiSR"}
1
+ {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AAyBA,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,qBA4SR"}
@@ -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, Modal, ModalVariant, TextArea, TextInput, } from '@patternfly/react-core';
10
+ import { Button, ButtonVariant, Checkbox, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, 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';
@@ -31,6 +31,7 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
31
31
  const [isUpdating, setIsUpdating] = useState(false);
32
32
  const [isDuplicateNameError, setIsDuplicateNameError] = useState(false);
33
33
  const [saveButtonIsClicked, setSaveButtonIsClicked] = useState(false);
34
+ const [queryStr, setQueryStr] = useState('');
34
35
  const filterState = useContext(CaseListFilterStateContext);
35
36
  const { filterQueryInfo, filterInfo, sortInfo } = filterState;
36
37
  const { globalMetadataState } = useContext(GlobalMetadataStateContext);
@@ -137,39 +138,45 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
137
138
  let queryStr = '';
138
139
  let sort = '';
139
140
  let dir = '';
140
- if (isAdding) {
141
- // new saved search
142
- queryStr =
143
- currentSearchType === CaseSearchQueryType.BASIC
144
- ? createUserFriendlyQueryFromFilterState(filterInfo, currentCaseSearchString)
145
- : currentCaseSearchString;
146
- const sortInfo = filterState.sortInfo;
147
- const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
148
- sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
149
- dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
150
- }
151
- else if (selectedSearchNameToEdit && previousBookmarkedSearchesObj[selectedSearchNameToEdit]) {
152
- // already saved seach
153
- queryStr =
154
- currentSearchType === CaseSearchQueryType.BASIC
155
- ? createUserFriendlyQueryFromFilterState(previousBookmarkedSearchesObj[selectedSearchNameToEdit].filterState, previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString)
156
- : previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString;
157
- const sortInfo = (_a = previousBookmarkedSearchesObj[selectedSearchNameToEdit]) === null || _a === void 0 ? void 0 : _a.sortState;
158
- const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
159
- sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
160
- dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
161
- }
162
- else {
163
- // while saving search name is in progress and modal is open,
164
- // localSavedSearchName in previousBookmarkedSearchesObj is used to populate query inputbox
165
- queryStr = previousBookmarkedSearchesObj[localSavedSearchName] || '';
166
- const sortInfo = (_b = previousBookmarkedSearchesObj[localSavedSearchName]) === null || _b === void 0 ? void 0 : _b.sortState;
167
- const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
168
- sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
169
- dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
141
+ if (!hydraUserPreferences.isFetching) {
142
+ if (isAdding) {
143
+ // new saved search
144
+ queryStr =
145
+ currentSearchType === CaseSearchQueryType.BASIC
146
+ ? createUserFriendlyQueryFromFilterState(filterInfo, currentCaseSearchString)
147
+ : currentCaseSearchString;
148
+ const sortInfo = filterState.sortInfo;
149
+ const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
150
+ sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
151
+ dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
152
+ }
153
+ else if (selectedSearchNameToEdit && previousBookmarkedSearchesObj[selectedSearchNameToEdit]) {
154
+ // already saved seach
155
+ queryStr =
156
+ currentSearchType === CaseSearchQueryType.BASIC
157
+ ? createUserFriendlyQueryFromFilterState(previousBookmarkedSearchesObj[selectedSearchNameToEdit].filterState, previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString)
158
+ : previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString;
159
+ const sortInfo = (_a = previousBookmarkedSearchesObj[selectedSearchNameToEdit]) === null || _a === void 0 ? void 0 : _a.sortState;
160
+ const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
161
+ sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
162
+ dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
163
+ }
164
+ else {
165
+ // while saving search name is in progress and modal is open,
166
+ // localSavedSearchName in previousBookmarkedSearchesObj is used to populate query inputbox
167
+ queryStr = previousBookmarkedSearchesObj[localSavedSearchName] || '';
168
+ const sortInfo = (_b = previousBookmarkedSearchesObj[localSavedSearchName]) === null || _b === void 0 ? void 0 : _b.sortState;
169
+ const sortField = sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column;
170
+ sort = (caseTableColumSortNamesMap === null || caseTableColumSortNamesMap === void 0 ? void 0 : caseTableColumSortNamesMap[sortField]) || sortField || '';
171
+ dir = directionMap[sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.direction] || '';
172
+ }
173
+ setQueryStr(queryStr ? `${queryStr} Sort by: ${sort}, ${dir}` : '');
170
174
  }
171
- return queryStr ? `${queryStr} Sort by: ${sort}, ${dir}` : '';
172
175
  };
176
+ useEffect(() => {
177
+ getQueryStr();
178
+ // eslint-disable-next-line react-hooks/exhaustive-deps
179
+ }, [hydraUserPreferences]);
173
180
  useEffect(() => {
174
181
  var _a;
175
182
  setLocalSavedSearchName(selectedSearchNameToEdit);
@@ -183,22 +190,23 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
183
190
  React.createElement(Button, { key: "cancel", variant: ButtonVariant.secondary, "data-tracking-id": "case-list-bookmark-search-canceled", onClick: closeModal },
184
191
  React.createElement(Trans, null, "Cancel")),
185
192
  React.createElement(React.Fragment, null,
186
- React.createElement(Checkbox, { className: "pf-u-ml-md save-search-set-default", key: "set-as-default", "aria-label": t('Set as default'), id: "case-list-bookmark-search-set-as-default", "data-tracking-id": "case-list-bookmark-search-set-as-default", isChecked: localDefaultChecked, onChange: (checkbox, e) => {
193
+ React.createElement(Checkbox, { className: "pf-v5-u-ml-md save-search-set-default", key: "set-as-default", "aria-label": t('Set as default'), id: "case-list-bookmark-search-set-as-default", "data-tracking-id": "case-list-bookmark-search-set-as-default", isChecked: localDefaultChecked, onChange: (e, checkbox) => {
187
194
  e.stopPropagation();
188
195
  setLocalDefaultChecked(!localDefaultChecked);
189
196
  } }),
190
- ' ',
191
197
  "Set as default"),
192
198
  React.createElement(React.Fragment, null, !isAdding && (React.createElement(Button, { key: "delete", variant: ButtonVariant.link, isDanger: true, "data-tracking-id": "case-list-bookmark-search-deleted", onClick: deleteSavedSearch, style: { marginLeft: 'auto' } },
193
199
  React.createElement(Trans, null, "Remove")))),
194
200
  ] },
195
201
  React.createElement(Form, { className: "save-search-form" },
196
- React.createElement(FormGroup, { label: React.createElement("span", { className: "save-for-later-label-name" }, t('Name')), isRequired: true, fieldId: "save-search-name", validated: saveButtonIsClicked && isDuplicateNameError ? 'error' : 'default', helperTextInvalid: t('Filter with same name already exists. Please enter a unique name.'), className: "form-group pull-bottom-narrow save-for-later-name" },
197
- 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: handleSaveSearchNameChange, className: `form-control${saveButtonIsClicked && (isDuplicateNameError || isEmpty(localSavedSearchName.trim()))
198
- ? ' form-invalid'
199
- : ''}`, validated: saveButtonIsClicked && (isDuplicateNameError || isEmpty(localSavedSearchName.trim()))
202
+ 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" },
203
+ saveButtonIsClicked && isDuplicateNameError && (React.createElement(FormHelperText, null,
204
+ React.createElement(HelperText, null,
205
+ React.createElement(HelperTextItem, null,
206
+ React.createElement(Trans, null, "Filter with same name already exists. Please enter a unique name."))))),
207
+ 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()))
200
208
  ? 'error'
201
209
  : 'default' })),
202
- 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-u-mt-lg save-for-later-query", validated: saveButtonIsClicked ? 'error' : 'default' },
203
- React.createElement(TextArea, { isRequired: true, type: "text", id: "filter-query", name: "filter-query", "aria-describedby": "filter-query-helper", value: getQueryStr(), className: "form-control", isDisabled: true })))));
210
+ 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-v5-u-mt-lg save-for-later-query" },
211
+ React.createElement(TextArea, { isRequired: true, type: "text", id: "filter-query", name: "filter-query", "aria-describedby": "filter-query-helper", value: queryStr, isDisabled: true, resizeOrientation: "vertical" })))));
204
212
  }
@@ -101,7 +101,7 @@ export default function useAdvanceSearchParser({ onInit }) {
101
101
  / "createdDate" {return "${SolrKeys.createdDate}";}
102
102
  / "closedDate" {return "${SolrKeys.caseClosedDate}";}
103
103
  / "description" {return "${SolrKeys.description}";}
104
- / "summary" {return "${SolrKeys.caseSummary}";}
104
+ / "title" {return "${SolrKeys.caseSummary}";}
105
105
  / "lastModifiedDate" {return "${SolrKeys.modifiedDate}";}
106
106
  / "lastModifiedByName" {return "${SolrKeys.modifiedBy}";}
107
107
  / "ownerName" {return "${SolrKeys.contactName}";}
@@ -23,6 +23,6 @@ interface IProps {
23
23
  type: escalationType;
24
24
  onSuccessMessage?: string;
25
25
  }
26
- export declare function EscalationForm(props: IProps): JSX.Element;
26
+ export declare function EscalationForm(props: IProps): React.JSX.Element;
27
27
  export {};
28
28
  //# sourceMappingURL=EscalationForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EscalationForm.d.ts","sourceRoot":"","sources":["../../../../src/components/escalations/EscalationForm.tsx"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIzE,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxD,IAAI,CAAC,EACC,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,KAAK,GACL,MAAM,GACN,KAAK,CAAC;IACZ,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,UAAU,MAAM;IACZ,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,gBAAgB,EAAE,GAAG,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,eA8O3C"}
1
+ {"version":3,"file":"EscalationForm.d.ts","sourceRoot":"","sources":["../../../../src/components/escalations/EscalationForm.tsx"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAoBlC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIzE,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxD,IAAI,CAAC,EACC,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,KAAK,GACL,MAAM,GACN,KAAK,CAAC;IACZ,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,UAAU,MAAM;IACZ,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,gBAAgB,EAAE,GAAG,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAwP3C"}
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  };
21
21
  import '../../css/escalation.css';
22
22
  import { escalations } from '@cee-eng/hydrajs';
23
- import { ActionGroup, Button, Checkbox, Form, FormGroup, FormSelect, FormSelectOption, TextArea, TextInput, } from '@patternfly/react-core';
23
+ import { ActionGroup, Button, Checkbox, Form, FormGroup, FormHelperText, FormSelect, FormSelectOption, HelperText, HelperTextItem, TextArea, TextInput, } from '@patternfly/react-core';
24
24
  import { AlertMessage, AlertType, useFetch } from '@rh-support/components';
25
25
  import { useGlobalStateContext } from '@rh-support/react-context';
26
26
  import { scrollIntoView } from '@rh-support/utils';
@@ -70,17 +70,17 @@ export function EscalationForm(props) {
70
70
  ? mapToValueLabel(field.options)
71
71
  : field.options;
72
72
  return (React.createElement(React.Fragment, null,
73
- React.createElement(FormSelect, { isRequired: field.isRequired || false, id: field.id, onChange: onFormValueChange, value: formState[field.id], name: field.id }, options.map((option, index) => (React.createElement(FormSelectOption, { key: index, value: option.value, label: option.label })))),
74
- field.showTextAreaForOtherOption && formState[field.id] === 'Other' && (React.createElement(TextArea, { id: `${field.id}Text`, value: formState[`${field.id}Text`], onChange: onFormValueChange, "aria-describedby": `${field.id}-helper`, name: `${field.id}Text` }))));
73
+ React.createElement(FormSelect, { isRequired: field.isRequired || false, id: field.id, onChange: (ev, value) => onFormValueChange(value, ev), value: formState[field.id], name: field.id }, options.map((option, index) => (React.createElement(FormSelectOption, { key: index, value: option.value, label: option.label })))),
74
+ field.showTextAreaForOtherOption && formState[field.id] === 'Other' && (React.createElement(TextArea, { id: `${field.id}Text`, value: formState[`${field.id}Text`], onChange: (ev, value) => onFormValueChange(value, ev), "aria-describedby": `${field.id}-helper`, name: `${field.id}Text`, resizeOrientation: "vertical" }))));
75
75
  };
76
76
  const renderTextInput = (field) => {
77
- return (React.createElement(TextInput, { validated: checkIfValid(field) ? 'default' : 'error', isRequired: field.isRequired || false, id: field.id, type: field.type || 'text', value: formState[field.id], onChange: onFormValueChange, "aria-describedby": `${field.id}-helper`, name: field.id }));
77
+ return (React.createElement(TextInput, { validated: checkIfValid(field) ? 'default' : 'error', isRequired: field.isRequired || false, id: field.id, type: field.type || 'text', value: formState[field.id], onChange: (ev, value) => onFormValueChange(value, ev), "aria-describedby": `${field.id}-helper`, name: field.id }));
78
78
  };
79
79
  const renderTextArea = (field) => {
80
- return (React.createElement(TextArea, { isRequired: field.isRequired || false, id: field.id, value: formState[field.id], onChange: onFormValueChange, "aria-describedby": `${field.id}-helper`, name: field.id }));
80
+ return (React.createElement(TextArea, { isRequired: field.isRequired || false, id: field.id, value: formState[field.id], onChange: (ev, value) => onFormValueChange(value, ev), "aria-describedby": `${field.id}-helper`, name: field.id, resizeOrientation: "vertical" }));
81
81
  };
82
82
  const renderCheckbox = (field) => {
83
- return (React.createElement(Checkbox, { id: field.id, isChecked: formState[field.id], onChange: onFormValueChange, "aria-describedby": `${field.id}-helper`, name: field.id }));
83
+ return (React.createElement(Checkbox, { id: field.id, isChecked: formState[field.id], onChange: (ev, value) => onFormValueChange(value, ev), "aria-describedby": `${field.id}-helper`, name: field.id }));
84
84
  };
85
85
  const onFormValueChange = (value, ev) => {
86
86
  const newValue = { [ev.target.name]: value };
@@ -127,6 +127,13 @@ export function EscalationForm(props) {
127
127
  const isSendBtnDisabled = () => {
128
128
  return (requiredFields.some((item) => isFieldValueEmpty(formState[item])) || invalidfields.length > 0 || isFetching);
129
129
  };
130
+ const getHelperText = (field) => {
131
+ return checkIfValid(field)
132
+ ? typeof field.helperText === 'string'
133
+ ? t(field.helperText)
134
+ : ''
135
+ : t(field.helperTextInvalid || '');
136
+ };
130
137
  return (React.createElement(React.Fragment, null,
131
138
  React.createElement("div", { className: "escalation-alert-messages", ref: alertMessageSectionRef },
132
139
  React.createElement(AlertMessage, { show: isFetching, variant: AlertType.INFO, title: t('Creating your escalation request') }),
@@ -142,9 +149,11 @@ export function EscalationForm(props) {
142
149
  React.createElement("span", { className: "cp-step-icon-custom" }, index + 1)),
143
150
  React.createElement("div", { className: "cp-step-content" }, section.sectionName)),
144
151
  React.createElement("div", { className: "escalation-form-fields" }, section.sectionFields.map((field) => {
145
- return (React.createElement(FormGroup, { key: field.id, label: t(field.label), isRequired: field.isRequired || false, fieldId: field.id, validated: checkIfValid(field) ? 'default' : 'error', helperText: typeof field.helperText === 'string'
146
- ? t(field.helperText || '')
147
- : field.helperText, helperTextInvalid: t(field.helperTextInvalid || '') }, renderFormField(field)));
152
+ return (React.createElement(FormGroup, { key: field.id, label: t(field.label), isRequired: field.isRequired || false, fieldId: field.id },
153
+ React.createElement(FormHelperText, null,
154
+ React.createElement(HelperText, null,
155
+ React.createElement(HelperTextItem, { variant: checkIfValid(field) ? 'default' : 'error' }, getHelperText(field)))),
156
+ renderFormField(field)));
148
157
  }))));
149
158
  }),
150
159
  React.createElement(ActionGroup, null,
@@ -1,2 +1,3 @@
1
- export declare function PartnerEscalation(): JSX.Element;
1
+ import React from 'react';
2
+ export declare function PartnerEscalation(): React.JSX.Element;
2
3
  //# sourceMappingURL=PartnerEscalation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PartnerEscalation.d.ts","sourceRoot":"","sources":["../../../../src/components/escalations/PartnerEscalation.tsx"],"names":[],"mappings":"AA+CA,wBAAgB,iBAAiB,gBA0KhC"}
1
+ {"version":3,"file":"PartnerEscalation.d.ts","sourceRoot":"","sources":["../../../../src/components/escalations/PartnerEscalation.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B,wBAAgB,iBAAiB,sBA0KhC"}
@@ -1,4 +1,4 @@
1
- import { IPfeCollapse } from '@rh-support/types/pfe/pfe-collapse';
1
+ import React from 'react';
2
2
  import { RouteComponentProps } from 'react-router-dom';
3
3
  export interface ICasesRouteURLParams {
4
4
  }
@@ -10,23 +10,17 @@ declare global {
10
10
  interface Window {
11
11
  sessionjs: any;
12
12
  MSInputMethodContext: any;
13
- chrometwo_require: (component: string[], callback: (...params: any[]) => any) => any;
14
13
  portal: any;
15
14
  Raven: any;
16
- chrometwo_ready: any;
17
15
  seVersionInfo: {
18
16
  packageVersion: string;
19
17
  hydrajs: string;
20
18
  };
21
19
  }
22
- namespace JSX {
23
- interface IntrinsicElements extends IPfeCollapse {
24
- }
25
- }
26
20
  interface Document {
27
21
  documentMode: any;
28
22
  }
29
23
  }
30
- export declare function Cases(props: IProps): JSX.Element;
24
+ export declare function Cases(props: IProps): React.JSX.Element;
31
25
  export {};
32
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,EAAmB,mBAAmB,EAAU,MAAM,kBAAkB,CAAC;AAMhF,MAAM,WAAW,oBAAoB;CAAG;AACxC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;CACpB;AAQD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAA,KAAK,GAAG,KAAK,GAAG,CAAC;QAC9E,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,eAAe,EAAE,GAAG,CAAC;QACrB,aAAa,EAAE;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;KACL;IAED,UAAU,GAAG,CAAC;QACV,UAAU,iBAAkB,SAAQ,YAAY;SAAG;KACtD;IAED,UAAU,QAAQ;QACd,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,eAiBlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAmB,mBAAmB,EAAU,MAAM,kBAAkB,CAAC;AAQhF,MAAM,WAAW,oBAAoB;CAAG;AACxC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,aAAa,EAAE;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;KACL;IAED,UAAU,QAAQ;QACd,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,qBAqBlC"}
@@ -1,22 +1,19 @@
1
- import { CustomElements, requireCustomElement } from '@rh-support/utils';
2
1
  import React, { useEffect } from 'react';
3
2
  import { Redirect, Route, Switch } from 'react-router-dom';
4
3
  import RouteUtils from '../utils/routeUtils';
5
4
  import { CaseList } from './case-list/CaseList';
5
+ import { CaseListProvider } from './case-list/CaseListContext';
6
+ import { CaseListFilterProvider } from './case-list/CaseListFilterContext';
6
7
  import { PartnerEscalation } from './escalations/PartnerEscalation';
7
- requireCustomElement([
8
- {
9
- element: CustomElements.pfeCollapse,
10
- requireCb: () => require('@patternfly/pfe-collapse'),
11
- },
12
- ]);
13
8
  export function Cases(props) {
14
9
  RouteUtils.casesBasePath = props.basePath || '';
15
10
  // Loading app metadata
16
11
  useEffect(() => { }, []);
17
12
  return (React.createElement(Switch, null,
18
13
  React.createElement(Route, { path: `${RouteUtils.casesBasePath}/list`, exact: true },
19
- React.createElement(CaseList, { routeProps: props.routeProps })),
14
+ React.createElement(CaseListProvider, null,
15
+ React.createElement(CaseListFilterProvider, null,
16
+ React.createElement(CaseList, { routeProps: props.routeProps })))),
20
17
  React.createElement(Route, { path: `/partnerEscalationRequest`, exact: true },
21
18
  React.createElement(PartnerEscalation, null)),
22
19
  React.createElement(Redirect, { to: `${RouteUtils.casesBasePath}/list` })));