|
var __defProp = Object.defineProperty; |
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); |
|
import { d as defineComponent, r as ref, c6 as FilterMatchMode, ca as useExtensionStore, u as useSettingStore, o as onMounted, q as computed, g as openBlock, x as createBlock, y as withCtx, i as createVNode, c7 as SearchBox, z as unref, bT as script, A as createBaseVNode, h as createElementBlock, O as renderList, a6 as toDisplayString, aw as createTextVNode, N as Fragment, D as script$1, j as createCommentVNode, bV as script$3, c8 as _sfc_main$1 } from "./index-CoOvI8ZH.js"; |
|
import { s as script$2, a as script$4 } from "./index-DK6Kev7f.js"; |
|
import "./index-D4DWQPPQ.js"; |
|
const _hoisted_1 = { class: "flex justify-end" }; |
|
const _sfc_main = defineComponent({ |
|
__name: "ExtensionPanel", |
|
setup(__props) { |
|
const filters = ref({ |
|
global: { value: "", matchMode: FilterMatchMode.CONTAINS } |
|
}); |
|
const extensionStore = useExtensionStore(); |
|
const settingStore = useSettingStore(); |
|
const editingEnabledExtensions = ref({}); |
|
onMounted(() => { |
|
extensionStore.extensions.forEach((ext) => { |
|
editingEnabledExtensions.value[ext.name] = extensionStore.isExtensionEnabled(ext.name); |
|
}); |
|
}); |
|
const changedExtensions = computed(() => { |
|
return extensionStore.extensions.filter( |
|
(ext) => editingEnabledExtensions.value[ext.name] !== extensionStore.isExtensionEnabled(ext.name) |
|
); |
|
}); |
|
const hasChanges = computed(() => { |
|
return changedExtensions.value.length > 0; |
|
}); |
|
const updateExtensionStatus = __name(() => { |
|
const editingDisabledExtensionNames = Object.entries( |
|
editingEnabledExtensions.value |
|
).filter(([_, enabled]) => !enabled).map(([name]) => name); |
|
settingStore.set("Comfy.Extension.Disabled", [ |
|
...extensionStore.inactiveDisabledExtensionNames, |
|
...editingDisabledExtensionNames |
|
]); |
|
}, "updateExtensionStatus"); |
|
const applyChanges = __name(() => { |
|
window.location.reload(); |
|
}, "applyChanges"); |
|
return (_ctx, _cache) => { |
|
return openBlock(), createBlock(_sfc_main$1, { |
|
value: "Extension", |
|
class: "extension-panel" |
|
}, { |
|
header: withCtx(() => [ |
|
createVNode(SearchBox, { |
|
modelValue: filters.value["global"].value, |
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event), |
|
placeholder: _ctx.$t("searchExtensions") + "..." |
|
}, null, 8, ["modelValue", "placeholder"]), |
|
hasChanges.value ? (openBlock(), createBlock(unref(script), { |
|
key: 0, |
|
severity: "info", |
|
"pt:text": "w-full" |
|
}, { |
|
default: withCtx(() => [ |
|
createBaseVNode("ul", null, [ |
|
(openBlock(true), createElementBlock(Fragment, null, renderList(changedExtensions.value, (ext) => { |
|
return openBlock(), createElementBlock("li", { |
|
key: ext.name |
|
}, [ |
|
createBaseVNode("span", null, toDisplayString(unref(extensionStore).isExtensionEnabled(ext.name) ? "[-]" : "[+]"), 1), |
|
createTextVNode(" " + toDisplayString(ext.name), 1) |
|
]); |
|
}), 128)) |
|
]), |
|
createBaseVNode("div", _hoisted_1, [ |
|
createVNode(unref(script$1), { |
|
label: _ctx.$t("reloadToApplyChanges"), |
|
onClick: applyChanges, |
|
outlined: "", |
|
severity: "danger" |
|
}, null, 8, ["label"]) |
|
]) |
|
]), |
|
_: 1 |
|
})) : createCommentVNode("", true) |
|
]), |
|
default: withCtx(() => [ |
|
createVNode(unref(script$4), { |
|
value: unref(extensionStore).extensions, |
|
stripedRows: "", |
|
size: "small", |
|
filters: filters.value |
|
}, { |
|
default: withCtx(() => [ |
|
createVNode(unref(script$2), { |
|
field: "name", |
|
header: _ctx.$t("extensionName"), |
|
sortable: "" |
|
}, null, 8, ["header"]), |
|
createVNode(unref(script$2), { pt: { |
|
bodyCell: "flex items-center justify-end" |
|
} }, { |
|
body: withCtx((slotProps) => [ |
|
createVNode(unref(script$3), { |
|
modelValue: editingEnabledExtensions.value[slotProps.data.name], |
|
"onUpdate:modelValue": __name(($event) => editingEnabledExtensions.value[slotProps.data.name] = $event, "onUpdate:modelValue"), |
|
onChange: updateExtensionStatus |
|
}, null, 8, ["modelValue", "onUpdate:modelValue"]) |
|
]), |
|
_: 1 |
|
}) |
|
]), |
|
_: 1 |
|
}, 8, ["value", "filters"]) |
|
]), |
|
_: 1 |
|
}); |
|
}; |
|
} |
|
}); |
|
export { |
|
_sfc_main as default |
|
}; |
|
|
|
|