diff --git a/components.d.ts b/components.d.ts
index a6c01dee7c..18415dab4b 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -14,6 +14,7 @@ declare module 'vue' {
ActionCommandPromptDialog: typeof import('./src/components/common/ActionCommandPromptDialog.vue')['default']
AddInstanceDialog: typeof import('./src/components/common/AddInstanceDialog.vue')['default']
AppAnnouncementDismissMenu: typeof import('./src/components/layout/AppAnnouncementDismissMenu.vue')['default']
+ AppAutoScrollContainer: typeof import('./src/components/ui/AppAutoScrollContainer.vue')['default']
AppBar: typeof import('./src/components/layout/AppBar.vue')['default']
AppBtn: typeof import('./src/components/ui/AppBtn.vue')['default']
AppBtnCollapse: typeof import('./src/components/ui/AppBtnCollapse.vue')['default']
diff --git a/package-lock.json b/package-lock.json
index a2fb8ca84c..45804e5c7c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,7 +44,6 @@
"vue-meta": "^2.4.0",
"vue-property-decorator": "^9.1.2",
"vue-router": "^3.6.5",
- "vue-virtual-scroller": "^1.1.2",
"vue2-touch-events": "^3.2.3",
"vuetify": "^2.7.2",
"vuetify-confirm": "^2.0.6",
@@ -14353,12 +14352,6 @@
"node": ">=v12.22.7"
}
},
- "node_modules/scrollparent": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz",
- "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==",
- "license": "ISC"
- },
"node_modules/scslre": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz",
@@ -16836,12 +16829,6 @@
"deepmerge": "^4.2.2"
}
},
- "node_modules/vue-observe-visibility": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz",
- "integrity": "sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q==",
- "license": "MIT"
- },
"node_modules/vue-property-decorator": {
"version": "9.1.2",
"resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz",
@@ -16852,15 +16839,6 @@
"vue-class-component": "*"
}
},
- "node_modules/vue-resize": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz",
- "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==",
- "license": "MIT",
- "peerDependencies": {
- "vue": "^2.3.0"
- }
- },
"node_modules/vue-router": {
"version": "3.6.5",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz",
@@ -16895,20 +16873,6 @@
"typescript": ">=5.0.0"
}
},
- "node_modules/vue-virtual-scroller": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vue-virtual-scroller/-/vue-virtual-scroller-1.1.2.tgz",
- "integrity": "sha512-SkUyc7QHCJFB5h1Fya7LxVizlVzOZZuFVipBGHYoTK8dwLs08bIz/tclvRApYhksaJIm/nn51inzO2UjpGJPMQ==",
- "license": "MIT",
- "dependencies": {
- "scrollparent": "^2.0.1",
- "vue-observe-visibility": "^0.4.4",
- "vue-resize": "^0.4.5"
- },
- "peerDependencies": {
- "vue": "^2.6.11"
- }
- },
"node_modules/vue/node_modules/@vue/compiler-sfc": {
"version": "2.7.16",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
diff --git a/package.json b/package.json
index 5297c2dc2c..545e0f7263 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,6 @@
"vue-meta": "^2.4.0",
"vue-property-decorator": "^9.1.2",
"vue-router": "^3.6.5",
- "vue-virtual-scroller": "^1.1.2",
"vue2-touch-events": "^3.2.3",
"vuetify": "^2.7.2",
"vuetify-confirm": "^2.0.6",
diff --git a/src/components/common/UpdatingDialog.vue b/src/components/common/UpdatingDialog.vue
index a5939be7cf..cdeeae55f2 100644
--- a/src/components/common/UpdatingDialog.vue
+++ b/src/components/common/UpdatingDialog.vue
@@ -11,7 +11,6 @@
diff --git a/src/components/layout/AppObservedColumn.vue b/src/components/layout/AppObservedColumn.vue
index 28f12c395c..2bd7fab557 100644
--- a/src/components/layout/AppObservedColumn.vue
+++ b/src/components/layout/AppObservedColumn.vue
@@ -37,10 +37,8 @@ export default class AppObservedColumn extends Vue {
}
beforeDestroy () {
- if (this.observer) {
- this.observer.disconnect()
- this.observer = null
- }
+ this.observer?.disconnect()
+ this.observer = null
}
}
diff --git a/src/components/ui/AppAutoScrollContainer.vue b/src/components/ui/AppAutoScrollContainer.vue
new file mode 100644
index 0000000000..7678a1990a
--- /dev/null
+++ b/src/components/ui/AppAutoScrollContainer.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/widgets/console/Console.vue b/src/components/widgets/console/Console.vue
index c0d6dac893..47e8cfe103 100644
--- a/src/components/widgets/console/Console.vue
+++ b/src/components/widgets/console/Console.vue
@@ -8,40 +8,26 @@
@send="sendCommand"
/>
-
-
-
-
-
-
-
+
+