{"version":3,"file":"ActionSummaryPopover.mjs","names":["MoreVerticalIcon","makeStyles","Popover","PropTypes","React","useState","useMemo","useTranslation","ActionSummaryCard","evaluateRule","mapRule","PrimaryActionButton","Typography","useStyles","theme","root","actionsMenu","color","palette","getContrastText","primary","main","ActionSummaryPopover","props","$","_c","panelActions","selectedNode","setLoading","anchorEl","setAnchorEl","t","t0","Symbol","for","event","currentTarget","handleClick","t1","handleClose","t2","nodeObj","properties","joiningEntityCatalogObjectKey","wasLazyLoaded","reduce","actions","current","enabled","passRule","action","actionRules","boolValue","rule","ruleExpression","mapping","jsonLogic","hideAction","currentVal","value","name","actionId","sequence","group","find","header","toLowerCase","groupName","items","push","sort","_temp","icon","iconType","type","actionSummaryPopoverActions","open","Boolean","id","undefined","t3","t4","defaultValue","t5","t6","vertical","horizontal","t7","t8","t9","propTypes","array","noContrastColor","bool","object","a","b"],"sources":["../../../src/actions/actionSummary/ActionSummaryPopover.jsx"],"sourcesContent":["import { MoreVerticalIcon } from '@fluentui/react-icons';\nimport { makeStyles, Popover } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSummaryCard } from './';\nimport { evaluateRule, mapRule } from '../../utilities/rules/RuleUtilities';\nimport { PrimaryActionButton } from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {},\n  actionsMenu: {\n    color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n  }\n}));\n\nexport const ActionSummaryPopover = (props) => {\n  const { panelActions, noContrastColor, selectedNode, setLoading } = props;\n  const classes = useStyles();\n  const [anchorEl, setAnchorEl] = useState(null);\n  const { t } = useTranslation();\n\n  const handleClick = (event) => {\n    setAnchorEl(event.currentTarget);\n  };\n\n  const handleClose = () => {\n    setAnchorEl(null);\n  };\n\n  const actionSummaryPopoverActions = useMemo(() => {\n    return panelActions?.reduce((actions, current) => {\n      if (!current.enabled) return actions;\n\n      const passRule =\n        current.action.actionRules?.reduce((boolValue, rule) => {\n          const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n          return (\n            boolValue &&\n            evaluateRule(\n              ruleExpression,\n              selectedNode?.nodeObj,\n              selectedNode?.properties?.joiningEntityCatalogObjectKey,\n              selectedNode?.wasLazyLoaded\n            )\n          );\n        }, true) ?? true;\n\n      if (!passRule && current?.hideAction) return actions;\n\n      const currentVal = {\n        value: current.action.name,\n        actionId: current.actionId,\n        sequence: current.sequence,\n        enabled: passRule\n      };\n\n      const group = actions.find(\n        (action) =>\n          action?.header?.toLowerCase() === current?.groupName?.toLowerCase()\n      );\n      if (group) {\n        group.items.push(currentVal);\n        group.items.sort((a, b) => a.sequence - b.sequence);\n      } else {\n        actions.push({\n          header: current.groupName,\n          icon: current.icon.name,\n          iconType: current.icon.type,\n          items: [currentVal]\n        });\n      }\n      return actions;\n    }, []);\n  }, [panelActions, selectedNode]);\n\n  const open = Boolean(anchorEl);\n  const id = open ? 'action-summary-popover' : undefined;\n\n  return (\n    <>\n      <PrimaryActionButton onClick={handleClick} icon={<MoreVerticalIcon />}>\n        <Typography>\n          {t('actions.summary.actions', { defaultValue: 'Actions' })}\n        </Typography>\n      </PrimaryActionButton>\n\n      <Popover\n        id={id}\n        open={open}\n        anchorEl={anchorEl}\n        onClose={handleClose}\n        anchorOrigin={{\n          vertical: 'bottom',\n          horizontal: 'left'\n        }}\n      >\n        <ActionSummaryCard\n          actionMenuContent={actionSummaryPopoverActions}\n          setLoading={setLoading}\n          selectedNode={selectedNode}\n        />\n      </Popover>\n    </>\n  );\n};\n\nActionSummaryPopover.propTypes = {\n  /**\n   * Actions configured within Action Panel\n   */\n  panelActions: PropTypes.array,\n  /**\n   * Boolean to toggle contrast color\n   */\n  noContrastColor: PropTypes.bool,\n  /**\n   * Action Panels\n   */\n  selectedNode: PropTypes.object\n};\n"],"mappings":";;;;;;;;;;;AAUA,MAAMa,YAAYZ,YAAYa,WAAW;CACvCC,MAAM,EAAE;CACRC,aAAa,EACXC,OAAOH,OAAOI,SAASC,gBAAgBL,OAAOI,SAASE,SAASC,KAAI,EACtE;CACD,EAAE;AAEH,MAAaC,wBAAuBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAClC,MAAA,EAAAC,cAAAC,cAAAC,eAAoEL;AACpDV,YAAW;CAC3B,MAAA,CAAAgB,UAAAC,eAAgCzB,SAAS,KAAK;CAC9C,MAAA,EAAA0B,MAAcxB,gBAAgB;CAAC,IAAAyB;AAAA,KAAAR,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAEXF,QAAAG,UAAA;AAClBL,eAAYK,MAAKC,cAAe;;AACjCZ,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAFD,MAAAa,cAAoBL;CAElB,IAAAM;AAAA,KAAAd,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAEkBI,aAAA;AAClBR,eAAY,KAAK;;AAClBN,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAFD,MAAAe,cAAoBD;CAElB,IAAAE;AAAA,KAAAhB,EAAA,OAAAE,gBAAAF,EAAA,OAAAG,cAAAc,WAAAjB,EAAA,OAAAG,cAAAe,YAAAC,iCAAAnB,EAAA,OAAAG,cAAAiB,eAAA;AAGOJ,OAAAd,cAAYmB,QAASC,SAAAC,YAAA;AAC1B,OAAI,CAACA,QAAOC,QAAQ,QAASF;GAE7B,MAAAG,WACEF,QAAOG,OAAOC,aAAoBN,QAACO,WAAAC,SAAA;IACjC,MAAAC,iBAAuB5C,QAAQ2C,KAAIE,SAAUF,KAAIG,UAAW;AAAC,WAE3DJ,aACA3C,aACE6C,gBACA3B,cAAYc,SACZd,cAAYe,YAA2CC,+BACvDhB,cAAYiB,cACb;MAEF,KAAa,IAXhB;AAaF,OAAI,CAACK,YAAYF,SAAOU,WAAY,QAASX;GAE7C,MAAAY,aAAmB;IAAAC,OACVZ,QAAOG,OAAOU;IAAKC,UAChBd,QAAOc;IAASC,UAChBf,QAAOe;IAASd,SACjBC;IACV;GAED,MAAAc,QAAcjB,QAAOkB,MACnBd,WACEA,QAAMe,QAAqBC,aAAE,KAAKnB,SAAOoB,WAAwBD,aACrE,CAAC;AACD,OAAIH,OAAK;AACPA,UAAKK,MAAMC,KAAMX,WAAW;AAC5BK,UAAKK,MAAME,KAAMC,MAAkC;SAEnDzB,SAAOuB,KAAM;IAAAJ,QACHlB,QAAOoB;IAAUK,MACnBzB,QAAOyB,KAAKZ;IAAKa,UACb1B,QAAOyB,KAAKE;IAAKN,OACpB,CAACV,WAAU;IACnB,CAAC;AACH,UACMZ;KACN,EAAE,CAAC;AAAAtB,IAAA,KAAAE;AAAAF,IAAA,KAAAG,cAAAc;AAAAjB,IAAA,KAAAG,cAAAe,YAAAC;AAAAnB,IAAA,KAAAG,cAAAiB;AAAApB,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CA3CR,MAAAmD,8BACEnC;CA6CF,MAAAoC,OAAaC,QAAQhD,SAAS;CAC9B,MAAAiD,KAAWF,OAAA,2BAAAG,KAAAA;CAA4C,IAAAC;AAAA,KAAAxD,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAIF8C,OAAA,sBAAA,cAAC,kBAAA,KAAmB;AAAAxD,IAAA,KAAAwD;OAAAA,MAAAxD,EAAA;CAAA,IAAAyD;AAAA,KAAAzD,EAAA,OAAAO,GAAA;AAEhEkD,OAAAlD,EAAE,2BAA2B,EAAAmD,cAAgB,WAAW,CAAC;AAAA1D,IAAA,KAAAO;AAAAP,IAAA,KAAAyD;OAAAA,MAAAzD,EAAA;CAAA,IAAA2D;AAAA,KAAA3D,EAAA,QAAAyD,IAAA;AAF9DE,OAAA,sBAAA,cAAC,qBAAD;GAA8B9C,SAAAA;GAAmB,MAAA2C;GAI3B,EAHpB,sBAAA,cAAC,cAAA,MACEC,GAEL,CAAsB;AAAAzD,IAAA,MAAAyD;AAAAzD,IAAA,MAAA2D;OAAAA,MAAA3D,EAAA;CAAA,IAAA4D;AAAA,KAAA5D,EAAA,QAAAS,OAAAC,IAAA,4BAAA,EAAA;AAONkD,OAAA;GAAAC,UACF;GAAQC,YACN;GACb;AAAA9D,IAAA,MAAA4D;OAAAA,MAAA5D,EAAA;CAAA,IAAA+D;AAAA,KAAA/D,EAAA,QAAAmD,+BAAAnD,EAAA,QAAAG,gBAAAH,EAAA,QAAAI,YAAA;AAED2D,OAAA,sBAAA,cAAC,mBAAD;GACqBZ,mBAAAA;GACP/C;GACED;GACd,CAAA;AAAAH,IAAA,MAAAmD;AAAAnD,IAAA,MAAAG;AAAAH,IAAA,MAAAI;AAAAJ,IAAA,MAAA+D;OAAAA,MAAA/D,EAAA;CAAA,IAAAgE;AAAA,KAAAhE,EAAA,QAAAK,YAAAL,EAAA,QAAAsD,MAAAtD,EAAA,QAAAoD,QAAApD,EAAA,QAAA+D,IAAA;AAdJC,OAAA,sBAAA,cAAC,SAAD;GACMV;GACEF;GACI/C;GACDU,SAAAA;GACK,cAAA6C;GAUN,EALRG,GAKQ;AAAA/D,IAAA,MAAAK;AAAAL,IAAA,MAAAsD;AAAAtD,IAAA,MAAAoD;AAAApD,IAAA,MAAA+D;AAAA/D,IAAA,MAAAgE;OAAAA,MAAAhE,EAAA;CAAA,IAAAiE;AAAA,KAAAjE,EAAA,QAAA2D,MAAA3D,EAAA,QAAAgE,IAAA;AAtBZC,OAAA,sBAAA,cAAA,MAAA,UAAA,MACEN,IAMAK,GAgBC;AAAAhE,IAAA,MAAA2D;AAAA3D,IAAA,MAAAgE;AAAAhE,IAAA,MAAAiE;OAAAA,MAAAjE,EAAA;AAAA,QAvBHiE;;AA2BJnE,qBAAqBoE,YAAY;CAI/BhE,cAAcvB,UAAUwF;CAIxBC,iBAAiBzF,UAAU0F;CAI3BlE,cAAcxB,UAAU2F;CACzB;AAxGmC,SAAAvB,MAAAwB,GAAAC,GAAA;AAAA,QA+CDD,EAACjC,WAAYkC,EAAClC"}