{"version":3,"file":"BaseTreeMenuItem.mjs","names":["React","useCallback","makeStyles","lighten","Typography","CircularProgress","darken","useTheme","Tooltip","TreeItem","getIconFromName","clsx","UnityFluentIcon","getUnityIconFromName","useDrag","useDrop","NodeActionTriggerEnums","TreeViewModeEnums","AggregateChip","StatusChip","useStyles","theme","root","backgroundColor","getThemeData","mode","palette","grey","action","selected","borderRight","primary","main","paddingLeft","display","props","sidebarExpanded","content","conditionalIconName","conditionalIconColor","labelRoot","alignItems","marginLeft","spacing","width","labelContainer","treeViewMode","Compact","conditionalIconContainer","labelText","fontWeight","lineHeight","letterSpacing","captionText","fontSize","labelOverflow","whiteSpace","overflow","textOverflow","group","depth","showRightBorderColor","borderBottom","hideExpansion","isSelectedNode","iconContainer","justifyContent","borderRadius","marginTop","marginBottom","marginRight","height","border","iconColor","secondary","BaseTreeMenuItem","parentId","nodeId","iconName","iconType","conditionalIconType","label","onNodeSelect","subLabel","isLastNode","loading","node","onDropNode","menuIndex","aggregateThresholdId","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","isDraggable","opacity","replace","color","Classic","itemCount","undefined","String"],"sources":["../../src/treeMenu/BaseTreeMenuItem.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 { useDrag, useDrop } from 'react-dnd';\nimport {\n  NodeActionTriggerEnums,\n  TreeViewModeEnums\n} from '../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../UI/utilityDisplay/AggregateChip';\nimport { StatusChip } from '../UI/dataDisplay/status/StatusChip';\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.action.selected,\n      borderRight: `4px solid ${theme.palette.primary.main}`\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.conditionalIconName &&\n      props.conditionalIconColor\n        ? lighten(props.conditionalIconColor, 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    display: (props) => (!props.sidebarExpanded ? 'none' : ''),\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  conditionalIconContainer: {\n    display: 'inline-flex'\n  },\n  labelText: {\n    fontWeight: 500,\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}));\n\nexport const BaseTreeMenuItem = (props) => {\n  const {\n    parentId,\n    nodeId,\n    iconName,\n    iconType,\n    conditionalIconName,\n    conditionalIconType,\n    conditionalIconColor,\n    label,\n    iconColor,\n    onNodeSelect,\n    isSelectedNode,\n    subLabel,\n    sidebarExpanded,\n    isLastNode,\n    loading,\n    node,\n    onDropNode,\n    treeViewMode,\n    menuIndex,\n    aggregateThresholdId,\n    ...other\n  } = props;\n  const classes = useStyles(props);\n  const theme = useTheme();\n\n  const [{ isDragging }, dragRef] = useDrag({\n    type: 'BaseTreeMenuItem',\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: ['BaseTreeMenuItem'],\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      className={classes.group}\n      key={nodeId}\n      nodeId={nodeId}\n      label={\n        <div ref={dropRef}>\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                  id={'udpRecord-BaseTreeMenuItem-' + label.replace(/\\s+/g, '')}\n                  udprecordid={\n                    'udpRecord-BaseTreeMenuItem-' + label.replace(/\\s+/g, '')\n                  }\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                  <div className={classes.labelContainer}>\n                    <Typography\n                      variant='subtitle2'\n                      className={clsx(classes.labelText, classes.labelOverflow)}\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 && 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                  {node?.properties?.itemCount !== undefined &&\n                    node?.properties?.itemCount !== null &&\n                    sidebarExpanded && (\n                      <StatusChip\n                        label={String(node.properties.itemCount)}\n                        useSmallChip={true}\n                      />\n                    )}\n                  <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n                  {conditionalIconName && sidebarExpanded && (\n                    <div className={classes.conditionalIconContainer}>\n                      <UnityFluentIcon\n                        size={\n                          treeViewMode === TreeViewModeEnums.Compact\n                            ? 'small'\n                            : 'medium'\n                        }\n                        color={conditionalIconColor}\n                        type={conditionalIconType}\n                        icon={\n                          conditionalIconType === 'unity'\n                            ? getUnityIconFromName(conditionalIconName)\n                            : getIconFromName(conditionalIconName)\n                        }\n                        style={{\n                          color: conditionalIconColor\n                        }}\n                      />\n                    </div>\n                  )}\n                </div>\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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"}