70 lines
2.6 KiB
JavaScript
70 lines
2.6 KiB
JavaScript
import { app } from "../../../scripts/app.js";
|
|
import { settings } from "./state.js";
|
|
import { getWords } from "./state.js";
|
|
|
|
app.registerExtension({
|
|
name: "comfyui.prompt.snippets.settings",
|
|
async setup(app) {
|
|
const data = await getWords();
|
|
let categories = [];
|
|
if (data && data.categories && data.categories.length) {
|
|
categories = data.categories.sort((a, b) => b.localeCompare(a));
|
|
}
|
|
|
|
const setting_debug = app.ui.settings.addSetting({
|
|
id: "promptsnippets.debugOutput",
|
|
name: "CPS: Enable debug logging to console",
|
|
defaultValue: false,
|
|
type: "boolean",
|
|
onChange: (value) => {
|
|
settings.debugOutput = value;
|
|
},
|
|
});
|
|
|
|
const setting_trigger = app.ui.settings.addSetting({
|
|
id: "promptsnippets.triggerCharacter",
|
|
name: "CPS: Trigger character for autocomplete",
|
|
defaultValue: "@",
|
|
type: "text",
|
|
onChange: (value) => {
|
|
settings.triggerCharacter = value;
|
|
},
|
|
});
|
|
|
|
const disabledCategoriesSetting = app.ui.settings.addSetting({
|
|
id: "promptsnippets.disabledCategories",
|
|
name: "CPS: Disabled Categories",
|
|
defaultValue: [],
|
|
type: "hidden",
|
|
});
|
|
|
|
// Storing the initial values (these are already handled by onChange and defaultValue, but keeping for clarity)
|
|
settings.debugOutput = setting_debug.value;
|
|
settings.triggerCharacter = setting_trigger.value;
|
|
settings.disabledCategories = disabledCategoriesSetting.value;
|
|
|
|
for (const category of categories) {
|
|
app.ui.settings.addSetting({
|
|
id: `promptsnippets.category.${category}`,
|
|
name: `Category Toggle: ${category}`,
|
|
defaultValue: !settings.disabledCategories.includes(category),
|
|
type: "boolean",
|
|
onChange: (value) => {
|
|
const disabled = settings.disabledCategories;
|
|
const index = disabled.indexOf(category);
|
|
if (value) {
|
|
if (index > -1) {
|
|
disabled.splice(index, 1);
|
|
}
|
|
} else {
|
|
if (index === -1) {
|
|
disabled.push(category);
|
|
}
|
|
}
|
|
disabledCategoriesSetting.value = disabled;
|
|
settings.disabledCategories = disabled;
|
|
},
|
|
});
|
|
}
|
|
}
|
|
}); |