From 790eaf4f44bc5d7ab2fbfdf37b1c67fc53843266 Mon Sep 17 00:00:00 2001 From: Duncan McClean Date: Wed, 1 Jul 2026 17:05:24 +0100 Subject: [PATCH] bring over from the other branch --- resources/js/components/forms/FieldNumber.vue | 13 +++ .../components/forms/FieldNumberingToggle.vue | 22 +++++ .../components/forms/builder/ImportField.vue | 19 +++- .../forms/builder/RegularFormField.vue | 14 ++- .../js/components/forms/logic/FieldLogic.vue | 13 +++ .../components/forms/logic/FieldLogicRule.vue | 2 + .../forms/logic/LogicRulePicker.vue | 2 +- .../js/composables/forms/field-numbering.js | 92 +++++++++++++++++++ resources/js/pages/forms/Builder.vue | 14 ++- resources/js/pages/forms/Logic.vue | 9 ++ 10 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 resources/js/components/forms/FieldNumber.vue create mode 100644 resources/js/components/forms/FieldNumberingToggle.vue create mode 100644 resources/js/composables/forms/field-numbering.js diff --git a/resources/js/components/forms/FieldNumber.vue b/resources/js/components/forms/FieldNumber.vue new file mode 100644 index 00000000000..b976cfe56f3 --- /dev/null +++ b/resources/js/components/forms/FieldNumber.vue @@ -0,0 +1,13 @@ + + + diff --git a/resources/js/components/forms/FieldNumberingToggle.vue b/resources/js/components/forms/FieldNumberingToggle.vue new file mode 100644 index 00000000000..641a152851f --- /dev/null +++ b/resources/js/components/forms/FieldNumberingToggle.vue @@ -0,0 +1,22 @@ + + + diff --git a/resources/js/components/forms/builder/ImportField.vue b/resources/js/components/forms/builder/ImportField.vue index b6da8fd7898..a6ca9a2dfd7 100644 --- a/resources/js/components/forms/builder/ImportField.vue +++ b/resources/js/components/forms/builder/ImportField.vue @@ -2,6 +2,8 @@ import { Button, Description, Field, Icon, Label } from '@ui'; import { computed } from 'vue'; import { usePage } from '@inertiajs/vue3'; +import FieldNumber from '@/components/forms/FieldNumber.vue'; +import { fieldNumberFromMap } from '@/composables/forms/field-numbering'; import { injectBuilderContext, InspectorType } from '@/pages/forms/Builder.vue'; import { categoryColorClasses } from './categories'; import { __ } from '@/bootstrap/globals'; @@ -16,7 +18,21 @@ defineEmits<{ (e: 'remove'): void; }>(); -const { errors, inspect, inspecting, inspectorType } = injectBuilderContext(); +const { errors, fieldNumbers, inspect, inspecting, inspectorType, showFieldNumbers } = injectBuilderContext(); + +const fieldsetFieldNumber = (fieldsetField) => { + if (! showFieldNumbers?.value) { + return null; + } + + const prefix = props.field.prefix || ''; + + return fieldNumberFromMap( + fieldNumbers?.value, + `${prefix}${fieldsetField.handle}`, + `${props.field._id}:${fieldsetField.handle}`, + ); +}; const fieldsets = Object.values(usePage().props.fieldsets); @@ -77,6 +93,7 @@ const errorMessage = computed(() => {