{"version":3,"file":"ActionPanelPlacement.mjs","names":["makeStyles","Typography","cloneDeep","PropTypes","React","useCallback","useMemo","ActionSummaryPopover","getIconFromName","getUnityIconFromName","PAHAdditionalRightComponent","PanelPositionEnums","PrimaryActionButton","SiteHeaderRightComponent","ToolBarButton","useActions","evaluateRule","mapRule","ActionSpeedDial","useActionStore","useStyles","theme","root","actionsMenu","color","palette","getContrastText","primary","main","additionalRightComponent","display","alignItems","ActionPanelPlacement","props","$","_c","actionPanels","showInquiryHeaderActions","selectedNode","globalActions","classes","triggerAction","hideActions","_temp","t0","nodeObj","actionId","handleTriggerAction","t1","bb0","length","t2","Symbol","for","reduce","_temp2","panelsMap","siteHeaderActions","Site_Header","siteHeaderSummaryActions","Site_Header_Summary","siteHeaderActionsComponent1","siteHeaderActionsComponent2","siteHeaderSummaryComponent","properties","joiningEntityCatalogObjectKey","wasLazyLoaded","t3","panelAction","passRule","action","actionRules","boolValue","rule","ruleExpression","mapping","jsonLogic","hideAction","name","icon","type","map","panelAction_0","passRule_0","boolValue_0","rule_0","ruleExpression_0","siteHeaderRightComponent","inquiryHeaderActionsComponent","inquiryHeaderPrimaryAction","inquiryHeaderSummaryComponent","panelsMapCopy","inquiryHeaderActions","Inquiry_Header","inquiryHeaderSummaryActions","Inquiry_Header_Summary","showActionsAsSecondary","actionList","forEach","passRule_1","boolValue_1","rule_1","ruleExpression_1","push","disabled","filter","pa","isPrimary","enabled","panelAction_1","i","primaryAction","find","_temp3","marginRight","panelAction_3","passRule_2","boolValue_2","rule_2","ruleExpression_2","t4","inquiryHeaderComponent","t5","panelsMapCopy_0","inquirySpeedDialActions","Speed_Dial","enabledSortedActions","action_0","boolValue_3","rule_3","ruleExpression_3","sort","_temp4","parsedGlobalActions","_temp5","action_2","onClick","inquirySpeedDialComponent","t6","propTypes","array","bool","object","state","panelsObj","panel","panelPositionId","panelActions","panelAction_2","a","b","sequence","action_1","parameters","JSON","parse"],"sources":["../../src/actions/ActionPanelPlacement.jsx"],"sourcesContent":["import { makeStyles, Typography } from '@material-ui/core';\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\nimport { ActionSummaryPopover } from './actionSummary';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { PAHAdditionalRightComponent } from '../UI/utilityDisplay/utilityHeader/ui/PAHAdditionalRightComponent';\nimport { PanelPositionEnums } from '../enums/unitySystemEnums';\nimport { PrimaryActionButton } from '../UI/inputs/buttons/PrimaryActionButton';\nimport { SiteHeaderRightComponent } from '../shell/ui/SiteHeaderRightComponent';\nimport { ToolBarButton } from '../UI/inputs/buttons/ToolBarButton';\nimport { useActions } from '../hooks/useActions';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport { ActionSpeedDial } from './ActionSpeedDial';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {},\n  actionsMenu: {\n    color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n  },\n  additionalRightComponent: {\n    display: 'flex',\n    alignItems: 'center'\n  }\n}));\n\nexport const ActionPanelPlacement = (props) => {\n  const {\n    actionPanels,\n    showInquiryHeaderActions,\n    selectedNode,\n    globalActions\n  } = props;\n  const classes = useStyles();\n  const { triggerAction } = useActions();\n  const hideActions = useActionStore((state) => state.hideActions);\n\n  const handleTriggerAction = useCallback(\n    (actionId) => {\n      triggerAction(actionId, selectedNode?.nodeObj);\n    },\n    [triggerAction, selectedNode]\n  );\n\n  const panelsMap = useMemo(() => {\n    if (!actionPanels || !actionPanels?.length) {\n      return {};\n    }\n    return actionPanels.reduce((panelsObj, panel) => {\n      const panelPositionId = panel?.panelPositionId;\n      panelsObj[panelPositionId] = panel?.panelActions;\n      return panelsObj;\n    }, {});\n  }, [actionPanels]);\n\n  const siteHeaderRightComponent = useMemo(() => {\n    const siteHeaderActions = panelsMap[PanelPositionEnums.Site_Header];\n    const siteHeaderSummaryActions =\n      panelsMap[PanelPositionEnums.Site_Header_Summary];\n    let siteHeaderActionsComponent1 = null;\n    let siteHeaderActionsComponent2 = null;\n    let siteHeaderSummaryComponent = null;\n\n    if (siteHeaderActions?.length) {\n      siteHeaderActionsComponent1 = siteHeaderActions.map((panelAction) => {\n        const passRule =\n          panelAction.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 && panelAction?.hideAction) {\n          return null;\n        }\n\n        return (\n          <ToolBarButton\n            key={panelAction?.actionId}\n            label={panelAction?.action?.name}\n            aria={panelAction?.action?.name}\n            icon={false}\n            component={\n              panelAction?.icon?.type === 'unity'\n                ? getUnityIconFromName(panelAction?.icon?.name)\n                : getIconFromName(panelAction?.icon?.name)\n            }\n            click={() => handleTriggerAction(panelAction?.actionId)}\n            disabled={!passRule}\n          />\n        );\n      });\n    }\n\n    if (siteHeaderSummaryActions?.length) {\n      if (!siteHeaderActions?.length && siteHeaderSummaryActions?.length <= 2) {\n        siteHeaderActionsComponent2 = siteHeaderSummaryActions.map(\n          (panelAction) => {\n            const passRule =\n              panelAction.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 && panelAction?.hideAction) {\n              return null;\n            }\n\n            return (\n              <ToolBarButton\n                key={panelAction?.actionId}\n                label={panelAction?.action?.name}\n                aria={panelAction?.action?.name}\n                icon={false}\n                component={\n                  panelAction?.icon?.type === 'unity'\n                    ? getUnityIconFromName(panelAction?.icon?.name)\n                    : getIconFromName(panelAction?.icon?.name)\n                }\n                click={() => handleTriggerAction(panelAction?.actionId)}\n                disabled={!passRule}\n              />\n            );\n          }\n        );\n      } else {\n        siteHeaderSummaryComponent = (\n          <ActionSummaryPopover\n            panelActions={siteHeaderSummaryActions}\n            selectedNode={selectedNode}\n          />\n        );\n      }\n    }\n\n    return (\n      <SiteHeaderRightComponent>\n        <div className={classes.additionalRightComponent}>\n          {siteHeaderActionsComponent1}\n          {siteHeaderActionsComponent2}\n          {siteHeaderSummaryComponent}\n        </div>\n      </SiteHeaderRightComponent>\n    );\n  }, [panelsMap, handleTriggerAction, classes, selectedNode]);\n\n  const inquiryHeaderComponent = useMemo(() => {\n    const panelsMapCopy = cloneDeep(panelsMap);\n    const inquiryHeaderActions =\n      panelsMapCopy[PanelPositionEnums.Inquiry_Header];\n    const inquiryHeaderSummaryActions =\n      panelsMapCopy[PanelPositionEnums.Inquiry_Header_Summary];\n    let inquiryHeaderActionsComponent = null;\n    let inquiryHeaderSummaryComponent = null;\n    let inquiryHeaderPrimaryAction = null;\n    // if inquiry header summary actions length is more than 2, display the Actions as primary and the primary action as secondary.\n    // otherwise, display the primary action as primary and Actions as secondary\n    const showActionsAsSecondary =\n      !inquiryHeaderSummaryActions?.length ||\n      (!inquiryHeaderActions?.length &&\n        inquiryHeaderSummaryActions?.length <= 2);\n\n    if (inquiryHeaderActions?.length) {\n      const actionList = [];\n      inquiryHeaderActions.forEach((action) => {\n        const passRule =\n          action.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 && !action?.hideAction) {\n          actionList.push({ ...action, disabled: true });\n        } else if (passRule) {\n          actionList.push(action);\n        }\n      });\n\n      inquiryHeaderActionsComponent = actionList\n        ?.filter((pa) => {\n          return showActionsAsSecondary\n            ? !pa.isPrimary && pa.enabled\n            : pa.enabled;\n        })\n        ?.map((panelAction, i) => (\n          <div key={i}>\n            <ToolBarButton\n              // key={panelAction?.actionId}\n              label={panelAction?.action?.name}\n              aria={panelAction?.action?.name}\n              icon={false}\n              component={\n                panelAction?.icon?.type === 'unity'\n                  ? getUnityIconFromName(panelAction?.icon?.name)\n                  : getIconFromName(panelAction?.icon?.name)\n              }\n              click={() => {\n                handleTriggerAction(panelAction?.actionId);\n              }}\n              disabled={panelAction?.disabled ?? false}\n            />\n          </div>\n        ));\n\n      if (showActionsAsSecondary) {\n        const primaryAction = actionList?.find(\n          (panelAction) => panelAction.isPrimary\n        );\n\n        inquiryHeaderPrimaryAction = primaryAction ? (\n          <PrimaryActionButton\n            onClick={() => handleTriggerAction(primaryAction?.actionId)}\n            disabled={primaryAction?.disabled ?? false}\n          >\n            <Typography style={{ marginRight: 5 }}>\n              {primaryAction?.action?.name}\n            </Typography>\n          </PrimaryActionButton>\n        ) : null;\n      }\n    }\n\n    if (inquiryHeaderSummaryActions?.length) {\n      if (showActionsAsSecondary) {\n        inquiryHeaderActionsComponent = inquiryHeaderSummaryActions.map(\n          (panelAction) => {\n            const passRule =\n              panelAction.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 && panelAction?.hideAction) {\n              return null;\n            }\n\n            return (\n              <ToolBarButton\n                key={panelAction?.actionId}\n                label={panelAction?.action?.name}\n                icon={false}\n                component={\n                  panelAction?.icon?.type === 'unity'\n                    ? getUnityIconFromName(panelAction?.icon?.name)\n                    : getIconFromName(panelAction?.icon?.name)\n                }\n                click={() => handleTriggerAction(panelAction?.actionId)}\n                disabled={!passRule}\n              />\n            );\n          }\n        );\n      } else {\n        inquiryHeaderSummaryComponent = (\n          <ActionSummaryPopover\n            panelActions={inquiryHeaderSummaryActions}\n            noContrastColor={true}\n            selectedNode={selectedNode}\n          />\n        );\n      }\n    }\n\n    return (\n      <PAHAdditionalRightComponent>\n        {showInquiryHeaderActions && !hideActions && (\n          <div className={classes.additionalRightComponent}>\n            {inquiryHeaderActionsComponent}\n            {inquiryHeaderPrimaryAction}\n            {inquiryHeaderSummaryComponent}\n          </div>\n        )}\n      </PAHAdditionalRightComponent>\n    );\n  }, [\n    panelsMap,\n    handleTriggerAction,\n    classes,\n    showInquiryHeaderActions,\n    selectedNode,\n    hideActions\n  ]);\n\n  const inquirySpeedDialComponent = useMemo(() => {\n    const panelsMapCopy = cloneDeep(panelsMap);\n    const inquirySpeedDialActions =\n      panelsMapCopy[PanelPositionEnums.Speed_Dial];\n    const enabledSortedActions =\n      inquirySpeedDialActions\n        ?.filter(\n          (action) =>\n            action.enabled &&\n            (action.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) ??\n              true)\n        )\n        .sort((a, b) => a.sequence - b.sequence) ?? [];\n    let parsedGlobalActions = [];\n    if (globalActions?.length) {\n      parsedGlobalActions = globalActions.map((action) => {\n        const parameters = JSON.parse(action.parameters);\n        return {\n          icon: { name: parameters.icon, type: 'fluent' },\n          action: {\n            name: action.name\n          },\n          ...action\n        };\n      });\n    }\n    return (\n      (!!enabledSortedActions?.length || !!parsedGlobalActions?.length) &&\n      !hideActions && (\n        <ActionSpeedDial\n          actions={[...enabledSortedActions, ...parsedGlobalActions].map(\n            (action) => ({\n              icon: action.icon,\n              onClick: () => handleTriggerAction(action.actionId),\n              name: action.action.name\n            })\n          )}\n        />\n      )\n    );\n  }, [\n    panelsMap,\n    handleTriggerAction,\n    selectedNode,\n    globalActions,\n    hideActions\n  ]);\n\n  return (\n    <>\n      {siteHeaderRightComponent}\n      {inquiryHeaderComponent}\n      {inquirySpeedDialComponent}\n    </>\n  );\n};\n\nActionPanelPlacement.propTypes = {\n  /**\n   * Action Panels\n   */\n  actionPanels: PropTypes.array,\n  /**\n   * Boolean to show inquiry header actions\n   */\n  showInquiryHeaderActions: PropTypes.bool,\n  /**\n   * Action Panels\n   */\n  selectedNode: PropTypes.object\n};\n"],"mappings":"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"}