mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
fix: close overlays on window click (#761)
This commit is contained in:
parent
7e3b0bc1cd
commit
af26bdb10a
8 changed files with 24 additions and 16 deletions
|
@ -152,12 +152,13 @@
|
||||||
$: value = inputValue;
|
$: value = inputValue;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:click="{({ target }) => {
|
on:click="{({ target }) => {
|
||||||
if (open && ref && !ref.contains(target)) {
|
if (open && ref && !ref.contains(target)) {
|
||||||
open = false;
|
open = false;
|
||||||
}
|
}
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class:bx--list-box__wrapper="{true}">
|
<div class:bx--list-box__wrapper="{true}">
|
||||||
{#if titleText}
|
{#if titleText}
|
||||||
|
|
|
@ -192,12 +192,13 @@
|
||||||
$: if ($hasCalendar && !calendar && inputRef) initCalendar();
|
$: if ($hasCalendar && !calendar && inputRef) initCalendar();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:click="{({ target }) => {
|
on:click="{({ target }) => {
|
||||||
if (!calendar || !calendar.isOpen) return;
|
if (!calendar || !calendar.isOpen) return;
|
||||||
if (datePickerRef && datePickerRef.contains(target)) return;
|
if (datePickerRef && datePickerRef.contains(target)) return;
|
||||||
if (!calendar.calendarContainer.contains(target)) calendar.close();
|
if (!calendar.calendarContainer.contains(target)) calendar.close();
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class:bx--form-item="{true}"
|
class:bx--form-item="{true}"
|
||||||
|
|
|
@ -238,12 +238,13 @@
|
||||||
$: value = inputValue;
|
$: value = inputValue;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:click="{({ target }) => {
|
on:click="{({ target }) => {
|
||||||
if (open && multiSelectRef && !multiSelectRef.contains(target)) {
|
if (open && multiSelectRef && !multiSelectRef.contains(target)) {
|
||||||
open = false;
|
open = false;
|
||||||
}
|
}
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
bind:this="{multiSelectRef}"
|
bind:this="{multiSelectRef}"
|
||||||
|
|
|
@ -165,13 +165,14 @@
|
||||||
{@html styles}
|
{@html styles}
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:click="{({ target }) => {
|
on:click="{({ target }) => {
|
||||||
if (buttonRef && buttonRef.contains(target)) return;
|
if (buttonRef && buttonRef.contains(target)) return;
|
||||||
if (menuRef && !menuRef.contains(target)) {
|
if (menuRef && !menuRef.contains(target)) {
|
||||||
open = false;
|
open = false;
|
||||||
}
|
}
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
bind:this="{buttonRef}"
|
bind:this="{buttonRef}"
|
||||||
|
|
|
@ -116,12 +116,13 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:mousemove="{move}"
|
on:mousemove="{move}"
|
||||||
on:touchmove="{move}"
|
on:touchmove="{move}"
|
||||||
on:mouseup="{stopHolding}"
|
on:mouseup="{stopHolding}"
|
||||||
on:touchend="{stopHolding}"
|
on:touchend="{stopHolding}"
|
||||||
on:touchcancel="{stopHolding}" />
|
on:touchcancel="{stopHolding}"
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class:bx--form-item="{true}"
|
class:bx--form-item="{true}"
|
||||||
|
|
|
@ -163,7 +163,7 @@
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:mousedown="{({ target }) => {
|
on:mousedown="{({ target }) => {
|
||||||
if (open && target.contains(refTooltip)) {
|
if (open && target.contains(refTooltip)) {
|
||||||
if (refIcon) {
|
if (refIcon) {
|
||||||
|
@ -174,7 +174,8 @@
|
||||||
|
|
||||||
open = false;
|
open = false;
|
||||||
}
|
}
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
{...$$restProps}
|
{...$$restProps}
|
||||||
|
|
|
@ -31,10 +31,11 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:keydown="{({ key }) => {
|
on:keydown="{({ key }) => {
|
||||||
if (key === 'Escape') hide();
|
if (key === 'Escape') hide();
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
class:bx--tooltip--definition="{true}"
|
class:bx--tooltip--definition="{true}"
|
||||||
|
|
|
@ -35,12 +35,13 @@
|
||||||
let hidden = false;
|
let hidden = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:body
|
<svelte:window
|
||||||
on:keydown="{({ key }) => {
|
on:keydown="{({ key }) => {
|
||||||
if (key === 'Escape') {
|
if (key === 'Escape') {
|
||||||
hidden = true;
|
hidden = true;
|
||||||
}
|
}
|
||||||
}}" />
|
}}"
|
||||||
|
/>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
bind:this="{ref}"
|
bind:this="{ref}"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue