{"version":3,"file":"InquiryTreeMenuItem.mjs","names":["React","useCallback","makeStyles","lighten","Typography","CircularProgress","darken","useTheme","Tooltip","TreeItem","getIconFromName","clsx","UnityFluentIcon","getUnityIconFromName","FluentButton","FluentIcon","CaretUpSolid8Icon","CaretDownSolid8Icon","useDrag","useDrop","NodeActionTriggerEnums","TreeViewModeEnums","AggregateChip","useStyles","theme","root","backgroundColor","getThemeData","mode","palette","grey","paddingLeft","display","props","sidebarExpanded","content","adornmentName","adornmentColor","labelRoot","alignItems","marginLeft","spacing","width","labelContainer","treeViewMode","Compact","conditionalAdornmentContainer","labelText","fontSize","fontWeight","lineHeight","letterSpacing","captionText","labelOverflow","whiteSpace","overflow","textOverflow","group","depth","borderRight","showRightBorderColor","primary","main","borderBottom","hideExpansion","isSelectedNode","iconContainer","justifyContent","borderRadius","marginTop","marginBottom","marginRight","height","border","iconColor","secondary","dropTarget","action","hover","InquiryTreeMenuItem","parentId","nodeId","iconName","iconType","adornmentType","label","onNodeSelect","subLabel","isLastNode","loading","node","onDropNode","menuIndex","aggregateThresholdId","aggregateThresholdNodeMapping","other","classes","isDragging","dragRef","type","item","sourceNodeMenuIndex","collect","monitor","handleOnDrop","sourceNode","didDrop","canDrop","isOver","dropRef","accept","drop","checkCanDrop","onDropActions","properties","nodeActions","filter","na","triggerType","On_Node_Drop","nodeDragEntities","map","dragEntityName","includes","catalogReturnObject","handleOnLabelClick","e","preventDefault","color","isDraggable","opacity","Classic","console","log","button"],"sources":["../../src/inquiry/InquiryTreeMenuItem.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n  makeStyles,\n  lighten,\n  Typography,\n  CircularProgress,\n  darken,\n  useTheme,\n  Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { FluentButton } from '../UI/inputs/buttons/FluentButton';\nimport { FluentIcon } from '../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n  NodeActionTriggerEnums,\n  TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../UI/utilityDisplay/AggregateChip';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {\n    '&.Mui-selected > .MuiTreeItem-content': {\n      backgroundColor:\n        theme?.getThemeData()?.mode === 'dark'\n          ? theme.palette.grey[700]\n          : theme.palette.grey[300]\n    },\n    '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n      backgroundColor: 'transparent',\n      paddingLeft: 0\n    },\n    '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n      backgroundColor:\n        theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n    },\n    '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n      display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n    }\n  },\n  content: {\n    backgroundColor: (props) =>\n      theme?.getThemeData()?.mode !== 'dark' &&\n      props.adornmentName &&\n      props.adornmentColor\n        ? lighten(props.adornmentColor, 0.92)\n        : ''\n  },\n  labelRoot: {\n    display: 'flex',\n    alignItems: 'center',\n    marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n    width: '100%'\n  },\n  labelContainer: {\n    width: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact\n        ? `calc(100% - ${theme.spacing(6.25)}px)`\n        : `calc(100% - ${theme.spacing(7.75)}px)`\n  },\n  conditionalAdornmentContainer: {\n    display: 'inline-flex'\n  },\n  labelText: {\n    fontSize: '0.75rem',\n    fontWeight: 600,\n    lineHeight: '1rem',\n    letterSpacing: 0.1\n  },\n  captionText: {\n    marginLeft: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n    fontSize: '0.65rem',\n    fontWeight: 400,\n    lineHeight: 1,\n    letterSpacing: 0.4\n  },\n  labelOverflow: {\n    whiteSpace: 'nowrap',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis'\n  },\n  group: {\n    width: '100%',\n    '& .MuiTreeItem-group': {\n      marginLeft: 0\n    },\n    '& .MuiTreeItem-content': {\n      paddingLeft: (props) =>\n        props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n      borderRight: (props) =>\n        props.showRightBorderColor\n          ? `4px solid ${theme.palette.primary.main}`\n          : '',\n      borderBottom: (props) =>\n        props.treeViewMode === TreeViewModeEnums.Compact\n          ? `1px solid ${theme.palette.grey[200]}`\n          : ''\n    },\n    '& .MuiTreeItem-content .MuiTreeItem-label': {\n      paddingLeft: 0,\n      width: (props) =>\n        props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n    },\n    '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n      display: (props) => (props.hideExpansion ? 'none' : '')\n    },\n    '& .MuiCollapse-wrapperInner': {\n      backgroundColor: (props) =>\n        theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n          ? theme.palette.grey[50]\n          : ''\n    }\n  },\n  iconContainer: {\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    borderRadius: 50,\n    marginTop: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact\n        ? theme.spacing(0.25)\n        : theme.spacing(0.5),\n    marginBottom: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact\n        ? theme.spacing(0.25)\n        : theme.spacing(0.5),\n    marginRight: theme.spacing(1),\n    width: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact\n        ? theme.spacing(3)\n        : theme.spacing(4),\n    height: (props) =>\n      props.treeViewMode === TreeViewModeEnums.Compact\n        ? theme.spacing(3)\n        : theme.spacing(4),\n    border: (props) =>\n      props.iconColor\n        ? `1px solid ${darken(props.iconColor, 0.1)}`\n        : `1px solid ${theme.palette.secondary.main}`,\n    backgroundColor: '#ffffff'\n  },\n  dropTarget: {\n    backgroundColor: theme.palette.action.hover,\n    border: `2px dashed ${theme.palette.primary.main}`\n  }\n}));\n\nexport const InquiryTreeMenuItem = (props) => {\n  const {\n    parentId,\n    nodeId,\n    iconName,\n    iconType,\n    iconColor,\n    adornmentName,\n    adornmentType,\n    adornmentColor,\n    label,\n    onNodeSelect,\n    isSelectedNode,\n    subLabel,\n    sidebarExpanded,\n    isLastNode,\n    loading,\n    node,\n    onDropNode,\n    treeViewMode,\n    menuIndex,\n    aggregateThresholdId,\n    aggregateThresholdNodeMapping,\n    ...other\n  } = props;\n  const classes = useStyles(props);\n  const theme = useTheme();\n\n  const [{ isDragging }, dragRef] = useDrag({\n    type: 'InquiryTreeMenuItem',\n    item: { ...node, sourceNodeMenuIndex: menuIndex },\n    collect: (monitor) => ({\n      isDragging: monitor.isDragging()\n    })\n  });\n\n  const handleOnDrop = useCallback(\n    (sourceNode, monitor) => {\n      if (!monitor.didDrop()) {\n        if (onDropNode) {\n          const { sourceNodeMenuIndex, ...other } = sourceNode;\n          onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n        }\n      }\n    },\n    [onDropNode, node, menuIndex]\n  );\n\n  const [{ canDrop, isOver }, dropRef] = useDrop(\n    () => ({\n      accept: ['InquiryTreeMenuItem'],\n      drop: (sourceNode, monitor) => {\n        // condition to only handle first drop\n        handleOnDrop(sourceNode, monitor);\n      },\n      canDrop: (sourceNode) => checkCanDrop(sourceNode),\n      collect: (monitor) => ({\n        isOver: monitor.isOver(),\n        canDrop: !!monitor.canDrop()\n      })\n    }),\n    [handleOnDrop]\n  );\n\n  const checkCanDrop = useCallback(\n    (sourceNode) => {\n      if (sourceNode) {\n        const onDropActions = node?.properties?.nodeActions?.filter(\n          (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n        );\n        if (!onDropActions) {\n          return false;\n        }\n        const nodeDragEntities = onDropActions?.map(\n          (action) => action?.dragEntityName\n        );\n        return nodeDragEntities.includes(\n          sourceNode?.properties?.catalogReturnObject\n        );\n      }\n    },\n    [node]\n  );\n\n  const handleOnLabelClick = useCallback(\n    (e) => {\n      e.preventDefault();\n      onNodeSelect(e, nodeId);\n    },\n    [onNodeSelect, nodeId]\n  );\n\n  return (\n    <TreeItem\n      id={'udpRecord-InquiryTreeMenuItem-TreeItem-' + label}\n      udprecordid={'udpRecord-InquiryTreeMenuItem-TreeItem-' + label}\n      className={classes.group}\n      key={nodeId}\n      nodeId={nodeId}\n      collapseIcon={\n        <FluentIcon\n          id={'udpRecord-InquiryTreeMenuItem-Icon-' + label}\n          size='small'\n          component={CaretUpSolid8Icon}\n          style={{\n            color: lighten(theme.palette.primary.main, 0.5),\n            width: theme.spacing(1.5),\n            height: theme.spacing(1.5)\n          }}\n        />\n      }\n      expandIcon={\n        <FluentIcon\n          id={'udpRecord-InquiryTreeMenuItem-Icon-' + label}\n          size='small'\n          component={CaretDownSolid8Icon}\n          style={{\n            color: lighten(theme.palette.primary.main, 0.5),\n            width: theme.spacing(1.5),\n            height: theme.spacing(1.5)\n          }}\n        />\n      }\n      label={\n        <div\n          ref={dropRef}\n          id={'udpRecord-InquiryTreeMenuItem-' + label}\n          udprecordid={'udpRecord-InquiryTreeMenuItem-' + label}\n          className={clsx({\n            [classes.dropTarget]: canDrop && isOver\n          })}\n        >\n          <Tooltip title={sidebarExpanded ? '' : label}>\n            <div\n              ref={(node?.properties?.isDraggable && dragRef) || null}\n              style={{ opacity: isDragging ? 0.5 : 1 }}\n            >\n              {loading ? (\n                <CircularProgress size={12} />\n              ) : (\n                <div\n                  className={classes.labelRoot}\n                  style={{\n                    fontWeight: isSelectedNode ? 'bold' : ''\n                  }}\n                >\n                  {iconName && (\n                    <div className={classes.iconContainer}>\n                      <UnityFluentIcon\n                        size={\n                          treeViewMode === TreeViewModeEnums.Compact\n                            ? 'small'\n                            : 'medium'\n                        }\n                        color={iconColor}\n                        type={iconType}\n                        icon={\n                          iconType === 'unity'\n                            ? getUnityIconFromName(iconName)\n                            : getIconFromName(iconName)\n                        }\n                        style={{\n                          color: iconColor\n                            ? darken(iconColor, 0.1)\n                            : theme.palette.secondary.main\n                        }}\n                      />\n                    </div>\n                  )}\n                  {sidebarExpanded && (\n                    <div className={classes.labelContainer}>\n                      <Typography\n                        variant='subtitle2'\n                        className={clsx(\n                          classes.labelText,\n                          classes.labelOverflow\n                        )}\n                      >\n                        {label}\n                        {subLabel &&\n                          treeViewMode === TreeViewModeEnums.Compact && (\n                            <Typography\n                              variant='caption'\n                              className={clsx(\n                                classes.captionText,\n                                classes.labelOverflow\n                              )}\n                            >\n                              {subLabel}\n                            </Typography>\n                          )}\n                      </Typography>\n                      {subLabel &&\n                        treeViewMode === TreeViewModeEnums.Classic && (\n                          <div className={classes.labelOverflow}>\n                            <Typography\n                              variant='caption'\n                              className={clsx(classes.captionText)}\n                            >\n                              {subLabel}\n                            </Typography>\n                          </div>\n                        )}\n                    </div>\n                  )}\n                  <AggregateChip\n                    aggregateThresholdId={aggregateThresholdId}\n                    aggregateThresholdParamMappings={\n                      aggregateThresholdNodeMapping\n                    }\n                  />\n                  {adornmentName && sidebarExpanded && (\n                    <div className={classes.conditionalAdornmentContainer}>\n                      <UnityFluentIcon\n                        size={\n                          treeViewMode === TreeViewModeEnums.Compact\n                            ? 'small'\n                            : 'medium'\n                        }\n                        color={adornmentColor}\n                        type={adornmentType}\n                        icon={\n                          adornmentType === 'unity'\n                            ? getUnityIconFromName(adornmentName)\n                            : getIconFromName(adornmentName)\n                        }\n                        style={{\n                          color: adornmentColor\n                        }}\n                      />\n                    </div>\n                  )}\n                </div>\n              )}\n              {isLastNode && (\n                <FluentButton\n                  onClick={() => console.log('Last Node')}\n                  className={classes.button}\n                >\n                  <Typography variant='caption'>Last Node</Typography>\n                </FluentButton>\n              )}\n            </div>\n          </Tooltip>\n        </div>\n      }\n      onLabelClick={handleOnLabelClick}\n      classes={{ root: classes.root, content: classes.content }}\n      {...other}\n    />\n  );\n};\n"],"mappings":"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"}