|
1 | 1 | <template> |
2 | | - <forge-checkbox :id="props.name" v-if="props.type === 'checkbox'" :label="props.fieldLabel" v-bind="$attrs" |
3 | | - :name="props.name" v-model="model" /> |
4 | | - <div class="d-flex flex-column w-100" v-else> |
| 2 | + <forge-checkbox |
| 3 | +v-if="props.type === 'checkbox'" :id="props.name" v-bind="$attrs" v-model="model" |
| 4 | + :label="props.fieldLabel" :name="props.name" /> |
| 5 | + <div v-else class="d-flex flex-column w-100"> |
5 | 6 | <div data-cy="input-wrapper" class="d-flex" :class="props.fieldLabelPosition === 'top' ? 'flex-column' : 'flex-row'"> |
6 | 7 | <label :for="props.name" :class="props.fieldLabelPosition === 'top' ? 'mb-1' : ('me-2 ' + props.labelWidthClass)"> |
7 | 8 | {{ props.fieldLabel }} <span v-if="required" class="text-danger fw-600">*</span> |
|
10 | 11 | <!-- Slot for Custom Inputs --> |
11 | 12 | <slot v-bind="{ modelValue: model, updateModel: handleChange, hasErrors }"> |
12 | 13 | <!-- Default Inputs (if no input is provided) --> |
13 | | - <InputNumber :id="props.name" v-if="props.type === 'number'" v-bind="$attrs" |
14 | | - :placeholder="props.placeholder" :input-class="{'is-invalid': hasErrors }" :class="{'is-invalid': hasErrors }" |
15 | | - @input="change" v-model="model" |
| 14 | + <InputNumber |
| 15 | + v-if="props.type === 'number'" :id="props.name" v-bind="$attrs" |
| 16 | + v-model="model" :placeholder="props.placeholder" :input-class="{'is-invalid': hasErrors }" |
| 17 | + :class="{'is-invalid': hasErrors }" @input="change" |
16 | 18 | /> |
17 | | - <Textarea :id="props.name" v-else-if="props.type === 'textarea'" v-bind="$attrs" |
18 | | - :placeholder="props.placeholder" :class="{'is-invalid': hasErrors }" |
19 | | - v-model="model" |
| 19 | + <Textarea |
| 20 | + v-else-if="props.type === 'textarea'" :id="props.name" v-bind="$attrs" |
| 21 | + v-model="model" :placeholder="props.placeholder" |
| 22 | + :class="{'is-invalid': hasErrors }" |
20 | 23 | @input="change" @blur="handleBlur" |
21 | 24 | /> |
22 | | - <InputMask :id="props.name" v-else-if="props.type === 'mask'" v-bind="$attrs" |
23 | | - :placeholder="props.placeholder" :mask="props.mask" :class="{'is-invalid': hasErrors }" |
24 | | - v-model="model" @complete="change" @blur="handleBlur" |
| 25 | + <InputMask |
| 26 | + v-else-if="props.type === 'mask'" :id="props.name" v-bind="$attrs" |
| 27 | + v-model="model" :placeholder="props.placeholder" :mask="props.mask" |
| 28 | + :class="{'is-invalid': hasErrors }" @complete="change" @blur="handleBlur" |
25 | 29 | /> |
26 | | - <InputText :id="props.name" v-else-if="props.type === 'text'" v-bind="$attrs" |
27 | | - :placeholder="props.placeholder" :class="{'is-invalid': hasErrors }" |
28 | | - v-model="model" |
| 30 | + <InputText |
| 31 | + v-else-if="props.type === 'text'" :id="props.name" v-bind="$attrs" |
| 32 | + v-model="model" :placeholder="props.placeholder" |
| 33 | + :class="{'is-invalid': hasErrors }" |
29 | 34 | @input="change" @blur="handleBlur" |
30 | 35 | /> |
31 | | - <Select v-else-if="props.type === 'select'" v-bind="{...props,...$attrs}" v-model="model" |
| 36 | + <Select |
| 37 | + v-else-if="props.type === 'select'" v-bind="{...props,...$attrs}" v-model="model" |
32 | 38 | :class="{'is-invalid': hasErrors }" /> |
33 | | - <MultiSelect v-else-if="props.type === 'multiselect'" v-bind="{...props,...$attrs}" v-model="model" |
| 39 | + <MultiSelect |
| 40 | + v-else-if="props.type === 'multiselect'" v-bind="{...props,...$attrs}" v-model="model" |
34 | 41 | :class="{'is-invalid': hasErrors }" /> |
35 | | - <ForgeMultiSelectPreview v-else-if="props.type === 'multiselect-preview'" v-bind="{...props,...$attrs}" v-model="model" |
| 42 | + <ForgeMultiSelectPreview |
| 43 | + v-else-if="props.type === 'multiselect-preview'" v-bind="{...props,...$attrs}" v-model="model" |
36 | 44 | :class="{'is-invalid': hasErrors }" /> |
37 | | - <ForgeDatepicker v-else-if="props.type === 'datepicker'" v-bind="{...props,...$attrs}" v-model="model" |
| 45 | + <ForgeDatepicker |
| 46 | + v-else-if="props.type === 'datepicker'" v-bind="{...props,...$attrs}" v-model="model" |
38 | 47 | :class="{'is-invalid': hasErrors }" /> |
39 | 48 | </slot> |
40 | 49 |
|
|
0 commit comments