From a640703f2da8815dc26ad1600a6f206be1624379 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 1 Jun 2022 22:10:32 +0200 Subject: feat: Initial after clean slate --- apps/web-shared/src/components/dropdown.svelte | 374 +++++++++++++++++++++++++ 1 file changed, 374 insertions(+) create mode 100644 apps/web-shared/src/components/dropdown.svelte (limited to 'apps/web-shared/src/components/dropdown.svelte') diff --git a/apps/web-shared/src/components/dropdown.svelte b/apps/web-shared/src/components/dropdown.svelte new file mode 100644 index 0000000..b5068a7 --- /dev/null +++ b/apps/web-shared/src/components/dropdown.svelte @@ -0,0 +1,374 @@ + + + + +{#if label} + +{/if} + +
+ +
+ {#if multiple === true && hasSelection} + {#each entries.filter((c) => c.selected === true) as entry} + methods.deselect_entry(entry.id)} + text={entry.name}/> + {/each} + {/if} + search.do()} + on:click={() => (showDropdown = true)} + on:focus={() => (showDropdown = true)} + on:blur={search.on_input_focusout} + autocomplete="off" + /> +
+ + + Open selection + + + + + +
+
+ + {#if errorText} + {errorText} + {/if} + + +
+
    event.code.startsWith("Arrow") && event.preventDefault()} + tabindex="-1" + class="autocomplete__list"> + {#if searchResults.length > 0} + {#each searchResults.filter((c) => !c.selected) as result} +
  • methods.select_entry(e.target.dataset.id)} + tabindex="-1"> + {@html highlight(result, (open = ''), (close = ""))} +
  • + {/each} + {:else if entries.length > 0} + {#each entries.filter((c) => !c.selected) as entry} +
  • methods.select_entry(e.target.dataset.id)} + tabindex="-1"> + {entry.name} +
  • + {/each} + {:else} +
  • + {noResultsText} +
  • + {/if} +
+ {#if showCreationHint} +
+
+ {/if} +
+
-- cgit v1.3