PluginProbe
The Innovative Form Builder – IvyForms / 0.3
The Innovative Form Builder – IvyForms v0.3
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / frontend / src / views / admin / form-builder / fields / email / EmailField.vue

EmailField.vue in The Innovative Form Builder – IvyForms 0.3, at frontend/src/views/admin/form-builder/fields/email/EmailField.vue

82 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <template>
2 <div class="ivyforms-field__email">
3 <IvyFormItem :label="label" :required="required">
4 <IvyTextInput
5 :id="index"
6 readonly
7 :placeholder="placeholder"
8 :model-value="modelValue"
9 :type="type"
10 />
11 </IvyFormItem>
12 </div>
13 </template>
14
15 <script setup lang="ts">
16 import { computed } from 'vue'
17 import { useFormBuilder } from '@/stores/useFormBuilder'
18
19 const props = defineProps<{ fieldIndex: number }>()
20 const formBuilderStore = useFormBuilder()
21
22 // Computed properties to dynamically get values from the store
23 const field = computed(() => formBuilderStore.fields.find((f) => f.fieldIndex === props.fieldIndex))
24
25 const label = computed(() => field.value?.label || '')
26 const placeholder = computed(() => field.value?.placeholder || '')
27 const required = computed(() => field.value?.required || false)
28 const index = computed(() => field.value?.fieldIndex ?? props.fieldIndex)
29 const modelValue = computed(() => field.value?.defaultValue || '')
30 const type = computed(() => field.value?.type || 'email')
31 </script>
32 <style lang="scss" scoped>
33 .ivyforms-field__email {
34 cursor: move;
35 .ivyforms-form-item {
36 margin-bottom: 0;
37 cursor: move;
38 :deep(.ivyforms-form-item__label) {
39 display: flex;
40 align-items: center;
41 color: var(--map-base-text-0);
42 /* Medium/Medium 14 */
43 font-size: 14px;
44 font-style: normal;
45 font-weight: 500;
46 line-height: 20px; /* 142.857% */
47 margin-bottom: 6px;
48 cursor: move;
49 }
50 :deep(.el-form-item__label) {
51 cursor: move;
52 }
53 .ivyforms-input.el-input {
54 :deep(.el-input__wrapper:hover),
55 :deep(.el-input__wrapper.is-focus),
56 :deep(.el-input__wrapper) {
57 border-radius: var(--Radius-radius-md, 8px);
58 border: 1px solid var(--map-base-dusk-stroke--2);
59 background: var(--map-base-dusk-o05);
60 box-shadow: none;
61 padding: 0 12px;
62 transition: none;
63 cursor: move;
64 }
65 :deep(input) {
66 border: none;
67 background: transparent;
68 cursor: move;
69 box-shadow: none;
70
71 &:focus {
72 outline: none;
73 border: 1px solid transparent; /* Ensure border does not change */
74 background: none; /* Ensure background does not change */
75 box-shadow: none;
76 }
77 }
78 }
79 }
80 }
81 </style>
82