udp-react-enterprise-component-library 25.18.1-beta.4 → 25.18.1-beta.6
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/{Accordion-gB7-h8x2.js → Accordion-CaMSRkVt.js} +2 -2
- package/dist/{Accordion-gB7-h8x2.js.map → Accordion-CaMSRkVt.js.map} +1 -1
- package/dist/{ActionProvider-Bac2QDAs.js → ActionProvider-CXHkH2mP.js} +2 -2
- package/dist/{ActionProvider-Bac2QDAs.js.map → ActionProvider-CXHkH2mP.js.map} +1 -1
- package/dist/{ActionSplitScreen-sKnNHSHa.js → ActionSplitScreen-D-Ao-Oc1.js} +3 -3
- package/dist/{ActionSplitScreen-sKnNHSHa.js.map → ActionSplitScreen-D-Ao-Oc1.js.map} +1 -1
- package/dist/{ActionWrapper-CVOfJ5oR.js → ActionWrapper-h7Itpcl5.js} +3 -3
- package/dist/{ActionWrapper-CVOfJ5oR.js.map → ActionWrapper-h7Itpcl5.js.map} +1 -1
- package/dist/AmbientCardButton-DOnaCczn.js.map +1 -1
- package/dist/{BaseTreeMenu-sWv-qaul.js → BaseTreeMenu-C3azNZ0b.js} +2 -2
- package/dist/{BaseTreeMenu-sWv-qaul.js.map → BaseTreeMenu-C3azNZ0b.js.map} +1 -1
- package/dist/{CircleButton-DpVIcx-w.js → CircleButton-DZtXx7uN.js} +2 -2
- package/dist/{CircleButton-DpVIcx-w.js.map → CircleButton-DZtXx7uN.js.map} +1 -1
- package/dist/{CustomMenuPage-BhA0LNhM.js → CustomMenuPage-iBhLu1TK.js} +2 -2
- package/dist/{CustomMenuPage-BhA0LNhM.js.map → CustomMenuPage-iBhLu1TK.js.map} +1 -1
- package/dist/{EntityHeader-BLt_uxQ3.js → EntityHeader--gf9BpbJ.js} +2 -2
- package/dist/{EntityHeader-BLt_uxQ3.js.map → EntityHeader--gf9BpbJ.js.map} +1 -1
- package/dist/{FileViewer-Cqrlt60_.js → FileViewer-qG1dw7RF.js} +2 -2
- package/dist/{FileViewer-Cqrlt60_.js.map → FileViewer-qG1dw7RF.js.map} +1 -1
- package/dist/{FluentCell-C2Qfg1ve.js → FluentCell-Ce9_3cOY.js} +2 -2
- package/dist/{FluentCell-C2Qfg1ve.js.map → FluentCell-Ce9_3cOY.js.map} +1 -1
- package/dist/{FluentDataTable-DuDb9VVl.js → FluentDataTable-BjCP7-Vf.js} +2 -2
- package/dist/{FluentDataTable-DuDb9VVl.js.map → FluentDataTable-BjCP7-Vf.js.map} +1 -1
- package/dist/FluentProfileMenuCard-BMGWsjyD.js.map +1 -1
- package/dist/{FluentTimeline-CCQ3mUhk.js → FluentTimeline-ExazqTRJ.js} +2 -2
- package/dist/{FluentTimeline-CCQ3mUhk.js.map → FluentTimeline-ExazqTRJ.js.map} +1 -1
- package/dist/{IconRenderer-BB7NMX-b.js → IconRenderer-DAfBq9qv.js} +2 -2
- package/dist/{IconRenderer-BB7NMX-b.js.map → IconRenderer-DAfBq9qv.js.map} +1 -1
- package/dist/{MenuPage-BhPLgI_i.js → MenuPage-BtPJFNys.js} +3 -3
- package/dist/{MenuPage-BhPLgI_i.js.map → MenuPage-BtPJFNys.js.map} +1 -1
- package/dist/{MenuPage-DNq_eYJy.js → MenuPage-VDT9iycc.js} +3 -3
- package/dist/{MttMainTimeline-uB-YMlPd.js → MttMainTimeline-_6Fpr66g.js} +2 -2
- package/dist/{MttMainTimeline-uB-YMlPd.js.map → MttMainTimeline-_6Fpr66g.js.map} +1 -1
- package/dist/{MttSummary-dlQbfqex.js → MttSummary-BBsBlhgF.js} +3 -3
- package/dist/{MttSummary-dlQbfqex.js.map → MttSummary-BBsBlhgF.js.map} +1 -1
- package/dist/{NotesScreen-BjY_InsP.js → NotesScreen-B7hLzUOl.js} +2 -2
- package/dist/{NotesScreen-BjY_InsP.js.map → NotesScreen-B7hLzUOl.js.map} +1 -1
- package/dist/{PageActionWrapper-5hXS8BiL.js → PageActionWrapper-BBCjuj8x.js} +2 -2
- package/dist/{PageActionWrapper-5hXS8BiL.js.map → PageActionWrapper-BBCjuj8x.js.map} +1 -1
- package/dist/{PaymentForm-C9djfH5t.js → PaymentForm-OijJFr0S.js} +2 -2
- package/dist/{PaymentForm-C9djfH5t.js.map → PaymentForm-OijJFr0S.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesTable-BaUKwrK6.js → RecentlyLoadedNodesTable-ScWvY2Bk.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-BaUKwrK6.js.map → RecentlyLoadedNodesTable-ScWvY2Bk.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-Bwmkdavm.js → RecentlyLoadedNodesWidget-5538JENZ.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-Bwmkdavm.js.map → RecentlyLoadedNodesWidget-5538JENZ.js.map} +1 -1
- package/dist/{RemindersCard-D1M4Z5Tm.js → RemindersCard-BVT2iuT4.js} +2 -2
- package/dist/{RemindersCard-D1M4Z5Tm.js.map → RemindersCard-BVT2iuT4.js.map} +1 -1
- package/dist/{RemindersScreen-BiRcMvRs.js → RemindersScreen-NaO3jhh9.js} +2 -2
- package/dist/{RemindersScreen-BiRcMvRs.js.map → RemindersScreen-NaO3jhh9.js.map} +1 -1
- package/dist/{RemindersWidget-DBgk6Ibq.js → RemindersWidget-cUps1X7r.js} +2 -2
- package/dist/{RemindersWidget-DBgk6Ibq.js.map → RemindersWidget-cUps1X7r.js.map} +1 -1
- package/dist/{Shell-DtiGFd4z.js → Shell-DbVTLfw8.js} +3 -3
- package/dist/{Shell-DtiGFd4z.js.map → Shell-DbVTLfw8.js.map} +1 -1
- package/dist/{Statistic-CdpPX5KV.js → Statistic-BMkpqkol.js} +2 -2
- package/dist/{Statistic-CdpPX5KV.js.map → Statistic-BMkpqkol.js.map} +1 -1
- package/dist/TokenGroupItem-DEZAU-Gs.js.map +1 -1
- package/dist/{TreeUtilities-BnHT4nq0.js → TreeUtilities-DWgARig7.js} +3 -3
- package/dist/{TreeUtilities-BnHT4nq0.js.map → TreeUtilities-DWgARig7.js.map} +1 -1
- package/dist/UI/accordion/index.js +2 -2
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +2 -2
- package/dist/UI/dataDisplay/FluentDataTable/index.js +3 -3
- package/dist/UI/dataDisplay/entityHeader/index.js +3 -3
- package/dist/UI/dataDisplay/index.js +3 -3
- package/dist/UI/fileViewer/index.js +2 -2
- package/dist/UI/index.js +6 -6
- package/dist/UI/mapLayout/ui/index.js +2 -2
- package/dist/UI/templates/ui/renderers/index.js +2 -2
- package/dist/UI/timeline/fluentTimeline/index.js +2 -2
- package/dist/UI/timeline/index.js +2 -2
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +4 -4
- package/dist/UI/widgets/library/RemindersWidget/index.js +3 -3
- package/dist/{UdpDataBrowserPage-BlxXko_I.js → UdpDataBrowserPage-8NLQuSA9.js} +2 -2
- package/dist/{UdpDataBrowserPage-BlxXko_I.js.map → UdpDataBrowserPage-8NLQuSA9.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-hLsxBDt2.js → UdpInquiryMaintenanceEnginePage-CgfEuu7m.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-hLsxBDt2.js.map → UdpInquiryMaintenanceEnginePage-CgfEuu7m.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-CWdToHMY.js → UdpMaintenanceEnginePage-BrWw5TD0.js} +2 -2
- package/dist/{UdpMaintenanceEnginePage-CWdToHMY.js.map → UdpMaintenanceEnginePage-BrWw5TD0.js.map} +1 -1
- package/dist/{UdpNotesPage-DVow0aLq.js → UdpNotesPage-DfICgZRs.js} +2 -2
- package/dist/{UdpNotesPage-DVow0aLq.js.map → UdpNotesPage-DfICgZRs.js.map} +1 -1
- package/dist/{UdpPages-DS_z-6mU.js → UdpPages-CZRR6uL_.js} +9 -9
- package/dist/{UdpPages-DS_z-6mU.js.map → UdpPages-CZRR6uL_.js.map} +1 -1
- package/dist/{UdpRemindersPage-CYBm84GL.js → UdpRemindersPage-KAHur1Oo.js} +2 -2
- package/dist/{UdpRemindersPage-CYBm84GL.js.map → UdpRemindersPage-KAHur1Oo.js.map} +1 -1
- package/dist/{UdpRoutes-98S-kqBV.js → UdpRoutes-BvnliB-h.js} +3 -3
- package/dist/{UdpRoutes-98S-kqBV.js.map → UdpRoutes-BvnliB-h.js.map} +1 -1
- package/dist/{UdpVerticalManagementPage-D9bK-UMW.js → UdpVerticalManagementPage-hpHkwE6I.js} +2 -2
- package/dist/{UdpVerticalManagementPage-D9bK-UMW.js.map → UdpVerticalManagementPage-hpHkwE6I.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-DQJpNJaQ.js → UdpVerticalManagementSidesheet-CVU_tQ17.js} +2 -2
- package/dist/{UdpVerticalManagementSidesheet-DQJpNJaQ.js.map → UdpVerticalManagementSidesheet-CVU_tQ17.js.map} +1 -1
- package/dist/{WorkflowContainer-hbA-EyK-.js → WorkflowContainer-CNAbhsJK.js} +2 -2
- package/dist/{WorkflowContainer-hbA-EyK-.js.map → WorkflowContainer-CNAbhsJK.js.map} +1 -1
- package/dist/{WorkflowContainer-CzQerfwt.js → WorkflowContainer-DNf1UcY5.js} +3 -3
- package/dist/{WorkflowTreeMenu-BDolYqHx.js → WorkflowTreeMenu-U3JYFWVn.js} +2 -2
- package/dist/{WorkflowTreeMenu-BDolYqHx.js.map → WorkflowTreeMenu-U3JYFWVn.js.map} +1 -1
- package/dist/actions/index.js +6 -6
- package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +3 -3
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +4 -4
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +3 -3
- package/dist/index.js +39 -39
- package/dist/inquiry/dashboard/index.js +3 -3
- package/dist/inquiry/index.js +9 -9
- package/dist/{inquiry-KrLF1JVq.js → inquiry-BurQFtZD.js} +44 -21
- package/dist/inquiry-BurQFtZD.js.map +1 -0
- package/dist/menuPage/index.js +4 -4
- package/dist/notes/index.js +2 -2
- package/dist/reminders/index.js +3 -3
- package/dist/routes/index.js +1 -1
- package/dist/shell/index.js +8 -8
- package/dist/treeMenu/index.js +2 -2
- package/dist/types/src/inquiry/InquiryContainer.d.ts.map +1 -1
- package/dist/types/src/utilities/tree/TreeUtilities.d.ts +1 -1
- package/dist/types/src/utilities/tree/TreeUtilities.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +2 -2
- package/dist/udp/pages/UdpGridPanelManagementPage/index.js +2 -2
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +11 -11
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +10 -10
- package/dist/udp/pages/UdpNotesPage/index.js +3 -3
- package/dist/udp/pages/UdpPages/index.js +20 -20
- package/dist/udp/pages/UdpRemindersPage/index.js +3 -3
- package/dist/udp/pages/UdpVerticalManagementPage/index.js +3 -3
- package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +2 -2
- package/dist/udp/pages/index.js +20 -20
- package/dist/utilities/form/paymentForm/index.js +2 -2
- package/dist/utilities/provider/index.js +6 -6
- package/dist/utilities/tree/index.js +1 -1
- package/dist/workflow/index.js +3 -3
- package/dist/workflow/menus/index.js +2 -2
- package/export-map.json +1 -1
- package/package.json +2 -2
- package/dist/inquiry-KrLF1JVq.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CircleButton-DpVIcx-w.js","names":["useStyles","useStyles","useStyles","useStyles"],"sources":["../src/componentSystems/multiThreadTimeline/ui/SummaryToken.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineToggleButton.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineTopRowFilter.jsx","../src/componentSystems/multiThreadTimeline/ui/DateWrapper.jsx","../src/componentSystems/multiThreadTimeline/ui/CircleButton.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles, Typography, Divider, Tooltip } from '@material-ui/core';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { TimelineDateBar } from './TimelineDateBar';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { TimelineStatus } from './TimelineStatus';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n minHeight: 200,\n background: (props) => !props.hidebackground && 'whitesmoke'\n },\n dateBar: {\n width: 130\n },\n centerWrapper: {\n display: 'flex',\n justifyContent: 'center'\n }\n}));\n\nexport const SummaryToken = (props) => {\n const {\n title,\n short,\n showMonth,\n amount,\n status,\n date,\n user,\n icon,\n months = [],\n className,\n month,\n balance\n } = props;\n const classes = useStyles(props);\n\n return (\n <div className={clsx(classes.root, className)}>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: 130\n }}\n >\n <div style={{ marginRight: -8 }} className={classes.centerWrapper}>\n {icon}\n </div>\n\n <div style={{ height: 24, display: 'flex', justifyContent: 'center' }}>\n <Divider orientation='vertical' />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <LayoutUnit unit='nudge' />\n <div style={{ textAlign: 'center' }}>\n <Tooltip title={title}>\n <Typography\n variant='subtitle2'\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n {title}\n </Typography>\n </Tooltip>\n </div>\n <LayoutUnit unit='nudge' />\n\n {amount && (\n <div\n style={{\n textAlign: 'center'\n }}\n >\n <Tooltip title={amount}>\n <Typography\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n {amount}\n </Typography>\n </Tooltip>\n </div>\n )}\n\n {!amount && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <TimelineStatus status={status} />\n </div>\n )}\n\n <div style={{ textAlign: 'center' }}>\n <Typography variant='caption'>{date}</Typography>\n <div\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n <Tooltip title={user}>\n <Typography variant='caption'>{user}</Typography>\n </Tooltip>\n </div>\n <div\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n <Tooltip title={balance}>\n <Typography variant='caption'>{balance}</Typography>\n </Tooltip>\n </div>\n </div>\n </div>\n <LayoutUnit unit='xxs' />\n {!short && (\n <div className={classes.dateBar}>\n <TimelineDateBar\n month={month}\n showMonth={showMonth}\n months={months}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nSummaryToken.propTypes = {\n title: PropTypes.string,\n short: PropTypes.bool,\n showMonth: PropTypes.bool,\n amount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n status: PropTypes.string,\n date: PropTypes.string,\n user: PropTypes.string,\n icon: PropTypes.element,\n months: PropTypes.array,\n className: PropTypes.string,\n month: PropTypes.string,\n balance: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n hidebackground: PropTypes.bool\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\n/**\n * @returns {import('@material-ui/core/styles').WithStyles<import('@material-ui/core/styles/withStyles').Styles<any, {}, string>>}\n */\nexport const useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n off: {\n opacity: 0.5\n }\n}));\n\nexport const TimelineToggleButton = ({\n title,\n timelineItem,\n handleClick,\n icon,\n off\n}) => {\n //const [width, setWidth] = useState(0);\n const classes = useStyles();\n const [filter, setFilter] = useState(true);\n\n const selectFilter = () => {\n setFilter(!filter);\n };\n\n return (\n <div\n className={classes.root}\n onClick={handleClick}\n onMouseUp={selectFilter}\n >\n <div className={off && classes.off}>{icon}</div>\n\n <div style={{ marginTop: -4, marginRight: 48 }}>\n <Typography\n variant='caption'\n style={{ textDecoration: !filter && 'line-through' }}\n >\n {title}\n </Typography>\n </div>\n {/* @todo: fix caption size */}\n </div>\n );\n};\n\nTimelineToggleButton.propTypes = {\n title: PropTypes.string.isRequired,\n timelineItem: PropTypes.object,\n handleClick: PropTypes.func.isRequired,\n icon: PropTypes.node.isRequired,\n off: PropTypes.bool\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { TimelineToggleButton } from './TimelineToggleButton';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n menu: {\n marginTop: 10,\n marginRight: 8,\n marginBottom: 20\n }\n}));\n\nexport const TimelineTopRowFilter = ({\n filterList,\n filterCall,\n filterListGroup,\n off,\n clear\n}) => {\n const classes = useStyles();\n\n return (\n <div className={classes.root}>\n {/* <button onClick={()=> setCompact(!compact) } > minimize </button> */}\n <div>\n <div>\n <div style={{ display: 'flex' }}>\n {filterListGroup &&\n filterListGroup.map((item) => {\n return (\n <TimelineToggleButton\n title={item.name}\n timelineItem={item.name}\n handleClick={() => filterCall(item.name)}\n off={off}\n icon={\n <IconRenderer\n noBorder\n value={{\n color: { hex: '#' + item.color },\n name: item.icon\n }}\n />\n }\n />\n );\n })}\n {/* <Button onClick={clear} >Clear</Button> */}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nTimelineTopRowFilter.propTypes = {\n filterList: PropTypes.array,\n filterCall: PropTypes.func,\n filterListGroup: PropTypes.array,\n off: PropTypes.bool,\n clear: PropTypes.func\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography, Fade, Divider } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n alignContent: 'flex-end',\n cursor: 'pointer',\n justifyContent: 'center'\n },\n wrapper: {\n display: 'flex'\n },\n countWrapper: {\n background: '#E9DADB',\n borderRadius: 25,\n padding: 8\n }\n}));\n\nexport const DateWrapper = ({ children, date, months, count }) => {\n const classes = useStyles();\n\n const [show, setShow] = useState(true);\n const threadHeight = 165;\n\n const MONTHS = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'March',\n 4: 'Apr',\n 5: 'May',\n 6: 'June',\n 7: 'July',\n 8: 'Aug',\n 9: 'Sept',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec'\n };\n\n // Convert months to order\n const orderedMonths = [months];\n\n orderedMonths.sort(function (a, b) {\n return a - b;\n });\n\n // Map to named months\n const output = orderedMonths.map(function (i) {\n return MONTHS[i];\n });\n\n return (\n <div onClick={() => setShow(!show)}>\n <Fade in={show}>\n <div>{show && <div className={classes.wrapper}>{children} </div>}</div>\n </Fade>\n\n <div className={classes.root}>\n <div>\n {!show && (\n <div\n style={{\n height: threadHeight,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <div>\n <div className={classes.countWrapper}>\n <Typography variant='subtitle2'> + </Typography>\n {count}\n </div>\n <div\n style={{\n height: 123,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <Divider orientation='vertical' />\n </div>\n </div>\n </div>\n )}\n <div style={{ padding: 4 }}>\n <Typography variant='caption'>{output} </Typography>\n </div>\n </div>\n </div>\n </div>\n );\n};\nDateWrapper.propTypes = {\n children: PropTypes.node,\n date: PropTypes.string,\n months: PropTypes.number,\n count: PropTypes.number\n};\n","import React from 'react';\nimport { makeStyles, ButtonBase, Paper } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 12,\n paddingLeft: 13,\n paddingRight: 11,\n borderRadius: 50,\n background: theme.palette.common.white,\n minWidth: 32,\n minHeight: 32\n }\n}));\n\nexport const CircleButton = (props) => {\n const { children, ...otherProps } = props;\n const classes = useStyles(props);\n\n return (\n <ButtonBase {...otherProps}>\n <Paper className={classes.root} elevation={1}>\n {children}\n </Paper>\n </ButtonBase>\n );\n};\nCircleButton.propTypes = {\n children: PropTypes.node\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CircleButton-DZtXx7uN.js","names":["useStyles","useStyles","useStyles","useStyles"],"sources":["../src/componentSystems/multiThreadTimeline/ui/SummaryToken.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineToggleButton.jsx","../src/componentSystems/multiThreadTimeline/ui/TimelineTopRowFilter.jsx","../src/componentSystems/multiThreadTimeline/ui/DateWrapper.jsx","../src/componentSystems/multiThreadTimeline/ui/CircleButton.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles, Typography, Divider, Tooltip } from '@material-ui/core';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { TimelineDateBar } from './TimelineDateBar';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { TimelineStatus } from './TimelineStatus';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n minHeight: 200,\n background: (props) => !props.hidebackground && 'whitesmoke'\n },\n dateBar: {\n width: 130\n },\n centerWrapper: {\n display: 'flex',\n justifyContent: 'center'\n }\n}));\n\nexport const SummaryToken = (props) => {\n const {\n title,\n short,\n showMonth,\n amount,\n status,\n date,\n user,\n icon,\n months = [],\n className,\n month,\n balance\n } = props;\n const classes = useStyles(props);\n\n return (\n <div className={clsx(classes.root, className)}>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n width: 130\n }}\n >\n <div style={{ marginRight: -8 }} className={classes.centerWrapper}>\n {icon}\n </div>\n\n <div style={{ height: 24, display: 'flex', justifyContent: 'center' }}>\n <Divider orientation='vertical' />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <LayoutUnit unit='nudge' />\n <div style={{ textAlign: 'center' }}>\n <Tooltip title={title}>\n <Typography\n variant='subtitle2'\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n {title}\n </Typography>\n </Tooltip>\n </div>\n <LayoutUnit unit='nudge' />\n\n {amount && (\n <div\n style={{\n textAlign: 'center'\n }}\n >\n <Tooltip title={amount}>\n <Typography\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n {amount}\n </Typography>\n </Tooltip>\n </div>\n )}\n\n {!amount && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <TimelineStatus status={status} />\n </div>\n )}\n\n <div style={{ textAlign: 'center' }}>\n <Typography variant='caption'>{date}</Typography>\n <div\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n <Tooltip title={user}>\n <Typography variant='caption'>{user}</Typography>\n </Tooltip>\n </div>\n <div\n style={{\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }}\n >\n <Tooltip title={balance}>\n <Typography variant='caption'>{balance}</Typography>\n </Tooltip>\n </div>\n </div>\n </div>\n <LayoutUnit unit='xxs' />\n {!short && (\n <div className={classes.dateBar}>\n <TimelineDateBar\n month={month}\n showMonth={showMonth}\n months={months}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nSummaryToken.propTypes = {\n title: PropTypes.string,\n short: PropTypes.bool,\n showMonth: PropTypes.bool,\n amount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n status: PropTypes.string,\n date: PropTypes.string,\n user: PropTypes.string,\n icon: PropTypes.element,\n months: PropTypes.array,\n className: PropTypes.string,\n month: PropTypes.string,\n balance: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n hidebackground: PropTypes.bool\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\n/**\n * @returns {import('@material-ui/core/styles').WithStyles<import('@material-ui/core/styles/withStyles').Styles<any, {}, string>>}\n */\nexport const useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n off: {\n opacity: 0.5\n }\n}));\n\nexport const TimelineToggleButton = ({\n title,\n timelineItem,\n handleClick,\n icon,\n off\n}) => {\n //const [width, setWidth] = useState(0);\n const classes = useStyles();\n const [filter, setFilter] = useState(true);\n\n const selectFilter = () => {\n setFilter(!filter);\n };\n\n return (\n <div\n className={classes.root}\n onClick={handleClick}\n onMouseUp={selectFilter}\n >\n <div className={off && classes.off}>{icon}</div>\n\n <div style={{ marginTop: -4, marginRight: 48 }}>\n <Typography\n variant='caption'\n style={{ textDecoration: !filter && 'line-through' }}\n >\n {title}\n </Typography>\n </div>\n {/* @todo: fix caption size */}\n </div>\n );\n};\n\nTimelineToggleButton.propTypes = {\n title: PropTypes.string.isRequired,\n timelineItem: PropTypes.object,\n handleClick: PropTypes.func.isRequired,\n icon: PropTypes.node.isRequired,\n off: PropTypes.bool\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { TimelineToggleButton } from './TimelineToggleButton';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n menu: {\n marginTop: 10,\n marginRight: 8,\n marginBottom: 20\n }\n}));\n\nexport const TimelineTopRowFilter = ({\n filterList,\n filterCall,\n filterListGroup,\n off,\n clear\n}) => {\n const classes = useStyles();\n\n return (\n <div className={classes.root}>\n {/* <button onClick={()=> setCompact(!compact) } > minimize </button> */}\n <div>\n <div>\n <div style={{ display: 'flex' }}>\n {filterListGroup &&\n filterListGroup.map((item) => {\n return (\n <TimelineToggleButton\n title={item.name}\n timelineItem={item.name}\n handleClick={() => filterCall(item.name)}\n off={off}\n icon={\n <IconRenderer\n noBorder\n value={{\n color: { hex: '#' + item.color },\n name: item.icon\n }}\n />\n }\n />\n );\n })}\n {/* <Button onClick={clear} >Clear</Button> */}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nTimelineTopRowFilter.propTypes = {\n filterList: PropTypes.array,\n filterCall: PropTypes.func,\n filterListGroup: PropTypes.array,\n off: PropTypes.bool,\n clear: PropTypes.func\n};\n","import React, { useState } from 'react';\nimport { makeStyles, Typography, Fade, Divider } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n alignContent: 'flex-end',\n cursor: 'pointer',\n justifyContent: 'center'\n },\n wrapper: {\n display: 'flex'\n },\n countWrapper: {\n background: '#E9DADB',\n borderRadius: 25,\n padding: 8\n }\n}));\n\nexport const DateWrapper = ({ children, date, months, count }) => {\n const classes = useStyles();\n\n const [show, setShow] = useState(true);\n const threadHeight = 165;\n\n const MONTHS = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'March',\n 4: 'Apr',\n 5: 'May',\n 6: 'June',\n 7: 'July',\n 8: 'Aug',\n 9: 'Sept',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec'\n };\n\n // Convert months to order\n const orderedMonths = [months];\n\n orderedMonths.sort(function (a, b) {\n return a - b;\n });\n\n // Map to named months\n const output = orderedMonths.map(function (i) {\n return MONTHS[i];\n });\n\n return (\n <div onClick={() => setShow(!show)}>\n <Fade in={show}>\n <div>{show && <div className={classes.wrapper}>{children} </div>}</div>\n </Fade>\n\n <div className={classes.root}>\n <div>\n {!show && (\n <div\n style={{\n height: threadHeight,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <div>\n <div className={classes.countWrapper}>\n <Typography variant='subtitle2'> + </Typography>\n {count}\n </div>\n <div\n style={{\n height: 123,\n display: 'flex',\n justifyContent: 'center'\n }}\n >\n <Divider orientation='vertical' />\n </div>\n </div>\n </div>\n )}\n <div style={{ padding: 4 }}>\n <Typography variant='caption'>{output} </Typography>\n </div>\n </div>\n </div>\n </div>\n );\n};\nDateWrapper.propTypes = {\n children: PropTypes.node,\n date: PropTypes.string,\n months: PropTypes.number,\n count: PropTypes.number\n};\n","import React from 'react';\nimport { makeStyles, ButtonBase, Paper } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 12,\n paddingLeft: 13,\n paddingRight: 11,\n borderRadius: 50,\n background: theme.palette.common.white,\n minWidth: 32,\n minHeight: 32\n }\n}));\n\nexport const CircleButton = (props) => {\n const { children, ...otherProps } = props;\n const classes = useStyles(props);\n\n return (\n <ButtonBase {...otherProps}>\n <Paper className={classes.root} elevation={1}>\n {children}\n </Paper>\n </ButtonBase>\n );\n};\nCircleButton.propTypes = {\n children: PropTypes.node\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as MenuPage_default } from "./MenuPage-
|
|
1
|
+
import { t as MenuPage_default } from "./MenuPage-BtPJFNys.js";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { Typography, makeStyles } from "@material-ui/core";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
@@ -93,4 +93,4 @@ var CustomMenuPage_default = CustomMenuPage;
|
|
|
93
93
|
|
|
94
94
|
//#endregion
|
|
95
95
|
export { CustomMenuPage_default as t };
|
|
96
|
-
//# sourceMappingURL=CustomMenuPage-
|
|
96
|
+
//# sourceMappingURL=CustomMenuPage-iBhLu1TK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomMenuPage-
|
|
1
|
+
{"version":3,"file":"CustomMenuPage-iBhLu1TK.js","names":["MenuPage"],"sources":["../src/menuPage/CustomMenuPage.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuPage from './MenuPage';\nimport { makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n flexGrow: 1,\n padding: theme.spacing(1),\n },\n}));\n\n\nfunction buildInnerMenuFromItems(items = [], menuTitle, idPrefix = 'custom', showItemCount = false, itemCountAccessor = null) {\n const idMap = {};\n const views = (items || []).map((item, idx) => {\n const itemKey = item.id ?? item.ID ?? item.groupID ?? idx;\n const menuStructureId = `${idPrefix}-${itemKey}`;\n\n // compute optional count using accessor\n let itemCount = null;\n if (showItemCount && typeof itemCountAccessor === 'function') {\n try {\n const cnt = itemCountAccessor(item);\n if (cnt !== undefined && cnt !== null) {\n itemCount = cnt;\n }\n } catch (e) {\n }\n }\n\n idMap[menuStructureId] = item;\n item.__menuStructureId = menuStructureId;\n item.__itemKey = itemKey;\n\n const parametersObj = { FluentIcon: 'PageListIcon', PageId: '', defaultDisplay: 'expanded' };\n if (itemCount !== null && itemCount !== undefined) {\n parametersObj.itemCount = itemCount;\n }\n\n return {\n menuStructureId,\n menuItemInstance: {\n menuItemInstanceId: `${idPrefix}-item-${itemKey}`,\n clusterId: null,\n menuItemId: null,\n name: item.name ?? '',\n parameters: JSON.stringify(parametersObj),\n isActive: true,\n roleIds: [],\n groupIds: [],\n tenantSsoId: null,\n parentMenuItemInstanceId: null,\n items: null,\n },\n title: item.name ?? '',\n order: idx,\n parentId: null,\n unsubscribed: false,\n menuItemInstanceStructures: [],\n };\n });\n\n const innerMenu = {\n // set the inner menu name only when client provided a menuTitle; leave blank when not provided\n name: menuTitle ? menuTitle : '',\n menuItemInstanceStructureViews: views,\n };\n\n return { innerMenu, idMap };\n}\n\nconst CustomMenuPage = ({\n items = [],\n className = '',\n menuTitle,\n mainContent: clientMainContent,\n idPrefix = 'custom',\n showItemCount = false,\n itemCountAccessor = null,\n allowMissingPageParam = false,\n}) => {\n const classes = useStyles();\n\n const { innerMenu, idMap } = buildInnerMenuFromItems(items, menuTitle, idPrefix, showItemCount, itemCountAccessor);\n\n // Expect client application to provide mainContent. If not provided, render an empty container.\n const clientContent = clientMainContent\n ? ({ selectedNode, menuItemsList }) =>\n clientMainContent({ selectedNode, menuItemsList, idMap, items, classes, className })\n : ({ selectedNode, menuItemsList }) => <div className={`${classes.root} ${className}`} />;\n\n const composedMainContent = ({ selectedNode, menuItemsList }) => (\n <div className={`${classes.root} ${className}`}>\n {clientContent({ selectedNode, menuItemsList })}\n </div>\n );\n\n return (\n <MenuPage\n innerMenuOverride={innerMenu}\n mainContent={composedMainContent}\n menuTitle={menuTitle}\n allowMissingPageParam={allowMissingPageParam}\n />\n );\n};\n\nCustomMenuPage.propTypes = {\n items: PropTypes.array,\n className: PropTypes.string,\n menuTitle: PropTypes.string,\n mainContent: PropTypes.func,\n idPrefix: PropTypes.string,\n showItemCount: PropTypes.bool,\n itemCountAccessor: PropTypes.func,\n allowMissingPageParam: PropTypes.bool,\n};\n\nexport default CustomMenuPage;\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,YAAW,WAAU,EACrC,MAAM;CACJ,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CAC1B,EACF,EAAE;AAGH,SAAS,wBAAwB,QAAQ,EAAE,EAAE,WAAW,WAAW,UAAU,gBAAgB,OAAO,oBAAoB,MAAM;CAC5H,MAAM,QAAQ,EAAE;CAChB,MAAM,SAAS,SAAS,EAAE,EAAE,KAAK,MAAM,QAAQ;EAC7C,MAAM,UAAU,KAAK,MAAM,KAAK,MAAM,KAAK,WAAW;EACtD,MAAM,kBAAkB,GAAG,SAAS,GAAG;EAGvC,IAAI,YAAY;AAChB,MAAI,iBAAiB,OAAO,sBAAsB,WAChD,KAAI;GACF,MAAM,MAAM,kBAAkB,KAAK;AACnC,OAAI,QAAQ,UAAa,QAAQ,KAC/B,aAAY;WAEP,GAAG;AAId,QAAM,mBAAmB;AACzB,OAAK,oBAAoB;AACzB,OAAK,YAAY;EAEjB,MAAM,gBAAgB;GAAE,YAAY;GAAgB,QAAQ;GAAI,gBAAgB;GAAY;AAC5F,MAAI,cAAc,QAAQ,cAAc,OACtC,eAAc,YAAY;AAG5B,SAAO;GACL;GACA,kBAAkB;IAChB,oBAAoB,GAAG,SAAS,QAAQ;IACxC,WAAW;IACX,YAAY;IACZ,MAAM,KAAK,QAAQ;IACnB,YAAY,KAAK,UAAU,cAAc;IACzC,UAAU;IACV,SAAS,EAAE;IACX,UAAU,EAAE;IACZ,aAAa;IACb,0BAA0B;IAC1B,OAAO;IACR;GACD,OAAO,KAAK,QAAQ;GACpB,OAAO;GACP,UAAU;GACV,cAAc;GACd,4BAA4B,EAAE;GAC/B;GACD;AAQF,QAAO;EAAE,WANS;GAEhB,MAAM,YAAY,YAAY;GAC9B,gCAAgC;GACjC;EAEmB;EAAO;;AAG7B,MAAM,kBAAkB,EACtB,QAAQ,EAAE,EACV,YAAY,IACZ,WACA,aAAa,mBACb,WAAW,UACX,gBAAgB,OAChB,oBAAoB,MACpB,wBAAwB,YACpB;CACJ,MAAM,UAAU,WAAW;CAE3B,MAAM,EAAE,WAAW,UAAU,wBAAwB,OAAO,WAAW,UAAU,eAAe,kBAAkB;CAGlH,MAAM,gBAAgB,qBACjB,EAAE,cAAc,oBACf,kBAAkB;EAAE;EAAc;EAAe;EAAO;EAAO;EAAS;EAAW,CAAC,IACrF,EAAE,cAAc,oBAAoB,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,cAAe;CAE3F,MAAM,uBAAuB,EAAE,cAAc,oBAC3C,oCAAC,SAAI,WAAW,GAAG,QAAQ,KAAK,GAAG,eAChC,cAAc;EAAE;EAAc;EAAe,CAAC,CAC3C;AAGR,QACE,oCAACA;EACC,mBAAmB;EACnB,aAAa;EACF;EACY;GACvB;;AAIN,eAAe,YAAY;CACzB,OAAO,UAAU;CACjB,WAAW,UAAU;CACrB,WAAW,UAAU;CACrB,aAAa,UAAU;CACvB,UAAU,UAAU;CACpB,eAAe,UAAU;CACzB,mBAAmB,UAAU;CAC7B,uBAAuB,UAAU;CAClC;AAED,6BAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DjE8A5DC.js";
|
|
2
|
-
import { t as IconRenderer } from "./IconRenderer-
|
|
2
|
+
import { t as IconRenderer } from "./IconRenderer-DAfBq9qv.js";
|
|
3
3
|
import { n as AlertPill } from "./AggregateChip-BF6RL_4_.js";
|
|
4
4
|
import { t as ChipAlphabet } from "./ChipAlphabet-Co4gOUVP.js";
|
|
5
5
|
import { t as UdpAlertsContainer } from "./UdpAlertsContainer-DexXCrFZ.js";
|
|
@@ -525,4 +525,4 @@ EntityHeader.propTypes = {
|
|
|
525
525
|
|
|
526
526
|
//#endregion
|
|
527
527
|
export { EntityHeader as t };
|
|
528
|
-
//# sourceMappingURL=EntityHeader
|
|
528
|
+
//# sourceMappingURL=EntityHeader--gf9BpbJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityHeader-BLt_uxQ3.js","names":["useStyles","useStyles","useStyles","useStyles","useStyles","useStyles","useTheme","useStyles"],"sources":["../src/UI/dataDisplay/entityHeader/ui/EntityHeaderContainer.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderList.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderListItem.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderStatList.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderStatListItem.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderSection.jsx","../src/UI/dataDisplay/entityHeader/functions/useElementWidth.js","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderFlags.jsx","../src/UI/dataDisplay/entityHeader/EntityHeader.jsx"],"sourcesContent":["import React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles, Divider, darken, alpha } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: props => ({\n display: 'flex',\n flexDirection: props.direction === 'column' ? 'column' : 'row',\n }),\n rootBgDark: props => ({\n backgroundColor: darken(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main,\n 0.2\n ),\n color: theme.palette.getContrastText(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main\n ),\n }),\n rootBgSoft: props => ({\n backgroundColor: alpha(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main,\n 0.15\n ),\n }),\n rootBgCustom: props => ({\n backgroundColor: props.background,\n color: props.color,\n }),\n}));\n\nexport const EntityHeaderContainer = props => {\n const { children, showSeperator, background } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, // always applies\n [classes.rootBg]: background === 'light' || !background, // if background = 'light'\n [classes.rootBgDark]: background === 'dark', // if background = 'dark'\n [classes.rootBgSoft]: background === 'soft', // if background = 'soft'\n [classes.rootBgCustom]:\n background &&\n background !== 'light' &&\n background !== 'dark' &&\n background !== 'soft',\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && (\n <Divider orientation=\"vertical\" flexItem />\n )}\n </>\n );\n })}\n </div>\n );\n};\n\nEntityHeaderContainer.propTypes = {\n children: PropTypes.node.isRequired,\n showSeperator: PropTypes.bool,\n background: PropTypes.oneOf(['light', 'dark', 'soft']),\n direction: PropTypes.oneOf(['row', 'column']),\n color: PropTypes.oneOf(['primary', 'secondary']),\n};\n\nEntityHeaderContainer.defaultProps = {\n showSeperator: true,\n background: 'light',\n direction: 'row',\n color: 'primary',\n};\n","import React, { Children, cloneElement } from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, Divider } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n // listStyle: 'none',\n },\n}));\n\nexport const EntityHeaderList = props => {\n const { children, showSeperator = false } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && <Divider />}\n </>\n );\n })}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { Link, lighten, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n labelRoot: {\n color: 'inherit',\n marginRight: theme.spacing(0.5),\n opacity: 0.6\n },\n valueRoot: {\n color: 'inherit'\n // fontWeight: theme.typography.fontWeightMedium,\n },\n link: {\n color: 'inherit',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport const EntityHeaderListItem = (props) => {\n const {\n label,\n value,\n link,\n hideLabelSeperator = false,\n disablePadding = false\n } = props;\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n [classes.rootPadding]: !disablePadding\n })}\n >\n {!!label && (\n <Typography variant={'body1'} className={classes.labelRoot}>\n {label}\n {!hideLabelSeperator && ':'}\n </Typography>\n )}\n {!!value && (\n <Typography\n variant={'body1'}\n className={clsx({\n [classes.valueRoot]: true,\n [classes.valueFontWeigth]: true\n })}\n >\n {link ? (\n <Link\n href={link}\n className={classes.link}\n target='_blank'\n >\n {value}\n </Link>\n ) : (\n value\n )}\n </Typography>\n )}\n </div>\n );\n};\n","import React, { Children, cloneElement, useState } from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, Typography, Divider } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n marginLeft: 1,\n },\n },\n rootFlexGrow: {\n flexGrow: 1,\n },\n}));\n\nexport const EntityHeaderStatList = props => {\n const { children, showSeperator, flexGrow = false } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, //always applies\n [classes.rootFlexGrow]: flexGrow,\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && (\n <Divider orientation=\"vertical\" flexItem />\n )}\n </>\n );\n })}\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { alpha, Avatar, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n // padding: theme.spacing(1),\n },\n rootFlexGrow: {\n flexGrow: 1,\n },\n rootBlock: props => ({\n justifyContent: 'center',\n padding: theme.spacing(1),\n }),\n rootBlockDefault: props => ({\n backgroundColor: alpha(\n theme.palette.type === 'dark'\n ? theme.palette.common.black\n : theme.palette.common.white,\n 0.25\n ),\n }),\n rootBlockError: props => ({\n backgroundColor: alpha(\n theme.palette.error.main,\n theme.palette.type === 'dark' ? 0.7 : 0.1\n ),\n }),\n rootBlockSuccess: props => ({\n backgroundColor: alpha(\n theme.palette.success.main,\n theme.palette.type === 'dark' ? 0.2 : 0.3\n ),\n }),\n labelRoot: {\n color: 'inherit',\n opacity: 0.6,\n },\n rootLabelError: (props) => ({\n color: theme.palette.error.main\n }),\n rootLabelSuccess: (props) => ({\n color: theme.palette.success.main\n }),\n valueRoot: {\n color: 'inherit',\n fontWeight: theme.typography.fontWeightMedium,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n beforeValue: {\n marginRight: theme.spacing(0.3),\n },\n afterValue: {},\n icon: {\n marginRight: theme.spacing(1),\n },\n iconAvatar: {\n backgroundColor: 'transparent',\n },\n content: props => ({\n display: 'flex',\n flexDirection: 'column',\n // alignItems: 'center',\n alignItems: props.icon ? 'left' : 'center',\n }),\n}));\n\nexport const EntityHeaderStatListItem = props => {\n const {\n label = 'Label',\n value = 'Value',\n beforeValue,\n afterValue,\n flexGrow = false,\n labelColor,\n icon,\n } = props;\n\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n [classes.rootFlexGrow]: flexGrow,\n [classes.rootBlock]: true,\n // [classes.rootBlockDefault]: !labelColor,\n // [classes.rootBlockError]: labelColor === 'error',\n // [classes.rootBlockSuccess]: labelColor === 'success',\n })}\n >\n {icon && (\n <div className={classes.icon}>\n <Avatar className={classes.iconAvatar}>{icon}</Avatar>\n </div>\n )}\n <div className={classes.content}>\n {!!value && (\n <div\n className={clsx({\n [classes.valueRoot]: true,\n })}\n >\n {beforeValue && (\n <Typography variant={'body1'} className={classes.beforeValue}>\n {beforeValue}\n </Typography>\n )}\n <Typography\n variant={'h5'}\n className={clsx({\n [classes.rootLabelError]: labelColor === 'error',\n [classes.rootLabelSuccess]: labelColor === 'success'\n })}\n >\n {value}\n </Typography>\n {afterValue && (\n <Typography variant={'body1'} className={classes.afterValue}>\n {afterValue}\n </Typography>\n )}\n </div>\n )}\n {!!label && (\n <Typography\n variant={'subtitle3'}\n className={classes.labelRoot}\n component=\"div\"\n >\n {label}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n rootFlexGrow: {\n flexGrow: 1\n },\n rootFlexAlignStart: {\n alignItems: 'flex-start'\n },\n rootFlexAlignCenter: {\n alignItems: 'center'\n },\n rootFlexAlignEnd: {\n alignItems: 'flex-end'\n },\n rootFlexAlignStretch: {\n alignItems: 'stretch'\n },\n rootGutter: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n rootPadding: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1)\n },\n rootFlexJustifyStart: {\n justifyContent: 'flex-start'\n },\n rootFlexJustifyEnd: {\n justifyContent: 'flex-end'\n }\n}));\n\nexport const EntityHeaderSection = (props) => {\n const {\n children,\n disableGutter,\n disablePadding,\n flexGrow,\n justifyContent,\n alignItems\n } = props;\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, //always applies\n [classes.rootGutter]: !disableGutter,\n [classes.rootPadding]: !disablePadding,\n [classes.rootFlexGrow]: flexGrow,\n [classes.rootFlexJustifyStart]: justifyContent === 'start',\n [classes.rootFlexJustifyEnd]: justifyContent === 'end',\n [classes.rootFlexAlignStart]: alignItems === 'start',\n [classes.rootFlexAlignCenter]: alignItems === 'center',\n [classes.rootFlexAlignEnd]: alignItems === 'end',\n [classes.rootFlexAlignStretch]: alignItems === 'stretch'\n })}\n >\n {children}\n </div>\n );\n};\n\nEntityHeaderSection.propTypes = {\n children: PropTypes.node.isRequired,\n disableGutter: PropTypes.bool,\n disablePadding: PropTypes.bool,\n flexGrow: PropTypes.bool,\n justifyContent: PropTypes.oneOf(['start', 'end']),\n alignItems: PropTypes.oneOf(['start', 'center', 'end', 'stretch'])\n};\n\nEntityHeaderSection.defaultProps = {\n disableGutter: false,\n disablePadding: false,\n flexGrow: false\n};\n","import { useTheme } from '@material-ui/core/styles';\nimport { useLayoutEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Custom hook that returns the current breakpoint of a provided element's width and helpers to compare against breakpoints.\n * @param {any} ref - The ref object whose current element will be observed for width changes.\n * @returns {{\n * currentBreakpoint: string | null,\n * isBreakpointUp: (breakpoint: string) => boolean,\n * isBreakpointDown: (breakpoint: string) => boolean,\n * }}\n */\nfunction useElementWidth(ref) {\n const theme = useTheme();\n const [width, setWidth] = useState(null);\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver(entries => {\n for (let entry of entries) {\n if (entry.target === ref.current) {\n setWidth(entry.contentRect.width);\n }\n }\n });\n\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.unobserve(ref.current);\n };\n }, [ref]);\n\n const currentBreakpoint =\n width !== null\n ? Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (width >= theme.breakpoints.values[breakpoint]) {\n return breakpoint;\n }\n return acc;\n }, null)\n : null;\n\n const isBreakpointUp = breakpoint => {\n const breakpoints = Object.keys(theme.breakpoints.values);\n const index = breakpoints.indexOf(breakpoint);\n const currentIndex = breakpoints.indexOf(currentBreakpoint);\n return index <= currentIndex;\n };\n\n const isBreakpointDown = breakpoint => {\n const breakpoints = Object.keys(theme.breakpoints.values);\n const index = breakpoints.indexOf(breakpoint);\n const currentIndex = breakpoints.indexOf(currentBreakpoint);\n return index >= currentIndex;\n };\n\n return {\n currentBreakpoint,\n isBreakpointUp,\n isBreakpointDown,\n };\n}\n\nexport { useElementWidth };\n\nuseElementWidth.propTypes = {\n ref: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { ChipAlphabet } from '../../ChipAlphabet';\nimport { FluentIcon } from '../../../../utilities/iconLibrary/FluentIcon';\nimport { FlagIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles(theme => ({\n flagIcon: {\n marginRight: theme.spacing(2),\n },\n chipContainer: {\n marginBottom: theme.spacing(-1),\n '& > *': {\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n },\n}));\n\nfunction flagLetter(str) {\n return str.charAt(0).toUpperCase();\n}\n\nexport const EntityHeaderFlags = ({ data = [], color = 'primary' }) => {\n const classes = useStyles();\n\n if (!data && data.length === 0) {\n return;\n }\n\n return (\n <>\n <FluentIcon\n size=\"small\"\n component={FlagIcon}\n className={classes.flagIcon}\n />\n <div className={classes.chipContainer}>\n {data.map(item => {\n return (\n <ChipAlphabet\n avatar\n avatarCharacter={flagLetter(item.label)}\n label={item.label}\n handleClick={() => item.handleClick}\n />\n );\n })}\n </div>\n </>\n );\n};\n","import React, { useRef, useState, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { EntityHeaderContainer } from './ui/EntityHeaderContainer';\nimport { EntityHeaderList } from './ui/EntityHeaderList';\nimport { EntityHeaderListItem } from './ui/EntityHeaderListItem';\nimport { EntityHeaderStatList } from './ui/EntityHeaderStatList';\nimport { EntityHeaderStatListItem } from './ui/EntityHeaderStatListItem';\nimport { EntityHeaderSection } from './ui/EntityHeaderSection';\nimport { AlertPill } from './ui/AlertPill';\n\nimport { ChartIcon } from '@fluentui/react-icons';\nimport { useElementWidth } from './functions/useElementWidth';\nimport { IconRenderer } from '../../templates/ui/renderers/IconRenderer';\nimport { EntityHeaderFlags } from './ui/EntityHeaderFlags';\nimport PropTypes from 'prop-types';\nimport { UdpAlertsContainer } from '../../utilityDisplay/alerts/UdpAlertsContainer';\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n// https://univerus.atlassian.net/wiki/spaces/UDP/pages/2398257255/Entity+Header\nexport const EntityHeader = (props) => {\n const {\n sectionProps,\n background,\n color,\n kpiProps,\n hiddenSections,\n chips,\n alerts,\n useUdpAlerts\n } = props;\n\n const classes = useStyles(props);\n const { section1, section2, section3, section4 } = sectionProps;\n const { kpi1, kpi2, kpi3, kpi4 } = kpiProps;\n\n const componentRef = useRef();\n const [compactSize, setCompactSize] = useState(true);\n\n const { isBreakpointUp } = useElementWidth(componentRef);\n\n useEffect(() => {\n if (isBreakpointUp('md')) {\n setCompactSize(false);\n // setDividedList(false);\n } else {\n setCompactSize(true);\n // setDividedList(true);\n }\n }, [isBreakpointUp]);\n\n return (\n <div ref={componentRef}>\n {/* Container used when compactSize is true */}\n {!!compactSize && (\n <EntityHeaderContainer\n direction='row'\n showSeperator\n background={background}\n color={color}\n >\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!section1?.hidden &&\n section1?.values?.length &&\n section1.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section2?.hidden &&\n section2?.values?.length &&\n section2.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section3?.hidden &&\n section3?.values?.length &&\n section3.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section4?.hidden &&\n section4?.values?.length &&\n section4.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n </EntityHeaderContainer>\n )}\n {/* */}\n <EntityHeaderContainer\n direction='row'\n showSeperator\n background={background}\n color={color}\n >\n {!compactSize && (\n <>\n {!section1?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section1?.values?.length &&\n section1.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section2?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section2?.values?.length &&\n section2.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section3?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section3?.values?.length &&\n section3.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section4?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section4?.values?.length &&\n section4.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n </>\n )}\n {!kpiProps.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderStatList flexGrow>\n {!kpi1?.hidden && (\n <EntityHeaderStatListItem\n value={kpi1?.value}\n label={kpi1?.label}\n labelColor={kpi1?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi1?.color },\n name: kpi1?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi2?.hidden && (\n <EntityHeaderStatListItem\n value={kpi2?.value}\n label={kpi2?.label}\n labelColor={kpi2?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi2?.color },\n name: kpi2?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi3?.hidden && (\n <EntityHeaderStatListItem\n value={kpi3?.value}\n label={kpi3?.label}\n labelColor={kpi3?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi3?.color },\n name: kpi3?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi4?.hidden && (\n <EntityHeaderStatListItem\n value={kpi4?.value}\n label={kpi4?.label}\n labelColor={kpi4?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi4?.color },\n name: kpi4?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n </EntityHeaderStatList>\n </EntityHeaderSection>\n )}\n </EntityHeaderContainer>\n {(!hiddenSections.chips || !hiddenSections.alert) && (\n <EntityHeaderContainer\n className={classes.root}\n background={background}\n color={color}\n >\n {!hiddenSections.chips && (\n <EntityHeaderSection flexGrow alignItems={'center'}>\n <EntityHeaderFlags\n data={chips?.map((chip) => ({ label: chip }))}\n />\n </EntityHeaderSection>\n )}\n {/* */}\n <EntityHeaderSection flexGrow />\n {!hiddenSections.alert && (\n <EntityHeaderSection>\n {/* <PehAlertPill\n alertPillProps={{ errorLabel: '5', warningLabel: '2' }}\n /> */}\n {useUdpAlerts ? (\n <UdpAlertsContainer />\n ) : (\n <AlertPill\n errorCount={alerts?.error}\n warningCount={alerts?.warning}\n />\n )}\n </EntityHeaderSection>\n )}\n </EntityHeaderContainer>\n )}\n </div>\n );\n};\n\nEntityHeader.propTypes = {\n sectionProps: PropTypes.shape({\n section1: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n }),\n section2: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n }),\n section3: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n })\n }).isRequired,\n background: PropTypes.string,\n color: PropTypes.string,\n kpiProps: PropTypes.shape({\n hidden: PropTypes.bool,\n kpi1: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi2: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi3: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi4: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n })\n }).isRequired,\n hiddenSections: PropTypes.shape({\n alert: PropTypes.bool,\n chips: PropTypes.bool\n }),\n chips: PropTypes.arrayOf(PropTypes.string),\n alerts: PropTypes.shape({\n warning: PropTypes.number,\n error: PropTypes.number\n })\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityHeader--gf9BpbJ.js","names":["useStyles","useStyles","useStyles","useStyles","useStyles","useStyles","useTheme","useStyles"],"sources":["../src/UI/dataDisplay/entityHeader/ui/EntityHeaderContainer.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderList.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderListItem.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderStatList.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderStatListItem.jsx","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderSection.jsx","../src/UI/dataDisplay/entityHeader/functions/useElementWidth.js","../src/UI/dataDisplay/entityHeader/ui/EntityHeaderFlags.jsx","../src/UI/dataDisplay/entityHeader/EntityHeader.jsx"],"sourcesContent":["import React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles, Divider, darken, alpha } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: props => ({\n display: 'flex',\n flexDirection: props.direction === 'column' ? 'column' : 'row',\n }),\n rootBgDark: props => ({\n backgroundColor: darken(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main,\n 0.2\n ),\n color: theme.palette.getContrastText(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main\n ),\n }),\n rootBgSoft: props => ({\n backgroundColor: alpha(\n props.color === 'primary'\n ? theme.palette.primary.main\n : theme.palette.secondary.main,\n 0.15\n ),\n }),\n rootBgCustom: props => ({\n backgroundColor: props.background,\n color: props.color,\n }),\n}));\n\nexport const EntityHeaderContainer = props => {\n const { children, showSeperator, background } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, // always applies\n [classes.rootBg]: background === 'light' || !background, // if background = 'light'\n [classes.rootBgDark]: background === 'dark', // if background = 'dark'\n [classes.rootBgSoft]: background === 'soft', // if background = 'soft'\n [classes.rootBgCustom]:\n background &&\n background !== 'light' &&\n background !== 'dark' &&\n background !== 'soft',\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && (\n <Divider orientation=\"vertical\" flexItem />\n )}\n </>\n );\n })}\n </div>\n );\n};\n\nEntityHeaderContainer.propTypes = {\n children: PropTypes.node.isRequired,\n showSeperator: PropTypes.bool,\n background: PropTypes.oneOf(['light', 'dark', 'soft']),\n direction: PropTypes.oneOf(['row', 'column']),\n color: PropTypes.oneOf(['primary', 'secondary']),\n};\n\nEntityHeaderContainer.defaultProps = {\n showSeperator: true,\n background: 'light',\n direction: 'row',\n color: 'primary',\n};\n","import React, { Children, cloneElement } from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, Divider } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n // listStyle: 'none',\n },\n}));\n\nexport const EntityHeaderList = props => {\n const { children, showSeperator = false } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && <Divider />}\n </>\n );\n })}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { Link, lighten, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n labelRoot: {\n color: 'inherit',\n marginRight: theme.spacing(0.5),\n opacity: 0.6\n },\n valueRoot: {\n color: 'inherit'\n // fontWeight: theme.typography.fontWeightMedium,\n },\n link: {\n color: 'inherit',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport const EntityHeaderListItem = (props) => {\n const {\n label,\n value,\n link,\n hideLabelSeperator = false,\n disablePadding = false\n } = props;\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n [classes.rootPadding]: !disablePadding\n })}\n >\n {!!label && (\n <Typography variant={'body1'} className={classes.labelRoot}>\n {label}\n {!hideLabelSeperator && ':'}\n </Typography>\n )}\n {!!value && (\n <Typography\n variant={'body1'}\n className={clsx({\n [classes.valueRoot]: true,\n [classes.valueFontWeigth]: true\n })}\n >\n {link ? (\n <Link\n href={link}\n className={classes.link}\n target='_blank'\n >\n {value}\n </Link>\n ) : (\n value\n )}\n </Typography>\n )}\n </div>\n );\n};\n","import React, { Children, cloneElement, useState } from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, Typography, Divider } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n '& > *': {\n marginLeft: 1,\n },\n },\n rootFlexGrow: {\n flexGrow: 1,\n },\n}));\n\nexport const EntityHeaderStatList = props => {\n const { children, showSeperator, flexGrow = false } = props;\n const arrayChildren = Children.toArray(children);\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, //always applies\n [classes.rootFlexGrow]: flexGrow,\n })}\n >\n {Children.map(arrayChildren, (child, index) => {\n const isLast = index === arrayChildren.length - 1;\n return (\n <>\n {cloneElement(child, {\n isLast,\n })}\n {!isLast && showSeperator && (\n <Divider orientation=\"vertical\" flexItem />\n )}\n </>\n );\n })}\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { alpha, Avatar, makeStyles, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n // padding: theme.spacing(1),\n },\n rootFlexGrow: {\n flexGrow: 1,\n },\n rootBlock: props => ({\n justifyContent: 'center',\n padding: theme.spacing(1),\n }),\n rootBlockDefault: props => ({\n backgroundColor: alpha(\n theme.palette.type === 'dark'\n ? theme.palette.common.black\n : theme.palette.common.white,\n 0.25\n ),\n }),\n rootBlockError: props => ({\n backgroundColor: alpha(\n theme.palette.error.main,\n theme.palette.type === 'dark' ? 0.7 : 0.1\n ),\n }),\n rootBlockSuccess: props => ({\n backgroundColor: alpha(\n theme.palette.success.main,\n theme.palette.type === 'dark' ? 0.2 : 0.3\n ),\n }),\n labelRoot: {\n color: 'inherit',\n opacity: 0.6,\n },\n rootLabelError: (props) => ({\n color: theme.palette.error.main\n }),\n rootLabelSuccess: (props) => ({\n color: theme.palette.success.main\n }),\n valueRoot: {\n color: 'inherit',\n fontWeight: theme.typography.fontWeightMedium,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n beforeValue: {\n marginRight: theme.spacing(0.3),\n },\n afterValue: {},\n icon: {\n marginRight: theme.spacing(1),\n },\n iconAvatar: {\n backgroundColor: 'transparent',\n },\n content: props => ({\n display: 'flex',\n flexDirection: 'column',\n // alignItems: 'center',\n alignItems: props.icon ? 'left' : 'center',\n }),\n}));\n\nexport const EntityHeaderStatListItem = props => {\n const {\n label = 'Label',\n value = 'Value',\n beforeValue,\n afterValue,\n flexGrow = false,\n labelColor,\n icon,\n } = props;\n\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true,\n [classes.rootFlexGrow]: flexGrow,\n [classes.rootBlock]: true,\n // [classes.rootBlockDefault]: !labelColor,\n // [classes.rootBlockError]: labelColor === 'error',\n // [classes.rootBlockSuccess]: labelColor === 'success',\n })}\n >\n {icon && (\n <div className={classes.icon}>\n <Avatar className={classes.iconAvatar}>{icon}</Avatar>\n </div>\n )}\n <div className={classes.content}>\n {!!value && (\n <div\n className={clsx({\n [classes.valueRoot]: true,\n })}\n >\n {beforeValue && (\n <Typography variant={'body1'} className={classes.beforeValue}>\n {beforeValue}\n </Typography>\n )}\n <Typography\n variant={'h5'}\n className={clsx({\n [classes.rootLabelError]: labelColor === 'error',\n [classes.rootLabelSuccess]: labelColor === 'success'\n })}\n >\n {value}\n </Typography>\n {afterValue && (\n <Typography variant={'body1'} className={classes.afterValue}>\n {afterValue}\n </Typography>\n )}\n </div>\n )}\n {!!label && (\n <Typography\n variant={'subtitle3'}\n className={classes.labelRoot}\n component=\"div\"\n >\n {label}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex'\n },\n rootFlexGrow: {\n flexGrow: 1\n },\n rootFlexAlignStart: {\n alignItems: 'flex-start'\n },\n rootFlexAlignCenter: {\n alignItems: 'center'\n },\n rootFlexAlignEnd: {\n alignItems: 'flex-end'\n },\n rootFlexAlignStretch: {\n alignItems: 'stretch'\n },\n rootGutter: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n rootPadding: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1)\n },\n rootFlexJustifyStart: {\n justifyContent: 'flex-start'\n },\n rootFlexJustifyEnd: {\n justifyContent: 'flex-end'\n }\n}));\n\nexport const EntityHeaderSection = (props) => {\n const {\n children,\n disableGutter,\n disablePadding,\n flexGrow,\n justifyContent,\n alignItems\n } = props;\n const classes = useStyles(props);\n\n return (\n <div\n className={clsx({\n [classes.root]: true, //always applies\n [classes.rootGutter]: !disableGutter,\n [classes.rootPadding]: !disablePadding,\n [classes.rootFlexGrow]: flexGrow,\n [classes.rootFlexJustifyStart]: justifyContent === 'start',\n [classes.rootFlexJustifyEnd]: justifyContent === 'end',\n [classes.rootFlexAlignStart]: alignItems === 'start',\n [classes.rootFlexAlignCenter]: alignItems === 'center',\n [classes.rootFlexAlignEnd]: alignItems === 'end',\n [classes.rootFlexAlignStretch]: alignItems === 'stretch'\n })}\n >\n {children}\n </div>\n );\n};\n\nEntityHeaderSection.propTypes = {\n children: PropTypes.node.isRequired,\n disableGutter: PropTypes.bool,\n disablePadding: PropTypes.bool,\n flexGrow: PropTypes.bool,\n justifyContent: PropTypes.oneOf(['start', 'end']),\n alignItems: PropTypes.oneOf(['start', 'center', 'end', 'stretch'])\n};\n\nEntityHeaderSection.defaultProps = {\n disableGutter: false,\n disablePadding: false,\n flexGrow: false\n};\n","import { useTheme } from '@material-ui/core/styles';\nimport { useLayoutEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Custom hook that returns the current breakpoint of a provided element's width and helpers to compare against breakpoints.\n * @param {any} ref - The ref object whose current element will be observed for width changes.\n * @returns {{\n * currentBreakpoint: string | null,\n * isBreakpointUp: (breakpoint: string) => boolean,\n * isBreakpointDown: (breakpoint: string) => boolean,\n * }}\n */\nfunction useElementWidth(ref) {\n const theme = useTheme();\n const [width, setWidth] = useState(null);\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver(entries => {\n for (let entry of entries) {\n if (entry.target === ref.current) {\n setWidth(entry.contentRect.width);\n }\n }\n });\n\n resizeObserver.observe(ref.current);\n\n return () => {\n resizeObserver.unobserve(ref.current);\n };\n }, [ref]);\n\n const currentBreakpoint =\n width !== null\n ? Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (width >= theme.breakpoints.values[breakpoint]) {\n return breakpoint;\n }\n return acc;\n }, null)\n : null;\n\n const isBreakpointUp = breakpoint => {\n const breakpoints = Object.keys(theme.breakpoints.values);\n const index = breakpoints.indexOf(breakpoint);\n const currentIndex = breakpoints.indexOf(currentBreakpoint);\n return index <= currentIndex;\n };\n\n const isBreakpointDown = breakpoint => {\n const breakpoints = Object.keys(theme.breakpoints.values);\n const index = breakpoints.indexOf(breakpoint);\n const currentIndex = breakpoints.indexOf(currentBreakpoint);\n return index >= currentIndex;\n };\n\n return {\n currentBreakpoint,\n isBreakpointUp,\n isBreakpointDown,\n };\n}\n\nexport { useElementWidth };\n\nuseElementWidth.propTypes = {\n ref: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { ChipAlphabet } from '../../ChipAlphabet';\nimport { FluentIcon } from '../../../../utilities/iconLibrary/FluentIcon';\nimport { FlagIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles(theme => ({\n flagIcon: {\n marginRight: theme.spacing(2),\n },\n chipContainer: {\n marginBottom: theme.spacing(-1),\n '& > *': {\n marginRight: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n },\n}));\n\nfunction flagLetter(str) {\n return str.charAt(0).toUpperCase();\n}\n\nexport const EntityHeaderFlags = ({ data = [], color = 'primary' }) => {\n const classes = useStyles();\n\n if (!data && data.length === 0) {\n return;\n }\n\n return (\n <>\n <FluentIcon\n size=\"small\"\n component={FlagIcon}\n className={classes.flagIcon}\n />\n <div className={classes.chipContainer}>\n {data.map(item => {\n return (\n <ChipAlphabet\n avatar\n avatarCharacter={flagLetter(item.label)}\n label={item.label}\n handleClick={() => item.handleClick}\n />\n );\n })}\n </div>\n </>\n );\n};\n","import React, { useRef, useState, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { EntityHeaderContainer } from './ui/EntityHeaderContainer';\nimport { EntityHeaderList } from './ui/EntityHeaderList';\nimport { EntityHeaderListItem } from './ui/EntityHeaderListItem';\nimport { EntityHeaderStatList } from './ui/EntityHeaderStatList';\nimport { EntityHeaderStatListItem } from './ui/EntityHeaderStatListItem';\nimport { EntityHeaderSection } from './ui/EntityHeaderSection';\nimport { AlertPill } from './ui/AlertPill';\n\nimport { ChartIcon } from '@fluentui/react-icons';\nimport { useElementWidth } from './functions/useElementWidth';\nimport { IconRenderer } from '../../templates/ui/renderers/IconRenderer';\nimport { EntityHeaderFlags } from './ui/EntityHeaderFlags';\nimport PropTypes from 'prop-types';\nimport { UdpAlertsContainer } from '../../utilityDisplay/alerts/UdpAlertsContainer';\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n// https://univerus.atlassian.net/wiki/spaces/UDP/pages/2398257255/Entity+Header\nexport const EntityHeader = (props) => {\n const {\n sectionProps,\n background,\n color,\n kpiProps,\n hiddenSections,\n chips,\n alerts,\n useUdpAlerts\n } = props;\n\n const classes = useStyles(props);\n const { section1, section2, section3, section4 } = sectionProps;\n const { kpi1, kpi2, kpi3, kpi4 } = kpiProps;\n\n const componentRef = useRef();\n const [compactSize, setCompactSize] = useState(true);\n\n const { isBreakpointUp } = useElementWidth(componentRef);\n\n useEffect(() => {\n if (isBreakpointUp('md')) {\n setCompactSize(false);\n // setDividedList(false);\n } else {\n setCompactSize(true);\n // setDividedList(true);\n }\n }, [isBreakpointUp]);\n\n return (\n <div ref={componentRef}>\n {/* Container used when compactSize is true */}\n {!!compactSize && (\n <EntityHeaderContainer\n direction='row'\n showSeperator\n background={background}\n color={color}\n >\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!section1?.hidden &&\n section1?.values?.length &&\n section1.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section2?.hidden &&\n section2?.values?.length &&\n section2.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section3?.hidden &&\n section3?.values?.length &&\n section3.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n\n {!section4?.hidden &&\n section4?.values?.length &&\n section4.values?.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n </EntityHeaderContainer>\n )}\n {/* */}\n <EntityHeaderContainer\n direction='row'\n showSeperator\n background={background}\n color={color}\n >\n {!compactSize && (\n <>\n {!section1?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section1?.values?.length &&\n section1.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section2?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section2?.values?.length &&\n section2.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section3?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section3?.values?.length &&\n section3.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n {!section4?.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderList>\n {!!section4?.values?.length &&\n section4.values.map((item) => (\n <EntityHeaderListItem\n label={item?.label}\n value={item?.value}\n link={item?.link}\n />\n ))}\n </EntityHeaderList>\n </EntityHeaderSection>\n )}\n </>\n )}\n {!kpiProps.hidden && (\n <EntityHeaderSection flexGrow>\n <EntityHeaderStatList flexGrow>\n {!kpi1?.hidden && (\n <EntityHeaderStatListItem\n value={kpi1?.value}\n label={kpi1?.label}\n labelColor={kpi1?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi1?.color },\n name: kpi1?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi2?.hidden && (\n <EntityHeaderStatListItem\n value={kpi2?.value}\n label={kpi2?.label}\n labelColor={kpi2?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi2?.color },\n name: kpi2?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi3?.hidden && (\n <EntityHeaderStatListItem\n value={kpi3?.value}\n label={kpi3?.label}\n labelColor={kpi3?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi3?.color },\n name: kpi3?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n {!kpi4?.hidden && (\n <EntityHeaderStatListItem\n value={kpi4?.value}\n label={kpi4?.label}\n labelColor={kpi4?.labelColor}\n flexGrow\n icon={\n <IconRenderer\n noBorder={true}\n removeContainer={true}\n value={{\n color: { hex: '#' + kpi4?.color },\n name: kpi4?.icon || 'ChartIcon'\n }}\n />\n }\n />\n )}\n </EntityHeaderStatList>\n </EntityHeaderSection>\n )}\n </EntityHeaderContainer>\n {(!hiddenSections.chips || !hiddenSections.alert) && (\n <EntityHeaderContainer\n className={classes.root}\n background={background}\n color={color}\n >\n {!hiddenSections.chips && (\n <EntityHeaderSection flexGrow alignItems={'center'}>\n <EntityHeaderFlags\n data={chips?.map((chip) => ({ label: chip }))}\n />\n </EntityHeaderSection>\n )}\n {/* */}\n <EntityHeaderSection flexGrow />\n {!hiddenSections.alert && (\n <EntityHeaderSection>\n {/* <PehAlertPill\n alertPillProps={{ errorLabel: '5', warningLabel: '2' }}\n /> */}\n {useUdpAlerts ? (\n <UdpAlertsContainer />\n ) : (\n <AlertPill\n errorCount={alerts?.error}\n warningCount={alerts?.warning}\n />\n )}\n </EntityHeaderSection>\n )}\n </EntityHeaderContainer>\n )}\n </div>\n );\n};\n\nEntityHeader.propTypes = {\n sectionProps: PropTypes.shape({\n section1: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n }),\n section2: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n }),\n section3: PropTypes.shape({\n hidden: PropTypes.bool,\n values: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string\n })\n )\n })\n }).isRequired,\n background: PropTypes.string,\n color: PropTypes.string,\n kpiProps: PropTypes.shape({\n hidden: PropTypes.bool,\n kpi1: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi2: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi3: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n }),\n kpi4: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string,\n hidden: PropTypes.bool\n })\n }).isRequired,\n hiddenSections: PropTypes.shape({\n alert: PropTypes.bool,\n chips: PropTypes.bool\n }),\n chips: PropTypes.arrayOf(PropTypes.string),\n alerts: PropTypes.shape({\n warning: PropTypes.number,\n error: PropTypes.number\n })\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as Typography$1 } from "./Typography-BMsa1JYd.js";
|
|
2
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
2
|
+
import { S as getIconFromName } from "./TreeUtilities-DWgARig7.js";
|
|
3
3
|
import { n as SideSheet } from "./SideSheet-DVvhEo7C.js";
|
|
4
4
|
import { t as AmbientCard } from "./AmbientCard-blAjLcmr.js";
|
|
5
5
|
import { t as IconButtonWithTooltip } from "./IconButtonWithToolTip-BL60Lfj0.js";
|
|
@@ -382,4 +382,4 @@ const FileViewer = (props) => {
|
|
|
382
382
|
|
|
383
383
|
//#endregion
|
|
384
384
|
export { FileViewer as t };
|
|
385
|
-
//# sourceMappingURL=FileViewer-
|
|
385
|
+
//# sourceMappingURL=FileViewer-qG1dw7RF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileViewer-Cqrlt60_.js","names":["useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileViewer-qG1dw7RF.js","names":["useStyles","Typography","useStyles","defaultFieldMapping"],"sources":["../src/UI/fileViewer/utils/fileTypes.js","../src/UI/fileViewer/utils/fileUtils.js","../src/UI/fileViewer/imageSlider/ImageFooter.jsx","../src/UI/fileViewer/imageSlider/Image.jsx","../src/UI/fileViewer/imageSlider/ImageViewerSideSheet.jsx","../src/UI/fileViewer/imageSlider/ImageSlider.jsx","../src/UI/fileViewer/FileViewer.jsx"],"sourcesContent":["export const imageExtension = [\n 'png',\n 'jpeg',\n 'jpg',\n 'jpe',\n 'jif',\n 'jfif',\n 'jfi',\n 'gif',\n 'raw',\n 'svg',\n 'ttif',\n 'tif',\n 'webp',\n 'arw',\n 'sr2',\n 'nrw',\n 'k25',\n 'bmp',\n 'dib',\n 'heif',\n 'heic',\n 'ind',\n 'indd',\n 'indt',\n 'jp2',\n 'j2k',\n 'jpf',\n 'jpm',\n 'mj2',\n 'svgz',\n 'ai',\n 'eps',\n];\n","import { imageExtension } from './fileTypes';\n\nexport const handleDownloadFile = (fileUrl, fileName) => {\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = fileUrl;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(fileUrl);\n};\n\nexport const validateFilesImageType = (files = [], fileExtensionField) => {\n let type = \"image\";\n files.forEach(file => {\n if (!imageExtension.includes(file?.[fileExtensionField])) {\n type = 'invalid';\n return;\n }\n });\n return type;\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { makeStyles } from '@material-ui/core';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '../../dataDisplay/typography/Typography';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n secondaryText: {\n color: theme.palette.text.secondary,\n },\n description: {\n margin: theme.spacing(2),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n },\n pageAction: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n alignItems: 'center',\n },\n}));\n\nexport const ImageFooter = props => {\n const {\n images,\n currentImageObj,\n hidePrimaryText,\n hideSecondaryText,\n handleViewImage,\n currentImageIndex,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const showItem = useMemo(() => {\n const showPrimaryText = !hidePrimaryText && currentImageObj?.primaryText;\n const showSecondaryText =\n !hideSecondaryText && currentImageObj?.secondaryText;\n const showPageAction = images?.length > 1;\n return {\n footer: showPageAction || showPrimaryText || showSecondaryText,\n primaryText: showPrimaryText,\n secondaryText: showSecondaryText,\n pageAction: showPageAction,\n };\n }, [currentImageObj, hidePrimaryText, hideSecondaryText, images]);\n\n return (\n <>\n {showItem?.footer && (\n <div className={classes.description}>\n {showItem?.primaryText && (\n <Typography variant=\"h6\">{currentImageObj?.primaryText}</Typography>\n )}\n\n {showItem?.secondaryText && (\n <Typography variant=\"subtitle1\" className={classes.secondaryText}>\n {currentImageObj?.secondaryText}\n </Typography>\n )}\n {showItem?.pageAction && (\n <div className={classes.pageAction}>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronLeft')}\n title={t('Previous')}\n disabled={currentImageIndex == 0}\n onClick={() => {\n handleViewImage(true);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n\n <div>\n <Typography>\n {currentImageIndex + 1} {t('of')} {images?.length ?? 0}\n </Typography>\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('ChevronRight')}\n title={t('Next')}\n disabled={currentImageIndex === images?.length - 1}\n onClick={() => {\n handleViewImage();\n }}\n id=\"udpRecord-ImageSlider-NextBtn\"\n udprecordid=\"udpRecord-ImageSlider-NextBtn\"\n />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { ImageFooter } from './ImageFooter';\n\nconst useStyles = makeStyles(theme => ({\n imageWrapper: {\n flex: '1 1 auto',\n overflow: 'hidden',\n position: 'relative',\n margin: theme.spacing(2)\n },\n image: {\n objectFit: 'contain',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n height: '100%',\n background: theme.palette.background.paper,\n },\n}));\n\nexport const Image = props => {\n const { imageObj, hidePrimaryText, hideSecondaryText } = props;\n const classes = useStyles();\n\n return (\n <div className={classes.cardContent}>\n <div className={classes.imageWrapper}>\n <img\n src={imageObj?.filePath}\n loading=\"lazy\"\n alt={`${imageObj?.fileName}`}\n className={classes.image}\n />\n </div>\n <ImageFooter\n currentImageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </div>\n );\n};\n","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { handleDownloadFile } from '../utils/fileUtils';\nimport { Image } from './Image';\nimport { SideSheet } from '../../surfaces/SideSheet';\n\nexport const ImageViewerSideSheet = (props) => {\n const {\n title,\n width,\n imageObj,\n open,\n onClose,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText\n } = props;\n const { t } = useTranslation();\n\n const handleDownloadImage = useCallback(() => {\n handleDownloadFile(imageObj?.filePath, imageObj?.fileName);\n }, [imageObj]);\n\n return (\n <SideSheet\n title={title ?? t('Image Viewer')}\n buttonLabel={hideDownload ? null : t('Download')}\n width={width ?? '90vw'}\n onSubmit={handleDownloadImage}\n open={open}\n onClose={onClose}\n contentHeight='100%'\n >\n <Image\n imageObj={imageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n />\n </SideSheet>\n );\n};\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ImageViewerSideSheet } from './ImageViewerSideSheet';\nimport { Image } from './Image';\nimport { ImageFooter } from './ImageFooter';\nimport { AmbientCard } from '../../surfaces/cards/AmbientCard';\nimport { IconButtonWithTooltip } from '../../inputs/buttons/IconButtonWithToolTip';\nimport { getIconFromName } from '../../../utilities/tree/TreeUtilities';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.paper,\n },\n imagesWrapper: {\n display: 'flex',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n },\n imageSection: {\n width: '100%',\n height: '100%',\n },\n image: {\n objectFit: 'contain',\n display: 'block',\n flexShrink: 0,\n flexGrow: 0,\n transition: 'translate 300ms ease-in-out',\n },\n openSideSheetIcon: {\n display: 'block',\n position: 'absolute',\n top: props => (props?.title ? 64 : 8),\n right: 8,\n zIndex: 3,\n backgroundColor: theme.palette.background.paper,\n },\n dialogContent: {\n overflow: 'hidden',\n width: '100vw',\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n },\n closeDialog: {\n margin: theme.spacing(1),\n },\n dialogImageSection: {\n flex: 2,\n height: '100%',\n },\n}));\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n fileName: 'fileName',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const ImageSlider = props => {\n const {\n title,\n images,\n fieldMapping = defaultFieldMapping,\n sideSheetTitle,\n sideSheetWidth,\n hideDownload,\n hidePrimaryText,\n hideSecondaryText,\n hidePrimaryTextInExpandMode,\n hideSecondaryTextInExpandMode,\n expandInSideSheet = true,\n } = props;\n const classes = useStyles(props);\n const { t } = useTranslation();\n const [currentImageIndex, setCurrentImageIndex] = useState(0);\n const [openSideSheet, setOpenSideSheet] = useState(false);\n\n const handleViewImage = useCallback((previous = false) => {\n if (previous) {\n setCurrentImageIndex(prev => prev - 1);\n } else {\n setCurrentImageIndex(prev => prev + 1);\n }\n }, []);\n\n const handleExpandImage = useCallback(() => {\n setOpenSideSheet(true);\n }, []);\n\n const currentImageObj = useMemo(() => {\n const imgObj = images?.[currentImageIndex];\n if (!imgObj) return {};\n\n return {\n filePath: imgObj[fieldMapping?.filePath],\n fileName: imgObj[fieldMapping?.fileName],\n primaryText: imgObj[fieldMapping?.primaryText],\n secondaryText: imgObj[fieldMapping?.secondaryText],\n };\n }, [currentImageIndex, fieldMapping, images]);\n\n return (\n <AmbientCard\n fullWidth\n title={title}\n removePadding\n lastChildBottomPadding=\"0px\"\n removeTopLayoutUnit\n >\n <div className={classes.imagesWrapper}>\n {images?.map(image => (\n <img\n src={image?.[fieldMapping?.filePath]}\n alt={`${image?.[fieldMapping?.fileName]}`}\n loading=\"lazy\"\n width=\"100%\"\n height=\"auto\"\n className={classes.image}\n style={{ translate: `${-100 * currentImageIndex}%` }}\n />\n ))}\n </div>\n <IconButtonWithTooltip\n icon={getIconFromName('MiniExpand')}\n title={t('Expand Image')}\n onClick={handleExpandImage}\n id=\"udpRecord-ImageSlider-ExpandBtn\"\n udprecordid=\"udpRecord-ImageSlider-ExpandBtn\"\n className={classes.openSideSheetIcon}\n />\n <ImageFooter\n images={images}\n currentImageObj={currentImageObj}\n hidePrimaryText={hidePrimaryText}\n hideSecondaryText={hideSecondaryText}\n handleViewImage={handleViewImage}\n currentImageIndex={currentImageIndex}\n />\n\n {expandInSideSheet ? (\n <ImageViewerSideSheet\n title={sideSheetTitle}\n open={openSideSheet}\n onClose={() => {\n setOpenSideSheet(false);\n }}\n imageObj={currentImageObj}\n width={sideSheetWidth}\n hideDownload={hideDownload}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n ) : (\n <Dialog\n onClose={() => {\n setOpenSideSheet(false);\n }}\n open={openSideSheet}\n fullScreen\n >\n <div className={classes.dialogContent}>\n <div className={classes.closeDialog}>\n <IconButtonWithTooltip\n icon={getIconFromName('Cancel')}\n title={t('Close')}\n onClick={() => {\n setOpenSideSheet(false);\n }}\n id=\"udpRecord-ImageSlider-PreviousBtn\"\n udprecordid=\"udpRecord-ImageSlider-PreviousBtn\"\n />\n </div>\n <div className={classes.dialogImageSection}>\n <Image\n imageObj={currentImageObj}\n hidePrimaryText={hidePrimaryTextInExpandMode}\n hideSecondaryText={hideSecondaryTextInExpandMode}\n />\n </div>\n </div>\n </Dialog>\n )}\n </AmbientCard>\n );\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport React, { useMemo } from 'react';\nimport { PDFViewer } from './pdfViewer/PDFViewer';\nimport { ImageSlider } from './imageSlider/ImageSlider';\nimport { validateFilesImageType } from './utils/fileUtils';\nimport { useTranslation } from 'react-i18next';\nimport { AmbientAlert } from '../feedback/AmbientAlert';\n\nconst defaultFieldMapping = {\n filePath: 'filePath',\n blobFile: 'blobFile',\n fileName: 'fileName',\n fileExtension: 'fileExtension',\n primaryText: 'primaryText',\n secondaryText: 'secondaryText',\n};\n\nexport const FileViewer = props => {\n const {\n data,\n fieldMapping = defaultFieldMapping,\n acceptedFileExtensions,\n ...otherProps\n } = props;\n const { t } = useTranslation();\n\n //filter data\n const filteredData = useMemo(() => {\n if (!acceptedFileExtensions || acceptedFileExtensions?.length === 0)\n return data;\n if (data instanceof Array && data?.length > 0) {\n return data?.filter(item =>\n acceptedFileExtensions?.includes(item?.[fieldMapping?.fileExtension])\n );\n } else {\n return acceptedFileExtensions?.includes(\n data?.[fieldMapping?.fileExtension]\n )\n ? data\n : null;\n }\n }, [acceptedFileExtensions, data, fieldMapping]);\n\n // check if the data is an array. If yes, currently only image viewer accept this list,\n // we need to validate if all the file in the list is image\n const fileType = useMemo(() => {\n if (filteredData instanceof Array) {\n const type = validateFilesImageType(\n filteredData,\n fieldMapping?.fileExtension\n );\n return type;\n }\n return filteredData?.[fieldMapping?.fileExtension];\n }, [fieldMapping, filteredData]);\n\n const viewer = useMemo(() => {\n switch (fileType) {\n case 'pdf':\n return (\n <PDFViewer\n fileUrl={filteredData?.[fieldMapping?.filePath]}\n blobPDF={filteredData?.[fieldMapping?.blobFile]}\n {...otherProps}\n />\n );\n case 'image':\n return (\n <ImageSlider\n images={filteredData}\n fieldMapping={fieldMapping}\n {...otherProps}\n />\n );\n default:\n return (\n <AmbientAlert\n alertMessage={t('Unable to view file')}\n showAlert\n alertSeverity=\"error\"\n />\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileType, data, fieldMapping, otherProps]);\n\n return <>{viewer}</>;\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as UnityFluentIcon } from "./UnityFluentIcon-DkZ-zXku.js";
|
|
2
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
2
|
+
import { S as getIconFromName } from "./TreeUtilities-DWgARig7.js";
|
|
3
3
|
import { t as StatusChip } from "./StatusChip-DZAN88VU.js";
|
|
4
4
|
import React from "react";
|
|
5
5
|
import { Box, TableCell, Tooltip, makeStyles, useTheme } from "@material-ui/core";
|
|
@@ -78,4 +78,4 @@ var FluentCell_default = FluentCell;
|
|
|
78
78
|
|
|
79
79
|
//#endregion
|
|
80
80
|
export { FluentCell_default as t };
|
|
81
|
-
//# sourceMappingURL=FluentCell-
|
|
81
|
+
//# sourceMappingURL=FluentCell-Ce9_3cOY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluentCell-
|
|
1
|
+
{"version":3,"file":"FluentCell-Ce9_3cOY.js","names":[],"sources":["../src/UI/dataDisplay/FluentDataTable/FluentCell/index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Box, makeStyles, TableCell, Theme, useTheme, Tooltip } from '@material-ui/core';\nimport { format } from 'date-fns';\nimport { UnityFluentIcon } from '../../../../utilities/iconLibrary/UnityFluentIcon';\nimport { getIconFromName } from '../../../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../../status/StatusChip';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles<Theme, FluentCellProps>((theme) => ({\n labelText: {\n color: theme.palette.text.primary,\n fontSize: '12px'\n },\n tableCell: {\n fontSize: '12px',\n letterSpacing: '0.4px',\n fontWeight: (props) => (props?.bold ? 500 : 400)\n },\n unityIconWrapper: {\n gap: theme.spacing(1)\n }\n}));\n\n/* #region CellUnityIcon */\n\ninterface CellUnityIconProps extends FluentCellProps {\n icon: string;\n size: string;\n color: string;\n align?: 'inherit' | 'left' | 'center' | 'right' | 'justify';\n className?: string;\n}\n\nconst CellUnityIcon = (props: Partial<CellUnityIconProps>) => {\n const theme = useTheme();\n const {\n icon = '',\n size = 'large',\n color = theme.palette.primary.main,\n children\n } = props;\n const classes = useStyles(props as FluentCellProps);\n\n return (\n <FluentCell {...props}>\n { /* @ts-ignore */ }\n <Box display='flex' alignItems='center' className={classes.unityIconWrapper}>\n <UnityFluentIcon\n size={size}\n color={color}\n icon={getIconFromName(icon)}\n />\n {children && children}\n </Box>\n </FluentCell>\n );\n};\n\n/* #endregion */\n\n/* #region CellIcon */\n\ninterface CellImageProps extends FluentCellProps {\n src: string;\n alt: string;\n title: string;\n style?: object;\n children: any;\n}\n\nconst CellImage = (props: CellImageProps) => (\n <FluentCell {...props}>\n <img src={props?.src} alt={props?.alt} style={props?.style} />\n {props?.title}\n </FluentCell>\n);\n\n/* #endregion */\n\n/* #region CellIcon */\n\ninterface CellIconProps extends FluentCellProps {\n icon: any;\n label: string;\n style?: object;\n}\n\nconst CellIcon = (props: Partial<CellIconProps>) => (\n <FluentCell {...props}>\n <>\n {props?.label ? (\n // @ts-ignore\n <Box display='flex' alignItems='center' style={{ gap: '8px' }}>\n { /* @ts-ignore */ }\n <Box>{props?.icon}</Box>\n {props?.label}\n </Box>\n ) : (\n props?.icon\n )}\n {props?.children}\n </>\n </FluentCell>\n);\n\n/* #endregion */\n\n/* #region CellNumber */\n\ninterface CellNumberProps extends FluentCellProps {\n decimals?: number | string;\n children: any;\n}\n\nconst CellNumber = (props: CellNumberProps) => (\n <FluentCell {...props}>\n {Number(props?.children).toFixed(Number(props?.decimals ?? 2))}\n </FluentCell>\n);\n\n/* #endregion */\n\n/* #region CellDate */\n\ninterface CellDateProps extends FluentCellProps {\n format?: string;\n children: any;\n}\n\nconst CellDate = (props: CellDateProps) => (\n <FluentCell {...props}>\n {format(new Date(props?.children), props?.format || 'MM/dd/yyyy')}\n </FluentCell>\n);\n\n/* #endregion */\n\n/* #region CellCurrency */\n\ninterface CellCurrencyProps extends FluentCellProps {\n currencySymbol?: string;\n children: any;\n}\n\nconst CellCurrency = (props: CellCurrencyProps) => (\n <FluentCell {...props}>\n {props?.currencySymbol || '$'}\n {props?.children}\n </FluentCell>\n);\n\n/* #endregion */\n\n/* #region CellText */\n\ninterface CellTextProps extends FluentCellProps {\n children: any;\n}\n\nconst CellText = (props: CellTextProps) => (\n <FluentCell {...props}>{props.children}</FluentCell>\n);\n\n/* #endregion */\n\n/* #region Chip */\n\ninterface CellChipProps extends FluentCellProps {\n status?: string;\n size?: string;\n children: any;\n}\n\nconst CellChip = (props: CellChipProps) => (\n <FluentCell {...props}>\n {/* @ts-ignore */}\n <StatusChip\n status={props?.status || 'success'}\n label={props?.children}\n />\n </FluentCell>\n);\n/* #endregion */\n\ninterface FluentCellProps {\n scope?: string;\n bold?: boolean;\n style?: object;\n align?: 'inherit' | 'left' | 'center' | 'right' | 'justify';\n children?: ReactNode;\n className?: string;\n colSpan?: number;\n tooltip?: string;\n}\n\nconst FluentCell = (props: FluentCellProps) => {\n const classes = useStyles(props);\n const { scope = 'row', style, align, colSpan, className, tooltip, children } = props;\n\n const cellContent = children;\n\n return (\n <TableCell\n scope={scope}\n className={clsx(classes.tableCell, className)}\n style={style}\n align={align}\n colSpan={colSpan}\n >\n {tooltip ? (\n <Tooltip title={tooltip || ''} children={<span>{cellContent || ''}</span>} />\n ) : (\n cellContent\n )}\n </TableCell>\n );\n};\n\nFluentCell.UnityIcon = CellUnityIcon;\nFluentCell.Icon = CellIcon;\nFluentCell.Number = CellNumber;\nFluentCell.Text = CellText;\nFluentCell.Currency = CellCurrency;\nFluentCell.Date = CellDate;\nFluentCell.Chip = CellChip;\nFluentCell.Image = CellImage;\n\nexport default FluentCell;\n"],"mappings":";;;;;;;;;AAQA,MAAM,YAAY,YAAoC,WAAW;CAC/D,WAAW;EACT,OAAO,MAAM,QAAQ,KAAK;EAC1B,UAAU;EACX;CACD,WAAW;EACT,UAAU;EACV,eAAe;EACf,aAAa,UAAW,OAAO,OAAO,MAAM;EAC7C;CACD,kBAAkB,EAChB,KAAK,MAAM,QAAQ,EAAE,EACtB;CACF,EAAE;AAYH,MAAM,iBAAiB,UAAuC;CAC5D,MAAM,QAAQ,UAAU;CACxB,MAAM,EACJ,OAAO,IACP,OAAO,SACP,QAAQ,MAAM,QAAQ,QAAQ,MAC9B,aACE;CACJ,MAAM,UAAU,UAAU,MAAyB;AAEnD,QACE,oCAAC,YAAe,OAEd,oCAAC;EAAI,SAAQ;EAAO,YAAW;EAAS,WAAW,QAAQ;IACzD,oCAAC;EACO;EACC;EACP,MAAM,gBAAgB,KAAK;GAC3B,EACD,YAAY,SACT,CACK;;AAgBjB,MAAM,aAAa,UACjB,oCAAC,YAAe,OACd,oCAAC;CAAI,KAAK,OAAO;CAAK,KAAK,OAAO;CAAK,OAAO,OAAO;EAAS,EAC7D,OAAO,MACG;AAaf,MAAM,YAAY,UAChB,oCAAC,YAAe,OACd,0DACG,OAAO,QAEN,oCAAC;CAAI,SAAQ;CAAO,YAAW;CAAS,OAAO,EAAE,KAAK,OAAO;GAE3D,oCAAC,WAAK,OAAO,KAAW,EACvB,OAAO,MACJ,GAEN,OAAO,MAER,OAAO,SACP,CACQ;AAYf,MAAM,cAAc,UAClB,oCAAC,YAAe,OACb,OAAO,OAAO,SAAS,CAAC,QAAQ,OAAO,OAAO,YAAY,EAAE,CAAC,CACnD;AAYf,MAAM,YAAY,UAChB,oCAAC,YAAe,OACb,OAAO,IAAI,KAAK,OAAO,SAAS,EAAE,OAAO,UAAU,aAAa,CACtD;AAYf,MAAM,gBAAgB,UACpB,oCAAC,YAAe,OACb,OAAO,kBAAkB,KACzB,OAAO,SACG;AAWf,MAAM,YAAY,UAChB,oCAAC,YAAe,OAAQ,MAAM,SAAsB;AAatD,MAAM,YAAY,UAChB,oCAAC,YAAe,OAEd,oCAAC;CACC,QAAQ,OAAO,UAAU;CACzB,OAAO,OAAO;EACd,CACS;AAef,MAAM,cAAc,UAA2B;CAC7C,MAAM,UAAU,UAAU,MAAM;CAChC,MAAM,EAAE,QAAQ,OAAO,OAAO,OAAO,SAAS,WAAW,SAAS,aAAa;CAE/E,MAAM,cAAc;AAEpB,QACE,oCAAC;EACQ;EACP,WAAW,KAAK,QAAQ,WAAW,UAAU;EACtC;EACA;EACE;IAER,UACC,oCAAC;EAAQ,OAAO,WAAW;EAAI,UAAU,oCAAC,cAAM,eAAe,GAAU;GAAI,GAE7E,YAEQ;;AAIhB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AAEnB,yBAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as FluentBody_default } from "./FluentBody-BObfuo5B.js";
|
|
2
|
-
import { t as FluentCell_default } from "./FluentCell-
|
|
2
|
+
import { t as FluentCell_default } from "./FluentCell-Ce9_3cOY.js";
|
|
3
3
|
import { t as FluentHead_default } from "./FluentHead-B9Abo5q9.js";
|
|
4
4
|
import { t as FluentRow_default } from "./FluentRow-BvNBfdSg.js";
|
|
5
5
|
import React from "react";
|
|
@@ -27,4 +27,4 @@ FluentDataTable.FluentRow = FluentRow_default;
|
|
|
27
27
|
|
|
28
28
|
//#endregion
|
|
29
29
|
export { FluentDataTable as t };
|
|
30
|
-
//# sourceMappingURL=FluentDataTable-
|
|
30
|
+
//# sourceMappingURL=FluentDataTable-BjCP7-Vf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluentDataTable-
|
|
1
|
+
{"version":3,"file":"FluentDataTable-BjCP7-Vf.js","names":["FluentHead","FluentBody","FluentCell","FluentRow"],"sources":["../src/UI/dataDisplay/FluentDataTable/FluentDataTable.tsx"],"sourcesContent":["import { Size, Table, TableContainer, makeStyles } from '@material-ui/core';\nimport React, { ReactElement, ReactNode } from 'react';\nimport FluentBody from './FluentBody';\nimport FluentCell from './FluentCell';\nimport FluentHead from './FluentHead';\nimport FluentRow from './FluentRow';\n\ninterface FluentDataTableProps {\n style?: object;\n size?: Size | undefined;\n children: ReactNode;\n stickyHeader?: boolean;\n containerMaxHeight?: string | number;\n}\n\ntype FluentDataTableComponent = React.FC<FluentDataTableProps> & {\n FluentHead: typeof FluentHead;\n FluentBody: typeof FluentBody;\n FluentCell: typeof FluentCell;\n FluentRow: typeof FluentRow;\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n maxHeight: (props: any) => props?.containerMaxHeight\n }\n}));\n\nexport const FluentDataTable = ((props: FluentDataTableProps): ReactElement => {\n const { size = 'small', style, stickyHeader = false, containerMaxHeight } = props;\n const classes = useStyles({ containerMaxHeight });\n return (\n <TableContainer\n style={{ maxHeight: containerMaxHeight, height: '100%'}}\n >\n <Table\n aria-label='simple table'\n size={size}\n style={style}\n stickyHeader={stickyHeader}\n >\n {props?.children}\n </Table>\n </TableContainer>\n );\n}) as FluentDataTableComponent;\n\nFluentDataTable.FluentHead = FluentHead;\nFluentDataTable.FluentBody = FluentBody;\nFluentDataTable.FluentCell = FluentCell;\nFluentDataTable.FluentRow = FluentRow;\n"],"mappings":";;;;;;;;AAsBA,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM,EACJ,YAAY,UAAe,OAAO,oBACnC,EACF,EAAE;AAEH,MAAa,oBAAoB,UAA8C;CAC7E,MAAM,EAAE,OAAO,SAAS,OAAO,eAAe,OAAO,uBAAuB;AAC5D,WAAU,EAAE,oBAAoB,CAAC;AACjD,QACE,oCAAC,kBACC,OAAO;EAAE,WAAW;EAAoB,QAAQ;EAAO,IAEvD,oCAAC;EACC,cAAW;EACL;EACC;EACO;IAEb,OAAO,SACF,CACO;;AAIrB,gBAAgB,aAAaA;AAC7B,gBAAgB,aAAaC;AAC7B,gBAAgB,aAAaC;AAC7B,gBAAgB,YAAYC"}
|