diff --git a/package-lock.json b/package-lock.json index bc0fc7ba..7fbabf08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dynamicform-project", - "version": "0.80.16", + "version": "0.80.17", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dynamicform-project", - "version": "0.80.16", + "version": "0.80.17", "license": "UNLICENSED", "workspaces": [ "vue/*" @@ -1156,10 +1156,14 @@ } }, "node_modules/@dynamicforms/vue-forms": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@dynamicforms/vue-forms/-/vue-forms-0.4.5.tgz", - "integrity": "sha512-PnGXJqedaMf2QCk7HP7rsxro5fetOJQqK8K0X/llLJqlgh4P5FVdVe+H6L2Bg5eGEGMuCu+BRIFUUnCEk8yjyA==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@dynamicforms/vue-forms/-/vue-forms-0.4.6.tgz", + "integrity": "sha512-IXbDVwL/mH48FNbB02arExixvsGLDZCyabdw0Xm+SoS2YFm6Y/oUAygb61XIlQXQOLJFg+FVprHjg9g10Y0AfQ==", + "license": "MIT", "peer": true, + "workspaces": [ + "docs" + ], "peerDependencies": { "lodash-es": "^4.17.12", "vue": "^3.4" @@ -13064,7 +13068,7 @@ }, "vue/dynamicforms": { "name": "@velis/dynamicforms", - "version": "0.80.14", + "version": "0.80.17", "license": "Proprietary", "dependencies": { "resize-observer-polyfill": "^1.5.1" @@ -13088,6 +13092,7 @@ "vue-tsc": "^2" }, "peerDependencies": { + "@dynamicforms/vue-forms": "^0.4.6", "@dynamicforms/vuetify-inputs": "^0.5.8", "@kyvg/vue3-notification": "^3.2.1", "axios": "^1.4.0", diff --git a/vue/dynamicforms/package.json b/vue/dynamicforms/package.json index 59829c71..57787aa8 100644 --- a/vue/dynamicforms/package.json +++ b/vue/dynamicforms/package.json @@ -37,6 +37,7 @@ }, "issues": "https://github.com/velis74/DynamicForms/issues", "peerDependencies": { + "@dynamicforms/vue-forms": "^0.4.6", "@dynamicforms/vuetify-inputs": "^0.5.8", "@kyvg/vue3-notification": "^3.2.1", "axios": "^1.4.0", diff --git a/vue/dynamicforms/src/components/form/field-group.vue b/vue/dynamicforms/src/components/form/field-group.vue index b95b00f1..3112a991 100644 --- a/vue/dynamicforms/src/components/form/field-group.vue +++ b/vue/dynamicforms/src/components/form/field-group.vue @@ -66,7 +66,7 @@ let formPayload = ref(); const columnClasses = computed( () => { const classes = props.field.widthClasses; return classes ? ` ${classes} ` : ''; }, ); -const subErrors = computed(() => props.errors && props.errors[props.field.name]); +const subErrors = computed(() => (props.field.name ? props.errors && props.errors[props.field.name] : props.errors)); if (props.field.name == null) { use.value = true; diff --git a/vue/dynamicforms/src/components/form/inputs/base.ts b/vue/dynamicforms/src/components/form/inputs/base.ts index c83cc609..88cc97ad 100644 --- a/vue/dynamicforms/src/components/form/inputs/base.ts +++ b/vue/dynamicforms/src/components/form/inputs/base.ts @@ -1,3 +1,4 @@ +import Form, { Field, ValidationErrorRenderContent } from '@dynamicforms/vue-forms'; import { computed } from 'vue'; import FilteredActions from '../../actions/filtered-actions'; @@ -50,7 +51,20 @@ export function useInputBase(props: BaseProps, emit: BaseEmits) { hint?: any; 'persistent-hint': any; 'hide-details'?: boolean | 'auto'; + control?: Form.IField; }; + const control = computed(() => Field.create({ + value: value.value, + touched: true, + visibility: Form.DisplayMode.FULL, + errors: (errorsList.value || []).map( + (error: any) => (error instanceof ValidationErrorRenderContent ? error : new ValidationErrorRenderContent(error)), + ), + enabled: true, + })); + + control.value.validate(); + const baseBinds = computed((): BaseBinds => ({ label: label.value, 'error-messages': errorsList.value, @@ -58,6 +72,7 @@ export function useInputBase(props: BaseProps, emit: BaseEmits) { hint: helpText.value, 'persistent-hint': true, 'hide-details': 'auto', + control: control.value, })); return { diff --git a/vue/dynamicforms/src/components/form/inputs/date-time.vue b/vue/dynamicforms/src/components/form/inputs/date-time.vue index ebf22999..355f061b 100644 --- a/vue/dynamicforms/src/components/form/inputs/date-time.vue +++ b/vue/dynamicforms/src/components/form/inputs/date-time.vue @@ -2,7 +2,6 @@ diff --git a/vue/dynamicforms/src/components/form/inputs/df-ckeditor.vue b/vue/dynamicforms/src/components/form/inputs/df-ckeditor.vue index 8b6075ee..f21889bf 100644 --- a/vue/dynamicforms/src/components/form/inputs/df-ckeditor.vue +++ b/vue/dynamicforms/src/components/form/inputs/df-ckeditor.vue @@ -2,11 +2,11 @@ diff --git a/vue/dynamicforms/src/components/form/inputs/df-file.vue b/vue/dynamicforms/src/components/form/inputs/df-file.vue index 0ed4a92f..81c1fcfb 100644 --- a/vue/dynamicforms/src/components/form/inputs/df-file.vue +++ b/vue/dynamicforms/src/components/form/inputs/df-file.vue @@ -4,10 +4,10 @@ :comms="fileComms" :class="field.renderParams.fieldCSSClass" :name="field.name" - :label="baseBinds.label" :errors="baseBinds['error-messages']" :enabled="!field.readOnly" :hint="baseBinds.hint" + v-bind="baseBinds" />