|
53 | 53 | </span> |
54 | 54 | </template> |
55 | 55 | <template #default="{invalid}"> |
56 | | - <generate-id-format v-if="schemaProperty.componentName === 'GenerateIdFormat'" |
57 | | - :key="`GenerateIdFormat-${schemaProperty.propertyName}`" |
58 | | - :value="rawFormData[schemaProperty.propertyName]" |
59 | | - :disabled="schemaProperty.disabled" |
60 | | - :invalid="invalid" |
61 | | - class="input-form" |
62 | | - @update:value="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
63 | | - /> |
64 | | - <p-json-schema-form v-else-if="schemaProperty.componentName === 'PJsonSchemaForm'" |
65 | | - :key="`PJsonSchemaForm-${schemaProperty.propertyName}`" |
66 | | - :form-data="rawFormData[schemaProperty.propertyName]" |
67 | | - :schema="schemaProperty" |
68 | | - :is-root="false" |
69 | | - @update:form-data="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
70 | | - /> |
71 | | - <p-select-dropdown v-else-if="schemaProperty.componentName === 'PSelectDropdown'" |
72 | | - :key="`PSelectDropdown-${schemaProperty.propertyName}`" |
73 | | - :selected="rawFormData[schemaProperty.propertyName]" |
74 | | - :items="schemaProperty.menuItems" |
75 | | - :disabled="schemaProperty.disabled" |
76 | | - :use-fixed-menu-style="useFixedMenuStyle" |
77 | | - class="input-form" |
78 | | - @update:selected="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
79 | | - > |
80 | | - <template #default="{ item }"> |
81 | | - <slot name="dropdown-extra" |
82 | | - v-bind="{...schemaProperty, selectedItem: item }" |
| 56 | + <div class="field-group-default-wrapper"> |
| 57 | + <div class="input-wrapper"> |
| 58 | + <generate-id-format v-if="schemaProperty.componentName === 'GenerateIdFormat'" |
| 59 | + :key="`GenerateIdFormat-${schemaProperty.propertyName}`" |
| 60 | + :value="rawFormData[schemaProperty.propertyName]" |
| 61 | + :disabled="schemaProperty.disabled" |
| 62 | + :invalid="invalid" |
| 63 | + class="input-form" |
| 64 | + @update:value="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
83 | 65 | /> |
84 | | - </template> |
85 | | - </p-select-dropdown> |
86 | | - <p-filterable-dropdown v-else-if="schemaProperty.componentName === 'PFilterableDropdown'" |
87 | | - :key="`PFilterableDropdown-${schemaProperty.propertyName}`" |
88 | | - :menu="schemaProperty.menuItems" |
89 | | - :selected="rawFormData[schemaProperty.propertyName]" |
90 | | - :multi-selectable="schemaProperty.multiInputMode" |
91 | | - :appearance-type="schemaProperty.appearanceType" |
92 | | - :page-size="10" |
93 | | - show-select-marker |
94 | | - :use-fixed-menu-style="useFixedMenuStyle" |
95 | | - :invalid="invalid" |
96 | | - :handler="schemaProperty.referenceHandler" |
97 | | - class="input-form" |
98 | | - @update:selected="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
99 | | - > |
100 | | - <template #selected-extra="{ items }"> |
101 | | - <slot name="dropdown-extra" |
102 | | - v-bind="{...schemaProperty, selectedItem: items}" |
| 66 | + <p-json-schema-form v-else-if="schemaProperty.componentName === 'PJsonSchemaForm'" |
| 67 | + :key="`PJsonSchemaForm-${schemaProperty.propertyName}`" |
| 68 | + :form-data="rawFormData[schemaProperty.propertyName]" |
| 69 | + :schema="schemaProperty" |
| 70 | + :is-root="false" |
| 71 | + @update:form-data="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
103 | 72 | /> |
104 | | - </template> |
105 | | - </p-filterable-dropdown> |
106 | | - <template v-else> |
107 | | - <p-text-input :key="`PTextInput-${schemaProperty.propertyName}`" |
108 | | - :value="schemaProperty.multiInputMode ? undefined : rawFormData[schemaProperty.propertyName]" |
109 | | - :selected="schemaProperty.multiInputMode ? rawFormData[schemaProperty.propertyName] : undefined" |
110 | | - :type="schemaProperty.inputType" |
111 | | - :invalid="invalid" |
112 | | - :placeholder="schemaProperty.inputPlaceholder" |
113 | | - :appearance-type="schemaProperty.appearanceType" |
114 | | - :autocomplete="false" |
115 | | - :use-auto-complete="schemaProperty.useAutoComplete" |
116 | | - :use-fixed-menu-style="useFixedMenuStyle" |
117 | | - :disabled="schemaProperty.disabled" |
118 | | - :multi-input="schemaProperty.multiInputMode" |
119 | | - :page-size="10" |
120 | | - class="input-form" |
121 | | - @update:value="!schemaProperty.multiInputMode && handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
122 | | - @update:selected="schemaProperty.multiInputMode && handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
| 73 | + <p-select-dropdown v-else-if="schemaProperty.componentName === 'PSelectDropdown'" |
| 74 | + :key="`PSelectDropdown-${schemaProperty.propertyName}`" |
| 75 | + :selected="rawFormData[schemaProperty.propertyName]" |
| 76 | + :items="schemaProperty.menuItems" |
| 77 | + :disabled="schemaProperty.disabled" |
| 78 | + :use-fixed-menu-style="useFixedMenuStyle" |
| 79 | + class="input-form" |
| 80 | + @update:selected="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
| 81 | + > |
| 82 | + <template #default="{ item }"> |
| 83 | + <slot name="dropdown-extra" |
| 84 | + v-bind="{...schemaProperty, selectedItem: item }" |
| 85 | + /> |
| 86 | + </template> |
| 87 | + </p-select-dropdown> |
| 88 | + <p-filterable-dropdown v-else-if="schemaProperty.componentName === 'PFilterableDropdown'" |
| 89 | + :key="`PFilterableDropdown-${schemaProperty.propertyName}`" |
| 90 | + :menu="schemaProperty.menuItems" |
| 91 | + :selected="rawFormData[schemaProperty.propertyName]" |
| 92 | + :multi-selectable="schemaProperty.multiInputMode" |
| 93 | + :appearance-type="schemaProperty.appearanceType" |
| 94 | + :page-size="10" |
| 95 | + show-select-marker |
| 96 | + :use-fixed-menu-style="useFixedMenuStyle" |
| 97 | + :invalid="invalid" |
| 98 | + :handler="schemaProperty.referenceHandler" |
| 99 | + class="input-form" |
| 100 | + @update:selected="handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
| 101 | + > |
| 102 | + <template #selected-extra="{ items }"> |
| 103 | + <slot name="dropdown-extra" |
| 104 | + v-bind="{...schemaProperty, selectedItem: items}" |
| 105 | + /> |
| 106 | + </template> |
| 107 | + </p-filterable-dropdown> |
| 108 | + <template v-else> |
| 109 | + <p-text-input :key="`PTextInput-${schemaProperty.propertyName}`" |
| 110 | + :value="schemaProperty.multiInputMode ? undefined : rawFormData[schemaProperty.propertyName]" |
| 111 | + :selected="schemaProperty.multiInputMode ? rawFormData[schemaProperty.propertyName] : undefined" |
| 112 | + :type="schemaProperty.inputType" |
| 113 | + :invalid="invalid" |
| 114 | + :placeholder="schemaProperty.inputPlaceholder" |
| 115 | + :appearance-type="schemaProperty.appearanceType" |
| 116 | + :autocomplete="false" |
| 117 | + :use-auto-complete="schemaProperty.useAutoComplete" |
| 118 | + :use-fixed-menu-style="useFixedMenuStyle" |
| 119 | + :disabled="schemaProperty.disabled" |
| 120 | + :multi-input="schemaProperty.multiInputMode" |
| 121 | + :page-size="10" |
| 122 | + class="input-form" |
| 123 | + @update:value="!schemaProperty.multiInputMode && handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
| 124 | + @update:selected="schemaProperty.multiInputMode && handleUpdateFormValue(schemaProperty, propertyIdx, ...arguments)" |
| 125 | + /> |
| 126 | + </template> |
| 127 | + </div> |
| 128 | + <slot name="input-extra" |
| 129 | + v-bind="schemaProperty" |
123 | 130 | /> |
124 | | - </template> |
| 131 | + </div> |
125 | 132 | </template> |
126 | 133 | </p-field-group> |
127 | 134 | </template> |
@@ -398,6 +405,12 @@ export default defineComponent<JsonSchemaFormProps>({ |
398 | 405 | > .input-form-wrapper.no-margin { |
399 | 406 | margin-bottom: 0; |
400 | 407 | } |
| 408 | + .field-group-default-wrapper { |
| 409 | + display: flex; |
| 410 | + .input-wrapper { |
| 411 | + flex-grow: 1; |
| 412 | + } |
| 413 | + } |
401 | 414 | .invalid-message { |
402 | 415 | display: block; |
403 | 416 | margin-bottom: 0.25rem; |
|
0 commit comments