diff --git a/packages/datalib/src/PerspectiveDisplay.ts b/packages/datalib/src/PerspectiveDisplay.ts index 18c80ed5f..d2db82d2f 100644 --- a/packages/datalib/src/PerspectiveDisplay.ts +++ b/packages/datalib/src/PerspectiveDisplay.ts @@ -216,7 +216,12 @@ export class PerspectiveDisplay { for (let i = 0; i < collectedRow.columnIndexes.length; i++) { mainRow.rowData[collectedRow.columnIndexes[i]] = collectedRow.rowData[i]; } - mainRow.incompleteRowsIndicator = collectedRow.incompleteRowsIndicator; + if (collectedRow.incompleteRowsIndicator) { + mainRow.incompleteRowsIndicator = [ + ...(mainRow.incompleteRowsIndicator || []), + ...collectedRow.incompleteRowsIndicator, + ]; + } let rowCount = 1; for (const subrows of collectedRow.subRowCollections) { diff --git a/packages/web/src/datagrid/CellValue.svelte b/packages/web/src/datagrid/CellValue.svelte new file mode 100644 index 000000000..87414b00d --- /dev/null +++ b/packages/web/src/datagrid/CellValue.svelte @@ -0,0 +1,104 @@ + + + + +{#if rowData == null} + (No row) +{:else if value === null} + (NULL) +{:else if value === undefined} + (No field) +{:else if _.isDate(value)} + {value.toString()} +{:else if value === true} + true +{:else if value === false} + false +{:else if _.isNumber(value)} + {formatNumber(value)} +{:else if _.isString(value) && !jsonParsedValue} + {#if dateTimeRegex.test(value)} + + {formatDateTime(value)} + + {:else} + {highlightSpecialCharacters(value)} + {/if} +{:else if value?.type == 'Buffer' && _.isArray(value.data)} + {#if value.data.length <= 16} + {'0x' + arrayToHexString(value.data)} + {:else} + ({value.data.length} bytes) + {/if} +{:else if value.$oid} + ObjectId("{value.$oid}") +{:else if _.isPlainObject(value)} + (JSON) +{:else if _.isArray(value)} + JSON.stringify(x)).join('\n')}>[{value.length} items] +{:else if _.isPlainObject(jsonParsedValue)} + (JSON) +{:else if _.isArray(jsonParsedValue)} + JSON.stringify(x)).join('\n')} + >[{jsonParsedValue.length} items] +{:else} + {value.toString()} +{/if} + + diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index e342663ba..2a3ddee5b 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -1,38 +1,3 @@ - - + +