• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

humanspeak / svelte-headless-table / 12913869200

22 Jan 2025 05:36PM UTC coverage: 34.206% (-25.6%) from 59.766%
12913869200

push

github

web-flow
Merge pull request #9 from humanspeak/feature-version

Feature: 5.x

404 of 538 branches covered (75.09%)

Branch coverage included in aggregate %.

2129 of 3542 new or added lines in 41 files covered. (60.11%)

1 existing line in 1 file now uncovered.

2639 of 8358 relevant lines covered (31.57%)

17.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/lib/plugins/addColumnOrder.ts
NEW
1
import type { DeriveFlatColumnsFn, NewTablePropSet, TablePlugin } from '../types/TablePlugin.js'
×
NEW
2
import { derived, writable, type Writable } from 'svelte/store'
×
3

×
4
export interface ColumnOrderConfig {
×
NEW
5
    initialColumnIdOrder?: string[]
×
NEW
6
    hideUnspecifiedColumns?: boolean
×
7
}
×
8

×
9
export interface ColumnOrderState {
×
NEW
10
    columnIdOrder: Writable<string[]>
×
11
}
×
12

×
13
export const addColumnOrder =
×
NEW
14
    <Item>({
×
NEW
15
        initialColumnIdOrder = [],
×
NEW
16
        hideUnspecifiedColumns = false
×
NEW
17
    }: ColumnOrderConfig = {}): TablePlugin<
×
NEW
18
        Item,
×
NEW
19
        ColumnOrderState,
×
NEW
20
        Record<string, never>,
×
NEW
21
        NewTablePropSet<never>
×
NEW
22
    > =>
×
NEW
23
    () => {
×
NEW
24
        const columnIdOrder = writable<string[]>(initialColumnIdOrder)
×
25

×
NEW
26
        const pluginState: ColumnOrderState = { columnIdOrder }
×
27

×
NEW
28
        const deriveFlatColumns: DeriveFlatColumnsFn<Item> = (flatColumns) => {
×
NEW
29
            return derived([flatColumns, columnIdOrder], ([$flatColumns, $columnIdOrder]) => {
×
NEW
30
                const _flatColumns = [...$flatColumns]
×
NEW
31
                const orderedFlatColumns: typeof $flatColumns = []
×
NEW
32
                $columnIdOrder.forEach((id) => {
×
NEW
33
                    const colIdx = _flatColumns.findIndex((c) => c.id === id)
×
NEW
34
                    orderedFlatColumns.push(..._flatColumns.splice(colIdx, 1))
×
NEW
35
                })
×
NEW
36
                if (!hideUnspecifiedColumns) {
×
NEW
37
                    // Push the remaining unspecified columns.
×
NEW
38
                    orderedFlatColumns.push(..._flatColumns)
×
NEW
39
                }
×
NEW
40
                return orderedFlatColumns
×
NEW
41
            })
×
NEW
42
        }
×
43

×
NEW
44
        return {
×
NEW
45
            pluginState,
×
NEW
46
            deriveFlatColumns
×
NEW
47
        }
×
NEW
48
    }
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc