mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									2573d8cb19
								
							
						
					
					
						commit
						7a4629bf79
					
				| @ -0,0 +1,115 @@ | ||||
| <template> | ||||
|   <Field | ||||
|     v-if="dragPlaceholder && isField && !isMask && field" | ||||
|     ref="dragPlaceholder" | ||||
|     :style="dragPlaceholderStyle" | ||||
|     :field="field" | ||||
|     :with-options="false" | ||||
|     class="fixed z-20 pointer-events-none" | ||||
|     :editable="false" | ||||
|   /> | ||||
|   <div | ||||
|     v-else-if="dragPlaceholder && (isDefault || isRequired) && !isMask && field" | ||||
|     ref="dragPlaceholder" | ||||
|     :style="[dragPlaceholderStyle, { backgroundColor: backgroundColor }]" | ||||
|     class="fixed z-20 border border-base-300 rounded group default-field fields-list-item pointer-events-none" | ||||
|   > | ||||
|     <div class="flex items-center justify-between relative cursor-grab"> | ||||
|       <div class="flex items-center p-1 space-x-1"> | ||||
|         <IconDrag /> | ||||
|         <component | ||||
|           :is="fieldIcons[field.type || 'text']" | ||||
|           :stroke-width="1.6" | ||||
|           :width="20" | ||||
|         /> | ||||
|         <span class="block pl-0.5"> | ||||
|           {{ field.title || field.name }} | ||||
|         </span> | ||||
|       </div> | ||||
|       <span | ||||
|         v-if="isRequired" | ||||
|         :data-tip="t('required')" | ||||
|         class="text-red-400 text-3xl pr-1.5 tooltip tooltip-left h-8" | ||||
|       > | ||||
|         * | ||||
|       </span> | ||||
|     </div> | ||||
|   </div> | ||||
|   <button | ||||
|     v-else-if="dragPlaceholder && !isMask && field" | ||||
|     ref="dragPlaceholder" | ||||
|     class="fixed field-type-button z-20 flex items-center justify-center border border-dashed w-full rounded border-base-content/20 opacity-90 pointer-events-none" | ||||
|     :style="[dragPlaceholderStyle, { backgroundColor }]" | ||||
|   > | ||||
|     <div | ||||
|       class="flex items-console cursor-grab h-full absolute left-0 bg-base-200/50" | ||||
|     > | ||||
|       <IconDrag class="my-auto" /> | ||||
|     </div> | ||||
|     <div class="flex items-center flex-col px-2 py-2"> | ||||
|       <component :is="fieldIcons[field.type || 'text']" /> | ||||
|       <span class="text-xs mt-1"> | ||||
|         {{ fieldNames[field.type || 'text'] }} | ||||
|       </span> | ||||
|     </div> | ||||
|   </button> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import Field from './field' | ||||
| import IconDrag from './icon_drag' | ||||
| import FieldType from './field_type' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'DragPlaceholder', | ||||
|   components: { | ||||
|     Field, | ||||
|     IconDrag | ||||
|   }, | ||||
|   inject: ['t', 'backgroundColor'], | ||||
|   props: { | ||||
|     field: { | ||||
|       type: Object, | ||||
|       required: false, | ||||
|       default: null | ||||
|     }, | ||||
|     isDefault: { | ||||
|       type: Boolean, | ||||
|       required: false, | ||||
|       default: false | ||||
|     }, | ||||
|     isRequired: { | ||||
|       type: Boolean, | ||||
|       required: false, | ||||
|       default: false | ||||
|     }, | ||||
|     isField: { | ||||
|       type: Boolean, | ||||
|       required: false, | ||||
|       default: false | ||||
|     } | ||||
|   }, | ||||
|   data () { | ||||
|     return { | ||||
|       isMask: false, | ||||
|       dragPlaceholder: null | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     dragPlaceholderStyle () { | ||||
|       if (this.dragPlaceholder) { | ||||
|         return { | ||||
|           left: this.dragPlaceholder.x + 'px', | ||||
|           top: this.dragPlaceholder.y + 'px', | ||||
|           width: this.dragPlaceholder.w + 'px', | ||||
|           height: this.dragPlaceholder.h + 'px' | ||||
|         } | ||||
|       } else { | ||||
|         return {} | ||||
|       } | ||||
|     }, | ||||
|     fieldNames: FieldType.computed.fieldNames, | ||||
|     fieldIcons: FieldType.computed.fieldIcons | ||||
|   } | ||||
| } | ||||
| </script> | ||||
					Loading…
					
					
				
		Reference in new issue