From 383f043be83c5f90df2716d5938f93fbaabf4a42 Mon Sep 17 00:00:00 2001 From: Alex Spencer <52186778+alexjonspencer1@users.noreply.github.com> Date: Fri, 11 Apr 2025 11:58:34 -0600 Subject: [PATCH] TableNG: Use numeric sorting for string fields (not strictly lexicographic) (#103794) --- packages/grafana-ui/src/components/Table/TableNG/utils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/grafana-ui/src/components/Table/TableNG/utils.ts b/packages/grafana-ui/src/components/Table/TableNG/utils.ts index a80a758813a..a9c5908dda4 100644 --- a/packages/grafana-ui/src/components/Table/TableNG/utils.ts +++ b/packages/grafana-ui/src/components/Table/TableNG/utils.ts @@ -515,7 +515,9 @@ export interface MapFrameToGridOptions extends TableNGProps { } /* ----------------------------- Data grid comparator ---------------------------- */ -const compare = new Intl.Collator('en', { sensitivity: 'base' }).compare; +// The numeric: true option is used to sort numbers as strings correctly. It recognizes numeric sequences +// within strings and sorts numerically instead of lexicographically. +const compare = new Intl.Collator('en', { sensitivity: 'base', numeric: true }).compare; export function getComparator(sortColumnType: FieldType): Comparator { switch (sortColumnType) { case FieldType.time: