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

humanspeak / svelte-headless-table / 12913219917

22 Jan 2025 04:59PM UTC coverage: 59.766%. First build
12913219917

push

github

jaysin586
Rolling it way back

404 of 483 branches covered (83.64%)

Branch coverage included in aggregate %.

2232 of 3955 new or added lines in 55 files covered. (56.43%)

2616 of 4570 relevant lines covered (57.24%)

34.43 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