comfyui-frontend-package 1.10.16__py3-none-any.whl → 1.10.17__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. comfyui_frontend_package/static/assets/BaseViewTemplate-Cfc_maDe.js +51 -0
  2. comfyui_frontend_package/static/assets/BaseViewTemplate-Cfc_maDe.js.map +1 -0
  3. comfyui_frontend_package/static/assets/CREDIT.txt +1 -0
  4. comfyui_frontend_package/static/assets/DesktopStartView-DVyok7BW.js +19 -0
  5. comfyui_frontend_package/static/assets/DesktopStartView-DVyok7BW.js.map +1 -0
  6. comfyui_frontend_package/static/assets/DesktopUpdateView-C0tkEEm8.js +59 -0
  7. comfyui_frontend_package/static/assets/DesktopUpdateView-C0tkEEm8.js.map +1 -0
  8. comfyui_frontend_package/static/assets/DesktopUpdateView-CoZUcBzh.css +20 -0
  9. comfyui_frontend_package/static/assets/DownloadGitView-GmLJG7y3.js +58 -0
  10. comfyui_frontend_package/static/assets/DownloadGitView-GmLJG7y3.js.map +1 -0
  11. comfyui_frontend_package/static/assets/ExtensionPanel-BxSiczZ7.js +182 -0
  12. comfyui_frontend_package/static/assets/ExtensionPanel-BxSiczZ7.js.map +1 -0
  13. comfyui_frontend_package/static/assets/GraphView-Bcjny_2g.js +5306 -0
  14. comfyui_frontend_package/static/assets/GraphView-Bcjny_2g.js.map +1 -0
  15. comfyui_frontend_package/static/assets/GraphView-DlmVRoyu.css +404 -0
  16. comfyui_frontend_package/static/assets/InstallView-B5n3tAa3.css +81 -0
  17. comfyui_frontend_package/static/assets/InstallView-BdiI5ip6.js +971 -0
  18. comfyui_frontend_package/static/assets/InstallView-BdiI5ip6.js.map +1 -0
  19. comfyui_frontend_package/static/assets/KeybindingPanel-CwPLIgAf.css +8 -0
  20. comfyui_frontend_package/static/assets/KeybindingPanel-hJVF8FAR.js +292 -0
  21. comfyui_frontend_package/static/assets/KeybindingPanel-hJVF8FAR.js.map +1 -0
  22. comfyui_frontend_package/static/assets/MaintenanceView-Cu_e206A.css +87 -0
  23. comfyui_frontend_package/static/assets/MaintenanceView-DO4HPw8x.js +770 -0
  24. comfyui_frontend_package/static/assets/MaintenanceView-DO4HPw8x.js.map +1 -0
  25. comfyui_frontend_package/static/assets/ManualConfigurationView-Cq3hPfap.css +7 -0
  26. comfyui_frontend_package/static/assets/ManualConfigurationView-CvJpDJS_.js +74 -0
  27. comfyui_frontend_package/static/assets/ManualConfigurationView-CvJpDJS_.js.map +1 -0
  28. comfyui_frontend_package/static/assets/MetricsConsentView-CI-g-8Yo.js +86 -0
  29. comfyui_frontend_package/static/assets/MetricsConsentView-CI-g-8Yo.js.map +1 -0
  30. comfyui_frontend_package/static/assets/NotSupportedView-BiyVuLfX.css +19 -0
  31. comfyui_frontend_package/static/assets/NotSupportedView-Cf74_5Wu.js +86 -0
  32. comfyui_frontend_package/static/assets/NotSupportedView-Cf74_5Wu.js.map +1 -0
  33. comfyui_frontend_package/static/assets/ServerConfigPanel-DAMVD2aC.js +156 -0
  34. comfyui_frontend_package/static/assets/ServerConfigPanel-DAMVD2aC.js.map +1 -0
  35. comfyui_frontend_package/static/assets/ServerStartView-BLlSvhJ0.css +5 -0
  36. comfyui_frontend_package/static/assets/ServerStartView-DH5tYErF.js +100 -0
  37. comfyui_frontend_package/static/assets/ServerStartView-DH5tYErF.js.map +1 -0
  38. comfyui_frontend_package/static/assets/TerminalOutputDrawer-7rFWHPs_.js +676 -0
  39. comfyui_frontend_package/static/assets/TerminalOutputDrawer-7rFWHPs_.js.map +1 -0
  40. comfyui_frontend_package/static/assets/UserSelectView-UkgtJ2nt.js +101 -0
  41. comfyui_frontend_package/static/assets/UserSelectView-UkgtJ2nt.js.map +1 -0
  42. comfyui_frontend_package/static/assets/WelcomeView-Cy40CZLr.js +39 -0
  43. comfyui_frontend_package/static/assets/WelcomeView-Cy40CZLr.js.map +1 -0
  44. comfyui_frontend_package/static/assets/WelcomeView-aCH40CSK.css +36 -0
  45. comfyui_frontend_package/static/assets/images/Git-Logo-White.svg +1 -0
  46. comfyui_frontend_package/static/assets/images/apple-mps-logo.png +0 -0
  47. comfyui_frontend_package/static/assets/images/manual-configuration.svg +5 -0
  48. comfyui_frontend_package/static/assets/images/nvidia-logo.svg +6 -0
  49. comfyui_frontend_package/static/assets/images/sad_girl.png +0 -0
  50. comfyui_frontend_package/static/assets/index-BUod660P.css +4972 -0
  51. comfyui_frontend_package/static/assets/index-Bau4Kssl.js +392 -0
  52. comfyui_frontend_package/static/assets/index-Bau4Kssl.js.map +1 -0
  53. comfyui_frontend_package/static/assets/index-C1Lqjdil.js +539 -0
  54. comfyui_frontend_package/static/assets/index-C1Lqjdil.js.map +1 -0
  55. comfyui_frontend_package/static/assets/index-C9mZcmb9.js +224952 -0
  56. comfyui_frontend_package/static/assets/index-C9mZcmb9.js.map +1 -0
  57. comfyui_frontend_package/static/assets/index-CC55z89j.css +149 -0
  58. comfyui_frontend_package/static/assets/index-CDQonahO.js +27 -0
  59. comfyui_frontend_package/static/assets/index-CDQonahO.js.map +1 -0
  60. comfyui_frontend_package/static/assets/index-DR8gUcA3.js +54899 -0
  61. comfyui_frontend_package/static/assets/index-DR8gUcA3.js.map +1 -0
  62. comfyui_frontend_package/static/assets/index-DgMP9-YA.js +24875 -0
  63. comfyui_frontend_package/static/assets/index-DgMP9-YA.js.map +1 -0
  64. comfyui_frontend_package/static/assets/index-DuUExRqW.js +618 -0
  65. comfyui_frontend_package/static/assets/index-DuUExRqW.js.map +1 -0
  66. comfyui_frontend_package/static/assets/index-MqedrmEn.js +8790 -0
  67. comfyui_frontend_package/static/assets/index-MqedrmEn.js.map +1 -0
  68. comfyui_frontend_package/static/assets/index-XFtdqRHS.js +4993 -0
  69. comfyui_frontend_package/static/assets/index-XFtdqRHS.js.map +1 -0
  70. comfyui_frontend_package/static/assets/keybindingService-BHWf0bpL.js +250 -0
  71. comfyui_frontend_package/static/assets/keybindingService-BHWf0bpL.js.map +1 -0
  72. comfyui_frontend_package/static/assets/primeicons-C6QP2o4f.woff2 +0 -0
  73. comfyui_frontend_package/static/assets/primeicons-DMOk5skT.eot +0 -0
  74. comfyui_frontend_package/static/assets/primeicons-Dr5RGzOO.svg +345 -0
  75. comfyui_frontend_package/static/assets/primeicons-MpK4pl85.ttf +0 -0
  76. comfyui_frontend_package/static/assets/primeicons-WjwUDZjB.woff +0 -0
  77. comfyui_frontend_package/static/assets/serverConfigStore-SH1U-rDu.js +90 -0
  78. comfyui_frontend_package/static/assets/serverConfigStore-SH1U-rDu.js.map +1 -0
  79. comfyui_frontend_package/static/assets/sorted-custom-node-map.json +2602 -0
  80. comfyui_frontend_package/static/assets/uvMirrors-B-HKMf6X.js +16 -0
  81. comfyui_frontend_package/static/assets/uvMirrors-B-HKMf6X.js.map +1 -0
  82. comfyui_frontend_package/static/cursor/colorSelect.png +0 -0
  83. comfyui_frontend_package/static/cursor/paintBucket.png +0 -0
  84. comfyui_frontend_package/static/extensions/core/clipspace.js +2 -0
  85. comfyui_frontend_package/static/extensions/core/groupNode.js +3 -0
  86. comfyui_frontend_package/static/extensions/core/groupNodeManage.js +2 -0
  87. comfyui_frontend_package/static/extensions/core/maskEditorOld.js +2 -0
  88. comfyui_frontend_package/static/extensions/core/widgetInputs.js +5 -0
  89. comfyui_frontend_package/static/fonts/materialdesignicons-webfont.woff2 +0 -0
  90. comfyui_frontend_package/static/index.html +15 -0
  91. comfyui_frontend_package/static/materialdesignicons.min.css +3 -0
  92. comfyui_frontend_package/static/scripts/api.js +3 -0
  93. comfyui_frontend_package/static/scripts/app.js +4 -0
  94. comfyui_frontend_package/static/scripts/changeTracker.js +2 -0
  95. comfyui_frontend_package/static/scripts/defaultGraph.js +4 -0
  96. comfyui_frontend_package/static/scripts/domWidget.js +2 -0
  97. comfyui_frontend_package/static/scripts/metadata/flac.js +3 -0
  98. comfyui_frontend_package/static/scripts/metadata/png.js +3 -0
  99. comfyui_frontend_package/static/scripts/pnginfo.js +6 -0
  100. comfyui_frontend_package/static/scripts/ui/components/asyncDialog.js +2 -0
  101. comfyui_frontend_package/static/scripts/ui/components/button.js +2 -0
  102. comfyui_frontend_package/static/scripts/ui/components/buttonGroup.js +2 -0
  103. comfyui_frontend_package/static/scripts/ui/components/popup.js +2 -0
  104. comfyui_frontend_package/static/scripts/ui/components/splitButton.js +2 -0
  105. comfyui_frontend_package/static/scripts/ui/dialog.js +2 -0
  106. comfyui_frontend_package/static/scripts/ui/draggableList.js +2 -0
  107. comfyui_frontend_package/static/scripts/ui/imagePreview.js +3 -0
  108. comfyui_frontend_package/static/scripts/ui/menu/index.js +2 -0
  109. comfyui_frontend_package/static/scripts/ui/settings.js +2 -0
  110. comfyui_frontend_package/static/scripts/ui/toggleSwitch.js +2 -0
  111. comfyui_frontend_package/static/scripts/ui/utils.js +3 -0
  112. comfyui_frontend_package/static/scripts/ui.js +4 -0
  113. comfyui_frontend_package/static/scripts/utils.js +9 -0
  114. comfyui_frontend_package/static/scripts/widgets.js +6 -0
  115. comfyui_frontend_package/static/templates/2_pass_pose_worship-1.webp +0 -0
  116. comfyui_frontend_package/static/templates/2_pass_pose_worship-2.webp +0 -0
  117. comfyui_frontend_package/static/templates/2_pass_pose_worship.json +673 -0
  118. comfyui_frontend_package/static/templates/area_composition-1.webp +0 -0
  119. comfyui_frontend_package/static/templates/area_composition.json +966 -0
  120. comfyui_frontend_package/static/templates/area_composition_reversed-1.webp +0 -0
  121. comfyui_frontend_package/static/templates/area_composition_reversed.json +967 -0
  122. comfyui_frontend_package/static/templates/area_composition_square_area_for_subject-1.webp +0 -0
  123. comfyui_frontend_package/static/templates/area_composition_square_area_for_subject.json +620 -0
  124. comfyui_frontend_package/static/templates/controlnet_example-1.webp +0 -0
  125. comfyui_frontend_package/static/templates/controlnet_example-2.webp +0 -0
  126. comfyui_frontend_package/static/templates/controlnet_example.json +385 -0
  127. comfyui_frontend_package/static/templates/default-1.webp +0 -0
  128. comfyui_frontend_package/static/templates/default.json +356 -0
  129. comfyui_frontend_package/static/templates/depth_controlnet-1.webp +0 -0
  130. comfyui_frontend_package/static/templates/depth_controlnet-2.webp +0 -0
  131. comfyui_frontend_package/static/templates/depth_controlnet.json +378 -0
  132. comfyui_frontend_package/static/templates/depth_t2i_adapter-1.webp +0 -0
  133. comfyui_frontend_package/static/templates/depth_t2i_adapter-2.webp +0 -0
  134. comfyui_frontend_package/static/templates/depth_t2i_adapter.json +371 -0
  135. comfyui_frontend_package/static/templates/embedding_example-1.webp +0 -0
  136. comfyui_frontend_package/static/templates/embedding_example.json +267 -0
  137. comfyui_frontend_package/static/templates/esrgan_example-1.webp +0 -0
  138. comfyui_frontend_package/static/templates/esrgan_example.json +329 -0
  139. comfyui_frontend_package/static/templates/flux_canny_model_example-1.webp +0 -0
  140. comfyui_frontend_package/static/templates/flux_canny_model_example-2.webp +0 -0
  141. comfyui_frontend_package/static/templates/flux_canny_model_example.json +474 -0
  142. comfyui_frontend_package/static/templates/flux_depth_lora_example-1.webp +0 -0
  143. comfyui_frontend_package/static/templates/flux_depth_lora_example-2.webp +0 -0
  144. comfyui_frontend_package/static/templates/flux_depth_lora_example.json +454 -0
  145. comfyui_frontend_package/static/templates/flux_dev_checkpoint_example-1.webp +0 -0
  146. comfyui_frontend_package/static/templates/flux_dev_checkpoint_example.json +332 -0
  147. comfyui_frontend_package/static/templates/flux_dev_example.json +771 -0
  148. comfyui_frontend_package/static/templates/flux_fill_inpaint_example-1.webp +0 -0
  149. comfyui_frontend_package/static/templates/flux_fill_inpaint_example-2.webp +0 -0
  150. comfyui_frontend_package/static/templates/flux_fill_inpaint_example.json +458 -0
  151. comfyui_frontend_package/static/templates/flux_fill_outpaint_example-1.webp +0 -0
  152. comfyui_frontend_package/static/templates/flux_fill_outpaint_example-2.webp +0 -0
  153. comfyui_frontend_package/static/templates/flux_fill_outpaint_example.json +491 -0
  154. comfyui_frontend_package/static/templates/flux_redux_model_example-1.webp +0 -0
  155. comfyui_frontend_package/static/templates/flux_redux_model_example.json +951 -0
  156. comfyui_frontend_package/static/templates/flux_schnell-1.webp +0 -0
  157. comfyui_frontend_package/static/templates/flux_schnell.json +302 -0
  158. comfyui_frontend_package/static/templates/gligen_textbox_example-1.webp +0 -0
  159. comfyui_frontend_package/static/templates/gligen_textbox_example.json +376 -0
  160. comfyui_frontend_package/static/templates/hiresfix_esrgan_workflow-1.webp +0 -0
  161. comfyui_frontend_package/static/templates/hiresfix_esrgan_workflow.json +607 -0
  162. comfyui_frontend_package/static/templates/hiresfix_latent_workflow-1.webp +0 -0
  163. comfyui_frontend_package/static/templates/hiresfix_latent_workflow.json +442 -0
  164. comfyui_frontend_package/static/templates/hunyuan_video_text_to_video-1.webp +0 -0
  165. comfyui_frontend_package/static/templates/hunyuan_video_text_to_video.json +553 -0
  166. comfyui_frontend_package/static/templates/image2image-1.webp +0 -0
  167. comfyui_frontend_package/static/templates/image2image.json +447 -0
  168. comfyui_frontend_package/static/templates/image_to_video-1.webp +0 -0
  169. comfyui_frontend_package/static/templates/image_to_video.json +314 -0
  170. comfyui_frontend_package/static/templates/inpain_model_outpainting-1.webp +0 -0
  171. comfyui_frontend_package/static/templates/inpain_model_outpainting-2.webp +0 -0
  172. comfyui_frontend_package/static/templates/inpain_model_outpainting.json +360 -0
  173. comfyui_frontend_package/static/templates/inpaint_example-1.webp +0 -0
  174. comfyui_frontend_package/static/templates/inpaint_example-2.webp +0 -0
  175. comfyui_frontend_package/static/templates/inpaint_example.json +323 -0
  176. comfyui_frontend_package/static/templates/latent_upscale_different_prompt_model-1.webp +0 -0
  177. comfyui_frontend_package/static/templates/latent_upscale_different_prompt_model.json +528 -0
  178. comfyui_frontend_package/static/templates/lora-1.webp +0 -0
  179. comfyui_frontend_package/static/templates/lora.json +311 -0
  180. comfyui_frontend_package/static/templates/lora_multiple-1.webp +0 -0
  181. comfyui_frontend_package/static/templates/lora_multiple.json +357 -0
  182. comfyui_frontend_package/static/templates/ltxv_image_to_video-1.webp +0 -0
  183. comfyui_frontend_package/static/templates/ltxv_image_to_video.json +482 -0
  184. comfyui_frontend_package/static/templates/ltxv_text_to_video-1.webp +0 -0
  185. comfyui_frontend_package/static/templates/ltxv_text_to_video.json +419 -0
  186. comfyui_frontend_package/static/templates/mixing_controlnets-1.webp +0 -0
  187. comfyui_frontend_package/static/templates/mixing_controlnets-2.webp +0 -0
  188. comfyui_frontend_package/static/templates/mixing_controlnets.json +492 -0
  189. comfyui_frontend_package/static/templates/mochi_text_to_video_example-1.webp +0 -0
  190. comfyui_frontend_package/static/templates/mochi_text_to_video_example.json +308 -0
  191. comfyui_frontend_package/static/templates/sd3.5_large_blur-1.webp +0 -0
  192. comfyui_frontend_package/static/templates/sd3.5_large_blur-2.webp +0 -0
  193. comfyui_frontend_package/static/templates/sd3.5_large_blur.json +582 -0
  194. comfyui_frontend_package/static/templates/sd3.5_large_canny_controlnet_example-1.webp +0 -0
  195. comfyui_frontend_package/static/templates/sd3.5_large_canny_controlnet_example-2.webp +0 -0
  196. comfyui_frontend_package/static/templates/sd3.5_large_canny_controlnet_example.json +470 -0
  197. comfyui_frontend_package/static/templates/sd3.5_large_depth-1.webp +0 -0
  198. comfyui_frontend_package/static/templates/sd3.5_large_depth-2.webp +0 -0
  199. comfyui_frontend_package/static/templates/sd3.5_large_depth.json +713 -0
  200. comfyui_frontend_package/static/templates/sd3.5_simple_example-1.webp +0 -0
  201. comfyui_frontend_package/static/templates/sd3.5_simple_example.json +278 -0
  202. comfyui_frontend_package/static/templates/sdxl_refiner_prompt_example-1.webp +0 -0
  203. comfyui_frontend_package/static/templates/sdxl_refiner_prompt_example.json +728 -0
  204. comfyui_frontend_package/static/templates/sdxl_revision_text_prompts-1.webp +0 -0
  205. comfyui_frontend_package/static/templates/sdxl_revision_text_prompts.json +490 -0
  206. comfyui_frontend_package/static/templates/sdxl_revision_zero_positive-1.webp +0 -0
  207. comfyui_frontend_package/static/templates/sdxl_revision_zero_positive.json +494 -0
  208. comfyui_frontend_package/static/templates/sdxl_simple_example-1.webp +0 -0
  209. comfyui_frontend_package/static/templates/sdxl_simple_example.json +896 -0
  210. comfyui_frontend_package/static/templates/sdxlturbo_example-1.webp +0 -0
  211. comfyui_frontend_package/static/templates/sdxlturbo_example.json +372 -0
  212. comfyui_frontend_package/static/templates/stable_audio_example-1.flac +0 -0
  213. comfyui_frontend_package/static/templates/stable_audio_example.json +302 -0
  214. comfyui_frontend_package/static/templates/stable_zero123_example-1.webp +0 -0
  215. comfyui_frontend_package/static/templates/stable_zero123_example.json +273 -0
  216. comfyui_frontend_package/static/templates/txt_to_image_to_video-1.webp +0 -0
  217. comfyui_frontend_package/static/templates/txt_to_image_to_video.json +535 -0
  218. comfyui_frontend_package/static/user.css +1 -0
  219. {comfyui_frontend_package-1.10.16.dist-info → comfyui_frontend_package-1.10.17.dist-info}/METADATA +1 -1
  220. comfyui_frontend_package-1.10.17.dist-info/RECORD +223 -0
  221. comfyui_frontend_package-1.10.17.dist-info/top_level.txt +1 -0
  222. comfyui_frontend_package-1.10.16.dist-info/RECORD +0 -5
  223. comfyui_frontend_package-1.10.16.dist-info/top_level.txt +0 -1
  224. {comfyui_frontend → comfyui_frontend_package}/__init__.py +0 -0
  225. {comfyui_frontend_package-1.10.16.dist-info → comfyui_frontend_package-1.10.17.dist-info}/WHEEL +0 -0
@@ -0,0 +1,51 @@
1
+ import { d as defineComponent, T as ref, p as onMounted, bf as isElectron, V as nextTick, bg as electronAPI, o as openBlock, f as createElementBlock, i as withDirectives, v as vShow, j as unref, bh as isNativeWindow, m as createBaseVNode, A as renderSlot, Y as normalizeClass } from "./index-C9mZcmb9.js";
2
+ const _hoisted_1 = { class: "flex-grow w-full flex items-center justify-center overflow-auto" };
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "BaseViewTemplate",
5
+ props: {
6
+ dark: { type: Boolean, default: false }
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ const darkTheme = {
11
+ color: "rgba(0, 0, 0, 0)",
12
+ symbolColor: "#d4d4d4"
13
+ };
14
+ const lightTheme = {
15
+ color: "rgba(0, 0, 0, 0)",
16
+ symbolColor: "#171717"
17
+ };
18
+ const topMenuRef = ref(null);
19
+ onMounted(async () => {
20
+ if (isElectron()) {
21
+ await nextTick();
22
+ electronAPI().changeTheme({
23
+ ...props.dark ? darkTheme : lightTheme,
24
+ height: topMenuRef.value.getBoundingClientRect().height
25
+ });
26
+ }
27
+ });
28
+ return (_ctx, _cache) => {
29
+ return openBlock(), createElementBlock("div", {
30
+ class: normalizeClass(["font-sans w-screen h-screen flex flex-col", [
31
+ props.dark ? "text-neutral-300 bg-neutral-900 dark-theme" : "text-neutral-900 bg-neutral-300"
32
+ ]])
33
+ }, [
34
+ withDirectives(createBaseVNode("div", {
35
+ ref_key: "topMenuRef",
36
+ ref: topMenuRef,
37
+ class: "app-drag w-full h-[var(--comfy-topbar-height)]"
38
+ }, null, 512), [
39
+ [vShow, unref(isNativeWindow)()]
40
+ ]),
41
+ createBaseVNode("div", _hoisted_1, [
42
+ renderSlot(_ctx.$slots, "default")
43
+ ])
44
+ ], 2);
45
+ };
46
+ }
47
+ });
48
+ export {
49
+ _sfc_main as _
50
+ };
51
+ //# sourceMappingURL=BaseViewTemplate-Cfc_maDe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseViewTemplate-Cfc_maDe.js","sources":["../../src/views/templates/BaseViewTemplate.vue"],"sourcesContent":["<template>\n <div\n class=\"font-sans w-screen h-screen flex flex-col\"\n :class=\"[\n props.dark\n ? 'text-neutral-300 bg-neutral-900 dark-theme'\n : 'text-neutral-900 bg-neutral-300'\n ]\"\n >\n <!-- Virtual top menu for native window (drag handle) -->\n <div\n v-show=\"isNativeWindow()\"\n ref=\"topMenuRef\"\n class=\"app-drag w-full h-[var(--comfy-topbar-height)]\"\n />\n <div\n class=\"flex-grow w-full flex items-center justify-center overflow-auto\"\n >\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { nextTick, onMounted, ref } from 'vue'\n\nimport { electronAPI, isElectron, isNativeWindow } from '@/utils/envUtil'\n\nconst props = withDefaults(\n defineProps<{\n dark?: boolean\n }>(),\n {\n dark: false\n }\n)\n\nconst darkTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#d4d4d4'\n}\n\nconst lightTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#171717'\n}\n\nconst topMenuRef = ref<HTMLDivElement | null>(null)\nonMounted(async () => {\n if (isElectron()) {\n await nextTick()\n\n electronAPI().changeTheme({\n ...(props.dark ? darkTheme : lightTheme),\n height: topMenuRef.value.getBoundingClientRect().height\n })\n }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;AA4BA,UAAM,QAAQ;AASd,UAAM,YAAY;AAAA,MAChB,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAGf,UAAM,aAAa;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAGT,UAAA,aAAa,IAA2B,IAAI;AAClD,cAAU,YAAY;AACpB,UAAI,cAAc;AAChB,cAAM,SAAS;AAEf,oBAAA,EAAc,YAAY;AAAA,UACxB,GAAI,MAAM,OAAO,YAAY;AAAA,UAC7B,QAAQ,WAAW,MAAM,sBAAwB,EAAA;AAAA,QAAA,CAClD;AAAA,MACH;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ Thanks to OpenArt (https://openart.ai) for providing the sorted-custom-node-map data, captured in September 2024.
@@ -0,0 +1,19 @@
1
+ import { d as defineComponent, o as openBlock, y as createBlock, z as withCtx, k as createVNode, j as unref, bL as script } from "./index-C9mZcmb9.js";
2
+ import { _ as _sfc_main$1 } from "./BaseViewTemplate-Cfc_maDe.js";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "DesktopStartView",
5
+ setup(__props) {
6
+ return (_ctx, _cache) => {
7
+ return openBlock(), createBlock(_sfc_main$1, { dark: "" }, {
8
+ default: withCtx(() => [
9
+ createVNode(unref(script), { class: "m-8 w-48 h-48" })
10
+ ]),
11
+ _: 1
12
+ });
13
+ };
14
+ }
15
+ });
16
+ export {
17
+ _sfc_main as default
18
+ };
19
+ //# sourceMappingURL=DesktopStartView-DVyok7BW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopStartView-DVyok7BW.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { d as defineComponent, T as ref, bS as onUnmounted, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, j as unref, bn as t, k as createVNode, bL as script, l as script$1, bg as electronAPI, _ as _export_sfc } from "./index-C9mZcmb9.js";
4
+ import { s as script$2 } from "./index-DuUExRqW.js";
5
+ import { _ as _sfc_main$1 } from "./TerminalOutputDrawer-7rFWHPs_.js";
6
+ import { _ as _sfc_main$2 } from "./BaseViewTemplate-Cfc_maDe.js";
7
+ import "./index-Bau4Kssl.js";
8
+ const _hoisted_1 = { class: "h-screen w-screen grid items-center justify-around overflow-y-auto" };
9
+ const _hoisted_2 = { class: "relative m-8 text-center" };
10
+ const _hoisted_3 = { class: "download-bg pi-download text-4xl font-bold" };
11
+ const _hoisted_4 = { class: "m-8" };
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ __name: "DesktopUpdateView",
14
+ setup(__props) {
15
+ const electron = electronAPI();
16
+ const terminalVisible = ref(false);
17
+ const toggleConsoleDrawer = /* @__PURE__ */ __name(() => {
18
+ terminalVisible.value = !terminalVisible.value;
19
+ }, "toggleConsoleDrawer");
20
+ onUnmounted(() => electron.Validation.dispose());
21
+ return (_ctx, _cache) => {
22
+ return openBlock(), createBlock(_sfc_main$2, { dark: "" }, {
23
+ default: withCtx(() => [
24
+ createBaseVNode("div", _hoisted_1, [
25
+ createBaseVNode("div", _hoisted_2, [
26
+ createBaseVNode("h1", _hoisted_3, toDisplayString(unref(t)("desktopUpdate.title")), 1),
27
+ createBaseVNode("div", _hoisted_4, [
28
+ createBaseVNode("span", null, toDisplayString(unref(t)("desktopUpdate.description")), 1)
29
+ ]),
30
+ createVNode(unref(script), { class: "m-8 w-48 h-48" }),
31
+ createVNode(unref(script$1), {
32
+ style: { "transform": "translateX(-50%)" },
33
+ class: "fixed bottom-0 left-1/2 my-8",
34
+ label: unref(t)("maintenance.consoleLogs"),
35
+ icon: "pi pi-desktop",
36
+ "icon-pos": "left",
37
+ severity: "secondary",
38
+ onClick: toggleConsoleDrawer
39
+ }, null, 8, ["label"]),
40
+ createVNode(_sfc_main$1, {
41
+ modelValue: terminalVisible.value,
42
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => terminalVisible.value = $event),
43
+ header: unref(t)("g.terminal"),
44
+ "default-message": unref(t)("desktopUpdate.terminalDefaultMessage")
45
+ }, null, 8, ["modelValue", "header", "default-message"])
46
+ ])
47
+ ]),
48
+ createVNode(unref(script$2))
49
+ ]),
50
+ _: 1
51
+ });
52
+ };
53
+ }
54
+ });
55
+ const DesktopUpdateView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8d77828d"]]);
56
+ export {
57
+ DesktopUpdateView as default
58
+ };
59
+ //# sourceMappingURL=DesktopUpdateView-C0tkEEm8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopUpdateView-C0tkEEm8.js","sources":["../../src/views/DesktopUpdateView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark>\n <div\n class=\"h-screen w-screen grid items-center justify-around overflow-y-auto\"\n >\n <div class=\"relative m-8 text-center\">\n <!-- Header -->\n <h1 class=\"download-bg pi-download text-4xl font-bold\">\n {{ t('desktopUpdate.title') }}\n </h1>\n\n <div class=\"m-8\">\n <span>{{ t('desktopUpdate.description') }}</span>\n </div>\n\n <ProgressSpinner class=\"m-8 w-48 h-48\" />\n\n <!-- Console button -->\n <Button\n style=\"transform: translateX(-50%)\"\n class=\"fixed bottom-0 left-1/2 my-8\"\n :label=\"t('maintenance.consoleLogs')\"\n icon=\"pi pi-desktop\"\n icon-pos=\"left\"\n severity=\"secondary\"\n @click=\"toggleConsoleDrawer\"\n />\n\n <TerminalOutputDrawer\n v-model=\"terminalVisible\"\n :header=\"t('g.terminal')\"\n :default-message=\"t('desktopUpdate.terminalDefaultMessage')\"\n />\n </div>\n </div>\n <Toast />\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport ProgressSpinner from 'primevue/progressspinner'\nimport Toast from 'primevue/toast'\nimport { onUnmounted, ref } from 'vue'\n\nimport TerminalOutputDrawer from '@/components/maintenance/TerminalOutputDrawer.vue'\nimport { t } from '@/i18n'\nimport { electronAPI } from '@/utils/envUtil'\n\nimport BaseViewTemplate from './templates/BaseViewTemplate.vue'\n\nconst electron = electronAPI()\n\nconst terminalVisible = ref(false)\n\nconst toggleConsoleDrawer = () => {\n terminalVisible.value = !terminalVisible.value\n}\n\nonUnmounted(() => electron.Validation.dispose())\n</script>\n\n<style scoped>\n.download-bg::before {\n @apply m-0 absolute text-muted;\n font-family: 'primeicons';\n top: -2rem;\n right: 2rem;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n display: inline-block;\n -webkit-font-smoothing: antialiased;\n opacity: 0.02;\n font-size: min(14rem, 90vw);\n z-index: 0;\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmDA,UAAM,WAAW;AAEX,UAAA,kBAAkB,IAAI,KAAK;AAEjC,UAAM,sBAAsB,6BAAM;AAChB,sBAAA,QAAQ,CAAC,gBAAgB;AAAA,IAAA,GADf;AAI5B,gBAAY,MAAM,SAAS,WAAW,QAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+
2
+ .download-bg[data-v-8d77828d]::before {
3
+ position: absolute;
4
+ margin: 0px;
5
+ color: var(--p-text-muted-color);
6
+ font-family: 'primeicons';
7
+ top: -2rem;
8
+ right: 2rem;
9
+ speak: none;
10
+ font-style: normal;
11
+ font-weight: normal;
12
+ font-variant: normal;
13
+ text-transform: none;
14
+ line-height: 1;
15
+ display: inline-block;
16
+ -webkit-font-smoothing: antialiased;
17
+ opacity: 0.02;
18
+ font-size: min(14rem, 90vw);
19
+ z-index: 0
20
+ }
@@ -0,0 +1,58 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { d as defineComponent, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, j as unref, l as script, bp as useRouter } from "./index-C9mZcmb9.js";
4
+ import { _ as _sfc_main$1 } from "./BaseViewTemplate-Cfc_maDe.js";
5
+ const _hoisted_1 = { class: "max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding" };
6
+ const _hoisted_2 = { class: "mt-24 text-4xl font-bold text-red-500" };
7
+ const _hoisted_3 = { class: "space-y-4" };
8
+ const _hoisted_4 = { class: "text-xl" };
9
+ const _hoisted_5 = { class: "text-xl" };
10
+ const _hoisted_6 = { class: "text-m" };
11
+ const _hoisted_7 = { class: "flex gap-4 flex-row-reverse" };
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ __name: "DownloadGitView",
14
+ setup(__props) {
15
+ const openGitDownloads = /* @__PURE__ */ __name(() => {
16
+ window.open("https://git-scm.com/downloads/", "_blank");
17
+ }, "openGitDownloads");
18
+ const skipGit = /* @__PURE__ */ __name(() => {
19
+ console.warn("pushing");
20
+ const router = useRouter();
21
+ router.push("install");
22
+ }, "skipGit");
23
+ return (_ctx, _cache) => {
24
+ return openBlock(), createBlock(_sfc_main$1, null, {
25
+ default: withCtx(() => [
26
+ createBaseVNode("div", _hoisted_1, [
27
+ createBaseVNode("h1", _hoisted_2, toDisplayString(_ctx.$t("downloadGit.title")), 1),
28
+ createBaseVNode("div", _hoisted_3, [
29
+ createBaseVNode("p", _hoisted_4, toDisplayString(_ctx.$t("downloadGit.message")), 1),
30
+ createBaseVNode("p", _hoisted_5, toDisplayString(_ctx.$t("downloadGit.instructions")), 1),
31
+ createBaseVNode("p", _hoisted_6, toDisplayString(_ctx.$t("downloadGit.warning")), 1)
32
+ ]),
33
+ createBaseVNode("div", _hoisted_7, [
34
+ createVNode(unref(script), {
35
+ label: _ctx.$t("downloadGit.gitWebsite"),
36
+ icon: "pi pi-external-link",
37
+ "icon-pos": "right",
38
+ onClick: openGitDownloads,
39
+ severity: "primary"
40
+ }, null, 8, ["label"]),
41
+ createVNode(unref(script), {
42
+ label: _ctx.$t("downloadGit.skip"),
43
+ icon: "pi pi-exclamation-triangle",
44
+ onClick: skipGit,
45
+ severity: "secondary"
46
+ }, null, 8, ["label"])
47
+ ])
48
+ ])
49
+ ]),
50
+ _: 1
51
+ });
52
+ };
53
+ }
54
+ });
55
+ export {
56
+ _sfc_main as default
57
+ };
58
+ //# sourceMappingURL=DownloadGitView-GmLJG7y3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DownloadGitView-GmLJG7y3.js","sources":["../../src/views/DownloadGitView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate>\n <div\n class=\"max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding\"\n >\n <!-- Header -->\n <h1 class=\"mt-24 text-4xl font-bold text-red-500\">\n {{ $t('downloadGit.title') }}\n </h1>\n\n <!-- Message -->\n <div class=\"space-y-4\">\n <p class=\"text-xl\">\n {{ $t('downloadGit.message') }}\n </p>\n <p class=\"text-xl\">\n {{ $t('downloadGit.instructions') }}\n </p>\n <p class=\"text-m\">\n {{ $t('downloadGit.warning') }}\n </p>\n </div>\n\n <!-- Actions -->\n <div class=\"flex gap-4 flex-row-reverse\">\n <Button\n :label=\"$t('downloadGit.gitWebsite')\"\n icon=\"pi pi-external-link\"\n icon-pos=\"right\"\n @click=\"openGitDownloads\"\n severity=\"primary\"\n />\n <Button\n :label=\"$t('downloadGit.skip')\"\n icon=\"pi pi-exclamation-triangle\"\n @click=\"skipGit\"\n severity=\"secondary\"\n />\n </div>\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport { useRouter } from 'vue-router'\n\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst openGitDownloads = () => {\n window.open('https://git-scm.com/downloads/', '_blank')\n}\n\nconst skipGit = () => {\n console.warn('pushing')\n const router = useRouter()\n router.push('install')\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAiDA,UAAM,mBAAmB,6BAAM;AACtB,aAAA,KAAK,kCAAkC,QAAQ;AAAA,IAAA,GAD/B;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS;AACf,aAAO,KAAK,SAAS;AAAA,IAAA,GAHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,182 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { d as defineComponent, T as ref, dE as FilterMatchMode, dJ as useExtensionStore, a as useSettingStore, p as onMounted, c as computed, o as openBlock, y as createBlock, z as withCtx, k as createVNode, dF as SearchBox, j as unref, bu as script, m as createBaseVNode, f as createElementBlock, D as renderList, E as toDisplayString, aj as createTextVNode, F as Fragment, l as script$1, B as createCommentVNode, ag as script$3, aH as script$4, by as script$5, dG as _sfc_main$1 } from "./index-C9mZcmb9.js";
4
+ import { g as script$2, h as script$6 } from "./index-MqedrmEn.js";
5
+ import "./index-CDQonahO.js";
6
+ const _hoisted_1 = { class: "flex justify-end" };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "ExtensionPanel",
9
+ setup(__props) {
10
+ const filters = ref({
11
+ global: { value: "", matchMode: FilterMatchMode.CONTAINS }
12
+ });
13
+ const extensionStore = useExtensionStore();
14
+ const settingStore = useSettingStore();
15
+ const editingEnabledExtensions = ref({});
16
+ onMounted(() => {
17
+ extensionStore.extensions.forEach((ext) => {
18
+ editingEnabledExtensions.value[ext.name] = extensionStore.isExtensionEnabled(ext.name);
19
+ });
20
+ });
21
+ const changedExtensions = computed(() => {
22
+ return extensionStore.extensions.filter(
23
+ (ext) => editingEnabledExtensions.value[ext.name] !== extensionStore.isExtensionEnabled(ext.name)
24
+ );
25
+ });
26
+ const hasChanges = computed(() => {
27
+ return changedExtensions.value.length > 0;
28
+ });
29
+ const updateExtensionStatus = /* @__PURE__ */ __name(() => {
30
+ const editingDisabledExtensionNames = Object.entries(
31
+ editingEnabledExtensions.value
32
+ ).filter(([_, enabled]) => !enabled).map(([name]) => name);
33
+ settingStore.set("Comfy.Extension.Disabled", [
34
+ ...extensionStore.inactiveDisabledExtensionNames,
35
+ ...editingDisabledExtensionNames
36
+ ]);
37
+ }, "updateExtensionStatus");
38
+ const enableAllExtensions = /* @__PURE__ */ __name(() => {
39
+ extensionStore.extensions.forEach((ext) => {
40
+ if (extensionStore.isExtensionReadOnly(ext.name)) return;
41
+ editingEnabledExtensions.value[ext.name] = true;
42
+ });
43
+ updateExtensionStatus();
44
+ }, "enableAllExtensions");
45
+ const disableAllExtensions = /* @__PURE__ */ __name(() => {
46
+ extensionStore.extensions.forEach((ext) => {
47
+ if (extensionStore.isExtensionReadOnly(ext.name)) return;
48
+ editingEnabledExtensions.value[ext.name] = false;
49
+ });
50
+ updateExtensionStatus();
51
+ }, "disableAllExtensions");
52
+ const disableThirdPartyExtensions = /* @__PURE__ */ __name(() => {
53
+ extensionStore.extensions.forEach((ext) => {
54
+ if (extensionStore.isCoreExtension(ext.name)) return;
55
+ editingEnabledExtensions.value[ext.name] = false;
56
+ });
57
+ updateExtensionStatus();
58
+ }, "disableThirdPartyExtensions");
59
+ const applyChanges = /* @__PURE__ */ __name(() => {
60
+ window.location.reload();
61
+ }, "applyChanges");
62
+ const menu = ref();
63
+ const contextMenuItems = [
64
+ {
65
+ label: "Enable All",
66
+ icon: "pi pi-check",
67
+ command: enableAllExtensions
68
+ },
69
+ {
70
+ label: "Disable All",
71
+ icon: "pi pi-times",
72
+ command: disableAllExtensions
73
+ },
74
+ {
75
+ label: "Disable 3rd Party",
76
+ icon: "pi pi-times",
77
+ command: disableThirdPartyExtensions,
78
+ disabled: !extensionStore.hasThirdPartyExtensions
79
+ }
80
+ ];
81
+ return (_ctx, _cache) => {
82
+ return openBlock(), createBlock(_sfc_main$1, {
83
+ value: "Extension",
84
+ class: "extension-panel"
85
+ }, {
86
+ header: withCtx(() => [
87
+ createVNode(SearchBox, {
88
+ modelValue: filters.value["global"].value,
89
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event),
90
+ placeholder: _ctx.$t("g.searchExtensions") + "..."
91
+ }, null, 8, ["modelValue", "placeholder"]),
92
+ hasChanges.value ? (openBlock(), createBlock(unref(script), {
93
+ key: 0,
94
+ severity: "info",
95
+ "pt:text": "w-full",
96
+ class: "max-h-96 overflow-y-auto"
97
+ }, {
98
+ default: withCtx(() => [
99
+ createBaseVNode("ul", null, [
100
+ (openBlock(true), createElementBlock(Fragment, null, renderList(changedExtensions.value, (ext) => {
101
+ return openBlock(), createElementBlock("li", {
102
+ key: ext.name
103
+ }, [
104
+ createBaseVNode("span", null, toDisplayString(unref(extensionStore).isExtensionEnabled(ext.name) ? "[-]" : "[+]"), 1),
105
+ createTextVNode(" " + toDisplayString(ext.name), 1)
106
+ ]);
107
+ }), 128))
108
+ ]),
109
+ createBaseVNode("div", _hoisted_1, [
110
+ createVNode(unref(script$1), {
111
+ label: _ctx.$t("g.reloadToApplyChanges"),
112
+ onClick: applyChanges,
113
+ outlined: "",
114
+ severity: "danger"
115
+ }, null, 8, ["label"])
116
+ ])
117
+ ]),
118
+ _: 1
119
+ })) : createCommentVNode("", true)
120
+ ]),
121
+ default: withCtx(() => [
122
+ createVNode(unref(script$6), {
123
+ value: unref(extensionStore).extensions,
124
+ stripedRows: "",
125
+ size: "small",
126
+ filters: filters.value
127
+ }, {
128
+ default: withCtx(() => [
129
+ createVNode(unref(script$2), {
130
+ header: _ctx.$t("g.extensionName"),
131
+ sortable: "",
132
+ field: "name"
133
+ }, {
134
+ body: withCtx((slotProps) => [
135
+ createTextVNode(toDisplayString(slotProps.data.name) + " ", 1),
136
+ unref(extensionStore).isCoreExtension(slotProps.data.name) ? (openBlock(), createBlock(unref(script$3), {
137
+ key: 0,
138
+ value: "Core"
139
+ })) : createCommentVNode("", true)
140
+ ]),
141
+ _: 1
142
+ }, 8, ["header"]),
143
+ createVNode(unref(script$2), { pt: {
144
+ headerCell: "flex items-center justify-end",
145
+ bodyCell: "flex items-center justify-end"
146
+ } }, {
147
+ header: withCtx(() => [
148
+ createVNode(unref(script$1), {
149
+ icon: "pi pi-ellipsis-h",
150
+ text: "",
151
+ severity: "secondary",
152
+ onClick: _cache[1] || (_cache[1] = ($event) => menu.value.show($event))
153
+ }),
154
+ createVNode(unref(script$4), {
155
+ ref_key: "menu",
156
+ ref: menu,
157
+ model: contextMenuItems
158
+ }, null, 512)
159
+ ]),
160
+ body: withCtx((slotProps) => [
161
+ createVNode(unref(script$5), {
162
+ disabled: unref(extensionStore).isExtensionReadOnly(slotProps.data.name),
163
+ modelValue: editingEnabledExtensions.value[slotProps.data.name],
164
+ "onUpdate:modelValue": /* @__PURE__ */ __name(($event) => editingEnabledExtensions.value[slotProps.data.name] = $event, "onUpdate:modelValue"),
165
+ onChange: updateExtensionStatus
166
+ }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue"])
167
+ ]),
168
+ _: 1
169
+ })
170
+ ]),
171
+ _: 1
172
+ }, 8, ["value", "filters"])
173
+ ]),
174
+ _: 1
175
+ });
176
+ };
177
+ }
178
+ });
179
+ export {
180
+ _sfc_main as default
181
+ };
182
+ //# sourceMappingURL=ExtensionPanel-BxSiczZ7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionPanel-BxSiczZ7.js","sources":["../../src/components/dialog/content/setting/ExtensionPanel.vue"],"sourcesContent":["<template>\n <PanelTemplate value=\"Extension\" class=\"extension-panel\">\n <template #header>\n <SearchBox\n v-model=\"filters['global'].value\"\n :placeholder=\"$t('g.searchExtensions') + '...'\"\n />\n <Message\n v-if=\"hasChanges\"\n severity=\"info\"\n pt:text=\"w-full\"\n class=\"max-h-96 overflow-y-auto\"\n >\n <ul>\n <li v-for=\"ext in changedExtensions\" :key=\"ext.name\">\n <span>\n {{ extensionStore.isExtensionEnabled(ext.name) ? '[-]' : '[+]' }}\n </span>\n {{ ext.name }}\n </li>\n </ul>\n <div class=\"flex justify-end\">\n <Button\n :label=\"$t('g.reloadToApplyChanges')\"\n @click=\"applyChanges\"\n outlined\n severity=\"danger\"\n />\n </div>\n </Message>\n </template>\n <DataTable\n :value=\"extensionStore.extensions\"\n stripedRows\n size=\"small\"\n :filters=\"filters\"\n >\n <Column :header=\"$t('g.extensionName')\" sortable field=\"name\">\n <template #body=\"slotProps\">\n {{ slotProps.data.name }}\n <Tag\n v-if=\"extensionStore.isCoreExtension(slotProps.data.name)\"\n value=\"Core\"\n />\n </template>\n </Column>\n <Column\n :pt=\"{\n headerCell: 'flex items-center justify-end',\n bodyCell: 'flex items-center justify-end'\n }\"\n >\n <template #header>\n <Button\n icon=\"pi pi-ellipsis-h\"\n text\n severity=\"secondary\"\n @click=\"menu.show($event)\"\n />\n <ContextMenu ref=\"menu\" :model=\"contextMenuItems\" />\n </template>\n <template #body=\"slotProps\">\n <ToggleSwitch\n :disabled=\"extensionStore.isExtensionReadOnly(slotProps.data.name)\"\n v-model=\"editingEnabledExtensions[slotProps.data.name]\"\n @change=\"updateExtensionStatus\"\n />\n </template>\n </Column>\n </DataTable>\n </PanelTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport { FilterMatchMode } from '@primevue/core/api'\nimport Button from 'primevue/button'\nimport Column from 'primevue/column'\nimport ContextMenu from 'primevue/contextmenu'\nimport DataTable from 'primevue/datatable'\nimport Message from 'primevue/message'\nimport Tag from 'primevue/tag'\nimport ToggleSwitch from 'primevue/toggleswitch'\nimport { computed, onMounted, ref } from 'vue'\n\nimport SearchBox from '@/components/common/SearchBox.vue'\nimport { useExtensionStore } from '@/stores/extensionStore'\nimport { useSettingStore } from '@/stores/settingStore'\n\nimport PanelTemplate from './PanelTemplate.vue'\n\nconst filters = ref({\n global: { value: '', matchMode: FilterMatchMode.CONTAINS }\n})\n\nconst extensionStore = useExtensionStore()\nconst settingStore = useSettingStore()\n\nconst editingEnabledExtensions = ref<Record<string, boolean>>({})\n\nonMounted(() => {\n extensionStore.extensions.forEach((ext) => {\n editingEnabledExtensions.value[ext.name] =\n extensionStore.isExtensionEnabled(ext.name)\n })\n})\n\nconst changedExtensions = computed(() => {\n return extensionStore.extensions.filter(\n (ext) =>\n editingEnabledExtensions.value[ext.name] !==\n extensionStore.isExtensionEnabled(ext.name)\n )\n})\n\nconst hasChanges = computed(() => {\n return changedExtensions.value.length > 0\n})\n\nconst updateExtensionStatus = () => {\n const editingDisabledExtensionNames = Object.entries(\n editingEnabledExtensions.value\n )\n .filter(([_, enabled]) => !enabled)\n .map(([name]) => name)\n\n settingStore.set('Comfy.Extension.Disabled', [\n ...extensionStore.inactiveDisabledExtensionNames,\n ...editingDisabledExtensionNames\n ])\n}\n\nconst enableAllExtensions = () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isExtensionReadOnly(ext.name)) return\n\n editingEnabledExtensions.value[ext.name] = true\n })\n updateExtensionStatus()\n}\n\nconst disableAllExtensions = () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isExtensionReadOnly(ext.name)) return\n\n editingEnabledExtensions.value[ext.name] = false\n })\n updateExtensionStatus()\n}\n\nconst disableThirdPartyExtensions = () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isCoreExtension(ext.name)) return\n\n editingEnabledExtensions.value[ext.name] = false\n })\n updateExtensionStatus()\n}\n\nconst applyChanges = () => {\n // Refresh the page to apply changes\n window.location.reload()\n}\n\nconst menu = ref<InstanceType<typeof ContextMenu>>()\nconst contextMenuItems = [\n {\n label: 'Enable All',\n icon: 'pi pi-check',\n command: enableAllExtensions\n },\n {\n label: 'Disable All',\n icon: 'pi pi-times',\n command: disableAllExtensions\n },\n {\n label: 'Disable 3rd Party',\n icon: 'pi pi-times',\n command: disableThirdPartyExtensions,\n disabled: !extensionStore.hasThirdPartyExtensions\n }\n]\n</script>\n"],"names":[],"mappings":";;;;;;;;;AA0FA,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAEf,UAAA,2BAA2B,IAA6B,CAAA,CAAE;AAEhE,cAAU,MAAM;AACC,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,iCAAyB,MAAM,IAAI,IAAI,IACrC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA,CAC7C;AAAA,IAAA,CACF;AAEK,UAAA,oBAAoB,SAAS,MAAM;AACvC,aAAO,eAAe,WAAW;AAAA,QAC/B,CAAC,QACC,yBAAyB,MAAM,IAAI,IAAI,MACvC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,aAAa,SAAS,MAAM;AACzB,aAAA,kBAAkB,MAAM,SAAS;AAAA,IAAA,CACzC;AAED,UAAM,wBAAwB,6BAAM;AAClC,YAAM,gCAAgC,OAAO;AAAA,QAC3C,yBAAyB;AAAA,MAExB,EAAA,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,OAAO,EACjC,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI;AAEvB,mBAAa,IAAI,4BAA4B;AAAA,QAC3C,GAAG,eAAe;AAAA,QAClB,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAV2B;AAa9B,UAAM,sBAAsB,6BAAM;AACjB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,oBAAoB,IAAI,IAAI,EAAG;AAEzB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANI;AAS5B,UAAM,uBAAuB,6BAAM;AAClB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,oBAAoB,IAAI,IAAI,EAAG;AAEzB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANK;AAS7B,UAAM,8BAA8B,6BAAM;AACzB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,gBAAgB,IAAI,IAAI,EAAG;AAErB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANY;AASpC,UAAM,eAAe,6BAAM;AAEzB,aAAO,SAAS;IAAO,GAFJ;AAKrB,UAAM,OAAO;AACb,UAAM,mBAAmB;AAAA,MACvB;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU,CAAC,eAAe;AAAA,MAC5B;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}