11<template >
22 <div class =" vue-form-generator"
33 v-if =' schema != null' >
4- <form-group
4+ <vfg- form-group
55 :tag =" tag"
66 :fields =" fields"
77 :model =" model"
88 :options =" options"
99 :errors =" errors"
1010 :event-bus =" eventBus" >
11- <template slot="group-legend"
12- slot-scope="{ group, groupLegend }" >
11+ <template #field-invisible =" { field } " >
12+ <slot name =" field-invisible"
13+ :field =" field"
14+ />
15+ </template >
16+ <template #group-legend =" { group , groupLegend } " >
1317 <slot name =" group-legend"
1418 :group =" group"
1519 :group-legend =" groupLegend" >
1822 </legend >
1923 </slot >
2024 </template >
21- <template slot="group-help"
22- slot-scope="{ group }">
25+ <template #group-help =" { group } " >
2326 <slot
2427 name =" group-help"
2528 :group =" group" >
3134 </span >
3235 </slot >
3336 </template >
34- <template slot="element"
35- slot-scope="slotProps">
36- <form-element
37+ <template #element =" slotProps " >
38+ <vfg-form-element
3739 :field =" slotProps.field"
3840 :model =" slotProps.model"
3941 :options =" slotProps.options"
4042 :errors =" slotProps.errors"
4143 :event-bus =" eventBus" >
42-
43- <template slot="label"
44- slot-scope="{ field, getValueFromOption }">
44+ <template #label =" { field , getValueFromOption } " >
4545 <slot
4646 name =" label"
4747 :field =" field"
4848 :getValueFromOption =" getValueFromOption" >
4949 <span v-html =" field.label" ></span >
5050 </slot >
5151 </template >
52+ <template #wrapper-hook =" { field , getValueFromOption } " >
53+ <slot
54+ name =" wrapper-hook"
55+ :field =" field"
56+ :getValueFromOption =" getValueFromOption" >
57+ </slot >
58+ </template >
5259
53- <template slot="help"
54- slot-scope="{ field, getValueFromOption }">
60+ <template #help =" { field , getValueFromOption } " >
5561 <slot
5662 name =" help"
5763 :field =" field"
6470 </span >
6571 </slot >
6672 </template >
67- <template slot="hint"
68- slot-scope="{ field, getValueFromOption }">
73+ <template #field-not-found =" { field , getValueFromOption } " >
74+ <slot
75+ name =" field-not-found"
76+ :field =" field"
77+ :getValueFromOption =" getValueFromOption"
78+ />
79+ </template >
80+ <template #hint =" { field , getValueFromOption } " >
6981 <slot
7082 name =" hint"
7183 :field =" field"
7587 </slot >
7688 </template >
7789
78- <template slot="errors"
79- slot-scope="{ childErrors, field, getValueFromOption }">
90+ <template #errors =" { childErrors , field , getValueFromOption } " >
8091 <slot
8192 name =" errors"
8293 :errors =" childErrors"
90101 </div >
91102 </slot >
92103 </template >
93- </form-element >
104+ </vfg- form-element >
94105 </template >
95- </form-group >
106+ </vfg- form-group >
96107 </div >
97108</template >
98109
99110<script >
100- import Vue from " vue" ;
101111import formGroup from " ./formGroup.vue" ;
102112import formElement from " ./formElement.vue" ;
113+ import EventBus from ' ./EventBus' ;
103114
104115export default {
105116 name: " form-generator" ,
106- components: { formGroup, formElement },
117+ components: { ' vfg-form-group ' : formGroup, ' vfg-form-element ' : formElement },
107118 props: {
108119 schema: {
109120 type: Object ,
@@ -147,9 +158,8 @@ export default {
147158 },
148159
149160 data () {
150- const eventBus = new Vue ();
151161 return {
152- eventBus,
162+ eventBus: new EventBus () ,
153163 totalNumberOfFields: 0 ,
154164 errors: [] // Validation errors
155165 };
@@ -231,7 +241,7 @@ export default {
231241
232242 let formErrors = [];
233243
234- this .eventBus .$on (" field-deregistering" , () => {
244+ this .eventBus .$on (" field-deregistering" , (... args ) => {
235245 // console.warn("Fields were deleted during validation process");
236246 this .eventBus .$emit (" fields-validation-terminated" , formErrors);
237247 reject (formErrors);
@@ -269,7 +279,11 @@ export default {
269279
270280 // Clear validation errors
271281 clearValidationErrors () {
272- this .errors .splice (0 );
282+ if (this .errors === undefined ) {
283+ console .warn (' no this.errors in AbstractField' );
284+ } else {
285+ this .errors .splice (0 );
286+ }
273287 this .eventBus .$emit (" clear-validation-errors" , this .clearValidationErrors );
274288 }
275289 },
@@ -283,7 +297,7 @@ export default {
283297 this .eventBus .$on (" field-registering" , () => {
284298 this .totalNumberOfFields = this .totalNumberOfFields + 1 ;
285299 });
286- this .eventBus .$on (" field-deregistering" , () => {
300+ this .eventBus .$on (" field-deregistering" , (f ) => {
287301 this .totalNumberOfFields = this .totalNumberOfFields - 1 ;
288302 });
289303 },
0 commit comments