{"version":3,"file":"PanelMenu.cjs","sources":["../../../../src/components/PanelChrome/PanelMenu.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { ReactElement, useCallback } from 'react';\n\nimport { selectors } from '@grafana/e2e-selectors';\nimport { t } from '@grafana/i18n';\n\nimport { Button } from '../Button/Button';\nimport { Dropdown } from '../Dropdown/Dropdown';\nimport { TooltipPlacement } from '../Tooltip/types';\n\ninterface PanelMenuProps {\n  menu: ReactElement | (() => ReactElement);\n  menuButtonClass?: string;\n  dragClassCancel?: string;\n  title?: string;\n  placement?: TooltipPlacement;\n  offset?: [number, number];\n  onOpenMenu?: () => void;\n}\n\nexport function PanelMenu({\n  menu,\n  title,\n  placement = 'bottom',\n  offset,\n  dragClassCancel,\n  menuButtonClass,\n  onOpenMenu,\n}: PanelMenuProps) {\n  const testId = title ? selectors.components.Panels.Panel.menu(title) : `panel-menu-button`;\n\n  const handleVisibility = useCallback(\n    (show: boolean) => {\n      if (show && onOpenMenu) {\n        onOpenMenu();\n      }\n    },\n    [onOpenMenu]\n  );\n\n  const overlay = () => {\n    const menuContent = typeof menu === 'function' ? menu() : menu;\n    return <div className={dragClassCancel}>{menuContent}</div>;\n  };\n\n  return (\n    <Dropdown overlay={overlay} placement={placement} offset={offset} onVisibleChange={handleVisibility}>\n      <Button\n        aria-label={t('grafana-ui.panel-menu.label', 'Menu for panel {{ title }}', { title: title ?? 'Untitled' })}\n        title={t('grafana-ui.panel-menu.title', 'Menu')}\n        icon=\"ellipsis-v\"\n        variant=\"secondary\"\n        size=\"sm\"\n        data-testid={testId}\n        className={cx(menuButtonClass, dragClassCancel)}\n      />\n    </Dropdown>\n  );\n}\n"],"names":["selectors","useCallback","jsx","Dropdown","Button","t","cx"],"mappings":";;;;;;;;;;;;;AAoBO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,MAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,MAAA,GAAS,QAAQA,sBAAA,CAAU,UAAA,CAAW,OAAO,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA,GAAI,CAAA,iBAAA,CAAA;AAEvE,EAAA,MAAM,gBAAA,GAAmBC,iBAAA;AAAA,IACvB,CAAC,IAAA,KAAkB;AACjB,MAAA,IAAI,QAAQ,UAAA,EAAY;AACtB,QAAA,UAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,MAAM,WAAA,GAAc,OAAO,IAAA,KAAS,UAAA,GAAa,MAAK,GAAI,IAAA;AAC1D,IAAA,uBAAOC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,eAAA,EAAkB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,EACvD,CAAA;AAEA,EAAA,sCACGC,iBAAA,EAAA,EAAS,OAAA,EAAkB,SAAA,EAAsB,MAAA,EAAgB,iBAAiB,gBAAA,EACjF,QAAA,kBAAAD,cAAA;AAAA,IAACE,aAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAYC,OAAE,6BAAA,EAA+B,4BAAA,EAA8B,EAAE,KAAA,EAAO,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,YAAY,CAAA;AAAA,MACzG,KAAA,EAAOA,MAAA,CAAE,6BAAA,EAA+B,MAAM,CAAA;AAAA,MAC9C,IAAA,EAAK,YAAA;AAAA,MACL,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,IAAA;AAAA,MACL,aAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAWC,MAAA,CAAG,eAAA,EAAiB,eAAe;AAAA;AAAA,GAChD,EACF,CAAA;AAEJ;;;;"}