diff --git a/packages/web/public/theme-light.css b/packages/web/public/theme-light.css index 07aa65596..5da2d1724 100644 --- a/packages/web/public/theme-light.css +++ b/packages/web/public/theme-light.css @@ -3,11 +3,21 @@ --theme-font-2: #4d4d4d; --theme-font-3: #808080; --theme-font-4: #b3b3b3; + --theme-font-hover: #061178; /* blue-9 */ + --theme-font-link: #10239e; /* blue-8 */ + --theme-font-alt: #135200; /* green-9 */ + --theme-bg-0: #fff; --theme-bg-1: #ededed; --theme-bg-2: #d4d4d4; --theme-bg-3: #bbbbbb; --theme-bg-4: #a2a2a2; + --theme-bg-alt: #f0f5ff; + + --theme-bg-gold: #fff1b8; /* gold-2 */ + --theme-bg-orange: #ffe7ba; /*orange-2 */ + --theme-bg-green: #d9f7be; /* green-2 */ + --theme-bg-volcano: #ffd8bf; /* volcano-2 */ --theme-font-inv-1: #FFFFFF; --theme-font-inv-2: #b3b3b3; @@ -22,13 +32,14 @@ --theme-border: #ccc; --theme-bg-hover: #bae7ff; + --theme-bg-selected: #91d5ff; /* blue-3 */ --theme-bg-statusbar-inv: blue; - --theme-icon-blue: #096dd9; - --theme-icon-green: #237804; - --theme-icon-red: #cf1322; - --theme-icon-gold: #d48806; - --theme-icon-yellow: #d4b106; - --theme-icon-magenta: #c41d7f; + --theme-icon-blue: #096dd9; /* blue-7 */ + --theme-icon-green: #237804; /* green-7 */ + --theme-icon-red: #cf1322; /* red-7 */ + --theme-icon-gold: #d48806; /* gold-7 */ + --theme-icon-yellow: #d4b106; /* yellow-7 */ + --theme-icon-magenta: #c41d7f; /* magenta-7 */ } diff --git a/packages/web/src/datagrid/ColumnHeaderControl.svelte b/packages/web/src/datagrid/ColumnHeaderControl.svelte index 69af6b3c3..c30638e26 100644 --- a/packages/web/src/datagrid/ColumnHeaderControl.svelte +++ b/packages/web/src/datagrid/ColumnHeaderControl.svelte @@ -34,7 +34,7 @@ z-index: 1; } .grouping { - color: green; + color: var(--theme-font-alt); white-space: nowrap; } diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte new file mode 100644 index 000000000..403d9cd7b --- /dev/null +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -0,0 +1,127 @@ + + + + + + {#if value == null} + (NULL) + {:else if _.isDate(value)} + {moment(value).format('YYYY-MM-DD HH:mm:ss')} + {:else if value === true} + 1 + {:else if value === false} + 0 + {:else if _.isNumber(value)} + {#if value >= 10000 || value <= -10000} + {value.toLocaleString()} + {:else} + {value.toString()} + {/if} + {:else if _.isString(value)} + {#if dateTimeRegex.test(value)} + {moment(value).format('YYYY-MM-DD HH:mm:ss')} + {:else} + {highlightSpecialCharacters(value)} + {/if} + {:else if _.isPlainObject(value)} + {#if _.isArray(value.data)} + {#if value.data.length == 1 && isTypeLogical(col.dataType)} + {value.data[0]} + {:else} + ({value.data.length} bytes) + {/if} + {:else} + (RAW) + {/if} + {:else} + {value.toString()} + {/if} + + {#if hintFieldsAllowed && hintFieldsAllowed.includes(col.uniqueName)} + {rowData[col.hintColumnName]} + {/if} + + + diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index 99526f444..f600756b0 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -2,6 +2,7 @@ import { GridDisplay } from 'dbgate-datalib'; import _ from 'lodash'; import ColumnHeaderControl from './ColumnHeaderControl.svelte'; + import DataGridRow from './DataGridRow.svelte'; import { countColumnSizes, countVisibleRealColumns } from './gridutil'; export let loadNextData = undefined; @@ -55,13 +56,22 @@ {#each visibleRealColumns as col (col.uniqueName)} - + {/each} - + + {#each _.range(firstVisibleRowScrollIndex, firstVisibleRowScrollIndex + visibleRowCountUpperBound) as rowIndex (rowIndex)} + + {/each} + @@ -84,11 +94,11 @@ outline: none; } .header-cell { - border: 1px solid var(---theme-border); + border: 1px solid var(--theme-border); text-align: left; padding: 0; margin: 0; - background-color: var(---theme-bg-1); + background-color: var(--theme-bg-2); overflow: hidden; } .filter-cell { @@ -104,7 +114,7 @@ } .row-count-label { position: absolute; - background-color: var(---theme-bg-2); + background-color: var(--theme-bg-2); right: 40px; bottom: 20px; } diff --git a/packages/web/src/datagrid/DataGridRow.svelte b/packages/web/src/datagrid/DataGridRow.svelte new file mode 100644 index 000000000..acc14aa9d --- /dev/null +++ b/packages/web/src/datagrid/DataGridRow.svelte @@ -0,0 +1,40 @@ + + + + + {#each visibleRealColumns as col (col.uniqueName)} + + {/each} + + + diff --git a/packages/web/src/datagrid/RowHeaderCell.svelte b/packages/web/src/datagrid/RowHeaderCell.svelte new file mode 100644 index 000000000..f423bf088 --- /dev/null +++ b/packages/web/src/datagrid/RowHeaderCell.svelte @@ -0,0 +1,18 @@ + + + + {rowIndex + 1} + + +