onclose?.(), }, { text: "Apply", action: () => { applySettings(settings.converter!); onclose?.(); }, primary: true, }, ]} onclose={() => onclose?.()} >
{#if file} {@const availableConverters = getAvailableConverters(file)} {@const validConverter = getValidConverter( file, settings.converter, )}

{@html sanitize( m["convert.settings.description"]({ converter: validConverter?.name || "unknown", filename: file.name, }), )}

{m["convert.settings.converter"]()}

({ value: converter.name, label: converter.name, }))} selected={validConverter?.name} settingsStyle onselect={(value) => { settings = { converter: value }; // TODO: dont think i need to add the converter here }} />
{#key settings} {#await file.getAvailableSettings(file, settings.converter) then availableSettings}
{#if availableSettings.length === 0}

{m["convert.settings.none"]()}

{:else}
{#each availableSettings as setting (setting.key)}

{setting.label}

{#if setting.description}

{setting.description}

{/if} {#if setting.type === "select"} typeof opt === "string" ? { value: opt, label: opt, } : opt, ) || []} selected={settings[ setting.key ] ?? file.conversionSettings[ setting.key ] ?? setting.default} settingsStyle onselect={(value) => handleSettingChange( setting.key, value, )} disabled={setting.disabled} /> {#if setting.hasCustomInput} {@const disabled = (settings[setting.key] ?? file.conversionSettings[ setting.key ]) !== "custom"} handleSettingChange( setting.customInputKey!, e.currentTarget .value, )} /> {/if} {:else if setting.type === "boolean"} handleSettingChange( setting.key, e.currentTarget.checked, )} disabled={setting.disabled} /> {:else if setting.type === "range"} {@const rangeValue = (settings[ setting.key ] ?? file.conversionSettings[ setting.key ] ?? setting.default ?? setting.min ?? 0) as number} {@const rangeLabel = setting.options?.[rangeValue] ?.label ?? rangeValue}
{ const nextValue = e.currentTarget .valueAsNumber; handleSettingChange( setting.key, nextValue, ); }} disabled={setting.disabled} /> {rangeLabel}
{:else} handleSettingChange( setting.key, e.currentTarget.value, )} disabled={setting.disabled} /> {/if}
{/each}
{/if}
{/await} {/key} {/if}