{"version":3,"file":"ActionsRenderer.mjs","names":["React","useState","useCallback","memo","makeStyles","Skeleton","SideSheet","FluentDialog","IconButtonWithTooltip","ClickOpenEnums","useStyles","theme","icon","margin","spacing","iconButtonStyle","width","height","background","borderRadius","padding","circularSkeleton","ActionItem","props","$","_c","title","onClick","disabled","businessObjectKey","t0","undefined","classes","t1","t2","t3","ActionsRenderer","data","value","actionList","sheetOpen","setSheetOpen","sheetItem","setSheetItem","dialogItem","setDialogItem","dialogOpen","setDialogOpen","setIsLoading","setSideSheetWidth","sideSheetButtonLabel","setSideSheetButtonLabel","sideSheetOnSubmit","setSideSheetOnSubmit","_temp2","Symbol","for","sheetView","openSheet","dialogView","openDialog","closeSheet","closeDialog","t4","actionItem","opens","valuePropName","view","properties","closeSideSheetPropName","id","children","component","getSheetView","t5","actionItem_0","Dialog","handleActionTwo","actionTwo","message","labelOne","labelTwo","getDialogView","t6","t7","item","index","onClick_0","sheetView_0","dialogView_0","getTitle","checkDisabled","loading","display","marginRight","map","displayActions","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","isLoading","t19","t20","displayName","_temp","console","warn"],"sources":["../../../../../src/UI/templates/ui/renderers/ActionsRenderer.jsx"],"sourcesContent":["import React, { useState, useCallback, memo } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { SideSheet } from '../../../surfaces/SideSheet';\nimport { FluentDialog } from '../../../feedback/FluentDialog';\nimport { IconButtonWithTooltip } from '../../../inputs/buttons/IconButtonWithToolTip';\nimport { ClickOpenEnums } from '../../../../enums/pageEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n  icon: {\n    margin: theme.spacing(0.5)\n  },\n  iconButtonStyle: {\n    width: `${theme.spacing(3)}px !important`,\n    height: `${theme.spacing(3)}px !important`,\n    background: '#fff',\n    borderRadius: 25,\n    padding: 6\n  },\n  circularSkeleton: {\n    borderRadius: '50%'\n  }\n}));\n\nconst ActionItem = memo((props) => {\n  const { icon, title, onClick, disabled, businessObjectKey='' } = props;\n  const classes = useStyles();\n\n  return (\n    <IconButtonWithTooltip\n      title={title}\n      className={classes.icon}\n      size='small'\n      onClick={onClick}\n      disabled={disabled}\n      icon={icon}\n      fluentIconClassName={classes.iconButtonStyle}\n      id={'udpRecord-ActionsRenderer-'+title}//+'-'+businessObjectKey.replace(/\\./g, '')}\n      udprecordid={'udpRecord-ActionsRenderer-'+title}//+'-'+businessObjectKey.replace(/\\./g, '')}\n    />\n  );\n});\n\nexport const ActionsRenderer = memo((props) => {\n  const { data: value, actionList, onClick } = props;\n  const classes = useStyles();\n  const [sheetOpen, setSheetOpen] = useState(false);\n  const [sheetItem, setSheetItem] = useState(null);\n  const [dialogItem, setDialogItem] = useState(null);\n  const [dialogOpen, setDialogOpen] = useState(false);\n  const [isLoading, setIsLoading] = useState(false);\n  const [sideSheetWidth, setSideSheetWidth] = useState(600);\n  const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState('');\n  const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(\n    () => () => console.warn('onSubmit not set')\n  );\n\n  const openSheet = useCallback((sheetView) => {\n    setSheetItem(sheetView);\n    setSheetOpen(true);\n  }, []);\n\n  const openDialog = useCallback((dialogView) => {\n    setDialogItem(dialogView);\n    setDialogOpen(true);\n  }, []);\n\n  const closeSheet = useCallback(() => {\n    setSheetOpen(false);\n  }, []);\n\n  const closeDialog = useCallback(() => {\n    setDialogOpen(false);\n  }, []);\n\n  const getSheetView = (actionItem) => {\n    if (actionItem.opens === ClickOpenEnums.SideSheet) {\n      const valuePropName = actionItem?.view?.properties?.valuePropName;\n      if (valuePropName) {\n        actionItem.view.properties[valuePropName] = value;\n      }\n      const closeSideSheetPropName =\n        actionItem?.view?.properties?.closeSideSheetPropName;\n      if (closeSideSheetPropName) {\n        actionItem.view.properties[closeSideSheetPropName] = closeSheet;\n      }\n    }\n    const properties = actionItem?.view?.properties || {};\n    return {\n      id: actionItem.id,\n      title: actionItem.title || '',\n      width: actionItem?.view?.width,\n      children: actionItem?.view?.component({\n        ...properties,\n        setSideSheetWidth,\n        setSideSheetButtonLabel,\n        setSideSheetOnSubmit\n      })\n    };\n  };\n\n  const getDialogView = (actionItem) => {\n    if (actionItem.opens === ClickOpenEnums.Dialog) {\n      const handleActionTwo = async () => {\n        if (actionItem?.view?.properties?.actionTwo) {\n          setIsLoading(true);\n          await actionItem?.view?.properties?.actionTwo(value);\n          setIsLoading(false);\n        }\n        closeDialog();\n      };\n      return {\n        id: actionItem.id,\n        title: actionItem?.title || '',\n        closeDialog: closeDialog,\n        message: actionItem?.view?.properties?.message,\n        labelOne: actionItem?.view?.properties?.labelOne,\n        actionTwo: handleActionTwo,\n        labelTwo: actionItem?.view?.properties?.labelTwo\n      };\n    }\n  };\n\n  const displayActions = actionList.map((item, index) => {\n    let onClick = () => item.onClick(value);\n    let title = item.title;\n    let disabled = item.disabled;\n    if (item.opens === ClickOpenEnums.SideSheet) {\n      const sheetView = getSheetView(item);\n      onClick = () => openSheet(sheetView);\n    }\n    if (item.opens === ClickOpenEnums.Dialog) {\n      const dialogView = getDialogView(item);\n      onClick = () => openDialog(dialogView);\n    }\n    if (item.getTitle) {\n      title = item.getTitle(value);\n    }\n    if (item.checkDisabled) {\n      disabled = item.checkDisabled(value);\n    }\n    return (\n      <>\n        {item.loading && (\n          <div style={{ display: 'inline-flex', marginRight: 10 }}>\n            <Skeleton\n              className={classes.circularSkeleton}\n              width={24}\n              height={40}\n            />\n          </div>\n        )}\n        {!item.loading && (\n          <ActionItem\n            key={`${item.id}-${index}`}\n            title={title}\n            icon={item.icon}\n            onClick={onClick}\n            disabled={disabled}\n            businessObjectKey={value?.businessObjectKey}\n          />\n        )}\n      </>\n    );\n  });\n\n  /* Final Render */\n  return (\n    <div>\n      {displayActions}\n      <SideSheet\n        open={sheetOpen}\n        onClose={closeSheet}\n        title={sheetItem?.title}\n        width={sheetItem?.width || 600}\n        buttonLabel={sideSheetButtonLabel}\n        onSubmit={sideSheetOnSubmit}\n      >\n        <div>{sheetItem?.children}</div>\n      </SideSheet>\n      <FluentDialog\n        open={dialogOpen}\n        handleClose={closeDialog}\n        title={dialogItem?.title}\n        message={dialogItem?.message}\n        actionOne={dialogItem?.closeDialog}\n        labelOne={dialogItem?.labelOne}\n        actionTwo={dialogItem?.actionTwo}\n        labelTwo={dialogItem?.labelTwo}\n        progress={dialogItem?.isLoading}\n      />\n    </div>\n  );\n});\n\nActionItem.displayName = 'ActionItem';\nActionsRenderer.displayName = 'ActionsRenderer';\n"],"mappings":"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"}