@pega/cosmos-react-work 8.0.0-build.2.0 → 8.0.0-build.20.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.
- package/lib/components/AppAnnouncement/AppAnnouncement.d.ts +3 -3
- package/lib/components/AppAnnouncement/AppAnnouncement.d.ts.map +1 -1
- package/lib/components/AppAnnouncement/AppAnnouncement.js.map +1 -1
- package/lib/components/Article/Article.d.ts +2 -6
- package/lib/components/Article/Article.d.ts.map +1 -1
- package/lib/components/Article/Article.js +2 -7
- package/lib/components/Article/Article.js.map +1 -1
- package/lib/components/Article/ArticleMeta.js.map +1 -1
- package/lib/components/ArticleList/AIArticleSummary.d.ts +1 -2
- package/lib/components/ArticleList/AIArticleSummary.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleBuddy.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleBuddy.js.map +1 -1
- package/lib/components/ArticleList/ArticleBuddyList.d.ts +0 -1
- package/lib/components/ArticleList/ArticleBuddyList.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleBuddyResponse.d.ts +3 -3
- package/lib/components/ArticleList/ArticleBuddyResponse.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleBuddyResponse.js +7 -8
- package/lib/components/ArticleList/ArticleBuddyResponse.js.map +1 -1
- package/lib/components/ArticleList/ArticleFeedback.d.ts +1 -2
- package/lib/components/ArticleList/ArticleFeedback.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleFeedback.js.map +1 -1
- package/lib/components/ArticleList/ArticleList.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleList.js +1 -1
- package/lib/components/ArticleList/ArticleList.js.map +1 -1
- package/lib/components/ArticleList/ArticleList.types.d.ts +9 -5
- package/lib/components/ArticleList/ArticleList.types.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleList.types.js.map +1 -1
- package/lib/components/ArticleList/ArticleListFilter.js.map +1 -1
- package/lib/components/ArticleList/ArticleListHeader.d.ts +1 -1
- package/lib/components/ArticleList/ArticleListHeader.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleListHeader.js +1 -1
- package/lib/components/ArticleList/ArticleListHeader.js.map +1 -1
- package/lib/components/ArticleList/ArticleSemanticSearch.d.ts +0 -1
- package/lib/components/ArticleList/ArticleSemanticSearch.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleSemanticSearch.js +11 -4
- package/lib/components/ArticleList/ArticleSemanticSearch.js.map +1 -1
- package/lib/components/ArticleList/ArticleSummaryHeader.js +1 -1
- package/lib/components/ArticleList/ArticleSummaryHeader.js.map +1 -1
- package/lib/components/ArticleList/ArticleTag.d.ts +0 -1
- package/lib/components/ArticleList/ArticleTag.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleTag.js +3 -3
- package/lib/components/ArticleList/ArticleTag.js.map +1 -1
- package/lib/components/ArticleList/QuestionList.d.ts +1 -2
- package/lib/components/ArticleList/QuestionList.d.ts.map +1 -1
- package/lib/components/ArticleList/QuestionList.js +1 -1
- package/lib/components/ArticleList/QuestionList.js.map +1 -1
- package/lib/components/ArticleList/RelatedQuestions.d.ts +19 -0
- package/lib/components/ArticleList/RelatedQuestions.d.ts.map +1 -0
- package/lib/components/ArticleList/RelatedQuestions.js +40 -0
- package/lib/components/ArticleList/RelatedQuestions.js.map +1 -0
- package/lib/components/Assignments/Assignments.js +1 -1
- package/lib/components/Assignments/Assignments.js.map +1 -1
- package/lib/components/Assignments/Assignments.styles.d.ts +3 -4
- package/lib/components/Assignments/Assignments.styles.d.ts.map +1 -1
- package/lib/components/CasePreview/CasePreview.d.ts +4 -4
- package/lib/components/CasePreview/CasePreview.d.ts.map +1 -1
- package/lib/components/CasePreview/CasePreview.js.map +1 -1
- package/lib/components/CasePreview/CasePreview.test-ids.d.ts +1 -1
- package/lib/components/CasePreview/CasePreview.test-ids.d.ts.map +1 -1
- package/lib/components/CaseView/CaseHeader/CaseHeader.js +1 -1
- package/lib/components/CaseView/CaseHeader/CaseHeader.js.map +1 -1
- package/lib/components/CaseView/CaseHeader/Summary.d.ts +1 -1
- package/lib/components/CaseView/CaseHeader/Summary.d.ts.map +1 -1
- package/lib/components/CaseView/CaseHeader/Summary.js.map +1 -1
- package/lib/components/CaseView/CaseView.context.d.ts +0 -1
- package/lib/components/CaseView/CaseView.context.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.d.ts +1 -1
- package/lib/components/CaseView/CaseView.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.js +11 -14
- package/lib/components/CaseView/CaseView.js.map +1 -1
- package/lib/components/CaseView/CaseView.styles.d.ts +13 -13
- package/lib/components/CaseView/CaseView.styles.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.styles.js +22 -10
- package/lib/components/CaseView/CaseView.styles.js.map +1 -1
- package/lib/components/CaseView/CaseView.test-ids.d.ts +1 -1
- package/lib/components/CaseView/CaseView.test-ids.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.types.d.ts +2 -0
- package/lib/components/CaseView/CaseView.types.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.types.js.map +1 -1
- package/lib/components/CaseView/UtilitiesSummary.d.ts +1 -0
- package/lib/components/CaseView/UtilitiesSummary.d.ts.map +1 -1
- package/lib/components/CaseView/UtilitiesSummary.js +61 -5
- package/lib/components/CaseView/UtilitiesSummary.js.map +1 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts +0 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts.map +1 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.js +1 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.js.map +1 -1
- package/lib/components/ConfigurableLayout/ConfigurableLayout.d.ts +0 -1
- package/lib/components/ConfigurableLayout/ConfigurableLayout.d.ts.map +1 -1
- package/lib/components/ConfigurableLayout/ConfigurableLayout.js.map +1 -1
- package/lib/components/ConfigurableLayout/ConfigurableLayout.types.d.ts +0 -1
- package/lib/components/ConfigurableLayout/ConfigurableLayout.types.d.ts.map +1 -1
- package/lib/components/ConfigurableLayout/LayoutCell.d.ts +1 -2
- package/lib/components/ConfigurableLayout/LayoutCell.d.ts.map +1 -1
- package/lib/components/ConfigurableLayout/LayoutCell.js.map +1 -1
- package/lib/components/ConfigurableLayout/useTrackWrappedRegions.d.ts.map +1 -1
- package/lib/components/ConfigurableLayout/useTrackWrappedRegions.js.map +1 -1
- package/lib/components/Confirmation/Confirmation.d.ts +3 -3
- package/lib/components/Confirmation/Confirmation.d.ts.map +1 -1
- package/lib/components/Confirmation/Confirmation.js.map +1 -1
- package/lib/components/Details/Details.d.ts +4 -4
- package/lib/components/Details/Details.d.ts.map +1 -1
- package/lib/components/Details/Details.js +2 -2
- package/lib/components/Details/Details.js.map +1 -1
- package/lib/components/Details/Details.styles.d.ts +1 -1
- package/lib/components/Details/Details.test-ids.d.ts +1 -1
- package/lib/components/Details/Details.test-ids.d.ts.map +1 -1
- package/lib/components/Details/DetailsContext.d.ts +0 -1
- package/lib/components/Details/DetailsContext.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.d.ts +1 -1
- package/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.js +5 -5
- package/lib/components/GenAICoach/GenAICoach.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts +12 -12
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.js +14 -0
- package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts +1 -1
- package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.test-ids.js +4 -1
- package/lib/components/GenAICoach/GenAICoach.test-ids.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.types.d.ts +8 -1
- package/lib/components/GenAICoach/GenAICoach.types.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.types.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.utils.d.ts +1 -1
- package/lib/components/GenAICoach/GenAICoach.utils.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAIMessage.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAIMessage.js +74 -12
- package/lib/components/GenAICoach/GenAIMessage.js.map +1 -1
- package/lib/components/GenAICoach/InitialSuggestedMessage.js +1 -1
- package/lib/components/GenAICoach/InitialSuggestedMessage.js.map +1 -1
- package/lib/components/Glimpse/Glimpse.d.ts +3 -3
- package/lib/components/Glimpse/Glimpse.d.ts.map +1 -1
- package/lib/components/Glimpse/Glimpse.js.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts +2 -3
- package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentContainer.js.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts +1 -2
- package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts +3 -4
- package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts +22 -23
- package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/Assignments.styles.js +5 -1
- package/lib/components/HierarchicalAssignments/Assignments.styles.js.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts +2 -3
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.js.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.d.ts +3 -3
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.test-ids.d.ts.map +1 -1
- package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts +2 -3
- package/lib/components/IntelligentGuidance/IntelligentGuidance.d.ts.map +1 -1
- package/lib/components/IntelligentGuidance/IntelligentGuidance.js.map +1 -1
- package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts +2 -3
- package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.d.ts.map +1 -1
- package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js +0 -9
- package/lib/components/IntelligentGuidance/IntelligentGuidance.styles.js.map +1 -1
- package/lib/components/InteractionNotification/CountdownButton.d.ts +3 -3
- package/lib/components/InteractionNotification/CountdownButton.d.ts.map +1 -1
- package/lib/components/InteractionNotification/CountdownButton.js +1 -1
- package/lib/components/InteractionNotification/CountdownButton.js.map +1 -1
- package/lib/components/InteractionNotification/InteractionNotification.d.ts +3 -3
- package/lib/components/InteractionNotification/InteractionNotification.d.ts.map +1 -1
- package/lib/components/InteractionNotification/InteractionNotification.js.map +1 -1
- package/lib/components/Predictions/Predictions.d.ts +2 -3
- package/lib/components/Predictions/Predictions.d.ts.map +1 -1
- package/lib/components/Predictions/Predictions.js +1 -0
- package/lib/components/Predictions/Predictions.js.map +1 -1
- package/lib/components/SearchResults/ActiveFilter.d.ts +1 -2
- package/lib/components/SearchResults/ActiveFilter.d.ts.map +1 -1
- package/lib/components/SearchResults/Filter.d.ts.map +1 -1
- package/lib/components/SearchResults/Filter.js.map +1 -1
- package/lib/components/SearchResults/SearchResult.d.ts.map +1 -1
- package/lib/components/SearchResults/SearchResults.d.ts +2 -3
- package/lib/components/SearchResults/SearchResults.d.ts.map +1 -1
- package/lib/components/SearchResults/SearchResults.js +1 -2
- package/lib/components/SearchResults/SearchResults.js.map +1 -1
- package/lib/components/SearchResults/SearchResults.styles.d.ts +1 -2
- package/lib/components/SearchResults/SearchResults.styles.d.ts.map +1 -1
- package/lib/components/Stages/StageGlimpse.js +1 -1
- package/lib/components/Stages/StageGlimpse.js.map +1 -1
- package/lib/components/Stages/Stages.d.ts +2 -3
- package/lib/components/Stages/Stages.d.ts.map +1 -1
- package/lib/components/Stages/Stages.js.map +1 -1
- package/lib/components/Stages/Stages.styles.d.ts +4 -5
- package/lib/components/Stages/Stages.styles.d.ts.map +1 -1
- package/lib/components/Stakeholders/StakeholderForm.d.ts +1 -2
- package/lib/components/Stakeholders/StakeholderForm.d.ts.map +1 -1
- package/lib/components/Stakeholders/StakeholderForm.js.map +1 -1
- package/lib/components/Stakeholders/Stakeholders.d.ts +2 -3
- package/lib/components/Stakeholders/Stakeholders.d.ts.map +1 -1
- package/lib/components/Stakeholders/Stakeholders.js +37 -26
- package/lib/components/Stakeholders/Stakeholders.js.map +1 -1
- package/lib/components/Tags/Tags.d.ts +5 -5
- package/lib/components/Tags/Tags.d.ts.map +1 -1
- package/lib/components/Tags/Tags.js.map +1 -1
- package/lib/components/Tasks/TaskList.d.ts +7 -7
- package/lib/components/Tasks/TaskList.d.ts.map +1 -1
- package/lib/components/Tasks/TaskList.js.map +1 -1
- package/lib/components/Tasks/Tasks.d.ts +3 -3
- package/lib/components/Tasks/Tasks.d.ts.map +1 -1
- package/lib/components/Tasks/Tasks.js.map +1 -1
- package/lib/components/Tasks/Tasks.test-ids.d.ts +3 -3
- package/lib/components/Tasks/Tasks.test-ids.d.ts.map +1 -1
- package/lib/components/Timeline/Timeline.d.ts +2 -3
- package/lib/components/Timeline/Timeline.d.ts.map +1 -1
- package/lib/components/Timeline/Timeline.js.map +1 -1
- package/lib/components/Timeline/Timeline.styles.d.ts +5 -6
- package/lib/components/Timeline/Timeline.styles.d.ts.map +1 -1
- package/lib/components/Timeline/TimelineItem.js +2 -2
- package/lib/components/Timeline/TimelineItem.js.map +1 -1
- package/lib/components/Timeline/TimelineToolbar.d.ts +2 -3
- package/lib/components/Timeline/TimelineToolbar.d.ts.map +1 -1
- package/lib/components/Timeline/TimelineToolbar.js.map +1 -1
- package/lib/components/Timeline/utils.js.map +1 -1
- package/lib/components/UtilitiesLayout/UtilitiesLayout.js.map +1 -1
- package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts +3 -3
- package/lib/components/UtilitiesLayout/UtilitiesLayout.styles.d.ts.map +1 -1
- package/package.json +10 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useMemo, useRef, useLayoutEffect, useState, useContext } from 'react';
|
|
3
|
-
import { Flex, Grid, Icon, registerIcon, TabPanel, useBreakpoint, useScrollStick, useElement, Card, Drawer, useI18n, useDirection, Tabs, useAfterInitialEffect, windowIsAvailable, focusHeadingOrContainer, useConfiguration, useRefMap, useTestIds, withTestIds, AppShellContext } from '@pega/cosmos-react-core';
|
|
3
|
+
import { Flex, Grid, Icon, registerIcon, TabPanel, useBreakpoint, useScrollStick, useElement, Card, Drawer, useI18n, useDirection, Tabs, useAfterInitialEffect, windowIsAvailable, focusHeadingOrContainer, useConfiguration, useRefMap, useTestIds, withTestIds, AppShellContext, useConsolidatedRef } from '@pega/cosmos-react-core';
|
|
4
4
|
import * as moveRightSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-right-solid.icon';
|
|
5
5
|
import * as moveLeftSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-left-solid.icon';
|
|
6
6
|
import * as polarisSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';
|
|
@@ -62,7 +62,8 @@ genAICoachProps, ...restProps }) => {
|
|
|
62
62
|
const { start, end } = useDirection();
|
|
63
63
|
const { loadedRef } = useConfiguration();
|
|
64
64
|
// Element refs
|
|
65
|
-
const
|
|
65
|
+
const [caseViewEl, setCaseViewEl] = useElement();
|
|
66
|
+
const caseViewRef = useConsolidatedRef(setCaseViewEl);
|
|
66
67
|
const summaryRef = useRef(null);
|
|
67
68
|
// undefined used to allow ref to be mutable. Element set below in ref callback for scroll stick.
|
|
68
69
|
const workAreaRef = useRef();
|
|
@@ -247,14 +248,13 @@ genAICoachProps, ...restProps }) => {
|
|
|
247
248
|
}
|
|
248
249
|
// Apply sticky columns
|
|
249
250
|
const scrollStickOptions = useRef({
|
|
250
|
-
elements:
|
|
251
|
+
elements: [null, null]
|
|
251
252
|
});
|
|
252
253
|
const stickOffset = useMemo(() => {
|
|
253
|
-
if (windowIsAvailable
|
|
254
|
-
return
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}, [caseViewRef.current]);
|
|
254
|
+
if (!windowIsAvailable || !caseViewEl)
|
|
255
|
+
return 0;
|
|
256
|
+
return parseFloat(window.getComputedStyle(caseViewEl).getPropertyValue('--appshell-offset'));
|
|
257
|
+
}, [caseViewEl]);
|
|
258
258
|
useScrollStick(
|
|
259
259
|
// isMediumOrAbove means side by side columns | | |
|
|
260
260
|
mdOrAbove ? { ...scrollStickOptions.current, offset: stickOffset } : undefined);
|
|
@@ -427,16 +427,13 @@ genAICoachProps, ...restProps }) => {
|
|
|
427
427
|
rowGap: 2
|
|
428
428
|
}, as: StyledWorkArea, persistentUtility: Boolean(persistentUtility), ref: (el) => {
|
|
429
429
|
workAreaRef.current = el;
|
|
430
|
-
|
|
431
|
-
scrollStickOptions.current?.elements.add(el);
|
|
430
|
+
scrollStickOptions.current.elements[0] = el;
|
|
432
431
|
}, children: [(banners || stages || tasks) && (_jsxs(Flex, { container: {
|
|
433
432
|
direction: 'column',
|
|
434
433
|
alignContent: 'start',
|
|
435
434
|
rowGap: 2
|
|
436
435
|
}, ref: setBannersStagesTasksEl, children: [banners && _jsx("div", { "data-testid": testIds.banners, children: banners }), stages && _jsx("div", { "data-testid": testIds.stages, children: stages }), tasks && _jsx("div", { "data-testid": testIds.tasks, children: tasks })] })), _jsxs(Flex, { container: { direction: 'column', alignContent: 'start' }, children: [shouldRenderMobileTabs && (_jsx(Tabs, { "data-testid": testIds.tabs, tabs: tabItems, onTabClick: onTabClick, currentTabId: currentTabId, "aria-label": t(isPreview ? 'case_preview_tabs' : 'case_tabs'), ref: tabsRef })), _jsx("div", { ref: setTabContentEl, children: tabContent?.map(({ id, content }) => (_jsx(TabPanel, { "data-testid": currentTabId === id ? testIds.tabContent : undefined, currentTabId: currentTabId, tabId: id, ref: getTabPanelCbRef(id), tablistRef: tabsRef, tablistType: shouldRenderMobileTabs ? 'horizontal' : 'vertical', children: content }, id))) })] })] }), persistentUtility && mdOrAbove && (_jsx(Grid, { as: StyledPersistentUtility, item: { area: 'persistentUtility' }, "data-app-region": true, children: persistentUtility.content })), (utilities || genAICoachProps) && mdOrAbove && !lgOrAbove && utilitiesExpanded && (_jsx(Drawer, { as: StyledCaseDrawer, open: utilitiesExpanded, previewActive: previewActive, position: 'fixed', placement: end, shadow: true, nullWhenClosed: true, hasPersistentUtility: !!persistentUtility, children: _jsxs(Flex, { as: StyledCaseDrawerContent, container: { direction: 'column', gap: 2 }, "data-app-region": true, children: [_jsxs(Flex, { container: { alignItems: 'center', justify: 'between' }, children: [utilitiesHeading, utilitiesToggleButton] }), utilitiesAndGenAI] }) })), (utilities || genAICoachProps) && mdOrAbove && (_jsxs(Grid, { "data-testid": testIds.utilities, ref: (el) => {
|
|
437
|
-
|
|
438
|
-
scrollStickOptions.current?.elements.add(el);
|
|
439
|
-
}
|
|
436
|
+
scrollStickOptions.current.elements[1] = el;
|
|
440
437
|
}, as: StyledUtilities, container: {
|
|
441
438
|
cols: 'minmax(0, 1fr)',
|
|
442
439
|
rowGap: 2
|
|
@@ -445,7 +442,7 @@ genAICoachProps, ...restProps }) => {
|
|
|
445
442
|
}, "data-app-region": lgOrAbove || !utilitiesExpanded || undefined, "aria-label": t('utilities_label'), children: [_jsxs(Flex, { container: {
|
|
446
443
|
alignItems: 'center',
|
|
447
444
|
justify: utilitiesExpanded ? 'between' : 'center'
|
|
448
|
-
}, children: [utilitiesHeading, !lgOrAbove && utilitiesExpanded ? null : utilitiesToggleButton] }), utilitiesExpanded && lgOrAbove && utilitiesAndGenAI, (!utilitiesExpanded || (mdOrAbove && !lgOrAbove)) && (_jsxs(_Fragment, { children: [utilitiesSummaryItems && utilitiesSummaryItems.length > 0 && (_jsx(UtilitiesSummary, { items: utilitiesSummaryItems })), genAICoachProps && (_jsx(StyledCoachButton, { iconOnly: true, variant: 'primary', ref: genAICoachButtonRef, onClick: () => setShowCoach(cur => !cur), label: t('coach', ['Pega GenAI™']) }))] }))] })), genAICoachButtonRef.current && genAICoachProps && showCoach && (_jsx(UtilitySummaryItemDialog, { name: t('coach', ['Pega GenAI™']), target: genAICoachButtonRef.current, onDismiss: () => setShowCoach(false), children: _jsx(GenAICoach, { ...genAICoachProps, variant: {
|
|
445
|
+
}, children: [utilitiesHeading, !lgOrAbove && utilitiesExpanded ? null : utilitiesToggleButton] }), utilitiesExpanded && lgOrAbove && utilitiesAndGenAI, (!utilitiesExpanded || (mdOrAbove && !lgOrAbove)) && (_jsxs(_Fragment, { children: [utilitiesSummaryItems && utilitiesSummaryItems.length > 0 && (_jsx(UtilitiesSummary, { items: utilitiesSummaryItems, isExpanded: utilitiesExpanded })), genAICoachProps && (_jsx(StyledCoachButton, { iconOnly: true, variant: 'primary', ref: genAICoachButtonRef, onClick: () => setShowCoach(cur => !cur), label: t('coach', ['Pega GenAI™']) }))] }))] })), genAICoachButtonRef.current && genAICoachProps && showCoach && (_jsx(UtilitySummaryItemDialog, { name: t('coach', ['Pega GenAI™']), target: genAICoachButtonRef.current, onDismiss: () => setShowCoach(false), children: _jsx(GenAICoach, { ...genAICoachProps, variant: {
|
|
449
446
|
placement: 'dialog',
|
|
450
447
|
onClose: () => {
|
|
451
448
|
genAICoachProps.onClose?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.js","sourceRoot":"","sources":["../../../src/components/CaseView/CaseView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useLayoutEffect, useState, useContext } from 'react';\nimport type { FC } from 'react';\n\nimport {\n Flex,\n Grid,\n Icon,\n registerIcon,\n TabPanel,\n useBreakpoint,\n useScrollStick,\n useElement,\n Card,\n Drawer,\n useI18n,\n useDirection,\n Tabs,\n useAfterInitialEffect,\n windowIsAvailable,\n focusHeadingOrContainer,\n useConfiguration,\n useRefMap,\n useTestIds,\n withTestIds,\n AppShellContext\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps, Tab } from '@pega/cosmos-react-core';\nimport type { ScrollStickOptions } from '@pega/cosmos-react-core/lib/hooks/useScrollStick';\nimport * as moveRightSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-right-solid.icon';\nimport * as moveLeftSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-left-solid.icon';\nimport * as polarisSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';\nimport * as arrowMicroRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-right.icon';\nimport * as arrowMicroLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-left.icon';\n\nimport GenAICoach from '../GenAICoach';\nimport type { State } from '../GenAICoach/GenAICoach.types';\n\nimport CaseSummary from './CaseSummary';\nimport UtilitiesSummary from './UtilitiesSummary';\nimport {\n StyledCaseDrawer,\n StyledCaseDrawerContent,\n StyledCaseView,\n StyledWorkArea,\n StyledPersistentUtility,\n StyledSummary,\n StyledSummaryTabContent,\n StyledUtilities,\n StyledExpandCollapseUtilitiesButton,\n StyledUtilitiesHeading,\n StyledCoachButton,\n StyledUtilitiesWrapper\n} from './CaseView.styles';\nimport type { CaseViewContextValue, CaseViewProps } from './CaseView.types';\nimport CaseViewContext from './CaseView.context';\nimport CaseSummaryFields from './CaseSummaryFields';\nimport { getCaseViewTestIds } from './CaseView.test-ids';\nimport UtilitySummaryItemDialog from './UtilitySummaryItemDialog';\n\nregisterIcon(\n moveRightSolidIcon,\n moveLeftSolidIcon,\n polarisSolidIcon,\n arrowMicroRightIcon,\n arrowMicroLeftIcon\n);\n\n// This function is responsible for auto sizing table height in case tab panels.\nconst resizeTable = (tabPanelEl: HTMLDivElement, workAreaEl: HTMLDivElement) => {\n tabPanelEl.style.removeProperty('--content-height-in-view');\n\n // .rs-wrapper is currently the class used by the table component which needs to be targeted.\n const tables = Array.from(tabPanelEl.querySelectorAll('.rs-wrapper')).filter(\n table => table.getBoundingClientRect().width !== 0\n );\n\n // Only perform this logic when there is a single table in a tab's panel.\n if (tables.length !== 1) return;\n\n // This selector finds the table's root element as they are always wrapped in a Card.\n const table = tables[0].closest('article');\n\n if (!table) return;\n\n const tabPanelRect = tabPanelEl.getBoundingClientRect();\n const tableRect = table.getBoundingClientRect();\n const vpHeight = document.documentElement.clientHeight;\n const tableRectOffsetTop = tableRect.top + window.scrollY;\n const workAreaPaddingBlockEnd =\n // px unit are required for proper CSS calc calculation.\n window.getComputedStyle(workAreaEl).getPropertyValue('padding-block-end') || '0px';\n\n // Accounts for content rendered after the table.\n const tableBottomToTabPanelBottom = tabPanelRect.bottom - tableRect.bottom;\n\n // Sets a CSS variable for available height based on screen size and view state.\n // Defines an available minimum height of ~600px.\n tabPanelEl.style.setProperty(\n '--content-height-in-view',\n `max(calc(${\n vpHeight - tableRectOffsetTop - tableBottomToTabPanelBottom\n }px - ${workAreaPaddingBlockEnd}), 37.5rem)`\n );\n};\n\nconst CaseView: FC<CaseViewProps & ForwardProps> = ({\n testId,\n\n // Case data mostly visually related to the case header\n caseId,\n heading,\n subheading,\n caseType,\n caseLink,\n parentCases,\n icon,\n followed,\n onFollowedChange,\n onEdit,\n actions,\n promotedActions,\n\n // Summary content and state props\n summaryFields,\n summaryExpanded: summaryExpandedProp = true,\n onToggleSummary,\n\n // Case tabs\n tabs: { currentTabId, items: tabItemsProp, onClick: onTabClick },\n\n // Workarea related content props\n banners,\n stages,\n tasks,\n tabContent: tabContentProp = [],\n\n // Utilities content and state props\n utilities,\n utilitiesSummaryItems,\n utilitiesExpanded: utilitiesExpandedProp = true,\n onToggleUtilities,\n\n // Etc...\n persistentUtility,\n intelligentGuidance,\n isPreview = false,\n // Gen AI coach props\n genAICoachProps,\n ...restProps\n}: CaseViewProps) => {\n const testIds = useTestIds(testId, getCaseViewTestIds);\n\n // General util hooks\n const t = useI18n();\n const { previewActive } = useContext(AppShellContext);\n const { start, end } = useDirection();\n const { loadedRef } = useConfiguration();\n\n // Element refs\n const caseViewRef = useRef<HTMLDivElement>(null);\n const summaryRef = useRef<HTMLDivElement>(null);\n // undefined used to allow ref to be mutable. Element set below in ref callback for scroll stick.\n const workAreaRef = useRef<HTMLDivElement | undefined>();\n const toggleButtonRef = useRef<HTMLButtonElement>(null);\n const isToggleButtonFocused = useRef(false);\n const tabsRef = useRef<HTMLElement>(null);\n // Tab content\n const [tabContentEl, setTabContentEl] = useElement<HTMLElement>(null);\n // Gen AI coach state\n const genAICoachButtonRef = useRef<HTMLButtonElement>(null);\n const [showCoach, setShowCoach] = useState(false);\n const [genAIHeight, setGenAIHeight] = useState<number>();\n\n const [genAIState, setGenAIState] = useState<State>('minimized');\n\n // Breakpoint booleans\n const smOrAbove = useBreakpoint('sm');\n const mdOrAbove = useBreakpoint('md', { breakpointRef: caseViewRef });\n const lgOrAbove = useBreakpoint('lg', { breakpointRef: caseViewRef });\n const xlOrAbove = useBreakpoint('xl', { breakpointRef: caseViewRef });\n\n // DOM ids\n const initialTabId = tabItemsProp[0]?.id;\n const summaryTabId = `summary-${caseId}`;\n const utilitiesTabId = `utilities-${caseId}`;\n const persistentUtilityTabId = `persistent-utility-${caseId}`;\n const genAICoachTabId = `gen-ai-coach-${caseId}`;\n\n // Summary state handling\n let summaryExpanded = !isPreview && !!summaryExpandedProp;\n\n if (persistentUtility) {\n summaryExpanded = xlOrAbove;\n }\n\n // Focus heading on initial mount\n useEffect(() => {\n if (!caseViewRef.current) return;\n\n if (loadedRef.current) {\n focusHeadingOrContainer(caseViewRef.current, heading);\n } else {\n loadedRef.current = true;\n }\n }, [caseId]);\n\n // Utilities state handling\n\n // Used in coordination with a layoutEffect below to determine the utilities state on initial render.\n // Attempted with a ref but it did not work. Using state and enforcing a render in addition to the change render for lgOrAbove seems to fix...\n const [obeyUtilitiesExpandedProp, setObeyUtilitiesExpandedProp] = useState(lgOrAbove);\n\n // Allow the utilitiesExpandedProp to drive the utilities' state after the initial render\n useLayoutEffect(() => {\n if (lgOrAbove) setObeyUtilitiesExpandedProp(true);\n }, [lgOrAbove]);\n\n // Tracks whether a resize forced the onToggleUtilities to close the utilities when it's a drawer\n const utilitiesToggledByResize = useRef(false);\n\n // If the initial render is within the MD size, where the utility drawer renders, it must begin collapsed\n const utilitiesExpanded = obeyUtilitiesExpandedProp ? utilitiesExpandedProp : false;\n\n // Handles utilities state based on breakpoint changes.\n useAfterInitialEffect(() => {\n // If we change into the MD breakpoint range and the utilities state is expanded call the toggle prop to collapse it with controlled state\n if (mdOrAbove && !lgOrAbove && utilitiesExpandedProp) {\n onToggleUtilities?.();\n utilitiesToggledByResize.current = true;\n }\n\n if (lgOrAbove) {\n if (utilitiesToggledByResize.current && !utilitiesExpandedProp) {\n onToggleUtilities?.();\n }\n\n utilitiesToggledByResize.current = false;\n }\n // Purposely not listing utilitiesExpanded as a dependency as it is not a trigger and will be captured when BPs change\n }, [mdOrAbove, lgOrAbove]);\n\n // Handles focus of toggle button when toggled in drawer mode and when browser is resized\n useEffect(() => {\n if (isToggleButtonFocused.current) {\n toggleButtonRef.current?.focus();\n }\n\n if (!toggleButtonRef.current) {\n // Toggle button is not on DOM.\n isToggleButtonFocused.current = false;\n }\n }, [utilitiesExpanded, mdOrAbove, lgOrAbove]);\n\n // Prepare tabs\n const [tabItems, tabContent] = useMemo(() => {\n const summaryTab = { id: summaryTabId, name: t('summary') };\n const summaryTabContent = {\n id: summaryTabId,\n content: (\n <Card>\n <StyledSummaryTabContent>\n <CaseSummaryFields {...summaryFields} />\n </StyledSummaryTabContent>\n </Card>\n )\n };\n\n let items = tabItemsProp;\n let content = tabContentProp;\n\n if (mdOrAbove) {\n if (!summaryExpanded || (persistentUtility && !xlOrAbove)) {\n items = [summaryTab, ...tabItemsProp];\n content = [summaryTabContent, ...tabContentProp];\n }\n\n return [items, content];\n }\n\n const utilityTabsItems = [];\n const utilityTabsContent = [];\n\n if (utilities) {\n utilityTabsItems.push({ id: utilitiesTabId, name: t('utilities') });\n utilityTabsContent.push({\n id: utilitiesTabId,\n content: <Flex container={{ direction: 'column', gap: 2 }}>{utilities}</Flex>\n });\n }\n\n if (persistentUtility) {\n utilityTabsItems.push({ id: persistentUtilityTabId, name: persistentUtility.title });\n utilityTabsContent.push({ id: persistentUtilityTabId, content: persistentUtility?.content });\n }\n\n items = [summaryTab, ...tabItemsProp, ...utilityTabsItems];\n content = [summaryTabContent, ...tabContentProp, ...utilityTabsContent];\n\n if (genAICoachProps) {\n const genAICoachTabItem: Tab = { id: genAICoachTabId, name: t('coach', ['Pega GenAI™']) };\n items.push(genAICoachTabItem);\n content.push({\n id: genAICoachTabId,\n content: <GenAICoach {...genAICoachProps} variant={{ placement: 'fullpage' }} />\n });\n }\n\n return [items, content];\n }, [\n tabItemsProp,\n summaryTabId,\n mdOrAbove,\n summaryExpanded,\n persistentUtility,\n xlOrAbove,\n tabContentProp,\n utilities,\n utilitiesTabId,\n persistentUtilityTabId\n ]);\n\n // Grid layout props\n let caseViewGridContainer = {\n cols: 'minmax(0, 1fr)',\n colGap: 0,\n rows: 'minmax(0, max-content) auto',\n areas: `\n \"summary\"\n \"work-area\"\n `\n };\n\n const sharedGridProps = {\n colGap: 2,\n rows: caseViewGridContainer.rows\n };\n\n if (persistentUtility) {\n if (xlOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, max-content) minmax(0, 1fr) repeat(2, minmax(0, max-content))',\n areas: '\"summary work-area persistentUtility utilities\"'\n };\n } else if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, 1fr) repeat(2, minmax(0, max-content))',\n areas: `\n \"summary summary summary\"\n \"work-area persistentUtility utilities\"\n `\n };\n }\n } else if (summaryExpanded) {\n if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content)',\n areas: '\"summary work-area utilities\"'\n };\n }\n } else if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, 1fr) minmax(0, max-content)',\n areas: `\n \"summary summary\"\n \"work-area utilities\"\n `\n };\n }\n\n // Apply sticky columns\n const scrollStickOptions = useRef<ScrollStickOptions & { elements: Set<HTMLElement> }>({\n elements: new Set()\n });\n\n const stickOffset = useMemo(() => {\n if (windowIsAvailable && caseViewRef.current) {\n return parseFloat(\n window.getComputedStyle(caseViewRef.current).getPropertyValue('--appshell-offset')\n );\n }\n\n return 0;\n }, [caseViewRef.current]);\n\n useScrollStick(\n // isMediumOrAbove means side by side columns | | |\n mdOrAbove ? { ...scrollStickOptions.current, offset: stickOffset } : undefined\n );\n\n // Preview set summary tab active\n useEffect(() => {\n if (isPreview) {\n onTabClick(summaryTabId);\n }\n }, []);\n\n // Initial tab selection\n useEffect(() => {\n if (\n mdOrAbove &&\n summaryExpanded &&\n !persistentUtility &&\n (currentTabId === summaryTabId || currentTabId === utilitiesTabId)\n ) {\n onTabClick(tabItemsProp[0]?.id);\n }\n // Toggle utilities tab selection\n if (mdOrAbove && [utilitiesTabId, persistentUtilityTabId].includes(currentTabId)) {\n onTabClick(initialTabId);\n }\n }, [mdOrAbove]);\n\n // Initial / summary tab selection\n useEffect(() => {\n if (!smOrAbove && currentTabId === initialTabId) {\n onTabClick(summaryTabId);\n } else if (smOrAbove && currentTabId === summaryTabId) {\n onTabClick(initialTabId);\n }\n }, [smOrAbove]);\n\n // Summary tab selection\n useEffect(() => {\n if (isPreview) {\n onTabClick(summaryTabId);\n }\n }, [isPreview]);\n\n // Initial tab selection\n useEffect(() => {\n if (summaryExpanded && currentTabId === summaryTabId) {\n onTabClick(initialTabId);\n }\n }, [summaryExpanded]);\n\n // Handles scrolling to tab content for newly clicked tab\n useEffect(() => {\n if (!tabContentEl) return;\n const scrollPos = window.scrollY;\n const windowHeight = document.documentElement.clientHeight;\n const bottomPos = scrollPos + windowHeight * 0.8;\n const tabContentPos = tabContentEl.offsetTop;\n if (tabContentPos > bottomPos) {\n const top = tabContentPos - windowHeight * 0.2;\n window.scrollTo({ top, behavior: 'smooth' });\n }\n }, [currentTabId]);\n\n // We need a css variable for the height of the case summary when it is collapsed into a header like layout\n useLayoutEffect(() => {\n if (!caseViewRef.current || !summaryRef.current) return;\n\n caseViewRef.current.style.setProperty(\n '--summary-height',\n `${!summaryExpanded ? summaryRef.current.offsetHeight : 0}px`\n );\n }, [summaryExpanded]);\n\n const utilitiesAndGenAI = (\n <>\n <Flex\n as={StyledUtilitiesWrapper}\n container={{ gap: 2, direction: 'column' }}\n genAIHeight={genAIHeight}\n >\n {utilities}\n </Flex>\n {genAICoachProps && (\n <GenAICoach\n {...genAICoachProps}\n variant={{\n placement: 'utilities',\n state: genAIState,\n onStateChange: setGenAIState,\n setGenAIHeight\n }}\n />\n )}\n </>\n );\n\n // CaseView context value\n // Choosing not to memo for now due to extent of deps and how often they change. Optimize as needed.\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const ctxValue: CaseViewContextValue = {\n testIds,\n caseId,\n heading,\n subheading,\n caseType,\n caseLink,\n parentCases,\n icon,\n followed,\n onFollowedChange,\n actions,\n promotedActions,\n onEdit,\n summaryFields,\n tabs: {\n items: tabItems,\n onClick: onTabClick,\n currentTabId\n },\n stages,\n tasks,\n persistentUtility,\n intelligentGuidance,\n summaryExpanded,\n utilitiesExpanded,\n onToggleSummary,\n isPreview,\n aboveSM: smOrAbove,\n aboveMD: mdOrAbove,\n aboveLG: lgOrAbove,\n aboveXL: xlOrAbove\n };\n\n const [tabPanelEls, getTabPanelCbRef] = useRefMap<HTMLDivElement>();\n\n // The following effects are dedicated to resizeTable handling.\n useLayoutEffect(() => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n const currentTabPanelEl = tabPanelEls.get(currentTabId)!;\n const workAreaEl = workAreaRef.current;\n\n resizeTable(currentTabPanelEl, workAreaEl);\n\n const onTabChange = () => {\n resizeTable(currentTabPanelEl, workAreaEl);\n };\n\n // TODO: optimize\n const mo = new MutationObserver(() => {\n resizeTable(currentTabPanelEl, workAreaEl);\n });\n\n mo.observe(currentTabPanelEl, { childList: true, subtree: true });\n\n currentTabPanelEl.addEventListener('cosmos-tab-changed', onTabChange);\n\n return () => {\n mo.disconnect();\n currentTabPanelEl.removeEventListener('cosmos-tab-changed', onTabChange);\n };\n });\n\n const [bannersStagesTasksEl, setBannersStagesTasksEl] = useElement<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!bannersStagesTasksEl) return;\n\n const observer = new ResizeObserver(() => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n resizeTable(tabPanelEls.get(currentTabId)!, workAreaRef.current);\n });\n\n observer.observe(bannersStagesTasksEl);\n\n return () => {\n observer.disconnect();\n };\n }, [bannersStagesTasksEl, currentTabId]);\n\n useEffect(() => {\n const onResize = () => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n resizeTable(tabPanelEls.get(currentTabId)!, workAreaRef.current);\n };\n\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [currentTabId]);\n\n const utilitiesHeading = (\n <StyledUtilitiesHeading variant='h2'>{t('utilities')}</StyledUtilitiesHeading>\n );\n\n const utilitiesToggleButton = (\n <StyledExpandCollapseUtilitiesButton\n compact\n icon\n label={t(utilitiesExpanded ? 'collapse' : 'expand')}\n aria-label={t(utilitiesExpanded ? 'collapse_utilities_panel' : 'expand_utilities_panel')}\n onClick={() => {\n if (!obeyUtilitiesExpandedProp && utilitiesExpandedProp) {\n setObeyUtilitiesExpandedProp(true);\n } else {\n onToggleUtilities?.();\n }\n }}\n onFocus={() => {\n isToggleButtonFocused.current = true;\n }}\n onBlur={() => {\n isToggleButtonFocused.current = false;\n }}\n ref={toggleButtonRef}\n >\n <Icon name={utilitiesExpanded ? `arrow-micro-${end}` : `arrow-micro-${start}`} />\n </StyledExpandCollapseUtilitiesButton>\n );\n\n const shouldRenderMobileTabs =\n !mdOrAbove || (persistentUtility && !xlOrAbove) || !summaryExpanded;\n\n // Here we go...\n return (\n <>\n <CaseViewContext.Provider value={ctxValue}>\n {/* Root element */}\n <Grid\n data-testid={testIds.root}\n {...restProps}\n as={StyledCaseView}\n ref={caseViewRef}\n container={caseViewGridContainer}\n item={{ area: 'case-view' }}\n >\n {/* Summary */}\n <Grid\n as={StyledSummary}\n item={{ area: 'summary' }}\n desktop={mdOrAbove && (!persistentUtility || xlOrAbove) && !summaryExpanded}\n isLargeOrAbove={lgOrAbove}\n ref={summaryRef}\n >\n <CaseSummary tabsRef={tabsRef} />\n </Grid>\n\n {/* Work area */}\n <Flex\n container={{\n direction: 'column',\n alignContent: 'start',\n rowGap: 2\n }}\n as={StyledWorkArea}\n persistentUtility={Boolean(persistentUtility)}\n ref={(el: HTMLDivElement) => {\n workAreaRef.current = el;\n if (el) scrollStickOptions.current?.elements.add(el);\n }}\n >\n {(banners || stages || tasks) && (\n <Flex\n container={{\n direction: 'column',\n alignContent: 'start',\n rowGap: 2\n }}\n ref={setBannersStagesTasksEl}\n >\n {banners && <div data-testid={testIds.banners}>{banners}</div>}\n {stages && <div data-testid={testIds.stages}>{stages}</div>}\n {tasks && <div data-testid={testIds.tasks}>{tasks}</div>}\n </Flex>\n )}\n\n <Flex container={{ direction: 'column', alignContent: 'start' }}>\n {shouldRenderMobileTabs && (\n <Tabs\n data-testid={testIds.tabs}\n tabs={tabItems}\n onTabClick={onTabClick}\n currentTabId={currentTabId}\n aria-label={t(isPreview ? 'case_preview_tabs' : 'case_tabs')}\n ref={tabsRef}\n />\n )}\n\n <div ref={setTabContentEl}>\n {tabContent?.map(({ id, content }) => (\n <TabPanel\n data-testid={currentTabId === id ? testIds.tabContent : undefined}\n currentTabId={currentTabId}\n tabId={id}\n key={id}\n ref={getTabPanelCbRef(id)}\n tablistRef={tabsRef}\n tablistType={shouldRenderMobileTabs ? 'horizontal' : 'vertical'}\n >\n {content}\n </TabPanel>\n ))}\n </div>\n </Flex>\n </Flex>\n\n {/* Persistent utility column */}\n {persistentUtility && mdOrAbove && (\n <Grid as={StyledPersistentUtility} item={{ area: 'persistentUtility' }} data-app-region>\n {persistentUtility.content}\n </Grid>\n )}\n\n {/* Utility drawer */}\n {(utilities || genAICoachProps) && mdOrAbove && !lgOrAbove && utilitiesExpanded && (\n <Drawer\n as={StyledCaseDrawer}\n open={utilitiesExpanded}\n previewActive={previewActive}\n position='fixed'\n placement={end}\n shadow\n nullWhenClosed\n hasPersistentUtility={!!persistentUtility}\n >\n <Flex\n as={StyledCaseDrawerContent}\n container={{ direction: 'column', gap: 2 }}\n data-app-region\n >\n <Flex container={{ alignItems: 'center', justify: 'between' }}>\n {utilitiesHeading}\n {utilitiesToggleButton}\n </Flex>\n {utilitiesAndGenAI}\n </Flex>\n </Drawer>\n )}\n\n {/* Utilities */}\n {(utilities || genAICoachProps) && mdOrAbove && (\n <Grid\n data-testid={testIds.utilities}\n ref={(el: HTMLDivElement) => {\n if (el) {\n scrollStickOptions.current?.elements.add(el);\n }\n }}\n as={StyledUtilities}\n container={{\n cols: 'minmax(0, 1fr)',\n rowGap: 2\n }}\n item={{\n area: 'utilities'\n }}\n data-app-region={lgOrAbove || !utilitiesExpanded || undefined}\n aria-label={t('utilities_label')}\n >\n <Flex\n container={{\n alignItems: 'center',\n justify: utilitiesExpanded ? 'between' : 'center'\n }}\n >\n {utilitiesHeading}\n {!lgOrAbove && utilitiesExpanded ? null : utilitiesToggleButton}\n </Flex>\n\n {utilitiesExpanded && lgOrAbove && utilitiesAndGenAI}\n\n {(!utilitiesExpanded || (mdOrAbove && !lgOrAbove)) && (\n <>\n {utilitiesSummaryItems && utilitiesSummaryItems.length > 0 && (\n <UtilitiesSummary items={utilitiesSummaryItems} />\n )}\n\n {genAICoachProps && (\n <StyledCoachButton\n iconOnly\n variant='primary'\n ref={genAICoachButtonRef}\n onClick={() => setShowCoach(cur => !cur)}\n label={t('coach', ['Pega GenAI™'])}\n />\n )}\n </>\n )}\n </Grid>\n )}\n {genAICoachButtonRef.current && genAICoachProps && showCoach && (\n <UtilitySummaryItemDialog\n name={t('coach', ['Pega GenAI™'])}\n target={genAICoachButtonRef.current}\n onDismiss={() => setShowCoach(false)}\n >\n <GenAICoach\n {...genAICoachProps}\n variant={{\n placement: 'dialog',\n onClose: () => {\n genAICoachProps.onClose?.();\n setShowCoach(false);\n genAICoachButtonRef.current?.focus();\n }\n }}\n />\n </UtilitySummaryItemDialog>\n )}\n </Grid>\n </CaseViewContext.Provider>\n {intelligentGuidance}\n </>\n );\n};\n\nexport default withTestIds(CaseView, getCaseViewTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"CaseView.js","sourceRoot":"","sources":["../../../src/components/CaseView/CaseView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useLayoutEffect, useState, useContext } from 'react';\nimport type { FC } from 'react';\n\nimport {\n Flex,\n Grid,\n Icon,\n registerIcon,\n TabPanel,\n useBreakpoint,\n useScrollStick,\n useElement,\n Card,\n Drawer,\n useI18n,\n useDirection,\n Tabs,\n useAfterInitialEffect,\n windowIsAvailable,\n focusHeadingOrContainer,\n useConfiguration,\n useRefMap,\n useTestIds,\n withTestIds,\n AppShellContext,\n useConsolidatedRef\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps, Tab } from '@pega/cosmos-react-core';\nimport type { ScrollStickOptions } from '@pega/cosmos-react-core/lib/hooks/useScrollStick';\nimport * as moveRightSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-right-solid.icon';\nimport * as moveLeftSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/move-left-solid.icon';\nimport * as polarisSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';\nimport * as arrowMicroRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-right.icon';\nimport * as arrowMicroLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-left.icon';\n\nimport GenAICoach from '../GenAICoach';\nimport type { State } from '../GenAICoach/GenAICoach.types';\n\nimport CaseSummary from './CaseSummary';\nimport UtilitiesSummary from './UtilitiesSummary';\nimport {\n StyledCaseDrawer,\n StyledCaseDrawerContent,\n StyledCaseView,\n StyledWorkArea,\n StyledPersistentUtility,\n StyledSummary,\n StyledSummaryTabContent,\n StyledUtilities,\n StyledExpandCollapseUtilitiesButton,\n StyledUtilitiesHeading,\n StyledCoachButton,\n StyledUtilitiesWrapper\n} from './CaseView.styles';\nimport type { CaseViewContextValue, CaseViewProps } from './CaseView.types';\nimport CaseViewContext from './CaseView.context';\nimport CaseSummaryFields from './CaseSummaryFields';\nimport { getCaseViewTestIds } from './CaseView.test-ids';\nimport UtilitySummaryItemDialog from './UtilitySummaryItemDialog';\n\nregisterIcon(\n moveRightSolidIcon,\n moveLeftSolidIcon,\n polarisSolidIcon,\n arrowMicroRightIcon,\n arrowMicroLeftIcon\n);\n\n// This function is responsible for auto sizing table height in case tab panels.\nconst resizeTable = (tabPanelEl: HTMLDivElement, workAreaEl: HTMLDivElement) => {\n tabPanelEl.style.removeProperty('--content-height-in-view');\n\n // .rs-wrapper is currently the class used by the table component which needs to be targeted.\n const tables = Array.from(tabPanelEl.querySelectorAll('.rs-wrapper')).filter(\n table => table.getBoundingClientRect().width !== 0\n );\n\n // Only perform this logic when there is a single table in a tab's panel.\n if (tables.length !== 1) return;\n\n // This selector finds the table's root element as they are always wrapped in a Card.\n const table = tables[0].closest('article');\n\n if (!table) return;\n\n const tabPanelRect = tabPanelEl.getBoundingClientRect();\n const tableRect = table.getBoundingClientRect();\n const vpHeight = document.documentElement.clientHeight;\n const tableRectOffsetTop = tableRect.top + window.scrollY;\n const workAreaPaddingBlockEnd =\n // px unit are required for proper CSS calc calculation.\n window.getComputedStyle(workAreaEl).getPropertyValue('padding-block-end') || '0px';\n\n // Accounts for content rendered after the table.\n const tableBottomToTabPanelBottom = tabPanelRect.bottom - tableRect.bottom;\n\n // Sets a CSS variable for available height based on screen size and view state.\n // Defines an available minimum height of ~600px.\n tabPanelEl.style.setProperty(\n '--content-height-in-view',\n `max(calc(${\n vpHeight - tableRectOffsetTop - tableBottomToTabPanelBottom\n }px - ${workAreaPaddingBlockEnd}), 37.5rem)`\n );\n};\n\nconst CaseView: FC<CaseViewProps & ForwardProps> = ({\n testId,\n\n // Case data mostly visually related to the case header\n caseId,\n heading,\n subheading,\n caseType,\n caseLink,\n parentCases,\n icon,\n followed,\n onFollowedChange,\n onEdit,\n actions,\n promotedActions,\n\n // Summary content and state props\n summaryFields,\n summaryExpanded: summaryExpandedProp = true,\n onToggleSummary,\n\n // Case tabs\n tabs: { currentTabId, items: tabItemsProp, onClick: onTabClick },\n\n // Workarea related content props\n banners,\n stages,\n tasks,\n tabContent: tabContentProp = [],\n\n // Utilities content and state props\n utilities,\n utilitiesSummaryItems,\n utilitiesExpanded: utilitiesExpandedProp = true,\n onToggleUtilities,\n\n // Etc...\n persistentUtility,\n intelligentGuidance,\n isPreview = false,\n // Gen AI coach props\n genAICoachProps,\n ...restProps\n}: CaseViewProps) => {\n const testIds = useTestIds(testId, getCaseViewTestIds);\n\n // General util hooks\n const t = useI18n();\n const { previewActive } = useContext(AppShellContext);\n const { start, end } = useDirection();\n const { loadedRef } = useConfiguration();\n\n // Element refs\n const [caseViewEl, setCaseViewEl] = useElement<HTMLDivElement>();\n const caseViewRef = useConsolidatedRef(setCaseViewEl);\n const summaryRef = useRef<HTMLDivElement>(null);\n // undefined used to allow ref to be mutable. Element set below in ref callback for scroll stick.\n const workAreaRef = useRef<HTMLDivElement | undefined>();\n const toggleButtonRef = useRef<HTMLButtonElement>(null);\n const isToggleButtonFocused = useRef(false);\n const tabsRef = useRef<HTMLElement>(null);\n // Tab content\n const [tabContentEl, setTabContentEl] = useElement<HTMLElement>(null);\n // Gen AI coach state\n const genAICoachButtonRef = useRef<HTMLButtonElement>(null);\n const [showCoach, setShowCoach] = useState(false);\n const [genAIHeight, setGenAIHeight] = useState<number>();\n\n const [genAIState, setGenAIState] = useState<State>('minimized');\n\n // Breakpoint booleans\n const smOrAbove = useBreakpoint('sm');\n const mdOrAbove = useBreakpoint('md', { breakpointRef: caseViewRef });\n const lgOrAbove = useBreakpoint('lg', { breakpointRef: caseViewRef });\n const xlOrAbove = useBreakpoint('xl', { breakpointRef: caseViewRef });\n\n // DOM ids\n const initialTabId = tabItemsProp[0]?.id;\n const summaryTabId = `summary-${caseId}`;\n const utilitiesTabId = `utilities-${caseId}`;\n const persistentUtilityTabId = `persistent-utility-${caseId}`;\n const genAICoachTabId = `gen-ai-coach-${caseId}`;\n\n // Summary state handling\n let summaryExpanded = !isPreview && !!summaryExpandedProp;\n\n if (persistentUtility) {\n summaryExpanded = xlOrAbove;\n }\n\n // Focus heading on initial mount\n useEffect(() => {\n if (!caseViewRef.current) return;\n\n if (loadedRef.current) {\n focusHeadingOrContainer(caseViewRef.current, heading);\n } else {\n loadedRef.current = true;\n }\n }, [caseId]);\n\n // Utilities state handling\n\n // Used in coordination with a layoutEffect below to determine the utilities state on initial render.\n // Attempted with a ref but it did not work. Using state and enforcing a render in addition to the change render for lgOrAbove seems to fix...\n const [obeyUtilitiesExpandedProp, setObeyUtilitiesExpandedProp] = useState(lgOrAbove);\n\n // Allow the utilitiesExpandedProp to drive the utilities' state after the initial render\n useLayoutEffect(() => {\n if (lgOrAbove) setObeyUtilitiesExpandedProp(true);\n }, [lgOrAbove]);\n\n // Tracks whether a resize forced the onToggleUtilities to close the utilities when it's a drawer\n const utilitiesToggledByResize = useRef(false);\n\n // If the initial render is within the MD size, where the utility drawer renders, it must begin collapsed\n const utilitiesExpanded = obeyUtilitiesExpandedProp ? utilitiesExpandedProp : false;\n\n // Handles utilities state based on breakpoint changes.\n useAfterInitialEffect(() => {\n // If we change into the MD breakpoint range and the utilities state is expanded call the toggle prop to collapse it with controlled state\n if (mdOrAbove && !lgOrAbove && utilitiesExpandedProp) {\n onToggleUtilities?.();\n utilitiesToggledByResize.current = true;\n }\n\n if (lgOrAbove) {\n if (utilitiesToggledByResize.current && !utilitiesExpandedProp) {\n onToggleUtilities?.();\n }\n\n utilitiesToggledByResize.current = false;\n }\n // Purposely not listing utilitiesExpanded as a dependency as it is not a trigger and will be captured when BPs change\n }, [mdOrAbove, lgOrAbove]);\n\n // Handles focus of toggle button when toggled in drawer mode and when browser is resized\n useEffect(() => {\n if (isToggleButtonFocused.current) {\n toggleButtonRef.current?.focus();\n }\n\n if (!toggleButtonRef.current) {\n // Toggle button is not on DOM.\n isToggleButtonFocused.current = false;\n }\n }, [utilitiesExpanded, mdOrAbove, lgOrAbove]);\n\n // Prepare tabs\n const [tabItems, tabContent] = useMemo(() => {\n const summaryTab = { id: summaryTabId, name: t('summary') };\n const summaryTabContent = {\n id: summaryTabId,\n content: (\n <Card>\n <StyledSummaryTabContent>\n <CaseSummaryFields {...summaryFields} />\n </StyledSummaryTabContent>\n </Card>\n )\n };\n\n let items = tabItemsProp;\n let content = tabContentProp;\n\n if (mdOrAbove) {\n if (!summaryExpanded || (persistentUtility && !xlOrAbove)) {\n items = [summaryTab, ...tabItemsProp];\n content = [summaryTabContent, ...tabContentProp];\n }\n\n return [items, content];\n }\n\n const utilityTabsItems = [];\n const utilityTabsContent = [];\n\n if (utilities) {\n utilityTabsItems.push({ id: utilitiesTabId, name: t('utilities') });\n utilityTabsContent.push({\n id: utilitiesTabId,\n content: <Flex container={{ direction: 'column', gap: 2 }}>{utilities}</Flex>\n });\n }\n\n if (persistentUtility) {\n utilityTabsItems.push({ id: persistentUtilityTabId, name: persistentUtility.title });\n utilityTabsContent.push({ id: persistentUtilityTabId, content: persistentUtility?.content });\n }\n\n items = [summaryTab, ...tabItemsProp, ...utilityTabsItems];\n content = [summaryTabContent, ...tabContentProp, ...utilityTabsContent];\n\n if (genAICoachProps) {\n const genAICoachTabItem: Tab = { id: genAICoachTabId, name: t('coach', ['Pega GenAI™']) };\n items.push(genAICoachTabItem);\n content.push({\n id: genAICoachTabId,\n content: <GenAICoach {...genAICoachProps} variant={{ placement: 'fullpage' }} />\n });\n }\n\n return [items, content];\n }, [\n tabItemsProp,\n summaryTabId,\n mdOrAbove,\n summaryExpanded,\n persistentUtility,\n xlOrAbove,\n tabContentProp,\n utilities,\n utilitiesTabId,\n persistentUtilityTabId\n ]);\n\n // Grid layout props\n let caseViewGridContainer = {\n cols: 'minmax(0, 1fr)',\n colGap: 0,\n rows: 'minmax(0, max-content) auto',\n areas: `\n \"summary\"\n \"work-area\"\n `\n };\n\n const sharedGridProps = {\n colGap: 2,\n rows: caseViewGridContainer.rows\n };\n\n if (persistentUtility) {\n if (xlOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, max-content) minmax(0, 1fr) repeat(2, minmax(0, max-content))',\n areas: '\"summary work-area persistentUtility utilities\"'\n };\n } else if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, 1fr) repeat(2, minmax(0, max-content))',\n areas: `\n \"summary summary summary\"\n \"work-area persistentUtility utilities\"\n `\n };\n }\n } else if (summaryExpanded) {\n if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content)',\n areas: '\"summary work-area utilities\"'\n };\n }\n } else if (mdOrAbove) {\n caseViewGridContainer = {\n ...sharedGridProps,\n cols: 'minmax(0, 1fr) minmax(0, max-content)',\n areas: `\n \"summary summary\"\n \"work-area utilities\"\n `\n };\n }\n\n // Apply sticky columns\n const scrollStickOptions = useRef<ScrollStickOptions>({\n elements: [null, null]\n });\n\n const stickOffset = useMemo(() => {\n if (!windowIsAvailable || !caseViewEl) return 0;\n\n return parseFloat(window.getComputedStyle(caseViewEl).getPropertyValue('--appshell-offset'));\n }, [caseViewEl]);\n\n useScrollStick(\n // isMediumOrAbove means side by side columns | | |\n mdOrAbove ? { ...scrollStickOptions.current, offset: stickOffset } : undefined\n );\n\n // Preview set summary tab active\n useEffect(() => {\n if (isPreview) {\n onTabClick(summaryTabId);\n }\n }, []);\n\n // Initial tab selection\n useEffect(() => {\n if (\n mdOrAbove &&\n summaryExpanded &&\n !persistentUtility &&\n (currentTabId === summaryTabId || currentTabId === utilitiesTabId)\n ) {\n onTabClick(tabItemsProp[0]?.id);\n }\n // Toggle utilities tab selection\n if (mdOrAbove && [utilitiesTabId, persistentUtilityTabId].includes(currentTabId)) {\n onTabClick(initialTabId);\n }\n }, [mdOrAbove]);\n\n // Initial / summary tab selection\n useEffect(() => {\n if (!smOrAbove && currentTabId === initialTabId) {\n onTabClick(summaryTabId);\n } else if (smOrAbove && currentTabId === summaryTabId) {\n onTabClick(initialTabId);\n }\n }, [smOrAbove]);\n\n // Summary tab selection\n useEffect(() => {\n if (isPreview) {\n onTabClick(summaryTabId);\n }\n }, [isPreview]);\n\n // Initial tab selection\n useEffect(() => {\n if (summaryExpanded && currentTabId === summaryTabId) {\n onTabClick(initialTabId);\n }\n }, [summaryExpanded]);\n\n // Handles scrolling to tab content for newly clicked tab\n useEffect(() => {\n if (!tabContentEl) return;\n const scrollPos = window.scrollY;\n const windowHeight = document.documentElement.clientHeight;\n const bottomPos = scrollPos + windowHeight * 0.8;\n const tabContentPos = tabContentEl.offsetTop;\n if (tabContentPos > bottomPos) {\n const top = tabContentPos - windowHeight * 0.2;\n window.scrollTo({ top, behavior: 'smooth' });\n }\n }, [currentTabId]);\n\n // We need a css variable for the height of the case summary when it is collapsed into a header like layout\n useLayoutEffect(() => {\n if (!caseViewRef.current || !summaryRef.current) return;\n\n caseViewRef.current.style.setProperty(\n '--summary-height',\n `${!summaryExpanded ? summaryRef.current.offsetHeight : 0}px`\n );\n }, [summaryExpanded]);\n\n const utilitiesAndGenAI = (\n <>\n <Flex\n as={StyledUtilitiesWrapper}\n container={{ gap: 2, direction: 'column' }}\n genAIHeight={genAIHeight}\n >\n {utilities}\n </Flex>\n {genAICoachProps && (\n <GenAICoach\n {...genAICoachProps}\n variant={{\n placement: 'utilities',\n state: genAIState,\n onStateChange: setGenAIState,\n setGenAIHeight\n }}\n />\n )}\n </>\n );\n\n // CaseView context value\n // Choosing not to memo for now due to extent of deps and how often they change. Optimize as needed.\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const ctxValue: CaseViewContextValue = {\n testIds,\n caseId,\n heading,\n subheading,\n caseType,\n caseLink,\n parentCases,\n icon,\n followed,\n onFollowedChange,\n actions,\n promotedActions,\n onEdit,\n summaryFields,\n tabs: {\n items: tabItems,\n onClick: onTabClick,\n currentTabId\n },\n stages,\n tasks,\n persistentUtility,\n intelligentGuidance,\n summaryExpanded,\n utilitiesExpanded,\n onToggleSummary,\n isPreview,\n aboveSM: smOrAbove,\n aboveMD: mdOrAbove,\n aboveLG: lgOrAbove,\n aboveXL: xlOrAbove\n };\n\n const [tabPanelEls, getTabPanelCbRef] = useRefMap<HTMLDivElement>();\n\n // The following effects are dedicated to resizeTable handling.\n useLayoutEffect(() => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n const currentTabPanelEl = tabPanelEls.get(currentTabId)!;\n const workAreaEl = workAreaRef.current;\n\n resizeTable(currentTabPanelEl, workAreaEl);\n\n const onTabChange = () => {\n resizeTable(currentTabPanelEl, workAreaEl);\n };\n\n // TODO: optimize\n const mo = new MutationObserver(() => {\n resizeTable(currentTabPanelEl, workAreaEl);\n });\n\n mo.observe(currentTabPanelEl, { childList: true, subtree: true });\n\n currentTabPanelEl.addEventListener('cosmos-tab-changed', onTabChange);\n\n return () => {\n mo.disconnect();\n currentTabPanelEl.removeEventListener('cosmos-tab-changed', onTabChange);\n };\n });\n\n const [bannersStagesTasksEl, setBannersStagesTasksEl] = useElement<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!bannersStagesTasksEl) return;\n\n const observer = new ResizeObserver(() => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n resizeTable(tabPanelEls.get(currentTabId)!, workAreaRef.current);\n });\n\n observer.observe(bannersStagesTasksEl);\n\n return () => {\n observer.disconnect();\n };\n }, [bannersStagesTasksEl, currentTabId]);\n\n useEffect(() => {\n const onResize = () => {\n if (!tabPanelEls.has(currentTabId) || !workAreaRef.current) return;\n\n resizeTable(tabPanelEls.get(currentTabId)!, workAreaRef.current);\n };\n\n window.addEventListener('resize', onResize);\n\n return () => {\n window.removeEventListener('resize', onResize);\n };\n }, [currentTabId]);\n\n const utilitiesHeading = (\n <StyledUtilitiesHeading variant='h2'>{t('utilities')}</StyledUtilitiesHeading>\n );\n\n const utilitiesToggleButton = (\n <StyledExpandCollapseUtilitiesButton\n compact\n icon\n label={t(utilitiesExpanded ? 'collapse' : 'expand')}\n aria-label={t(utilitiesExpanded ? 'collapse_utilities_panel' : 'expand_utilities_panel')}\n onClick={() => {\n if (!obeyUtilitiesExpandedProp && utilitiesExpandedProp) {\n setObeyUtilitiesExpandedProp(true);\n } else {\n onToggleUtilities?.();\n }\n }}\n onFocus={() => {\n isToggleButtonFocused.current = true;\n }}\n onBlur={() => {\n isToggleButtonFocused.current = false;\n }}\n ref={toggleButtonRef}\n >\n <Icon name={utilitiesExpanded ? `arrow-micro-${end}` : `arrow-micro-${start}`} />\n </StyledExpandCollapseUtilitiesButton>\n );\n\n const shouldRenderMobileTabs =\n !mdOrAbove || (persistentUtility && !xlOrAbove) || !summaryExpanded;\n\n // Here we go...\n return (\n <>\n <CaseViewContext.Provider value={ctxValue}>\n {/* Root element */}\n <Grid\n data-testid={testIds.root}\n {...restProps}\n as={StyledCaseView}\n ref={caseViewRef}\n container={caseViewGridContainer}\n item={{ area: 'case-view' }}\n >\n {/* Summary */}\n <Grid\n as={StyledSummary}\n item={{ area: 'summary' }}\n desktop={mdOrAbove && (!persistentUtility || xlOrAbove) && !summaryExpanded}\n isLargeOrAbove={lgOrAbove}\n ref={summaryRef}\n >\n <CaseSummary tabsRef={tabsRef} />\n </Grid>\n\n {/* Work area */}\n <Flex\n container={{\n direction: 'column',\n alignContent: 'start',\n rowGap: 2\n }}\n as={StyledWorkArea}\n persistentUtility={Boolean(persistentUtility)}\n ref={(el: HTMLDivElement) => {\n workAreaRef.current = el;\n scrollStickOptions.current.elements[0] = el;\n }}\n >\n {(banners || stages || tasks) && (\n <Flex\n container={{\n direction: 'column',\n alignContent: 'start',\n rowGap: 2\n }}\n ref={setBannersStagesTasksEl}\n >\n {banners && <div data-testid={testIds.banners}>{banners}</div>}\n {stages && <div data-testid={testIds.stages}>{stages}</div>}\n {tasks && <div data-testid={testIds.tasks}>{tasks}</div>}\n </Flex>\n )}\n\n <Flex container={{ direction: 'column', alignContent: 'start' }}>\n {shouldRenderMobileTabs && (\n <Tabs\n data-testid={testIds.tabs}\n tabs={tabItems}\n onTabClick={onTabClick}\n currentTabId={currentTabId}\n aria-label={t(isPreview ? 'case_preview_tabs' : 'case_tabs')}\n ref={tabsRef}\n />\n )}\n\n <div ref={setTabContentEl}>\n {tabContent?.map(({ id, content }) => (\n <TabPanel\n data-testid={currentTabId === id ? testIds.tabContent : undefined}\n currentTabId={currentTabId}\n tabId={id}\n key={id}\n ref={getTabPanelCbRef(id)}\n tablistRef={tabsRef}\n tablistType={shouldRenderMobileTabs ? 'horizontal' : 'vertical'}\n >\n {content}\n </TabPanel>\n ))}\n </div>\n </Flex>\n </Flex>\n\n {/* Persistent utility column */}\n {persistentUtility && mdOrAbove && (\n <Grid as={StyledPersistentUtility} item={{ area: 'persistentUtility' }} data-app-region>\n {persistentUtility.content}\n </Grid>\n )}\n\n {/* Utility drawer */}\n {(utilities || genAICoachProps) && mdOrAbove && !lgOrAbove && utilitiesExpanded && (\n <Drawer\n as={StyledCaseDrawer}\n open={utilitiesExpanded}\n previewActive={previewActive}\n position='fixed'\n placement={end}\n shadow\n nullWhenClosed\n hasPersistentUtility={!!persistentUtility}\n >\n <Flex\n as={StyledCaseDrawerContent}\n container={{ direction: 'column', gap: 2 }}\n data-app-region\n >\n <Flex container={{ alignItems: 'center', justify: 'between' }}>\n {utilitiesHeading}\n {utilitiesToggleButton}\n </Flex>\n {utilitiesAndGenAI}\n </Flex>\n </Drawer>\n )}\n\n {/* Utilities */}\n {(utilities || genAICoachProps) && mdOrAbove && (\n <Grid\n data-testid={testIds.utilities}\n ref={(el: HTMLDivElement) => {\n scrollStickOptions.current.elements[1] = el;\n }}\n as={StyledUtilities}\n container={{\n cols: 'minmax(0, 1fr)',\n rowGap: 2\n }}\n item={{\n area: 'utilities'\n }}\n data-app-region={lgOrAbove || !utilitiesExpanded || undefined}\n aria-label={t('utilities_label')}\n >\n <Flex\n container={{\n alignItems: 'center',\n justify: utilitiesExpanded ? 'between' : 'center'\n }}\n >\n {utilitiesHeading}\n {!lgOrAbove && utilitiesExpanded ? null : utilitiesToggleButton}\n </Flex>\n\n {utilitiesExpanded && lgOrAbove && utilitiesAndGenAI}\n\n {(!utilitiesExpanded || (mdOrAbove && !lgOrAbove)) && (\n <>\n {utilitiesSummaryItems && utilitiesSummaryItems.length > 0 && (\n <UtilitiesSummary\n items={utilitiesSummaryItems}\n isExpanded={utilitiesExpanded}\n />\n )}\n\n {genAICoachProps && (\n <StyledCoachButton\n iconOnly\n variant='primary'\n ref={genAICoachButtonRef}\n onClick={() => setShowCoach(cur => !cur)}\n label={t('coach', ['Pega GenAI™'])}\n />\n )}\n </>\n )}\n </Grid>\n )}\n {genAICoachButtonRef.current && genAICoachProps && showCoach && (\n <UtilitySummaryItemDialog\n name={t('coach', ['Pega GenAI™'])}\n target={genAICoachButtonRef.current}\n onDismiss={() => setShowCoach(false)}\n >\n <GenAICoach\n {...genAICoachProps}\n variant={{\n placement: 'dialog',\n onClose: () => {\n genAICoachProps.onClose?.();\n setShowCoach(false);\n genAICoachButtonRef.current?.focus();\n }\n }}\n />\n </UtilitySummaryItemDialog>\n )}\n </Grid>\n </CaseViewContext.Provider>\n {intelligentGuidance}\n </>\n );\n};\n\nexport default withTestIds(CaseView, getCaseViewTestIds);\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { DefaultTheme } from 'styled-components';
|
|
2
|
+
import type { AppShellContextValue } from '@pega/cosmos-react-core/lib/components/AppShell/AppShellContext';
|
|
3
3
|
export declare const StyledCaseSummaryFields: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
4
4
|
export declare const StyledSummaryPrimaryList: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").FieldValueListProps & import("@pega/cosmos-react-core").ForwardProps> & {
|
|
5
|
-
getTestIds: (testIdProp?:
|
|
5
|
+
getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly []>;
|
|
6
6
|
}, DefaultTheme, {
|
|
7
|
-
wrapped?: boolean
|
|
7
|
+
wrapped?: boolean;
|
|
8
8
|
}, never>;
|
|
9
9
|
export declare const StyledSummarySecondaryList: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").FieldValueListProps & import("@pega/cosmos-react-core").ForwardProps> & {
|
|
10
|
-
getTestIds: (testIdProp?:
|
|
10
|
+
getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly []>;
|
|
11
11
|
}, DefaultTheme, {}, never>;
|
|
12
12
|
export declare const StyledSummaryTabContent: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").CardContentProps & import("@pega/cosmos-react-core").ForwardProps>, DefaultTheme, {}, never>;
|
|
13
13
|
export declare const StyledCaseHeader: import("styled-components").StyledComponent<"header", DefaultTheme, {}, never>;
|
|
@@ -17,34 +17,34 @@ export declare const StyledHeaderActions: import("styled-components").StyledComp
|
|
|
17
17
|
offsetEnd: boolean;
|
|
18
18
|
}, never>;
|
|
19
19
|
export declare const StyledCaseHeaderText: import("styled-components").StyledComponent<"hgroup", DefaultTheme, {}, never>;
|
|
20
|
-
export declare const StyledCaseHeaderPromotedAction: import("styled-components").StyledComponent<import("
|
|
20
|
+
export declare const StyledCaseHeaderPromotedAction: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").ButtonProps>, DefaultTheme, {}, never>;
|
|
21
21
|
export declare const StyledHeaderSummaryBlock: import("styled-components").StyledComponent<"div", DefaultTheme, {
|
|
22
22
|
hasItems: boolean;
|
|
23
23
|
}, never>;
|
|
24
24
|
export declare const StyledHeaderSummary: import("styled-components").StyledComponent<"dl", DefaultTheme, {}, never>;
|
|
25
25
|
export declare const StyledHeaderSummaryValue: import("styled-components").StyledComponent<"dd", DefaultTheme, {
|
|
26
|
-
bold?: boolean
|
|
27
|
-
truncate?: boolean
|
|
26
|
+
bold?: boolean;
|
|
27
|
+
truncate?: boolean;
|
|
28
28
|
theme: DefaultTheme;
|
|
29
29
|
}, never>;
|
|
30
30
|
export declare const StyledCaseSummaryInfo: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
31
31
|
export declare const StyledCaseSummaryContainer: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
32
|
-
export declare const StyledExpandCollapseButton: import("styled-components").StyledComponent<import("
|
|
33
|
-
export declare const StyledExpandCollapseSummaryButton: import("styled-components").StyledComponent<import("
|
|
32
|
+
export declare const StyledExpandCollapseButton: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").ButtonProps>, DefaultTheme, {}, never>;
|
|
33
|
+
export declare const StyledExpandCollapseSummaryButton: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").ButtonProps>, DefaultTheme, {}, never>;
|
|
34
34
|
export declare const StyledCaseSummary: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
35
35
|
export declare const StyledWorkArea: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
36
|
-
export declare const StyledUtilitiesHeading: import("styled-components").StyledComponent<import("
|
|
37
|
-
export declare const StyledExpandCollapseUtilitiesButton: import("styled-components").StyledComponent<import("
|
|
36
|
+
export declare const StyledUtilitiesHeading: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").TextProps>, DefaultTheme, {}, never>;
|
|
37
|
+
export declare const StyledExpandCollapseUtilitiesButton: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").ButtonProps>, DefaultTheme, {}, never>;
|
|
38
38
|
export declare const StyledUtilities: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
39
39
|
export declare const StyledSummary: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
40
40
|
export declare const StyledCaseDrawer: import("styled-components").StyledComponent<"div", DefaultTheme, {
|
|
41
|
-
previewActive?:
|
|
41
|
+
previewActive?: AppShellContextValue["previewActive"];
|
|
42
42
|
}, never>;
|
|
43
43
|
export declare const StyledCaseDrawerContent: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
44
44
|
export declare const StyledPersistentUtility: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
45
45
|
export declare const ScrollStick: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
46
46
|
export declare const StyledCaseView: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
47
|
-
export declare const StyledUtilitiesHeader: import("styled-components").StyledComponent<import("
|
|
47
|
+
export declare const StyledUtilitiesHeader: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").TextProps>, DefaultTheme, {}, never>;
|
|
48
48
|
export declare const StyledCoachButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<import("@pega/cosmos-react-core").AIButtonProps> & import("react").RefAttributes<HTMLButtonElement>>, DefaultTheme, {}, never>;
|
|
49
49
|
export declare const StyledUtilitiesWrapper: import("styled-components").StyledComponent<"div", DefaultTheme, {
|
|
50
50
|
genAIHeight: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.styles.d.ts","sourceRoot":"","sources":["../../../src/components/CaseView/CaseView.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseView.styles.d.ts","sourceRoot":"","sources":["../../../src/components/CaseView/CaseView.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA+BtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AAa5G,eAAO,MAAM,uBAAuB,6EAAe,CAAC;AAIpD,eAAO,MAAM,wBAAwB;2BAef,CAAC,oEAAkC,yBAAa;;cAd1D,OAAO;SAqBjB,CAAC;AAIH,eAAO,MAAM,0BAA0B;2BAXjB,CAAC;2BAiBrB,CAAC;AAEH,eAAO,MAAM,uBAAuB,8MAelC,CAAC;AAIH,eAAO,MAAM,gBAAgB,gFA8B3B,CAAC;AAIH,eAAO,MAAM,oBAAoB,+EAShC,CAAC;AAIF,eAAO,MAAM,gBAAgB,2EAAa,CAAC;AAI3C,eAAO,MAAM,mBAAmB;eAA2B,OAAO;SAehE,CAAC;AAIH,eAAO,MAAM,oBAAoB,gFA8D/B,CAAC;AAIH,eAAO,MAAM,8BAA8B,wLA6CzC,CAAC;AAIH,eAAO,MAAM,wBAAwB;cAA0B,OAAO;SAqBpE,CAAC;AAmCH,eAAO,MAAM,mBAAmB,4EA0C9B,CAAC;AAIH,eAAO,MAAM,wBAAwB;WAK5B,OAAO;eACH,OAAO;WACX,YAAY;SAmCnB,CAAC;AAIH,eAAO,MAAM,qBAAqB,6EAYhC,CAAC;AAIH,eAAO,MAAM,0BAA0B,6EAIrC,CAAC;AAIH,eAAO,MAAM,0BAA0B,wLASrC,CAAC;AAIH,eAAO,MAAM,iCAAiC,wLAgC5C,CAAC;AAIH,eAAO,MAAM,iBAAiB,6EAY5B,CAAC;AAEH,eAAO,MAAM,cAAc,6EAwDzB,CAAC;AAIH,eAAO,MAAM,sBAAsB,sLAAiB,CAAC;AAErD,eAAO,MAAM,mCAAmC,wLAO9C,CAAC;AAIH,eAAO,MAAM,eAAe,6EA8B1B,CAAC;AAIH,eAAO,MAAM,aAAa,6EAyBxB,CAAC;AAIH,eAAO,MAAM,gBAAgB;oBACX,oBAAoB,CAAC,eAAe,CAAC;SAwBrD,CAAC;AAIH,eAAO,MAAM,uBAAuB,6EAOlC,CAAC;AAIH,eAAO,MAAM,uBAAuB,6EAUlC,CAAC;AAIH,eAAO,MAAM,WAAW,6EAGvB,CAAC;AAEF,eAAO,MAAM,cAAc,6EAiBzB,CAAC;AAIH,eAAO,MAAM,qBAAqB,sLAMjC,CAAC;AAIF,eAAO,MAAM,iBAAiB,sPAoB5B,CAAC;AAIH,eAAO,MAAM,sBAAsB;iBACpB,MAAM,GAAG,SAAS;SAO/B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
2
|
import { getContrast, hideVisually, meetsContrastGuidelines, rgba, transparentize } from 'polished';
|
|
3
3
|
import { useContext } from 'react';
|
|
4
|
-
import { Button, calculateFontSize, CardContent, defaultThemeProp, StyledBreadcrumbs, StyledButtonLink, StyledFieldValue, StyledStackedFieldValue, StyledIcon, StyledLabel, StyledPopover, StyledText, StyledTooltip, tryCatch, FieldValueList, StyledLink, readableHue, StyledCard, Text, readableColor, AppShellContext, AIButton } from '@pega/cosmos-react-core';
|
|
4
|
+
import { Button, calculateFontSize, CardContent, defaultThemeProp, StyledBreadcrumbs, StyledButtonLink, StyledFieldValue, StyledStackedFieldValue, StyledIcon, StyledLabel, StyledPopover, StyledText, StyledTooltip, tryCatch, FieldValueList, StyledLink, readableHue, StyledCard, Text, readableColor, AppShellContext, AIButton, StyledButton } from '@pega/cosmos-react-core';
|
|
5
5
|
import { StyledMenu } from '@pega/cosmos-react-core/lib/components/Menu/Menu.styles';
|
|
6
6
|
import { oneColumnDetailsColumnWidth } from '@pega/cosmos-react-work/lib/components/Details/Details.styles';
|
|
7
7
|
import { headerHeight } from '@pega/cosmos-react-core/lib/components/AppShell/AppShell.styles';
|
|
@@ -57,9 +57,11 @@ export const StyledSummaryTabContent = styled(CardContent)(({ theme }) => {
|
|
|
57
57
|
});
|
|
58
58
|
StyledSummaryTabContent.defaultProps = defaultThemeProp;
|
|
59
59
|
export const StyledCaseHeader = styled.header(({ theme }) => {
|
|
60
|
-
const
|
|
60
|
+
const { components: { 'case-view': { header: { 'background-color': backgroundColor, 'foreground-color': foregroundColor } } } } = theme;
|
|
61
|
+
/* If the foreground-color is auto, we calculate the text color based on the background color. */
|
|
62
|
+
const color = tryCatch(() => foregroundColor === 'auto' ? readableColor(backgroundColor) : foregroundColor);
|
|
61
63
|
return css `
|
|
62
|
-
background-color: ${
|
|
64
|
+
background-color: ${backgroundColor};
|
|
63
65
|
color: ${color};
|
|
64
66
|
padding: ${theme.base.spacing} calc(2 * ${theme.base.spacing});
|
|
65
67
|
position: relative;
|
|
@@ -99,12 +101,20 @@ export const StyledHeaderActions = styled.div(({ offsetEnd, theme }) => {
|
|
|
99
101
|
css `
|
|
100
102
|
padding-inline-end: ${inlineEndButtonOffset};
|
|
101
103
|
`};
|
|
104
|
+
|
|
105
|
+
${StyledButton} {
|
|
106
|
+
margin-inline-start: 0;
|
|
107
|
+
}
|
|
102
108
|
`;
|
|
103
109
|
});
|
|
104
110
|
StyledHeaderActions.defaultProps = defaultThemeProp;
|
|
105
111
|
export const StyledCaseHeaderText = styled.hgroup(({ theme }) => {
|
|
106
|
-
const color
|
|
107
|
-
|
|
112
|
+
const { components: { 'case-view': { header: { 'background-color': backgroundColor, 'foreground-color': foregroundColor } } } } = theme;
|
|
113
|
+
/* If the foreground-color is auto, we calculate the text color and transparentColor based on the background color. */
|
|
114
|
+
const color = foregroundColor === 'auto' ? readableColor(backgroundColor) : foregroundColor;
|
|
115
|
+
const transparentColor = foregroundColor === 'auto'
|
|
116
|
+
? transparentize(0.1, readableColor(backgroundColor))
|
|
117
|
+
: foregroundColor;
|
|
108
118
|
const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);
|
|
109
119
|
const idStyle = css `
|
|
110
120
|
color: ${transparentColor};
|
|
@@ -151,17 +161,19 @@ export const StyledCaseHeaderText = styled.hgroup(({ theme }) => {
|
|
|
151
161
|
});
|
|
152
162
|
StyledCaseHeaderText.defaultProps = defaultThemeProp;
|
|
153
163
|
export const StyledCaseHeaderPromotedAction = styled(Button)(({ theme }) => {
|
|
154
|
-
const { base: { palette: { '
|
|
155
|
-
|
|
156
|
-
const
|
|
164
|
+
const { base: { palette: { interactive } }, components: { 'case-view': { header: { 'background-color': backgroundColor, 'foreground-color': foregroundColor } } } } = theme;
|
|
165
|
+
/* If foreground color is auto, we calculate the text color based on the background color. */
|
|
166
|
+
const textColor = foregroundColor === 'auto' ? readableColor(backgroundColor) : foregroundColor;
|
|
167
|
+
const interactiveUsable = getContrast(backgroundColor, interactive) >= 4.5;
|
|
168
|
+
const color = interactiveUsable ? interactive : textColor;
|
|
157
169
|
let hoverBackground = rgba(color, 0.15);
|
|
158
170
|
if (interactiveUsable) {
|
|
159
171
|
hoverBackground = readableHue(hoverBackground, color);
|
|
160
172
|
}
|
|
161
173
|
return css `
|
|
162
|
-
--button-background-color: ${
|
|
174
|
+
--button-background-color: ${backgroundColor};
|
|
163
175
|
color: ${color};
|
|
164
|
-
background-color: ${
|
|
176
|
+
background-color: ${backgroundColor};
|
|
165
177
|
border-color: ${color};
|
|
166
178
|
|
|
167
179
|
@media (hover: hover) {
|