2024-12-11 06:23:55 -08:00
|
|
|
<script lang="ts" setup>
|
|
|
|
import { N8nIconButton, N8nActionToggle } from 'n8n-design-system';
|
|
|
|
|
|
|
|
type Action = {
|
|
|
|
label: string;
|
|
|
|
value: string;
|
|
|
|
disabled: boolean;
|
|
|
|
};
|
|
|
|
defineProps<{
|
|
|
|
actions: Action[];
|
2024-12-27 05:18:30 -08:00
|
|
|
disabled?: boolean;
|
2024-12-11 06:23:55 -08:00
|
|
|
}>();
|
|
|
|
|
|
|
|
const emit = defineEmits<{
|
|
|
|
action: [id: string];
|
|
|
|
}>();
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<div :class="[$style.buttonGroup]">
|
|
|
|
<slot></slot>
|
|
|
|
<N8nActionToggle
|
|
|
|
data-test-id="add-resource"
|
|
|
|
:actions="actions"
|
|
|
|
placement="bottom-end"
|
|
|
|
:teleported="false"
|
|
|
|
@action="emit('action', $event)"
|
|
|
|
>
|
2024-12-27 05:18:30 -08:00
|
|
|
<N8nIconButton :disabled="disabled" :class="[$style.buttonGroupDropdown]" icon="angle-down" />
|
2024-12-11 06:23:55 -08:00
|
|
|
</N8nActionToggle>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<style lang="scss" module>
|
|
|
|
.buttonGroup {
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
|
|
:global(> .button) {
|
|
|
|
border-right: 1px solid var(--button-font-color, var(--color-button-primary-font));
|
|
|
|
|
|
|
|
&:not(:first-child) {
|
|
|
|
border-radius: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
border-top-right-radius: 0;
|
|
|
|
border-bottom-right-radius: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.buttonGroupDropdown {
|
|
|
|
border-top-left-radius: 0;
|
|
|
|
border-bottom-left-radius: 0;
|
|
|
|
}
|
|
|
|
</style>
|