Files
griptape-ai-ComfyUI-Griptape/js/GriptapeNodes.js
Jason Schleifer ffa2fd524c starting to work on streaming
cleaning up javascript code
2024-07-17 15:22:35 +12:00

58 lines
1.5 KiB
JavaScript

import { griptapeMenuItems } from "./gtUIContextMenu.js";
export class GriptapeNodes extends EventTarget {
constructor() {
super();
this.initializeContextMenu();
}
async initializeContextMenu() {
const that = this;
setTimeout(async () => {
const getCanvasMenuOptions = LGraphCanvas.prototype.getCanvasMenuOptions;
LGraphCanvas.prototype.getCanvasMenuOptions = function (...args) {
const options = getCanvasMenuOptions.apply(this, [...args]);
options.push(null);
options.push({
content: `💬 Griptape`,
submenu: {
options: that.getGriptapeContextMenuItems(),
},
});
// Remove consecutive null entries
let i = 0;
while (i < options.length) {
if (options[i] === null && (i === 0 || options[i - 1] === null)) {
options.splice(i, 1);
} else {
i++;
}
}
return options;
};
}, 1000);
}
getGriptapeContextMenuItems() {
return griptapeMenuItems;
}
injectGriptapeCss() {
let link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = "extensions/ComfyUI-Griptape/gtUI.css";
document.head.appendChild(link);
}
}
// Instantiate and export GriptapeNodes
export const griptapeNodes = new GriptapeNodes();
// Make it available globally if needed
if (typeof window !== 'undefined') {
window.griptapeNodes = griptapeNodes;
}