@drax/crud-vue 3.4.0 → 3.8.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.8.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.8.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": "5969d340675bb4c5ff7bd99cd2cb9cfffd4231ad"
54
54
  }
@@ -59,6 +59,11 @@ const {xs} = useDisplay()
59
59
  @view="onView"
60
60
  >
61
61
 
62
+ <template v-slot:toolbar-left>
63
+ <slot name="toolbar-left">
64
+ </slot>
65
+ </template>
66
+
62
67
  <template v-slot:toolbar>
63
68
  <slot name="toolbar">
64
69
  </slot>
@@ -129,8 +134,8 @@ const {xs} = useDisplay()
129
134
  @canceled="emit('canceled')"
130
135
  >
131
136
 
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}">
137
+ <template v-for="ifield in entity.fields" :key="ifield.name" v-slot:[`field.${ifield.name}`]="{field, form, modelValue, setValue}">
138
+ <slot :name="`field.${ifield.name}`" v-bind="{field, form, modelValue, setValue}">
134
139
  </slot>
135
140
  </template>
136
141
 
@@ -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"
@@ -62,7 +62,7 @@ onMounted(() => {
62
62
 
63
63
  <v-row justify="end" class="px-2 border-t-sm" >
64
64
 
65
- <slot name="toolbar">
65
+ <slot name="toolbar-left">
66
66
  </slot>
67
67
 
68
68
  <crud-import-button
@@ -88,6 +88,9 @@ onMounted(() => {
88
88
  :entity="entity"
89
89
  />
90
90
 
91
+ <slot name="toolbar">
92
+ </slot>
93
+
91
94
  <crud-create-button
92
95
  v-if="entity.isCreatable"
93
96
  :entity="entity"
@@ -91,7 +91,7 @@ defineEmits(['import', 'export', 'create', 'update', 'delete', 'view', 'edit'])
91
91
  </v-toolbar-title>
92
92
  <v-spacer></v-spacer>
93
93
 
94
- <slot name="toolbar">
94
+ <slot name="toolbar-left">
95
95
 
96
96
  </slot>
97
97
 
@@ -118,6 +118,10 @@ defineEmits(['import', 'export', 'create', 'update', 'delete', 'view', 'edit'])
118
118
  :entity="entity"
119
119
  />
120
120
 
121
+ <slot name="toolbar">
122
+
123
+ </slot>
124
+
121
125
  <crud-create-button
122
126
  v-if="entity.isCreatable"
123
127
  :entity="entity"