@flipdish/portal-library 1.0.64 → 1.0.66
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/dist/components/index.cjs.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.cjs.js +1 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.cjs.js.map +1 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.d.ts +3 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.js +1 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.js.map +1 -1
- package/dist/components/ui/NoResults/NoResults.cjs.js +2 -0
- package/dist/components/ui/NoResults/NoResults.cjs.js.map +1 -0
- package/dist/components/ui/NoResults/NoResults.d.ts +10 -0
- package/dist/components/ui/NoResults/NoResults.js +2 -0
- package/dist/components/ui/NoResults/NoResults.js.map +1 -0
- package/dist/components/ui/PageLayout/PageLayout.cjs.js +1 -1
- package/dist/components/ui/PageLayout/PageLayout.cjs.js.map +1 -1
- package/dist/components/ui/PageLayout/PageLayout.js +1 -1
- package/dist/components/ui/PageLayout/PageLayout.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./themes/flipdishPublicTheme.cjs.js"),i=require("./ui/NotFoundPage/NotFoundPage.cjs.js"),r=require("./ui/FlipdishStaffContainer/FlipdishStaffContainer.cjs.js"),t=require("./ui/PageLayout/PageLayout.cjs.js"),
|
|
1
|
+
"use strict";var e=require("./themes/flipdishPublicTheme.cjs.js"),i=require("./ui/NotFoundPage/NotFoundPage.cjs.js"),r=require("./ui/FlipdishStaffContainer/FlipdishStaffContainer.cjs.js"),t=require("./ui/PageLayout/PageLayout.cjs.js"),s=require("./ui/PortalMock/PortalMock.cjs.js"),o=require("./ui/LazyComponent/LazyComponent.cjs.js"),c=require("./ui/Spacer/Spacer.cjs.js"),u=require("./ui/Chip/Chip.cjs.js"),n=require("./ui/Switch/Switch.cjs.js"),a=require("./ui/Form/utilities/formValidation.cjs.js"),d=require("./ui/Form/GenericAutocompleteField.cjs.js"),l=require("./ui/Form/GenericFormContainer.cjs.js"),p=require("./ui/Form/GenericTextField.cjs.js"),j=require("./ui/Form/PaginatedAutocompleteField.cjs.js"),x=require("./ui/GenericDatePickerField/GenericDatePickerField.cjs.js"),m=require("./ui/GenericDateTimePickerField/GenericDateTimePickerField.cjs.js"),q=require("./ui/GenericRadioButtons/GenericRadioButtons.cjs.js"),F=require("./ui/DateTimeLocalizationProvider/DateTimeLocalizationProvider.cjs.js"),T=require("./ui/GenericTable/GenericTable.cjs.js"),G=require("./ui/GenericTableBody/GenericTableBody.cjs.js"),L=require("./ui/GenericTableBodyRow/GenericTableBodyRow.cjs.js"),h=require("./ui/GenericTableTitle/GenericTableTitle.cjs.js"),P=require("./ui/ListItemLink/ListItemLink.cjs.js"),g=require("./ui/ListItemLinkButton/ListItemLinkButton.cjs.js"),b=require("./ui/NoResults/NoResults.cjs.js"),k=require("@mui/icons-material/Search"),y=require("@mui/icons-material/CalendarToday"),I=require("./custom-hooks/useRenderValidText.cjs.js"),f=require("./custom-hooks/useMicroFrontendAttributes.cjs.js"),B=require("./renderUtilities/renderUtilities.cjs.js"),C=require("./genericUtilities/index.cjs.js");exports.flipdishPublicTheme=e,exports.NotFoundPage=i,exports.FlipdishStaffContainer=r,exports.PageLayout=t.default,exports.PortalMock=s,exports.LazyComponent=o,exports.Spacer=c,exports.Chip=u,exports.Switch=n,exports.formikValidate=a.formikValidate,exports.GenericAutocompleteField=d,exports.GenericFormContainer=l,exports.GenericTextField=p,exports.PaginatedAutocompleteField=j,exports.GenericDatePickerField=x,exports.GenericDateTimePickerField=m,exports.GenericRadioButtons=q,exports.DateTimeLocalizationProvider=F,exports.GenericTable=T,exports.GenericTableBody=G,exports.GenericTableBodyRow=L,exports.GenericTableTitle=h,exports.ListItemLink=P,exports.ListItemLinkButton=g.ListItemLinkButton,exports.NoResults=b,exports.SearchIcon=k,exports.CalendarTodayIcon=y,exports.useRenderValidText=I,exports.useMicroFrontendAttributes=f,exports.getAppId=B.getAppId,exports.getBrandId=B.getBrandId,exports.getIsFlipdishStaff=B.getIsFlipdishStaff,exports.getMicroFrontendAttribute=B.getMicroFrontendAttribute,exports.getOrgId=B.getOrgId,exports.lazyWithRetry=B.lazyWithRetry,exports.debounce=C.debounce;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -23,6 +23,7 @@ export { default as GenericTableBodyRow } from './ui/GenericTableBodyRow/Generic
|
|
|
23
23
|
export { default as GenericTableTitle } from './ui/GenericTableTitle/GenericTableTitle.js';
|
|
24
24
|
export { default as ListItemLink } from './ui/ListItemLink/ListItemLink.js';
|
|
25
25
|
export { default as ListItemLinkButton } from './ui/ListItemLinkButton/ListItemLinkButton.js';
|
|
26
|
+
export { default as NoResults } from './ui/NoResults/NoResults.js';
|
|
26
27
|
export { default as SearchIcon } from '@mui/icons-material/Search';
|
|
27
28
|
export { default as CalendarTodayIcon } from '@mui/icons-material/CalendarToday';
|
|
28
29
|
export { default as useRenderValidText } from './custom-hooks/useRenderValidText.js';
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{default as flipdishPublicTheme}from"./themes/flipdishPublicTheme.js";export{default as NotFoundPage}from"./ui/NotFoundPage/NotFoundPage.js";export{default as FlipdishStaffContainer}from"./ui/FlipdishStaffContainer/FlipdishStaffContainer.js";export{default as PageLayout}from"./ui/PageLayout/PageLayout.js";export{default as PortalMock}from"./ui/PortalMock/PortalMock.js";export{default as LazyComponent}from"./ui/LazyComponent/LazyComponent.js";export{default as Spacer}from"./ui/Spacer/Spacer.js";export{default as Chip}from"./ui/Chip/Chip.js";export{default as Switch}from"./ui/Switch/Switch.js";export{formikValidate}from"./ui/Form/utilities/formValidation.js";export{default as GenericAutocompleteField}from"./ui/Form/GenericAutocompleteField.js";export{default as GenericFormContainer}from"./ui/Form/GenericFormContainer.js";export{default as GenericTextField}from"./ui/Form/GenericTextField.js";export{default as PaginatedAutocompleteField}from"./ui/Form/PaginatedAutocompleteField.js";export{default as GenericDatePickerField}from"./ui/GenericDatePickerField/GenericDatePickerField.js";export{default as GenericDateTimePickerField}from"./ui/GenericDateTimePickerField/GenericDateTimePickerField.js";export{default as GenericRadioButtons}from"./ui/GenericRadioButtons/GenericRadioButtons.js";export{default as DateTimeLocalizationProvider}from"./ui/DateTimeLocalizationProvider/DateTimeLocalizationProvider.js";export{default as GenericTable}from"./ui/GenericTable/GenericTable.js";export{default as GenericTableBody}from"./ui/GenericTableBody/GenericTableBody.js";export{default as GenericTableBodyRow}from"./ui/GenericTableBodyRow/GenericTableBodyRow.js";export{default as GenericTableTitle}from"./ui/GenericTableTitle/GenericTableTitle.js";export{default as ListItemLink}from"./ui/ListItemLink/ListItemLink.js";export{ListItemLinkButton}from"./ui/ListItemLinkButton/ListItemLinkButton.js";export{default as SearchIcon}from"@mui/icons-material/Search";export{default as CalendarTodayIcon}from"@mui/icons-material/CalendarToday";export{default as useRenderValidText}from"./custom-hooks/useRenderValidText.js";export{default as useMicroFrontendAttributes}from"./custom-hooks/useMicroFrontendAttributes.js";export{getAppId,getBrandId,getIsFlipdishStaff,getMicroFrontendAttribute,getOrgId,lazyWithRetry}from"./renderUtilities/renderUtilities.js";export{debounce}from"./genericUtilities/index.js";
|
|
1
|
+
export{default as flipdishPublicTheme}from"./themes/flipdishPublicTheme.js";export{default as NotFoundPage}from"./ui/NotFoundPage/NotFoundPage.js";export{default as FlipdishStaffContainer}from"./ui/FlipdishStaffContainer/FlipdishStaffContainer.js";export{default as PageLayout}from"./ui/PageLayout/PageLayout.js";export{default as PortalMock}from"./ui/PortalMock/PortalMock.js";export{default as LazyComponent}from"./ui/LazyComponent/LazyComponent.js";export{default as Spacer}from"./ui/Spacer/Spacer.js";export{default as Chip}from"./ui/Chip/Chip.js";export{default as Switch}from"./ui/Switch/Switch.js";export{formikValidate}from"./ui/Form/utilities/formValidation.js";export{default as GenericAutocompleteField}from"./ui/Form/GenericAutocompleteField.js";export{default as GenericFormContainer}from"./ui/Form/GenericFormContainer.js";export{default as GenericTextField}from"./ui/Form/GenericTextField.js";export{default as PaginatedAutocompleteField}from"./ui/Form/PaginatedAutocompleteField.js";export{default as GenericDatePickerField}from"./ui/GenericDatePickerField/GenericDatePickerField.js";export{default as GenericDateTimePickerField}from"./ui/GenericDateTimePickerField/GenericDateTimePickerField.js";export{default as GenericRadioButtons}from"./ui/GenericRadioButtons/GenericRadioButtons.js";export{default as DateTimeLocalizationProvider}from"./ui/DateTimeLocalizationProvider/DateTimeLocalizationProvider.js";export{default as GenericTable}from"./ui/GenericTable/GenericTable.js";export{default as GenericTableBody}from"./ui/GenericTableBody/GenericTableBody.js";export{default as GenericTableBodyRow}from"./ui/GenericTableBodyRow/GenericTableBodyRow.js";export{default as GenericTableTitle}from"./ui/GenericTableTitle/GenericTableTitle.js";export{default as ListItemLink}from"./ui/ListItemLink/ListItemLink.js";export{ListItemLinkButton}from"./ui/ListItemLinkButton/ListItemLinkButton.js";export{default as NoResults}from"./ui/NoResults/NoResults.js";export{default as SearchIcon}from"@mui/icons-material/Search";export{default as CalendarTodayIcon}from"@mui/icons-material/CalendarToday";export{default as useRenderValidText}from"./custom-hooks/useRenderValidText.js";export{default as useMicroFrontendAttributes}from"./custom-hooks/useMicroFrontendAttributes.js";export{getAppId,getBrandId,getIsFlipdishStaff,getMicroFrontendAttribute,getOrgId,lazyWithRetry}from"./renderUtilities/renderUtilities.js";export{debounce}from"./genericUtilities/index.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/icons-material"),i=require("@mui/material"),o=require("../ListItemLink/ListItemLink.cjs.js");const r=i.styled(o,{shouldForwardProp:e=>!["borderBottom"].includes(e)&&!["disabled"].includes(e)})((({theme:e,borderBottom:t})=>({borderBottom:t??"1px solid #cecece",paddingLeft:e.spacing(4),paddingRight:e.spacing(4),"&:hover":{backgroundColor:"#eaf2ff"},"&:focus":{backgroundColor:"#eaf2ff"},color:e.palette.text.primary,textDecoration:"none"}))),n=i.styled(i.ListItemIcon,{shouldForwardProp:e=>!["iconMargin"].includes(e)})((({iconMargin:e})=>({margin:e||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),s=i.styled(i.ListItemText)((({theme:e})=>({"& .MuiListItemText-primary":{color:e.palette.text.primary},"& .MuiListItemText-secondary":{color:e.palette.text.secondary}}))),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/icons-material"),i=require("@mui/material"),o=require("../ListItemLink/ListItemLink.cjs.js");const r=i.styled(o,{shouldForwardProp:e=>!["borderBottom"].includes(e)&&!["disabled"].includes(e)&&!["selected"].includes(e)})((({theme:e,borderBottom:t,selected:i})=>({borderBottom:t??"1px solid #cecece",paddingLeft:e.spacing(4),paddingRight:e.spacing(4),"&:hover":{backgroundColor:"#eaf2ff"},"&:focus":{backgroundColor:"#eaf2ff"},color:e.palette.text.primary,textDecoration:"none",backgroundColor:i?"#eaf2ff":"inherit"}))),n=i.styled(i.ListItemIcon,{shouldForwardProp:e=>!["iconMargin"].includes(e)})((({iconMargin:e})=>({margin:e||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),s=i.styled(i.ListItemText)((({theme:e})=>({"& .MuiListItemText-primary":{color:e.palette.text.primary},"& .MuiListItemText-secondary":{color:e.palette.text.secondary}}))),d=({borderBottom:o,customTitle:d,customSubtitle:a,disabled:c=!1,onClick:l,title:u,subtitle:m,icon:p,iconMargin:x,hideIcon:b=!1,link:g,isLast:f,customButton:h,iconComponent:y,dataFd:L="",isSelected:k=!1})=>{const j=i.useTheme(),I=i.useMediaQuery(j.breakpoints.down("md")),M=!f||I,B=d||u,C=a||m;return e.jsxs(r,{borderBottom:M?o:"none",divider:M,button:!0,fdKey:L||`link-button-${u}`,to:g,onClick:l,disabled:c,selected:k,children:[p&&e.jsx(n,{iconMargin:x,children:e.jsx("img",{src:p,alt:""})}),y&&e.jsx(n,{iconMargin:x,children:y}),e.jsx(s,{primary:B,secondary:C,sx:{pr:"60px"}}),!b&&(h||e.jsx(i.IconButton,{"aria-label":`link-button-${u}`,children:e.jsx(t.KeyboardArrowRight,{})}))]})};exports.ListItemLinkButton=d,exports.default=d;
|
|
2
2
|
//# sourceMappingURL=ListItemLinkButton.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemLinkButton.cjs.js","sources":["../../../../src/components/ui/ListItemLinkButton/ListItemLinkButton.tsx"],"sourcesContent":["import React from 'react';\nimport { KeyboardArrowRight } from '@mui/icons-material';\nimport { IconButton, ListItemIcon, ListItemText, useTheme, useMediaQuery, styled } from '@mui/material';\nimport { ListItemLink } from '../ListItemLink';\n\ntype MarginType = string | number;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop)
|
|
1
|
+
{"version":3,"file":"ListItemLinkButton.cjs.js","sources":["../../../../src/components/ui/ListItemLinkButton/ListItemLinkButton.tsx"],"sourcesContent":["import React from 'react';\nimport { KeyboardArrowRight } from '@mui/icons-material';\nimport { IconButton, ListItemIcon, ListItemText, useTheme, useMediaQuery, styled } from '@mui/material';\nimport { ListItemLink } from '../ListItemLink';\n\ntype MarginType = string | number;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) && !['disabled'].includes(prop as string) && !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled?: boolean; selected: boolean }>(({ theme, borderBottom, selected }) => ({\n borderBottom: borderBottom ?? '1px solid #cecece',\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: '#eaf2ff',\n },\n '&:focus': {\n backgroundColor: '#eaf2ff',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? '#eaf2ff' : 'inherit',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link,\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n borderBottom={hasDivider ? borderBottom : 'none'}\n divider={hasDivider}\n button\n fdKey={dataFd || `link-button-${title}`}\n to={link}\n onClick={onClick}\n disabled={disabled}\n selected={isSelected}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img src={icon} alt=\"\" />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","ListItemLink","shouldForwardProp","prop","includes","theme","borderBottom","selected","paddingLeft","spacing","paddingRight","backgroundColor","color","palette","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","disabled","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","divider","button","fdKey","to","children","_jsx","jsx","src","alt","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"oNAQA,MAAMA,EAAqBC,EAAMA,OAACC,EAAc,CAC5CC,kBAAoBC,IACf,CAAC,gBAAgBC,SAASD,KAAoB,CAAC,YAAYC,SAASD,KAAoB,CAAC,YAAYC,SAASD,IAF5FH,EAG0C,EAAGK,QAAOC,eAAcC,eAAgB,CACzGD,aAAcA,GAAgB,oBAC9BE,YAAaH,EAAMI,QAAQ,GAC3BC,aAAcL,EAAMI,QAAQ,GAC5B,UAAW,CACPE,gBAAiB,WAErB,UAAW,CACPA,gBAAiB,WAGrBC,MAAOP,EAAMQ,QAAQC,KAAKC,QAC1BC,eAAgB,OAChBL,gBAAiBJ,EAAW,UAAY,cAGtCU,EAAqBjB,EAAMA,OAACkB,eAAc,CAC5ChB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD/BH,EAEK,EAAGmB,iBAAkB,CACjDC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGRC,EAAqBxB,EAAAA,OAAOyB,EAAAA,aAAPzB,EAAqB,EAAGK,YAAa,CAC5D,6BAA8B,CAC1BO,MAAOP,EAAMQ,QAAQC,KAAKC,SAE9B,+BAAgC,CAC5BH,MAAOP,EAAMQ,QAAQC,KAAKY,eAuBrBC,EAAqB,EAC9BrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,YAAW,EACXC,OACAC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMpC,EAAQqC,EAAAA,WACRC,EAAWC,EAAAA,cAAcvC,EAAMwC,YAAYC,KAAK,OAChDC,GAAcV,GAAUM,EAExBK,EAAYpB,GAAeI,EAC3BiB,EAAepB,GAAkBI,EAEvC,OACIiB,EAAAA,KAACnD,EAAkB,CACfO,aAAcyC,EAAazC,EAAe,OAC1C6C,QAASJ,EACTK,QAAM,EACNC,MAAOb,GAAU,eAAeR,IAChCsB,GAAIlB,EACJL,QAASA,EACTD,SAAUA,EACVvB,SAAUkC,EAAUc,SAAA,CAEnBrB,GACGsB,EAAAC,IAACxC,EAAmB,CAAAE,WAAYA,EAAUoC,SACtCC,EAAAA,WAAKE,IAAKxB,EAAMyB,IAAI,OAI3BpB,GAAiBiB,EAAAA,IAACvC,EAAmB,CAAAE,WAAYA,WAAaoB,IAE/DiB,EAACC,IAAAjC,GAAmBT,QAASiC,EAAWtB,UAAWuB,EAAcW,GAAI,CAAEC,GAAI,WAEzE1B,IACGG,GACGkB,MAACM,EAAUA,WAAA,CAAA,aAAa,eAAe9B,IACnCuB,SAAAC,EAAAA,IAACO,EAAAA,mBAAqB,CAAA,QAIxC"}
|
|
@@ -9,6 +9,7 @@ interface ListItemLinkButtonProps {
|
|
|
9
9
|
title?: string;
|
|
10
10
|
subtitle?: string;
|
|
11
11
|
icon?: string;
|
|
12
|
+
hideIcon?: boolean;
|
|
12
13
|
link?: string;
|
|
13
14
|
isLast?: boolean;
|
|
14
15
|
onClick?: () => void;
|
|
@@ -17,7 +18,8 @@ interface ListItemLinkButtonProps {
|
|
|
17
18
|
iconComponent?: JSX.Element;
|
|
18
19
|
iconMargin?: MarginType;
|
|
19
20
|
dataFd?: string;
|
|
21
|
+
isSelected?: boolean;
|
|
20
22
|
}
|
|
21
|
-
declare const ListItemLinkButton: ({ borderBottom, customTitle, customSubtitle, disabled, onClick, title, subtitle, icon, iconMargin, link, isLast, customButton, iconComponent, dataFd, }: ListItemLinkButtonProps) => react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare const ListItemLinkButton: ({ borderBottom, customTitle, customSubtitle, disabled, onClick, title, subtitle, icon, iconMargin, hideIcon, link, isLast, customButton, iconComponent, dataFd, isSelected, }: ListItemLinkButtonProps) => react_jsx_runtime.JSX.Element;
|
|
22
24
|
|
|
23
25
|
export { ListItemLinkButton, ListItemLinkButton as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as t,jsx as
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{KeyboardArrowRight as o}from"@mui/icons-material";import{styled as i,ListItemIcon as r,ListItemText as n,useTheme as d,useMediaQuery as a,IconButton as c}from"@mui/material";import l from"../ListItemLink/ListItemLink.js";const s=i(l,{shouldForwardProp:t=>!["borderBottom"].includes(t)&&!["disabled"].includes(t)&&!["selected"].includes(t)})((({theme:t,borderBottom:e,selected:o})=>({borderBottom:e??"1px solid #cecece",paddingLeft:t.spacing(4),paddingRight:t.spacing(4),"&:hover":{backgroundColor:"#eaf2ff"},"&:focus":{backgroundColor:"#eaf2ff"},color:t.palette.text.primary,textDecoration:"none",backgroundColor:o?"#eaf2ff":"inherit"}))),m=i(r,{shouldForwardProp:t=>!["iconMargin"].includes(t)})((({iconMargin:t})=>({margin:t||"16px",marginLeft:"0",padding:"0px",minWidth:"0"}))),p=i(n)((({theme:t})=>({"& .MuiListItemText-primary":{color:t.palette.text.primary},"& .MuiListItemText-secondary":{color:t.palette.text.secondary}}))),u=({borderBottom:i,customTitle:r,customSubtitle:n,disabled:l=!1,onClick:u,title:b,subtitle:f,icon:g,iconMargin:h,hideIcon:x=!1,link:k,isLast:L,customButton:y,iconComponent:M,dataFd:B="",isSelected:C=!1})=>{const I=d(),w=a(I.breakpoints.down("md")),F=!L||w,T=r||b,j=n||f;return t(s,{borderBottom:F?i:"none",divider:F,button:!0,fdKey:B||`link-button-${b}`,to:k,onClick:u,disabled:l,selected:C,children:[g&&e(m,{iconMargin:h,children:e("img",{src:g,alt:""})}),M&&e(m,{iconMargin:h,children:M}),e(p,{primary:T,secondary:j,sx:{pr:"60px"}}),!x&&(y||e(c,{"aria-label":`link-button-${b}`,children:e(o,{})}))]})};export{u as ListItemLinkButton,u as default};
|
|
2
2
|
//# sourceMappingURL=ListItemLinkButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemLinkButton.js","sources":["../../../../src/components/ui/ListItemLinkButton/ListItemLinkButton.tsx"],"sourcesContent":["import React from 'react';\nimport { KeyboardArrowRight } from '@mui/icons-material';\nimport { IconButton, ListItemIcon, ListItemText, useTheme, useMediaQuery, styled } from '@mui/material';\nimport { ListItemLink } from '../ListItemLink';\n\ntype MarginType = string | number;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop)
|
|
1
|
+
{"version":3,"file":"ListItemLinkButton.js","sources":["../../../../src/components/ui/ListItemLinkButton/ListItemLinkButton.tsx"],"sourcesContent":["import React from 'react';\nimport { KeyboardArrowRight } from '@mui/icons-material';\nimport { IconButton, ListItemIcon, ListItemText, useTheme, useMediaQuery, styled } from '@mui/material';\nimport { ListItemLink } from '../ListItemLink';\n\ntype MarginType = string | number;\n\n// Styled components\nconst StyledListItemLink = styled(ListItemLink, {\n shouldForwardProp: (prop) =>\n !['borderBottom'].includes(prop as string) && !['disabled'].includes(prop as string) && !['selected'].includes(prop as string),\n})<{ borderBottom?: string; disabled?: boolean; selected: boolean }>(({ theme, borderBottom, selected }) => ({\n borderBottom: borderBottom ?? '1px solid #cecece',\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n '&:hover': {\n backgroundColor: '#eaf2ff',\n },\n '&:focus': {\n backgroundColor: '#eaf2ff',\n },\n // Override link color inheritance\n color: theme.palette.text.primary,\n textDecoration: 'none',\n backgroundColor: selected ? '#eaf2ff' : 'inherit',\n}));\n\nconst StyledListItemIcon = styled(ListItemIcon, {\n shouldForwardProp: (prop) => !['iconMargin'].includes(prop as string),\n})<{ iconMargin?: MarginType }>(({ iconMargin }) => ({\n margin: iconMargin || '16px',\n marginLeft: '0',\n padding: '0px',\n minWidth: '0',\n}));\n\nconst StyledListItemText = styled(ListItemText)(({ theme }) => ({\n '& .MuiListItemText-primary': {\n color: theme.palette.text.primary,\n },\n '& .MuiListItemText-secondary': {\n color: theme.palette.text.secondary,\n },\n}));\n\ninterface ListItemLinkButtonProps {\n customTitle?: string;\n customSubtitle?: React.ReactNode;\n disabled?: boolean;\n title?: string;\n subtitle?: string;\n icon?: string;\n hideIcon?: boolean;\n link?: string;\n isLast?: boolean;\n onClick?: () => void;\n borderBottom?: string;\n customButton?: JSX.Element;\n iconComponent?: JSX.Element;\n iconMargin?: MarginType;\n dataFd?: string;\n isSelected?: boolean;\n}\n\nexport const ListItemLinkButton = ({\n borderBottom,\n customTitle,\n customSubtitle,\n disabled = false,\n onClick,\n title,\n subtitle,\n icon,\n iconMargin,\n hideIcon = false,\n link,\n isLast,\n customButton,\n iconComponent,\n dataFd = '',\n isSelected = false,\n}: ListItemLinkButtonProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const hasDivider = !isLast || isMobile;\n\n const titleText = customTitle || title;\n const subtitleText = customSubtitle || subtitle;\n\n return (\n <StyledListItemLink\n borderBottom={hasDivider ? borderBottom : 'none'}\n divider={hasDivider}\n button\n fdKey={dataFd || `link-button-${title}`}\n to={link}\n onClick={onClick}\n disabled={disabled}\n selected={isSelected}\n >\n {icon && (\n <StyledListItemIcon iconMargin={iconMargin}>\n <img src={icon} alt=\"\" />\n </StyledListItemIcon>\n )}\n\n {iconComponent && <StyledListItemIcon iconMargin={iconMargin}>{iconComponent}</StyledListItemIcon>}\n\n <StyledListItemText primary={titleText} secondary={subtitleText} sx={{ pr: '60px' }} />\n\n {!hideIcon &&\n (customButton || (\n <IconButton aria-label={`link-button-${title}`}>\n <KeyboardArrowRight />\n </IconButton>\n ))}\n </StyledListItemLink>\n );\n};\n\nexport default ListItemLinkButton;\n"],"names":["StyledListItemLink","styled","ListItemLink","shouldForwardProp","prop","includes","theme","borderBottom","selected","paddingLeft","spacing","paddingRight","backgroundColor","color","palette","text","primary","textDecoration","StyledListItemIcon","ListItemIcon","iconMargin","margin","marginLeft","padding","minWidth","StyledListItemText","ListItemText","secondary","ListItemLinkButton","customTitle","customSubtitle","disabled","onClick","title","subtitle","icon","hideIcon","link","isLast","customButton","iconComponent","dataFd","isSelected","useTheme","isMobile","useMediaQuery","breakpoints","down","hasDivider","titleText","subtitleText","_jsxs","divider","button","fdKey","to","children","_jsx","src","alt","sx","pr","IconButton","KeyboardArrowRight"],"mappings":"sRAQA,MAAMA,EAAqBC,EAAOC,EAAc,CAC5CC,kBAAoBC,IACf,CAAC,gBAAgBC,SAASD,KAAoB,CAAC,YAAYC,SAASD,KAAoB,CAAC,YAAYC,SAASD,IAF5FH,EAG0C,EAAGK,QAAOC,eAAcC,eAAgB,CACzGD,aAAcA,GAAgB,oBAC9BE,YAAaH,EAAMI,QAAQ,GAC3BC,aAAcL,EAAMI,QAAQ,GAC5B,UAAW,CACPE,gBAAiB,WAErB,UAAW,CACPA,gBAAiB,WAGrBC,MAAOP,EAAMQ,QAAQC,KAAKC,QAC1BC,eAAgB,OAChBL,gBAAiBJ,EAAW,UAAY,cAGtCU,EAAqBjB,EAAOkB,EAAc,CAC5ChB,kBAAoBC,IAAU,CAAC,cAAcC,SAASD,IAD/BH,EAEK,EAAGmB,iBAAkB,CACjDC,OAAQD,GAAc,OACtBE,WAAY,IACZC,QAAS,MACTC,SAAU,QAGRC,EAAqBxB,EAAOyB,EAAPzB,EAAqB,EAAGK,YAAa,CAC5D,6BAA8B,CAC1BO,MAAOP,EAAMQ,QAAQC,KAAKC,SAE9B,+BAAgC,CAC5BH,MAAOP,EAAMQ,QAAQC,KAAKY,eAuBrBC,EAAqB,EAC9BrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,YAAW,EACXC,OACAC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMpC,EAAQqC,IACRC,EAAWC,EAAcvC,EAAMwC,YAAYC,KAAK,OAChDC,GAAcV,GAAUM,EAExBK,EAAYpB,GAAeI,EAC3BiB,EAAepB,GAAkBI,EAEvC,OACIiB,EAACnD,EAAkB,CACfO,aAAcyC,EAAazC,EAAe,OAC1C6C,QAASJ,EACTK,QAAM,EACNC,MAAOb,GAAU,eAAeR,IAChCsB,GAAIlB,EACJL,QAASA,EACTD,SAAUA,EACVvB,SAAUkC,EAAUc,SAAA,CAEnBrB,GACGsB,EAACvC,EAAmB,CAAAE,WAAYA,EAAUoC,SACtCC,SAAKC,IAAKvB,EAAMwB,IAAI,OAI3BnB,GAAiBiB,EAACvC,EAAmB,CAAAE,WAAYA,WAAaoB,IAE/DiB,EAAChC,GAAmBT,QAASiC,EAAWtB,UAAWuB,EAAcU,GAAI,CAAEC,GAAI,WAEzEzB,IACGG,GACGkB,EAACK,EAAU,CAAA,aAAa,eAAe7B,IACnCuB,SAAAC,EAACM,EAAqB,CAAA,QAIxC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("@mui/material/Card"),r=require("@mui/material/styles"),i=require("@mui/material/Typography");const n=r.styled("div")((({theme:e})=>({margin:e.spacing(8,"auto"),display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center"}))),a=r.styled(t)((({theme:e})=>({padding:e.spacing(2,8)})));module.exports=({title:t,caption:r,withCard:s=!1})=>{const l=()=>e.jsxs(n,{children:[e.jsx(i,{variant:"h6",gutterBottom:!0,children:t}),r&&e.jsx(i,{variant:"body2",children:r})]});return s?e.jsx(a,{children:l()}):l()};
|
|
2
|
+
//# sourceMappingURL=NoResults.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoResults.cjs.js","sources":["../../../../src/components/ui/NoResults/NoResults.tsx"],"sourcesContent":["import Card from '@mui/material/Card';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nconst StyledTextContainer = styled('div')(({ theme }) => ({\n margin: theme.spacing(8, 'auto'),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n textAlign: 'center',\n}));\n\nconst StyledCard = styled(Card)(({ theme }) => ({\n padding: theme.spacing(2, 8),\n}));\n\ntype Props = {\n title: string;\n caption?: string;\n withCard?: boolean;\n};\n\nconst NoResults = ({ title, caption, withCard = false }: Props) => {\n const renderContent = () => {\n return (\n <StyledTextContainer>\n <Typography variant=\"h6\" gutterBottom>\n {title}\n </Typography>\n {caption && <Typography variant=\"body2\">{caption}</Typography>}\n </StyledTextContainer>\n );\n };\n\n if (!withCard) {\n return renderContent();\n }\n\n return <StyledCard>{renderContent()}</StyledCard>;\n};\n\nexport default NoResults;\n"],"names":["StyledTextContainer","styled","theme","margin","spacing","display","flexDirection","justifyContent","alignItems","textAlign","StyledCard","Card","padding","title","caption","withCard","renderContent","_jsxs","children","_jsx","Typography","variant","gutterBottom","jsx"],"mappings":"wJAIA,MAAMA,EAAsBC,EAAAA,OAAO,MAAPA,EAAc,EAAGC,YAAa,CACtDC,OAAQD,EAAME,QAAQ,EAAG,QACzBC,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChBC,WAAY,SACZC,UAAW,aAGTC,EAAaT,EAAAA,OAAOU,EAAPV,EAAa,EAAGC,YAAa,CAC5CU,QAASV,EAAME,QAAQ,EAAG,sBASZ,EAAGS,QAAOC,UAASC,YAAW,MAC5C,MAAMC,EAAgB,IAEdC,OAACjB,EAAmB,CAAAkB,SAAA,CAChBC,EAAAA,IAACC,EAAW,CAAAC,QAAQ,KAAKC,cACpB,EAAAJ,SAAAL,IAEJC,GAAWK,EAACI,IAAAH,EAAW,CAAAC,QAAQ,QAASH,SAAAJ,OAKrD,OAAKC,EAIEI,EAAAA,IAACT,EAAU,CAAAQ,SAAEF,MAHTA,GAGsC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
type Props = {
|
|
4
|
+
title: string;
|
|
5
|
+
caption?: string;
|
|
6
|
+
withCard?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const NoResults: ({ title, caption, withCard }: Props) => react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { NoResults as default };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as e}from"react/jsx-runtime";import i from"@mui/material/Card";import{styled as r}from"@mui/material/styles";import a from"@mui/material/Typography";const n=r("div")((({theme:t})=>({margin:t.spacing(8,"auto"),display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center"}))),m=r(i)((({theme:t})=>({padding:t.spacing(2,8)}))),o=({title:i,caption:r,withCard:o=!1})=>{const l=()=>e(n,{children:[t(a,{variant:"h6",gutterBottom:!0,children:i}),r&&t(a,{variant:"body2",children:r})]});return o?t(m,{children:l()}):l()};export{o as default};
|
|
2
|
+
//# sourceMappingURL=NoResults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoResults.js","sources":["../../../../src/components/ui/NoResults/NoResults.tsx"],"sourcesContent":["import Card from '@mui/material/Card';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nconst StyledTextContainer = styled('div')(({ theme }) => ({\n margin: theme.spacing(8, 'auto'),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n textAlign: 'center',\n}));\n\nconst StyledCard = styled(Card)(({ theme }) => ({\n padding: theme.spacing(2, 8),\n}));\n\ntype Props = {\n title: string;\n caption?: string;\n withCard?: boolean;\n};\n\nconst NoResults = ({ title, caption, withCard = false }: Props) => {\n const renderContent = () => {\n return (\n <StyledTextContainer>\n <Typography variant=\"h6\" gutterBottom>\n {title}\n </Typography>\n {caption && <Typography variant=\"body2\">{caption}</Typography>}\n </StyledTextContainer>\n );\n };\n\n if (!withCard) {\n return renderContent();\n }\n\n return <StyledCard>{renderContent()}</StyledCard>;\n};\n\nexport default NoResults;\n"],"names":["StyledTextContainer","styled","theme","margin","spacing","display","flexDirection","justifyContent","alignItems","textAlign","StyledCard","Card","padding","NoResults","title","caption","withCard","renderContent","_jsxs","children","_jsx","Typography","variant","gutterBottom"],"mappings":"0KAIA,MAAMA,EAAsBC,EAAO,MAAPA,EAAc,EAAGC,YAAa,CACtDC,OAAQD,EAAME,QAAQ,EAAG,QACzBC,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChBC,WAAY,SACZC,UAAW,aAGTC,EAAaT,EAAOU,EAAPV,EAAa,EAAGC,YAAa,CAC5CU,QAASV,EAAME,QAAQ,EAAG,OASxBS,EAAY,EAAGC,QAAOC,UAASC,YAAW,MAC5C,MAAMC,EAAgB,IAEdC,EAAClB,EAAmB,CAAAmB,SAAA,CAChBC,EAACC,EAAW,CAAAC,QAAQ,KAAKC,cACpB,EAAAJ,SAAAL,IAEJC,GAAWK,EAACC,EAAW,CAAAC,QAAQ,QAASH,SAAAJ,OAKrD,OAAKC,EAIEI,EAACV,EAAU,CAAAS,SAAEF,MAHTA,GAGsC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("@mui/icons-material/Add"),t=require("@mui/icons-material/ArrowBack"),n=require("@mui/material/Grid"),r=require("@mui/material/IconButton"),a=require("@mui/material/styles"),s=require("@mui/material/Typography"),o=require("@mui/material/useMediaQuery"),d=require("./DocumentTitle.cjs.js"),l=require("./FullWidthContainer.cjs.js"),c=require("../FDErrorBoundary/FDErrorBoundary.cjs.js"),m=require("@mui/material/Button"),p=require("../../renderUtilities/renderUtilities.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("@mui/icons-material/Add"),t=require("@mui/icons-material/ArrowBack"),n=require("@mui/material/Grid"),r=require("@mui/material/IconButton"),a=require("@mui/material/styles"),s=require("@mui/material/Typography"),o=require("@mui/material/useMediaQuery"),d=require("./DocumentTitle.cjs.js"),l=require("./FullWidthContainer.cjs.js"),c=require("../FDErrorBoundary/FDErrorBoundary.cjs.js"),m=require("@mui/material/Button"),p=require("../../renderUtilities/renderUtilities.cjs.js"),g=require("../../../utilities/validation.cjs.js"),h=require("../Spacer/Spacer.cjs.js"),u=require("@mui/material/Box"),x=require("@mui/material/Divider");const j=1112,f=a.styled("div")((({theme:e,fluid:i,useAlternateBackground:t})=>({maxWidth:i?"none":j,[e.breakpoints.down("md")]:{maxWidth:"none"},margin:e.spacing(2,4),position:"relative",minHeight:"100vh",":before":t?{content:'""',position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"#F7F7F7",zIndex:-1e3}:void 0}))),v=a.styled(n)((({theme:e})=>({[e.breakpoints.down("sm")]:{width:"100%",paddingTop:e.spacing(2)}}))),y=a.styled(n)((({theme:e})=>({flexWrap:"nowrap",alignItems:"flex-start",paddingTop:e.spacing(3),paddingBottom:e.spacing(3),[e.breakpoints.down("md")]:{paddingTop:e.spacing(2),paddingBottom:e.spacing(3)}}))),b=a.styled(n)((({theme:e})=>({paddingTop:e.spacing(2)}))),k=a.styled(n)((()=>({flexGrow:1}))),B=a.styled("div")((({theme:e})=>({maxWidth:j,paddingBottom:e.spacing(3),[e.breakpoints.down("md")]:{paddingBottom:e.spacing(2),paddingLeft:e.spacing(2),paddingRight:e.spacing(2)}}))),q=a.styled(r,{shouldForwardProp:e=>"hasTitleComponent"!==e})((({theme:e,hasTitleComponent:i})=>({margin:i?e.spacing(-.75,2,-1.5,-1.5):e.spacing(-1.5,2,-1.5,-1.5),[e.breakpoints.only("sm")]:{marginLeft:e.spacing(-2)},[e.breakpoints.only("xs")]:{marginLeft:e.spacing(-2)}}))),w=a.styled("div")((({theme:e})=>({maxWidth:j,marginLeft:e.spacing(6),marginRight:e.spacing(4),paddingBottom:e.spacing(2),[e.breakpoints.only("md")]:{marginLeft:12,marginRight:e.spacing(3)},[e.breakpoints.only("sm")]:{marginLeft:e.spacing(3),marginRight:e.spacing(3),maxWidth:"none"},[e.breakpoints.only("xs")]:{marginLeft:e.spacing(2),marginRight:e.spacing(2),maxWidth:"none"}}))),T=a.styled(n)((()=>({display:"flex",flexGrow:1,justifyContent:"flex-end"}))),W=a.styled(s)((()=>({lineHeight:"26px"}))),F=a.styled(s)((()=>({fontWeight:"bold"}))),A=a.styled(x)((({theme:e})=>({marginBottom:e.spacing(4)}))),C=({title:i})=>e.jsx(F,{variant:"h5",component:"h2",children:i});exports.PageTitle=C,exports.default=r=>{const{actionBtnTitle:s,caption:x,children:j,contextButtons:F,documentTitle:L,fluid:P=!1,fullWidth:I,header:z,hideHeader:D,actionButtonLink:R,openLinkInNewTab:H=!1,pageHeader:_,showActionButton:G,showAddIcon:M,title:U,titleComponent:E,toPrevious:S,toParent:N,strictToParent:O,navigate:Q,hideDivider:$=!1,customActionButtons:J,useAlternateBackground:K=!1}=r,V=a.useTheme(),X=o(V.breakpoints.down("md")),Y=p.getMicroFrontendAttribute("data-portal-base-url")||"/",Z=R?.startsWith("https://"),ee=Z?R:void 0!==R?g.joinUrlPaths(Y,R):"";return e.jsxs(f,{fluid:P,useAlternateBackground:K,children:[L&&e.jsx(d,{children:L}),_||null,e.jsxs(w,{children:[_&&e.jsx(h,{size:16,variant:"vertical"}),!D&&e.jsxs(e.Fragment,{children:[e.jsxs(y,{container:!0,alignItems:"center",direction:"column",children:[e.jsx(n,{item:!0,container:!0,direction:"row",alignContent:"space-between",children:e.jsx(T,{item:!0,children:F&&F.map(((i,t)=>e.jsx("div",{children:i},t)))})}),e.jsxs(b,{item:!0,container:!0,children:[(N||S)&&e.jsx(u,{children:e.jsx(q,{"aria-label":"Back","data-testid":"back_button",hasTitleComponent:!!E,component:"button",onClick:()=>{S?Q(-1):N&&O||N&&history.length<3?Q(N):Q(-1)},children:e.jsx(t,{})})}),e.jsxs(k,{item:!0,children:[E?e.jsx(E,{}):e.jsx(C,{title:U}),x&&e.jsx(W,{variant:"caption",component:"h3",children:x})]}),G&&e.jsxs(e.Fragment,{children:[X&&e.jsx(h,{size:56,variant:"vertical"}),e.jsx(v,{item:!0,children:e.jsxs(m,{variant:"contained",fullWidth:!0,"data-testid":`Action-button-${s}`,href:H||Z?ee:"",target:H?"_blank":void 0,rel:H?"noopener noreferrer":void 0,onClick:H||Z?()=>{}:()=>Q(R),children:[M&&e.jsx(i,{}),s]})})]}),J&&J.map(((i,t)=>e.jsxs("div",{children:[X&&e.jsx(h,{size:56,variant:"vertical"}),!X&&e.jsx(h,{size:16,variant:"vertical"}),e.jsx(v,{item:!0,children:i})]},t)))]})]}),!$&&e.jsx(A,{})]}),e.jsxs(l,{fullWidth:I,children:[z?e.jsx(B,{children:z}):null,e.jsx(c,{identifier:L,children:e.jsx(e.Fragment,{children:j})})]})]})]})},exports.maxWidth=j;
|
|
2
2
|
//# sourceMappingURL=PageLayout.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.cjs.js","sources":["../../../../src/components/ui/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, { ComponentType, ReactNode } from 'react';\n\nimport Add from '@mui/icons-material/Add';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\nimport FDErrorBoundary from '../FDErrorBoundary/FDErrorBoundary';\nimport Button from '@mui/material/Button';\nimport { getMicroFrontendAttribute } from '../../renderUtilities';\nimport { joinUrlPaths } from '../../../utilities/validation';\nimport Spacer from '../Spacer/Spacer';\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean; useAlternateBackground: boolean }>(({ theme, fluid, useAlternateBackground }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('md')]: {\n maxWidth: 'none',\n },\n margin: theme.spacing(2, 4),\n ':before': useAlternateBackground\n ? {\n content: '\"\"',\n height: '100vh',\n width: '100%',\n backgroundColor: '#F7F7F7',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1000,\n }\n : undefined,\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('md')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: string | ReactNode }) => (\n <StyledPageTitle variant=\"h5\" component=\"h2\">\n {title}\n </StyledPageTitle>\n);\n\nexport type Props = {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n};\n\nconst PageLayout = (props: Props) => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const actionButtonLinkFinal = actionButtonWithHttps\n ? actionButtonLink\n : actionButtonLink !== undefined\n ? joinUrlPaths(baseUrl, actionButtonLink)\n : '';\n\n return (\n <StyledWrapper fluid={fluid} useAlternateBackground={useAlternateBackground}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader ? pageHeader : null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid item container direction=\"row\" alignContent=\"space-between\">\n <StyledHeaderContainer item>\n {contextButtons && contextButtons.map((button, index) => <div key={index}>{button}</div>)}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer item container>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n component={'button'}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowBackIcon />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? <TitleComponent /> : <PageTitle title={title} />}\n {caption && (\n <StyledCaption variant=\"caption\" component=\"h3\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n <Button\n variant=\"contained\"\n fullWidth={true}\n data-testid={`Action-button-${actionBtnTitle}`}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n target={openLinkInNewTab ? '_blank' : undefined}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n onClick={!openLinkInNewTab && !actionButtonWithHttps ? () => navigate(actionButtonLink) : () => {}}\n >\n {showAddIcon && <Add />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons &&\n customActionButtons.map((button, index) => (\n <div key={index}>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary identifier={documentTitle}>\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","useAlternateBackground","breakpoints","down","margin","spacing","content","height","width","backgroundColor","position","top","left","zIndex","undefined","StyledActionButtonGrid","Grid","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","only","marginLeft","StyledInnerWrapper","marginRight","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","variant","component","children","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","jsx","map","button","index","jsxs","Box","onClick","history","length","ArrowBackIcon","Button","href","target","rel","Add","FullWidthContainer","FDErrorBoundary","identifier"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageLayout.cjs.js","sources":["../../../../src/components/ui/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, { ComponentType, ReactNode } from 'react';\n\nimport Add from '@mui/icons-material/Add';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\nimport FDErrorBoundary from '../FDErrorBoundary/FDErrorBoundary';\nimport Button from '@mui/material/Button';\nimport { getMicroFrontendAttribute } from '../../renderUtilities';\nimport { joinUrlPaths } from '../../../utilities/validation';\nimport Spacer from '../Spacer/Spacer';\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean; useAlternateBackground: boolean }>(({ theme, fluid, useAlternateBackground }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('md')]: {\n maxWidth: 'none',\n },\n margin: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n ':before': useAlternateBackground\n ? {\n content: '\"\"',\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: '#F7F7F7',\n zIndex: -1000,\n }\n : undefined,\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('md')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: string | ReactNode }) => (\n <StyledPageTitle variant=\"h5\" component=\"h2\">\n {title}\n </StyledPageTitle>\n);\n\nexport type Props = {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n};\n\nconst PageLayout = (props: Props) => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const actionButtonLinkFinal = actionButtonWithHttps\n ? actionButtonLink\n : actionButtonLink !== undefined\n ? joinUrlPaths(baseUrl, actionButtonLink)\n : '';\n\n return (\n <StyledWrapper fluid={fluid} useAlternateBackground={useAlternateBackground}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader ? pageHeader : null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid item container direction=\"row\" alignContent=\"space-between\">\n <StyledHeaderContainer item>\n {contextButtons && contextButtons.map((button, index) => <div key={index}>{button}</div>)}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer item container>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n component={'button'}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowBackIcon />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? <TitleComponent /> : <PageTitle title={title} />}\n {caption && (\n <StyledCaption variant=\"caption\" component=\"h3\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n <Button\n variant=\"contained\"\n fullWidth={true}\n data-testid={`Action-button-${actionBtnTitle}`}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n target={openLinkInNewTab ? '_blank' : undefined}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n onClick={!openLinkInNewTab && !actionButtonWithHttps ? () => navigate(actionButtonLink) : () => {}}\n >\n {showAddIcon && <Add />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons &&\n customActionButtons.map((button, index) => (\n <div key={index}>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary identifier={documentTitle}>\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","useAlternateBackground","breakpoints","down","margin","spacing","position","minHeight","content","top","left","right","bottom","backgroundColor","zIndex","undefined","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","only","marginLeft","StyledInnerWrapper","marginRight","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","variant","component","children","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","jsx","map","button","index","jsxs","Box","onClick","history","length","ArrowBackIcon","Button","href","target","rel","Add","FullWidthContainer","FDErrorBoundary","identifier"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as i,jsx as t,Fragment as n}from"react/jsx-runtime";import e from"@mui/icons-material/Add";import r from"@mui/icons-material/ArrowBack";import o from"@mui/material/Grid";import a from"@mui/material/IconButton";import{styled as d,useTheme as m}from"@mui/material/styles";import l from"@mui/material/Typography";import
|
|
1
|
+
import{jsxs as i,jsx as t,Fragment as n}from"react/jsx-runtime";import e from"@mui/icons-material/Add";import r from"@mui/icons-material/ArrowBack";import o from"@mui/material/Grid";import a from"@mui/material/IconButton";import{styled as d,useTheme as m}from"@mui/material/styles";import l from"@mui/material/Typography";import p from"@mui/material/useMediaQuery";import c from"./DocumentTitle.js";import s from"./FullWidthContainer.js";import h from"../FDErrorBoundary/FDErrorBoundary.js";import g from"@mui/material/Button";import{getMicroFrontendAttribute as u}from"../../renderUtilities/renderUtilities.js";import{joinUrlPaths as f}from"../../../utilities/validation.js";import v from"../Spacer/Spacer.js";import b from"@mui/material/Box";import k from"@mui/material/Divider";const x=1112,B=d("div")((({theme:i,fluid:t,useAlternateBackground:n})=>({maxWidth:t?"none":x,[i.breakpoints.down("md")]:{maxWidth:"none"},margin:i.spacing(2,4),position:"relative",minHeight:"100vh",":before":n?{content:'""',position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"#F7F7F7",zIndex:-1e3}:void 0}))),w=d(o)((({theme:i})=>({[i.breakpoints.down("sm")]:{width:"100%",paddingTop:i.spacing(2)}}))),y=d(o)((({theme:i})=>({flexWrap:"nowrap",alignItems:"flex-start",paddingTop:i.spacing(3),paddingBottom:i.spacing(3),[i.breakpoints.down("md")]:{paddingTop:i.spacing(2),paddingBottom:i.spacing(3)}}))),T=d(o)((({theme:i})=>({paddingTop:i.spacing(2)}))),W=d(o)((()=>({flexGrow:1}))),C=d("div")((({theme:i})=>({maxWidth:x,paddingBottom:i.spacing(3),[i.breakpoints.down("md")]:{paddingBottom:i.spacing(2),paddingLeft:i.spacing(2),paddingRight:i.spacing(2)}}))),A=d(a,{shouldForwardProp:i=>"hasTitleComponent"!==i})((({theme:i,hasTitleComponent:t})=>({margin:t?i.spacing(-.75,2,-1.5,-1.5):i.spacing(-1.5,2,-1.5,-1.5),[i.breakpoints.only("sm")]:{marginLeft:i.spacing(-2)},[i.breakpoints.only("xs")]:{marginLeft:i.spacing(-2)}}))),L=d("div")((({theme:i})=>({maxWidth:x,marginLeft:i.spacing(6),marginRight:i.spacing(4),paddingBottom:i.spacing(2),[i.breakpoints.only("md")]:{marginLeft:12,marginRight:i.spacing(3)},[i.breakpoints.only("sm")]:{marginLeft:i.spacing(3),marginRight:i.spacing(3),maxWidth:"none"},[i.breakpoints.only("xs")]:{marginLeft:i.spacing(2),marginRight:i.spacing(2),maxWidth:"none"}}))),j=d(o)((()=>({display:"flex",flexGrow:1,justifyContent:"flex-end"}))),F=d(l)((()=>({lineHeight:"26px"}))),I=d(l)((()=>({fontWeight:"bold"}))),z=d(k)((({theme:i})=>({marginBottom:i.spacing(4)}))),D=({title:i})=>t(I,{variant:"h5",component:"h2",children:i}),R=a=>{const{actionBtnTitle:d,caption:l,children:k,contextButtons:x,documentTitle:I,fluid:R=!1,fullWidth:H,header:P,hideHeader:G,actionButtonLink:E,openLinkInNewTab:S=!1,pageHeader:U,showActionButton:_,showAddIcon:M,title:N,titleComponent:Q,toPrevious:$,toParent:q,strictToParent:J,navigate:K,hideDivider:O=!1,customActionButtons:V,useAlternateBackground:X=!1}=a,Y=m(),Z=p(Y.breakpoints.down("md")),ii=u("data-portal-base-url")||"/",ti=E?.startsWith("https://"),ni=ti?E:void 0!==E?f(ii,E):"";return i(B,{fluid:R,useAlternateBackground:X,children:[I&&t(c,{children:I}),U||null,i(L,{children:[U&&t(v,{size:16,variant:"vertical"}),!G&&i(n,{children:[i(y,{container:!0,alignItems:"center",direction:"column",children:[t(o,{item:!0,container:!0,direction:"row",alignContent:"space-between",children:t(j,{item:!0,children:x&&x.map(((i,n)=>t("div",{children:i},n)))})}),i(T,{item:!0,container:!0,children:[(q||$)&&t(b,{children:t(A,{"aria-label":"Back","data-testid":"back_button",hasTitleComponent:!!Q,component:"button",onClick:()=>{$?K(-1):q&&J||q&&history.length<3?K(q):K(-1)},children:t(r,{})})}),i(W,{item:!0,children:[Q?t(Q,{}):t(D,{title:N}),l&&t(F,{variant:"caption",component:"h3",children:l})]}),_&&i(n,{children:[Z&&t(v,{size:56,variant:"vertical"}),t(w,{item:!0,children:i(g,{variant:"contained",fullWidth:!0,"data-testid":`Action-button-${d}`,href:S||ti?ni:"",target:S?"_blank":void 0,rel:S?"noopener noreferrer":void 0,onClick:S||ti?()=>{}:()=>K(E),children:[M&&t(e,{}),d]})})]}),V&&V.map(((n,e)=>i("div",{children:[Z&&t(v,{size:56,variant:"vertical"}),!Z&&t(v,{size:16,variant:"vertical"}),t(w,{item:!0,children:n})]},e)))]})]}),!O&&t(z,{})]}),i(s,{fullWidth:H,children:[P?t(C,{children:P}):null,t(h,{identifier:I,children:t(n,{children:k})})]})]})]})};export{D as PageTitle,R as default,x as maxWidth};
|
|
2
2
|
//# sourceMappingURL=PageLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.js","sources":["../../../../src/components/ui/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, { ComponentType, ReactNode } from 'react';\n\nimport Add from '@mui/icons-material/Add';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\nimport FDErrorBoundary from '../FDErrorBoundary/FDErrorBoundary';\nimport Button from '@mui/material/Button';\nimport { getMicroFrontendAttribute } from '../../renderUtilities';\nimport { joinUrlPaths } from '../../../utilities/validation';\nimport Spacer from '../Spacer/Spacer';\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean; useAlternateBackground: boolean }>(({ theme, fluid, useAlternateBackground }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('md')]: {\n maxWidth: 'none',\n },\n margin: theme.spacing(2, 4),\n ':before': useAlternateBackground\n ? {\n content: '\"\"',\n height: '100vh',\n width: '100%',\n backgroundColor: '#F7F7F7',\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1000,\n }\n : undefined,\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('md')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: string | ReactNode }) => (\n <StyledPageTitle variant=\"h5\" component=\"h2\">\n {title}\n </StyledPageTitle>\n);\n\nexport type Props = {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n};\n\nconst PageLayout = (props: Props) => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const actionButtonLinkFinal = actionButtonWithHttps\n ? actionButtonLink\n : actionButtonLink !== undefined\n ? joinUrlPaths(baseUrl, actionButtonLink)\n : '';\n\n return (\n <StyledWrapper fluid={fluid} useAlternateBackground={useAlternateBackground}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader ? pageHeader : null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid item container direction=\"row\" alignContent=\"space-between\">\n <StyledHeaderContainer item>\n {contextButtons && contextButtons.map((button, index) => <div key={index}>{button}</div>)}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer item container>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n component={'button'}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowBackIcon />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? <TitleComponent /> : <PageTitle title={title} />}\n {caption && (\n <StyledCaption variant=\"caption\" component=\"h3\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n <Button\n variant=\"contained\"\n fullWidth={true}\n data-testid={`Action-button-${actionBtnTitle}`}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n target={openLinkInNewTab ? '_blank' : undefined}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n onClick={!openLinkInNewTab && !actionButtonWithHttps ? () => navigate(actionButtonLink) : () => {}}\n >\n {showAddIcon && <Add />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons &&\n customActionButtons.map((button, index) => (\n <div key={index}>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary identifier={documentTitle}>\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","useAlternateBackground","breakpoints","down","margin","spacing","content","height","width","backgroundColor","position","top","left","zIndex","undefined","StyledActionButtonGrid","Grid","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","only","marginLeft","StyledInnerWrapper","marginRight","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","variant","component","children","PageLayout","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","index","Box","onClick","history","length","ArrowBackIcon","Button","href","target","rel","Add","FullWidthContainer","FDErrorBoundary","identifier"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageLayout.js","sources":["../../../../src/components/ui/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, { ComponentType, ReactNode } from 'react';\n\nimport Add from '@mui/icons-material/Add';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport Grid from '@mui/material/Grid';\nimport IconButton from '@mui/material/IconButton';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport DocumentTitle from './DocumentTitle';\nimport FullWidthContainer from './FullWidthContainer';\nimport FDErrorBoundary from '../FDErrorBoundary/FDErrorBoundary';\nimport Button from '@mui/material/Button';\nimport { getMicroFrontendAttribute } from '../../renderUtilities';\nimport { joinUrlPaths } from '../../../utilities/validation';\nimport Spacer from '../Spacer/Spacer';\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nexport const HORIZONTAL_SPACE_CLASSNAME = 'horizontal-content-space';\nexport const LEFT_HORIZONTAL_SPACE_CLASSNAME = 'left-horizontal-content-space';\nexport const RIGHT_HORIZONTAL_SPACE_CLASSNAME = 'right-horizontal-content-space';\nexport const VERTICAL_SPACE_CLASSNAME = 'vertical-content-space';\nexport const maxWidth = 1112;\nconst historyMinLength = 3;\n\nconst StyledWrapper = styled('div')<{ fluid: boolean; useAlternateBackground: boolean }>(({ theme, fluid, useAlternateBackground }) => ({\n maxWidth: fluid ? 'none' : maxWidth,\n [theme.breakpoints.down('md')]: {\n maxWidth: 'none',\n },\n margin: theme.spacing(2, 4),\n position: 'relative',\n minHeight: '100vh',\n ':before': useAlternateBackground\n ? {\n content: '\"\"',\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: '#F7F7F7',\n zIndex: -1000,\n }\n : undefined,\n}));\n\nconst StyledActionButtonGrid = styled(Grid)(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n paddingTop: theme.spacing(2),\n },\n}));\n\nconst StyledHeader = styled(Grid)(({ theme }) => ({\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n}));\n\nconst StyledTitleContainer = styled(Grid)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n}));\n\nconst StyledTitleSection = styled(Grid)(() => ({\n flexGrow: 1,\n}));\n\nconst StyledTopSection = styled('div')(({ theme }) => ({\n maxWidth,\n paddingBottom: theme.spacing(3),\n\n [theme.breakpoints.down('md')]: {\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n}));\n\nconst StyledBackButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'hasTitleComponent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n})<{ hasTitleComponent: boolean; component: any }>(({ theme, hasTitleComponent }) => ({\n margin: hasTitleComponent ? theme.spacing(-0.75, 2, -1.5, -1.5) : theme.spacing(-1.5, 2, -1.5, -1.5),\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(-2),\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(-2),\n },\n}));\n\nconst StyledInnerWrapper = styled('div')(({ theme }) => ({\n maxWidth,\n marginLeft: theme.spacing(6),\n marginRight: theme.spacing(4),\n paddingBottom: theme.spacing(2),\n\n [theme.breakpoints.only('md')]: {\n marginLeft: 12,\n marginRight: theme.spacing(3),\n },\n\n [theme.breakpoints.only('sm')]: {\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n maxWidth: 'none',\n },\n\n [theme.breakpoints.only('xs')]: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n maxWidth: 'none',\n },\n}));\n\nconst StyledHeaderContainer = styled(Grid)(() => ({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n}));\nconst StyledCaption = styled(Typography)<{ component: string }>(() => ({\n lineHeight: '26px',\n}));\n\nconst StyledPageTitle = styled(Typography)<{ component: string }>(() => ({\n fontWeight: 'bold',\n}));\n\nconst StyledPageDivider = styled(Divider)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport const PageTitle = ({ title }: { title: string | ReactNode }) => (\n <StyledPageTitle variant=\"h5\" component=\"h2\">\n {title}\n </StyledPageTitle>\n);\n\nexport type Props = {\n actionBtnTitle?: string;\n caption?: ReactNode;\n children: ReactNode;\n contextButtons?: ReactNode[];\n documentTitle: string;\n fluid?: boolean;\n fullWidth?: boolean;\n header?: ReactNode;\n hideHeader?: boolean;\n actionButtonLink?: string;\n pageHeader?: ReactNode;\n showActionButton?: boolean;\n showAddIcon?: boolean;\n title: ReactNode;\n titleComponent?: ComponentType<React.PropsWithChildren<unknown>>;\n toPrevious?: boolean;\n toParent?: string;\n strictToParent?: boolean;\n openLinkInNewTab?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigate: (to: any) => void;\n hideDivider?: boolean;\n customActionButtons?: ReactNode[];\n useAlternateBackground?: boolean;\n};\n\nconst PageLayout = (props: Props) => {\n const {\n actionBtnTitle,\n caption,\n children,\n contextButtons,\n documentTitle,\n fluid = false,\n fullWidth,\n header,\n hideHeader,\n actionButtonLink,\n openLinkInNewTab = false,\n pageHeader,\n showActionButton,\n showAddIcon,\n title,\n titleComponent: TitleComponent,\n toPrevious,\n toParent,\n strictToParent,\n navigate,\n hideDivider = false,\n customActionButtons,\n useAlternateBackground = false,\n } = props;\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('md'));\n const baseUrl = getMicroFrontendAttribute('data-portal-base-url') || '/';\n const actionButtonWithHttps = actionButtonLink?.startsWith('https://');\n const actionButtonLinkFinal = actionButtonWithHttps\n ? actionButtonLink\n : actionButtonLink !== undefined\n ? joinUrlPaths(baseUrl, actionButtonLink)\n : '';\n\n return (\n <StyledWrapper fluid={fluid} useAlternateBackground={useAlternateBackground}>\n {documentTitle && <DocumentTitle>{documentTitle}</DocumentTitle>}\n\n {pageHeader ? pageHeader : null}\n <StyledInnerWrapper>\n {pageHeader && <Spacer size={16} variant=\"vertical\" />}\n {!hideHeader && (\n <>\n <StyledHeader container alignItems=\"center\" direction=\"column\">\n <Grid item container direction=\"row\" alignContent=\"space-between\">\n <StyledHeaderContainer item>\n {contextButtons && contextButtons.map((button, index) => <div key={index}>{button}</div>)}\n </StyledHeaderContainer>\n </Grid>\n <StyledTitleContainer item container>\n {(toParent || toPrevious) && (\n <Box>\n <StyledBackButton\n aria-label=\"Back\"\n data-testid=\"back_button\"\n hasTitleComponent={!!TitleComponent}\n component={'button'}\n onClick={() => {\n if (toPrevious) {\n navigate(-1);\n } else if (toParent && strictToParent) {\n navigate(toParent);\n } else if (toParent && history.length < historyMinLength) {\n navigate(toParent);\n } else {\n navigate(-1);\n }\n }}\n >\n <ArrowBackIcon />\n </StyledBackButton>\n </Box>\n )}\n\n <StyledTitleSection item>\n {TitleComponent ? <TitleComponent /> : <PageTitle title={title} />}\n {caption && (\n <StyledCaption variant=\"caption\" component=\"h3\">\n {caption}\n </StyledCaption>\n )}\n </StyledTitleSection>\n\n {showActionButton && (\n <>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n <StyledActionButtonGrid item>\n <Button\n variant=\"contained\"\n fullWidth={true}\n data-testid={`Action-button-${actionBtnTitle}`}\n href={openLinkInNewTab || actionButtonWithHttps ? actionButtonLinkFinal : ''}\n target={openLinkInNewTab ? '_blank' : undefined}\n rel={openLinkInNewTab ? 'noopener noreferrer' : undefined}\n onClick={!openLinkInNewTab && !actionButtonWithHttps ? () => navigate(actionButtonLink) : () => {}}\n >\n {showAddIcon && <Add />}\n {actionBtnTitle}\n </Button>\n </StyledActionButtonGrid>\n </>\n )}\n {customActionButtons &&\n customActionButtons.map((button, index) => (\n <div key={index}>\n {isMobile && <Spacer size={56} variant=\"vertical\" />}\n {!isMobile && <Spacer size={16} variant=\"vertical\" />}\n <StyledActionButtonGrid item>{button}</StyledActionButtonGrid>\n </div>\n ))}\n </StyledTitleContainer>\n </StyledHeader>\n {!hideDivider && <StyledPageDivider />}\n </>\n )}\n <FullWidthContainer fullWidth={fullWidth}>\n {header ? <StyledTopSection>{header}</StyledTopSection> : null}\n <FDErrorBoundary identifier={documentTitle}>\n <>{children}</>\n </FDErrorBoundary>\n </FullWidthContainer>\n </StyledInnerWrapper>\n </StyledWrapper>\n );\n};\n\nexport default PageLayout;\n"],"names":["maxWidth","StyledWrapper","styled","theme","fluid","useAlternateBackground","breakpoints","down","margin","spacing","position","minHeight","content","top","left","right","bottom","backgroundColor","zIndex","undefined","StyledActionButtonGrid","Grid","width","paddingTop","StyledHeader","flexWrap","alignItems","paddingBottom","StyledTitleContainer","StyledTitleSection","flexGrow","StyledTopSection","paddingLeft","paddingRight","StyledBackButton","IconButton","shouldForwardProp","prop","hasTitleComponent","only","marginLeft","StyledInnerWrapper","marginRight","StyledHeaderContainer","display","justifyContent","StyledCaption","Typography","lineHeight","StyledPageTitle","fontWeight","StyledPageDivider","Divider","marginBottom","PageTitle","title","_jsx","variant","component","children","PageLayout","props","actionBtnTitle","caption","contextButtons","documentTitle","fullWidth","header","hideHeader","actionButtonLink","openLinkInNewTab","pageHeader","showActionButton","showAddIcon","titleComponent","TitleComponent","toPrevious","toParent","strictToParent","navigate","hideDivider","customActionButtons","useTheme","isMobile","useMediaQuery","baseUrl","getMicroFrontendAttribute","actionButtonWithHttps","startsWith","actionButtonLinkFinal","joinUrlPaths","_jsxs","DocumentTitle","Spacer","size","_Fragment","container","direction","item","alignContent","map","button","index","Box","onClick","history","length","ArrowBackIcon","Button","href","target","rel","Add","FullWidthContainer","FDErrorBoundary","identifier"],"mappings":"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"}
|