diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts index d3ba6cbe2..d3a44c5a5 100644 --- a/packages/tools/src/stringTools.ts +++ b/packages/tools/src/stringTools.ts @@ -1,3 +1,12 @@ -export function toHexString(byteArray) { +export function arrayToHexString(byteArray) { return byteArray.reduce((output, elem) => output + ('0' + elem.toString(16)).slice(-2), ''); } + +export function hexStringToArray(inputString) { + var hex = inputString.toString(); + var res = []; + for (var n = 0; n < hex.length; n += 2) { + res.push(parseInt(hex.substr(n, 2), 16)); + } + return res; +} diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index ee7bf99af..57fcc169f 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -37,6 +37,7 @@ import _ from 'lodash'; import ShowFormButton from '../formview/ShowFormButton.svelte'; import { getBoolSettingsValue } from '../settings/settingsTools'; + import { arrayToHexString } from 'dbgate-tools'; export let rowIndex; export let col; @@ -99,7 +100,11 @@ {highlightSpecialCharacters(value)} {/if} {:else if value.type == 'Buffer' && _.isArray(value.data)} - ({value.data.length} bytes) + {#if value.data.length <= 16} + {arrayToHexString(value.data)} + {:else} + ({value.data.length} bytes) + {/if} {:else if _.isPlainObject(value)} (JSON) {:else if _.isArray(value)} diff --git a/packages/web/src/datagrid/InplaceEditor.svelte b/packages/web/src/datagrid/InplaceEditor.svelte index 23fd2c2b6..4a1829a62 100644 --- a/packages/web/src/datagrid/InplaceEditor.svelte +++ b/packages/web/src/datagrid/InplaceEditor.svelte @@ -1,8 +1,19 @@