28 lines
843 B
JavaScript
28 lines
843 B
JavaScript
|
const mapping = {
|
||
|
'lib.Application': './app.html',
|
||
|
'lib.Capabilities': './capabilities.html',
|
||
|
'lib.Card': './card/index.html',
|
||
|
'lib.Pixi': './pixi/index.html',
|
||
|
'pixi.App': './pixi/app.html'
|
||
|
}
|
||
|
|
||
|
function menu(event) {
|
||
|
let key = event.target.innerText
|
||
|
let html = ''
|
||
|
|
||
|
for (let k of Object.keys(mapping)) {
|
||
|
if (k.startsWith(key)) {
|
||
|
let rest = k.slice(key.length)
|
||
|
let url = mapping[k]
|
||
|
html += `<a href="${url}">${rest}</a>`
|
||
|
}
|
||
|
}
|
||
|
event.preventDefault()
|
||
|
let contextMenu = document.createElement('div')
|
||
|
contextMenu.id = 'ctxmenu'
|
||
|
contextMenu.style = `top:${event.pageY - 10}px;left:${event.pageX - 40}px`
|
||
|
contextMenu.onmouseleave = () => (contextMenu.outerHTML = '')
|
||
|
contextMenu.innerHTML = html
|
||
|
document.body.appendChild(contextMenu)
|
||
|
}
|