diff --git a/resources/js/components/blueprints/Fields.vue b/resources/js/components/blueprints/Fields.vue
index a721b7ce15..ed896ef098 100644
--- a/resources/js/components/blueprints/Fields.vue
+++ b/resources/js/components/blueprints/Fields.vue
@@ -21,6 +21,7 @@
@updated="$emit('field-updated', i, $event)"
@deleted="$emit('field-deleted', i)"
@editor-closed="$emit('editor-closed')"
+ @duplicate="duplicateField(field)"
/>
@@ -140,7 +141,24 @@ export default {
this.$toast.success(__('Field added'));
this.pendingCreatedField = null;
- }
+ },
+
+ duplicateField(field) {
+ let handle = `${field.handle}_duplicate`;
+ let display = field.config.display ? `${field.config.display} (Duplicate)` : `${field.handle} (Duplicate)`;
+
+ let pending = {
+ ...field,
+ _id: uniqid(),
+ handle: handle,
+ config: {
+ ...field.config,
+ display,
+ }
+ };
+
+ this.$nextTick(() => this.pendingCreatedField = pending);
+ },
}
diff --git a/resources/js/components/blueprints/RegularField.vue b/resources/js/components/blueprints/RegularField.vue
index 4142a56a42..2057317f6d 100644
--- a/resources/js/components/blueprints/RegularField.vue
+++ b/resources/js/components/blueprints/RegularField.vue
@@ -24,7 +24,10 @@
>
-