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

glideapps / glide-data-grid / 7433393025

06 Jan 2024 07:00PM UTC coverage: 90.296%. Remained the same
7433393025

push

github

jassmith
5.99.9-charlie4

2628 of 3276 branches covered (0.0%)

16135 of 17869 relevant lines covered (90.3%)

2998.38 hits per line

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

58.18
/packages/core/src/cells/number-cell.tsx
1
/* eslint-disable react/display-name */
1✔
2
import * as React from "react";
1✔
3
import { drawTextCell, prepTextCell } from "../internal/data-grid/data-grid-lib.js";
1✔
4
import { GridCellKind, type NumberCell } from "../internal/data-grid/data-grid-types.js";
1✔
5
import type { InternalCellRenderer } from "./cell-types.js";
1✔
6

1✔
7
const NumberOverlayEditor = React.lazy(
1✔
8
    async () => await import("../internal/data-grid-overlay-editor/private/number-overlay-editor.js")
1✔
9
);
1✔
10

1✔
11
export const numberCellRenderer: InternalCellRenderer<NumberCell> = {
1✔
12
    getAccessibilityString: c => c.data?.toString() ?? "",
1!
13
    kind: GridCellKind.Number,
1✔
14
    needsHover: false,
1✔
15
    needsHoverPosition: false,
1✔
16
    useLabel: true,
1✔
17
    drawPrep: prepTextCell,
1✔
18
    draw: a => drawTextCell(a, a.cell.displayData, a.cell.contentAlign),
1✔
19
    measure: (ctx, cell) => ctx.measureText(cell.displayData).width + 16,
1✔
20
    onDelete: c => ({
1✔
21
        ...c,
11✔
22
        data: undefined,
11✔
23
    }),
11✔
24
    provideEditor: () => p => {
1✔
25
        const { isHighlighted, onChange, value, validatedSelection } = p;
×
26
        return (
×
27
            <React.Suspense fallback={null}>
×
28
                <NumberOverlayEditor
×
29
                    highlight={isHighlighted}
×
30
                    disabled={value.readonly === true}
×
31
                    value={value.data}
×
32
                    fixedDecimals={value.fixedDecimals}
×
33
                    allowNegative={value.allowNegative}
×
34
                    thousandSeparator={value.thousandSeparator}
×
35
                    decimalSeparator={value.decimalSeparator}
×
36
                    validatedSelection={validatedSelection}
×
37
                    onChange={x =>
×
38
                        onChange({
×
39
                            ...value,
×
40
                            data: Number.isNaN(x.floatValue ?? 0) ? 0 : x.floatValue,
×
41
                        })
×
42
                    }
×
43
                />
×
44
            </React.Suspense>
×
45
        );
×
46
    },
×
47
    onPaste: (toPaste, cell, details) => {
1✔
48
        const newNumber =
14✔
49
            typeof details.rawValue === "number"
14!
50
                ? details.rawValue
×
51
                : Number.parseFloat(typeof details.rawValue === "string" ? details.rawValue : toPaste);
14!
52
        if (Number.isNaN(newNumber) || cell.data === newNumber) return undefined;
14!
53
        return { ...cell, data: newNumber, displayData: details.formattedString ?? cell.displayData };
14✔
54
    },
14✔
55
};
1✔
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

© 2025 Coveralls, Inc