@grafana/ui
Version:
Grafana Components Library
1 lines • 2.93 kB
Source Map (JSON)
{"version":3,"file":"PanelMenu.mjs","sources":["../../../../src/components/PanelChrome/PanelMenu.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { type 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 { type 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":[],"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,QAAQ,SAAA,CAAU,UAAA,CAAW,OAAO,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA,GAAI,CAAA,iBAAA,CAAA;AAEvE,EAAA,MAAM,gBAAA,GAAmB,WAAA;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,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,eAAA,EAAkB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,EACvD,CAAA;AAEA,EAAA,2BACG,QAAA,EAAA,EAAS,OAAA,EAAkB,SAAA,EAAsB,MAAA,EAAgB,iBAAiB,gBAAA,EACjF,QAAA,kBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,EAAE,6BAAA,EAA+B,4BAAA,EAA8B,EAAE,KAAA,EAAO,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,YAAY,CAAA;AAAA,MACzG,KAAA,EAAO,CAAA,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,EAAW,EAAA,CAAG,eAAA,EAAiB,eAAe;AAAA;AAAA,GAChD,EACF,CAAA;AAEJ;;;;"}