ngx-xyflow
Version:
Angular wrapper for the popular xyflow (formerly Reactflow) library
1 lines • 52.4 kB
Source Map (JSON)
{"version":3,"file":"ngx-xyflow.mjs","sources":["../../../src/xyflow/controls.directive.ts","../../../src/xyflow/minimap.directive.ts","../../../src/xyflow/xyflow.component.ts","../../../src/xyflow/background.directive.ts","../../../src/xyflow/handle.directive.ts","../../../src/xyflow/node-resizer.directive.ts","../../../src/xyflow/node-toolbar.directive.ts","../../../src/xyflow/node.directive.ts","../../../src/xyflow/xyflow.module.ts","../../../src/xyflow/ngx-xyflow.ts"],"sourcesContent":["import {Directive, EventEmitter, Input, Output, SimpleChanges} from '@angular/core';\nimport { ControlProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-controls'\n})\nexport class ControlsDirective implements Omit<ControlProps, 'onFitView' | 'onInteractiveChange' | 'onZoomIn' | 'onZoomOut'> {\n\n @Input() 'aria-label': ControlProps['aria-label'];\n @Input() children: ControlProps['children'];\n @Input() className: ControlProps['className'];\n @Input() fitViewOptions: ControlProps['fitViewOptions'];\n @Input() orientation: ControlProps['orientation'];\n @Input() position: ControlProps['position'];\n @Input() showFitView: ControlProps['showFitView'];\n @Input() showInteractive: ControlProps['showInteractive'];\n @Input() showZoom: ControlProps['showZoom'];\n @Input() style: ControlProps['style'];\n\n @Output() onFitView = new EventEmitter<Parameters<ControlProps['onFitView']>>();\n @Output() onInteractiveChange = new EventEmitter<Parameters<ControlProps['onInteractiveChange']>>();\n @Output() onZoomIn = new EventEmitter<Parameters<ControlProps['onZoomIn']>>();\n @Output() onZoomOut = new EventEmitter<Parameters<ControlProps['onZoomOut']>>();\n\n constructor(private readonly xyflow: XYFlowComponent) { }\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import {Directive, EventEmitter, Input, Output, SimpleChanges} from '@angular/core';\nimport { MiniMapProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-minimap'\n})\nexport class MinimapDirective implements Omit<MiniMapProps, 'onClick' | 'onNodeClick'> {\n\n @Input() ariaLabel: MiniMapProps['ariaLabel'];\n @Input() bgColor: MiniMapProps['bgColor'];\n @Input() inversePan: MiniMapProps['inversePan'];\n @Input() maskColor: MiniMapProps['maskColor'];\n @Input() maskStrokeColor: MiniMapProps['maskStrokeColor'];\n @Input() maskStrokeWidth: MiniMapProps['maskStrokeWidth'];\n @Input() nodeBorderRadius: MiniMapProps['nodeBorderRadius'];\n @Input() nodeClassName: MiniMapProps['nodeClassName'];\n @Input() nodeColor: MiniMapProps['nodeColor'];\n @Input() nodeComponent: MiniMapProps['nodeComponent'];\n @Input() nodeStrokeColor: MiniMapProps['nodeStrokeColor'];\n @Input() nodeStrokeWidth: MiniMapProps['nodeStrokeWidth'];\n @Input() offsetScale: MiniMapProps['offsetScale'];\n @Input() pannable: MiniMapProps['pannable'];\n @Input() position: MiniMapProps['position'];\n @Input() zoomable: MiniMapProps['zoomable'];\n @Input() zoomStep: MiniMapProps['zoomStep'];\n\n @Output() onClick = new EventEmitter<Parameters<MiniMapProps['onClick']>>();\n @Output() onNodeClick = new EventEmitter<Parameters<MiniMapProps['onNodeClick']>>();\n\n constructor(private readonly xyflow: XYFlowComponent) { }\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n Output,\n SimpleChanges,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n addEdge,\n applyEdgeChanges,\n applyNodeChanges,\n Background,\n Controls,\n MiniMap,\n ReactFlow,\n ReactFlowInstance,\n ReactFlowProps,\n ReactFlowProvider\n} from '@xyflow/react';\nimport { ReactifyNgComponent } from 'ngx-reactify';\nimport * as React from 'react';\nimport { BackgroundDirective } from './background.directive';\nimport { ControlsDirective } from './controls.directive';\nimport { MinimapDirective } from './minimap.directive';\n\ntype XYFlowProps = ReactFlowProps<any, any>;\ntype OverriddenProps = 'onBeforeDelete' | 'onClickConnectEnd' | 'onClickConnectStart' | 'onConnect' | 'onConnectEnd' | 'onConnectStart' | 'onDelete' | 'onEdgeClick' | 'onEdgeContextMenu' | 'onEdgeDoubleClick' | 'onEdgeMouseEnter' | 'onEdgeMouseLeave' | 'onEdgeMouseMove' | 'onEdgesChange' | 'onEdgesDelete' | 'onError' | 'onInit' | 'onMove' | 'onMoveEnd' | 'onMoveStart' | 'onNodeClick' | 'onNodeContextMenu' | 'onNodeDoubleClick' | 'onNodeDrag' | 'onNodeDragStart' | 'onNodeDragStop' | 'onNodeMouseEnter' | 'onNodeMouseLeave' | 'onNodeMouseMove' | 'onNodesChange' | 'onNodesDelete' | 'onPaneClick' | 'onPaneContextMenu' | 'onPaneMouseEnter' | 'onPaneMouseLeave' | 'onPaneMouseMove' | 'onPaneScroll' | 'onReconnect' | 'onReconnectStart' | 'onReconnectEnd' | 'onSelectionChange' | 'onSelectionContextMenu' | 'onSelectionDrag' | 'onSelectionDragStart' | 'onSelectionDragStop' | 'onSelectionEnd' | 'onSelectionStart';\ntype InheritedXYFlowProps = Omit<XYFlowProps, OverriddenProps>;\n\n@Component({\n selector: 'ngx-xyflow',\n template: '',\n styleUrls: ['../../node_modules/@xyflow/react/dist/style.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class XYFlowComponent extends ReactifyNgComponent implements XYFlowProps, OnChanges {\n\n @Input(\"nodes\") _nodes: XYFlowProps['nodes'];\n @Output(\"nodesChange\") _nodesChange = new EventEmitter<XYFlowProps['nodes']>();\n\n @Input(\"edges\") _edges: XYFlowProps['edges'];\n @Output(\"edgesChange\") _edgesChange = new EventEmitter<XYFlowProps['edges']>();\n\n @Input() defaultEdgeOptions: XYFlowProps['defaultEdgeOptions'];\n\n nodeTypes: any = {} ; //XYFlowProps['nodeTypes'] = {};\n edgeTypes: XYFlowProps['edgeTypes'] = {};\n\n instance: ReactFlowInstance;\n\n @Input() connectionLineType: XYFlowProps['connectionLineType'];\n @Input() connectionLineStyle: XYFlowProps['connectionLineStyle'];\n @Input() connectionLineComponent: XYFlowProps['connectionLineComponent'];\n @Input() connectionLineContainerStyle: XYFlowProps['connectionLineContainerStyle'];\n @Input() connectionMode: XYFlowProps['connectionMode'];\n @Input() deleteKeyCode: XYFlowProps['deleteKeyCode'];\n @Input() selectionKeyCode: XYFlowProps['selectionKeyCode'];\n @Input() selectionOnDrag: XYFlowProps['selectionOnDrag'];\n @Input() selectionMode: XYFlowProps['selectionMode'];\n @Input() panActivationKeyCode: XYFlowProps['panActivationKeyCode'];\n @Input() multiSelectionKeyCode: XYFlowProps['multiSelectionKeyCode'];\n @Input() zoomActivationKeyCode: XYFlowProps['zoomActivationKeyCode'];\n @Input() snapToGrid: XYFlowProps['snapToGrid'];\n @Input() snapGrid: XYFlowProps['snapGrid'];\n @Input() onlyRenderVisibleElements: XYFlowProps['onlyRenderVisibleElements'];\n @Input() nodesDraggable: XYFlowProps['nodesDraggable'];\n @Input() nodesConnectable: XYFlowProps['nodesConnectable'];\n @Input() nodesFocusable: XYFlowProps['nodesFocusable'];\n @Input() nodeOrigin: XYFlowProps['nodeOrigin'];\n @Input() edgesFocusable: XYFlowProps['edgesFocusable'];\n @Input() elementsSelectable: XYFlowProps['elementsSelectable'];\n @Input() selectNodesOnDrag: XYFlowProps['selectNodesOnDrag'];\n @Input() panOnDrag: XYFlowProps['panOnDrag'];\n @Input() minZoom: XYFlowProps['minZoom'];\n @Input() maxZoom: XYFlowProps['maxZoom'];\n @Input() defaultViewport: XYFlowProps['defaultViewport'];\n @Input() translateExtent: XYFlowProps['translateExtent'];\n @Input() preventScrolling: XYFlowProps['preventScrolling'];\n @Input() nodeExtent: XYFlowProps['nodeExtent'];\n @Input() defaultMarkerColor: XYFlowProps['defaultMarkerColor'];\n @Input() zoomOnScroll: XYFlowProps['zoomOnScroll'];\n @Input() zoomOnPinch: XYFlowProps['zoomOnPinch'];\n @Input() panOnScroll: XYFlowProps['panOnScroll'];\n @Input() panOnScrollSpeed: XYFlowProps['panOnScrollSpeed'];\n @Input() panOnScrollMode: XYFlowProps['panOnScrollMode'];\n @Input() zoomOnDoubleClick: XYFlowProps['zoomOnDoubleClick'];\n @Input() noDragClassName: XYFlowProps['noDragClassName'];\n @Input() noWheelClassName: XYFlowProps['noWheelClassName'];\n @Input() noPanClassName: XYFlowProps['noPanClassName'];\n @Input() fitView: XYFlowProps['fitView'];\n @Input() fitViewOptions: XYFlowProps['fitViewOptions'];\n @Input() connectOnClick: XYFlowProps['connectOnClick'];\n @Input() attributionPosition: XYFlowProps['attributionPosition'];\n @Input() proOptions: XYFlowProps['proOptions'];\n @Input() elevateNodesOnSelect: XYFlowProps['elevateNodesOnSelect'];\n @Input() elevateEdgesOnSelect: XYFlowProps['elevateEdgesOnSelect'];\n @Input() disableKeyboardA11y: XYFlowProps['disableKeyboardA11y'];\n @Input() autoPanOnNodeDrag: XYFlowProps['autoPanOnNodeDrag'];\n @Input() autoPanOnConnect: XYFlowProps['autoPanOnConnect'];\n @Input() connectionRadius: XYFlowProps['connectionRadius'];\n\n // `as any` casting for the Output properties to inherit the description from the xyflow JSDOC comments.\n // As of now I don't know of a better way to replace the types while keeping the comments.\n\n // @Output() onBeforeDelete = new EventEmitter<[XYFlowProps['onBeforeDelete']]> as any;\n @Output() onClickConnectEnd = new EventEmitter<[XYFlowProps['onClickConnectEnd']]> as any;\n @Output() onClickConnectStart = new EventEmitter<[XYFlowProps['onClickConnectStart']]> as any;\n @Output() onConnect = new EventEmitter<[XYFlowProps['onConnect']]> as any;\n @Output() onConnectEnd = new EventEmitter<[XYFlowProps['onConnectEnd']]> as any;\n @Output() onConnectStart = new EventEmitter<[XYFlowProps['onConnectStart']]> as any;\n @Output() onDelete = new EventEmitter<[XYFlowProps['onDelete']]> as any;\n @Output() onEdgeClick = new EventEmitter<[XYFlowProps['onEdgeClick']]> as any;\n @Output() onEdgeContextMenu = new EventEmitter<[XYFlowProps['onEdgeContextMenu']]> as any;\n @Output() onEdgeDoubleClick = new EventEmitter<[XYFlowProps['onEdgeDoubleClick']]> as any;\n @Output() onEdgeMouseEnter = new EventEmitter<[XYFlowProps['onEdgeMouseEnter']]> as any;\n @Output() onEdgeMouseLeave = new EventEmitter<[XYFlowProps['onEdgeMouseLeave']]> as any;\n @Output() onEdgeMouseMove = new EventEmitter<[XYFlowProps['onEdgeMouseMove']]> as any;\n @Output() onEdgesChange = new EventEmitter<[XYFlowProps['onEdgesChange']]> as any;\n @Output() onEdgesDelete = new EventEmitter<[XYFlowProps['onEdgesDelete']]> as any;\n @Output() onError = new EventEmitter<[XYFlowProps['onError']]> as any;\n @Output() onInit = new EventEmitter<[XYFlowProps['onInit']]> as any;\n @Output() onMove = new EventEmitter<[XYFlowProps['onMove']]> as any;\n @Output() onMoveEnd = new EventEmitter<[XYFlowProps['onMoveEnd']]> as any;\n @Output() onMoveStart = new EventEmitter<[XYFlowProps['onMoveStart']]> as any;\n @Output() onNodeClick = new EventEmitter<[XYFlowProps['onNodeClick']]> as any;\n @Output() onNodeContextMenu = new EventEmitter<[XYFlowProps['onNodeContextMenu']]> as any;\n @Output() onNodeDoubleClick = new EventEmitter<[XYFlowProps['onNodeDoubleClick']]> as any;\n @Output() onNodeDrag = new EventEmitter<[XYFlowProps['onNodeDrag']]> as any;\n @Output() onNodeDragStart = new EventEmitter<[XYFlowProps['onNodeDragStart']]> as any;\n @Output() onNodeDragStop = new EventEmitter<[XYFlowProps['onNodeDragStop']]> as any;\n @Output() onNodeMouseEnter = new EventEmitter<[XYFlowProps['onNodeMouseEnter']]> as any;\n @Output() onNodeMouseLeave = new EventEmitter<[XYFlowProps['onNodeMouseLeave']]> as any;\n @Output() onNodeMouseMove = new EventEmitter<[XYFlowProps['onNodeMouseMove']]> as any;\n @Output() onNodesChange = new EventEmitter<[XYFlowProps['onNodesChange']]> as any;\n @Output() onNodesDelete = new EventEmitter<[XYFlowProps['onNodesDelete']]> as any;\n @Output() onPaneClick = new EventEmitter<[XYFlowProps['onPaneClick']]> as any;\n @Output() onPaneContextMenu = new EventEmitter<[XYFlowProps['onPaneContextMenu']]> as any;\n @Output() onPaneMouseEnter = new EventEmitter<[XYFlowProps['onPaneMouseEnter']]> as any;\n @Output() onPaneMouseLeave = new EventEmitter<[XYFlowProps['onPaneMouseLeave']]> as any;\n @Output() onPaneMouseMove = new EventEmitter<[XYFlowProps['onPaneMouseMove']]> as any;\n @Output() onPaneScroll = new EventEmitter<[XYFlowProps['onPaneScroll']]> as any;\n @Output() onReconnect = new EventEmitter<[XYFlowProps['onReconnect']]> as any;\n @Output() onReconnectStart = new EventEmitter<[XYFlowProps['onReconnectStart']]> as any;\n @Output() onReconnectEnd = new EventEmitter<[XYFlowProps['onReconnectEnd']]> as any;\n @Output() onSelectionChange = new EventEmitter<[XYFlowProps['onSelectionChange']]> as any;\n @Output() onSelectionContextMenu = new EventEmitter<[XYFlowProps['onSelectionContextMenu']]> as any;\n @Output() onSelectionDrag = new EventEmitter<[XYFlowProps['onSelectionDrag']]> as any;\n @Output() onSelectionDragStart = new EventEmitter<[XYFlowProps['onSelectionDragStart']]> as any;\n @Output() onSelectionDragStop = new EventEmitter<[XYFlowProps['onSelectionDragStop']]> as any;\n @Output() onSelectionEnd = new EventEmitter<[XYFlowProps['onSelectionEnd']]> as any;\n @Output() onSelectionStart = new EventEmitter<[XYFlowProps['onSelectionStart']]> as any;\n\n\n @ContentChild(BackgroundDirective) _background: BackgroundDirective;\n @ContentChild(ControlsDirective) _controls: ControlsDirective;\n @ContentChild(MinimapDirective) _minimap: MinimapDirective;\n\n\n private _setNodes: React.Dispatch<React.SetStateAction<any[]>>;\n private _setEdges: React.Dispatch<React.SetStateAction<any[]>>;\n\n override ngReactComponent = ({ props }: { props: ReactFlowProps }) => {\n const getProps = (obj = {}) => {\n const props = {};\n Object.entries(obj).forEach(([k, v]) => {\n // Omit keys prefixed with _\n if (k.startsWith('_')) return;\n // Omit event emitter properties\n if (k.startsWith('on')) return;\n\n props[k] = v;\n })\n return props as any;\n }\n\n const controlProps = getProps(this._controls);\n const minimapProps = getProps(this._minimap);\n\n controlProps.onFitView = () =>\n this._controls.onFitView.emit();\n controlProps.onInteractiveChange = (interactiveStatus) =>\n this._controls.onInteractiveChange.emit(interactiveStatus);\n controlProps.onZoomIn = () =>\n this._controls.onZoomIn.emit();\n controlProps.onZoomOut = () =>\n this._controls.onZoomOut.emit();\n\n minimapProps.onClick = () =>\n this._minimap.onClick.emit();\n minimapProps.onNodeClick = () =>\n this._minimap.onNodeClick.emit();\n\n const reactDirectives = [\n this._background ? React.createElement(Background, getProps(this._background)) : null,\n this._controls ? React.createElement(Controls, controlProps) : null,\n this._minimap ? React.createElement(MiniMap, minimapProps) : null,\n ].filter(r => r);\n\n const [nodes, setNodes] = React.useState(this._nodes);\n const [edges, setEdges] = React.useState(this._edges);\n\n // Store setState functions for use in ngOnChanges\n React.useEffect(() => {\n this._setNodes = setNodes;\n this._setEdges = setEdges;\n }, [setNodes, setEdges]);\n\n props.onNodesChange = React.useCallback(\n (changes) => setNodes((nds) => {\n const nodes = applyNodeChanges(changes, nds);\n this._nodesChange.emit(this._nodes = nodes);\n return nodes;\n }),\n []\n );\n props.onEdgesChange = React.useCallback(\n (changes) => setEdges((eds) => {\n console.log(\"SED\")\n const edges = applyEdgeChanges(changes, eds);\n this._edgesChange.emit(this._edges = edges);\n return edges;\n }),\n []\n );\n props.onConnect = React.useCallback(\n (params) => setEdges((eds) => {\n const edges = addEdge(params, eds);\n this._edgesChange.emit(this._edges = edges);\n return edges;\n }),\n []\n );\n\n // Overwrite the property bindings\n props.nodes = nodes;\n props.edges = edges;\n\n\n // Effectively outputs this:\n // <ReactFlowProvider>\n // <ReactFlow props={props}>\n // <Background/>\n // <Controls/>\n // <MiniMap/>\n // </ReactFlow>\n // </ReactFlowProvider>\n\n return React.createElement(ReactFlowProvider, { children: [] },\n React.createElement(ReactFlow, { ...props as any, onInit: rf => {\n this.instance = rf;\n }},\n ...reactDirectives\n )\n );\n };\n\n constructor(\n ngContainer: ViewContainerRef,\n ngZone: NgZone\n ) {\n super(ngContainer, ngZone);\n }\n\n override ngOnInit() {\n\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n override ngOnChanges(changes?: SimpleChanges) {\n if (this._setNodes && changes['_nodes']?.firstChange == false) {\n this._setNodes(changes['_nodes'].currentValue);\n }\n if (this._setEdges && changes['_edges']?.firstChange == false) {\n this._setEdges(changes['_edges'].currentValue);\n }\n super.ngOnChanges();\n }\n}\n","import {Directive, Input, SimpleChanges} from '@angular/core';\nimport { BackgroundProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-background'\n})\nexport class BackgroundDirective implements BackgroundProps {\n\n @Input() bgColor: BackgroundProps['bgColor'];\n @Input() className: BackgroundProps['className'];\n @Input() color: BackgroundProps['color'];\n @Input() gap: BackgroundProps['gap'];\n @Input() id: BackgroundProps['id'];\n @Input() lineWidth: BackgroundProps['lineWidth'];\n @Input() offset: BackgroundProps['offset'];\n @Input() patternClassName: BackgroundProps['patternClassName'];\n @Input() size: BackgroundProps['size'];\n @Input() style: BackgroundProps['style'];\n @Input() variant: BackgroundProps['variant'];\n\n constructor(private readonly xyflow: XYFlowComponent) {}\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import {Directive, Input, SimpleChanges} from '@angular/core';\nimport { HandleProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-node>ngx-xyflow-handle'\n})\nexport class HandleDirective implements Omit<HandleProps, \"position\" | \"onConnect\"> {\n\n @Input() id: HandleProps['id'];\n @Input() isConnectable: HandleProps['isConnectable'];\n @Input() isConnectableEnd: HandleProps['isConnectableEnd'];\n @Input() isConnectableStart: HandleProps['isConnectableStart'];\n @Input() isValidConnection: HandleProps['isValidConnection'];\n @Input() position: 'top' | 'left' | 'right' | 'bottom';\n @Input() type: HandleProps['type'];\n\n // @Output() onConnect = new EventEmitter<Connection>();\n // @Output() onEdgesDelete = new EventEmitter<[XYFlowProps['onEdgesDelete']]>\n\n constructor(private readonly xyflow: XYFlowComponent) { }\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import {Directive, Input, SimpleChanges} from '@angular/core';\nimport { NodeResizerProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-node>ngx-xyflow-node-resizer'\n})\nexport class NodeResizerDirective implements NodeResizerProps {\n\n @Input() color: NodeResizerProps['color'];\n @Input() handleClassName: NodeResizerProps['handleClassName'];\n @Input() handleStyle: NodeResizerProps['handleStyle'];\n @Input() isVisible: NodeResizerProps['isVisible'];\n @Input() keepAspectRatio: NodeResizerProps['keepAspectRatio'];\n @Input() lineClassName: NodeResizerProps['lineClassName'];\n @Input() lineStyle: NodeResizerProps['lineStyle'];\n @Input() maxHeight: NodeResizerProps['maxHeight'];\n @Input() maxWidth: NodeResizerProps['maxWidth'];\n @Input() minHeight: NodeResizerProps['minHeight'];\n @Input() minWidth: NodeResizerProps['minWidth'];\n @Input() nodeId: NodeResizerProps['nodeId'];\n @Input() shouldResize: NodeResizerProps['shouldResize'];\n\n @Input() onResizeStart: NodeResizerProps['onResizeStart'];\n @Input() onResize: NodeResizerProps['onResize'];\n @Input() onResizeEnd: NodeResizerProps['onResizeEnd'];\n\n constructor(private readonly xyflow: XYFlowComponent) { }\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import {Directive, Input, SimpleChanges} from '@angular/core';\nimport { NodeToolbarProps } from '@xyflow/react';\nimport { XYFlowComponent } from './xyflow.component';\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-node>ngx-xyflow-node-toolbar'\n})\nexport class NodeToolbarDirective implements Omit<NodeToolbarProps, 'position'> {\n\n @Input() isVisible: NodeToolbarProps['isVisible'];\n @Input() nodeId: NodeToolbarProps['nodeId'];\n @Input() offset: NodeToolbarProps['offset'];\n @Input() position: 'top' | 'left' | 'right' | 'bottom';\n\n constructor(private readonly xyflow: XYFlowComponent) { }\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ApplicationRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n NgZone,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChildren\n} from '@angular/core';\nimport { Handle, NodeResizer, NodeToolbar } from '@xyflow/react';\nimport * as React from 'react';\nimport { HandleDirective } from './handle.directive';\nimport { XYFlowComponent } from './xyflow.component';\nimport { NodeResizerDirective } from './node-resizer.directive';\nimport { NodeToolbarDirective } from './node-toolbar.directive';\nimport { AutoWrapAngularObject, ng2ReactProps } from 'ngx-reactify';\n\n\n@Component({\n selector: \"ngx-xyflow-node\",\n template: `\n @if(template) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ '$implicit': data }\"\n />\n }\n @else {\n <span style=\"color: red\">\n Node has no template.\n </span>\n }\n `,\n imports: [\n NgTemplateOutlet\n ],\n standalone: true\n})\nclass XYFlowNodeComponent {\n @Input() template: TemplateRef<any>;\n @Input() data: any;\n @Input() node: any;\n}\n\n\n@Directive({\n selector: 'ngx-xyflow>ngx-xyflow-node'\n})\nexport class NodeDirective {\n\n @ContentChildren(HandleDirective) handles: QueryList<HandleDirective>;\n\n @Input() nodeType: string;\n\n @ContentChild(TemplateRef) template: ElementRef;\n @ContentChild(NodeResizerDirective) nodeResizer: NodeResizerDirective;\n @ContentChild(NodeToolbarDirective) nodeToolbar: NodeToolbarDirective;\n\n @Output() f = new EventEmitter();\n\n // @Output() onClick = new EventEmitter<Parameters<MiniMapProps['onClick']>>();\n // @Output() onNodeClick = new EventEmitter<Parameters<MiniMapProps['onNodeClick']>>();\n @Output() blur = new EventEmitter<HTMLElementEventMap['blur']>();\n @Output() click = new EventEmitter<HTMLElementEventMap['click']>();\n @Output() contextmenu = new EventEmitter<HTMLElementEventMap['contextmenu']>();\n @Output() dblclick = new EventEmitter<HTMLElementEventMap['dblclick']>();\n @Output() drag = new EventEmitter<HTMLElementEventMap['drag']>();\n @Output() dragend = new EventEmitter<HTMLElementEventMap['dragend']>();\n @Output() dragenter = new EventEmitter<HTMLElementEventMap['dragenter']>();\n @Output() dragleave = new EventEmitter<HTMLElementEventMap['dragleave']>();\n @Output() dragover = new EventEmitter<HTMLElementEventMap['dragover']>();\n @Output() dragstart = new EventEmitter<HTMLElementEventMap['dragstart']>();\n @Output() focus = new EventEmitter<HTMLElementEventMap['focus']>();\n @Output() keydown = new EventEmitter<HTMLElementEventMap['keydown']>();\n @Output() keyup = new EventEmitter<HTMLElementEventMap['keyup']>();\n @Output() keypress = new EventEmitter<HTMLElementEventMap['keypress']>();\n @Output() mousedown = new EventEmitter<HTMLElementEventMap['mousedown']>();\n @Output() mouseenter = new EventEmitter<HTMLElementEventMap['mouseenter']>();\n @Output() mouseleave = new EventEmitter<HTMLElementEventMap['mouseleave']>();\n @Output() mousemove = new EventEmitter<HTMLElementEventMap['mousemove']>();\n @Output() mouseout = new EventEmitter<HTMLElementEventMap['mouseout']>();\n @Output() mouseover = new EventEmitter<HTMLElementEventMap['mouseover']>();\n @Output() mouseup = new EventEmitter<HTMLElementEventMap['mouseup']>();\n @Output() mousewheel = new EventEmitter<HTMLElementEventMap['wheel']>();\n @Output() pointercancel = new EventEmitter<HTMLElementEventMap['pointercancel']>();\n @Output() pointerdown = new EventEmitter<HTMLElementEventMap['pointerdown']>();\n @Output() pointerenter = new EventEmitter<HTMLElementEventMap['pointerenter']>();\n @Output() pointerleave = new EventEmitter<HTMLElementEventMap['pointerleave']>();\n @Output() pointermove = new EventEmitter<HTMLElementEventMap['pointermove']>();\n @Output() pointerout = new EventEmitter<HTMLElementEventMap['pointerout']>();\n @Output() pointerover = new EventEmitter<HTMLElementEventMap['pointerover']>();\n @Output() pointerrawupdate = new EventEmitter<Event>();\n @Output() pointerup = new EventEmitter<HTMLElementEventMap['pointerup']>();\n @Output() resize = new EventEmitter<HTMLElementEventMap['resize']>();\n @Output() scroll = new EventEmitter<HTMLElementEventMap['scroll']>();\n @Output() wheel = new EventEmitter<HTMLElementEventMap['wheel']>();\n\n constructor(\n private readonly xyflow: XYFlowComponent,\n private readonly appRef: ApplicationRef,\n private readonly injector: Injector,\n private readonly ngZone: NgZone\n ) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.xyflow.ngOnChanges(changes);\n }\n\n ngAfterViewInit() {\n if (!this.nodeType) {\n console.error(new Error(\"NGX: XYFlow Node bootstrapped without a node type!\\n\"));\n return;\n }\n\n this.xyflow.nodeTypes[this.nodeType] = AutoWrapAngularObject({\n component: XYFlowNodeComponent,\n appRef: this.appRef,\n injector: this.injector,\n instance: this,\n ngZone: this.ngZone,\n containerTag: \"ngx-xyflow-node-container\",\n reactTemplate: el => {\n return React.createElement(React.Fragment, {},\n ...[\n this.nodeResizer ? React.createElement(NodeResizer, ng2ReactProps(this.nodeResizer)) : null,\n this.nodeToolbar ? React.createElement(NodeToolbar, ng2ReactProps(this.nodeToolbar)) : null,\n el,\n ...(this.handles?.map(handle => {\n const props = ng2ReactProps(handle) as any;\n // props.onConnect = (connection) =>\n // handle.onConnect.next(connection);\n\n return React.createElement(Handle, props);\n }) || []),\n ].filter(n => !!n)\n )\n }\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BackgroundDirective } from './background.directive';\nimport { ControlsDirective } from './controls.directive';\nimport { HandleDirective } from './handle.directive';\nimport { MinimapDirective } from './minimap.directive';\nimport { NodeResizerDirective } from './node-resizer.directive';\nimport { NodeToolbarDirective } from './node-toolbar.directive';\nimport { NodeDirective } from './node.directive';\nimport { XYFlowComponent } from './xyflow.component';\n\n@NgModule({\n declarations: [\n XYFlowComponent,\n NodeDirective,\n BackgroundDirective,\n ControlsDirective,\n HandleDirective,\n MinimapDirective,\n NodeResizerDirective,\n NodeToolbarDirective\n ],\n exports: [\n XYFlowComponent,\n NodeDirective,\n HandleDirective,\n BackgroundDirective,\n ControlsDirective,\n HandleDirective,\n MinimapDirective,\n NodeResizerDirective,\n NodeToolbarDirective\n ]\n})\nexport class XYFlowModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.XYFlowComponent"],"mappings":"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