@grafana/ui
Version:
Grafana Components Library
1 lines • 2.29 kB
Source Map (JSON)
{"version":3,"file":"PopoverController.mjs","sources":["../../../../src/components/Tooltip/PopoverController.tsx"],"sourcesContent":["import { Placement } from '@popperjs/core';\nimport { Component } from 'react';\n\nimport { PopoverContent } from './types';\n\ntype PopperControllerRenderProp = (\n showPopper: () => void,\n hidePopper: () => void,\n popperProps: {\n show: boolean;\n placement: Placement;\n content: PopoverContent;\n }\n) => JSX.Element;\n\ninterface Props {\n placement?: Placement;\n content: PopoverContent;\n className?: string;\n children: PopperControllerRenderProp;\n hideAfter?: number;\n}\n\ninterface State {\n show: boolean;\n}\n\nclass PopoverController extends Component<Props, State> {\n private hideTimeout: ReturnType<typeof setTimeout> | null = null;\n state = { show: false };\n\n showPopper = () => {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n }\n this.setState({ show: true });\n };\n\n hidePopper = () => {\n this.hideTimeout = setTimeout(() => {\n this.setState({ show: false });\n }, this.props.hideAfter);\n };\n\n render() {\n const { children, content, placement = 'auto' } = this.props;\n const { show } = this.state;\n\n return children(this.showPopper, this.hidePopper, {\n show,\n placement,\n content,\n });\n }\n}\n\nexport { PopoverController };\n"],"names":[],"mappings":";;;AA2BA,MAAM,0BAA0B,SAAA,CAAwB;AAAA,EAAxD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACE,IAAA,IAAA,CAAQ,WAAA,GAAoD,IAAA;AAC5D,IAAA,IAAA,CAAA,KAAA,GAAQ,EAAE,MAAM,KAAA,EAAM;AAEtB,IAAA,IAAA,CAAA,UAAA,GAAa,MAAM;AACjB,MAAA,IAAI,KAAK,WAAA,EAAa;AACpB,QAAA,YAAA,CAAa,KAAK,WAAW,CAAA;AAAA,MAC/B;AACA,MAAA,IAAA,CAAK,QAAA,CAAS,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,IAC9B,CAAA;AAEA,IAAA,IAAA,CAAA,UAAA,GAAa,MAAM;AACjB,MAAA,IAAA,CAAK,WAAA,GAAc,WAAW,MAAM;AAClC,QAAA,IAAA,CAAK,QAAA,CAAS,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,MAC/B,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA;AAAA,IACzB,CAAA;AAAA,EAAA;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,SAAA,GAAY,MAAA,KAAW,IAAA,CAAK,KAAA;AACvD,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,IAAA,CAAK,KAAA;AAEtB,IAAA,OAAO,QAAA,CAAS,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,UAAA,EAAY;AAAA,MAChD,IAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH;AACF;;;;"}