@grafana/ui
Version:
Grafana Components Library
1 lines • 2.26 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,SAAwB,CAAA;AAAA,EAAxD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACE,IAAA,IAAA,CAAQ,WAAoD,GAAA,IAAA;AAC5D,IAAQ,IAAA,CAAA,KAAA,GAAA,EAAE,MAAM,KAAM,EAAA;AAEtB,IAAA,IAAA,CAAA,UAAA,GAAa,MAAM;AACjB,MAAA,IAAI,KAAK,WAAa,EAAA;AACpB,QAAA,YAAA,CAAa,KAAK,WAAW,CAAA;AAAA;AAE/B,MAAA,IAAA,CAAK,QAAS,CAAA,EAAE,IAAM,EAAA,IAAA,EAAM,CAAA;AAAA,KAC9B;AAEA,IAAA,IAAA,CAAA,UAAA,GAAa,MAAM;AACjB,MAAK,IAAA,CAAA,WAAA,GAAc,WAAW,MAAM;AAClC,QAAA,IAAA,CAAK,QAAS,CAAA,EAAE,IAAM,EAAA,KAAA,EAAO,CAAA;AAAA,OAC/B,EAAG,IAAK,CAAA,KAAA,CAAM,SAAS,CAAA;AAAA,KACzB;AAAA;AAAA,EAEA,MAAS,GAAA;AACP,IAAA,MAAM,EAAE,QAAU,EAAA,OAAA,EAAS,SAAY,GAAA,MAAA,KAAW,IAAK,CAAA,KAAA;AACvD,IAAM,MAAA,EAAE,IAAK,EAAA,GAAI,IAAK,CAAA,KAAA;AAEtB,IAAA,OAAO,QAAS,CAAA,IAAA,CAAK,UAAY,EAAA,IAAA,CAAK,UAAY,EAAA;AAAA,MAChD,IAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA;AAEL;;;;"}