@rh-support/troubleshoot 0.2.96 → 0.2.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +3 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +28 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +8 -4
- package/lib/esm/components/CaseInformation/SupportLevel.js +3 -3
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +0 -1
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +4 -2
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +3 -3
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +93 -32
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +1 -4
- package/lib/esm/scss/_pf4-overrides.scss +5 -1
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +3 -3
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +5 -4
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,eAmLzC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CoverSpinner, ErrorBoundary, OverviewContentLoader, ToastNotification, useDocumentTitle, usePrevious, } from '@rh-support/components';
|
|
2
|
-
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
2
|
+
import { GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
|
|
3
3
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
4
4
|
import { getUrlParsedParams, isValidCaseNumber } from '@rh-support/utils';
|
|
5
5
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -118,7 +118,8 @@ export default function Case(props) {
|
|
|
118
118
|
React.createElement(CaseOverview, { caseNumber: caseNumber })),
|
|
119
119
|
React.createElement(Switch, null,
|
|
120
120
|
React.createElement(Route, { path: `${path}/:activeTab?` },
|
|
121
|
-
React.createElement(CaseDetailsTabs, { basePath: url, caseNumber: caseNumber, routeProps: props.routeProps })))))
|
|
121
|
+
React.createElement(CaseDetailsTabs, { basePath: url, caseNumber: caseNumber, routeProps: props.routeProps }))))),
|
|
122
|
+
React.createElement(HostnameAwarenessModal, null))),
|
|
122
123
|
React.createElement(CaseDetailsAside, { caseNumber: caseNumber }),
|
|
123
124
|
React.createElement(CaseDetailsModals, { caseNumber: caseNumber, isSecureSupport: loggedInUsersAccount.data.secureSupport })))))));
|
|
124
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseHostname.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseHostname.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseHostname.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseHostname.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAY5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,EAAE,OAAO,CAAC;CAC3B;AAMD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,eAgKlC;kBAhKQ,YAAY;;;AAmKrB,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -7,13 +7,14 @@ 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 {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { accounts } from '@cee-eng/hydrajs';
|
|
11
|
+
import { Popover, PopoverPosition, Switch } from '@patternfly/react-core';
|
|
12
|
+
import { InlineEdit, LoadingIndicator, ToastNotification, useFetch, ValueChangedIcon } from '@rh-support/components';
|
|
13
|
+
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
13
14
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
14
15
|
import isEmpty from 'lodash/isEmpty';
|
|
15
16
|
import isEqual from 'lodash/isEqual';
|
|
16
|
-
import React, { useEffect, useState } from 'react';
|
|
17
|
+
import React, { useContext, useEffect, useState } from 'react';
|
|
17
18
|
import { Trans, useTranslation } from 'react-i18next';
|
|
18
19
|
import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
|
|
19
20
|
import { HOSTNAME_LENGTH_LIMIT } from '../../../../reducers/CaseConstNTypes';
|
|
@@ -33,6 +34,13 @@ function CaseHostname(props) {
|
|
|
33
34
|
const [hostnameState, setHostnameState] = useState(hostname);
|
|
34
35
|
const [isHostnameUpdating, setIsHostnameUpdating] = useState(false);
|
|
35
36
|
const canUseHostName = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.HOSTNAME);
|
|
37
|
+
const [isShareHostNamesChecked, setIsShareHostNamesChecked] = useState(false);
|
|
38
|
+
const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
39
|
+
const { request: fetchHostnameDefault } = useFetch(accounts.getIsSharingHostname);
|
|
40
|
+
const userOriginalHostnameValue = () => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const fetchedHostnameStatus = yield fetchHostnameDefault(accountNumber);
|
|
42
|
+
setIsShareHostNamesChecked(fetchedHostnameStatus.shareHostnameWithRHT);
|
|
43
|
+
});
|
|
36
44
|
// value changed logic to show a none local status change
|
|
37
45
|
const [localHostnameChange, setLocalHostnameChange] = useState(false);
|
|
38
46
|
const afterLocalChange = () => setLocalHostnameChange(false);
|
|
@@ -71,6 +79,21 @@ function CaseHostname(props) {
|
|
|
71
79
|
useEffect(() => {
|
|
72
80
|
setHostnameState(hostname);
|
|
73
81
|
}, [hostname]);
|
|
82
|
+
const accountNumber = loggedInUsersAccount.data.accountNumber;
|
|
83
|
+
const { request: updateShareHostnames } = useFetch(accounts.updateIsSharingHostname);
|
|
84
|
+
const onShareHostnameCheck = () => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
try {
|
|
86
|
+
yield updateShareHostnames(!isShareHostNamesChecked, accountNumber);
|
|
87
|
+
setIsShareHostNamesChecked(!isShareHostNamesChecked);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.log(error);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
const shareHostnameLabel = 'Share hostnames with Red Hat';
|
|
94
|
+
const hostNameVisibilityContent = (React.createElement("div", null,
|
|
95
|
+
React.createElement("p", null, "Share hostnames with our support professionals for a smoother and faster experience."),
|
|
96
|
+
React.createElement(Switch, { label: shareHostnameLabel, isChecked: isShareHostNamesChecked, onChange: onShareHostnameCheck })));
|
|
74
97
|
if (!canUseHostName) {
|
|
75
98
|
return React.createElement(React.Fragment, null);
|
|
76
99
|
}
|
|
@@ -80,7 +103,7 @@ function CaseHostname(props) {
|
|
|
80
103
|
return (React.createElement(React.Fragment, null,
|
|
81
104
|
React.createElement(InlineEdit, { labelProps: { htmlFor: 'case-details-hostname' }, formClassName: props.className || '', labelContent: React.createElement(React.Fragment, null,
|
|
82
105
|
React.createElement(Trans, null, "Hostname"),
|
|
83
|
-
React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localHostnameChange, value: hostname, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.hostname) })), helperContent: React.createElement(Popover, { "aria-label": "Hostname Info", position: PopoverPosition.auto, bodyContent:
|
|
106
|
+
React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localHostnameChange, value: hostname, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.hostname) })), helperContent: React.createElement(Popover, { "aria-label": "Hostname Info", position: PopoverPosition.auto, bodyContent: hostNameVisibilityContent, closeBtnAriaLabel: "Close", headerContent: 'Hostname Visibility', onShow: () => userOriginalHostnameValue() },
|
|
84
107
|
React.createElement("i", { "aria-label": "Hostname Info", className: "m-l-1 fa fa-question-circle" })), allowInlineEdit: props.inlineEditable, content: hostname, saveDisabled: isHostNameEmpty || hostnameState === hostname || isHostnameUpdating || lengthError, onSave: onSave, onCancel: onCancel, initialIsEditing: false, loadingIndicator: isHostnameUpdating ? React.createElement(LoadingIndicator, { show: isHostnameUpdating, isInline: true }) : null },
|
|
85
108
|
React.createElement("input", { type: "text", id: "case-details-hostname", className: `form-control${lengthError ? ' form-invalid' : ''}`, name: "case-details-hostname", value: hostnameState, onChange: onHostnameChange, disabled: isHostnameUpdating, "data-tracking-id": "case-details-hostname", "aria-invalid": lengthError })),
|
|
86
109
|
lengthError && (React.createElement("div", { className: "pull-top" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseOpenshiftClusterId.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"CaseOpenshiftClusterId.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,gBA2PrC"}
|
|
@@ -54,7 +54,9 @@ export function CaseOpenshiftClusterId() {
|
|
|
54
54
|
if (!openshiftClusterID || getIsClusterIdInvalid(openshiftClusterID))
|
|
55
55
|
return;
|
|
56
56
|
let openshiftClusterVersion;
|
|
57
|
-
if (clusterDetails &&
|
|
57
|
+
if (clusterDetails &&
|
|
58
|
+
clusterDetails.external_cluster_id === openshiftClusterID &&
|
|
59
|
+
clusterDetails.openshift_version) {
|
|
58
60
|
openshiftClusterVersion = clusterDetails.openshift_version;
|
|
59
61
|
}
|
|
60
62
|
else {
|
|
@@ -70,7 +72,7 @@ export function CaseOpenshiftClusterId() {
|
|
|
70
72
|
const hasCluster = yield isClusterIdEnabledForProduct(product, (_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult);
|
|
71
73
|
setShowClusterId(hasCluster);
|
|
72
74
|
// when product changes from a product with cluster to a product without cluster, reset the clusterId
|
|
73
|
-
const isResetClusterID =
|
|
75
|
+
const isResetClusterID = !hasCluster || isOpenShiftV3;
|
|
74
76
|
if (isResetClusterID) {
|
|
75
77
|
const caseDetails = {
|
|
76
78
|
openshiftClusterID: '',
|
|
@@ -79,6 +81,8 @@ export function CaseOpenshiftClusterId() {
|
|
|
79
81
|
};
|
|
80
82
|
yield clusterIdUpdate(caseDetails, false);
|
|
81
83
|
setCaseDetails(caseDispatch, caseDetails);
|
|
84
|
+
setLocalOpenshiftClusterIDState('');
|
|
85
|
+
clusterStateReset();
|
|
82
86
|
}
|
|
83
87
|
});
|
|
84
88
|
if ((((_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) || []).length) {
|
|
@@ -89,7 +93,7 @@ export function CaseOpenshiftClusterId() {
|
|
|
89
93
|
// user may change product and version we need to reset internal state
|
|
90
94
|
// context api state will be reset on parent component each time user changes product and version
|
|
91
95
|
useEffect(() => {
|
|
92
|
-
clusterStateReset();
|
|
96
|
+
clusterStateReset();
|
|
93
97
|
}, [product, version]);
|
|
94
98
|
/**
|
|
95
99
|
* Hook to make sure that if cluster id comes from session or someother source
|
|
@@ -125,7 +129,7 @@ export function CaseOpenshiftClusterId() {
|
|
|
125
129
|
}
|
|
126
130
|
});
|
|
127
131
|
const onClusterIdSave = (selectedCluster) => __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
const selectedClusterId = selectedCluster === null || selectedCluster === void 0 ? void 0 : selectedCluster.
|
|
132
|
+
const selectedClusterId = selectedCluster === null || selectedCluster === void 0 ? void 0 : selectedCluster.external_cluster_id;
|
|
129
133
|
if (isEmpty(selectedClusterId))
|
|
130
134
|
return;
|
|
131
135
|
setLocalOpenshiftClusterIDState(selectedClusterId);
|
|
@@ -72,11 +72,11 @@ function SupportLevel(props) {
|
|
|
72
72
|
React.createElement(Trans, null, "Support level"),
|
|
73
73
|
' ',
|
|
74
74
|
!isEmpty(ownersEntitlements.data) && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
|
|
75
|
-
React.createElement(Popover, { "aria-label": "Support Level info", position: PopoverPosition.top, bodyContent: React.createElement(
|
|
76
|
-
React.createElement("
|
|
75
|
+
React.createElement(Popover, { "aria-label": "Support Level info", position: PopoverPosition.top, bodyContent: React.createElement("p", null,
|
|
76
|
+
React.createElement(Trans, { i18nKey: "i18ProductionSupportServiceLevelAgreement" },
|
|
77
77
|
"Learn more about our",
|
|
78
78
|
' ',
|
|
79
|
-
React.createElement("a", { href: "/support/offerings/production/sla
|
|
79
|
+
React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
|
|
80
80
|
React.createElement("i", { "aria-label": "Support Level info", className: "fa fa-question-circle" })),
|
|
81
81
|
React.createElement(Dropdown, { id: "open-case-support-level", name: "open-case-support-level", placeholder: "Select", title: `Select Support Level`, list: getSlaList(), selectedItem: toOption({ slaProcessId: selectedSla }, { labelKey: 'slaProcessId' }), disabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isLoadingList: ownersEntitlements.isFetching, isInValid: isSupportLevelInValid, required: true, onChange: onEntitlementChange, onOuterClick: validateSupportLevel, "data-tracking-id": "open-case-support-level" }),
|
|
82
82
|
isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoClusterIDReasonSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/NoClusterIDReasonSelector.tsx"],"names":[],"mappings":"AAcA,UAAU,MAAM;IACZ,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4BAA4B,EAAE,MAAM,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AA0BD,QAAA,MAAM,yBAAyB,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"NoClusterIDReasonSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/NoClusterIDReasonSelector.tsx"],"names":[],"mappings":"AAcA,UAAU,MAAM;IACZ,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4BAA4B,EAAE,MAAM,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AA0BD,QAAA,MAAM,yBAAyB,UAAW,MAAM,gBAqI/C,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenShiftClusterId.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenShiftClusterId.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,oBAAoB,mBAShC,CAAC;AAEF,eAAO,MAAM,uBAAuB,mBAInC,CAAC;AAEF,eAAO,MAAM,4BAA4B,mBAKxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAIjC,CAAC;AAEF,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"OpenShiftClusterId.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenShiftClusterId.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,oBAAoB,mBAShC,CAAC;AAEF,eAAO,MAAM,uBAAuB,mBAInC,CAAC;AAEF,eAAO,MAAM,4BAA4B,mBAKxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAIjC,CAAC;AAEF,wBAAgB,kBAAkB,gBA6RjC"}
|
|
@@ -96,7 +96,9 @@ export function OpenShiftClusterId() {
|
|
|
96
96
|
if (!openshiftClusterID || getIsClusterIdInvalid(openshiftClusterID))
|
|
97
97
|
return;
|
|
98
98
|
let openshiftClusterVersion;
|
|
99
|
-
if (clusterDetails &&
|
|
99
|
+
if (clusterDetails &&
|
|
100
|
+
clusterDetails.external_cluster_id === openshiftClusterID &&
|
|
101
|
+
clusterDetails.openshift_version) {
|
|
100
102
|
openshiftClusterVersion = clusterDetails.openshift_version;
|
|
101
103
|
}
|
|
102
104
|
else {
|
|
@@ -162,7 +164,7 @@ export function OpenShiftClusterId() {
|
|
|
162
164
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
163
165
|
}, [v3ClusterName, noClusterIdReason]);
|
|
164
166
|
const onClusterIdStateUpdate = (selectedCluster) => {
|
|
165
|
-
const selectedId = selectedCluster.
|
|
167
|
+
const selectedId = selectedCluster.external_cluster_id;
|
|
166
168
|
if (isEmpty(selectedId))
|
|
167
169
|
return;
|
|
168
170
|
resetClusterData();
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IClusterSubscription } from '@cee-eng/hydrajs/@types/models/cloud';
|
|
2
2
|
import { IDClassNameProps } from '@rh-support/types/shared';
|
|
3
3
|
interface IProps extends IDClassNameProps {
|
|
4
4
|
openshiftClusterIDState: string;
|
|
5
|
-
onClusterIdStateUpdate: (cluster: Partial<
|
|
5
|
+
onClusterIdStateUpdate: (cluster: Partial<IClusterSubscription>, value?: string) => void;
|
|
6
6
|
isClusterIdInvalid: boolean;
|
|
7
7
|
clusterIdDropdownFormInstructions?: JSX.Element;
|
|
8
8
|
onClusterClear: () => void;
|
|
9
9
|
isV4: boolean;
|
|
10
10
|
isDisabled?: boolean;
|
|
11
11
|
}
|
|
12
|
-
declare const fetchClusterIdDetails: (clusterId: string) => Promise<ICluster>;
|
|
12
|
+
declare const fetchClusterIdDetails: (clusterId: string) => Promise<import("@cee-eng/hydrajs/@types/models/cloud").ICluster>;
|
|
13
13
|
declare function OpenshiftDropdownV4(props: IProps): JSX.Element;
|
|
14
14
|
declare namespace OpenshiftDropdownV4 {
|
|
15
15
|
var defaultProps: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAgC,MAAM,sCAAsC,CAAC;AAE1G,OAAO,EAAE,gBAAgB,EAAuB,MAAM,0BAA0B,CAAC;AAYjF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD,QAAA,MAAM,qBAAqB,cAAqB,MAAM,qEASrD,CAAC;AAeF,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,eAgTzC;kBAhTQ,mBAAmB;;;AAmT5B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -7,12 +7,13 @@ 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 {
|
|
11
|
-
import {
|
|
12
|
-
import { useFetch } from '@rh-support/components';
|
|
10
|
+
import { cloud } from '@cee-eng/hydrajs';
|
|
11
|
+
import { Checkbox, Divider, Select, SelectOption, SelectVariant } from '@patternfly/react-core';
|
|
13
12
|
import find from 'lodash/find';
|
|
14
13
|
import groupBy from 'lodash/groupBy';
|
|
15
14
|
import isEmpty from 'lodash/isEmpty';
|
|
15
|
+
import map from 'lodash/map';
|
|
16
|
+
import merge from 'lodash/merge';
|
|
16
17
|
import React, { useEffect, useRef, useState } from 'react';
|
|
17
18
|
import { Trans, useTranslation } from 'react-i18next';
|
|
18
19
|
import { getDisplayNameForCluster } from '../../utils/caseOpenshiftClusterIdUtils';
|
|
@@ -24,19 +25,19 @@ const defaultProps = {
|
|
|
24
25
|
};
|
|
25
26
|
const fetchClusterIdDetails = (clusterId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
27
|
try {
|
|
27
|
-
const clustersResponse = yield getAccountClusters({
|
|
28
|
+
const clustersResponse = yield cloud.getAccountClusters({
|
|
28
29
|
order: 'display_name asc',
|
|
29
|
-
search: `external_id ILIKE
|
|
30
|
+
search: `external_id ILIKE '%${clusterId}%'`,
|
|
30
31
|
});
|
|
31
32
|
const clusterDetails = (clustersResponse.items || []).find((item) => item.external_id === clusterId);
|
|
32
33
|
return clusterDetails;
|
|
33
34
|
}
|
|
34
35
|
catch (e) { }
|
|
35
36
|
});
|
|
36
|
-
const createState = (
|
|
37
|
+
const createState = (external_cluster_id, display_name) => {
|
|
37
38
|
return {
|
|
38
39
|
display_name,
|
|
39
|
-
|
|
40
|
+
external_cluster_id,
|
|
40
41
|
toString: () => display_name || '',
|
|
41
42
|
compareTo: function (value) {
|
|
42
43
|
const displayName = this.toString().toLowerCase();
|
|
@@ -47,16 +48,16 @@ const createState = (external_id, display_name) => {
|
|
|
47
48
|
};
|
|
48
49
|
function OpenshiftDropdownV4(props) {
|
|
49
50
|
const { t } = useTranslation();
|
|
51
|
+
const OLD_API_PER_PAGE_GET_ALL = 5000;
|
|
50
52
|
const PER_PAGE = 200;
|
|
51
|
-
const { request: getAccountClustersRequest, isFetching: isFetchingClusters } = useFetch(getAccountClusters, {
|
|
52
|
-
propgateErrors: true,
|
|
53
|
-
});
|
|
54
53
|
const [clustersRawResponse, setClustersRawResponse] = useState([]);
|
|
55
54
|
const abortControllerRef = useRef(undefined);
|
|
56
55
|
const [clustersSelectOptions, setClustersSelectOptions] = useState([]);
|
|
57
56
|
const [isOpen, setIsOpen] = useState(false);
|
|
58
57
|
const [validated, setValidated] = useState('default');
|
|
59
58
|
const [inputVal, setInputVal] = useState('');
|
|
59
|
+
const [showArchivedClusters, setShowArchivedClusters] = useState(false);
|
|
60
|
+
const [isFetchingClusters, setIsFetchingClusters] = useState(false);
|
|
60
61
|
// gets a cluster id and returns display name
|
|
61
62
|
const getDisplayNameById = (clusters, id) => {
|
|
62
63
|
if (isEmpty(id))
|
|
@@ -65,7 +66,7 @@ function OpenshiftDropdownV4(props) {
|
|
|
65
66
|
return t("I don't have my Cluster ID");
|
|
66
67
|
if (id === 'v3-cluster')
|
|
67
68
|
return t('The case is for a v3 cluster');
|
|
68
|
-
const cluster = find(clusters, (o) => o.
|
|
69
|
+
const cluster = find(clusters, (o) => o.external_cluster_id === id);
|
|
69
70
|
return isEmpty(cluster) ? id : getDisplayNameForCluster(cluster);
|
|
70
71
|
};
|
|
71
72
|
const onDropdownClear = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -75,15 +76,24 @@ function OpenshiftDropdownV4(props) {
|
|
|
75
76
|
});
|
|
76
77
|
const onToggle = (isOpen) => setIsOpen(isOpen);
|
|
77
78
|
const onViewMoreClick = () => __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
const fetchedClusters = yield fetchAccountClusters();
|
|
79
|
+
const fetchedClusters = yield fetchAccountClusters(inputVal);
|
|
79
80
|
const clusterResponse = [...clustersRawResponse, ...fetchedClusters.items];
|
|
80
81
|
setClustersRawResponse(clusterResponse);
|
|
81
82
|
setClustersSelectOptions(getClusterOptions(clusterResponse));
|
|
82
83
|
});
|
|
83
84
|
const onSelect = (event, selectedCluster) => __awaiter(this, void 0, void 0, function* () {
|
|
84
85
|
setInputVal('');
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
if (event.target.tagName !== 'BUTTON') {
|
|
87
|
+
// checkbox is clicked
|
|
88
|
+
setShowArchivedClusters(!showArchivedClusters);
|
|
89
|
+
// reset
|
|
90
|
+
props.onClusterClear();
|
|
91
|
+
setClustersRawResponse([]);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
props.onClusterIdStateUpdate(selectedCluster);
|
|
95
|
+
setIsOpen(false);
|
|
96
|
+
}
|
|
87
97
|
});
|
|
88
98
|
const getClusterOptions = (clusters) => {
|
|
89
99
|
const clustersResponseGrouped = groupBy(clusters, 'dns.base_domain') || [];
|
|
@@ -101,22 +111,28 @@ function OpenshiftDropdownV4(props) {
|
|
|
101
111
|
domain !== 'undefined' &&
|
|
102
112
|
clusterOptions.push(React.createElement(SelectOption, { isDisabled: true, className: "pf-u-font-weight-bold pf-u-color-400", value: createState(domain, domain), key: domain + index }));
|
|
103
113
|
clustersResponseGrouped[domain].forEach((cluster, i) => {
|
|
104
|
-
clusterOptions.push(React.createElement(SelectOption, { key:
|
|
114
|
+
clusterOptions.push(React.createElement(SelectOption, { key: cluster.external_cluster_id, value: createState(cluster.external_cluster_id, cluster.display_name) }));
|
|
105
115
|
});
|
|
106
116
|
clusterOptions.push(React.createElement(Divider, { component: "div", key: index + domain }));
|
|
107
117
|
});
|
|
108
118
|
return [
|
|
109
|
-
|
|
119
|
+
React.createElement(SelectOption, { key: 'show-hide-archived-clusters', inputId: "check-box" },
|
|
120
|
+
React.createElement(Checkbox, { label: t('Show archived clusters'), key: "show-archived-clusters", "aria-label": t('Show archived clusters'), id: "show-archived-clusters", "data-tracking-id": "show-hide-archived-clusters", isChecked: showArchivedClusters })),
|
|
121
|
+
React.createElement(Divider, { component: "div", key: 'cluster-id-options-divider-e' }),
|
|
122
|
+
React.createElement(SelectOption, { key: 'dont-have-id', value: createState('dont-have-id', t("I don't have my Cluster ID")) }),
|
|
110
123
|
...(!props.isV4
|
|
111
124
|
? [
|
|
112
125
|
React.createElement(SelectOption, { key: 'v3-cluster', value: createState('v3-cluster', t('The case is for a v3 cluster')) }),
|
|
113
126
|
]
|
|
114
127
|
: []),
|
|
115
|
-
React.createElement(
|
|
128
|
+
...(clusterOptions.length !== 0 ? [React.createElement(Divider, { component: "div", key: 'cluster-id-options-divider' })] : []),
|
|
129
|
+
...clusterOptions,
|
|
116
130
|
];
|
|
117
131
|
};
|
|
118
132
|
const fetchAccountClusters = (search = '') => __awaiter(this, void 0, void 0, function* () {
|
|
133
|
+
var _a, _b;
|
|
119
134
|
const page = Math.floor(clustersRawResponse.length / PER_PAGE) + 1;
|
|
135
|
+
setIsFetchingClusters(true);
|
|
120
136
|
try {
|
|
121
137
|
if (abortControllerRef.current !== undefined) {
|
|
122
138
|
// Cancel the previous request
|
|
@@ -125,26 +141,71 @@ function OpenshiftDropdownV4(props) {
|
|
|
125
141
|
// recreate a new AbortController for each call
|
|
126
142
|
let controller = new AbortController();
|
|
127
143
|
abortControllerRef.current = controller;
|
|
144
|
+
let clustersResponse;
|
|
128
145
|
// query language: https://github.com/yaacov/tree-search-language
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
// old api has dns info but we cannot exclude archived clusters
|
|
147
|
+
// new api doesn't have dns info but we can exclude archived clusters
|
|
148
|
+
if (showArchivedClusters) {
|
|
149
|
+
// call old api
|
|
150
|
+
clustersResponse = yield cloud.getAccountClusters({
|
|
151
|
+
order: 'display_name asc',
|
|
152
|
+
page,
|
|
153
|
+
size: PER_PAGE,
|
|
154
|
+
search: `external_id ILIKE '%${search}%' OR display_name ILIKE '%${search}%' OR dns.base_domain ILIKE '%${search}%'`,
|
|
155
|
+
}, controller.signal);
|
|
156
|
+
clustersResponse = clustersResponse.items;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// call old api get all clusters and call new api get limitted number of clusters
|
|
160
|
+
// then add dns info to the new api response
|
|
161
|
+
const clustersResponses = yield Promise.allSettled([
|
|
162
|
+
cloud.getAccountClustersSubscription({
|
|
163
|
+
order: 'display_name asc',
|
|
164
|
+
page,
|
|
165
|
+
size: PER_PAGE,
|
|
166
|
+
search: `${showArchivedClusters ? '' : "status!='Archived' AND "} (external_cluster_id ILIKE '%${search}%' OR display_name ILIKE '%${search}%')`,
|
|
167
|
+
fields: 'external_cluster_id,display_name,status,metrics.openshift_version',
|
|
168
|
+
}, controller.signal),
|
|
169
|
+
cloud.getAccountClusters({
|
|
170
|
+
order: 'display_name asc',
|
|
171
|
+
page: 1,
|
|
172
|
+
size: OLD_API_PER_PAGE_GET_ALL,
|
|
173
|
+
search: `external_id ILIKE '%${search}%' OR display_name ILIKE '%${search}%' OR dns.base_domain ILIKE '%${search}%'`,
|
|
174
|
+
}, controller.signal),
|
|
175
|
+
]);
|
|
176
|
+
if (clustersResponses[0].status === 'fulfilled' && clustersResponses[1].status === 'fulfilled') {
|
|
177
|
+
const newApi = ((_a = clustersResponses[0].value) === null || _a === void 0 ? void 0 : _a.items) || [];
|
|
178
|
+
const oldApi = ((_b = clustersResponses[1].value) === null || _b === void 0 ? void 0 : _b.items) || [];
|
|
179
|
+
clustersResponse = map(newApi, function (item) {
|
|
180
|
+
return merge(item, find(oldApi, { external_id: item.external_cluster_id }));
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else if (clustersResponses[0].status === 'fulfilled' && clustersResponses[1].status === 'rejected') {
|
|
184
|
+
clustersResponse = clustersResponses[0].value.items;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
clustersResponse = [];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
const items = clustersResponse.map((item) => {
|
|
191
|
+
var _a, _b;
|
|
192
|
+
return ({
|
|
193
|
+
display_name: getDisplayNameForCluster(item),
|
|
194
|
+
external_cluster_id: item.external_cluster_id || item.external_id,
|
|
195
|
+
openshift_version: item.openshift_version || ((_b = (_a = item === null || item === void 0 ? void 0 : item.metrics) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.openshift_version) || '',
|
|
196
|
+
dns: item.dns || {},
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
setIsFetchingClusters(false);
|
|
140
200
|
return {
|
|
141
201
|
items,
|
|
142
|
-
totalResult: clustersResponse.
|
|
143
|
-
page
|
|
202
|
+
totalResult: clustersResponse.length,
|
|
203
|
+
page,
|
|
144
204
|
};
|
|
145
205
|
}
|
|
146
206
|
catch (e) {
|
|
147
207
|
// silently fails
|
|
208
|
+
setIsFetchingClusters(false);
|
|
148
209
|
return { items: [], totalResult: 0, page: 0 };
|
|
149
210
|
}
|
|
150
211
|
});
|
|
@@ -154,7 +215,7 @@ function OpenshiftDropdownV4(props) {
|
|
|
154
215
|
useEffect(() => {
|
|
155
216
|
let isUnmounted = false;
|
|
156
217
|
const fetchClusters = () => __awaiter(this, void 0, void 0, function* () {
|
|
157
|
-
const fetchedClusters = yield fetchAccountClusters();
|
|
218
|
+
const fetchedClusters = yield fetchAccountClusters(inputVal);
|
|
158
219
|
if (!isUnmounted) {
|
|
159
220
|
setClustersSelectOptions(getClusterOptions(fetchedClusters.items));
|
|
160
221
|
setClustersRawResponse(fetchedClusters.items);
|
|
@@ -165,7 +226,7 @@ function OpenshiftDropdownV4(props) {
|
|
|
165
226
|
isUnmounted = true;
|
|
166
227
|
};
|
|
167
228
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
168
|
-
}, [props.isV4]);
|
|
229
|
+
}, [props.isV4, showArchivedClusters]);
|
|
169
230
|
useEffect(() => {
|
|
170
231
|
if (props.isClusterIdInvalid) {
|
|
171
232
|
setValidated('error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,eAqXtD"}
|
|
@@ -293,10 +293,7 @@ export function GlobalTroubleshootEffects(props) {
|
|
|
293
293
|
const previousActiveSessionId = usePrevious(activeSessionId);
|
|
294
294
|
useEffect(() => {
|
|
295
295
|
var _a;
|
|
296
|
-
if (isEmpty(product) ||
|
|
297
|
-
isEmpty(version) ||
|
|
298
|
-
isEmpty(previousVersion) ||
|
|
299
|
-
activeSessionId !== previousActiveSessionId)
|
|
296
|
+
if (isEmpty(product) || isEmpty(version) || activeSessionId !== previousActiveSessionId)
|
|
300
297
|
return;
|
|
301
298
|
// we need to reset openshift cluster states only when major version is different
|
|
302
299
|
const oldMajorVersion = previousVersion && getVersion(previousVersion).major;
|
|
@@ -301,6 +301,10 @@ section.grid-aside-content pfe-accordion {
|
|
|
301
301
|
--pfe-accordion--FontSize--header: 16px;
|
|
302
302
|
--pfe-accordion--FontWeight--header: 600;
|
|
303
303
|
}
|
|
304
|
+
|
|
305
|
+
div.pf-c-modal-box__body label.pf-c-switch {
|
|
306
|
+
padding: 1rem;
|
|
307
|
+
}
|
|
304
308
|
// override added padding
|
|
305
309
|
div.pf-c-alert__description div.ea-rule p a.pf-c-button {
|
|
306
310
|
padding: 0;
|
|
@@ -310,4 +314,4 @@ div.pf-c-alert__description div.ea-rule p a.pf-c-button {
|
|
|
310
314
|
div pfe-accordion {
|
|
311
315
|
--pfe-accordion--FontSize--header: 16px;
|
|
312
316
|
--pfe-accordion--FontWeight--header: 600;
|
|
313
|
-
}
|
|
317
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { IClusterSubscriptionExtended } from '@cee-eng/hydrajs/@types/models/cloud';
|
|
1
2
|
import { ISEProduct } from '@cee-eng/hydrajs/@types/models/product';
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const getDisplayNameForCluster: (cluster: Partial<ICluster>) => string;
|
|
3
|
+
export declare const getDisplayNameById: (clusters: Partial<IClusterSubscriptionExtended>[], id: string) => string;
|
|
4
|
+
export declare const getDisplayNameForCluster: (cluster: Partial<IClusterSubscriptionExtended>) => string;
|
|
5
5
|
export declare const invalidGuidHelperText = "Please enter a valid Cluster ID (For example: d3aa88e2-c754-41e0-8ba6-4198a34aa0a2)";
|
|
6
6
|
export declare const isClusterIdEnabledForProduct: (selectedProduct: string, allProducts: Partial<ISEProduct>[]) => boolean;
|
|
7
7
|
export declare const isOpenShiftV3Product: (product: string, pcmConfig: any) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caseOpenshiftClusterIdUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseOpenshiftClusterIdUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"caseOpenshiftClusterIdUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseOpenshiftClusterIdUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAMpE,eAAO,MAAM,kBAAkB,aAAc,QAAQ,4BAA4B,CAAC,EAAE,MAAM,MAAM,WAI/F,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAAa,QAAQ,4BAA4B,CAAC,WAKtF,CAAC;AAEF,eAAO,MAAM,qBAAqB,wFACuD,CAAC;AAE1F,eAAO,MAAM,4BAA4B,oBAAqB,MAAM,eAAe,QAAQ,UAAU,CAAC,EAAE,YAIvG,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,4BAenD,CAAC;AAEF,eAAO,MAAM,qBAAqB,sCACkC,CAAC"}
|
|
@@ -5,15 +5,16 @@ import isEmpty from 'lodash/isEmpty';
|
|
|
5
5
|
export const getDisplayNameById = (clusters, id) => {
|
|
6
6
|
if (isEmpty(id))
|
|
7
7
|
return '';
|
|
8
|
-
const cluster = find(clusters, (o) => o.
|
|
8
|
+
const cluster = find(clusters, (o) => o.external_cluster_id === id);
|
|
9
9
|
return isEmpty(cluster) ? `${id}` : cluster.display_name;
|
|
10
10
|
};
|
|
11
11
|
export const getDisplayNameForCluster = (cluster) => {
|
|
12
12
|
if (isEmpty(cluster))
|
|
13
13
|
return '';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const clusterId = (cluster === null || cluster === void 0 ? void 0 : cluster.external_cluster_id) || cluster.external_id;
|
|
15
|
+
if (isEmpty(cluster.display_name) || cluster.display_name === clusterId)
|
|
16
|
+
return clusterId;
|
|
17
|
+
return `${clusterId} <${cluster.display_name}>`;
|
|
17
18
|
};
|
|
18
19
|
export const invalidGuidHelperText = 'Please enter a valid Cluster ID (For example: d3aa88e2-c754-41e0-8ba6-4198a34aa0a2)';
|
|
19
20
|
export const isClusterIdEnabledForProduct = (selectedProduct, allProducts) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.99",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"lib/**/*"
|
|
27
27
|
],
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@cee-eng/hydrajs": "4.
|
|
29
|
+
"@cee-eng/hydrajs": "4.9.1",
|
|
30
30
|
"@cee-eng/ui-toolkit": "1.1.6",
|
|
31
31
|
"@patternfly/patternfly": "4.185.1",
|
|
32
32
|
"@patternfly/pfe-accordion": "1.12.3",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"react-virtualized": "^9.21.2"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@cee-eng/hydrajs": "4.
|
|
66
|
+
"@cee-eng/hydrajs": "4.9.1",
|
|
67
67
|
"@cee-eng/ui-toolkit": "1.1.6",
|
|
68
68
|
"@patternfly/patternfly": "4.185.1",
|
|
69
69
|
"@patternfly/pfe-accordion": "1.12.3",
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
"@patternfly/react-core": "4.202.16",
|
|
74
74
|
"@progress/kendo-drawing": "^1.6.0",
|
|
75
75
|
"@progress/kendo-react-pdf": "^3.12.0",
|
|
76
|
-
"@rh-support/api": "0.3.
|
|
77
|
-
"@rh-support/components": "1.1.
|
|
78
|
-
"@rh-support/react-context": "0.2.
|
|
76
|
+
"@rh-support/api": "0.3.15",
|
|
77
|
+
"@rh-support/components": "1.1.59",
|
|
78
|
+
"@rh-support/react-context": "0.2.59",
|
|
79
79
|
"@rh-support/types": "0.2.0",
|
|
80
|
-
"@rh-support/user-permissions": "0.2.
|
|
81
|
-
"@rh-support/utils": "0.2.
|
|
80
|
+
"@rh-support/user-permissions": "0.2.47",
|
|
81
|
+
"@rh-support/utils": "0.2.36",
|
|
82
82
|
"@types/react-redux": "^7.1.12",
|
|
83
83
|
"@types/redux": "^3.6.0",
|
|
84
84
|
"@webcomponents/webcomponentsjs": "^2.2.10",
|
|
@@ -143,5 +143,5 @@
|
|
|
143
143
|
"not ie <= 11",
|
|
144
144
|
"not op_mini all"
|
|
145
145
|
],
|
|
146
|
-
"gitHead": "
|
|
146
|
+
"gitHead": "f72a63763d2616389844f8305e74adaf9b3c1624"
|
|
147
147
|
}
|