mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
Update litegraph (Proper ContextMenu export) (#790)
This commit is contained in:
8
package-lock.json
generated
8
package-lock.json
generated
@@ -9,7 +9,7 @@
|
|||||||
"version": "1.2.49",
|
"version": "1.2.49",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atlaskit/pragmatic-drag-and-drop": "^1.2.1",
|
"@atlaskit/pragmatic-drag-and-drop": "^1.2.1",
|
||||||
"@comfyorg/litegraph": "^0.7.67",
|
"@comfyorg/litegraph": "^0.7.68",
|
||||||
"@primevue/themes": "^4.0.5",
|
"@primevue/themes": "^4.0.5",
|
||||||
"@vitejs/plugin-vue": "^5.0.5",
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
"@vueuse/core": "^11.0.0",
|
"@vueuse/core": "^11.0.0",
|
||||||
@@ -1909,9 +1909,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@comfyorg/litegraph": {
|
"node_modules/@comfyorg/litegraph": {
|
||||||
"version": "0.7.67",
|
"version": "0.7.68",
|
||||||
"resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.7.67.tgz",
|
"resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.7.68.tgz",
|
||||||
"integrity": "sha512-X8eRpBmSGTahJteNFDG9P0IsHXOk4QDU3p3iWPhk0rGfTnl4RZ8YcJ8MVo7zRgF3qxxX/Tcw4RpelhnjBJe4Gg==",
|
"integrity": "sha512-tF7+t659oDYRmiSK12kctJOiBnUgs/wGqfbmEluerIZxEsecfDovJJ0MOfpzvOQxz7R7HoruEJY7BzvcVeilqg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@cspotcode/source-map-support": {
|
"node_modules/@cspotcode/source-map-support": {
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atlaskit/pragmatic-drag-and-drop": "^1.2.1",
|
"@atlaskit/pragmatic-drag-and-drop": "^1.2.1",
|
||||||
"@comfyorg/litegraph": "^0.7.67",
|
"@comfyorg/litegraph": "^0.7.68",
|
||||||
"@primevue/themes": "^4.0.5",
|
"@primevue/themes": "^4.0.5",
|
||||||
"@vitejs/plugin-vue": "^5.0.5",
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
"@vueuse/core": "^11.0.0",
|
"@vueuse/core": "^11.0.0",
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ const ext = {
|
|||||||
name: 'Comfy.ContextMenuFilter',
|
name: 'Comfy.ContextMenuFilter',
|
||||||
init() {
|
init() {
|
||||||
const ctxMenu = LiteGraph.ContextMenu
|
const ctxMenu = LiteGraph.ContextMenu
|
||||||
// @ts-expect-error
|
|
||||||
// TODO Very hacky way to modify Litegraph behaviour. Fix ctx later.
|
// @ts-expect-error TODO Very hacky way to modify Litegraph behaviour. Fix ctx later.
|
||||||
LiteGraph.ContextMenu = function (values, options) {
|
LiteGraph.ContextMenu = function (values, options) {
|
||||||
const ctx = new ctxMenu(values, options)
|
const ctx = new ctxMenu(values, options)
|
||||||
|
|
||||||
@@ -17,11 +17,10 @@ const ext = {
|
|||||||
const filter = document.createElement('input')
|
const filter = document.createElement('input')
|
||||||
filter.classList.add('comfy-context-menu-filter')
|
filter.classList.add('comfy-context-menu-filter')
|
||||||
filter.placeholder = 'Filter list'
|
filter.placeholder = 'Filter list'
|
||||||
// @ts-expect-error
|
|
||||||
ctx.root.prepend(filter)
|
ctx.root.prepend(filter)
|
||||||
|
|
||||||
const items = Array.from(
|
const items = Array.from(
|
||||||
// @ts-expect-error
|
|
||||||
ctx.root.querySelectorAll('.litemenu-entry')
|
ctx.root.querySelectorAll('.litemenu-entry')
|
||||||
) as HTMLElement[]
|
) as HTMLElement[]
|
||||||
let displayedItems = [...items]
|
let displayedItems = [...items]
|
||||||
@@ -63,18 +62,16 @@ const ext = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const positionList = () => {
|
const positionList = () => {
|
||||||
// @ts-expect-error
|
|
||||||
const rect = ctx.root.getBoundingClientRect()
|
const rect = ctx.root.getBoundingClientRect()
|
||||||
|
|
||||||
// If the top is off-screen then shift the element with scaling applied
|
// If the top is off-screen then shift the element with scaling applied
|
||||||
if (rect.top < 0) {
|
if (rect.top < 0) {
|
||||||
const scale =
|
const scale =
|
||||||
1 -
|
1 -
|
||||||
// @ts-expect-error
|
|
||||||
ctx.root.getBoundingClientRect().height / ctx.root.clientHeight
|
ctx.root.getBoundingClientRect().height / ctx.root.clientHeight
|
||||||
// @ts-expect-error
|
|
||||||
const shift = (ctx.root.clientHeight * scale) / 2
|
const shift = (ctx.root.clientHeight * scale) / 2
|
||||||
// @ts-expect-error
|
|
||||||
ctx.root.style.top = -shift + 'px'
|
ctx.root.style.top = -shift + 'px'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -145,7 +142,7 @@ const ext = {
|
|||||||
let top = options.event.clientY - 10
|
let top = options.event.clientY - 10
|
||||||
|
|
||||||
const bodyRect = document.body.getBoundingClientRect()
|
const bodyRect = document.body.getBoundingClientRect()
|
||||||
// @ts-expect-error
|
|
||||||
const rootRect = ctx.root.getBoundingClientRect()
|
const rootRect = ctx.root.getBoundingClientRect()
|
||||||
if (
|
if (
|
||||||
bodyRect.height &&
|
bodyRect.height &&
|
||||||
@@ -154,7 +151,6 @@ const ext = {
|
|||||||
top = Math.max(0, bodyRect.height - rootRect.height - 10)
|
top = Math.max(0, bodyRect.height - rootRect.height - 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ts-expect-error
|
|
||||||
ctx.root.style.top = top + 'px'
|
ctx.root.style.top = top + 'px'
|
||||||
positionList()
|
positionList()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user