1
0

EditInteractionBase.vue 865 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <slot name="prepend" />
  3. <ui-textarea
  4. :model-value="data.description"
  5. autoresize
  6. placeholder="Description"
  7. class="w-full mb-2"
  8. @change="updateData({ description: $event })"
  9. />
  10. <ui-input
  11. :model-value="data.selector"
  12. placeholder="Element selector"
  13. class="mb-1 w-full"
  14. @change="updateData({ selector: $event })"
  15. />
  16. <ui-checkbox
  17. v-if="!data.disableMultiple"
  18. :model-value="data.multiple"
  19. @change="updateData({ multiple: $event })"
  20. >
  21. Multiple
  22. </ui-checkbox>
  23. <slot></slot>
  24. </template>
  25. <script setup>
  26. const props = defineProps({
  27. data: {
  28. type: Object,
  29. default: () => ({}),
  30. },
  31. });
  32. const emit = defineEmits(['update:data', 'change']);
  33. function updateData(value) {
  34. const payload = { ...props.data, ...value };
  35. emit('update:data', payload);
  36. emit('change', payload);
  37. }
  38. </script>