diff --git a/packages/filterparser/src/filterTool.ts b/packages/filterparser/src/filterTool.ts index efab31696..3455262df 100644 --- a/packages/filterparser/src/filterTool.ts +++ b/packages/filterparser/src/filterTool.ts @@ -21,6 +21,7 @@ export function getFilterValueExpression(value, dataType?) { if (value === false) return 'FALSE'; if (value.$oid) return `ObjectId("${value.$oid}")`; if (value.$bigint) return value.$bigint; + if (value.$decimal) return value.$decimal; if (value.type == 'Buffer' && Array.isArray(value.data)) { return '0x' + arrayToHexString(value.data); } diff --git a/packages/sqltree/src/evaluateCondition.ts b/packages/sqltree/src/evaluateCondition.ts index ec5bbd2f7..f15be8053 100644 --- a/packages/sqltree/src/evaluateCondition.ts +++ b/packages/sqltree/src/evaluateCondition.ts @@ -19,6 +19,7 @@ function isLike(value, test) { function extractRawValue(value) { if (value?.$bigint) return value.$bigint; if (value?.$oid) return value.$oid; + if (value?.$decimal) return value.$decimal; return value; } diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts index bd3ba983b..7f2cd87d8 100644 --- a/packages/tools/src/stringTools.ts +++ b/packages/tools/src/stringTools.ts @@ -472,6 +472,9 @@ export function shouldOpenMultilineDialog(value) { if (value?.$bigint) { return false; } + if (value?.$decimal) { + return false; + } if (_isPlainObject(value) || _isArray(value)) { return true; } diff --git a/packages/web/src/datagrid/gridutil.ts b/packages/web/src/datagrid/gridutil.ts index 6aa179509..224429767 100644 --- a/packages/web/src/datagrid/gridutil.ts +++ b/packages/web/src/datagrid/gridutil.ts @@ -73,6 +73,7 @@ export function countColumnSizes(grider: Grider, columns, containerWidth, displa if (_.isArray(value)) text = `[${value.length} items]`; else if (value?.$oid) text = `ObjectId("${value.$oid}")`; else if (value?.$bigint) text = value.$bigint; + else if (value?.$decimal) text = value.$decimal; else if (isJsonLikeLongString(value) && safeJsonParse(value)) text = '(JSON)'; const width = context.measureText(typeof text == 'string' ? text.slice(0, MAX_GRID_TEXT_LENGTH) : text).width + 8; // console.log('colName', colName, text, width);