diff --git a/package-lock.json b/package-lock.json
index dfdad196..ef8de288 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,6 +15,7 @@
"@mdi/font": "~6.1.95",
"@turf/helpers": "~6.5.0",
"@vscode/vscode-languagedetection": "~1.0.21",
+ "@vueuse/core": "~8.7.5",
"ace-builds": "~1.4.13",
"better-sqlite3": "~7.5.0",
"electron-log": "~4.4.1",
@@ -2872,6 +2873,11 @@
"dev": true,
"optional": true
},
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz",
+ "integrity": "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
+ },
"node_modules/@types/yargs": {
"version": "16.0.4",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
@@ -3205,6 +3211,63 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz",
"integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg=="
},
+ "node_modules/@vueuse/core": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.7.5.tgz",
+ "integrity": "sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==",
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.14",
+ "@vueuse/metadata": "8.7.5",
+ "@vueuse/shared": "8.7.5",
+ "vue-demi": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.1.0",
+ "vue": "^2.6.0 || ^3.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/core/node_modules/@vueuse/shared": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.7.5.tgz",
+ "integrity": "sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==",
+ "dependencies": {
+ "vue-demi": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.1.0",
+ "vue": "^2.6.0 || ^3.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.7.5.tgz",
+ "integrity": "sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -19790,6 +19853,11 @@
"dev": true,
"optional": true
},
+ "@types/web-bluetooth": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz",
+ "integrity": "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
+ },
"@types/yargs": {
"version": "16.0.4",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
@@ -20029,6 +20097,32 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz",
"integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg=="
},
+ "@vueuse/core": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.7.5.tgz",
+ "integrity": "sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==",
+ "requires": {
+ "@types/web-bluetooth": "^0.0.14",
+ "@vueuse/metadata": "8.7.5",
+ "@vueuse/shared": "8.7.5",
+ "vue-demi": "*"
+ },
+ "dependencies": {
+ "@vueuse/shared": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.7.5.tgz",
+ "integrity": "sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==",
+ "requires": {
+ "vue-demi": "*"
+ }
+ }
+ }
+ },
+ "@vueuse/metadata": {
+ "version": "8.7.5",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.7.5.tgz",
+ "integrity": "sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg=="
+ },
"@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
diff --git a/package.json b/package.json
index 2a440deb..974d6f36 100644
--- a/package.json
+++ b/package.json
@@ -120,6 +120,7 @@
"@mdi/font": "~6.1.95",
"@turf/helpers": "~6.5.0",
"@vscode/vscode-languagedetection": "~1.0.21",
+ "@vueuse/core": "~8.7.5",
"ace-builds": "~1.4.13",
"better-sqlite3": "~7.5.0",
"electron-log": "~4.4.1",
diff --git a/src/renderer/App.vue b/src/renderer/App.vue
index 93248659..b0202052 100644
--- a/src/renderer/App.vue
+++ b/src/renderer/App.vue
@@ -2,7 +2,7 @@
-
diff --git a/src/renderer/components/TheSettingBar.vue b/src/renderer/components/TheSettingBar.vue
index 4cb1db38..45885ef0 100644
--- a/src/renderer/components/TheSettingBar.vue
+++ b/src/renderer/components/TheSettingBar.vue
@@ -1,6 +1,6 @@
-
+
- {{ getConnectionName(element.uid) }}
+ {{ getConnectionName(element.uid) }}
@@ -41,7 +41,21 @@
@mouseover.self="tooltipPosition"
>
- {{ getConnectionName(connection.uid) }}
+ {{ getConnectionName(connection.uid) }}
+
+
+
+
+
+
+ -
+
+ {{ $t('message.allConnections') }}
- = ref(null);
const isContext: Ref = ref(false);
const isDragging: Ref = ref(false);
+const isScrollable: Ref = ref(false);
+const isScrolling = ref(useScroll(sidebarConnections)?.isScrolling);
const contextEvent: Ref = ref(null);
const contextConnection: Ref = ref(null);
+const sidebarConnectionsHeight = ref(useElementBounding(sidebarConnections)?.height);
const pinnedConnectionsArr = computed({
get: () => [...pinnedConnections.value].map(c => storedConnections.value.find(sc => sc.uid === c)).filter(Boolean),
@@ -133,11 +155,14 @@ const contextMenu = (event: MouseEvent, connection: ConnectionParams) => {
};
const tooltipPosition = (e: Event) => {
- const el = e.target ? e.target : e;
- const fromTop = isLinux
- ? window.scrollY + (el as HTMLElement).getBoundingClientRect().top + ((el as HTMLElement).offsetHeight / 4)
- : window.scrollY + (el as HTMLElement).getBoundingClientRect().top - ((el as HTMLElement).offsetHeight / 4);
- (el as HTMLElement).querySelector('.ex-tooltip-content').style.top = `${fromTop}px`;
+ const el = (e.target ? e.target : e) as unknown as HTMLElement;
+ const tooltip = el.querySelector('.ex-tooltip-content');
+ if (tooltip) {
+ const fromTop = isLinux
+ ? window.scrollY + el.getBoundingClientRect().top + (el.offsetHeight / 4)
+ : window.scrollY + el.getBoundingClientRect().top - (el.offsetHeight / 4);
+ tooltip.style.top = `${fromTop}px`;
+ }
};
const getStatusBadge = (uid: string) => {
@@ -166,6 +191,10 @@ const dragStop = (e: any) => {
}, 200);
};
+watch(sidebarConnectionsHeight, (value) => {
+ isScrollable.value = value < sidebarConnections.value.scrollHeight;
+});
+
watch(unpinnedConnectionsArr, (newVal, oldVal) => {
if (JSON.stringify(newVal) !== JSON.stringify(oldVal)) {
setTimeout(() => {
@@ -193,7 +222,7 @@ watch(unpinnedConnectionsArr, (newVal, oldVal) => {
height: calc(100vh - #{$excluding-size});
display: flex;
flex-direction: column;
- justify-content: space-between;
+ // justify-content: space-between;
align-items: center;
padding: 0;
z-index: 9;
@@ -201,7 +230,7 @@ watch(unpinnedConnectionsArr, (newVal, oldVal) => {
.settingbar-top-elements {
overflow-x: hidden;
overflow-y: overlay;
- max-height: calc((100vh - 3.5rem) - #{$excluding-size});
+ // max-height: calc((100vh - 3.5rem) - #{$excluding-size});
&::-webkit-scrollbar {
width: 3px;
@@ -209,8 +238,8 @@ watch(unpinnedConnectionsArr, (newVal, oldVal) => {
}
.settingbar-bottom-elements {
- padding-top: 0.5rem;
z-index: 1;
+ margin-top: auto;
}
.settingbar-elements {
@@ -273,6 +302,7 @@ watch(unpinnedConnectionsArr, (newVal, oldVal) => {
&::before {
font: normal normal normal 14px/1 "Material Design Icons";
content: "\F0403";
+ color: $body-font-color-dark;
transform: rotate(45deg);
opacity: .25;
bottom: -8px;
diff --git a/src/renderer/components/WorkspaceTabNewTable.vue b/src/renderer/components/WorkspaceTabNewTable.vue
index e22fb532..7ff53ca0 100644
--- a/src/renderer/components/WorkspaceTabNewTable.vue
+++ b/src/renderer/components/WorkspaceTabNewTable.vue
@@ -332,7 +332,10 @@ const addField = () => {
collation: defaultCollation.value,
autoIncrement: false,
onUpdate: '',
- comment: ''
+ comment: '',
+ alias: '',
+ tableAlias: '',
+ orgTable: ''
});
setTimeout(() => {
diff --git a/src/renderer/i18n/en-US.ts b/src/renderer/i18n/en-US.ts
index 77b93013..b5ca1708 100644
--- a/src/renderer/i18n/en-US.ts
+++ b/src/renderer/i18n/en-US.ts
@@ -293,7 +293,8 @@ module.exports = {
untrustedConnection: 'Untrusted connection',
missingOrIncompleteTranslation: 'Missing or incomplete translation?',
findOutHowToContribute: 'Find out how to contribute',
- disableFKChecks: 'Disable foreigh key checks'
+ disableFKChecks: 'Disable foreigh key checks',
+ allConnections: 'All connections'
},
faker: {
address: 'Address',
diff --git a/src/renderer/scss/themes/dark-theme.scss b/src/renderer/scss/themes/dark-theme.scss
index ee384d18..83551ddb 100644
--- a/src/renderer/scss/themes/dark-theme.scss
+++ b/src/renderer/scss/themes/dark-theme.scss
@@ -400,9 +400,7 @@
}
.settingbar-bottom-elements {
- padding-top: 0.5rem;
background: $bg-color-light-dark;
- z-index: 1;
}
.settingbar-elements {
diff --git a/src/renderer/scss/themes/light-theme.scss b/src/renderer/scss/themes/light-theme.scss
index 6bec75e0..89c29573 100644
--- a/src/renderer/scss/themes/light-theme.scss
+++ b/src/renderer/scss/themes/light-theme.scss
@@ -169,9 +169,7 @@
}
.settingbar-bottom-elements {
- padding-top: 0.5rem;
background: $bg-color-light-dark;
- z-index: 1;
}
.settingbar-elements {
diff --git a/tsconfig.json b/tsconfig.json
index 6b3be750..e0b74f67 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,6 +5,7 @@
"./src/renderer/**/*",
"./src/common/interfaces/antares.ts"
],
+ "exclude": ["./src/renderer/libs/ext-language_tools.js"],
"compilerOptions": {
"baseUrl": "./",
"target": "es2021",