1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <template>
- <div>
- <slot name="prepend" />
- <ui-textarea
- :model-value="data.description"
- autoresize
- placeholder="Description"
- class="w-full mb-2"
- @change="updateData({ description: $event })"
- />
- <ui-input
- v-if="!hideSelector"
- :model-value="data.selector"
- placeholder="Element selector"
- class="mb-1 w-full"
- @change="updateData({ selector: $event })"
- />
- <template v-if="!hideSelector">
- <ui-checkbox
- v-if="!data.disableMultiple && !hideMultiple"
- class="mr-6"
- title="Select multiple elements"
- :model-value="data.multiple"
- @change="updateData({ multiple: $event })"
- >
- Multiple
- </ui-checkbox>
- <ui-checkbox
- :model-value="data.markEl"
- title="An element will not be selected if have been selected before"
- @change="updateData({ markEl: $event })"
- >
- Mark element
- </ui-checkbox>
- </template>
- <slot></slot>
- </div>
- </template>
- <script setup>
- const props = defineProps({
- data: {
- type: Object,
- default: () => ({}),
- },
- hideSelector: {
- type: Boolean,
- default: false,
- },
- hideMultiple: {
- type: Boolean,
- default: false,
- },
- });
- const emit = defineEmits(['update:data', 'change']);
- function updateData(value) {
- const payload = { ...props.data, ...value };
- emit('update:data', payload);
- emit('change', payload);
- }
- </script>
|