class CustomSidebar extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
`;
this.setupDragEvents();
}
setupDragEvents() {
const nodeItems = this.shadowRoot.querySelectorAll('.node-item');
nodeItems.forEach(node => {
node.addEventListener('dragstart', (event) => {
event.dataTransfer.setData('application/reactflow', node.dataset.type);
event.dataTransfer.setData('application/reactflow-label', node.dataset.label);
event.dataTransfer.effectAllowed = 'move';
});
});
}
}
customElements.define('custom-sidebar', CustomSidebar);