@rh-support/troubleshoot 2.6.118 → 2.6.120

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 (91) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.js +1 -1
  2. package/lib/esm/components/AccountInfo/css/accountSelector.css +3 -2
  3. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/Case.js +1 -1
  5. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
  7. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +2 -4
  9. package/lib/esm/components/CaseEditView/CaseOverview/index.js +2 -2
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +4 -2
  13. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +2 -1
  15. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +2 -3
  17. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +13 -33
  18. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +3 -3
  19. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +1 -1
  20. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.js +1 -1
  21. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  22. package/lib/esm/components/CaseInformation/CaseGroup.js +11 -1
  23. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  24. package/lib/esm/components/CaseInformation/CaseInformation.js +4 -4
  25. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  26. package/lib/esm/components/CaseInformation/Description.js +1 -3
  27. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  28. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  29. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  30. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  31. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  32. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +12 -6
  33. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  34. package/lib/esm/components/IdeaInformation/IdeaInformation.js +4 -4
  35. package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
  36. package/lib/esm/components/OpenCase/OpenCase.js +8 -2
  37. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  38. package/lib/esm/components/ProductSelector/AllProductsSelector.js +18 -6
  39. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  40. package/lib/esm/components/ProductSelector/ProductSelector.js +12 -5
  41. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +2 -0
  42. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  43. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +16 -13
  44. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  45. package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -4
  46. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  47. package/lib/esm/components/Recommendations/Recommendations.js +38 -38
  48. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  49. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  50. package/lib/esm/components/Review/Review.js +5 -1
  51. package/lib/esm/components/TroubleshootSection/AskRedHat.js +1 -1
  52. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -9
  53. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  54. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +44 -150
  55. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  56. package/lib/esm/components/shared/useIsSectionValid.js +71 -32
  57. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  58. package/lib/esm/components/wizardLayout/WizardAside.js +9 -18
  59. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  60. package/lib/esm/components/wizardLayout/WizardMain.js +64 -110
  61. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  62. package/lib/esm/components/wizardLayout/WizardNavigation.js +53 -59
  63. package/lib/esm/css/AskRedHat.css +2 -9
  64. package/lib/esm/css/app.css +1 -1
  65. package/lib/esm/hooks/useWizard.d.ts +0 -4
  66. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  67. package/lib/esm/hooks/useWizard.js +6 -20
  68. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +2 -17
  69. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
  70. package/lib/esm/reducers/AIResponseConstNTypes.js +0 -3
  71. package/lib/esm/reducers/AIResponseReducer.d.ts +0 -2
  72. package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
  73. package/lib/esm/reducers/AIResponseReducer.js +0 -17
  74. package/lib/esm/reducers/CaseConstNTypes.js +3 -3
  75. package/lib/esm/reducers/CaseDiscussionTabReducer.js +1 -1
  76. package/lib/esm/reducers/CaseHelpers.d.ts +8 -6
  77. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  78. package/lib/esm/reducers/CaseHelpers.js +20 -10
  79. package/lib/esm/reducers/CaseReducer.d.ts +1 -0
  80. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  81. package/lib/esm/reducers/CaseReducer.js +37 -2
  82. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  83. package/lib/esm/reducers/RouteConstNTypes.js +1 -0
  84. package/lib/esm/scss/_pf-overrides.scss +23 -2
  85. package/package.json +7 -9
  86. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts +0 -3
  87. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts.map +0 -1
  88. package/lib/esm/components/Suggestions/TopContentSidebar.js +0 -26
  89. package/lib/esm/hooks/useAB.d.ts +0 -22
  90. package/lib/esm/hooks/useAB.d.ts.map +0 -1
  91. package/lib/esm/hooks/useAB.js +0 -37
@@ -8,46 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import '@ifd-ui/ask-redhat-core/ask-redhat-core.css';
11
- import { Env, pcm } from '@cee-eng/hydrajs';
12
- import { ARHEventName, AskRedHatChat, setAuthToken, } from '@ifd-ui/ask-redhat-core';
11
+ import { Env } from '@cee-eng/hydrajs';
12
+ import { AskRedHatChat, setAuthToken } from '@ifd-ui/ask-redhat-core';
13
13
  import { Button, Card, CardBody, CardHeader, Tooltip } from '@patternfly/react-core';
14
14
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
15
15
  import { ErrorBoundary, LoadingDots } from '@rh-support/components';
16
16
  import { PreviousCaseTypes } from '@rh-support/utils';
17
- import i18next from 'i18next';
18
17
  import isEmpty from 'lodash/isEmpty';
19
18
  import isEqual from 'lodash/isEqual';
20
- import React, { useCallback, useContext, useEffect, useRef } from 'react';
19
+ import React, { useContext, useRef } from 'react';
21
20
  import { Trans, useTranslation } from 'react-i18next';
22
- import { useAIResponseDispatch, useAIResponseState } from '../../context/AIResponseContext';
21
+ import { useAIResponseState } from '../../context/AIResponseContext';
23
22
  import { useCaseSelector } from '../../context/CaseContext';
24
23
  import { RouteContext } from '../../context/RouteContext';
25
- import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
26
24
  import { TCStateContext } from '../../context/TopContentContext';
27
- import { useAB } from '../../hooks/useAB';
28
- import { setHasChunkReceived, updateConversationId } from '../../reducers/AIResponseReducer';
29
25
  import { appSourceId_ARH, excludedCaseTypesforARH } from '../../reducers/CaseConstNTypes';
30
- import { AppRouteSections } from '../../reducers/RouteConstNTypes';
31
- import { createOrUpdateSessionResources } from '../../reducers/SessionRestoreReducer';
32
26
  import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
33
27
  import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
34
28
  import InsightsResults from '../Recommendations/InsightsResults';
35
- import Recommendations from '../Recommendations/Recommendations';
36
29
  import Suggestions from '../Suggestions/Suggestions';
37
- import { generateAIQuestion } from '../wizardLayout/WizardMain';
38
30
  import { AskRedHat } from './AskRedHat';
39
- const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
40
- const getSessResFromARHSource = (source, visibilityStatus, rank = 1) => ({
41
- visibilityStatus,
42
- resourceEntityId: source.link || source.url,
43
- url: source.link || source.url,
44
- rank,
45
- });
46
- const getSessResFromAISources = (sources, visibilityStatus) => {
47
- if (!sources || sources.length === 0)
48
- return;
49
- return sources.map((source, index) => getSessResFromARHSource(source, visibilityStatus, index + 1));
50
- };
51
31
  const defaultProps = {
52
32
  initialIsEditing: false,
53
33
  required: false,
@@ -55,28 +35,18 @@ const defaultProps = {
55
35
  autoFocus: false,
56
36
  hideSaveCancel: false,
57
37
  aiServicesAvailable: false,
58
- haveARHFieldsChanged: false,
59
38
  };
60
39
  function TroubleshootSection(props) {
61
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
40
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
62
41
  const { t } = useTranslation();
63
- const { isVariationA } = useAB();
64
- const { isAIChatMode } = props;
65
- const lastDispatchedConversationIdRef = useRef(null);
66
- const sourcesRef = useRef(null);
67
- const clickedSourcesRef = useRef(new Set());
68
- const engagementTimerRef = useRef(null);
69
- const hasInteractionHappenedRef = useRef(false);
42
+ const { aiServicesAvailable, isAIChatMode, setIsAIChatMode, onChatWithAIClick } = props;
43
+ const refetchControlReady = useRef(null);
70
44
  const { topContentState: { topContent }, } = useContext(TCStateContext);
71
- const { routeState: { isCaseCreate, activeSection }, } = useContext(RouteContext);
72
- const { caseDetails } = useCaseSelector((state) => ({
73
- caseDetails: state.caseDetails,
74
- }), isEqual);
45
+ const { routeState: { isCaseCreate }, } = useContext(RouteContext);
75
46
  const aiResponseState = useAIResponseState();
76
- const aiResponseDispatch = useAIResponseDispatch();
77
47
  const session = window === null || window === void 0 ? void 0 : window.sessionjs;
78
48
  const keycloakSession = (_b = (_a = session === null || session === void 0 ? void 0 : session._state) === null || _a === void 0 ? void 0 : _a.keycloak) !== null && _b !== void 0 ? _b : null;
79
- const { product, version, summary, issue, isCreatingCase, caseType } = useCaseSelector((state) => ({
49
+ const { product, version, isCreatingCase, caseType } = useCaseSelector((state) => ({
80
50
  product: state.caseDetails.product,
81
51
  version: state.caseDetails.version,
82
52
  summary: state.caseDetails.summary,
@@ -84,69 +54,35 @@ function TroubleshootSection(props) {
84
54
  caseType: state.caseDetails.caseType,
85
55
  issue: state.caseDetails.issue,
86
56
  }), isEqual);
87
- const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
88
- const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
89
57
  const canShowTopProducts = isEmpty(product);
90
58
  const canShowTopContent = !canShowTopProducts && ((_c = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _c === void 0 ? void 0 : _c.length) > 0;
91
59
  const isNotAnIdea = caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT;
92
- const clearEngagementTimer = useCallback(() => {
93
- if (engagementTimerRef.current) {
94
- clearTimeout(engagementTimerRef.current);
95
- engagementTimerRef.current = null;
96
- }
97
- }, []);
98
- // Call resource API with sources if available, otherwise create resource origin with payload only
99
- const callResourceAPI = useCallback((sources, visibilityStatus) => {
100
- if (!activeSessionId)
101
- return;
102
- const payload = JSON.stringify({ product, version, summary, issue });
103
- if (sources && sources.length > 0) {
104
- const sessionResources = visibilityStatus === SessionResourceVisibility.VISITED
105
- ? sources.map((source, index) => getSessResFromARHSource(source, visibilityStatus, index + 1))
106
- : getSessResFromAISources(sources, visibilityStatus);
107
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.ASK_RED_HAT, sessionResources, payload);
108
- }
109
- else {
110
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.ASK_RED_HAT, undefined, payload);
111
- }
112
- }, [activeSessionId, product, version, summary, issue, sessionRestoreDispatch, sessionResourceTracking]);
113
- const handleARHEvent = useCallback((eventData) => {
114
- // Enable "See more resources" button when first chunk is received
115
- if (eventData.eventName === ARHEventName.AnswerReceived) {
116
- aiResponseDispatch(setHasChunkReceived(true));
117
- }
118
- // If message sent with conversationId, call API immediately (engagement happened)
119
- if (eventData.eventName === ARHEventName.MessageSent && isVariationA) {
120
- const { conversationId } = eventData.payload;
121
- if (conversationId !== undefined && conversationId !== null && conversationId !== '') {
122
- clearEngagementTimer();
123
- if (!hasInteractionHappenedRef.current) {
124
- hasInteractionHappenedRef.current = true;
125
- callResourceAPI(sourcesRef.current, SessionResourceVisibility.PRESENTED);
60
+ const shouldShowARHUI = () => {
61
+ // Check if the case type is allowed (not in the excluded list)
62
+ const isCaseTypeAllowed = !excludedCaseTypesforARH.includes(caseType !== null && caseType !== void 0 ? caseType : '');
63
+ // Check if user is not a secure support or confirmed stateside support user
64
+ const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
65
+ // Check if AI services are available
66
+ const isAIServicesAvailable = aiServicesAvailable;
67
+ return isCaseTypeAllowed && isNotSecureOrStatesideUser && isAIServicesAvailable;
68
+ };
69
+ const handleInitialized = (success, error) => {
70
+ var _a, _b;
71
+ if (success) {
72
+ console.log('Chat initialized successfully');
73
+ try {
74
+ if (!isEmpty((_a = aiResponseState.aiResponse) === null || _a === void 0 ? void 0 : _a.conversationId)) {
75
+ (_b = refetchControlReady.current) === null || _b === void 0 ? void 0 : _b.refetch();
126
76
  }
127
77
  }
128
- }
129
- if (eventData.eventName === ARHEventName.SourcePresented) {
130
- const { conversationId, sources } = eventData.payload;
131
- if (sources && Array.isArray(sources)) {
132
- sourcesRef.current = sources.map((source) => (Object.assign(Object.assign({}, source), { url: source.sourceUrl || source.url, link: source.sourceUrl || source.link })));
133
- }
134
- if (conversationId && conversationId !== lastDispatchedConversationIdRef.current) {
135
- lastDispatchedConversationIdRef.current = conversationId;
136
- aiResponseDispatch(updateConversationId(conversationId));
78
+ catch (error) {
79
+ console.error('Failed to refetch conversation:', error);
137
80
  }
138
81
  }
139
- if (eventData.eventName === ARHEventName.SourceClicked && isVariationA) {
140
- const { sourceUrl, sourceText } = eventData.payload;
141
- if (!sourceUrl || clickedSourcesRef.current.has(sourceUrl))
142
- return;
143
- clickedSourcesRef.current.add(sourceUrl);
144
- hasInteractionHappenedRef.current = true;
145
- clearEngagementTimer();
146
- const source = { url: sourceUrl, link: sourceUrl, sourceUrl, sourceText };
147
- callResourceAPI([source], SessionResourceVisibility.VISITED);
82
+ else {
83
+ console.error('Chat initialization failed:', error);
148
84
  }
149
- }, [aiResponseDispatch, callResourceAPI, clearEngagementTimer, isVariationA]);
85
+ };
150
86
  const preprocessRequest = () => __awaiter(this, void 0, void 0, function* () {
151
87
  var _a;
152
88
  if (!keycloakSession) {
@@ -168,42 +104,14 @@ function TroubleshootSection(props) {
168
104
  throw error;
169
105
  }
170
106
  });
171
- const detailedQuestion = generateAIQuestion(activeSection || '', caseDetails.product, caseDetails.version, caseDetails.summary, caseDetails.issue, caseDetails.caseType || '', i18next.language || 'en');
172
- const latestUserMessage = isVariationA && ((_d = aiResponseState.aiResponse) === null || _d === void 0 ? void 0 : _d.conversationId) && props.haveARHFieldsChanged
173
- ? detailedQuestion
174
- : '';
175
- const firstUserMessage = isVariationA && !((_e = aiResponseState.aiResponse) === null || _e === void 0 ? void 0 : _e.conversationId) ? detailedQuestion : '';
176
- // Reset the flag when component unmounts
177
- useEffect(() => {
178
- return () => {
179
- var _a;
180
- (_a = props.resetARHFieldsChanged) === null || _a === void 0 ? void 0 : _a.call(props);
181
- };
182
- // eslint-disable-next-line react-hooks/exhaustive-deps
183
- }, []);
184
- // 10-second engagement timer - call API if no source clicked or message not sent by user
185
- useEffect(() => {
186
- if (aiResponseState.hasChunkReceived && isVariationA) {
187
- engagementTimerRef.current = setTimeout(() => {
188
- if (hasInteractionHappenedRef.current || clickedSourcesRef.current.size > 0) {
189
- return;
190
- }
191
- callResourceAPI(sourcesRef.current, SessionResourceVisibility.PRESENTED);
192
- engagementTimerRef.current = null;
193
- }, 10000);
194
- return clearEngagementTimer;
195
- }
196
- }, [aiResponseState.hasChunkReceived, isVariationA, callResourceAPI, clearEngagementTimer]);
197
107
  const initConfig = {
198
- packageVersion: (_f = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _f === void 0 ? void 0 : _f.packageVersion,
108
+ packageVersion: (_d = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _d === void 0 ? void 0 : _d.packageVersion,
199
109
  appSourceId: appSourceId_ARH,
200
110
  enableDebugLogging: false,
201
111
  headerTitle: isCaseCreate ? t('Resolve your issue now with AI insights') : t('Troubleshoot with AI insights'),
202
112
  appEnv: Env.getEnvName(),
203
113
  showWelcomeMessage: false,
204
- firstUserMessage: firstUserMessage,
205
- conversationId: (_h = (_g = aiResponseState.aiResponse) === null || _g === void 0 ? void 0 : _g.conversationId) !== null && _h !== void 0 ? _h : '',
206
- latestUserMessage: latestUserMessage,
114
+ conversationId: ((_e = aiResponseState.aiResponse) === null || _e === void 0 ? void 0 : _e.conversationId) || undefined,
207
115
  enableHeaderMenu: false,
208
116
  enableTheme: false,
209
117
  openLinkInNewTab: true,
@@ -214,8 +122,8 @@ function TroubleshootSection(props) {
214
122
  } })),
215
123
  tokenAuth: {
216
124
  auth: {
217
- userInfo: (_l = (_k = (_j = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _j === void 0 ? void 0 : _j.getToken) === null || _k === void 0 ? void 0 : _k.call(_j)) !== null && _l !== void 0 ? _l : {},
218
- authToken: (_o = (_m = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _m === void 0 ? void 0 : _m.getEncodedToken()) !== null && _o !== void 0 ? _o : '',
125
+ userInfo: (_h = (_g = (_f = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _f === void 0 ? void 0 : _f.getToken) === null || _g === void 0 ? void 0 : _g.call(_f)) !== null && _h !== void 0 ? _h : {},
126
+ authToken: (_k = (_j = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _j === void 0 ? void 0 : _j.getEncodedToken()) !== null && _k !== void 0 ? _k : '',
219
127
  },
220
128
  events: {
221
129
  preprocessRequest,
@@ -225,45 +133,31 @@ function TroubleshootSection(props) {
225
133
  },
226
134
  },
227
135
  },
228
- onARHEvent: handleARHEvent,
136
+ onInitialized: handleInitialized,
229
137
  onUnauthenticatedLogin: () => {
230
138
  var _a, _b;
231
139
  (_b = (_a = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _a === void 0 ? void 0 : _a.login) === null || _b === void 0 ? void 0 : _b.call(_a);
232
140
  },
233
- };
234
- const shouldShowARHUI = () => {
235
- if (isVariationA) {
236
- return false;
237
- }
238
- // Check if the case type is allowed (not in the excluded list)
239
- const isCaseTypeAllowed = !excludedCaseTypesforARH.includes(caseType !== null && caseType !== void 0 ? caseType : '');
240
- // Check if user is not a secure support or confirmed stateside support user
241
- const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
242
- // Check if AI services are available
243
- const isAIServicesAvailable = props.aiServicesAvailable;
244
- return isCaseTypeAllowed && isNotSecureOrStatesideUser && isAIServicesAvailable;
141
+ onForceRefetchConversation: (refetchControl) => {
142
+ refetchControlReady.current = refetchControl;
143
+ },
245
144
  };
246
145
  const handleChatWithAIClick = () => {
247
- var _a;
248
- props.setIsAIChatMode(true);
249
- (_a = props.onChatWithAIClick) === null || _a === void 0 ? void 0 : _a.call(props);
146
+ setIsAIChatMode(true);
147
+ onChatWithAIClick === null || onChatWithAIClick === void 0 ? void 0 : onChatWithAIClick();
250
148
  };
251
149
  return (React.createElement(React.Fragment, null, isAIChatMode ? (React.createElement(React.Fragment, null,
252
150
  React.createElement(AskRedHatChat, { initConfig: initConfig }),
253
- React.createElement("div", { className: "fullscreen-chat-footer" }, isVariationA && activeSection === AppRouteSections.RESOURCES ? (React.createElement(React.Fragment, null,
254
- React.createElement("button", { onClick: props.onBack, className: "btn btn-app btn-open-white main-nav-button", type: "button" }, t('Go back')),
255
- React.createElement("button", { onClick: () => props.setIsAIChatMode(false), className: "btn btn-app btn-primary main-nav-button", type: "button", disabled: !aiResponseState.hasChunkReceived }, t('See more resources')))) : isCaseCreate ? (React.createElement("span", null,
151
+ React.createElement("div", { className: "fullscreen-chat-footer" }, isCaseCreate ? (React.createElement("span", null,
256
152
  React.createElement(Trans, { i18nKey: "<span>Return to</span> <button>case creation</button>", components: {
257
153
  span: React.createElement("span", { className: "return-to-case-text" }),
258
154
  button: (React.createElement(Button, { className: "return-to-case-btn", variant: "link", component: "a", onClick: () => props.setIsAIChatMode(false) })),
259
155
  } }))) : (React.createElement(Button, { onClick: () => props.setIsAIChatMode(false), variant: "link", className: "return-to-resources-btn" }, t('Back to resources')))))) : (React.createElement(React.Fragment, null,
260
156
  React.createElement("section", null,
261
- isVariationA ? (React.createElement("div", { className: "suggestions-result-section" },
262
- React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
263
- React.createElement(Recommendations, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendationsValue: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef })))))) : (shouldShowARHUI() && React.createElement(AskRedHat, { onChatWithAIClick: handleChatWithAIClick })),
264
- !isVariationA && !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
157
+ shouldShowARHUI() && React.createElement(AskRedHat, { onChatWithAIClick: handleChatWithAIClick }),
158
+ !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
265
159
  React.createElement(LoadingDots, { show: topContent.isFetching }),
266
- !isVariationA && topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "pf-v6-u-mb-md" },
160
+ topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "pf-v6-u-mb-md" },
267
161
  React.createElement(CardHeader, { id: "card-title" },
268
162
  React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Red Hat hand picked support articles"),
269
163
  React.createElement(Tooltip, { content: React.createElement("div", null,
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAwB/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAgR9D"}
1
+ {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAmU9D"}
@@ -18,7 +18,6 @@ import { useCaseSelector } from '../../context/CaseContext';
18
18
  import { RecommendationStateContext } from '../../context/RecommendationContext';
19
19
  import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
20
20
  import { TCStateContext } from '../../context/TopContentContext';
21
- import { useAB } from '../../hooks/useAB';
22
21
  import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, ISSUE_SUMMARY_LENGTH_LIMIT, KTQUESTION_MAX_LIMIT, TITLE_SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
23
22
  import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
24
23
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
@@ -26,8 +25,7 @@ import { setNoValidEntitlement } from '../../reducers/RouteReducer';
26
25
  import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
27
26
  export function useIsSectionValid(sectionName) {
28
27
  var _a, _b;
29
- const { isVariationA } = useAB();
30
- const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
28
+ const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ABTestVariation, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
31
29
  caseState: state,
32
30
  caseType: state.caseDetails.caseType,
33
31
  product: state.caseDetails.product,
@@ -43,6 +41,7 @@ export function useIsSectionValid(sectionName) {
43
41
  environment: state.caseDetails.environment,
44
42
  timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
45
43
  periodicityOfIssue: state.caseDetails.periodicityOfIssue,
44
+ ABTestVariation: state.ABTestVariation,
46
45
  ssoUsername: state.selectedOwner.data.ssoUsername,
47
46
  manageSupportCases: state.selectedOwner.data.manageSupportCases,
48
47
  }), isEqual);
@@ -67,8 +66,10 @@ export function useIsSectionValid(sectionName) {
67
66
  fetchContactDetails();
68
67
  }, [ssoUsername, routeDispatch]);
69
68
  //&seSessionId=8e8960ac-680b-443e-bf67-9e13f2acd64e
69
+ const isATestvariation = ABTestVariation === 'A';
70
+ const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
70
71
  const { routeState: { isCaseCreate }, } = useContext(RouteContext);
71
- const { globalMetadataState: { allProducts, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
72
+ const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
72
73
  const { topContentState: { topContent }, } = useContext(TCStateContext);
73
74
  const { recommendationState } = useContext(RecommendationStateContext);
74
75
  const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
@@ -91,64 +92,102 @@ export function useIsSectionValid(sectionName) {
91
92
  !isEmpty(contactSSOName) &&
92
93
  !selectedAccountDetails.data.subscriptionAbuse &&
93
94
  (manageSupportCases !== null && manageSupportCases !== void 0 ? manageSupportCases : true) &&
94
- (isEntitlement !== null && isEntitlement !== void 0 ? isEntitlement : true) &&
95
- !isEmpty(product) &&
96
- !isEmpty(version);
95
+ (isEntitlement !== null && isEntitlement !== void 0 ? isEntitlement : true);
96
+ if (isATestvariation) {
97
+ isValid = isValid && !isEmpty(product) && !isEmpty(version);
98
+ }
97
99
  return isValid;
98
100
  };
99
101
  const isSummarizeSectionValid = () => {
100
- let isValid = !allProducts.isFetching &&
101
- !allProducts.isError &&
102
- !topContent.isFetching &&
103
- !recommendationState.isLoadingRecommendations &&
104
- (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
105
- (issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
106
- !isEmpty(summary) &&
107
- !isEmpty(issue);
102
+ if (isBTestvariation) {
103
+ let isValid = !allProducts.isFetching &&
104
+ !allProducts.isError &&
105
+ !topContent.isFetching &&
106
+ !recommendationState.isLoadingRecommendations &&
107
+ (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
108
+ (issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
109
+ !isEmpty(product) &&
110
+ !isEmpty(version) &&
111
+ !isEmpty(summary) &&
112
+ !isEmpty(issue);
113
+ return isValid;
114
+ }
115
+ if (isATestvariation) {
116
+ let isValid = !allProducts.isFetching &&
117
+ !allProducts.isError &&
118
+ !topContent.isFetching &&
119
+ !recommendationState.isLoadingRecommendations &&
120
+ (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
121
+ (issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
122
+ !isEmpty(summary) &&
123
+ !isEmpty(issue);
124
+ return isValid;
125
+ }
108
126
  if (isCaseCreate) {
109
127
  //because on the summarize page for troubleshoot flow we have only product version and owner
110
- isValid =
111
- !allProducts.isFetching &&
112
- !allProducts.isError &&
113
- !isEmpty(product) &&
114
- !isEmpty(accountNumber) &&
115
- !isEmpty(contactSSOName) &&
116
- !isEmpty(version);
128
+ let isValid = !allProducts.isFetching &&
129
+ !allProducts.isError &&
130
+ // !topContent.isFetching &&
131
+ // !recommendationState.isLoadingRecommendations &&
132
+ // summary!?.length <= TITLE_SUMMARY_LENGTH_LIMIT &&
133
+ // issue!?.length <= ISSUE_SUMMARY_LENGTH_LIMIT &&
134
+ !isEmpty(product) &&
135
+ !isEmpty(accountNumber) &&
136
+ !isEmpty(contactSSOName) &&
137
+ !isEmpty(version);
138
+ return isValid;
117
139
  }
118
140
  else if (!isCaseCreate) {
119
141
  return !isEmpty(product) && !isEmpty(version) && !isEmpty(accountNumber) && !isEmpty(contactSSOName);
120
142
  }
121
- return isValid;
122
143
  };
123
144
  const isCaseConfigurationSectionValid = () => {
124
145
  const hasContactInfo24x7ValidLength = contactInfo24x7
125
146
  ? (contactInfo24x7 === null || contactInfo24x7 === void 0 ? void 0 : contactInfo24x7.length) <= CONTACT_INFO_24X7_LIMIT
126
147
  : true;
127
148
  const hasAlternateCaseIdValidLength = alternateId ? (alternateId === null || alternateId === void 0 ? void 0 : alternateId.length) <= CASE_REFERENCE_NUMBER_LIMIT : true;
128
- return (isCaseManagementStateValid(caseState, loggedInUserJwtToken) &&
149
+ return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
129
150
  hasContactInfo24x7ValidLength &&
130
151
  hasAlternateCaseIdValidLength);
131
152
  };
132
153
  const isResourcesSectionValid = () => {
133
- var _a;
154
+ var _a, _b;
155
+ if (isBTestvariation) {
156
+ //if we are in the new experience and user is troubleshoot we give them those validity fields
157
+ if (!isCaseCreate) {
158
+ let isValid = !allProducts.isFetching &&
159
+ !allProducts.isError &&
160
+ !topContent.isFetching &&
161
+ !recommendationState.isLoadingRecommendations &&
162
+ (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
163
+ (issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
164
+ !isEmpty(product) &&
165
+ !isEmpty(version) &&
166
+ !isEmpty(summary) &&
167
+ !isEmpty(issue) &&
168
+ isEntitlement === true &&
169
+ isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
170
+ return isValid;
171
+ }
172
+ }
134
173
  // don't check for entitled product if user is on search intent flow
135
174
  const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
136
- // Skip cluster ID validation for Variant A
137
- const clusterIdValid = isVariationA ? true : isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
138
- return !recommendationState.isLoadingRecommendations && isEntitledProductLocal && clusterIdValid;
175
+ return (!recommendationState.isLoadingRecommendations &&
176
+ isEntitledProductLocal &&
177
+ isClusterIDValid(caseState, (_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult));
139
178
  };
140
179
  const isReviewSectionValid = () => {
141
180
  var _a;
142
181
  return (isEntitledProduct &&
143
- isCaseStateValid(caseState, loggedInUserJwtToken) &&
182
+ isCaseStateValid(caseState, loggedInUserRights) &&
144
183
  isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
145
184
  isSummarizeSectionValid() &&
146
185
  isAdditionalInformationSectionValidLocal());
147
186
  };
148
187
  const isDescribeIdeaSectionValid = () => {
149
- return (isCaseManagementStateValid(caseState, loggedInUserJwtToken) &&
188
+ return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
150
189
  isEntitledProduct &&
151
- isIdeaCaseStateValid(caseState, loggedInUserJwtToken) &&
190
+ isIdeaCaseStateValid(caseState, loggedInUserRights) &&
152
191
  checkUnallowedFiles());
153
192
  };
154
193
  const isAdditionalInformationSectionValidLocal = () => {
@@ -156,7 +195,7 @@ export function useIsSectionValid(sectionName) {
156
195
  const hostnameIsValid = hostname ? (hostname === null || hostname === void 0 ? void 0 : hostname.length) <= HOSTNAME_LENGTH_LIMIT : true;
157
196
  return (!caseState.hasInvalidEntitlements &&
158
197
  isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
159
- isCaseInformationSectionValid(caseState, loggedInUserJwtToken) &&
198
+ isCaseInformationSectionValid(caseState, loggedInUserRights) &&
160
199
  hostnameIsValid &&
161
200
  environment.length <= CASE_DEATILS_ENVIRONMENT_LIMIT &&
162
201
  timeFramesAndUrgency.length <= KTQUESTION_MAX_LIMIT &&
@@ -1 +1 @@
1
- {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAGH,eAAe,EAIlB,MAAM,iCAAiC,CAAC;AASzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBAgEjC;kBAhEQ,WAAW;;;AAkEpB,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAGH,eAAe,EAKlB,MAAM,iCAAiC,CAAC;AAQzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBAuDjC;kBAvDQ,WAAW;;;AAyDpB,eAAe,WAAW,CAAC"}
@@ -5,9 +5,7 @@ import isUndefined from 'lodash/isUndefined';
5
5
  import React, { useContext } from 'react';
6
6
  import { useCaseSelector } from '../../context/CaseContext';
7
7
  import { RouteContext } from '../../context/RouteContext';
8
- import { TCStateContext } from '../../context/TopContentContext';
9
- import { useAB } from '../../hooks/useAB';
10
- import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
8
+ import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
11
9
  import { FileDiag } from '../CaseInformation/FileDiag';
12
10
  import { CveSidebar } from '../Cve/CveSidebar';
13
11
  import { AsideResults } from '../Recommendations/AsideResults';
@@ -15,34 +13,28 @@ import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
15
13
  import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
16
14
  import InsightsResults from '../Recommendations/InsightsResults';
17
15
  import { SessionRestore } from '../SessionRestore';
18
- import TopContentSidebar from '../Suggestions/TopContentSidebar';
19
16
  const defaultProps = {};
20
17
  function WizardAside(props) {
21
- const { isVariationA } = useAB();
22
18
  const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
23
- const { topContentState: { topContent }, } = useContext(TCStateContext);
24
19
  const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
25
- const { isCreatingCase, caseType, isCveModalOpened } = useCaseSelector((state) => ({
20
+ const { isCreatingCase, caseType, isCveModalOpened, ABTestVariation } = useCaseSelector((state) => ({
26
21
  isCreatingCase: state.isCreatingCase,
27
22
  caseType: state.caseDetails.caseType,
28
23
  isCveModalOpened: state.isCveModalOpened,
24
+ ABTestVariation: state.ABTestVariation,
29
25
  }), isEqual);
26
+ const isATestvariation = ABTestVariation === 'A';
30
27
  const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
31
28
  const canUseSessionManagement = ability.can(resourceActions.CREATE, resources.SESSION_TRACKING);
32
29
  const canShowFileUploadWidget = () => canAddAttachments &&
33
30
  !props.isAttachmentUploadModalOpen &&
34
31
  !isUndefined(activeSection) &&
35
32
  !hideFileUploadSidebarWidgetSections.includes(activeSection);
36
- const canShowEARuleWidget = activeSection
33
+ const canShowEARuleWidget = isATestvariation
37
34
  ? showSideBarEARuleWidgetSectionsExperienceA.includes(activeSection)
38
- : false;
39
- const canShowClusterIdReportWidget = activeSection
40
- ? showSideBarClusterIdRuleWidgetSections.includes(activeSection)
41
- : false;
42
- const canShowFileRecommendationSectionsWidget = activeSection
43
- ? showSideBarFileRecommendationSections.includes(activeSection)
44
- : false;
45
- const showTopContentSidebar = isVariationA && activeSection === AppRouteSections.RESOURCES && topContent.data.length === 0;
35
+ : showSideBarEARuleWidgetSections.includes(activeSection);
36
+ const canShowClusterIdReportWidget = showSideBarClusterIdRuleWidgetSections.includes(activeSection);
37
+ const canShowFileRecommendationSectionsWidget = showSideBarFileRecommendationSections.includes(activeSection);
46
38
  return (React.createElement("aside", null,
47
39
  React.createElement("section", { className: "grid-aside-content" },
48
40
  canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
@@ -54,8 +46,7 @@ function WizardAside(props) {
54
46
  canShowEARuleWidget && React.createElement(EARuleWidget, null),
55
47
  !(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-md" })),
56
48
  canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
57
- React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md" }),
58
- showTopContentSidebar && React.createElement(TopContentSidebar, null))));
49
+ React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md" }))));
59
50
  }
60
51
  WizardAside.defaultProps = defaultProps;
61
52
  export default WizardAside;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAkE,MAAM,OAAO,CAAC;AAExH,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAY9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcpF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,MAEpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,MAqB9F,CAAC;AAGF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,WACZ,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,YACf,MAAM,QACV,MAAM,KACb,MAwCF,CAAC;AACF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA8ZhC;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAW9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcpF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,MAEpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,MAqB9F,CAAC;AAGF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,WACZ,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,YACf,MAAM,QACV,MAAM,KACb,MAwCF,CAAC;AACF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA4WhC;AACD,eAAe,UAAU,CAAC"}