{"version":3,"file":"ActionButton.cjs","sources":["../../../../src/components/Actions/ActionButton.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { ActionModel, Field, ActionVariableInput } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { useTheme2 } from '../../themes/ThemeContext';\nimport { Button, ButtonProps } from '../Button/Button';\nimport { ConfirmModal } from '../ConfirmModal/ConfirmModal';\n\nimport { VariablesInputModal } from './VariablesInputModal';\n\ntype ActionButtonProps = Omit<ButtonProps, 'children'> & {\n  action: ActionModel<Field>;\n};\n\n/**\n * @internal\n */\nexport function ActionButton({ action, ...buttonProps }: ActionButtonProps) {\n  const theme = useTheme2();\n  const backgroundColor = action.style.backgroundColor || theme.colors.secondary.main;\n  const textColor = theme.colors.getContrastText(backgroundColor);\n\n  const [showConfirm, setShowConfirm] = useState(false);\n\n  // Action variables\n  const [showVarsModal, setShowVarsModal] = useState(false);\n  const [actionVars, setActionVars] = useState<ActionVariableInput>({});\n\n  const actionHasVariables = action.variables && action.variables.length > 0;\n\n  const onClick = () => {\n    if (actionHasVariables) {\n      setShowVarsModal(true);\n    } else {\n      setShowConfirm(true);\n    }\n  };\n\n  return (\n    <>\n      <Button\n        variant=\"primary\"\n        size=\"sm\"\n        onClick={onClick}\n        {...buttonProps}\n        style={{ width: 'fit-content', backgroundColor, color: textColor }}\n      >\n        {action.title}\n      </Button>\n\n      {actionHasVariables && showVarsModal && (\n        <VariablesInputModal\n          onDismiss={() => setShowVarsModal(false)}\n          action={action}\n          onShowConfirm={() => setShowConfirm(true)}\n          variables={actionVars}\n          setVariables={setActionVars}\n        />\n      )}\n\n      {showConfirm && (\n        <ConfirmModal\n          isOpen={true}\n          title={t('grafana-ui.action-editor.button.confirm-action', 'Confirm action')}\n          body={action.confirmation(actionVars)}\n          confirmText={t('grafana-ui.action-editor.button.confirm', 'Confirm')}\n          confirmButtonVariant=\"primary\"\n          onConfirm={() => {\n            setShowConfirm(false);\n            action.onClick(new MouseEvent('click'), null, actionVars);\n          }}\n          onDismiss={() => {\n            setShowConfirm(false);\n          }}\n        />\n      )}\n    </>\n  );\n}\n"],"names":["useTheme2","useState","jsxs","Fragment","jsx","Button","VariablesInputModal","ConfirmModal","t"],"mappings":";;;;;;;;;;;;;AAkBO,SAAS,YAAA,CAAa,EAAE,MAAA,EAAQ,GAAG,aAAY,EAAsB;AAC1E,EAAA,MAAM,QAAQA,sBAAA,EAAU;AACxB,EAAA,MAAM,kBAAkB,MAAA,CAAO,KAAA,CAAM,eAAA,IAAmB,KAAA,CAAM,OAAO,SAAA,CAAU,IAAA;AAC/E,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,MAAA,CAAO,eAAA,CAAgB,eAAe,CAAA;AAE9D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIC,eAAS,KAAK,CAAA;AAGpD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,eAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,cAAA,CAA8B,EAAE,CAAA;AAEpE,EAAA,MAAM,kBAAA,GAAqB,MAAA,CAAO,SAAA,IAAa,MAAA,CAAO,UAAU,MAAA,GAAS,CAAA;AAEzE,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,kBAAA,EAAoB;AACtB,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB,CAAA,MAAO;AACL,MAAA,cAAA,CAAe,IAAI,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,IAAA,EAAK,IAAA;AAAA,QACL,OAAA;AAAA,QACC,GAAG,WAAA;AAAA,QACJ,OAAO,EAAE,KAAA,EAAO,aAAA,EAAe,eAAA,EAAiB,OAAO,SAAA,EAAU;AAAA,QAEhE,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,KACV;AAAA,IAEC,sBAAsB,aAAA,oBACrBD,cAAA;AAAA,MAACE,uCAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,MAAM,gBAAA,CAAiB,KAAK,CAAA;AAAA,QACvC,MAAA;AAAA,QACA,aAAA,EAAe,MAAM,cAAA,CAAe,IAAI,CAAA;AAAA,QACxC,SAAA,EAAW,UAAA;AAAA,QACX,YAAA,EAAc;AAAA;AAAA,KAChB;AAAA,IAGD,WAAA,oBACCF,cAAA;AAAA,MAACG,yBAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,IAAA;AAAA,QACR,KAAA,EAAOC,MAAA,CAAE,gDAAA,EAAkD,gBAAgB,CAAA;AAAA,QAC3E,IAAA,EAAM,MAAA,CAAO,YAAA,CAAa,UAAU,CAAA;AAAA,QACpC,WAAA,EAAaA,MAAA,CAAE,yCAAA,EAA2C,SAAS,CAAA;AAAA,QACnE,oBAAA,EAAqB,SAAA;AAAA,QACrB,WAAW,MAAM;AACf,UAAA,cAAA,CAAe,KAAK,CAAA;AACpB,UAAA,MAAA,CAAO,QAAQ,IAAI,UAAA,CAAW,OAAO,CAAA,EAAG,MAAM,UAAU,CAAA;AAAA,QAC1D,CAAA;AAAA,QACA,WAAW,MAAM;AACf,UAAA,cAAA,CAAe,KAAK,CAAA;AAAA,QACtB;AAAA;AAAA;AACF,GAAA,EAEJ,CAAA;AAEJ;;;;"}