diff --git a/src/Popover.d.ts b/src/Popover.d.ts index 962d10c0..ba717132 100644 --- a/src/Popover.d.ts +++ b/src/Popover.d.ts @@ -10,6 +10,7 @@ export interface PopoverProps container?: ContainerType; dismissible?: boolean; isOpen?: boolean; + hideOnOutClick?: boolean; placement?: PopoverPlacement; target: string; title?: string; diff --git a/src/Popover.svelte b/src/Popover.svelte index dc1a5b29..0836ad8f 100644 --- a/src/Popover.svelte +++ b/src/Popover.svelte @@ -12,6 +12,7 @@ export let container = undefined; export let dismissible = false; export let isOpen = false; + export let hideOnOutClick = false; export let placement = 'top'; export let target = ''; export let title = ''; @@ -109,9 +110,14 @@ isOpen ? 'show' : false ); + const handleClick = (event) => { + if (isOpen && hideOnOutClick && !popoverEl.contains(event.target)) + isOpen = false; + }; $: outer = container === 'inline' ? InlineContainer : Portal; + {#if isOpen}