{#if selection.length > 0} {pluralize(selection?.length ?? 1, 'item') + ' selected'} {/if} {#if hiddenColumns.length > 0}
{/if}
{ const actions = [ { displayName: 'Download JSON', icon: Download, action: () => { const json = JSON.stringify(objects, null, 2) const blob = new Blob([json], { type: 'text/json;charset=utf-8;' }) const url = URL.createObjectURL(blob) const link = document.createElement('a') link.setAttribute('href', url) link.setAttribute('download', 'data.json') link.style.visibility = 'hidden' document.body.appendChild(link) link.click() document.body.removeChild(link) } } ] if (hiddenColumns.length > 0) { actions.push({ displayName: 'Display hidden columns', icon: EyeIcon, action: () => { hiddenColumns = [] } }) } if (selection.length > 0) { actions.push({ displayName: 'Clear selection', icon: Columns, action: () => { selection = [] renderCount++ } }) } return actions }} >
{#key renderCount} {#if data.length == 0}
No data found
Try changing your search query
{:else} { currentPage += 1 }} on:previous={() => { currentPage -= 1 }} on:change={(event) => { currentPage = event.detail }} showNext={currentPage * perPage < objects.length} > {#each Object.keys(data?.[0]?.rowData ?? {}) ?? [] as key, index}
{key} {#if hiddenColumns.includes(key)} {:else} {/if} {#if isSortable(key)} {#if activeSorting?.column === key} {:else} {/if} {/if}
{/each} {#each data as { _id, rowData }, index (index)} handleCheckboxChange(_id)} /> {#each Object.keys(data?.[0]?.rowData ?? {}) ?? [] as key, index} {@const value = rowData[key]} {#if hiddenColumns.includes(key)} ... {:else if Array.isArray(value) && value.length === 0}
{:else if Array.isArray(value) && typeof value?.[0] === 'string'}
{#each value as item, index} {item} {/each}
{:else if Array.isArray(value) && typeof value?.[0] === 'number'}
{#each value as val}
{JSON.stringify(val, null, 2)}
{/each}
{:else if Array.isArray(value)}
{#each value as val}
{JSON.stringify(val, null, 2)}
{/each}
{:else if typeof value === 'string' && isEmail(value)} {value} {:else if typeof value === 'string' && isLink(value)} {value} {:else} {@const txt = value == undefined ? '' : typeof value != 'string' ? JSON.stringify(value) : value}
{txt.length > 100 ? txt.slice(0, 100) + '...' : txt}
{txt}
{/if} {/each} {/each} {/if} {/key}