fix(dees-table): Improve Lucene range comparisons, pin monaco-editor to 0.52.2, and add local dev metadata

This commit is contained in:
2025-09-16 16:29:52 +00:00
parent f790ca38d0
commit 18297d54c4
9 changed files with 60 additions and 19 deletions

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-catalog',
version: '1.11.5',
version: '1.11.6',
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
}

View File

@@ -99,12 +99,24 @@ export function compileLucenePredicate<T>(
const a = coerce(val);
const lo = coerce(lower);
const up = coerce(upper);
// if types differ, compare string forms
if (a.t !== lo.t || a.t !== up.t) {
const as = String(val ?? '').toLowerCase();
return cmp(as, lower) >= 0 && cmp(as, upper) <= 0;
// All strings: lexical compare
if (a.t === 's' && lo.t === 's' && up.t === 's') {
const av = a.v as string;
return cmp(av, lo.v as string) >= 0 && cmp(av, up.v as string) <= 0;
}
return a.v >= (lo.v as number) && a.v <= (up.v as number);
// All numbers
if (a.t === 'n' && lo.t === 'n' && up.t === 'n') {
const av = a.v as number;
return av >= (lo.v as number) && av <= (up.v as number);
}
// All dates (as numbers)
if (a.t === 'd' && lo.t === 'd' && up.t === 'd') {
const av = a.v as number;
return av >= (lo.v as number) && av <= (up.v as number);
}
// Fallback: compare string forms
const as = String(val ?? '').toLowerCase();
return cmp(as, lower) >= 0 && cmp(as, upper) <= 0;
};
return (row: T) => {
for (const clause of ast.clauses) {