diff --git a/frontend/.eslint/legacy-files.json b/frontend/.eslint/legacy-files.json
index cefafafb56..14aeb411f4 100644
--- a/frontend/.eslint/legacy-files.json
+++ b/frontend/.eslint/legacy-files.json
@@ -96,12 +96,8 @@
"src/shared/banner/banner.vue",
"src/shared/empty-state/empty-state-cta.vue",
"src/shared/empty-state/empty-state.vue",
- "src/shared/form/array-input.vue",
"src/shared/form/autocomplete-many-input.vue",
"src/shared/form/autocomplete-one-input.vue",
- "src/shared/form/form-errors.vue",
- "src/shared/form/form-item.vue",
- "src/shared/form/inline-select-input.vue",
"src/shared/form/keywords-input.vue",
"src/shared/image/image.vue",
"src/shared/layout/page-wrapper.vue",
@@ -448,10 +444,6 @@
"src/shared/avatar/avatar-new-badge.vue",
"src/shared/components/globals.vue",
"src/shared/dialog/delete-confirm-dialog.vue",
- "src/shared/form/array-input.vue",
- "src/shared/form/form-errors.vue",
- "src/shared/form/form-item.vue",
- "src/shared/form/inline-select-input.vue",
"src/shared/image/image.vue",
"src/shared/loading/page-loader.vue",
"src/shared/message/toaster-container.vue",
diff --git a/frontend/src/shared/form/array-input.vue b/frontend/src/shared/form/array-input.vue
index 5f7af0df81..9778532ae5 100644
--- a/frontend/src/shared/form/array-input.vue
+++ b/frontend/src/shared/form/array-input.vue
@@ -25,36 +25,33 @@
-
-
-
diff --git a/frontend/src/shared/form/element-change.js b/frontend/src/shared/form/element-change.ts
similarity index 51%
rename from frontend/src/shared/form/element-change.js
rename to frontend/src/shared/form/element-change.ts
index 01e857d5db..789db7e5ee 100644
--- a/frontend/src/shared/form/element-change.js
+++ b/frontend/src/shared/form/element-change.ts
@@ -1,9 +1,15 @@
-import { ref, computed } from 'vue';
+import {
+ ref, computed, type Ref, type ComputedRef,
+} from 'vue';
-export default function elementChangeDetector(element) {
+export default function elementChangeDetector(element: Ref): {
+ temporaryElement: Ref;
+ elementSnapshot: () => void;
+ hasElementChanged: ComputedRef;
+} {
const temporaryElement = ref('');
- function elementSnapshot() {
+ function elementSnapshot(): void {
temporaryElement.value = JSON.stringify(element.value);
}
diff --git a/frontend/src/shared/form/form-change.js b/frontend/src/shared/form/form-change.js
deleted file mode 100644
index 54b7942b01..0000000000
--- a/frontend/src/shared/form/form-change.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ref, computed } from 'vue';
-
-export default function formChangeDetector(form) {
- const temporaryForm = ref('');
-
- function formSnapshot() {
- temporaryForm.value = JSON.stringify(form);
- }
-
- const hasFormChanged = computed(() => temporaryForm.value !== JSON.stringify(form), { deep: true });
-
- return {
- temporaryForm,
- formSnapshot,
- hasFormChanged,
- };
-}
diff --git a/frontend/src/shared/form/form-change.ts b/frontend/src/shared/form/form-change.ts
new file mode 100644
index 0000000000..8f99abf68f
--- /dev/null
+++ b/frontend/src/shared/form/form-change.ts
@@ -0,0 +1,23 @@
+import {
+ ref, computed, type Ref, type ComputedRef,
+} from 'vue';
+
+export default function formChangeDetector(form: object): {
+ temporaryForm: Ref;
+ formSnapshot: () => void;
+ hasFormChanged: ComputedRef;
+} {
+ const temporaryForm = ref('');
+
+ function formSnapshot(): void {
+ temporaryForm.value = JSON.stringify(form);
+ }
+
+ const hasFormChanged = computed(() => temporaryForm.value !== JSON.stringify(form));
+
+ return {
+ temporaryForm,
+ formSnapshot,
+ hasFormChanged,
+ };
+}
diff --git a/frontend/src/shared/form/form-errors.vue b/frontend/src/shared/form/form-errors.vue
index dbcdae91cd..eed6c01fc5 100644
--- a/frontend/src/shared/form/form-errors.vue
+++ b/frontend/src/shared/form/form-errors.vue
@@ -10,40 +10,29 @@
-
-
-
diff --git a/frontend/src/shared/form/form-item.vue b/frontend/src/shared/form/form-item.vue
index abd4ea84ef..a62b3e57bc 100644
--- a/frontend/src/shared/form/form-item.vue
+++ b/frontend/src/shared/form/form-item.vue
@@ -33,79 +33,54 @@
-
-
-
diff --git a/frontend/src/shared/form/inline-select-input.vue b/frontend/src/shared/form/inline-select-input.vue
index d00f1dd8d6..a31f92ddae 100644
--- a/frontend/src/shared/form/inline-select-input.vue
+++ b/frontend/src/shared/form/inline-select-input.vue
@@ -50,39 +50,38 @@
-
-
-