From c3253f3204b697d88d49f4a52b35cbac8d39ee85 Mon Sep 17 00:00:00 2001 From: Sergey Savelyev Date: Sun, 28 Dec 2025 11:48:11 -0500 Subject: [PATCH] allow panels to hold commands --- frontend/src/components/CommandInput.vue | 40 +++++ frontend/src/components/CommandParameter.vue | 30 +--- .../CommandParameterDataConfigurator.vue | 29 ++++ .../CommandParameterListConfigurator.vue | 99 +++++++++++ frontend/src/components/CommandSender.vue | 3 +- frontend/src/components/DynamicComponent.vue | 154 ++++++++++++++++-- frontend/src/components/TelemetryLine.vue | 25 ++- frontend/src/composables/command.ts | 5 +- frontend/src/composables/dynamic.ts | 37 +++++ frontend/src/composables/telemetry.ts | 3 +- frontend/src/views/PanelView.vue | 11 +- 11 files changed, 385 insertions(+), 51 deletions(-) create mode 100644 frontend/src/components/CommandInput.vue create mode 100644 frontend/src/components/CommandParameterDataConfigurator.vue create mode 100644 frontend/src/components/CommandParameterListConfigurator.vue diff --git a/frontend/src/components/CommandInput.vue b/frontend/src/components/CommandInput.vue new file mode 100644 index 0000000..32b8176 --- /dev/null +++ b/frontend/src/components/CommandInput.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/frontend/src/components/CommandParameter.vue b/frontend/src/components/CommandParameter.vue index e1e5490..07d6b3c 100644 --- a/frontend/src/components/CommandParameter.vue +++ b/frontend/src/components/CommandParameter.vue @@ -1,36 +1,22 @@ diff --git a/frontend/src/components/CommandParameterDataConfigurator.vue b/frontend/src/components/CommandParameterDataConfigurator.vue new file mode 100644 index 0000000..94af44c --- /dev/null +++ b/frontend/src/components/CommandParameterDataConfigurator.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/frontend/src/components/CommandParameterListConfigurator.vue b/frontend/src/components/CommandParameterListConfigurator.vue new file mode 100644 index 0000000..1df1e6a --- /dev/null +++ b/frontend/src/components/CommandParameterListConfigurator.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/frontend/src/components/CommandSender.vue b/frontend/src/components/CommandSender.vue index 37d1315..ef301e2 100644 --- a/frontend/src/components/CommandSender.vue +++ b/frontend/src/components/CommandSender.vue @@ -3,12 +3,13 @@ import type { CommandDefinition } from '@/composables/command.ts'; import { ref } from 'vue'; import CommandParameter from '@/components/CommandParameter.vue'; import FlexDivider from '@/components/FlexDivider.vue'; +import type { DynamicDataType } from '@/composables/dynamic.ts'; const props = defineProps<{ command: CommandDefinition | null; }>(); -const parameters = ref({}); // eslint-disable-line @typescript-eslint/no-explicit-any +const parameters = ref<{ [key: string]: DynamicDataType }>({}); const busy = ref(false); const result = ref(''); diff --git a/frontend/src/components/DynamicComponent.vue b/frontend/src/components/DynamicComponent.vue index 14d947a..e8d30ab 100644 --- a/frontend/src/components/DynamicComponent.vue +++ b/frontend/src/components/DynamicComponent.vue @@ -1,6 +1,12 @@