{"version":3,"file":"TimelineNode.mjs","names":["React","useState","memo","makeStyles","Typography","TimelineDateBar","TimelineTokenSummary","TimelineStatus","TimelineHoverCard","LayoutUnit","PropTypes","useStyles","theme","root","wrapper","display","flexDirection","alignContent","alignItems","label","width","textAlign","TimelineNode","props","$","_c","hover","setHover","data","height","t0","details","t1","show","t2","dot","iconColor","dotColor","test","icon","undefined","classes","capitalizeFirstLetter","_temp","t3","Symbol","for","str_0","formattedStr","lineCount","words","str","split","i","length","line","slice","trim","formatString","t4","t5","t6","t7","background","t8","t9","t10","item","shortDescription","data1","data2","date","data3","marginRight","transactionType","marginTop","lineHeight","toString","Number","charAt","map","propTypes","array","isRequired","oneOfType","number","bool","string","element","toUpperCase","toLowerCase"],"sources":["../../../../src/componentSystems/multiThreadTimeline/ui/TimelineNode.jsx"],"sourcesContent":["import React, { useState, memo } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { TimelineDateBar } from './TimelineDateBar';\nimport { TimelineTokenSummary } from './TimelineTokenSummary';\nimport { TimelineStatus } from './TimelineStatus';\nimport { TimelineHoverCard } from './TimelineHoverCard';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport PropTypes from 'prop-types'; // import PropTypes\nconst useStyles = makeStyles((theme) => ({\n  root: {},\n  wrapper: {\n    display: 'flex',\n    flexDirection: 'column',\n    alignContent: 'space-between',\n    alignItems: 'center'\n  },\n  label: { width: 46, textAlign: 'center' }\n}));\n// eslint-disable-next-line react/display-name\nexport const TimelineNode = memo((props) => {\n  const [hover, setHover] = useState(false);\n  const {\n    data,\n    height = 187,\n    details = true,\n    show = false,\n    width,\n    dot,\n    iconColor,\n    dotColor,\n    test,\n    icon\n  } = props;\n  const classes = useStyles(props);\n  const maxLineLength = 8;\n  const maxLines = 2;\n  const capitalizeFirstLetter = (str) => {\n    return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n  };\n  const formatString = (str) => {\n    let formattedStr = '';\n    let lineCount = 0;\n    let words = str.split(' ');\n    for (let i = 0; i < words.length && lineCount < maxLines; i++) {\n      let line = '';\n      while (\n        i < words.length &&\n        line.length + words[i].length <= maxLineLength\n      ) {\n        line += capitalizeFirstLetter(words[i]) + ' ';\n        i++;\n      }\n      if (line.length > maxLineLength) {\n        line = line.slice(0, maxLineLength - 3) + '...';\n      }\n      formattedStr += line.trim() + '\\n';\n      lineCount++;\n      i--;\n    }\n    return formattedStr.trim();\n  };\n  return (\n    <div\n      onMouseDownCapture={() => setHover(!hover)}\n      className={classes.root}\n      style={{ background: details && 'whitesmoke', width: width }}\n    >\n      <div>{test} </div>\n      {data.map((item) => {\n        return (\n          <div>\n            {(hover || show) && (\n              <TimelineHoverCard offset={0}>\n                <div>\n                  <Typography variant='h6'>\n                    {item.details.shortDescription}\n                  </Typography>\n                </div>\n                <div>\n                  {item.details.data1 ? (\n                    <Typography variant='caption'>\n                      {item.details.data1}\n                    </Typography>\n                  ) : (\n                    <TimelineStatus status={item.details.data2} />\n                  )}\n                </div>\n                <div>\n                  <Typography variant='caption'>{item.details.date}</Typography>\n                </div>\n                <div>\n                  <Typography variant='caption'>\n                    {item.details.data3}\n                  </Typography>\n                </div>\n              </TimelineHoverCard>\n            )}\n            <div className={classes.wrapper} style={{ height: height - 4 }}>\n              <div style={{ marginRight: -8 }}>\n                <TimelineTokenSummary\n                  dot={dot}\n                  color={dotColor}\n                  relative\n                  timelineItem={item.details.transactionType}\n                  iconColor={iconColor}\n                  //timelineItem=\"Email\"\n                  icon={icon}\n                  removeHeight\n                />\n              </div>\n              <div\n                className={classes.label}\n                style={{ marginTop: !details && -3 }}\n              >\n                {dot && (\n                  <Typography\n                    variant='subtitle2'\n                    style={{ lineHeight: '0.9rem' }}\n                  >\n                    {formatString(item.details.shortDescription)}\n                  </Typography>\n                )}\n              </div>\n              {details && <LayoutUnit unit='nudge' />}\n              {details && (\n                <div className={classes.wrapper}>\n                  <div>\n                    {item.details.data1 &&\n                    item.details.data1.toString().trim() !== '' ? (\n                      <Typography variant='caption'>\n                        {item.details.data1}\n                      </Typography>\n                    ) : (\n                      <TimelineStatus status={Number(item.details.data2)} />\n                    )}\n                  </div>\n                  <div>\n                    <Typography variant='caption'>\n                      {item.details.date}\n                    </Typography>\n                  </div>\n                  <div>\n                    <Typography variant='caption'>\n                      {item.details.data3}\n                    </Typography>\n                  </div>\n                </div>\n              )}\n            </div>\n            {details && (\n              <div>\n                <TimelineDateBar\n                  month={Number(item.date.toString().charAt(0))}\n                />\n              </div>\n            )}\n          </div>\n        );\n      })}\n    </div>\n  );\n});\n\n// Define propTypes\nTimelineNode.propTypes = {\n  data: PropTypes.array.isRequired,\n  height: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n  details: PropTypes.bool,\n  show: PropTypes.bool,\n  width: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.number,\n    PropTypes.bool\n  ]),\n  dot: PropTypes.bool,\n  iconColor: PropTypes.string,\n  dotColor: PropTypes.string,\n  test: PropTypes.string,\n  icon: PropTypes.element\n};\n"],"mappings":"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"}