2026-10-31 23:35:38 -05:00
|
|
|
const setupMenuBlocks = () => {
|
|
|
|
|
for (const [key, value] of Object.entries(ScriptElms)) {
|
|
|
|
|
customElements.define(key, value);
|
|
|
|
|
const elm = document.createElement(key);
|
|
|
|
|
elm.className = "script-block";
|
|
|
|
|
elm.draggable = true
|
|
|
|
|
elm.ondragstart = dragStartHandler
|
|
|
|
|
menu.append(elm);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const setupDragAndDrop = () => {
|
|
|
|
|
script.ondrop = dragDropHandler
|
|
|
|
|
script.ondragover = dragOverHandler
|
|
|
|
|
header.ondrop = dragDropHandler
|
|
|
|
|
header.ondragover = dragOverHandler
|
|
|
|
|
|
|
|
|
|
const flexParents = document.getElementsByClassName("flex-parent");
|
|
|
|
|
for (let i = 0; i < flexParents.length; i++) {
|
|
|
|
|
flexParents[i].ondrop = dragDropHandler
|
|
|
|
|
flexParents[i].ondragover = dragOverHandler
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-10-31 23:47:03 -05:00
|
|
|
const clearScriptNode = () => {
|
|
|
|
|
for (const elm of script.children) {
|
|
|
|
|
elm.remove();
|
2026-10-31 23:35:38 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const addBlockToScript = (draggedTarget, tagTarget) => {
|
|
|
|
|
const elm = draggedTarget.cloneNode(true);
|
|
|
|
|
elm.ondragstart = dragStartHandler
|
|
|
|
|
tagTarget.appendChild(elm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const destroyScriptBlock = (draggedTarget, tagTarget) => {
|
|
|
|
|
draggedTarget.remove();
|
|
|
|
|
}
|