feat(core,nodes): add elevateNodesOnSelect option
Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
@@ -32,6 +32,7 @@ const {
|
|||||||
getNodeTypes,
|
getNodeTypes,
|
||||||
nodeExtent,
|
nodeExtent,
|
||||||
onNodesInitialized,
|
onNodesInitialized,
|
||||||
|
elevateNodesOnSelect,
|
||||||
} = $(useVueFlow())
|
} = $(useVueFlow())
|
||||||
|
|
||||||
const node = $(useVModel(props, 'node'))
|
const node = $(useVModel(props, 'node'))
|
||||||
@@ -116,7 +117,7 @@ watch(
|
|||||||
x: newX,
|
x: newX,
|
||||||
y: newY,
|
y: newY,
|
||||||
// if a zIndex style is present, add 1000 to it
|
// if a zIndex style is present, add 1000 to it
|
||||||
z: (isNumber(getStyle.value.zIndex) ? getStyle.value.zIndex : 0) + (node.selected ? 1000 : 0),
|
z: (isNumber(getStyle.value.zIndex) ? getStyle.value.zIndex : 0) + (elevateNodesOnSelect ? (node.selected ? 1000 : 0) : 0),
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePosition(xyzPos, parentX && parentY ? { x: parentX, y: parentY, z: parentZ || 0 } : undefined)
|
updatePosition(xyzPos, parentX && parentY ? { x: parentX, y: parentY, z: parentZ || 0 } : undefined)
|
||||||
@@ -137,21 +138,20 @@ onNodesInitialized(() => {
|
|||||||
initialized.value = true
|
initialized.value = true
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
/** Initial clamp of node position */
|
||||||
until(initialized)
|
until(initialized)
|
||||||
.toBe(true)
|
.toBe(true)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const extent = applyExtent(node, nodeExtent, parentNode)
|
const extent = applyExtent(node, nodeExtent, parentNode)
|
||||||
|
|
||||||
const clampedPos = clampPosition(node.computedPosition, extent)
|
const clampedPos = clampPosition(node.computedPosition, extent)
|
||||||
|
|
||||||
node.computedPosition = { ...node.computedPosition, ...clampedPos }
|
node.computedPosition = { ...node.computedPosition, ...clampedPos }
|
||||||
node.position = {
|
node.position = {
|
||||||
x: node.computedPosition.x - (parentNode?.computedPosition.x || 0),
|
x: node.computedPosition.x - (parentNode?.computedPosition.x || 0),
|
||||||
y: node.computedPosition.y - (parentNode?.computedPosition.y || 0),
|
y: node.computedPosition.y - (parentNode?.computedPosition.y || 0),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
function updateInternals() {
|
function updateInternals() {
|
||||||
if (nodeElement.value) updateNodeDimensions([{ id, nodeElement: nodeElement.value, forceUpdate: true }])
|
if (nodeElement.value) updateNodeDimensions([{ id, nodeElement: nodeElement.value, forceUpdate: true }])
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const props = withDefaults(defineProps<FlowProps>(), {
|
|||||||
connectionLineStyle: undefined,
|
connectionLineStyle: undefined,
|
||||||
autoConnect: undefined,
|
autoConnect: undefined,
|
||||||
elevateEdgesOnSelect: undefined,
|
elevateEdgesOnSelect: undefined,
|
||||||
|
elevateNodesOnSelect: undefined,
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ const defaultState = (): State => ({
|
|||||||
noPanClassName: 'nopan',
|
noPanClassName: 'nopan',
|
||||||
defaultEdgeOptions: undefined,
|
defaultEdgeOptions: undefined,
|
||||||
elevateEdgesOnSelect: false,
|
elevateEdgesOnSelect: false,
|
||||||
|
elevateNodesOnSelect: true,
|
||||||
|
|
||||||
__experimentalFeatures: {
|
__experimentalFeatures: {
|
||||||
nestedFlow: false,
|
nestedFlow: false,
|
||||||
|
|||||||
@@ -157,6 +157,8 @@ export interface FlowProps {
|
|||||||
defaultEdgeOptions?: DefaultEdgeOptions
|
defaultEdgeOptions?: DefaultEdgeOptions
|
||||||
/** elevates edges when selected and applies z-Index to put them above their nodes */
|
/** elevates edges when selected and applies z-Index to put them above their nodes */
|
||||||
elevateEdgesOnSelect?: boolean
|
elevateEdgesOnSelect?: boolean
|
||||||
|
/** elevates nodes when selected and applies z-Index + 1000 */
|
||||||
|
elevateNodesOnSelect?: boolean
|
||||||
|
|
||||||
__experimentalFeatures?: {
|
__experimentalFeatures?: {
|
||||||
nestedFlow?: boolean
|
nestedFlow?: boolean
|
||||||
|
|||||||
@@ -115,6 +115,9 @@ export interface State extends Omit<FlowOptions, 'id' | 'modelValue'> {
|
|||||||
|
|
||||||
defaultEdgeOptions?: DefaultEdgeOptions
|
defaultEdgeOptions?: DefaultEdgeOptions
|
||||||
|
|
||||||
|
elevateEdgesOnSelect: boolean
|
||||||
|
elevateNodesOnSelect: boolean
|
||||||
|
|
||||||
/** current vue flow version you're using */
|
/** current vue flow version you're using */
|
||||||
readonly vueFlowVersion: string
|
readonly vueFlowVersion: string
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user