@toolpad/utils
Version:
Shared utilities used by Toolpad packages.
1 lines • 1.04 kB
Source Map (JSON)
{"version":3,"sources":["../src/comparators.ts"],"sourcesContent":["export interface Comparator<T> {\n (a: T, b: T): number;\n}\n\nexport function defaultComparator<T>(a: T, b: T): number {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\n\nexport function alphabeticComparator(a: string, b: string): number {\n const { compare } = new Intl.Collator();\n return compare(a, b);\n}\n\nexport function createPropComparator<T, K extends keyof T>(\n propName: K,\n comparator: Comparator<T[K]> = defaultComparator,\n): Comparator<T> {\n return (a, b) => comparator(a[propName], b[propName]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,kBAAqB,GAAM,GAAc;AACvD,MAAI,IAAI,GAAG;AACT,WAAO;AAAA,EACT;AACA,MAAI,IAAI,GAAG;AACT,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,qBAAqB,GAAW,GAAmB;AACjE,QAAM,EAAE,QAAQ,IAAI,IAAI,KAAK,SAAS;AACtC,SAAO,QAAQ,GAAG,CAAC;AACrB;AAEO,SAAS,qBACd,UACA,aAA+B,mBAChB;AACf,SAAO,CAAC,GAAG,MAAM,WAAW,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC;AACtD;","names":[]}