This commit is contained in:
Jan Prochazka
2021-02-28 10:37:07 +01:00
parent 182b0e0a75
commit 5929a01010
3 changed files with 3 additions and 3 deletions

View File

@@ -0,0 +1,77 @@
<script>
import clickOutside from '../utility/clickOutside';
import { createEventDispatcher } from 'svelte';
export let items;
export let top;
export let left;
const dispatch = createEventDispatcher();
function handleClick(item) {
dispatch('close');
if (item.onClick) item.onClick();
}
</script>
<ul style={`left: ${left}px; top: ${top}px`} use:clickOutside on:clickOutside={() => dispatch('close')}>
{#each items as item}
{#if item.divider}
<li class="divider" />
{:else}
<li>
<a on:click={() => handleClick(item)}>
{item.text}
{#if item.keyText}
<span class="keyText">{item.keyText}</span>
{/if}
</a>
</li>
{/if}
{/each}
</ul>
<style>
ul {
position: absolute;
list-style: none;
background-color: #fff;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.15);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
text-align: left;
min-width: 160px;
z-index: 1050;
cursor: default;
}
.keyText {
font-style: italic;
font-weight: bold;
text-align: right;
margin-left: 16px;
}
a {
padding: 3px 20px;
line-height: 1.42;
display: block;
white-space: nop-wrap;
color: #262626;
}
a:hover {
background-color: #f5f5f5;
text-decoration: none;
color: #262626;
}
.divider {
margin: 9px 0px 9px 0px;
border-top: 1px solid #f2f2f2;
border-bottom: 1px solid #fff;
}
</style>