
Security News
GitHub Actions Checkout Now Blocks Risky pull_request_target Checkouts
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.
@appthen/x6-html-shape
Advanced tools
html shape for @antv/x6

import { register } from "x6-html-shape";
register({
shape: "html-shape-for-react",
render: (node, graph, container) => {
const root = createRoot(container);
root.render(<CustomComponent node={node} />);
return () => root.unmount();
},
width: 100,
height: 40
});
const graph = new Graph({
container: this.container,
background: {
color: "#F2F7FA"
}
});
graph.addNode({
shape: "html-shape-for-react",
x: 100,
y: 200,
label: 'rect',
})
x6-html-shape-container设置pointer-events: none屏蔽这一层的交互,使得鼠标事件能穿透到svg内部节点。但是x6-html-shape-node内部有一些元素是需要交互的,所以给节点打开forwardEvent将节点内部的鼠标事件转发到对应的x6-node内部export function forwardEvent(eventType, fromElement, toElement) {
fromElement.addEventListener(eventType, function (event) {
toElement.dispatchEvent(new event.constructor(event.type, event));
event.preventDefault();
event.stopPropagation();
});
}
import createRender from 'x6-html-shape/dist/react'
const render = createRender(Component)
register({
shape: 'react18-node',
render,
width: 100,
height: 40,
})
import createRender from 'x6-html-shape/dist/react17'
const render = createRender(Component)
register({
shape: 'react17-node',
render,
width: 100,
height: 40,
})
import { register } from 'x6-html-shape'
import createRender from 'x6-html-shape/dist/portal'
// 1. createRender using Component
const [render, Provider] = createRender(Component)
2. register node
register({
shape: 'react-portal-node',
render,
width: 100,
height: 40,
})
// 3.render Provider in react app before call graph.addNode
<Provider />
// 4. add Node
graph.addNode({
shape: 'react-portal-node',
id: 'node1',
label: 'node1',
x: 100,
y: 100,
})
import createRender from 'x6-html-shape/dist/vue'
const render = createRender(Component)
register({
shape: 'vue3-node',
render,
width: 100,
height: 40,
})
import createRender from 'x6-html-shape/dist/vue2'
const render = createRender(Component)
register({
shape: 'vue2-node',
render,
width: 100,
height: 40,
})
import { register } from 'x6-html-shape'
import createRender from 'x6-html-shape/dist/teleport'
// 1. createRender using Component
const [render, Provider] = createRender(Component)
2. register node
register({
shape: 'vue3-teleport-node',
render,
width: 100,
height: 40,
})
// 3.render Provider in react app before call graph.addNode
<Provider />
// 4. add Node
graph.addNode({
shape: 'vue3-teleport-node',
id: 'vue3-teleport-node',
label: 'vue3 teleport node',
x: 100,
y: 100,
})
import { register } from 'x6-html-shape'
import createRender from 'x6-html-shape/dist/svelte'
// 1. createRender using Component
const render = createRender(Component)
2. register node
register({
shape: 'svelte-node',
render,
width: 100,
height: 40,
})
// 3. add Node
graph.addNode({
shape: 'svelte-node',
label: 'svelte node',
x: 100,
y: 100,
})
FAQs
html shape for [@antv/x6](https://github.com/antvis/X6)
The npm package @appthen/x6-html-shape receives a total of 9 weekly downloads. As such, @appthen/x6-html-shape popularity was classified as not popular.
We found that @appthen/x6-html-shape demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.