component Collapse { props { @event toggle = function @event open = function @event close = function size = "default" color = "primary" items = [] multiple = false mode = "panel" initialOpenIndexes = [] ariaLabel = "Collapsible content" class = "" } state openIndexes = initialOpenIndexes functions { function isOpen(index) { return openIndexes.includes(index) } function toggleItem(index, item, opening) { if (item.disabled) { return } opening = !isOpen(index) if (opening) { if (multiple) { openIndexes = openIndexes.concat(index) } else { openIndexes = [index] } $emit("open", { index: index, item: item }) } else { openIndexes = openIndexes.filter((openIndex) => openIndex !== index) $emit("close", { index: index, item: item }) } $emit("toggle", { index: index, item: item, open: opening, openIndexes: openIndexes }) } } view {
{#each items as item, index}
{#if mode === "inline" && item.preview}

{item.preview}

{/if}
{#if item.title}

{item.title}

{/if} {#if item.content}

{item.content}

{/if} {#if item.links && item.links.length} {/if}
{/each}
} }