{"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;;;;"}