{#each content as { type, name, valid }, i}
-
x[0] === name && x.length === 1
)}
on:change={(e) => {
let checked = e.detail;
dispatch("check", {
path: [...path, name],
checked,
type
});
if (type === "folder" && checked) {
open_folder(i);
}
}}
/>
{#if type === "folder"}
toggle_open_folder(i)}
role="button"
aria-label="expand directory"
tabindex="0"
on:keydown={({ key }) => {
if (key === " " || key === "Enter") {
toggle_open_folder(i);
}
}}>
{:else}
{/if}
{name}
{#if type === "folder" && opened_folders.includes(i)}
x[0] === name)
.map((x) => x.slice(1))}
selected_folders={selected_folders
.filter((x) => x[0] === name)
.map((x) => x.slice(1))}
is_selected_entirely={selected_folders.some(
(x) => x[0] === name && x.length === 1
)}
{interactive}
{ls_fn}
{file_count}
valid_for_selection={valid}
on:check
/>
{/if}
{/each}