Files
xyflow/packages/svelte/src/lib/plugins/NodeResizer/NodeResizer.svelte
2024-01-08 12:25:03 +01:00

74 lines
2.2 KiB
Svelte

<script lang="ts">
import ResizeControl from './ResizeControl.svelte';
import type { NodeResizerProps } from './types';
import {
XY_RESIZER_HANDLE_CONTROLS,
XY_RESIZER_LINE_CONTROLS,
ResizeControlVariant
} from '@xyflow/system';
type $$Props = NodeResizerProps;
export let nodeId: $$Props['nodeId'] = undefined;
export let isVisible: $$Props['isVisible'] = true;
export let handleClass: $$Props['handleClass'] = undefined;
export let handleStyle: $$Props['handleStyle'] = undefined;
export let lineClass: $$Props['lineClass'] = undefined;
export let lineStyle: $$Props['lineStyle'] = undefined;
export let color: $$Props['color'] = undefined;
export let minWidth: $$Props['minWidth'] = 10;
export let minHeight: $$Props['minHeight'] = 10;
export let maxWidth: $$Props['maxWidth'] = Number.MAX_VALUE;
export let maxHeight: $$Props['maxHeight'] = Number.MAX_VALUE;
export let keepAspectRatio: $$Props['keepAspectRatio'] = false;
export let shouldResize: $$Props['shouldResize'] = undefined;
export let onResizeStart: $$Props['onResizeStart'] = undefined;
export let onResize: $$Props['onResize'] = undefined;
export let onResizeEnd: $$Props['onResizeEnd'] = undefined;
let _minWidth = minWidth || 10;
let _minHeight = minHeight || 10;
let _maxWidth = maxWidth || Number.MAX_VALUE;
let _maxHeight = maxHeight || Number.MAX_VALUE;
</script>
{#if isVisible}
{#each XY_RESIZER_LINE_CONTROLS as c (c)}
<ResizeControl
class={lineClass}
style={lineStyle}
{nodeId}
position={c}
variant={ResizeControlVariant.Line}
{color}
minWidth={_minWidth}
minHeight={_minHeight}
maxWidth={_maxWidth}
maxHeight={_maxHeight}
{onResizeStart}
{keepAspectRatio}
{shouldResize}
{onResize}
{onResizeEnd}
/>
{/each}
{#each XY_RESIZER_HANDLE_CONTROLS as c (c)}
<ResizeControl
class={handleClass}
style={handleStyle}
{nodeId}
position={c}
{color}
minWidth={_minWidth}
minHeight={_minHeight}
maxWidth={_maxWidth}
maxHeight={_maxHeight}
{onResizeStart}
{keepAspectRatio}
{shouldResize}
{onResize}
{onResizeEnd}
/>
{/each}
{/if}