@flipdish/portal-library 1.0.63 → 1.0.65
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/ui/GenericDatePickerField/GenericDatePickerField.cjs.js +1 -1
- package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.cjs.js.map +1 -1
- package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.d.ts +1 -0
- package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.js +1 -1
- package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.js.map +1 -1
- package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.cjs.js +1 -1
- package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.cjs.js.map +1 -1
- package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.d.ts +1 -0
- package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.js +1 -1
- package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.js.map +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 +2 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.js +1 -1
- package/dist/components/ui/ListItemLinkButton/ListItemLinkButton.js.map +1 -1
- 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("react/jsx-runtime"),r=require("formik"),a=require("../Form/FormItemLayout.cjs.js"),
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("formik"),a=require("../Form/FormItemLayout.cjs.js"),t=require("@mui/x-date-pickers/DatePicker"),i=require("@mui/material/styles"),l=require("@mui/material/Box"),s=require("@mui/material/Typography"),o=require("../../custom-hooks/useRenderValidText.cjs.js"),n=require("moment");const d=i.styled(t.DatePicker)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"})));module.exports=({label:t,fieldName:u,description:m,validation:c,variant:h="standard",layout:x,onChange:p,disabled:v=!1,disablePast:j=!1,disablefuture:b=!1,placeholder:g,showHelperTextWhenValid:q=!1})=>{const y=i.useTheme(),F=()=>e.jsx(r.Field,{name:u,validate:c,children:({field:r,form:a})=>{const{errors:i,touched:c,isSubmitting:F}=a,P=i[r.name],T=!!P&&c[r.name],f=o({fieldError:P,showError:T,touched:!!c[r.name],value:r.value});return e.jsxs(l,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[e.jsx(d,{label:"standard"===h?void 0:t,value:n.isMoment(r.value)?r.value:n(r.value),onChange:e=>{const t=n.isMoment(e)?e:n(e);a.setFieldValue(r.name,t),p&&p(t)},name:u,slotProps:{textField:{variant:h,placeholder:g,error:T,helperText:T||q?f:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:F||v,disablePast:j,disableFuture:b}),m&&e.jsx(s,{variant:"caption",sx:{color:y.palette.text.secondary},children:m})]})}});return"vertical"===x?e.jsxs(e.Fragment,{children:["standard"===h&&e.jsx(s,{variant:"subtitle1",component:"h3",color:"textPrimary",children:t}),F()]}):e.jsx(a,{label:t,children:F()})};
|
|
2
2
|
//# sourceMappingURL=GenericDatePickerField.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDatePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n value={field.value}\n onChange={(value) => {\n
|
|
1
|
+
{"version":3,"file":"GenericDatePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDatePickerField;\n"],"names":["StyledDateTimePicker","styled","DatePicker","theme","marginTop","spacing","width","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","jsxs","Box","sx","paddingRight","jsx","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"gVAUA,MAAMA,EAAuBC,EAAAA,OAAOC,EAAAA,WAAPD,EAAmB,EAAGE,YAAa,CAC5DC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,0BAiBoB,EAC3BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMf,EAAQgB,EAAAA,WAERC,EAAc,IAEZC,MAACC,EAAAA,OAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,KAAAC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX5B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAAAoB,IAACzC,EAAoB,CACjBO,MAAmB,aAAZI,OAAyB+B,EAAYnC,EAE5C4B,MAAOQ,EAAOC,SAASlB,EAAMS,OAAST,EAAMS,MAAQQ,EAAOjB,EAAMS,OACjEtB,SAAWsB,IACP,MAAMU,EAAcF,EAAOC,SAAST,GAASA,EAAQQ,EAAOR,GACvDR,EAAKmB,cAAcpB,EAAMH,KAAMsB,GAChChC,GACAA,EAASgC,EACZ,EAELtB,KAAMf,EACNuC,UAAW,CACPC,UAAW,CACPrC,UACAM,cACAgC,MAAOjB,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDS,EAC5EQ,oBAAqB,CACjBzB,SAAU,IACV0B,MAAO,CAAEC,UAAW,YAIhCtC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACbsC,cAAerC,IAElBP,GACGY,EAAAoB,IAACa,EAAW,CAAA3C,QAAQ,UAAU4B,GAAI,CAAEgB,MAAOpD,EAAMqD,QAAQC,KAAKC,WACzDjC,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAC,KAAAsB,WAAA,CAAAlC,SAAA,CACiB,aAAZd,GACGU,EAAAoB,IAACa,EAAU,CAAC3C,QAAQ,YAAYiD,UAAU,KAAKL,MAAM,cAChD9B,SAAAlB,IAGRa,OAKNC,EAAAoB,IAACoB,EAAc,CAACtD,MAAOA,EAAQkB,SAAAL,KAA+B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as a}from"formik";import i from"../Form/FormItemLayout.js";import{DatePicker as o}from"@mui/x-date-pickers/DatePicker";import{styled as l,useTheme as
|
|
1
|
+
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as a}from"formik";import i from"../Form/FormItemLayout.js";import{DatePicker as o}from"@mui/x-date-pickers/DatePicker";import{styled as l,useTheme as m}from"@mui/material/styles";import n from"@mui/material/Box";import d from"@mui/material/Typography";import s from"../../custom-hooks/useRenderValidText.js";import p from"moment";const c=l(o)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"}))),u=({label:o,fieldName:l,description:u,validation:h,variant:f="standard",layout:v,onChange:x,disabled:b=!1,disablePast:g=!1,disablefuture:y=!1,placeholder:F,showHelperTextWhenValid:P=!1})=>{const T=m(),k=()=>t(a,{name:l,validate:h,children:({field:r,form:a})=>{const{errors:i,touched:m,isSubmitting:h}=a,k=i[r.name],j=!!k&&m[r.name],w=s({fieldError:k,showError:j,touched:!!m[r.name],value:r.value});return e(n,{sx:{paddingRight:"horizontal"===v?"16px":0},children:[t(c,{label:"standard"===f?void 0:o,value:p.isMoment(r.value)?r.value:p(r.value),onChange:e=>{const t=p.isMoment(e)?e:p(e);a.setFieldValue(r.name,t),x&&x(t)},name:l,slotProps:{textField:{variant:f,placeholder:F,error:j,helperText:j||P?w:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:h||b,disablePast:g,disableFuture:y}),u&&t(d,{variant:"caption",sx:{color:T.palette.text.secondary},children:u})]})}});return"vertical"===v?e(r,{children:["standard"===f&&t(d,{variant:"subtitle1",component:"h3",color:"textPrimary",children:o}),k()]}):t(i,{label:o,children:k()})};export{u as default};
|
|
2
2
|
//# sourceMappingURL=GenericDatePickerField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDatePickerField.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n value={field.value}\n onChange={(value) => {\n
|
|
1
|
+
{"version":3,"file":"GenericDatePickerField.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDatePickerField;\n"],"names":["StyledDateTimePicker","styled","DatePicker","theme","marginTop","spacing","width","GenericDatePickerField","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","Box","sx","paddingRight","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"uZAUA,MAAMA,EAAuBC,EAAOC,EAAPD,EAAmB,EAAGE,YAAa,CAC5DC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,WAiBLC,EAAyB,EAC3BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMhB,EAAQiB,IAERC,EAAc,IAEZC,EAACC,GAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX3B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAACtB,EAAoB,CACjBQ,MAAmB,aAAZI,OAAyB6B,EAAYjC,EAE5C4B,MAAOM,EAAOC,SAAShB,EAAMS,OAAST,EAAMS,MAAQM,EAAOf,EAAMS,OACjEtB,SAAWsB,IACP,MAAMQ,EAAcF,EAAOC,SAASP,GAASA,EAAQM,EAAON,GACvDR,EAAKiB,cAAclB,EAAMH,KAAMoB,GAChC9B,GACAA,EAAS8B,EACZ,EAELpB,KAAMf,EACNqC,UAAW,CACPC,UAAW,CACPnC,UACAM,cACA8B,MAAOf,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDO,EAC5EQ,oBAAqB,CACjBvB,SAAU,IACVwB,MAAO,CAAEC,UAAW,YAIhCpC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACboC,cAAenC,IAElBP,GACGY,EAAC+B,EAAW,CAAAzC,QAAQ,UAAU2B,GAAI,CAAEe,MAAOnD,EAAMoD,QAAQC,KAAKC,WACzD/B,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAqB,EAAA,CAAAhC,SAAA,CACiB,aAAZd,GACGU,EAAC+B,EAAU,CAACzC,QAAQ,YAAY+C,UAAU,KAAKL,MAAM,cAChD5B,SAAAlB,IAGRa,OAKNC,EAACsC,EAAc,CAACpD,MAAOA,EAAQkB,SAAAL,KAA+B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),r=require("formik"),a=require("../Form/FormItemLayout.cjs.js"),i=require("@mui/x-date-pickers/DateTimePicker"),t=require("@mui/material/styles"),l=require("@mui/material/Box"),s=require("@mui/material/Typography"),o=require("../../custom-hooks/useRenderValidText.cjs.js");const d=t.styled(i.DateTimePicker)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"})));module.exports=({label:i,fieldName:
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("formik"),a=require("../Form/FormItemLayout.cjs.js"),i=require("@mui/x-date-pickers/DateTimePicker"),t=require("@mui/material/styles"),l=require("@mui/material/Box"),s=require("@mui/material/Typography"),o=require("../../custom-hooks/useRenderValidText.cjs.js"),n=require("moment");const d=t.styled(i.DateTimePicker)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"})));module.exports=({label:i,fieldName:u,description:m,validation:c,variant:h="standard",layout:x,onChange:p,disabled:v=!1,disablePast:j=!1,disablefuture:b=!1,placeholder:g,showHelperTextWhenValid:q=!1})=>{const y=t.useTheme(),T=()=>e.jsx(r.Field,{name:u,validate:c,children:({field:r,form:a})=>{const{errors:t,touched:c,isSubmitting:T}=a,F=t[r.name],P=!!F&&c[r.name],f=o({fieldError:F,showError:P,touched:!!c[r.name],value:r.value});return e.jsxs(l,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[e.jsx(d,{label:"standard"===h?void 0:i,value:n.isMoment(r.value)?r.value:n(r.value),onChange:e=>{const i=n.isMoment(e)?e:n(e);a.setFieldValue(r.name,i),p&&p(i)},name:u,slotProps:{textField:{variant:h,placeholder:g,error:P,helperText:P||q?f:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:T||v,disablePast:j,disableFuture:b}),m&&e.jsx(s,{variant:"caption",sx:{color:y.palette.text.secondary},children:m})]})}});return"vertical"===x?e.jsxs(e.Fragment,{children:["standard"===h&&e.jsx(s,{variant:"subtitle1",component:"h3",color:"textPrimary",children:i}),T()]}):e.jsx(a,{label:i,children:T()})};
|
|
2
2
|
//# sourceMappingURL=GenericDateTimePickerField.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDateTimePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\n\nconst StyledDateTimePicker = styled(DateTimePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDateTimePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n value={field.value}\n onChange={(value) => {\n
|
|
1
|
+
{"version":3,"file":"GenericDateTimePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DateTimePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDateTimePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDateTimePickerField;\n"],"names":["StyledDateTimePicker","styled","DateTimePicker","theme","marginTop","spacing","width","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","jsxs","Box","sx","paddingRight","jsx","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"oVAUA,MAAMA,EAAuBC,EAAAA,OAAOC,EAAAA,eAAPD,EAAuB,EAAGE,YAAa,CAChEC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,0BAiBwB,EAC/BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMf,EAAQgB,EAAAA,WAERC,EAAc,IAEZC,MAACC,EAAAA,OAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,KAAAC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX5B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAAAoB,IAACzC,EAAoB,CACjBO,MAAmB,aAAZI,OAAyB+B,EAAYnC,EAE5C4B,MAAOQ,EAAOC,SAASlB,EAAMS,OAAST,EAAMS,MAAQQ,EAAOjB,EAAMS,OACjEtB,SAAWsB,IACP,MAAMU,EAAcF,EAAOC,SAAST,GAASA,EAAQQ,EAAOR,GACvDR,EAAKmB,cAAcpB,EAAMH,KAAMsB,GAChChC,GACAA,EAASgC,EACZ,EAELtB,KAAMf,EACNuC,UAAW,CACPC,UAAW,CACPrC,UACAM,cACAgC,MAAOjB,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDS,EAC5EQ,oBAAqB,CACjBzB,SAAU,IACV0B,MAAO,CAAEC,UAAW,YAIhCtC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACbsC,cAAerC,IAElBP,GACGY,EAAAoB,IAACa,EAAW,CAAA3C,QAAQ,UAAU4B,GAAI,CAAEgB,MAAOpD,EAAMqD,QAAQC,KAAKC,WACzDjC,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAC,KAAAsB,WAAA,CAAAlC,SAAA,CACiB,aAAZd,GACGU,EAAAoB,IAACa,EAAU,CAAC3C,QAAQ,YAAYiD,UAAU,KAAKL,MAAM,cAChD9B,SAAAlB,IAGRa,OAKNC,EAAAoB,IAACoB,EAAc,CAACtD,MAAOA,EAAQkB,SAAAL,KAA+B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as a}from"formik";import i from"../Form/FormItemLayout.js";import{DateTimePicker as o}from"@mui/x-date-pickers/DateTimePicker";import{styled as l,useTheme as
|
|
1
|
+
import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as a}from"formik";import i from"../Form/FormItemLayout.js";import{DateTimePicker as o}from"@mui/x-date-pickers/DateTimePicker";import{styled as l,useTheme as m}from"@mui/material/styles";import n from"@mui/material/Box";import d from"@mui/material/Typography";import s from"../../custom-hooks/useRenderValidText.js";import p from"moment";const c=l(o)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"}))),u=({label:o,fieldName:l,description:u,validation:h,variant:f="standard",layout:v,onChange:x,disabled:b=!1,disablePast:g=!1,disablefuture:y=!1,placeholder:T,showHelperTextWhenValid:F=!1})=>{const P=m(),k=()=>t(a,{name:l,validate:h,children:({field:r,form:a})=>{const{errors:i,touched:m,isSubmitting:h}=a,k=i[r.name],j=!!k&&m[r.name],w=s({fieldError:k,showError:j,touched:!!m[r.name],value:r.value});return e(n,{sx:{paddingRight:"horizontal"===v?"16px":0},children:[t(c,{label:"standard"===f?void 0:o,value:p.isMoment(r.value)?r.value:p(r.value),onChange:e=>{const t=p.isMoment(e)?e:p(e);a.setFieldValue(r.name,t),x&&x(t)},name:l,slotProps:{textField:{variant:f,placeholder:T,error:j,helperText:j||F?w:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:h||b,disablePast:g,disableFuture:y}),u&&t(d,{variant:"caption",sx:{color:P.palette.text.secondary},children:u})]})}});return"vertical"===v?e(r,{children:["standard"===f&&t(d,{variant:"subtitle1",component:"h3",color:"textPrimary",children:o}),k()]}):t(i,{label:o,children:k()})};export{u as default};
|
|
2
2
|
//# sourceMappingURL=GenericDateTimePickerField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDateTimePickerField.js","sources":["../../../../src/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\n\nconst StyledDateTimePicker = styled(DateTimePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDateTimePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n value={field.value}\n onChange={(value) => {\n
|
|
1
|
+
{"version":3,"file":"GenericDateTimePickerField.js","sources":["../../../../src/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DateTimePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDateTimePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDateTimePickerField;\n"],"names":["StyledDateTimePicker","styled","DateTimePicker","theme","marginTop","spacing","width","GenericDateTimePickerField","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","Box","sx","paddingRight","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"+ZAUA,MAAMA,EAAuBC,EAAOC,EAAPD,EAAuB,EAAGE,YAAa,CAChEC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,WAiBLC,EAA6B,EAC/BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMhB,EAAQiB,IAERC,EAAc,IAEZC,EAACC,GAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX3B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAACtB,EAAoB,CACjBQ,MAAmB,aAAZI,OAAyB6B,EAAYjC,EAE5C4B,MAAOM,EAAOC,SAAShB,EAAMS,OAAST,EAAMS,MAAQM,EAAOf,EAAMS,OACjEtB,SAAWsB,IACP,MAAMQ,EAAcF,EAAOC,SAASP,GAASA,EAAQM,EAAON,GACvDR,EAAKiB,cAAclB,EAAMH,KAAMoB,GAChC9B,GACAA,EAAS8B,EACZ,EAELpB,KAAMf,EACNqC,UAAW,CACPC,UAAW,CACPnC,UACAM,cACA8B,MAAOf,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDO,EAC5EQ,oBAAqB,CACjBvB,SAAU,IACVwB,MAAO,CAAEC,UAAW,YAIhCpC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACboC,cAAenC,IAElBP,GACGY,EAAC+B,EAAW,CAAAzC,QAAQ,UAAU2B,GAAI,CAAEe,MAAOnD,EAAMoD,QAAQC,KAAKC,WACzD/B,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAqB,EAAA,CAAAhC,SAAA,CACiB,aAAZd,GACGU,EAAC+B,EAAU,CAACzC,QAAQ,YAAY+C,UAAU,KAAKL,MAAM,cAChD5B,SAAAlB,IAGRa,OAKNC,EAACsC,EAAc,CAACpD,MAAOA,EAAQkB,SAAAL,KAA+B"}
|
|
@@ -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,link:b,isLast:g,customButton:f,iconComponent:h,dataFd:y="",isSelected:L=!1})=>{const k=i.useTheme(),j=i.useMediaQuery(k.breakpoints.down("md")),I=!g||j,M=d||u,B=a||m;return e.jsxs(r,{borderBottom:I?o:"none",divider:I,button:!0,fdKey:y||`link-button-${u}`,to:b,onClick:l,disabled:c,selected:L,children:[p&&e.jsx(n,{iconMargin:x,children:e.jsx("img",{src:p,alt:""})}),h&&e.jsx(n,{iconMargin:x,children:h}),e.jsx(s,{primary:M,secondary:B,sx:{pr:"60px"}}),f||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 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 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 {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","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,eAsBrBC,EAAqB,EAC9BrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,OACAC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMnC,EAAQoC,EAAAA,WACRC,EAAWC,EAAAA,cAActC,EAAMuC,YAAYC,KAAK,OAChDC,GAAcV,GAAUM,EAExBK,EAAYnB,GAAeI,EAC3BgB,EAAenB,GAAkBI,EAEvC,OACIgB,EAAAA,KAAClD,EACG,CAAAO,aAAcwC,EAAaxC,EAAe,OAC1C4C,QAASJ,EACTK,QAAM,EACNC,MAAOb,GAAU,eAAeP,IAChCqB,GAAIlB,EACJJ,QAASA,EACTD,SAAUA,EACVvB,SAAUiC,EAAUc,SAAA,CAEnBpB,GACGqB,EAAAC,IAACvC,EAAkB,CAACE,WAAYA,EAAUmC,SACtCC,EAAAA,IAAK,MAAA,CAAAE,IAAKvB,EAAMwB,IAAI,OAI3BpB,GAAiBiB,EAAAC,IAACvC,EAAkB,CAACE,WAAYA,EAAamC,SAAAhB,IAE/DiB,EAACC,IAAAhC,EAAmB,CAAAT,QAASgC,EAAWrB,UAAWsB,EAAcW,GAAI,CAAEC,GAAI,UAE1EvB,GACGkB,EAACC,IAAAK,aAAuB,CAAA,aAAA,eAAe7B,IACnCsB,SAAAC,EAAAA,IAACO,EAAkBA,mBAAA,CAAA,OAIjC"}
|
|
@@ -17,7 +17,8 @@ interface ListItemLinkButtonProps {
|
|
|
17
17
|
iconComponent?: JSX.Element;
|
|
18
18
|
iconMargin?: MarginType;
|
|
19
19
|
dataFd?: string;
|
|
20
|
+
isSelected?: boolean;
|
|
20
21
|
}
|
|
21
|
-
declare const ListItemLinkButton: ({ borderBottom, customTitle, customSubtitle, disabled, onClick, title, subtitle, icon, iconMargin, link, isLast, customButton, iconComponent, dataFd, }: ListItemLinkButtonProps) => react_jsx_runtime.JSX.Element;
|
|
22
|
+
declare const ListItemLinkButton: ({ borderBottom, customTitle, customSubtitle, disabled, onClick, title, subtitle, icon, iconMargin, link, isLast, customButton, iconComponent, dataFd, isSelected, }: ListItemLinkButtonProps) => react_jsx_runtime.JSX.Element;
|
|
22
23
|
|
|
23
24
|
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 a,useMediaQuery as d,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:x,link:h,isLast:k,customButton:L,iconComponent:y,dataFd:M="",isSelected:B=!1})=>{const C=a(),I=d(C.breakpoints.down("md")),w=!k||I,F=r||b,T=n||f;return t(s,{borderBottom:w?i:"none",divider:w,button:!0,fdKey:M||`link-button-${b}`,to:h,onClick:u,disabled:l,selected:B,children:[g&&e(m,{iconMargin:x,children:e("img",{src:g,alt:""})}),y&&e(m,{iconMargin:x,children:y}),e(p,{primary:F,secondary:T,sx:{pr:"60px"}}),L||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 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 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 {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","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,eAsBrBC,EAAqB,EAC9BrB,eACAsB,cACAC,iBACAC,YAAW,EACXC,UACAC,QACAC,WACAC,OACAf,aACAgB,OACAC,SACAC,eACAC,gBACAC,SAAS,GACTC,cAAa,MAEb,MAAMnC,EAAQoC,IACRC,EAAWC,EAActC,EAAMuC,YAAYC,KAAK,OAChDC,GAAcV,GAAUM,EAExBK,EAAYnB,GAAeI,EAC3BgB,EAAenB,GAAkBI,EAEvC,OACIgB,EAAClD,EACG,CAAAO,aAAcwC,EAAaxC,EAAe,OAC1C4C,QAASJ,EACTK,QAAM,EACNC,MAAOb,GAAU,eAAeP,IAChCqB,GAAIlB,EACJJ,QAASA,EACTD,SAAUA,EACVvB,SAAUiC,EAAUc,SAAA,CAEnBpB,GACGqB,EAACtC,EAAkB,CAACE,WAAYA,EAAUmC,SACtCC,EAAK,MAAA,CAAAC,IAAKtB,EAAMuB,IAAI,OAI3BnB,GAAiBiB,EAACtC,EAAkB,CAACE,WAAYA,EAAamC,SAAAhB,IAE/DiB,EAAC/B,EAAmB,CAAAT,QAASgC,EAAWrB,UAAWsB,EAAcU,GAAI,CAAEC,GAAI,UAE1EtB,GACGkB,EAACK,EAAuB,CAAA,aAAA,eAAe5B,IACnCsB,SAAAC,EAACM,EAAkB,CAAA,OAIjC"}
|
|
@@ -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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"}
|