{ confirmDeleteModel(); }} />
{#if show}
{#if searchEnabled}
{ if (e.code === 'Enter') { if (selectedModelIdx >= filteredItems.length) { const target = downloadTargets[selectedModelIdx - filteredItems.length]; if (target && !target.download) { downloadModelHandler(target); } } else if (filteredItems[selectedModelIdx]) { selectItem(filteredItems[selectedModelIdx], selectedModelIdx); } return; // dont need to scroll on selection } else if (e.code === 'ArrowDown') { e.stopPropagation(); selectedModelIdx = Math.min( selectedModelIdx + 1, Math.max(filteredItems.length - 1 + downloadTargets.length, 0) ); } else if (e.code === 'ArrowUp') { e.stopPropagation(); selectedModelIdx = Math.max(selectedModelIdx - 1, 0); } else { // if the user types something, reset to the top selection. selectedModelIdx = 0; } const item = document.querySelector(`[data-arrow-selected="true"]`); item?.scrollIntoView({ block: 'center', inline: 'nearest', behavior: 'instant' }); }} /> {#if modelFilterItems.length > 0 || (multipleEnabled && items.length > 0)}
{#if multipleEnabled && items.length > 0} {/if} {#if modelFilterItems.length > 0} {/if}
{/if}
{/if}
{#if filteredItems.length === 0} {#if items.length === 0 && $user?.role === 'admin'}
{$i18n.t('No models available')}
{$i18n.t('Connect to an AI provider to start chatting')}
{:else}
{$i18n.t('No results found')}
{/if} {:else}
{ listScrollTop = listContainer.scrollTop; }} >
{#each filteredItems.slice(visibleStart, visibleEnd) as item, i (item.value)} {@const index = visibleStart + i} { selectItem(item, index); }} /> {/each}
{/if} {#each downloadTargets as target, targetIndex (target.id)} {#if target.download}
{$i18n.t('Downloading "{{searchValue}}"', { searchValue: searchValue })}
{#if 'pullProgress' in target.download}
{target.download.pullProgress}%
{/if}
{:else} {/if} {/each} {#each selectionOnly ? [] : Object.keys($MODEL_DOWNLOAD_POOL).filter((model) => !activeDownloadKeys.has(model)) as model} {@const download = $MODEL_DOWNLOAD_POOL[model]} {@const downloadName = download?.model ?? model}
Downloading "{downloadName}"{download?.providerLabel ? ` from ${download.providerLabel}` : ''}
{#if 'pullProgress' in download}
{download.pullProgress}%
{/if}
{/each}
{#if showSetDefault}
{:else}
{/if}