{ if (richMenu) menuDismissed = false; }} on:focus on:blur on:keydown on:keydown={(event) => { if (richMenu) { handleRichKeydown(event); return; } switch (event.key) { case "Enter": selectResult(); break; case "ArrowDown": event.preventDefault(); if (selectedResultIndex === results.length - 1) { selectedResultIndex = 0; } else { selectedResultIndex += 1; } break; case "ArrowUp": event.preventDefault(); if (selectedResultIndex === 0) { selectedResultIndex = results.length - 1; } else { selectedResultIndex -= 1; } break; case "Escape": if (value === "") { // If the search bar is empty, deactivate the input. active = false; dispatch("close", { trigger: "escape-key" }); } // Reset the search query but keep the search bar active. // Do not dispatch "clear" event as that should fire only on the "x" button. value = ""; selectedResultIndex = 0; break; } }} on:paste > {#if active} {/if}
{#if richMenu && active} {:else if active && results.length > 0} {/if}