Releases: jarvelov/vue-form-json-schema
v2.8.2
v2.8.1
Many thanks to @harish2704, @THirrrsch and @Fuasmattn who have contributed the PRs included in this release!
Duplicate field id fix
In some cases it was possible for multiple fields to get the same id, see issue #61. This issue has now been fixed by @harish2704 who contributed PR #62 with the fix. As a bonus, the field id's should now also be less CPU intensive to calculate!
Improvements for working with ajv-errors
In previous versions the errorMessage property used byajv-errors did not work, but thanks to @THirrrsch and @Fuasmattn who have contributed PR #68 which implements support for this feature. Their PR also included a fix for in the code which generates paths used to determine whether a field is required or not.
Dependency upgrades
The ajv and lodashdependencies have now been updated to the latest versions.
v2.7.0
v2.7.0
eventProp and improvements for working with checkboxes
New prop eventProp
vue-form-json-schema automatically handles Events but until this release it hasn't been possible to configure what value should be extracted from the event. Previously event.target.value was always used, but now it can be configured to use eventProp, which allows you to extract any property from event.target, which means you can for example retrieve event.target.checked.
See documentation for eventProp
Improvements to automatic handling of attrs/domProps for native elements
Automatic handling of checked attribute/dom property for input type="checkbox" elements was broken but has now been fixed. With this fix it is now possible to use an object in componentProps to determine whether an element should have attrs/domProps set.
v2.6.0
Dynamic options
This release includes the dynamicOptions feature. This feature provides a powerful way to conditionally apply or modify any of a field's properties by using a JSON Schema. This provides for example the ability to update a field and change, such as css classes, conditionally using only JSON Schema
Example using Vue Composition API
Another example has been added, this time using Vue's composition API
v2.0.0
Breaking release!
This update contains the following changes:
- Removes non-prefixed props. Fixes #7
 - No longer merges new model with old one. Fixes #11
 - Improved handling of string values in fieldOptions.class
 - Added support for passing field model to custom prop
- Previously the field's model was always passed to the 
valueprop, but now it can be passed to any prop via thevaluePropoption. The default is stillvalue.- Configure the 
valuePropon the field's root object: - or, to set the prop globally for all fields configure the 
valuePropproperty on theoptionsobject passed to thevue-form-json-schemacomponent. 
 - Configure the 
 
 - Previously the field's model was always passed to the 
 - Named export changes
- The project structure has been updated and the named exports have been updated to reflect that. If you only used the default export you will not have to change anything.
vfjsViewer->vfjsGlobalvfjsComponentMixin->vfjsFieldMixin- New export: 
vfjsField 
 
 - The project structure has been updated and the named exports have been updated to reflect that. If you only used the default export you will not have to change anything.
 
This is considered a major release due to changing the API with the removal of non-prefixed props. Previously a field's component would get passed the following non-prefixed props:
NOTE: You are only affected by this if your field's component made use of any of these props.
If you for example only used errorHandlerin the field's fieldOptionsyou are not affected by this change.  If however your field's component used these props you will have to update to the prefixed version of the prop, see the list below. Note the exception for thevalue prop.
childrencomponenterrorHandlererrorOptionserrorsfieldOptionsidmodelmodelKeyrequiredschemaschemasstatetag**uiSchemavalue*
* The field's model is still passed to the value prop unless the valueKey has been set, either globally or on the field, to another value.
** This property has been removed
As these props are no longer passed to the field's component. Instead use the following prefixed versions:
children->vfjsChildren(orvfjsChildrenUiSchemato get the ui schema instead of the rendered nodes)component->vfjsComponenterrorHandler->vfjsFieldErrorHandlererrorOptions->vfjsFieldOptionserrors->vfjsFieldErrorsfieldOptions->vfjsFieldOptionsid->vfjsFieldIdmodel->vfjsFieldModelmodelKey->vfjsFieldModelKeyrequired->vfjsFieldRequiredschema->vfjsFieldSchemaschemas->vfjsFieldSchemasstate->vfjsFieldStateuiSchema->vfjsFieldUiSchemavalue->vfjsFieldModeltag-> This property has been removed