diff --git a/src/renderer/components/ft-checkbox-list/ft-checkbox-list.css b/src/renderer/components/FtCheckboxList/FtCheckboxList.css
similarity index 100%
rename from src/renderer/components/ft-checkbox-list/ft-checkbox-list.css
rename to src/renderer/components/FtCheckboxList/FtCheckboxList.css
diff --git a/src/renderer/components/FtCheckboxList/FtCheckboxList.vue b/src/renderer/components/FtCheckboxList/FtCheckboxList.vue
new file mode 100644
index 0000000000000..86947f2b9d930
--- /dev/null
+++ b/src/renderer/components/FtCheckboxList/FtCheckboxList.vue
@@ -0,0 +1,87 @@
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/components/ft-radio-button/ft-radio-button.css b/src/renderer/components/FtRadioButton/FtRadioButton.css
similarity index 100%
rename from src/renderer/components/ft-radio-button/ft-radio-button.css
rename to src/renderer/components/FtRadioButton/FtRadioButton.css
diff --git a/src/renderer/components/FtRadioButton/FtRadioButton.vue b/src/renderer/components/FtRadioButton/FtRadioButton.vue
new file mode 100644
index 0000000000000..b1a975d8f26d1
--- /dev/null
+++ b/src/renderer/components/FtRadioButton/FtRadioButton.vue
@@ -0,0 +1,75 @@
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/components/FtSearchFilters/FtSearchFilters.vue b/src/renderer/components/FtSearchFilters/FtSearchFilters.vue
index 5c6c207ce30d1..ff1e59ff23e59 100644
--- a/src/renderer/components/FtSearchFilters/FtSearchFilters.vue
+++ b/src/renderer/components/FtSearchFilters/FtSearchFilters.vue
@@ -13,49 +13,39 @@
@@ -71,14 +61,14 @@
diff --git a/src/renderer/components/ft-checkbox-list/ft-checkbox-list.js b/src/renderer/components/ft-checkbox-list/ft-checkbox-list.js
deleted file mode 100644
index b7ef0d151b48e..0000000000000
--- a/src/renderer/components/ft-checkbox-list/ft-checkbox-list.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { defineComponent } from 'vue'
-
-export default defineComponent({
- name: 'FtCheckboxList',
- props: {
- title: {
- type: String,
- required: true
- },
- labels: {
- type: Array,
- required: true
- },
- values: {
- type: Array,
- required: true
- },
- disabled: {
- type: Boolean,
- default: false
- },
- initialValues: {
- type: Array,
- required: true
- }
- },
- emits: ['change'],
- data: function () {
- return {
- id: '',
- selectedValues: []
- }
- },
- computed: {
- inputName: function () {
- const name = this.title.replace(' ', '')
- return name.toLowerCase() + this.id
- }
- },
- created: function () {
- this.id = this._uid
- this.selectedValues = this.initialValues
- },
- methods: {
- setSelectedValues: function(arr) {
- this.selectedValues = arr
- },
- change: function(event) {
- const targ = event.target
- if (targ.checked) {
- if (!this.selectedValues.includes(targ.value)) {
- this.selectedValues.push(targ.value)
- }
- } else {
- this.selectedValues = this.selectedValues.filter(e => e !== targ.value)
- }
-
- this.$emit('change', [...this.selectedValues])
- },
- }
-})
diff --git a/src/renderer/components/ft-checkbox-list/ft-checkbox-list.vue b/src/renderer/components/ft-checkbox-list/ft-checkbox-list.vue
deleted file mode 100644
index f020b35b64119..0000000000000
--- a/src/renderer/components/ft-checkbox-list/ft-checkbox-list.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- {{ title }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/renderer/components/ft-radio-button/ft-radio-button.js b/src/renderer/components/ft-radio-button/ft-radio-button.js
deleted file mode 100644
index ee4774474aa46..0000000000000
--- a/src/renderer/components/ft-radio-button/ft-radio-button.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import { defineComponent } from 'vue'
-
-export default defineComponent({
- name: 'FtRadioButton',
- props: {
- title: {
- type: String,
- required: true
- },
- labels: {
- type: Array,
- required: true
- },
- values: {
- type: Array,
- required: true
- },
- disabled: {
- type: Boolean,
- default: false
- },
- initialValueIndex: {
- type: Number,
- default: 0
- }
- },
- emits: ['change'],
- data: function () {
- return {
- id: '',
- selectedValue: ''
- }
- },
- computed: {
- inputName: function () {
- const name = this.title.replace(' ', '')
- return name.toLowerCase() + this.id
- }
- },
- created: function () {
- this.id = this._uid
- this.selectedValue = this.values[this.initialValueIndex]
- },
- methods: {
- updateSelectedValue: function (value) {
- this.selectedValue = value
- },
- change: function(value) {
- this.$emit('change', value)
- },
- }
-})
diff --git a/src/renderer/components/ft-radio-button/ft-radio-button.vue b/src/renderer/components/ft-radio-button/ft-radio-button.vue
deleted file mode 100644
index 46fcc3b1e7d5b..0000000000000
--- a/src/renderer/components/ft-radio-button/ft-radio-button.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
- {{ title }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/renderer/composables/use-id-polyfill.js b/src/renderer/composables/use-id-polyfill.js
new file mode 100644
index 0000000000000..cb0b21b2a5501
--- /dev/null
+++ b/src/renderer/composables/use-id-polyfill.js
@@ -0,0 +1,10 @@
+// based on https://github.com/vuejs/core/blob/main/packages/runtime-core/src/helpers/useId.ts
+
+let counter = 0
+
+/**
+ * Polyfill for Vue 3's useId composable in Vue 2
+ */
+export function useId() {
+ return `v-0-${counter++}`
+}