From e2eb607b5abb80ae23c52aa27009d90a3dced018 Mon Sep 17 00:00:00 2001 From: Frederic Lamsens Date: Fri, 13 Jan 2023 14:33:23 +0100 Subject: [PATCH 1/4] added support for collapsible fields/groups --- src/formGenerator.vue | 18 +++++------------- src/formGroup.vue | 3 ++- src/formMixin.js | 40 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 45 insertions(+), 16 deletions(-) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index b58b35f3..0cc79b9f 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -5,10 +5,11 @@ div.vue-form-generator(v-if='schema != null') form-group(v-if='fieldVisible(field)', :vfg="vfg", :field="field", :errors="errors", :model="model", :options="options", @validated="onFieldValidated", @model-updated="onModelUpdated") template(v-for='group in groups') - fieldset(:is='tag', :class='getFieldRowClasses(group)') - legend(v-if='group.legend') {{ group.legend }} - template(v-for='field in group.fields') - form-group(v-if='fieldVisible(field)', :vfg="vfg", :field="field", :errors="errors", :model="model", :options="options", @validated="onFieldValidated", @model-updated="onModelUpdated") + fieldset(:is='tag', :class='getFieldRowClasses(group)', v-if="fieldVisible(group)" ) + legend(v-if='group.legend', @click="emitToggleCollapsed(group)") {{ group.legend }} + span(v-if='fieldCollapsible(group)', class="icon icon-toggle-collapsed") + template(v-for='field in group.fields' _v-if="!fieldCollapsed(group)") + form-group(v-if='fieldVisible(field)', :vfg="vfg", :field="field", :errors="errors", :model="model", :options="options", @validated="onFieldValidated", @model-updated="onModelUpdated", v-on="$listeners")