@drax/crud-vue 3.4.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.4.0",
6
+ "version": "3.7.0",
7
7
  "type": "module",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
@@ -27,7 +27,7 @@
27
27
  "@drax/common-front": "^3.0.0",
28
28
  "@drax/crud-front": "^3.0.0",
29
29
  "@drax/crud-share": "^3.2.0",
30
- "@drax/media-vue": "^3.4.0"
30
+ "@drax/media-vue": "^3.7.0"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "pinia": "^3.0.4",
@@ -50,5 +50,5 @@
50
50
  "vue-tsc": "^3.2.4",
51
51
  "vuetify": "^3.11.8"
52
52
  },
53
- "gitHead": "437ac93168b1b2431112eedd1d62b3f4001143b6"
53
+ "gitHead": "99293960a464d5d6dab147811ed6a5d977919e26"
54
54
  }
@@ -129,8 +129,8 @@ const {xs} = useDisplay()
129
129
  @canceled="emit('canceled')"
130
130
  >
131
131
 
132
- <template v-for="ifield in entity.fields" :key="ifield.name" v-slot:[`field.${ifield.name}`]="{field}">
133
- <slot :name="`field.${ifield.name}`" v-bind="{field}">
132
+ <template v-for="ifield in entity.fields" :key="ifield.name" v-slot:[`field.${ifield.name}`]="{field, form, modelValue, setValue}">
133
+ <slot :name="`field.${ifield.name}`" v-bind="{field, form, modelValue, setValue}">
134
134
  </slot>
135
135
  </template>
136
136
 
@@ -63,6 +63,14 @@ const menuMaxHeight = computed(() => {
63
63
  return entity.menuMaxHeight || '300px'
64
64
  })
65
65
 
66
+ function getFieldModelValue(fieldName: string) {
67
+ return form.value[fieldName]
68
+ }
69
+
70
+ function setFieldModelValue(fieldName: string, value: any) {
71
+ form.value[fieldName] = value
72
+ }
73
+
66
74
  async function submit() {
67
75
  store.resetErrors()
68
76
 
@@ -167,7 +175,15 @@ const onlyView = computed(()=> {
167
175
  :lg="field.lg ? field.lg : undefined"
168
176
  :xl="field.xl ? field.xl : undefined"
169
177
  >
170
- <slot :name="`field.${field.name}`" v-bind="{field}">
178
+ <slot
179
+ :name="`field.${field.name}`"
180
+ v-bind="{
181
+ field,
182
+ form,
183
+ modelValue: getFieldModelValue(field.name),
184
+ setValue: (value: any) => setFieldModelValue(field.name, value)
185
+ }"
186
+ >
171
187
 
172
188
  <crud-form-field
173
189
  :field="field"
@@ -217,7 +233,15 @@ const onlyView = computed(()=> {
217
233
  :lg="field.lg ? field.lg : undefined"
218
234
  :xl="field.xl ? field.xl : undefined"
219
235
  >
220
- <slot :name="`field.${field.name}`" v-bind="{field}">
236
+ <slot
237
+ :name="`field.${field.name}`"
238
+ v-bind="{
239
+ field,
240
+ form,
241
+ modelValue: getFieldModelValue(field.name),
242
+ setValue: (value: any) => setFieldModelValue(field.name, value)
243
+ }"
244
+ >
221
245
 
222
246
 
223
247
 
@@ -279,7 +303,15 @@ const onlyView = computed(()=> {
279
303
  :lg="field.lg ? field.lg : undefined"
280
304
  :xl="field.xl ? field.xl : undefined"
281
305
  >
282
- <slot :name="`field.${field.name}`" v-bind="{field}">
306
+ <slot
307
+ :name="`field.${field.name}`"
308
+ v-bind="{
309
+ field,
310
+ form,
311
+ modelValue: getFieldModelValue(field.name),
312
+ setValue: (value: any) => setFieldModelValue(field.name, value)
313
+ }"
314
+ >
283
315
  <crud-form-field
284
316
  :field="field"
285
317
  :entity="entity"