@visuallyjs/browser-ui-angular 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/esm2022/index.mjs +6 -0
  2. package/esm2022/lib/background.component.mjs +38 -0
  3. package/esm2022/lib/base.group.component.mjs +3 -3
  4. package/esm2022/lib/base.node.component.mjs +3 -3
  5. package/esm2022/lib/base.port.component.mjs +4 -4
  6. package/esm2022/lib/base.vertex.component.mjs +33 -12
  7. package/esm2022/lib/browser-ui-angular.module.mjs +38 -8
  8. package/esm2022/lib/charts/area.chart.component.mjs +3 -3
  9. package/esm2022/lib/charts/bar.chart.component.mjs +3 -3
  10. package/esm2022/lib/charts/bubble.chart.component.mjs +3 -3
  11. package/esm2022/lib/charts/column.chart.component.mjs +3 -3
  12. package/esm2022/lib/charts/line.chart.component.mjs +3 -3
  13. package/esm2022/lib/charts/pie.chart.component.mjs +3 -3
  14. package/esm2022/lib/charts/sankey.chart.component.mjs +4 -4
  15. package/esm2022/lib/charts/scatter.chart.component.mjs +3 -3
  16. package/esm2022/lib/charts/series.based.chart.component.mjs +4 -4
  17. package/esm2022/lib/charts/xy.chart.component.mjs +3 -3
  18. package/esm2022/lib/color.tag.component.mjs +6 -6
  19. package/esm2022/lib/controls-component.mjs +4 -4
  20. package/esm2022/lib/decorator-component.mjs +3 -3
  21. package/esm2022/lib/default-group-component.mjs +3 -3
  22. package/esm2022/lib/default-node-component.mjs +3 -3
  23. package/esm2022/lib/diagram-component.mjs +34 -12
  24. package/esm2022/lib/diagram-palette-component.mjs +4 -4
  25. package/esm2022/lib/edge.type.picker.component.mjs +5 -5
  26. package/esm2022/lib/export-controls-component.mjs +3 -3
  27. package/esm2022/lib/grid-background.component.mjs +77 -0
  28. package/esm2022/lib/image-background.component.mjs +38 -0
  29. package/esm2022/lib/inspector.component.mjs +4 -4
  30. package/esm2022/lib/miniview-component.mjs +4 -4
  31. package/esm2022/lib/overlay-component.mjs +52 -1
  32. package/esm2022/lib/palette.component.mjs +4 -4
  33. package/esm2022/lib/paper-component.mjs +354 -0
  34. package/esm2022/lib/shape.component.mjs +4 -4
  35. package/esm2022/lib/shape.palette.component.mjs +4 -4
  36. package/esm2022/lib/surface-component.mjs +87 -16
  37. package/esm2022/lib/surface-popup-component.mjs +62 -0
  38. package/esm2022/lib/tiled-image-background.component.mjs +62 -0
  39. package/esm2022/lib/vjs-service.mjs +3 -3
  40. package/fesm2022/visuallyjs-browser-ui-angular.mjs +938 -144
  41. package/fesm2022/visuallyjs-browser-ui-angular.mjs.map +1 -1
  42. package/index.d.ts +6 -0
  43. package/lib/background.component.d.ts +13 -0
  44. package/lib/base.vertex.component.d.ts +29 -3
  45. package/lib/browser-ui-angular.module.d.ts +27 -21
  46. package/lib/diagram-component.d.ts +7 -5
  47. package/lib/grid-background.component.d.ts +81 -0
  48. package/lib/image-background.component.d.ts +18 -0
  49. package/lib/overlay-component.d.ts +32 -8
  50. package/lib/paper-component.d.ts +162 -0
  51. package/lib/surface-component.d.ts +25 -11
  52. package/lib/surface-popup-component.d.ts +62 -0
  53. package/lib/tiled-image-background.component.d.ts +72 -0
  54. package/package.json +2 -2
  55. package/visuallyjs-browser-ui-angular.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"visuallyjs-browser-ui-angular.mjs","sources":["../../../../projects/visuallyjs/browser-ui-angular/src/lib/vjs-service.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/miniview-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/overlay-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.vertex.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.group.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/default-group-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.node.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/default-node-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.port.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/model.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/surface-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/shape.palette.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/shape.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/controls-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/edge.type.picker.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/palette.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/export-controls-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/color.tag.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/diagram-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/series.based.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/column.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/bar.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/diagram-palette-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/xy.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/line.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/area.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/pie.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/scatter.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/bubble.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/sankey.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/decorator-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/browser-ui-angular.module.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/common.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/inspector.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/hooks/use-zoom.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/hooks/use-visuallyjs-update.ts","../../../../projects/visuallyjs/browser-ui-angular/src/index.ts","../../../../projects/visuallyjs/browser-ui-angular/src/visuallyjs-browser-ui-angular.ts"],"sourcesContent":["import {BrowserUI, Diagram, Inspector, log, Paper, Surface, BrowserUIModel} from \"@visuallyjs/browser-ui\";\nimport {Injectable, signal} from \"@angular/core\";\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VisuallyJsService {\n\n readonly model = signal<BrowserUIModel|null>(null)\n readonly surface = signal<Surface|null>(null)\n readonly paper = signal<Paper|null>(null)\n readonly diagram= signal<Diagram|null>(null)\n readonly inspector = signal<Inspector|null>(null)\n readonly ui = signal<BrowserUI|null>(null)\n\n private $model:BrowserUIModel\n private $surface:Surface\n private $paper:Paper\n private $diagram:Diagram\n private $inspector:Inspector\n\n private inspectorListeners:Array<(i:Inspector) => any> = []\n private surfaceListeners:Array<(s:Surface) => any> = []\n private paperListeners:Array<(p:Paper) => any> = []\n private modelListeners:Array<(m:BrowserUIModel) => any> = []\n private diagramListeners:Array<(d:Diagram) => any> = []\n private uiListeners:Array<(b:BrowserUI) => any> = []\n\n \n $setInspector(i:Inspector):void {\n this.inspector.set(i)\n\n // deprecated from here\n this.$inspector = i\n this.$notifyInspector()\n }\n\n private $notifyInspector():void {\n this.inspectorListeners.forEach(sl => {\n try {\n sl(this.$inspector)\n } catch (e) {\n log(`WARN: could not notify Inspector listener ${e}`)\n }\n })\n\n this.inspectorListeners.length = 0\n }\n\n $setSurface(s:Surface):void {\n this.model.set(s.model)\n this.surface.set(s)\n this.ui.set(s)\n\n // deprecated from here\n // @ts-ignore\n this.$setModel(s.model)\n this.$surface = s\n this.$notifySurface()\n }\n\n \n private $notifySurface():void {\n this.surfaceListeners.forEach(sl => {\n try {\n sl(this.$surface)\n } catch (e) {\n log(`WARN: could not notify Surface listener ${e}`)\n }\n })\n\n this.surfaceListeners.length = 0\n\n this.$notifyUI(this.$surface)\n }\n\n \n getSurface(cb:(s:Surface) => any):void {\n if (this.$surface != null) {\n cb(this.$surface)\n } else {\n this.surfaceListeners.push(cb)\n }\n }\n\n \n getInspector(cb:(s:Inspector) => any):void {\n if (this.$inspector != null) {\n cb(this.$inspector)\n } else {\n this.inspectorListeners.push(cb)\n }\n }\n\n $setPaper(p:Paper):void {\n this.model.set(p.model)\n this.paper.set(p)\n this.ui.set(p)\n\n // deprecated below\n // @ts-ignore\n this.$setModel(p.model)\n this.$paper = p\n this.$notifyPaper()\n }\n\n \n private $notifyPaper():void {\n this.paperListeners.forEach(sl => {\n try {\n sl(this.$paper)\n } catch (e) {\n log(`WARN: could not notify Paper listener ${e}`)\n }\n })\n\n this.paperListeners.length = 0\n\n this.$notifyUI(this.$paper)\n }\n\n \n getPaper(cb:(p:Paper) => any):void {\n if (this.$paper != null) {\n cb(this.$paper)\n } else {\n this.paperListeners.push(cb)\n }\n }\n\n \n $setDiagram(d:Diagram):void {\n\n this.model.set(d.model)\n this.diagram.set(d)\n if (d.$ui instanceof Surface) {\n this.surface.set(d.$ui)\n }\n if (d.$ui instanceof Paper) {\n this.paper.set(d.$ui)\n }\n\n // deprecated below\n this.$diagram = d\n if (d.$ui instanceof Surface) {\n this.$setSurface(d.$ui as Surface)\n }\n if (d.$ui instanceof Paper) {\n this.$setPaper(d.$ui as Paper)\n }\n this.$notifyDiagram()\n }\n\n \n private $notifyDiagram():void {\n this.diagramListeners.forEach(sl => {\n try {\n sl(this.$diagram)\n } catch (e) {\n log(`WARN: could not notify Diagram listener ${e}`)\n }\n })\n\n this.diagramListeners.length = 0\n }\n\n \n getDiagram(cb:(p:Diagram) => any):void {\n if (this.$diagram != null) {\n cb(this.$diagram)\n } else {\n this.diagramListeners.push(cb)\n }\n }\n\n \n getModel(cb:(p:BrowserUIModel) => any):void {\n if (this.$model != null) {\n cb(this.$model)\n } else {\n this.modelListeners.push(cb)\n }\n }\n\n \n $setModel(m:BrowserUIModel):void {\n this.model.set(m)\n // deprecated below\n this.$model = m\n this.$notifyModel()\n }\n\n \n private $notifyModel():void {\n this.modelListeners.forEach(sl => {\n try {\n sl(this.$model)\n } catch (e) {\n log(`WARN: could not notify Model listener ${e}`)\n }\n })\n this.modelListeners.length = 0\n }\n\n \n private $notifyUI(ui:BrowserUI):void {\n this.uiListeners.forEach(sl => {\n try {\n sl(ui)\n } catch (e) {\n log(`WARN: could not notify UI listener ${e}`)\n }\n })\n this.uiListeners.length = 0\n }\n\n \n getUI(cb:(b:BrowserUI) => any):void {\n const ui = this.$surface || this.$paper\n if (ui != null) {\n cb(ui)\n } else {\n this.uiListeners.push(cb)\n }\n }\n\n\n}\n","import {AfterViewInit, Component, effect, ElementRef, inject, Input, NgZone} from \"@angular/core\"\nimport {MiniviewPlugin, Group, Node, MiniviewPluginOptions, Vertex} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: 'vjs-miniview',\n template: `<div></div>`\n})\nexport class MiniviewComponent {\n\n \n @Input() elementFilter?: (obj: Vertex) => boolean;\n\n \n @Input() typeFunction?:(obj:Node|Group) => string;\n\n \n @Input() activeTracking? = true;\n\n \n @Input() clickToCenter? = true;\n \n @Input() showLasso? = true;\n \n @Input() trackSelection? = true;\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n $ui = this.$vjs.ui\n\n initialized = false\n\n $miniview!:MiniviewPlugin\n\n constructor(private ngZone:NgZone) {\n\n effect(() => {\n if (!this.initialized) {\n const ui = this.$ui()\n if (ui != null) {\n this.initialized = true\n this.ngZone.runOutsideAngular(() => {\n this.$miniview = ui.addPlugin<MiniviewPluginOptions, MiniviewPlugin>(\n {\n type: MiniviewPlugin.type,\n options: {\n container: this.$el.nativeElement.childNodes[0],\n elementFilter: this.elementFilter,\n typeFunction: this.typeFunction,\n activeTracking: this.activeTracking,\n clickToCenter: this.clickToCenter,\n showLasso: this.showLasso,\n trackSelection: this.trackSelection\n },\n },\n );\n })\n }\n }\n });\n }\n\n \n redraw():void {\n if(this.$miniview != null) {\n this.$miniview.invalidate()\n }\n }\n}\n","import {Edge, ObjectData, Surface} from \"@visuallyjs/browser-ui\"\nimport {ChangeDetectorRef, inject} from \"@angular/core\"\nimport {VisuallyJsModel} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsAngularComponent} from \"./surface-component\"\n\n\nexport const AngularComponentOverlayType = \"AngularComponent\"\n\n\nexport interface AngularOverlayComponent extends VisuallyJsAngularComponent {\n \n edge:Edge\n}\n\n\nexport abstract class BaseAngularOverlayComponent implements AngularOverlayComponent {\n \n model:VisuallyJsModel\n \n surface:Surface\n \n data:ObjectData\n \n edge:Edge\n\n \n changeDetectorRef = inject(ChangeDetectorRef)\n\n \n updateEdge(updates:ObjectData):void {\n this.model.updateEdge(this.edge, updates)\n }\n\n \n removeEdge():void {\n this.model.removeEdge(this.edge)\n }\n}\n","\nimport {\n ChangeDetectorRef,\n inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from \"@angular/core\";\nimport {\n ObjectData,\n Node,\n Surface,\n BrowserElement,\n VisuallyJsModel, SurfaceVertexCloneOptions,\n Port,\n EVENT_ZOOM,\n PanZoomEventPayload,\n} from \"@visuallyjs/browser-ui\"\n\n\n@Injectable()\nexport abstract class BaseVertexComponent<T extends Node>\n implements OnInit, OnDestroy\n{\n \n @Input() data: ObjectData;\n\n \n @Input() model: VisuallyJsModel;\n\n \n @Input() surface: Surface;\n\n \n @Input() modelObject: T;\n\n \n _el: BrowserElement;\n\n \n changeDetectorRef = inject(ChangeDetectorRef);\n\n \n readonly $data = signal<ObjectData>(undefined!);\n\n \n zoom = signal(1)\n\n \n private _zoomHandler:(p:{zoom:number}) => any\n\n \n ngOnInit(): void {\n this.$data.set(this.data);\n this._zoomHandler = (p:PanZoomEventPayload) => {\n this.zoom.set(p.zoom)\n }\n this.zoom.set(this.surface.getZoom())\n this.surface.bind(EVENT_ZOOM, this._zoomHandler)\n }\n\n \n getVertex(): T {\n return this._getVertex();\n }\n\n \n abstract _getVertex(): T;\n\n \n ngOnDestroy(): void {\n this.surface.unbind(EVENT_ZOOM, this._zoomHandler)\n delete (this._el as any)._visuallyJsNgComponent._el;\n delete this._el;\n delete this.model;\n delete this.surface;\n }\n\n \n removeVertex(): void {\n this.model.remove(this.getVertex());\n }\n\n \n addNewPort(type: string, data: ObjectData): void {\n this.model.addNewPort(this.getVertex(), type, data);\n }\n\n \n addPort(data:ObjectData):Port {\n return this.model.addPort(this.getVertex(), data)\n }\n\n \n setAsSelection():void {\n this.model.setSelection(this.getVertex())\n }\n\n \n addToSelection():void {\n this.model.addToSelection(this.getVertex())\n }\n\n \n removeFromSelection():void {\n this.model.removeFromSelection(this.getVertex())\n }\n\n \n updateVertex(data: ObjectData): void {\n this.model.updateVertex(this.getVertex(), data);\n }\n\n \n cloneVertex(options?:SurfaceVertexCloneOptions):void {\n this.surface.cloneVertex(this.getVertex(), options)\n }\n\n \n flashVertex(duration:number, animName?:string) :void {\n this.surface.flashVertex(this.getVertex(), duration, animName)\n }\n}\n","\nimport {\n Group, Node,\n ObjectData, Port, SurfaceVertexCloneOptions\n} from \"@visuallyjs/browser-ui\"\nimport {Injectable} from \"@angular/core\"\nimport {BaseVertexComponent} from \"./base.vertex.component\"\n\n\n\n@Injectable()\nexport abstract class BaseGroupComponent extends BaseVertexComponent<Group> {\n\n \n getGroup():Group { return this.model.getGroup(this.model.getGroupId(this.data)); }\n\n \n getMembers():Array<Node> { return this.getGroup().getMembers()}\n\n \n _getVertex(): Group {\n return this.getGroup()\n }\n\n \n updateGroup(data:ObjectData):void {\n this.updateVertex(data)\n }\n\n \n removeGroup():void {\n this.removeVertex()\n }\n\n \n cloneGroup(options?:SurfaceVertexCloneOptions):void {\n this.cloneVertex(options)\n }\n\n \n flashGroup(duration:number, animName?:string) :void {\n this.flashVertex(duration, animName)\n }\n\n \n removePort(portId:string):void {\n this.model.removePort(this.getGroup(), portId)\n }\n\n \n getPort(portId:string):Port {\n return this.getGroup().getPort(portId)\n }\n\n}\n","\nimport {Component, computed} from \"@angular/core\"\nimport {BaseGroupComponent} from \"./base.group.component\"\n\n\n@Component({\n template:`<div class=\"vjs-default-group\">{{label()}}</div>`\n})\nexport class DefaultGroupComponent extends BaseGroupComponent {\n\n readonly label = computed( () =>\n this.$data().label || \"\"\n );\n\n}\n","\nimport {\n Node,\n ObjectData, Port, SurfaceVertexCloneOptions\n} from \"@visuallyjs/browser-ui\"\nimport {Injectable, Input} from \"@angular/core\"\nimport {BaseVertexComponent} from \"./base.vertex.component\"\n\n\n\n@Injectable()\nexport abstract class BaseNodeComponent extends BaseVertexComponent<Node> {\n\n \n getNode():Node { return this.model.getNode(this.model.getNodeId(this.data)); }\n\n \n _getVertex(): Node {\n return this.getNode()\n }\n\n \n updateNode(data:ObjectData):void {\n this.updateVertex(data)\n }\n\n \n removeNode():void {\n this.removeVertex()\n }\n\n \n removePort(portId:string):void {\n this.model.removePort(this.getNode(), portId)\n }\n\n \n getPort(portId:string):Port {\n return this.getNode().getPort(portId)\n }\n\n \n cloneNode(options?:SurfaceVertexCloneOptions):void {\n this.cloneVertex(options)\n }\n\n \n flashNode(duration:number, animName?:string) :void {\n this.flashVertex(duration, animName)\n }\n}\n","\nimport {Component, computed} from \"@angular/core\"\nimport {BaseNodeComponent} from \"./base.node.component\"\n\n\n@Component({\n template:`<div class=\"vjs-default-node\">{{label()}}</div>`\n})\nexport class DefaultNodeComponent extends BaseNodeComponent {\n\n readonly label = computed( () =>\n this.$data().label || \"\"\n );\n\n}\n","import {\n ObjectData,\n Port,\n Node,\n Group,\n EVENT_PORT_UPDATED,\n PortUpdatedParams,\n log,\n} from \"@visuallyjs/browser-ui\";\n\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from \"@angular/core\";\nimport { BaseVertexComponent } from \"./base.vertex.component\";\n\n\n@Directive({\n selector: \"vjs-base-port\",\n})\nexport class BasePortComponent<O = ObjectData> implements OnInit, OnDestroy {\n \n changeDetectorRef = inject(ChangeDetectorRef);\n\n \n private _signalBinder!: (params: PortUpdatedParams) => any;\n\n \n readonly $data = signal<O>(undefined!);\n\n \n @Input() parent: BaseVertexComponent<Node | Group>;\n\n \n @Input() data: O;\n\n constructor(public el: ElementRef) {\n el.nativeElement._visuallyJsNgComponent = this;\n }\n\n \n private _signalBinding(n: PortUpdatedParams): void {\n if (this.parent != null) {\n \n if (n.vertex.id === this.parent.data.id && n.port.id === this.data[\"id\"]) {\n this.$data.set(this.data);\n }\n }\n }\n\n \n ngOnInit(): void {\n if (this.data == null) {\n log(`WARN: cannot instantiate port component; \"data\" not set`);\n return;\n }\n\n if (this.parent == null) {\n log(\n `WARN: cannot instantiate port component; \"parent\" not set (you need to set parent to be a BaseNodeComponent or BaseGroupComponent on this component in your template)`,\n );\n return;\n }\n\n this.$data.set(this.data);\n this._signalBinder = this._signalBinding.bind(this);\n this.parent.model.bind(EVENT_PORT_UPDATED, this._signalBinder);\n }\n\n \n getPort(): Port {\n return this.parent\n .getVertex()\n .getPort(this.parent.model.getPortId(this.data));\n }\n\n \n getPortId(): string {\n return this.parent.model.getPortId(this.data);\n }\n\n \n updatePort(data: ObjectData): void {\n this.parent.model.updatePort(this.getPort(), data);\n }\n\n \n removePort(): void {\n this.parent.model.removePort(this.parent.getVertex(), this.getPortId());\n }\n\n \n ngOnDestroy(): void {\n this.parent.model.unbind(EVENT_PORT_UPDATED, this._signalBinder);\n }\n}\n","import {\n BrowserUIModel,\n Surface,\n SurfaceOptions,\n log\n} from \"@visuallyjs/browser-ui\";\n\n\n\nexport class BrowserUIAngularModel extends BrowserUIModel {\n render(container: Element, options?: SurfaceOptions): Surface {\n log(\n \"render called directly on BrowserUIAngularModel class: should not happen. UI should use internal render.\",\n );\n return null;\n }\n}\n\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n ChangeDetectorRef, WritableSignal, inject, reflectComponentType\n} from \"@angular/core\"\n\nimport {\n EdgeUpdatedParams,\n EVENT_EDGE_UPDATED,\n EVENT_GROUP_UPDATED,\n EVENT_NODE_UPDATED,\n EVENT_PORT_ADDED,\n EVENT_PORT_UPDATED,\n extend,\n ObjectData,\n PortUpdatedParams,\n Vertex,\n VertexUpdatedParams,\n FullOverlaySpec,\n OverlaySpec,\n renderSurface,\n Surface,\n TemplateRenderer,\n OVERLAY_TYPE_CUSTOM,\n isGroup,\n BrowserElement,\n EVENT_INTERNAL_CONNECTION,\n VisuallyJsModel,\n ModelOptions,\n EVENT_DATA_LOAD_END,\n SurfaceSaveData, ExportOptions, SaveOptions, CustomOverlayOptions, ELEMENT_DIV, Connection, HTMLElementOverlayHolder,\n BrowserUIModel\n} from \"@visuallyjs/browser-ui\"\nimport {\n AngularRenderOptions,\n AngularViewOptions,\n AngularNodeMapping, AngularGroupMapping,\n} from \"./common\";\n\nimport {\n AngularComponentOverlayType,\n AngularOverlayComponent,\n} from \"./overlay-component\";\nimport { DefaultGroupComponent } from \"./default-group-component\";\nimport { DefaultNodeComponent } from \"./default-node-component\";\nimport { BasePortComponent } from \"./base.port.component\";\nimport {VisuallyJsService} from \"./vjs-service\";\nimport {BrowserUIAngularModel} from \"./model\";\n\ntype VisuallyJsAngularDOMElement = BrowserElement & {\n _visuallyJsNgComponent:any\n _ref:ComponentRef<any>\n}\n\n\nexport interface VisuallyJsAngularComponent {\n model:VisuallyJsModel\n surface:Surface\n data:ObjectData\n $data?:WritableSignal<ObjectData>\n changeDetectorRef?:ChangeDetectorRef\n}\n\n\nexport interface VisuallyJsAngularVertexComponent extends VisuallyJsAngularComponent {\n modelObject:Vertex\n _el:VisuallyJsAngularDOMElement\n}\n\n\n@Component({\n selector: \"vjs-surface\",\n template:`<ng-content></ng-content>`\n})\nexport class SurfaceComponent<\n RO extends AngularRenderOptions = AngularRenderOptions,\n >\n implements AfterViewInit, OnDestroy\n{\n\n \n @Input({alias:\"model\"}) inputModel?:BrowserUIModel\n\n \n @Input() viewOptions?: AngularViewOptions;\n \n @Input() renderOptions?: AngularRenderOptions;\n\n \n @Input() modelOptions?: ModelOptions;\n\n \n @Input() data?: Record<string, any>;\n\n \n @Input() url?: string;\n\n \n @Output() vertexEvent = new EventEmitter<{\n \n vertex: Vertex;\n \n event: string;\n \n payload: any;\n \n component: ComponentRef<any>;\n }>();\n\n \n model: BrowserUIModel;\n\n \n surface: Surface;\n\n // we keep these refs in order to be able to cleanup listeners properly.\n nodeUpdateFn: (a: any, e?: any) => any;\n groupUpdateFn: (a: any, e?: any) => any;\n portAddedFn: (a: any, e?: any) => any;\n portUpdateFn: (a: any, e?: any) => any;\n dataLoadEndFn: () => any;\n\n edgeUpdateFn: (a: any, e?: any) => any;\n edgeAddFn: (a: any, e?: any) => any;\n\n $el = inject(ElementRef)\n $viewContainerRef = inject(ViewContainerRef)\n $ngZone = inject(NgZone)\n\n $vjs = inject(VisuallyJsService)\n // $vjsSignals = inject(VisuallyJsSignalService)\n\n \n getNativeElement(component: any): VisuallyJsAngularDOMElement {\n return component.location.nativeElement.childNodes[0];\n }\n\n private _getComponent(el:BrowserElement, tryParent:boolean):VisuallyJsAngularComponent {\n if (el == null) {\n return null\n } else {\n let vjc = (el as any)._visuallyJsNgComponent\n if (vjc == null && tryParent && el.parentNode != null) {\n vjc = (el.parentNode as any)._visuallyJsNgComponent\n }\n return vjc\n }\n }\n\n private _getComponentThen(el:BrowserElement, then:(component:VisuallyJsAngularComponent) => any, tryParent:boolean):void {\n const c = this._getComponent(el, tryParent)\n if (c != null) {\n then(c)\n }\n }\n\n \n nodeOrGroupUpdated(params: VertexUpdatedParams): void {\n const info = this.surface.getObjectInfo(params.vertex, false);\n\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent) => {\n component.data = params.vertex.data\n component.$data?.set(component.data)\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n\n }\n\n portUpdated(params: PortUpdatedParams): void {\n const info = this.surface.getObjectInfo(params.port, false);\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent) => {\n if (component instanceof BasePortComponent) {\n component.data = params.port.data;\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n }, true)\n }\n\n \n private edgeUpdated(params: EdgeUpdatedParams): void {\n const connection = this.surface.getRenderedConnection(params.edge.id);\n if (connection) {\n for (let id in connection.overlays) {\n const canvas = (connection.overlays[id] as HTMLElementOverlayHolder).contentElement;\n\n this._getComponentThen(canvas, (component) => {\n if (component.changeDetectorRef != null) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n }\n }\n }\n\n \n private _processAngularOverlays(\n view: AngularViewOptions,\n ): AngularViewOptions {\n const self = this;\n const edgeTypes = view.edges || {};\n for (let edgeTypeId in edgeTypes) {\n const edgeType = edgeTypes[edgeTypeId];\n if (edgeType.overlays != null) {\n edgeType.overlays = edgeType.overlays.map((o: OverlaySpec) => {\n if (typeof o === \"string\") {\n return o;\n } else {\n const fo = o as FullOverlaySpec;\n if (fo.type === AngularComponentOverlayType) {\n const newSpec = Object.assign(fo as any, {\n type: OVERLAY_TYPE_CUSTOM,\n }) as FullOverlaySpec\n newSpec.options = (newSpec.options || {}) as CustomOverlayOptions<BrowserElement>\n newSpec.options.create = (connection: Connection<BrowserElement>) => {\n const el = document.createElement(ELEMENT_DIV);\n\n let createdComponent = self.$viewContainerRef.createComponent(\n newSpec.options.component,\n );\n\n let angularOverlayComponent = createdComponent.instance as AngularOverlayComponent;\n\n let nativeEl = createdComponent.location.nativeElement.childNodes[0];\n el.appendChild(nativeEl);\n (el as any)._visuallyJsNgComponent = angularOverlayComponent;\n\n \n if (connection != null) {\n const edge = connection.edge\n angularOverlayComponent.edge = edge;\n angularOverlayComponent.data = edge.data;\n }\n\n angularOverlayComponent.model = self.model;\n angularOverlayComponent.surface = self.surface;\n\n createdComponent.changeDetectorRef.detectChanges();\n\n return el;\n };\n\n return newSpec;\n } else {\n return fo;\n }\n }\n });\n }\n }\n\n return view;\n }\n\n \n save(options:SaveOptions): void {\n this.surface.save(options)\n }\n\n \n exportData(options:ExportOptions):SurfaceSaveData {\n return this.surface.model.exportData(options)\n }\n\n \n dataLoadEnd(): void {\n setTimeout(() => {\n if (this.surface != null) {\n this.surface.repaintEverything();\n }\n }, 0);\n }\n\n private $removeNgElement(el:any):void {\n if (el._ref != null) {\n el._ref.destroy();\n }\n\n if (el.parentNode != null) {\n el.parentNode.removeChild(el);\n }\n }\n\n \n ngAfterViewInit(): void {\n this.$ngZone.runOutsideAngular(() => {\n const view = this._processAngularOverlays(this.viewOptions || {});\n const self = this;\n this.renderOptions = this.renderOptions || ({} as RO);\n\n const render = (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n surface: Surface,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo?: any,\n ) => {\n let component;\n if (def.component == null) {\n if (isGroup(modelObject)) {\n component = DefaultGroupComponent;\n } else {\n component = DefaultNodeComponent;\n }\n } else {\n component = def.component;\n }\n\n let createdComponent: ComponentRef<any> = self.$viewContainerRef.createComponent(component)\n let _componentRef = createdComponent.instance as VisuallyJsAngularVertexComponent\n\n _componentRef.data = data || {};\n _componentRef.model = model;\n _componentRef.surface = surface;\n _componentRef.modelObject = modelObject;\n\n // get the reflection data for the component\n const componentInfo = reflectComponentType(component)\n // ..and populate any declared inputs from data\n componentInfo.inputs.forEach((pt) => {\n const pv = _componentRef.data[pt.propName];\n if (pv != null) {\n _componentRef[pt.propName] = pv;\n }\n });\n // map to any outputs\n componentInfo.outputs.forEach((pt) => {\n _componentRef[pt.propName].subscribe((d) =>\n self.vertexEvent.emit({\n vertex: modelObject,\n event: pt.propName,\n payload: d,\n component: createdComponent,\n }),\n );\n });\n\n // if angular def has 'inputs' set, set them on the component. this is different to the mechanism above, in which values are extracted from\n // each node's backing data. here we inject values either as a string or from some arbitrary function.\n if (def.inputs != null) {\n for (let k in def.inputs) {\n const v = def.inputs[k];\n const value = typeof v === \"string\" ? v : v(modelObject);\n _componentRef[k] = value;\n }\n }\n\n createdComponent.changeDetectorRef.detectChanges();\n\n // TODO this should not be necessary\n const nativeElement = self.getNativeElement(createdComponent);\n _componentRef._el = nativeElement;\n _componentRef._el._visuallyJsNgComponent = _componentRef;\n _componentRef._el._ref = createdComponent; // we store _ref so we can call `destroy` on it later if the node is removed.\n\n surface.$vertexRendered(modelObject, nativeElement, def as any, eventInfo);\n }\n\n const templateRenderer: TemplateRenderer<any> = {\n asynchronous: false,\n reactive: true,\n usesWrapperElement:false,\n update: (el: any, data: ObjectData, v: Vertex, renderer: Surface) => {},\n render,\n rerender: (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n surface: Surface,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo: any,\n originalElement:BrowserElement\n ) => {\n this.$removeNgElement(originalElement)\n render(directiveId, data, instance, objectType, surface, def, modelObject, eventInfo)\n },\n cleanupVertex: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n cleanupPort: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n };\n\n const renderParams = extend<any>(this.renderOptions || {}, {\n view: view,\n });\n\n let model = this.inputModel || new BrowserUIAngularModel(this.modelOptions);\n this.model = model;\n\n this.surface = renderSurface(\n model,\n self.$el.nativeElement,\n templateRenderer,\n renderParams,\n );\n\n this.$vjs.$setSurface(this.surface)\n\n // ----------------\n\n this.nodeUpdateFn = this.nodeOrGroupUpdated.bind(this);\n model.bind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n model.bind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n model.bind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n\n this.dataLoadEndFn = this.dataLoadEnd.bind(this);\n model.bind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n\n this.portUpdateFn = this.portUpdated.bind(this);\n model.bind(EVENT_PORT_UPDATED, this.portUpdateFn);\n\n this.edgeUpdateFn = this.edgeUpdated.bind(this);\n model.bind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n\n if (this.data) {\n this.model.load({ data: this.data });\n } else if (this.url) {\n this.model.load({ url: this.url });\n }\n });\n }\n\n \n ngOnDestroy(): void {\n this.surface.destroy()\n this.model.unbind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_UPDATED, this.portUpdateFn);\n this.model.unbind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n this.model.unbind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n this.surface.unbind(EVENT_INTERNAL_CONNECTION, this.edgeAddFn);\n }\n}\n","import {AfterViewInit, Component, effect, ElementRef, inject, Input} from \"@angular/core\"\nimport {\n ObjectData,\n Size,\n ShapePalette,\n ShapeLibraryDefaults,\n DataGeneratorFunction, OnVertexAddedCallback, PreparedShape\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n template:`<div></div>`,\n selector:`vjs-shape-palette`\n})\nexport class ShapePaletteComponent {\n\n \n @Input() initialSet?:string\n\n \n @Input() dragSize:Size = { width:150, height:100 }\n\n \n @Input() iconSize:Size = { width:150, height:100 }\n\n \n @Input() fill?:string = ShapeLibraryDefaults.FILL\n\n \n @Input() outline?:string = ShapeLibraryDefaults.STROKE\n\n \n @Input() showAllMessage? = \"Show all\"\n\n \n @Input() selectAfterDrop? = true\n\n \n @Input() paletteStrokeWidth? = 1\n\n \n @Input() onVertexAdded?:OnVertexAddedCallback\n\n \n @Input() dataGenerator?:DataGeneratorFunction<ObjectData> = undefined\n\n \n @Input() preparedShapes?:Array<PreparedShape>\n\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n initialized = false\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (ui != null && !this.initialized) {\n this.initialized = true\n // tslint:disable-next-line:no-unused-expression\n new ShapePalette<ObjectData>(ui, {\n container:this.$el.nativeElement,\n initialSet:this.initialSet,\n dragSize: this.dragSize,\n iconSize:this.iconSize,\n fill: this.fill,\n outline: this.outline,\n shapeLibrary:ui.getShapeLibrary(),\n showAllMessage: this.showAllMessage,\n selectAfterDrop: this.selectAfterDrop,\n paletteStrokeWidth: this.paletteStrokeWidth,\n dataGenerator:this.dataGenerator,\n onVertexAdded:this.onVertexAdded,\n preparedShapes:this.preparedShapes\n })\n }\n })\n }\n\n\n\n\n}\n","import {\n Component, effect,\n ElementRef, inject,\n Input,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport {\n ObjectData,\n ShapeLibrary,\n DEFAULT_LABEL_FILL_RATIO,\n convertToMultilineText,\n FontSpec\n} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n template: `<svg:svg\n [attr.stroke-width]=\"obj.outlineWidth || 2\"\n attr.fill=\"{{ obj.fill }}\"\n attr.stroke=\"{{ obj.outline }}\"\n style=\"width:100%;height:100%;inset:0;position:absolute;\"\n preserveAspectRatio=\"none\"\n attr.viewBox=\"0 0 {{ width }} {{ height }}\"\n ></svg:svg>`,\n selector: `vjs-shape`,\n})\nexport class ShapeComponent implements OnChanges {\n\n \n @Input() obj: ObjectData;\n \n @Input() width: number;\n\n \n @Input() height: number;\n\n \n @Input() showLabels? = false;\n\n \n @Input() labelProperty? = \"label\";\n\n \n @Input() labelStrokeWidth?: string;\n\n \n @Input() label?: string;\n\n \n @Input() multilineLabels? = true\n\n \n @Input() labelFillRatio = DEFAULT_LABEL_FILL_RATIO\n\n \n @Input() font?:FontSpec\n\n private shapeLibrary: ShapeLibrary<ObjectData>\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n\n private _render(): void {\n if (this.shapeLibrary != null) {\n const svg = this.$el.nativeElement.childNodes[0];\n const el = this.shapeLibrary.renderCompiledShape(\n this.obj,\n this.obj.outlineWidth || 2,\n );\n svg.replaceChildren(el);\n if (this.showLabels) {\n const lbl = this.shapeLibrary.renderShapeLabel(\n this.obj,\n this.labelProperty,\n this.labelStrokeWidth,\n this.label,\n this.obj.color || \"#000000\",\n this.obj.color || \"#000000\",\n this.font\n );\n svg.appendChild(lbl);\n if (this.multilineLabels !== false) {\n convertToMultilineText(lbl, this.label || this.obj[this.labelProperty] || \"\", this.width * this.labelFillRatio)\n }\n }\n }\n }\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (ui != null && this.shapeLibrary == null) {\n this.shapeLibrary = ui.getShapeLibrary()\n this._render()\n }\n })\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._render();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n computed, effect,\n ElementRef,\n inject,\n Input,\n AfterViewInit\n} from \"@angular/core\";\n\nimport {\n EVENT_UNDOREDO_UPDATE,\n UndoRedoUpdateParams,\n EVENT_SURFACE_MODE_CHANGED,\n FALSE,\n TRUE,\n SURFACE_MODE_PAN,\n SURFACE_MODE_SELECT,\n ControlsComponentButtons,\n SurfaceMode,\n LASSO_PATH,\n LASSO_VIEW_BOX,\n PAN_PATH,\n PAN_VIEW_BOX,\n LassoPlugin,\n BrowserElement,\n ZOOM_TO_FIT_VIEW_BOX,\n ZOOM_TO_FIT_PATH,\n BrowserUI,\n ZOOM_IN_OUT_VIEW_BOX,\n ZOOM_IN_PATH,\n ZOOM_OUT_PATH,\n RESET_SELECTION_PATH,\n RESET_SELECTION_VIEW_BOX,\n CLEAR_PATH,\n CLEAR_VIEW_BOX,\n CLASS_CONTROLS_RESET_SELECTION, EVENT_SELECT,\n EVENT_DESELECT, EVENT_SELECTION_CLEARED, supportsPathEditing\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\nconst ATTRIBUTE_CAN_UNDO = \"can-undo\";\nconst ATTRIBUTE_CAN_REDO = \"can-redo\";\nconst CLASS_SELECTED_MODE = \"vjs-selected-mode\";\nconst ATTRIBUTE_HAS_SELECTION = \"vjs-controls-has-selection\"\n\n\n@Component({\n selector: \"vjs-controls\",\n template: `<div class=\"vjs-controls\" [attr.data-vjs-orientation]=\"orientation\">\n <i *ngIf=\"showPanButton\" class=\"vjs-pan-mode ${CLASS_SELECTED_MODE}\" data-mode=\"${SURFACE_MODE_PAN}\" title=\"Pan Mode\" (click)=\"panMode()\">\n <svg viewBox=\"${PAN_VIEW_BOX}\" stroke=\"currentColor\" fill=\"none\">\n <path d=\"${PAN_PATH}\"></path>\n </svg>\n </i>\n <i *ngIf=\"showLassoButton\" class=\"vjs-select-mode\" data-mode=\"${SURFACE_MODE_SELECT}\" title=\"Select Mode\" (click)=\"selectMode()\">\n <svg fill=\"currentColor\" viewBox=\"${LASSO_VIEW_BOX}\" stroke=\"currentColor\">\n <path d=\"${LASSO_PATH}\"></path>\n </svg>\n </i>\n\n <i *ngFor=\"let button of modeButtons\" data-mode=\"{{ button.mode }}\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n\n <i *ngIf=\"zoomToExtents\" class=\"vjs-zoom-to-fit\" data-reset=\"true\"title=\"Zoom To Fit\" (click)=\"zoomToFit()\">\n <svg viewBox=\"${ZOOM_TO_FIT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_TO_FIT_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-in\" data-zoom-in=\"true\" title=\"Zoom In\" (click)=\"zoomIn()\">\n <svg viewBox=\"${ZOOM_IN_OUT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_IN_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-out\" data-zoom-out=\"true\" title=\"Zoom Out\" (click)=\"zoomOut()\">\n <svg viewBox=\"${ZOOM_IN_OUT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_OUT_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"undoRedo\" class=\"vjs-undo\" data-undo=\"true\" title=\"Undo last action\" (click)=\"undo()\"></i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\"></i>\n <i class=\"${CLASS_CONTROLS_RESET_SELECTION}\" title=\"Clear selection\" (click)=\"resetSelection()\">\n <svg viewBox=\"${RESET_SELECTION_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${RESET_SELECTION_PATH}\"></path></svg>\n </i>\n <i *ngIf=\"clear\" class=\"vjs-clear-dataset\" [title]=\"clearMessage\" (click)=\"doClear()\">\n <svg viewBox=\"${CLEAR_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${CLEAR_PATH}\"></path></svg>\n </i>\n <i *ngFor=\"let button of otherButtons\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n </div>`,\n})\nexport class ControlsComponent {\n \n @Input() undoRedo? = true;\n \n @Input() zoomToExtents? = true;\n\n \n @Input() zoomButtons? = false;\n \n @Input() clear? = true;\n \n @Input() clearMessage? = \"Clear dataset?\";\n \n @Input() buttons?: ControlsComponentButtons = [];\n \n @Input() orientation? = \"row\";\n\n modeButtons: ControlsComponentButtons;\n otherButtons: ControlsComponentButtons;\n\n initialized = false\n\n showPanButton = true;\n\n showLassoButton = true;\n $vjs = inject(VisuallyJsService)\n\n $el = inject(ElementRef)\n $cdr = inject(ChangeDetectorRef)\n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n\n updateSelectionState():void {\n const controls = this.getNativeElement(this.$el);\n if (this.ui().model.getSelection().isEmpty()) {\n controls.removeAttribute(ATTRIBUTE_HAS_SELECTION)\n } else {\n controls.setAttribute(ATTRIBUTE_HAS_SELECTION, \"true\")\n }\n }\n\n constructor() {\n this.modeButtons = this.buttons.filter((b) => b.mode != null);\n this.otherButtons = this.buttons.filter((b) => b.mode == null);\n\n effect(() => {\n const ui = this.ui()\n if (!this.initialized && ui) {\n this.showLassoButton = ui.getPlugin(LassoPlugin.type) != null;\n this.showPanButton = this.showLassoButton === true;\n\n this.ui.bind(EVENT_SURFACE_MODE_CHANGED, (mode: SurfaceMode) => {\n const controls = this.getNativeElement(this.$el);\n\n const modeButtons = ui.$getSelector(controls, \"[data-mode]\");\n\n ui.removeClass(modeButtons, CLASS_SELECTED_MODE);\n\n ui.addClass(\n ui.$getSelector(controls, `[data-mode='${mode}']`),\n CLASS_SELECTED_MODE,\n );\n });\n\n ui.model.bind(\n EVENT_UNDOREDO_UPDATE,\n (state: UndoRedoUpdateParams) => {\n const controls = this.getNativeElement(this.$el);\n controls.setAttribute(\n ATTRIBUTE_CAN_UNDO,\n state.undoCount > 0 ? TRUE : FALSE,\n );\n controls.setAttribute(\n ATTRIBUTE_CAN_REDO,\n state.redoCount > 0 ? TRUE : FALSE,\n );\n },\n );\n\n ui.model.bind(EVENT_SELECT, () => this.updateSelectionState())\n ui.model.bind(EVENT_DESELECT, () => this.updateSelectionState())\n ui.model.bind(EVENT_SELECTION_CLEARED, () => this.updateSelectionState())\n\n this.$cdr.detectChanges();\n }\n })\n }\n\n getNativeElement(component: any): BrowserElement {\n return (\n component.nativeElement ||\n component._nativeElement ||\n component.location.nativeElement\n ).childNodes[0];\n }\n\n panMode(): void {\n this.ui().setMode(SURFACE_MODE_PAN);\n }\n\n selectMode(): void {\n this.ui().setMode(SURFACE_MODE_SELECT);\n }\n\n zoomToFit(): void {\n this.model().clearSelection();\n this.ui().zoomToFit();\n }\n\n zoomIn():void {\n this.ui().zoomIn()\n }\n\n zoomOut():void {\n this.ui().zoomOut()\n }\n\n resetSelection():void {\n const ui = this.ui()\n this.model().clearSelection()\n if (supportsPathEditing(ui)) {\n ui.stopEditingPath()\n }\n }\n\n undo(): void {\n this.model()?.undo();\n }\n\n redo(): void {\n this.model()?.redo();\n }\n\n doClear(): void {\n const t = this.model();\n if (\n (t.getNodeCount() === 0 && t.getGroupCount() === 0) ||\n confirm(this.clearMessage)\n ) {\n t.clear();\n }\n }\n}\n","\nimport {AfterViewInit, Component, ElementRef, Input, Output, EventEmitter, inject, effect} from \"@angular/core\"\nimport { INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS, EdgeTypePicker, EdgePropertyMappings, Inspector } from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-edge-type\",\n template:`<div [attr.vjs-att]=\"propertyName\"></div>`\n})\nexport class EdgeTypePickerComponent {\n \n @Input() propertyName:string\n \n @Input() edgeMappings?:EdgePropertyMappings\n\n \n @Output() changeEvent = new EventEmitter<string>()\n\n private edgeTypePicker:EdgeTypePicker\n\n $vjs = inject(VisuallyJsService)\n\n _inspector = this.$vjs.inspector\n initialised = false\n\n private resolveMappings():EdgePropertyMappings {\n const mappings = this.edgeMappings || this._inspector().getFromContext<EdgePropertyMappings>(INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS)\n return mappings || this._inspector().$ui.$getEdgePropertyMappings()\n }\n\n constructor(private el:ElementRef) {\n effect(() => {\n if (!this.initialised) {\n const inspector = this._inspector()\n if (inspector != null) {\n this.initialised = true\n inspector.onChange(() => {\n this.edgeTypePicker.select(this.propertyName, inspector.getValue(this.propertyName))\n })\n\n const current = inspector.getValue(this.propertyName) || ''\n this.edgeTypePicker = new EdgeTypePicker(inspector.$ui, this.el.nativeElement,\n this.resolveMappings(), current, (p:string, v:string) => {\n inspector.setValue(this.propertyName, v)\n this.changeEvent.emit(v)\n })\n this.edgeTypePicker.render(this.propertyName, inspector._currentCommonData)\n }\n }\n })\n }\n}\n","import {Directive, effect, ElementRef, inject, Input} from \"@angular/core\";\nimport {\n DataGeneratorFunction,\n GroupIdentifierFunction,\n OnVertexAddedCallback,\n Palette,\n PaletteOptions,\n Size,\n TypeGeneratorFunction,\n CanvasDropFilter, PaletteMode,\n} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Directive({\n selector: \"[vjs-palette]\",\n})\nexport class PaletteComponent<T> {\n\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n\n $surface = this.$vjs.surface\n\n initialized = false\n\n\n \n @Input() selector?: string;\n\n \n @Input() dataGenerator?: DataGeneratorFunction<T>;\n\n \n @Input() typeGenerator?: TypeGeneratorFunction<T>;\n\n \n @Input() groupIdentifier?: GroupIdentifierFunction<T>;\n\n \n palette: Palette<T>;\n\n \n @Input() allowDropOnEdge?: boolean;\n \n @Input() allowDropOnGroup?: boolean;\n \n @Input() allowDropOnCanvas?: boolean;\n \n @Input() allowDropOnNode?: boolean;\n\n \n @Input() onVertexAdded?: OnVertexAddedCallback;\n\n \n @Input() dragSize?: Size;\n\n \n @Input() canvasDropFilter?: CanvasDropFilter<T>;\n\n \n @Input() mode?:PaletteMode;\n\n \n @Input() selectAfterAdd?:boolean\n\n \n @Input() allowClickToAdd?:boolean\n\n \n @Input() clickToAddOnly?:boolean\n\n constructor() {\n\n effect(() => {\n if(!this.initialized) {\n const surface = this.$surface()\n if (surface != null) {\n this.initialized = true\n let self = this;\n\n let params: PaletteOptions<T> = {\n source:self.$el.nativeElement,\n selector: self.selector,\n\n allowDropOnEdge: this.allowDropOnEdge,\n allowDropOnCanvas: this.allowDropOnCanvas,\n allowDropOnGroup: this.allowDropOnGroup,\n allowDropOnNode: this.allowDropOnNode,\n mode:this.mode,\n selectAfterAdd:this.selectAfterAdd,\n allowClickToAdd:this.allowClickToAdd,\n clickToAddOnly:this.clickToAddOnly\n };\n\n if (this.dataGenerator != null) {\n params.dataGenerator = this.dataGenerator;\n }\n\n if (this.typeGenerator != null) {\n params.typeGenerator = this.typeGenerator;\n }\n\n if (this.groupIdentifier != null) {\n params.groupIdentifier = this.groupIdentifier;\n }\n\n if (this.onVertexAdded != null) {\n params.onVertexAdded = this.onVertexAdded;\n }\n\n if (this.dragSize != null) {\n params.dragSize = this.dragSize;\n }\n\n if (this.canvasDropFilter != null) {\n params.canvasDropFilter = this.canvasDropFilter;\n }\n\n this.palette = new Palette(surface, params);\n }\n }\n })\n }\n}\n","import {\n Component, computed,\n ElementRef, inject,\n Input,\n} from \"@angular/core\";\nimport {\n CLASS_CONTROLS,\n CLASS_EXPORT_CONTROLS, ImageExportUI,\n ImageExportUIOptions,\n PointXY,\n SvgExportUI,\n SvgExportUIOptions,\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: \"vjs-export-controls\",\n template: `<div class=\"${CLASS_CONTROLS} ${CLASS_EXPORT_CONTROLS}\">\n <span *ngIf=\"showLabel\">{{ label }}</span>\n <i *ngIf=\"allowSvgExport\"\n ><a href=\"#\" id=\"exportSvg\" (click)=\"exportSVG()\">SVG</a></i\n >\n <i *ngIf=\"allowPngExport\"\n ><a href=\"#\" id=\"exportPng\" (click)=\"exportPNG()\">PNG</a></i\n >\n <i *ngIf=\"allowJpgExport\"\n ><a href=\"#\" id=\"exportJpg\" (click)=\"exportJPG()\">JPG</a></i\n >\n </div>`,\n})\nexport class ExportControlsComponent {\n\n \n @Input() showLabel? = true;\n \n @Input() label? = \"Export:\";\n\n \n @Input() margins?: PointXY;\n \n @Input() svgOptions?: SvgExportUIOptions;\n \n @Input() imageOptions?: ImageExportUIOptions;\n \n @Input() allowSvgExport? = true;\n \n @Input() allowPngExport? = true;\n \n @Input() allowJpgExport? = true;\n\n // new\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n\n \n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n\n\n exportSVG(): void {\n new SvgExportUI(this.ui()).export(this.svgOptions)\n }\n\n exportPNG(): void {\n new ImageExportUI(this.ui()).export(this.imageOptions)\n }\n\n exportJPG(): void {\n new ImageExportUI(this.ui()).export(Object.assign(this.imageOptions || {}, {\n type: \"image/jpeg\",\n }))\n }\n}\n","\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n signal,\n ChangeDetectorRef, inject, effect\n} from \"@angular/core\"\nimport {\n CLASS_COLOR_PICKER,\n CLASS_COLOR_PICKER_SWATCH, CLASS_COLOR_PICKER_SWATCHES,\n EVENT_CONTEXT_UPDATE,\n Inspector,\n INSPECTOR_CONTEXT_RECENT_COLORS\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-color\",\n template:`<div class=\"${CLASS_COLOR_PICKER}\">\n <input type=\"color\" [attr.vjs-att]=\"propertyName\"/>\n <div class=\"${CLASS_COLOR_PICKER_SWATCHES}\">\n <div *ngFor=\"let swatch of swatches()\" class=\"${CLASS_COLOR_PICKER_SWATCH}\" attr.data-color=\"{{swatch}}\" style=\"background-color:{{swatch}}\" (click)=\"selectColor(swatch)\"></div>\n </div>\n </div>`\n})\nexport class ColorPickerComponent {\n\n \n @Input() propertyName:string\n \n @Input() maxColors? = 10\n \n @Output() changeEvent = new EventEmitter<string>()\n\n swatches = signal<Array<string>>([]);\n\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n $cdr = inject(ChangeDetectorRef)\n initialized = false\n\n constructor() {\n effect(() => {\n const i = this.$vjs.inspector()\n if (!this.initialized) {\n this.initialized = true\n this.swatches.set(i.ensureContext(INSPECTOR_CONTEXT_RECENT_COLORS, () => []))\n i.bind(EVENT_CONTEXT_UPDATE, (p:{key:string, value:any}) => {\n if (p.key === INSPECTOR_CONTEXT_RECENT_COLORS) {\n this.swatches.set(p.value)\n this.$cdr.detectChanges()\n }\n })\n\n const colorInput = this.$el.nativeElement.querySelector(\"[type='color']\")\n colorInput.onchange = () => {\n const color = colorInput.value\n this.pushColor(color)\n i.setValue(this.propertyName, color, true)\n }\n\n setTimeout(() => {\n // if there is a color, maybe push to context\n const v = i.getValue(this.propertyName)\n if (v != null) {\n this.pushColor(v)\n }\n })\n }\n })\n }\n\n private $getInspector(cb:(i:Inspector) => any):void {\n const i = this.$vjs.inspector()\n if (i != null) {\n cb(i)\n }\n }\n\n selectColor(color:string):void {\n this.$getInspector(inspector => {\n inspector.setValue(this.propertyName, color)\n this.$el.nativeElement.querySelector(\"[type='color']\").value = color\n })\n }\n\n private pushColor(color:string):void {\n this.$getInspector(inspector => {\n const rc = inspector.getFromContext(INSPECTOR_CONTEXT_RECENT_COLORS)\n if (rc != null) {\n if (rc.find((c: string) => c === color) == null) {\n const cc = rc.slice()\n cc.unshift(color)\n if (cc.length >= this.maxColors) {\n cc.length = this.maxColors\n }\n\n inspector.updateContext(INSPECTOR_CONTEXT_RECENT_COLORS, cc)\n }\n }\n })\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef, inject,\n Input, NgZone,\n OnDestroy\n} from \"@angular/core\"\nimport {\n createDiagram,\n Diagram,\n DiagramOptions,\n DiagramSaveData,\n DiagramSaveOptions, ModelOptions,\n SaveOptions\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-diagram\",\n template:`<ng-content></ng-content>`\n})\nexport class DiagramComponent implements AfterViewInit, OnDestroy {\n\n \n @Input() options?:DiagramOptions\n \n @Input() data?:any\n \n @Input() url?:string\n\n \n @Input() modelOptions?:ModelOptions\n\n \n diagram:Diagram\n\n $ngZone = inject(NgZone)\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n\n ngAfterViewInit(): void {\n\n this.$ngZone.runOutsideAngular(() => {\n this.diagram = createDiagram(this.$el.nativeElement, this.options, this.modelOptions)\n\n this.$vjs.$setDiagram(this.diagram)\n\n if (this.data != null) {\n this.diagram.load({data:this.data})\n } else if (this.url != null) {\n this.diagram.load({url:this.url})\n }\n })\n\n }\n\n ngOnDestroy(): void {\n this.diagram.destroy()\n }\n\n \n save(options?:DiagramSaveOptions):DiagramSaveData {\n return this.diagram.save(options)\n }\n\n \n saveToUrl(options:SaveOptions):void {\n this.diagram.saveToUrl(options)\n }\n\n\n}\n","import {BrowserElement, DataSource, ObjectData} from \"@visuallyjs/browser-ui\";\nimport {\n AfterViewInit,\n effect,\n ElementRef,\n inject,\n Injectable,\n Input,\n NgZone,\n OnDestroy\n} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\nimport {SeriesBasedChart} from \"@visuallyjs/browser-ui/types/charts/series-based-chart\";\n\n\n@Injectable()\nexport abstract class SeriesBasedChartComponent<T extends SeriesBasedChart<O>, O, CO> implements AfterViewInit, OnDestroy {\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:CO\n\n \n @Input() useModel?:boolean\n\n private chart:T\n\n $el = inject(ElementRef)\n $ngZone = inject(NgZone)\n $vjs = inject(VisuallyJsService)\n\n private _init(dataSource?:DataSource, data?:Array<ObjectData>, url?:string):void {\n this.$ngZone.runOutsideAngular(() => {\n const o = Object.assign({}, this.options) as O\n Object.assign(o, {dataSource})\n this.chart = this.createChart(this.$el.nativeElement, o)\n if (data) {\n this.chart.load({data})\n } else if (url) {\n this.chart.load({url})\n }\n })\n }\n\n constructor() {\n effect(() => {\n if (this.useModel && this.chart == null) {\n const m = this.$vjs.model()\n if (m != null) {\n this._init(m, null, null)\n }\n }\n })\n }\n\n \n ngAfterViewInit(): void {\n if (!this.useModel) {\n this._init(null, this.data, this.url)\n }\n }\n\n ngOnDestroy(): void {\n this.chart?.destroy()\n }\n\n abstract createChart(el:BrowserElement, options:O):T\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n ColumnChart,\n ColumnChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface ColumnChartComponentOptions extends Omit<ColumnChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-column-chart\",\n template:`<div></div>`\n})\nexport class ColumnChartComponent extends SeriesBasedChartComponent<ColumnChart, ColumnChartOptions, ColumnChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:ColumnChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: ColumnChartOptions): ColumnChart {\n return new ColumnChart(el, options)\n }\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {BarChart, BarChartOptions, BrowserElement, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface BarChartComponentOptions extends Omit<BarChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-bar-chart\",\n template:`<div></div>`\n})\nexport class BarChartComponent extends SeriesBasedChartComponent<BarChart, BarChartOptions, BarChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:BarChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: BarChartOptions): BarChart {\n return new BarChart(el, options);\n }\n}\n","import {Diagram, DiagramCell, DiagramPalette, Size, PaletteMode, OnVertexAddedCallback, PreparedShape} from \"@visuallyjs/browser-ui\"\nimport {AfterViewInit, Component, effect, ElementRef, inject, Input} from \"@angular/core\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: \"vjs-diagram-palette\",\n template: `<div></div>`,\n})\nexport class DiagramPaletteComponent implements AfterViewInit {\n\n \n @Input() fill?:string\n \n @Input() outline?:string\n \n @Input() dragSize?:Size\n \n @Input() inspector?:boolean\n \n @Input() iconSize?:Size\n \n @Input() showLabels?:boolean\n \n @Input() paletteStrokeWidth?:number\n \n @Input() showAllMessage?:string\n \n @Input() onCellAdded?:(dc:DiagramCell) => any\n \n @Input() mode?:PaletteMode\n\n \n @Input() allowClickToAdd?:boolean\n\n \n @Input() autoExitDrawMode?:boolean\n\n \n @Input() selectAfterAdd?:boolean\n\n \n @Input({alias:\"diagram\"}) inputDiagram?:Diagram\n\n \n @Input() onVertexAdded?:OnVertexAddedCallback\n\n \n @Input() preparedShapes?:Array<PreparedShape>\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n\n initialized = false\n\n private $init(diagram:Diagram):void {\n if (!this.initialized) {\n \n new DiagramPalette(this.$el.nativeElement, diagram, {\n fill: this.fill,\n outline: this.outline,\n dragSize: this.dragSize,\n inspector: this.inspector,\n iconSize: this.iconSize,\n showLabels: this.showLabels,\n paletteStrokeWidth: this.paletteStrokeWidth,\n showAllMessage: this.showAllMessage,\n onCellAdded: this.onCellAdded,\n mode: this.mode,\n allowClickToAdd: this.allowClickToAdd,\n autoExitDrawMode: this.autoExitDrawMode,\n selectAfterAdd: this.selectAfterAdd,\n onVertexAdded: this.onVertexAdded,\n preparedShapes: this.preparedShapes\n })\n }\n }\n\n constructor() {\n effect(() => {\n const d = this.$vjs.diagram()\n if (d != null) {\n this.$init(d)\n }\n })\n }\n\n ngAfterViewInit(): void {\n if (this.inputDiagram != null) {\n this.$init(this.inputDiagram)\n }\n }\n\n}\n\n\n","import { Component, Input } from \"@angular/core\"\nimport {BrowserElement, CategoryValueChart, CategoryValueChartOptions, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface XYChartComponentOptions extends Omit<CategoryValueChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-xy-chart\",\n template:`<div></div>`\n})\nexport class XYChartComponent extends SeriesBasedChartComponent<CategoryValueChart, CategoryValueChartOptions, XYChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:CategoryValueChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: CategoryValueChartOptions): CategoryValueChart {\n return new CategoryValueChart(el, options);\n }\n\n\n}\n","import {\n Component,\n Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n LineChart,\n LineChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface LineChartComponentOptions extends Omit<LineChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-line-chart\",\n template:`<div></div>`\n})\nexport class LineChartComponent extends SeriesBasedChartComponent<LineChart, LineChartOptions, LineChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:LineChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: LineChartOptions): LineChart {\n return new LineChart(el, options)\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n AreaChart,\n AreaChartOptions,\n BrowserElement,\n ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface AreaChartComponentOptions extends Omit<AreaChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-area-chart\",\n template:`<div></div>`\n})\nexport class AreaChartComponent extends SeriesBasedChartComponent<AreaChart, AreaChartOptions, AreaChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:AreaChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: AreaChartOptions): AreaChart {\n return new AreaChart(el, options)\n }\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {PieChart, PieChartOptions, BrowserElement, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface PieChartComponentOptions extends Omit<PieChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-pie-chart\",\n template:`<div></div>`\n})\nexport class PieChartComponent extends SeriesBasedChartComponent<PieChart, PieChartOptions, PieChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:PieChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: PieChartOptions): PieChart {\n return new PieChart(el, options);\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n ScatterChart,\n ScatterChartOptions, BrowserElement, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface ScatterChartComponentOptions extends Omit<ScatterChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-scatter-chart\",\n template:`<div></div>`\n})\nexport class ScatterChartComponent extends SeriesBasedChartComponent<ScatterChart, ScatterChartOptions, ScatterChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:ScatterChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: ScatterChartOptions): ScatterChart {\n return new ScatterChart(el, options)\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n BubbleChart,\n BubbleChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface BubbleChartComponentOptions extends Omit<BubbleChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-bubble-chart\",\n template:`<div></div>`\n})\nexport class BubbleChartComponent extends SeriesBasedChartComponent<BubbleChart, BubbleChartOptions, BubbleChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:BubbleChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: BubbleChartOptions): BubbleChart {\n return new BubbleChart(el, options)\n }\n\n}\n","import {\n Component, inject,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n AfterViewInit, OnDestroy, NgZone, effect\n} from \"@angular/core\"\nimport {\n SankeyChart,\n SankeyOptions,\n VisuallyJsDefaultJSON,\n DataSource\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"../vjs-service\";\n\nexport interface SankeyChartComponentOptions extends Omit<SankeyOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-sankey-chart\",\n template:`<div></div>`\n})\nexport class SankeyChartComponent implements AfterViewInit, OnDestroy, OnChanges {\n\n \n @Input() csvData?: string\n\n \n @Input() jsonData?: VisuallyJsDefaultJSON\n\n \n @Input() url?: string\n\n \n @Input() interactive?: boolean\n\n \n @Input() pivot?: string\n\n \n @Input() options:SankeyChartComponentOptions\n\n \n @Input() useModel?:boolean\n\n private chart:SankeyChart\n\n $el = inject(ElementRef)\n $ngZone = inject(NgZone)\n $vjs = inject(VisuallyJsService)\n\n constructor() {\n effect(() => {\n if (this.useModel && this.chart == null) {\n const m = this.$vjs.model()\n if (m != null) {\n this._init(m, null, null, null)\n }\n }\n })\n }\n\n \n private _init(dataSource?:DataSource, csvData?:string, jsonData?:VisuallyJsDefaultJSON, url?:string): void {\n this.$ngZone.runOutsideAngular(() => {\n const options = Object.assign({}, this.options)\n if (this.interactive != null) {\n options.interactive = this.interactive\n }\n if (this.pivot != null) {\n options.pivot = this.pivot\n }\n Object.assign(options, {\n csvData,\n jsonData,\n dataSource,\n url\n })\n this.chart = new SankeyChart(this.$el.nativeElement, options)\n })\n }\n \n ngAfterViewInit(): void {\n if (!this.useModel) {\n this._init(null, this.csvData, this.jsonData, this.url)\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // @ts-ignore\n if (changes['pivot'] && this.chart) {\n // @ts-ignore\n this.chart.pivot(changes['pivot'].currentValue)\n }\n }\n\n ngOnDestroy(): void {\n this.chart?.destroy()\n }\n}\n","import {\n Component,\n Input,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n inject\n} from \"@angular/core\";\nimport {PointXY, FixedElementConstraints, Surface} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n@Component({\n selector: \"vjs-decorator\",\n template: `\n <div style=\"display:inline-block;\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DecoratorComponent implements AfterViewInit, OnDestroy {\n \n @Input() placement: 'fixed' | 'floating' = 'floating';\n\n \n @Input() position: PointXY = { x: 0, y: 0 };\n\n \n @Input() constraints?: FixedElementConstraints;\n\n private el = inject(ElementRef);\n\n private surface!:Surface\n\n service = inject(VisuallyJsService)\n\n ngAfterViewInit(): void {\n\n this.service.getSurface(s => {\n const nativeElement = this.el.nativeElement.firstElementChild as HTMLElement;\n\n if (this.placement === 'fixed') {\n s.fixElement(nativeElement, this.position, this.constraints);\n } else {\n s.floatElement(nativeElement, this.position);\n }\n })\n }\n\n ngOnDestroy(): void {\n if (this.surface && this.placement === 'fixed') {\n this.surface.unfixElement(this.el.nativeElement.firstElementChild as HTMLElement);\n }\n }\n // Note: Surface.floatElement typically appends to a layer that is cleaned up\n // when the surface is destroyed, but manual DOM removal of the element\n // handled by Angular's lifecycle is usually sufficient here.\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from \"@angular/common\"\n\nimport {MiniviewComponent} from \"./miniview-component\"\nimport {SurfaceComponent} from \"./surface-component\"\nimport {ShapePaletteComponent} from \"./shape.palette.component\"\nimport {ShapeComponent} from \"./shape.component\"\nimport {ControlsComponent} from \"./controls-component\"\nimport {EdgeTypePickerComponent} from \"./edge.type.picker.component\"\nimport {DefaultNodeComponent} from \"./default-node-component\"\nimport {DefaultGroupComponent} from \"./default-group-component\"\nimport {BasePortComponent} from \"./base.port.component\"\nimport {PaletteComponent} from \"./palette.component\"\nimport {ExportControlsComponent} from \"./export-controls-component\"\nimport {ColorPickerComponent} from \"./color.tag.component\"\nimport {DiagramComponent} from \"./diagram-component\"\nimport {ColumnChartComponent} from \"./charts/column.chart.component\"\nimport {BarChartComponent} from \"./charts/bar.chart.component\"\nimport { DiagramPaletteComponent } from \"./diagram-palette-component\";\nimport {XYChartComponent} from \"./charts/xy.chart.component\";\nimport {LineChartComponent} from \"./charts/line.chart.component\";\nimport {AreaChartComponent} from \"./charts/area.chart.component\";\nimport {PieChartComponent} from \"./charts/pie.chart.component\";\nimport {ScatterChartComponent} from \"./charts/scatter.chart.component\";\nimport {BubbleChartComponent} from \"./charts/bubble.chart.component\";\nimport {SankeyChartComponent} from \"./charts/sankey.chart.component\";\nimport {DecoratorComponent} from \"./decorator-component\";\n\n\n@NgModule({\n imports:[ CommonModule ],\n declarations: [\n DefaultNodeComponent,\n DefaultGroupComponent,\n BasePortComponent,\n MiniviewComponent,\n SurfaceComponent,\n PaletteComponent,\n ShapePaletteComponent,\n DiagramPaletteComponent,\n ShapeComponent,\n ControlsComponent,\n EdgeTypePickerComponent,\n PaletteComponent,\n ExportControlsComponent,\n ColorPickerComponent,\n DiagramComponent,\n ColumnChartComponent,\n BarChartComponent,\n XYChartComponent,\n LineChartComponent,\n AreaChartComponent,\n PieChartComponent,\n ScatterChartComponent,\n BubbleChartComponent,\n SankeyChartComponent,\n DecoratorComponent\n ],\n exports: [\n MiniviewComponent,\n SurfaceComponent,\n PaletteComponent,\n DiagramPaletteComponent,\n ShapeComponent,\n ShapePaletteComponent,\n ControlsComponent,\n ExportControlsComponent,\n EdgeTypePickerComponent,\n ColorPickerComponent,\n DiagramComponent,\n ColumnChartComponent,\n BarChartComponent,\n XYChartComponent,\n LineChartComponent,\n AreaChartComponent,\n PieChartComponent,\n ScatterChartComponent,\n BubbleChartComponent,\n SankeyChartComponent,\n DecoratorComponent\n ]\n})\nexport class VisuallyJsModule { }\n","import {\n BrowserElement,\n SurfaceOptions,\n Vertex,\n GroupMapping,\n NodeMapping,\n PortMapping,\n ViewSpec,\n} from \"@visuallyjs/browser-ui\";\n\n\nexport interface AngularNodeMapping\n extends Omit<NodeMapping<BrowserElement>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n\n \n inputs?: Record<string, string | ((v: Vertex) => string)>;\n}\n\n\nexport interface AngularGroupMapping\n extends Omit<GroupMapping<any>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n\n \n inputs?: Record<string, string | ((v: Vertex) => string)>;\n}\n\n\nexport interface AngularPortMapping\n extends Omit<PortMapping<any>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n}\n\n\nexport interface AngularViewOptions extends ViewSpec<BrowserElement> {\n \n nodes?: Record<string, AngularNodeMapping>;\n \n groups?: Record<string, AngularGroupMapping>;\n \n ports?: Record<string, AngularPortMapping>;\n}\n\n\nexport interface AngularRenderOptions\n extends Pick<\n SurfaceOptions,\n Exclude<\n keyof SurfaceOptions,\n [\"view\", \"tags\", \"container\"]\n >\n > {}\n\n// [\"view\", \"tags\", \"container\", \"directRender\", \"storePositionsInModel\"]\n\n\n","import {\n ChangeDetectorRef,\n ElementRef,\n Input,\n inject,\n Directive,\n computed,\n effect,\n} from \"@angular/core\";\nimport {Inspector, Base, Edge, Node, Group, Port, BrowserUI} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Directive()\nexport class InspectorComponent<T extends Base = Base>\n{\n \n currentObj: T;\n\n \n currentType = \"\";\n\n \n currentObjectType = \"\";\n\n \n EDGE = Edge.objectType\n\n \n NODE = Node.objectType\n\n \n GROUP = Group.objectType\n\n \n PORT = Port.objectType\n\n \n @Input() cssClass?:string\n\n \n @Input() showCloseButton?: boolean;\n\n \n @Input() context?:Record<string, any> = {}\n\n \n inspector!: Inspector;\n\n \n changeDetector = inject(ChangeDetectorRef);\n\n \n el = inject(ElementRef);\n\n\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n initialized = false\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (!this.initialized && ui != null) {\n this.initialized = true\n this.inspector = new Inspector({\n context:this.context,\n container: this.el.nativeElement,\n cssClass:this.cssClass,\n showCloseButton: this.showCloseButton,\n ui,\n renderEmptyContainer: () => {\n this.reset();\n this.changeDetector.detectChanges();\n },\n refresh: (obj: Base, cb: () => void) => {\n this.currentObj = obj as T;\n this.refresh(obj);\n setTimeout(cb, 0);\n this.changeDetector.detectChanges();\n },\n afterUpdate: () => this.afterUpdate(ui),\n });\n\n this.$vjs.$setInspector(this.inspector)\n }\n })\n }\n\n \n refresh(obj: Base): void {\n this.currentType = obj.data.type;\n this.currentObjectType = obj.objectType;\n }\n\n \n reset(): void {\n this.currentType = \"\";\n this.currentObjectType = ''\n }\n\n \n afterUpdate(ui: BrowserUI): void {}\n}\n","import {EVENT_ZOOM} from \"@visuallyjs/browser-ui\";\nimport {effect, Signal, signal, inject} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\n\n\nexport function useZoom():Signal<number> {\n\n const $vjs = inject(VisuallyJsService)\n const surface = $vjs.surface\n\n const zoom = signal<number>(1)\n\n effect(() => {\n const s = surface()\n if (s != null) {\n const zoomListener = (p:{zoom: number}) => {\n zoom.set(p.zoom);\n };\n s.bind(EVENT_ZOOM, zoomListener);\n zoom.set(s.getZoom());\n return () => {\n s.unbind(EVENT_ZOOM, zoomListener);\n };\n }\n\n return;\n })\n\n return zoom\n}\n","import {EVENT_DATA_UPDATED, EVENT_GRAPH_CLEARED, BrowserUIModel} from \"@visuallyjs/browser-ui\";\nimport {effect, inject} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\n\n\nexport function useVisuallyJsUpdate(callback:(model:BrowserUIModel) => any):void {\n\n const $vjs = inject(VisuallyJsService)\n\n effect(() => {\n const m = $vjs.model()\n if (m != null) {\n\n const fn = () => callback(m)\n\n m.bind(EVENT_DATA_UPDATED, fn)\n m.bind(EVENT_GRAPH_CLEARED, fn)\n fn()\n\n return (() => {\n m.unbind(EVENT_DATA_UPDATED, fn)\n m.unbind(EVENT_GRAPH_CLEARED, fn)\n })\n }\n return\n })\n}\n","\nexport * from './lib/browser-ui-angular.module'\nexport * from './lib/model'\nexport * from './lib/vjs-service'\nexport * from './lib/base.node.component'\nexport * from './lib/base.vertex.component'\nexport * from './lib/base.group.component'\nexport * from './lib/base.port.component'\nexport * from './lib/default-node-component'\nexport * from './lib/default-group-component'\nexport * from './lib/common'\nexport * from './lib/miniview-component'\nexport * from './lib/surface-component'\nexport * from './lib/overlay-component'\nexport * from './lib/palette.component';\nexport * from './lib/decorator-component';\nexport * from './lib/shape.component';\nexport * from './lib/shape.palette.component';\nexport * from './lib/diagram-palette-component';\nexport * from './lib/controls-component';\nexport * from './lib/export-controls-component';\nexport * from './lib/edge.type.picker.component';\nexport * from './lib/inspector.component';\nexport * from './lib/color.tag.component';\nexport * from './lib/diagram-component';\nexport * from './lib/charts/series.based.chart.component'\nexport * from './lib/charts/column.chart.component'\nexport * from './lib/charts/bar.chart.component'\nexport * from './lib/charts/line.chart.component'\nexport * from './lib/charts/area.chart.component'\nexport * from './lib/charts/xy.chart.component'\nexport * from './lib/charts/pie.chart.component'\nexport * from './lib/charts/scatter.chart.component'\nexport * from './lib/charts/bubble.chart.component'\nexport * from './lib/charts/sankey.chart.component'\nexport * from './lib/hooks/use-zoom'\nexport * from './lib/hooks/use-visuallyjs-update'\n\n","\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visuallyjs-browser-ui-angular.mjs","sources":["../../../../projects/visuallyjs/browser-ui-angular/src/lib/vjs-service.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/miniview-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/overlay-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.vertex.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.group.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/default-group-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.node.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/default-node-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/base.port.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/model.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/surface-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/shape.palette.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/shape.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/controls-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/edge.type.picker.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/palette.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/export-controls-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/color.tag.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/diagram-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/series.based.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/column.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/bar.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/diagram-palette-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/xy.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/line.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/area.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/pie.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/scatter.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/bubble.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/charts/sankey.chart.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/decorator-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/surface-popup-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/paper-component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/background.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/image-background.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/tiled-image-background.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/grid-background.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/browser-ui-angular.module.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/common.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/inspector.component.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/hooks/use-zoom.ts","../../../../projects/visuallyjs/browser-ui-angular/src/lib/hooks/use-visuallyjs-update.ts","../../../../projects/visuallyjs/browser-ui-angular/src/index.ts","../../../../projects/visuallyjs/browser-ui-angular/src/visuallyjs-browser-ui-angular.ts"],"sourcesContent":["import {BrowserUI, Diagram, Inspector, log, Paper, Surface, BrowserUIModel} from \"@visuallyjs/browser-ui\";\nimport {Injectable, signal} from \"@angular/core\";\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VisuallyJsService {\n\n readonly model = signal<BrowserUIModel|null>(null)\n readonly surface = signal<Surface|null>(null)\n readonly paper = signal<Paper|null>(null)\n readonly diagram= signal<Diagram|null>(null)\n readonly inspector = signal<Inspector|null>(null)\n readonly ui = signal<BrowserUI|null>(null)\n\n private $model:BrowserUIModel\n private $surface:Surface\n private $paper:Paper\n private $diagram:Diagram\n private $inspector:Inspector\n\n private inspectorListeners:Array<(i:Inspector) => any> = []\n private surfaceListeners:Array<(s:Surface) => any> = []\n private paperListeners:Array<(p:Paper) => any> = []\n private modelListeners:Array<(m:BrowserUIModel) => any> = []\n private diagramListeners:Array<(d:Diagram) => any> = []\n private uiListeners:Array<(b:BrowserUI) => any> = []\n\n \n $setInspector(i:Inspector):void {\n this.inspector.set(i)\n\n // deprecated from here\n this.$inspector = i\n this.$notifyInspector()\n }\n\n private $notifyInspector():void {\n this.inspectorListeners.forEach(sl => {\n try {\n sl(this.$inspector)\n } catch (e) {\n log(`WARN: could not notify Inspector listener ${e}`)\n }\n })\n\n this.inspectorListeners.length = 0\n }\n\n $setSurface(s:Surface):void {\n this.model.set(s.model)\n this.surface.set(s)\n this.ui.set(s)\n\n // deprecated from here\n // @ts-ignore\n this.$setModel(s.model)\n this.$surface = s\n this.$notifySurface()\n }\n\n \n private $notifySurface():void {\n this.surfaceListeners.forEach(sl => {\n try {\n sl(this.$surface)\n } catch (e) {\n log(`WARN: could not notify Surface listener ${e}`)\n }\n })\n\n this.surfaceListeners.length = 0\n\n this.$notifyUI(this.$surface)\n }\n\n \n getSurface(cb:(s:Surface) => any):void {\n if (this.$surface != null) {\n cb(this.$surface)\n } else {\n this.surfaceListeners.push(cb)\n }\n }\n\n \n getInspector(cb:(s:Inspector) => any):void {\n if (this.$inspector != null) {\n cb(this.$inspector)\n } else {\n this.inspectorListeners.push(cb)\n }\n }\n\n $setPaper(p:Paper):void {\n this.model.set(p.model)\n this.paper.set(p)\n this.ui.set(p)\n\n // deprecated below\n // @ts-ignore\n this.$setModel(p.model)\n this.$paper = p\n this.$notifyPaper()\n }\n\n \n private $notifyPaper():void {\n this.paperListeners.forEach(sl => {\n try {\n sl(this.$paper)\n } catch (e) {\n log(`WARN: could not notify Paper listener ${e}`)\n }\n })\n\n this.paperListeners.length = 0\n\n this.$notifyUI(this.$paper)\n }\n\n \n getPaper(cb:(p:Paper) => any):void {\n if (this.$paper != null) {\n cb(this.$paper)\n } else {\n this.paperListeners.push(cb)\n }\n }\n\n \n $setDiagram(d:Diagram):void {\n\n this.model.set(d.model)\n this.diagram.set(d)\n if (d.$ui instanceof Surface) {\n this.surface.set(d.$ui)\n }\n if (d.$ui instanceof Paper) {\n this.paper.set(d.$ui)\n }\n\n // deprecated below\n this.$diagram = d\n if (d.$ui instanceof Surface) {\n this.$setSurface(d.$ui as Surface)\n }\n if (d.$ui instanceof Paper) {\n this.$setPaper(d.$ui as Paper)\n }\n this.$notifyDiagram()\n }\n\n \n private $notifyDiagram():void {\n this.diagramListeners.forEach(sl => {\n try {\n sl(this.$diagram)\n } catch (e) {\n log(`WARN: could not notify Diagram listener ${e}`)\n }\n })\n\n this.diagramListeners.length = 0\n }\n\n \n getDiagram(cb:(p:Diagram) => any):void {\n if (this.$diagram != null) {\n cb(this.$diagram)\n } else {\n this.diagramListeners.push(cb)\n }\n }\n\n \n getModel(cb:(p:BrowserUIModel) => any):void {\n if (this.$model != null) {\n cb(this.$model)\n } else {\n this.modelListeners.push(cb)\n }\n }\n\n \n $setModel(m:BrowserUIModel):void {\n this.model.set(m)\n // deprecated below\n this.$model = m\n this.$notifyModel()\n }\n\n \n private $notifyModel():void {\n this.modelListeners.forEach(sl => {\n try {\n sl(this.$model)\n } catch (e) {\n log(`WARN: could not notify Model listener ${e}`)\n }\n })\n this.modelListeners.length = 0\n }\n\n \n private $notifyUI(ui:BrowserUI):void {\n this.uiListeners.forEach(sl => {\n try {\n sl(ui)\n } catch (e) {\n log(`WARN: could not notify UI listener ${e}`)\n }\n })\n this.uiListeners.length = 0\n }\n\n \n getUI(cb:(b:BrowserUI) => any):void {\n const ui = this.$surface || this.$paper\n if (ui != null) {\n cb(ui)\n } else {\n this.uiListeners.push(cb)\n }\n }\n\n\n}\n","import {AfterViewInit, Component, effect, ElementRef, inject, Input, NgZone} from \"@angular/core\"\nimport {MiniviewPlugin, Group, Node, MiniviewPluginOptions, Vertex} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: 'vjs-miniview',\n template: `<div></div>`\n})\nexport class MiniviewComponent {\n\n \n @Input() elementFilter?: (obj: Vertex) => boolean;\n\n \n @Input() typeFunction?:(obj:Node|Group) => string;\n\n \n @Input() activeTracking? = true;\n\n \n @Input() clickToCenter? = true;\n \n @Input() showLasso? = true;\n \n @Input() trackSelection? = true;\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n $ui = this.$vjs.ui\n\n initialized = false\n\n $miniview!:MiniviewPlugin\n\n constructor(private ngZone:NgZone) {\n\n effect(() => {\n if (!this.initialized) {\n const ui = this.$ui()\n if (ui != null) {\n this.initialized = true\n this.ngZone.runOutsideAngular(() => {\n this.$miniview = ui.addPlugin<MiniviewPluginOptions, MiniviewPlugin>(\n {\n type: MiniviewPlugin.type,\n options: {\n container: this.$el.nativeElement.childNodes[0],\n elementFilter: this.elementFilter,\n typeFunction: this.typeFunction,\n activeTracking: this.activeTracking,\n clickToCenter: this.clickToCenter,\n showLasso: this.showLasso,\n trackSelection: this.trackSelection\n },\n },\n );\n })\n }\n }\n });\n }\n\n \n redraw():void {\n if(this.$miniview != null) {\n this.$miniview.invalidate()\n }\n }\n}\n","import {\n BrowserUI,\n Edge,\n EdgeUpdatedParams,\n EVENT_EDGE_UPDATED, EVENT_GROUP_UPDATED, EVENT_NODE_UPDATED, EVENT_PORT_UPDATED,\n ObjectData, PortUpdatedParams,\n VertexUpdatedParams,\n VisuallyJsModel\n} from \"@visuallyjs/browser-ui\"\nimport {ChangeDetectorRef, inject, Injectable, OnDestroy, OnInit, signal} from \"@angular/core\"\nimport {VisuallyJsAngularComponent} from \"./surface-component\"\n\n\nexport const AngularComponentOverlayType = \"AngularComponent\"\n\n\nexport interface AngularOverlayComponent<T extends BrowserUI=BrowserUI> extends VisuallyJsAngularComponent<T> {\n \n edge:Edge\n}\n\n\n@Injectable()\nexport abstract class BaseAngularOverlayComponent<T extends BrowserUI=BrowserUI> implements OnInit, OnDestroy, AngularOverlayComponent<T> {\n \n model:VisuallyJsModel\n \n ui:T\n \n data:ObjectData\n \n edge:Edge\n\n \n changeDetectorRef = inject(ChangeDetectorRef)\n\n \n $edgeData = signal<ObjectData>({})\n \n $sourceData = signal<ObjectData>({})\n \n $targetData = signal<ObjectData>({})\n\n _edgeUpdate:(payload:any, event:any) => any\n _vertexUpdate:(payload:any, event:any) => any\n _portUpdate:(payload:any, event:any) => any\n\n ngOnInit(): void {\n\n this.$edgeData.set(this.edge.data)\n this.$sourceData.set(this.edge.source.data)\n this.$targetData.set(this.edge.target.data)\n\n this._edgeUpdate = (p:EdgeUpdatedParams) => {\n if (p.edge.id === this.edge.id) {\n this.$edgeData.set({...p.edge.data})\n this.$sourceData.set({...p.edge.source.data})\n this.$targetData.set({...p.edge.target.data})\n }\n }\n\n this._vertexUpdate = (p:VertexUpdatedParams) => {\n if (p.vertex === this.edge.source) {\n this.$sourceData.set({...p.vertex.data})\n }\n if (p.vertex === this.edge.target) {\n this.$targetData.set({...p.vertex.data})\n }\n }\n\n this._portUpdate = (p:PortUpdatedParams) => {\n if (p.port === this.edge.source) {\n this.$sourceData.set({...p.port.data})\n }\n if (p.port === this.edge.target) {\n this.$targetData.set({...p.port.data})\n }\n }\n\n this.model.bind(EVENT_EDGE_UPDATED, this._edgeUpdate)\n\n this.model.bind(EVENT_NODE_UPDATED, this._vertexUpdate)\n this.model.bind(EVENT_GROUP_UPDATED, this._vertexUpdate)\n\n this.model.bind(EVENT_PORT_UPDATED, this._portUpdate)\n }\n\n ngOnDestroy():void {\n this.model.unbind(EVENT_EDGE_UPDATED, this._edgeUpdate)\n this.model.unbind(EVENT_NODE_UPDATED, this._vertexUpdate)\n this.model.unbind(EVENT_GROUP_UPDATED, this._vertexUpdate)\n this.model.unbind(EVENT_PORT_UPDATED, this._portUpdate)\n }\n\n \n updateEdge(updates:ObjectData):void {\n this.model.updateEdge(this.edge, updates)\n }\n\n \n removeEdge():void {\n this.model.removeEdge(this.edge)\n }\n}\n","\nimport {\n ChangeDetectorRef,\n inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from \"@angular/core\";\nimport {\n ObjectData,\n Node,\n Surface,\n BrowserElement,\n VisuallyJsModel, SurfaceVertexCloneOptions,\n Port,\n EVENT_ZOOM,\n PanZoomEventPayload,\n Edge,\n Paper,\n BrowserUI,\n} from \"@visuallyjs/browser-ui\"\n\n\n@Injectable()\nexport abstract class BaseVertexComponent<T extends Node>\n implements OnInit, OnDestroy\n{\n \n @Input() data: ObjectData;\n\n \n @Input() model: VisuallyJsModel;\n\n \n @Input() surface: Surface;\n\n \n @Input() paper: Paper;\n\n \n @Input() ui: BrowserUI;\n\n \n @Input() modelObject: T;\n\n \n _el: BrowserElement;\n\n \n changeDetectorRef = inject(ChangeDetectorRef);\n\n \n readonly $data = signal<ObjectData>(undefined!);\n\n \n zoom = signal(1)\n\n \n sourceEdges = signal<Array<Edge>>([])\n \n allSourceEdges = signal<Array<Edge>>([])\n \n targetEdges = signal<Array<Edge>>([])\n \n allTargetEdges = signal<Array<Edge>>([])\n\n \n private _zoomHandler:(p:{zoom:number}) => any\n\n \n ngOnInit(): void {\n this.$data.set(this.data);\n if (this.surface) {\n this._zoomHandler = (p: PanZoomEventPayload) => {\n this.zoom.set(p.zoom)\n }\n this.zoom.set(this.surface.getZoom())\n this.surface.bind(EVENT_ZOOM, this._zoomHandler)\n }\n }\n\n $updateEdges():void {\n this.sourceEdges.set(this.getVertex().getSourceEdges())\n this.allSourceEdges.set(this.getVertex().getAllSourceEdges())\n this.targetEdges.set(this.getVertex().getTargetEdges())\n this.allTargetEdges.set(this.getVertex().getAllTargetEdges())\n }\n\n \n getVertex(): T {\n return this._getVertex();\n }\n\n \n abstract _getVertex(): T;\n\n \n ngOnDestroy(): void {\n this.surface?.unbind(EVENT_ZOOM, this._zoomHandler)\n delete (this._el as any)?._visuallyJsNgComponent._el;\n delete this._el;\n delete this.model;\n delete this.surface;\n delete this.paper;\n }\n\n \n removeVertex(): void {\n this.model.remove(this.getVertex());\n }\n\n \n addNewPort(type: string, data: ObjectData): void {\n this.model.addNewPort(this.getVertex(), type, data);\n }\n\n \n addPort(data:ObjectData):Port {\n return this.model.addPort(this.getVertex(), data)\n }\n\n \n setAsSelection():void {\n this.model.setSelection(this.getVertex())\n }\n\n \n addToSelection():void {\n this.model.addToSelection(this.getVertex())\n }\n\n \n removeFromSelection():void {\n this.model.removeFromSelection(this.getVertex())\n }\n\n \n updateVertex(data: ObjectData): void {\n this.model.updateVertex(this.getVertex(), data);\n }\n\n \n cloneVertex(options?:SurfaceVertexCloneOptions):void {\n this.surface?.cloneVertex(this.getVertex(), options)\n }\n\n \n flashVertex(duration:number, animName?:string) :void {\n this.surface?.flashVertex(this.getVertex(), duration, animName)\n }\n}\n","\nimport {\n Group, Node,\n ObjectData, Port, SurfaceVertexCloneOptions\n} from \"@visuallyjs/browser-ui\"\nimport {Injectable} from \"@angular/core\"\nimport {BaseVertexComponent} from \"./base.vertex.component\"\n\n\n\n@Injectable()\nexport abstract class BaseGroupComponent extends BaseVertexComponent<Group> {\n\n \n getGroup():Group { return this.model.getGroup(this.model.getGroupId(this.data)); }\n\n \n getMembers():Array<Node> { return this.getGroup().getMembers()}\n\n \n _getVertex(): Group {\n return this.getGroup()\n }\n\n \n updateGroup(data:ObjectData):void {\n this.updateVertex(data)\n }\n\n \n removeGroup():void {\n this.removeVertex()\n }\n\n \n cloneGroup(options?:SurfaceVertexCloneOptions):void {\n this.cloneVertex(options)\n }\n\n \n flashGroup(duration:number, animName?:string) :void {\n this.flashVertex(duration, animName)\n }\n\n \n removePort(portId:string):void {\n this.model.removePort(this.getGroup(), portId)\n }\n\n \n getPort(portId:string):Port {\n return this.getGroup().getPort(portId)\n }\n\n}\n","\nimport {Component, computed} from \"@angular/core\"\nimport {BaseGroupComponent} from \"./base.group.component\"\n\n\n@Component({\n template:`<div class=\"vjs-default-group\">{{label()}}</div>`\n})\nexport class DefaultGroupComponent extends BaseGroupComponent {\n\n readonly label = computed( () =>\n this.$data().label || \"\"\n );\n\n}\n","\nimport {\n Node,\n ObjectData, Port, SurfaceVertexCloneOptions\n} from \"@visuallyjs/browser-ui\"\nimport {Injectable, Input} from \"@angular/core\"\nimport {BaseVertexComponent} from \"./base.vertex.component\"\n\n\n\n@Injectable()\nexport abstract class BaseNodeComponent extends BaseVertexComponent<Node> {\n\n \n getNode():Node { return this.model.getNode(this.model.getNodeId(this.data)); }\n\n \n _getVertex(): Node {\n return this.getNode()\n }\n\n \n updateNode(data:ObjectData):void {\n this.updateVertex(data)\n }\n\n \n removeNode():void {\n this.removeVertex()\n }\n\n \n removePort(portId:string):void {\n this.model.removePort(this.getNode(), portId)\n }\n\n \n getPort(portId:string):Port {\n return this.getNode().getPort(portId)\n }\n\n \n cloneNode(options?:SurfaceVertexCloneOptions):void {\n this.cloneVertex(options)\n }\n\n \n flashNode(duration:number, animName?:string) :void {\n this.flashVertex(duration, animName)\n }\n}\n","\nimport {Component, computed} from \"@angular/core\"\nimport {BaseNodeComponent} from \"./base.node.component\"\n\n\n@Component({\n template:`<div class=\"vjs-default-node\">{{label()}}</div>`\n})\nexport class DefaultNodeComponent extends BaseNodeComponent {\n\n readonly label = computed( () =>\n this.$data().label || \"\"\n );\n\n}\n","import {\n ObjectData,\n Port,\n Node,\n Group,\n EVENT_PORT_UPDATED,\n PortUpdatedParams,\n log,\n} from \"@visuallyjs/browser-ui\";\n\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from \"@angular/core\";\nimport { BaseVertexComponent } from \"./base.vertex.component\";\n\n\n@Directive({\n selector: \"vjs-base-port\",\n})\nexport class BasePortComponent<O = ObjectData> implements OnInit, OnDestroy {\n \n changeDetectorRef = inject(ChangeDetectorRef);\n\n \n private _signalBinder!: (params: PortUpdatedParams) => any;\n\n \n readonly $data = signal<O>(undefined!);\n\n \n @Input() parent: BaseVertexComponent<Node | Group>;\n\n \n @Input() data: O;\n\n constructor(public el: ElementRef) {\n el.nativeElement._visuallyJsNgComponent = this;\n }\n\n \n private _signalBinding(n: PortUpdatedParams): void {\n if (this.parent != null) {\n \n if (n.vertex.id === this.parent.data.id && n.port.id === this.data[\"id\"]) {\n this.$data.set(this.data);\n }\n }\n }\n\n \n ngOnInit(): void {\n if (this.data == null) {\n log(`WARN: cannot instantiate port component; \"data\" not set`);\n return;\n }\n\n if (this.parent == null) {\n log(\n `WARN: cannot instantiate port component; \"parent\" not set (you need to set parent to be a BaseNodeComponent or BaseGroupComponent on this component in your template)`,\n );\n return;\n }\n\n this.$data.set(this.data);\n this._signalBinder = this._signalBinding.bind(this);\n this.parent.model.bind(EVENT_PORT_UPDATED, this._signalBinder);\n }\n\n \n getPort(): Port {\n return this.parent\n .getVertex()\n .getPort(this.parent.model.getPortId(this.data));\n }\n\n \n getPortId(): string {\n return this.parent.model.getPortId(this.data);\n }\n\n \n updatePort(data: ObjectData): void {\n this.parent.model.updatePort(this.getPort(), data);\n }\n\n \n removePort(): void {\n this.parent.model.removePort(this.parent.getVertex(), this.getPortId());\n }\n\n \n ngOnDestroy(): void {\n this.parent.model.unbind(EVENT_PORT_UPDATED, this._signalBinder);\n }\n}\n","import {\n BrowserUIModel,\n Surface,\n SurfaceOptions,\n log\n} from \"@visuallyjs/browser-ui\";\n\n\n\nexport class BrowserUIAngularModel extends BrowserUIModel {\n render(container: Element, options?: SurfaceOptions): Surface {\n log(\n \"render called directly on BrowserUIAngularModel class: should not happen. UI should use internal render.\",\n );\n return null;\n }\n}\n\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n ChangeDetectorRef, WritableSignal, inject, reflectComponentType, input, effect\n} from \"@angular/core\"\n\nimport {\n EdgeUpdatedParams,\n EVENT_EDGE_UPDATED,\n EVENT_GROUP_UPDATED,\n EVENT_NODE_UPDATED,\n EVENT_PORT_ADDED,\n EVENT_PORT_UPDATED,\n extend,\n ObjectData,\n PortUpdatedParams,\n Vertex,\n VertexUpdatedParams,\n FullOverlaySpec,\n OverlaySpec,\n renderSurface,\n Surface,\n TemplateRenderer,\n OVERLAY_TYPE_CUSTOM,\n isGroup,\n BrowserElement,\n EVENT_INTERNAL_CONNECTION,\n VisuallyJsModel,\n ModelOptions,\n EVENT_DATA_LOAD_END,\n SurfaceSaveData, ExportOptions, SaveOptions, CustomOverlayOptions, ELEMENT_DIV, Connection, HTMLElementOverlayHolder,\n BrowserUIModel, EdgeAddedParams,\n EdgeRemovedParams,\n EVENT_EDGE_REMOVED,\n EVENT_EDGE_ADDED,\n BrowserUI,\n Paper\n} from \"@visuallyjs/browser-ui\"\nimport {\n AngularRenderOptions,\n AngularViewOptions,\n AngularNodeMapping, AngularGroupMapping,\n} from \"./common\";\n\nimport {\n AngularComponentOverlayType,\n AngularOverlayComponent,\n} from \"./overlay-component\";\nimport { DefaultGroupComponent } from \"./default-group-component\";\nimport { DefaultNodeComponent } from \"./default-node-component\";\nimport { BasePortComponent } from \"./base.port.component\";\nimport {VisuallyJsService} from \"./vjs-service\";\nimport {BrowserUIAngularModel} from \"./model\";\nimport {BaseVertexComponent} from \"./base.vertex.component\";\n\n\nexport type VisuallyJsAngularDOMElement = BrowserElement & {\n _visuallyJsNgComponent:any\n _ref:ComponentRef<any>\n}\n\n\nexport interface VisuallyJsAngularComponent<T extends BrowserUI> {\n model:VisuallyJsModel\n ui:T\n data:ObjectData\n $data?:WritableSignal<ObjectData>\n changeDetectorRef?:ChangeDetectorRef\n}\n\n\nexport interface VisuallyJsAngularVertexComponent<T extends BrowserUI> extends VisuallyJsAngularComponent<T> {\n modelObject:Vertex\n _el:VisuallyJsAngularDOMElement\n surface?:Surface\n paper?:Paper\n}\n\n\n@Component({\n selector: \"vjs-surface\",\n template:`<ng-content></ng-content>`\n})\nexport class SurfaceComponent<\n RO extends AngularRenderOptions = AngularRenderOptions,\n >\n implements AfterViewInit, OnDestroy\n{\n\n \n @Input({alias:\"model\"}) inputModel?:BrowserUIModel\n\n \n @Input() viewOptions?: AngularViewOptions;\n \n @Input() renderOptions?: AngularRenderOptions;\n\n \n @Input() modelOptions?: ModelOptions;\n\n \n data = input<Record<string, any> | undefined>();\n\n \n url = input<string | undefined>();\n\n \n @Output() vertexEvent = new EventEmitter<{\n \n vertex: Vertex;\n \n event: string;\n \n payload: any;\n \n component: ComponentRef<any>;\n }>();\n\n \n model: BrowserUIModel;\n\n \n surface: Surface;\n\n // we keep these refs in order to be able to cleanup listeners properly.\n nodeUpdateFn: (a: any, e?: any) => any;\n groupUpdateFn: (a: any, e?: any) => any;\n portAddedFn: (a: any, e?: any) => any;\n portUpdateFn: (a: any, e?: any) => any;\n dataLoadEndFn: () => any;\n\n edgeUpdateFn: (a: any, e?: any) => any;\n edgeAddFn: (a: any, e?: any) => any;\n edgeRemoveFn: (a: any, e?: any) => any;\n\n $el = inject(ElementRef)\n $viewContainerRef = inject(ViewContainerRef)\n $ngZone = inject(NgZone)\n\n $vjs = inject(VisuallyJsService)\n\n private _dataEffect = effect(() => {\n const currentData = this.data();\n if (currentData) {\n if (this.model) {\n this.model.clear()\n this.model.load({ data: currentData });\n }\n }\n });\n\n private _urlEffect = effect(() => {\n const currentUrl = this.url();\n if (currentUrl) {\n // Respond to changes in the url here.\n // For example, if you need to reload the model with new data:\n if (this.model) {\n this.model.clear()\n this.model.load({ url:currentUrl });\n }\n }\n });\n\n \n getNativeElement(component: any): VisuallyJsAngularDOMElement {\n return component.location.nativeElement.childNodes[0];\n }\n\n private _getComponent(el:BrowserElement, tryParent:boolean):VisuallyJsAngularComponent<Surface> {\n if (el == null) {\n return null\n } else {\n let vjc = (el as any)._visuallyJsNgComponent\n if (vjc == null && tryParent && el.parentNode != null) {\n vjc = (el.parentNode as any)._visuallyJsNgComponent\n }\n return vjc\n }\n }\n\n private _getComponentThen(el:BrowserElement, then:(component:VisuallyJsAngularComponent<Surface>) => any, tryParent:boolean):void {\n const c = this._getComponent(el, tryParent)\n if (c != null) {\n then(c)\n }\n }\n\n \n nodeOrGroupUpdated(params: VertexUpdatedParams): void {\n const info = this.surface.getObjectInfo(params.vertex, false);\n\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Surface>) => {\n component.data = params.vertex.data\n component.$data?.set(component.data)\n try {\n ;(component as unknown as BaseVertexComponent<any>).$updateEdges()\n } catch (e) {}\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n\n this._maybeUpdateEdgeOverlays(params.vertex)\n\n }\n\n portUpdated(params: PortUpdatedParams): void {\n const info = this.surface.getObjectInfo(params.port, false);\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Surface>) => {\n if (component instanceof BasePortComponent) {\n component.data = params.port.data;\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n }, true)\n\n this._maybeUpdateEdgeOverlays(params.port)\n }\n\n private _maybeUpdateEdgeOverlays(vertex:Vertex):void {\n vertex.getAllEdges().forEach(e => this._handleEdgeUpdate(e.id))\n }\n \n private _handleEdgeUpdate(edgeId:string): void {\n const connection = this.surface.getRenderedConnection(edgeId);\n if (connection) {\n for (let id in connection.overlays) {\n const canvas = (connection.overlays[id] as HTMLElementOverlayHolder).contentElement;\n\n this._getComponentThen(canvas, (component) => {\n if (component.changeDetectorRef != null) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n }\n }\n }\n\n \n private edgeUpdated(params: EdgeUpdatedParams): void {\n this._handleEdgeUpdate(params.edge.id)\n }\n\n private edgeAddedRemoved(params:EdgeAddedParams|EdgeRemovedParams):void {\n const info = this.surface.getObjectInfo(params.edge.source, false)\n if (info.el) {\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Surface>) => {\n try {\n (component as unknown as BaseVertexComponent<any>).$updateEdges()\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n catch (e) {}\n }, false)\n }\n\n const info2 = this.surface.getObjectInfo(params.edge.target, false)\n if (info2.el && info.obj.getFullId() !== info2.obj.getFullId()) {\n this._getComponentThen(info2.el, (component:VisuallyJsAngularComponent<Surface>) => {\n try {\n (component as unknown as BaseVertexComponent<any>).$updateEdges()\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n catch (e) {}\n }, false)\n }\n }\n\n \n private _processAngularOverlays(\n view: AngularViewOptions,\n ): AngularViewOptions {\n const self = this;\n const edgeTypes = view.edges || {};\n for (let edgeTypeId in edgeTypes) {\n const edgeType = edgeTypes[edgeTypeId];\n if (edgeType.overlays != null) {\n edgeType.overlays = edgeType.overlays.map((o: OverlaySpec) => {\n if (typeof o === \"string\") {\n return o;\n } else {\n const fo = o as FullOverlaySpec;\n if (fo.type === AngularComponentOverlayType) {\n const newSpec = Object.assign(fo as any, {\n type: OVERLAY_TYPE_CUSTOM,\n }) as FullOverlaySpec\n newSpec.options = (newSpec.options || {}) as CustomOverlayOptions<BrowserElement>\n newSpec.options.create = (connection: Connection<BrowserElement>) => {\n const el = document.createElement(ELEMENT_DIV);\n\n let createdComponent = self.$viewContainerRef.createComponent(\n newSpec.options.component,\n );\n\n let angularOverlayComponent = createdComponent.instance as AngularOverlayComponent<Surface>;\n\n let nativeEl = createdComponent.location.nativeElement.childNodes[0];\n el.appendChild(nativeEl);\n (el as any)._visuallyJsNgComponent = angularOverlayComponent;\n\n \n if (connection != null) {\n const edge = connection.edge\n angularOverlayComponent.edge = edge;\n angularOverlayComponent.data = edge.data;\n }\n\n angularOverlayComponent.model = self.model;\n\n // backwards compat: remove at some point\n ;(angularOverlayComponent as any).surface = self.surface;\n angularOverlayComponent.ui = self.surface;\n\n createdComponent.changeDetectorRef.detectChanges();\n\n return el;\n };\n\n return newSpec;\n } else {\n return fo;\n }\n }\n });\n }\n }\n\n return view;\n }\n\n \n save(options:SaveOptions): void {\n this.surface.save(options)\n }\n\n \n exportData(options:ExportOptions):SurfaceSaveData {\n return this.surface.model.exportData(options)\n }\n\n \n dataLoadEnd(): void {\n setTimeout(() => {\n if (this.surface != null) {\n this.surface.repaintEverything();\n }\n }, 0);\n }\n\n private $removeNgElement(el:any):void {\n if (el._ref != null) {\n el._ref.destroy();\n }\n\n if (el.parentNode != null) {\n el.parentNode.removeChild(el);\n }\n }\n\n \n ngAfterViewInit(): void {\n this.$ngZone.runOutsideAngular(() => {\n const view = this._processAngularOverlays(this.viewOptions || {});\n const self = this;\n this.renderOptions = this.renderOptions || ({} as RO);\n\n const render = (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n surface: Surface,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo?: any,\n ) => {\n let component;\n if (def.component == null) {\n if (isGroup(modelObject)) {\n component = DefaultGroupComponent;\n } else {\n component = DefaultNodeComponent;\n }\n } else {\n component = def.component;\n }\n\n let createdComponent: ComponentRef<any> = self.$viewContainerRef.createComponent(component)\n let _componentRef = createdComponent.instance as VisuallyJsAngularVertexComponent<Surface>\n\n _componentRef.data = data || {};\n _componentRef.model = model;\n _componentRef.surface = surface;\n _componentRef.ui = surface\n _componentRef.modelObject = modelObject;\n\n // get the reflection data for the component\n const componentInfo = reflectComponentType(component)\n // ..and populate any declared inputs from data\n componentInfo.inputs.forEach((pt) => {\n const pv = _componentRef.data[pt.propName];\n if (pv != null) {\n _componentRef[pt.propName] = pv;\n }\n });\n // map to any outputs\n componentInfo.outputs.forEach((pt) => {\n _componentRef[pt.propName].subscribe((d) =>\n self.vertexEvent.emit({\n vertex: modelObject,\n event: pt.propName,\n payload: d,\n component: createdComponent,\n }),\n );\n });\n\n // if angular def has 'inputs' set, set them on the component. this is different to the mechanism above, in which values are extracted from\n // each node's backing data. here we inject values either as a string or from some arbitrary function.\n if (def.inputs != null) {\n for (let k in def.inputs) {\n const v = def.inputs[k];\n const value = typeof v === \"string\" ? v : v(modelObject);\n _componentRef[k] = value;\n }\n }\n\n createdComponent.changeDetectorRef.detectChanges();\n\n // TODO this should not be necessary\n const nativeElement = self.getNativeElement(createdComponent);\n _componentRef._el = nativeElement;\n _componentRef._el._visuallyJsNgComponent = _componentRef;\n _componentRef._el._ref = createdComponent; // we store _ref so we can call `destroy` on it later if the node is removed.\n\n surface.$vertexRendered(modelObject, nativeElement, def as any, eventInfo);\n }\n\n const templateRenderer: TemplateRenderer<any> = {\n asynchronous: false,\n reactive: true,\n usesWrapperElement:false,\n update: (el: any, data: ObjectData, v: Vertex, renderer: Surface) => {},\n render,\n rerender: (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n surface: Surface,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo: any,\n originalElement:BrowserElement\n ) => {\n this.$removeNgElement(originalElement)\n render(directiveId, data, instance, objectType, surface, def, modelObject, eventInfo)\n },\n cleanupVertex: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n cleanupPort: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n };\n\n const renderParams = extend<any>(this.renderOptions || {}, {\n view: view,\n });\n\n let model = this.inputModel || new BrowserUIAngularModel(this.modelOptions);\n this.model = model;\n\n this.surface = renderSurface(\n model,\n self.$el.nativeElement,\n templateRenderer,\n renderParams,\n );\n\n this.$vjs.$setSurface(this.surface)\n\n // ----------------\n\n this.nodeUpdateFn = this.nodeOrGroupUpdated.bind(this);\n model.bind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n model.bind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n model.bind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n\n this.dataLoadEndFn = this.dataLoadEnd.bind(this);\n model.bind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n\n this.portUpdateFn = this.portUpdated.bind(this);\n model.bind(EVENT_PORT_UPDATED, this.portUpdateFn);\n\n this.edgeUpdateFn = this.edgeUpdated.bind(this);\n model.bind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n\n this.edgeAddFn = this.edgeAddedRemoved.bind(this)\n this.edgeRemoveFn = this.edgeAddedRemoved.bind(this)\n model.bind(EVENT_EDGE_ADDED, this.edgeAddFn);\n model.bind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);\n\n const initialData = this.data()\n const initialUrl = this.url()\n if (initialData) {\n this.model.load({ data: initialData });\n } else if (initialUrl) {\n this.model.load({ url: initialUrl });\n }\n });\n }\n\n \n ngOnDestroy(): void {\n this.surface.destroy()\n this.model.unbind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_UPDATED, this.portUpdateFn);\n this.model.unbind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n this.model.unbind(EVENT_EDGE_ADDED, this.edgeAddFn);\n this.model.unbind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);\n this.model.unbind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n this.surface.unbind(EVENT_INTERNAL_CONNECTION, this.edgeAddFn);\n }\n}\n","import {AfterViewInit, Component, effect, ElementRef, inject, Input} from \"@angular/core\"\nimport {\n ObjectData,\n Size,\n ShapePalette,\n ShapeLibraryDefaults,\n DataGeneratorFunction, OnVertexAddedCallback, PreparedShape\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n template:`<div></div>`,\n selector:`vjs-shape-palette`\n})\nexport class ShapePaletteComponent {\n\n \n @Input() initialSet?:string\n\n \n @Input() dragSize:Size = { width:150, height:100 }\n\n \n @Input() iconSize:Size = { width:150, height:100 }\n\n \n @Input() fill?:string = ShapeLibraryDefaults.FILL\n\n \n @Input() outline?:string = ShapeLibraryDefaults.STROKE\n\n \n @Input() showAllMessage? = \"Show all\"\n\n \n @Input() selectAfterDrop? = true\n\n \n @Input() paletteStrokeWidth? = 1\n\n \n @Input() onVertexAdded?:OnVertexAddedCallback\n\n \n @Input() dataGenerator?:DataGeneratorFunction<ObjectData> = undefined\n\n \n @Input() preparedShapes?:Array<PreparedShape>\n\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n initialized = false\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (ui != null && !this.initialized) {\n this.initialized = true\n // tslint:disable-next-line:no-unused-expression\n new ShapePalette<ObjectData>(ui, {\n container:this.$el.nativeElement,\n initialSet:this.initialSet,\n dragSize: this.dragSize,\n iconSize:this.iconSize,\n fill: this.fill,\n outline: this.outline,\n shapeLibrary:ui.getShapeLibrary(),\n showAllMessage: this.showAllMessage,\n selectAfterDrop: this.selectAfterDrop,\n paletteStrokeWidth: this.paletteStrokeWidth,\n dataGenerator:this.dataGenerator,\n onVertexAdded:this.onVertexAdded,\n preparedShapes:this.preparedShapes\n })\n }\n })\n }\n\n\n\n\n}\n","import {\n Component, effect,\n ElementRef, inject,\n Input,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport {\n ObjectData,\n ShapeLibrary,\n DEFAULT_LABEL_FILL_RATIO,\n convertToMultilineText,\n FontSpec\n} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n template: `<svg:svg\n [attr.stroke-width]=\"obj.outlineWidth || 2\"\n attr.fill=\"{{ obj.fill }}\"\n attr.stroke=\"{{ obj.outline }}\"\n style=\"width:100%;height:100%;inset:0;position:absolute;\"\n preserveAspectRatio=\"none\"\n attr.viewBox=\"0 0 {{ width }} {{ height }}\"\n ></svg:svg>`,\n selector: `vjs-shape`,\n})\nexport class ShapeComponent implements OnChanges {\n\n \n @Input() obj: ObjectData;\n \n @Input() width: number;\n\n \n @Input() height: number;\n\n \n @Input() showLabels? = false;\n\n \n @Input() labelProperty? = \"label\";\n\n \n @Input() labelStrokeWidth?: string;\n\n \n @Input() label?: string;\n\n \n @Input() multilineLabels? = true\n\n \n @Input() labelFillRatio = DEFAULT_LABEL_FILL_RATIO\n\n \n @Input() font?:FontSpec\n\n private shapeLibrary: ShapeLibrary<ObjectData>\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n\n private _render(): void {\n if (this.shapeLibrary != null) {\n const svg = this.$el.nativeElement.childNodes[0];\n const el = this.shapeLibrary.renderCompiledShape(\n this.obj,\n this.obj.outlineWidth || 2,\n );\n svg.replaceChildren(el);\n if (this.showLabels) {\n const lbl = this.shapeLibrary.renderShapeLabel(\n this.obj,\n this.labelProperty,\n this.labelStrokeWidth,\n this.label,\n this.obj.color || \"#000000\",\n this.obj.color || \"#000000\",\n this.font\n );\n svg.appendChild(lbl);\n if (this.multilineLabels !== false) {\n convertToMultilineText(lbl, this.label || this.obj[this.labelProperty] || \"\", this.width * this.labelFillRatio)\n }\n }\n }\n }\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (ui != null && this.shapeLibrary == null) {\n this.shapeLibrary = ui.getShapeLibrary()\n this._render()\n }\n })\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._render();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n computed, effect,\n ElementRef,\n inject,\n Input,\n AfterViewInit\n} from \"@angular/core\";\n\nimport {\n EVENT_UNDOREDO_UPDATE,\n UndoRedoUpdateParams,\n EVENT_SURFACE_MODE_CHANGED,\n FALSE,\n TRUE,\n SURFACE_MODE_PAN,\n SURFACE_MODE_SELECT,\n ControlsComponentButtons,\n SurfaceMode,\n LASSO_PATH,\n LASSO_VIEW_BOX,\n PAN_PATH,\n PAN_VIEW_BOX,\n LassoPlugin,\n BrowserElement,\n ZOOM_TO_FIT_VIEW_BOX,\n ZOOM_TO_FIT_PATH,\n BrowserUI,\n ZOOM_IN_OUT_VIEW_BOX,\n ZOOM_IN_PATH,\n ZOOM_OUT_PATH,\n RESET_SELECTION_PATH,\n RESET_SELECTION_VIEW_BOX,\n CLEAR_PATH,\n CLEAR_VIEW_BOX,\n CLASS_CONTROLS_RESET_SELECTION, EVENT_SELECT,\n EVENT_DESELECT, EVENT_SELECTION_CLEARED, supportsPathEditing\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\nconst ATTRIBUTE_CAN_UNDO = \"can-undo\";\nconst ATTRIBUTE_CAN_REDO = \"can-redo\";\nconst CLASS_SELECTED_MODE = \"vjs-selected-mode\";\nconst ATTRIBUTE_HAS_SELECTION = \"vjs-controls-has-selection\"\n\n\n@Component({\n selector: \"vjs-controls\",\n template: `<div class=\"vjs-controls\" [attr.data-vjs-orientation]=\"orientation\">\n <i *ngIf=\"showPanButton\" class=\"vjs-pan-mode ${CLASS_SELECTED_MODE}\" data-mode=\"${SURFACE_MODE_PAN}\" title=\"Pan Mode\" (click)=\"panMode()\">\n <svg viewBox=\"${PAN_VIEW_BOX}\" stroke=\"currentColor\" fill=\"none\">\n <path d=\"${PAN_PATH}\"></path>\n </svg>\n </i>\n <i *ngIf=\"showLassoButton\" class=\"vjs-select-mode\" data-mode=\"${SURFACE_MODE_SELECT}\" title=\"Select Mode\" (click)=\"selectMode()\">\n <svg fill=\"currentColor\" viewBox=\"${LASSO_VIEW_BOX}\" stroke=\"currentColor\">\n <path d=\"${LASSO_PATH}\"></path>\n </svg>\n </i>\n\n <i *ngFor=\"let button of modeButtons\" data-mode=\"{{ button.mode }}\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n\n <i *ngIf=\"zoomToExtents\" class=\"vjs-zoom-to-fit\" data-reset=\"true\"title=\"Zoom To Fit\" (click)=\"zoomToFit()\">\n <svg viewBox=\"${ZOOM_TO_FIT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_TO_FIT_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-in\" data-zoom-in=\"true\" title=\"Zoom In\" (click)=\"zoomIn()\">\n <svg viewBox=\"${ZOOM_IN_OUT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_IN_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-out\" data-zoom-out=\"true\" title=\"Zoom Out\" (click)=\"zoomOut()\">\n <svg viewBox=\"${ZOOM_IN_OUT_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${ZOOM_OUT_PATH}\"></path></svg>\n </i>\n\n <i *ngIf=\"undoRedo\" class=\"vjs-undo\" data-undo=\"true\" title=\"Undo last action\" (click)=\"undo()\"></i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\"></i>\n <i class=\"${CLASS_CONTROLS_RESET_SELECTION}\" title=\"Clear selection\" (click)=\"resetSelection()\">\n <svg viewBox=\"${RESET_SELECTION_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${RESET_SELECTION_PATH}\"></path></svg>\n </i>\n <i *ngIf=\"clear\" class=\"vjs-clear-dataset\" [title]=\"clearMessage\" (click)=\"doClear()\">\n <svg viewBox=\"${CLEAR_VIEW_BOX}\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"${CLEAR_PATH}\"></path></svg>\n </i>\n <i *ngFor=\"let button of otherButtons\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n </div>`,\n})\nexport class ControlsComponent {\n \n @Input() undoRedo? = true;\n \n @Input() zoomToExtents? = true;\n\n \n @Input() zoomButtons? = false;\n \n @Input() clear? = true;\n \n @Input() clearMessage? = \"Clear dataset?\";\n \n @Input() buttons?: ControlsComponentButtons = [];\n \n @Input() orientation? = \"row\";\n\n modeButtons: ControlsComponentButtons;\n otherButtons: ControlsComponentButtons;\n\n initialized = false\n\n showPanButton = true;\n\n showLassoButton = true;\n $vjs = inject(VisuallyJsService)\n\n $el = inject(ElementRef)\n $cdr = inject(ChangeDetectorRef)\n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n\n updateSelectionState():void {\n const controls = this.getNativeElement(this.$el);\n if (this.ui().model.getSelection().isEmpty()) {\n controls.removeAttribute(ATTRIBUTE_HAS_SELECTION)\n } else {\n controls.setAttribute(ATTRIBUTE_HAS_SELECTION, \"true\")\n }\n }\n\n constructor() {\n this.modeButtons = this.buttons.filter((b) => b.mode != null);\n this.otherButtons = this.buttons.filter((b) => b.mode == null);\n\n effect(() => {\n const ui = this.ui()\n if (!this.initialized && ui) {\n this.showLassoButton = ui.getPlugin(LassoPlugin.type) != null;\n this.showPanButton = this.showLassoButton === true;\n\n this.ui.bind(EVENT_SURFACE_MODE_CHANGED, (mode: SurfaceMode) => {\n const controls = this.getNativeElement(this.$el);\n\n const modeButtons = ui.$getSelector(controls, \"[data-mode]\");\n\n ui.removeClass(modeButtons, CLASS_SELECTED_MODE);\n\n ui.addClass(\n ui.$getSelector(controls, `[data-mode='${mode}']`),\n CLASS_SELECTED_MODE,\n );\n });\n\n ui.model.bind(\n EVENT_UNDOREDO_UPDATE,\n (state: UndoRedoUpdateParams) => {\n const controls = this.getNativeElement(this.$el);\n controls.setAttribute(\n ATTRIBUTE_CAN_UNDO,\n state.undoCount > 0 ? TRUE : FALSE,\n );\n controls.setAttribute(\n ATTRIBUTE_CAN_REDO,\n state.redoCount > 0 ? TRUE : FALSE,\n );\n },\n );\n\n ui.model.bind(EVENT_SELECT, () => this.updateSelectionState())\n ui.model.bind(EVENT_DESELECT, () => this.updateSelectionState())\n ui.model.bind(EVENT_SELECTION_CLEARED, () => this.updateSelectionState())\n\n this.$cdr.detectChanges();\n }\n })\n }\n\n getNativeElement(component: any): BrowserElement {\n return (\n component.nativeElement ||\n component._nativeElement ||\n component.location.nativeElement\n ).childNodes[0];\n }\n\n panMode(): void {\n this.ui().setMode(SURFACE_MODE_PAN);\n }\n\n selectMode(): void {\n this.ui().setMode(SURFACE_MODE_SELECT);\n }\n\n zoomToFit(): void {\n this.model().clearSelection();\n this.ui().zoomToFit();\n }\n\n zoomIn():void {\n this.ui().zoomIn()\n }\n\n zoomOut():void {\n this.ui().zoomOut()\n }\n\n resetSelection():void {\n const ui = this.ui()\n this.model().clearSelection()\n if (supportsPathEditing(ui)) {\n ui.stopEditingPath()\n }\n }\n\n undo(): void {\n this.model()?.undo();\n }\n\n redo(): void {\n this.model()?.redo();\n }\n\n doClear(): void {\n const t = this.model();\n if (\n (t.getNodeCount() === 0 && t.getGroupCount() === 0) ||\n confirm(this.clearMessage)\n ) {\n t.clear();\n }\n }\n}\n","\nimport {AfterViewInit, Component, ElementRef, Input, Output, EventEmitter, inject, effect} from \"@angular/core\"\nimport { INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS, EdgeTypePicker, EdgePropertyMappings, Inspector } from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-edge-type\",\n template:`<div [attr.vjs-att]=\"propertyName\"></div>`\n})\nexport class EdgeTypePickerComponent {\n \n @Input() propertyName:string\n \n @Input() edgeMappings?:EdgePropertyMappings\n\n \n @Output() changeEvent = new EventEmitter<string>()\n\n private edgeTypePicker:EdgeTypePicker\n\n $vjs = inject(VisuallyJsService)\n\n _inspector = this.$vjs.inspector\n initialised = false\n\n private resolveMappings():EdgePropertyMappings {\n const mappings = this.edgeMappings || this._inspector().getFromContext<EdgePropertyMappings>(INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS)\n return mappings || this._inspector().$ui.$getEdgePropertyMappings()\n }\n\n constructor(private el:ElementRef) {\n effect(() => {\n if (!this.initialised) {\n const inspector = this._inspector()\n if (inspector != null) {\n this.initialised = true\n inspector.onChange(() => {\n this.edgeTypePicker.select(this.propertyName, inspector.getValue(this.propertyName))\n })\n\n const current = inspector.getValue(this.propertyName) || ''\n this.edgeTypePicker = new EdgeTypePicker(inspector.$ui, this.el.nativeElement,\n this.resolveMappings(), current, (p:string, v:string) => {\n inspector.setValue(this.propertyName, v, null)\n this.changeEvent.emit(v)\n })\n this.edgeTypePicker.render(this.propertyName, inspector._currentCommonData)\n }\n }\n })\n }\n}\n","import {Directive, effect, ElementRef, inject, Input} from \"@angular/core\";\nimport {\n DataGeneratorFunction,\n GroupIdentifierFunction,\n OnVertexAddedCallback,\n Palette,\n PaletteOptions,\n Size,\n TypeGeneratorFunction,\n CanvasDropFilter, PaletteMode,\n} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Directive({\n selector: \"[vjs-palette]\",\n})\nexport class PaletteComponent<T> {\n\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n\n $surface = this.$vjs.surface\n\n initialized = false\n\n\n \n @Input() selector?: string;\n\n \n @Input() dataGenerator?: DataGeneratorFunction<T>;\n\n \n @Input() typeGenerator?: TypeGeneratorFunction<T>;\n\n \n @Input() groupIdentifier?: GroupIdentifierFunction<T>;\n\n \n palette: Palette<T>;\n\n \n @Input() allowDropOnEdge?: boolean;\n \n @Input() allowDropOnGroup?: boolean;\n \n @Input() allowDropOnCanvas?: boolean;\n \n @Input() allowDropOnNode?: boolean;\n\n \n @Input() onVertexAdded?: OnVertexAddedCallback;\n\n \n @Input() dragSize?: Size;\n\n \n @Input() canvasDropFilter?: CanvasDropFilter<T>;\n\n \n @Input() mode?:PaletteMode;\n\n \n @Input() selectAfterAdd?:boolean\n\n \n @Input() allowClickToAdd?:boolean\n\n \n @Input() clickToAddOnly?:boolean\n\n constructor() {\n\n effect(() => {\n if(!this.initialized) {\n const surface = this.$surface()\n if (surface != null) {\n this.initialized = true\n let self = this;\n\n let params: PaletteOptions<T> = {\n source:self.$el.nativeElement,\n selector: self.selector,\n\n allowDropOnEdge: this.allowDropOnEdge,\n allowDropOnCanvas: this.allowDropOnCanvas,\n allowDropOnGroup: this.allowDropOnGroup,\n allowDropOnNode: this.allowDropOnNode,\n mode:this.mode,\n selectAfterAdd:this.selectAfterAdd,\n allowClickToAdd:this.allowClickToAdd,\n clickToAddOnly:this.clickToAddOnly\n };\n\n if (this.dataGenerator != null) {\n params.dataGenerator = this.dataGenerator;\n }\n\n if (this.typeGenerator != null) {\n params.typeGenerator = this.typeGenerator;\n }\n\n if (this.groupIdentifier != null) {\n params.groupIdentifier = this.groupIdentifier;\n }\n\n if (this.onVertexAdded != null) {\n params.onVertexAdded = this.onVertexAdded;\n }\n\n if (this.dragSize != null) {\n params.dragSize = this.dragSize;\n }\n\n if (this.canvasDropFilter != null) {\n params.canvasDropFilter = this.canvasDropFilter;\n }\n\n this.palette = new Palette(surface, params);\n }\n }\n })\n }\n}\n","import {\n Component, computed,\n ElementRef, inject,\n Input,\n} from \"@angular/core\";\nimport {\n CLASS_CONTROLS,\n CLASS_EXPORT_CONTROLS, ImageExportUI,\n ImageExportUIOptions,\n PointXY,\n SvgExportUI,\n SvgExportUIOptions,\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: \"vjs-export-controls\",\n template: `<div class=\"${CLASS_CONTROLS} ${CLASS_EXPORT_CONTROLS}\">\n <span *ngIf=\"showLabel\">{{ label }}</span>\n <i *ngIf=\"allowSvgExport\"\n ><a href=\"#\" id=\"exportSvg\" (click)=\"exportSVG()\">SVG</a></i\n >\n <i *ngIf=\"allowPngExport\"\n ><a href=\"#\" id=\"exportPng\" (click)=\"exportPNG()\">PNG</a></i\n >\n <i *ngIf=\"allowJpgExport\"\n ><a href=\"#\" id=\"exportJpg\" (click)=\"exportJPG()\">JPG</a></i\n >\n </div>`,\n})\nexport class ExportControlsComponent {\n\n \n @Input() showLabel? = true;\n \n @Input() label? = \"Export:\";\n\n \n @Input() margins?: PointXY;\n \n @Input() svgOptions?: SvgExportUIOptions;\n \n @Input() imageOptions?: ImageExportUIOptions;\n \n @Input() allowSvgExport? = true;\n \n @Input() allowPngExport? = true;\n \n @Input() allowJpgExport? = true;\n\n // new\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n\n \n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n\n\n exportSVG(): void {\n new SvgExportUI(this.ui()).export(this.svgOptions)\n }\n\n exportPNG(): void {\n new ImageExportUI(this.ui()).export(this.imageOptions)\n }\n\n exportJPG(): void {\n new ImageExportUI(this.ui()).export(Object.assign(this.imageOptions || {}, {\n type: \"image/jpeg\",\n }))\n }\n}\n","\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n signal,\n ChangeDetectorRef, inject, effect\n} from \"@angular/core\"\nimport {\n CLASS_COLOR_PICKER,\n CLASS_COLOR_PICKER_SWATCH, CLASS_COLOR_PICKER_SWATCHES,\n EVENT_CONTEXT_UPDATE,\n Inspector,\n INSPECTOR_CONTEXT_RECENT_COLORS\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-color\",\n template:`<div class=\"${CLASS_COLOR_PICKER}\">\n <input type=\"color\" [attr.vjs-att]=\"propertyName\"/>\n <div class=\"${CLASS_COLOR_PICKER_SWATCHES}\">\n <div *ngFor=\"let swatch of swatches()\" class=\"${CLASS_COLOR_PICKER_SWATCH}\" attr.data-color=\"{{swatch}}\" style=\"background-color:{{swatch}}\" (click)=\"selectColor(swatch)\"></div>\n </div>\n </div>`\n})\nexport class ColorPickerComponent {\n\n \n @Input() propertyName:string\n \n @Input() maxColors? = 10\n \n @Output() changeEvent = new EventEmitter<string>()\n\n swatches = signal<Array<string>>([]);\n\n $vjs = inject(VisuallyJsService)\n $el = inject(ElementRef)\n $cdr = inject(ChangeDetectorRef)\n initialized = false\n\n constructor() {\n effect(() => {\n const i = this.$vjs.inspector()\n if (!this.initialized) {\n this.initialized = true\n this.swatches.set(i.ensureContext(INSPECTOR_CONTEXT_RECENT_COLORS, () => []))\n i.bind(EVENT_CONTEXT_UPDATE, (p:{key:string, value:any}) => {\n if (p.key === INSPECTOR_CONTEXT_RECENT_COLORS) {\n this.swatches.set(p.value)\n this.$cdr.detectChanges()\n }\n })\n\n const colorInput = this.$el.nativeElement.querySelector(\"[type='color']\")\n colorInput.onchange = () => {\n const color = colorInput.value\n this.pushColor(color)\n i.setValue(this.propertyName, color, null,true)\n }\n\n setTimeout(() => {\n // if there is a color, maybe push to context\n const v = i.getValue(this.propertyName)\n if (v != null) {\n this.pushColor(v)\n }\n })\n }\n })\n }\n\n private $getInspector(cb:(i:Inspector) => any):void {\n const i = this.$vjs.inspector()\n if (i != null) {\n cb(i)\n }\n }\n\n selectColor(color:string):void {\n this.$getInspector(inspector => {\n inspector.setValue(this.propertyName, color, null)\n this.$el.nativeElement.querySelector(\"[type='color']\").value = color\n })\n }\n\n private pushColor(color:string):void {\n this.$getInspector(inspector => {\n const rc = inspector.getFromContext(INSPECTOR_CONTEXT_RECENT_COLORS)\n if (rc != null) {\n if (rc.find((c: string) => c === color) == null) {\n const cc = rc.slice()\n cc.unshift(color)\n if (cc.length >= this.maxColors) {\n cc.length = this.maxColors\n }\n\n inspector.updateContext(INSPECTOR_CONTEXT_RECENT_COLORS, cc)\n }\n }\n })\n }\n}\n","import {\n AfterViewInit,\n Component, effect,\n ElementRef, inject, input,\n Input, NgZone,\n OnDestroy\n} from \"@angular/core\"\nimport {\n createDiagram,\n Diagram,\n DiagramOptions,\n DiagramSaveData,\n DiagramSaveOptions, ModelOptions,\n SaveOptions\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-diagram\",\n template:`<ng-content></ng-content>`\n})\nexport class DiagramComponent implements AfterViewInit, OnDestroy {\n\n \n @Input() options?:DiagramOptions\n \n data = input<Record<string, any> | undefined>();\n\n \n url = input<string | undefined>();\n\n \n @Input() modelOptions?:ModelOptions\n\n \n diagram:Diagram\n\n $ngZone = inject(NgZone)\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n\n private _dataEffect = effect(() => {\n const currentData = this.data();\n if (currentData) {\n if (this.diagram) {\n this.diagram.clear()\n this.diagram.load({ data: currentData });\n }\n }\n });\n\n private _urlEffect = effect(() => {\n const currentUrl = this.url();\n if (currentUrl) {\n // Respond to changes in the url here.\n // For example, if you need to reload the model with new data:\n if (this.diagram) {\n this.diagram.clear()\n this.diagram.load({ url:currentUrl });\n }\n }\n });\n\n ngAfterViewInit(): void {\n\n this.$ngZone.runOutsideAngular(() => {\n this.diagram = createDiagram(this.$el.nativeElement, this.options, this.modelOptions)\n\n this.$vjs.$setDiagram(this.diagram)\n\n const initialData = this.data()\n const initialUrl = this.url()\n if (initialData) {\n this.diagram.load({ data: initialData });\n } else if (initialUrl) {\n this.diagram.load({ url: initialUrl });\n }\n })\n }\n\n ngOnDestroy(): void {\n this.diagram.destroy()\n }\n\n \n save(options?:DiagramSaveOptions):DiagramSaveData {\n return this.diagram.save(options)\n }\n\n \n saveToUrl(options:SaveOptions):void {\n this.diagram.saveToUrl(options)\n }\n\n\n}\n","import {BrowserElement, DataSource, ObjectData} from \"@visuallyjs/browser-ui\";\nimport {\n AfterViewInit,\n effect,\n ElementRef,\n inject,\n Injectable,\n Input,\n NgZone,\n OnDestroy\n} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\nimport {SeriesBasedChart} from \"@visuallyjs/browser-ui/types/charts/series-based-chart\";\n\n\n@Injectable()\nexport abstract class SeriesBasedChartComponent<T extends SeriesBasedChart<O>, O, CO> implements AfterViewInit, OnDestroy {\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:CO\n\n \n @Input() useModel?:boolean\n\n private chart:T\n\n $el = inject(ElementRef)\n $ngZone = inject(NgZone)\n $vjs = inject(VisuallyJsService)\n\n private _init(dataSource?:DataSource, data?:Array<ObjectData>, url?:string):void {\n this.$ngZone.runOutsideAngular(() => {\n const o = Object.assign({}, this.options) as O\n Object.assign(o, {dataSource})\n this.chart = this.createChart(this.$el.nativeElement, o)\n if (data) {\n this.chart.load({data})\n } else if (url) {\n this.chart.load({url})\n }\n })\n }\n\n constructor() {\n effect(() => {\n if (this.useModel && this.chart == null) {\n const m = this.$vjs.model()\n if (m != null) {\n this._init(m, null, null)\n }\n }\n })\n }\n\n \n ngAfterViewInit(): void {\n if (!this.useModel) {\n this._init(null, this.data, this.url)\n }\n }\n\n ngOnDestroy(): void {\n this.chart?.destroy()\n }\n\n abstract createChart(el:BrowserElement, options:O):T\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n ColumnChart,\n ColumnChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface ColumnChartComponentOptions extends Omit<ColumnChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-column-chart\",\n template:`<div></div>`\n})\nexport class ColumnChartComponent extends SeriesBasedChartComponent<ColumnChart, ColumnChartOptions, ColumnChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:ColumnChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: ColumnChartOptions): ColumnChart {\n return new ColumnChart(el, options)\n }\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {BarChart, BarChartOptions, BrowserElement, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface BarChartComponentOptions extends Omit<BarChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-bar-chart\",\n template:`<div></div>`\n})\nexport class BarChartComponent extends SeriesBasedChartComponent<BarChart, BarChartOptions, BarChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:BarChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: BarChartOptions): BarChart {\n return new BarChart(el, options);\n }\n}\n","import {Diagram, DiagramCell, DiagramPalette, Size, PaletteMode, OnVertexAddedCallback, PreparedShape} from \"@visuallyjs/browser-ui\"\nimport {AfterViewInit, Component, effect, ElementRef, inject, Input} from \"@angular/core\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector: \"vjs-diagram-palette\",\n template: `<div></div>`,\n})\nexport class DiagramPaletteComponent implements AfterViewInit {\n\n \n @Input() fill?:string\n \n @Input() outline?:string\n \n @Input() dragSize?:Size\n \n @Input() inspector?:boolean\n \n @Input() iconSize?:Size\n \n @Input() showLabels?:boolean\n \n @Input() paletteStrokeWidth?:number\n \n @Input() showAllMessage?:string\n \n @Input() onCellAdded?:(dc:DiagramCell) => any\n \n @Input() mode?:PaletteMode\n\n \n @Input() allowClickToAdd?:boolean\n\n \n @Input() autoExitDrawMode?:boolean\n\n \n @Input() selectAfterAdd?:boolean\n\n \n @Input({alias:\"diagram\"}) inputDiagram?:Diagram\n\n \n @Input() onVertexAdded?:OnVertexAddedCallback\n\n \n @Input() preparedShapes?:Array<PreparedShape>\n\n $el = inject(ElementRef)\n $vjs = inject(VisuallyJsService)\n\n initialized = false\n\n private $init(diagram:Diagram):void {\n if (!this.initialized) {\n \n new DiagramPalette(this.$el.nativeElement, diagram, {\n fill: this.fill,\n outline: this.outline,\n dragSize: this.dragSize,\n inspector: this.inspector,\n iconSize: this.iconSize,\n showLabels: this.showLabels,\n paletteStrokeWidth: this.paletteStrokeWidth,\n showAllMessage: this.showAllMessage,\n onCellAdded: this.onCellAdded,\n mode: this.mode,\n allowClickToAdd: this.allowClickToAdd,\n autoExitDrawMode: this.autoExitDrawMode,\n selectAfterAdd: this.selectAfterAdd,\n onVertexAdded: this.onVertexAdded,\n preparedShapes: this.preparedShapes\n })\n }\n }\n\n constructor() {\n effect(() => {\n const d = this.$vjs.diagram()\n if (d != null) {\n this.$init(d)\n }\n })\n }\n\n ngAfterViewInit(): void {\n if (this.inputDiagram != null) {\n this.$init(this.inputDiagram)\n }\n }\n\n}\n\n\n","import { Component, Input } from \"@angular/core\"\nimport {BrowserElement, CategoryValueChart, CategoryValueChartOptions, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface XYChartComponentOptions extends Omit<CategoryValueChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-xy-chart\",\n template:`<div></div>`\n})\nexport class XYChartComponent extends SeriesBasedChartComponent<CategoryValueChart, CategoryValueChartOptions, XYChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:CategoryValueChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: CategoryValueChartOptions): CategoryValueChart {\n return new CategoryValueChart(el, options);\n }\n\n\n}\n","import {\n Component,\n Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n LineChart,\n LineChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface LineChartComponentOptions extends Omit<LineChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-line-chart\",\n template:`<div></div>`\n})\nexport class LineChartComponent extends SeriesBasedChartComponent<LineChart, LineChartOptions, LineChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:LineChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: LineChartOptions): LineChart {\n return new LineChart(el, options)\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n AreaChart,\n AreaChartOptions,\n BrowserElement,\n ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface AreaChartComponentOptions extends Omit<AreaChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-area-chart\",\n template:`<div></div>`\n})\nexport class AreaChartComponent extends SeriesBasedChartComponent<AreaChart, AreaChartOptions, AreaChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:AreaChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: AreaChartOptions): AreaChart {\n return new AreaChart(el, options)\n }\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {PieChart, PieChartOptions, BrowserElement, ObjectData} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface PieChartComponentOptions extends Omit<PieChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-pie-chart\",\n template:`<div></div>`\n})\nexport class PieChartComponent extends SeriesBasedChartComponent<PieChart, PieChartOptions, PieChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:PieChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: PieChartOptions): PieChart {\n return new PieChart(el, options);\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n ScatterChart,\n ScatterChartOptions, BrowserElement, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\nexport interface ScatterChartComponentOptions extends Omit<ScatterChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-scatter-chart\",\n template:`<div></div>`\n})\nexport class ScatterChartComponent extends SeriesBasedChartComponent<ScatterChart, ScatterChartOptions, ScatterChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:ScatterChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: ScatterChartOptions): ScatterChart {\n return new ScatterChart(el, options)\n }\n\n\n\n}\n","import {\n Component, Input\n} from \"@angular/core\"\nimport {\n BrowserElement,\n BubbleChart,\n BubbleChartOptions, ObjectData\n} from \"@visuallyjs/browser-ui\"\nimport {SeriesBasedChartComponent} from \"./series.based.chart.component\";\n\n\nexport interface BubbleChartComponentOptions extends Omit<BubbleChartOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-bubble-chart\",\n template:`<div></div>`\n})\nexport class BubbleChartComponent extends SeriesBasedChartComponent<BubbleChart, BubbleChartOptions, BubbleChartComponentOptions> {\n\n \n @Input() data?: Array<ObjectData>\n\n \n @Input() url?: string\n\n \n @Input() options:BubbleChartOptions\n\n \n @Input() useModel?:boolean\n\n createChart(el: BrowserElement, options: BubbleChartOptions): BubbleChart {\n return new BubbleChart(el, options)\n }\n\n}\n","import {\n Component, inject,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n AfterViewInit, OnDestroy, NgZone, effect\n} from \"@angular/core\"\nimport {\n SankeyChart,\n SankeyOptions,\n VisuallyJsDefaultJSON,\n DataSource\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"../vjs-service\";\n\nexport interface SankeyChartComponentOptions extends Omit<SankeyOptions, \"data\"|\"url\"|\"model\"> {}\n\n\n@Component({\n selector:\"vjs-sankey-chart\",\n template:`<div></div>`\n})\nexport class SankeyChartComponent implements AfterViewInit, OnDestroy, OnChanges {\n\n \n @Input() csvData?: string\n\n \n @Input() jsonData?: VisuallyJsDefaultJSON\n\n \n @Input() url?: string\n\n \n @Input() interactive?: boolean\n\n \n @Input() pivot?: string\n\n \n @Input() options:SankeyChartComponentOptions\n\n \n @Input() useModel?:boolean\n\n private chart:SankeyChart\n\n $el = inject(ElementRef)\n $ngZone = inject(NgZone)\n $vjs = inject(VisuallyJsService)\n\n constructor() {\n effect(() => {\n if (this.useModel && this.chart == null) {\n const m = this.$vjs.model()\n if (m != null) {\n this._init(m, null, null, null)\n }\n }\n })\n }\n\n \n private _init(dataSource?:DataSource, csvData?:string, jsonData?:VisuallyJsDefaultJSON, url?:string): void {\n this.$ngZone.runOutsideAngular(() => {\n const options = Object.assign({}, this.options)\n if (this.interactive != null) {\n options.interactive = this.interactive\n }\n if (this.pivot != null) {\n options.pivot = this.pivot\n }\n Object.assign(options, {\n csvData,\n jsonData,\n dataSource,\n url\n })\n this.chart = new SankeyChart(this.$el.nativeElement, options)\n })\n }\n \n ngAfterViewInit(): void {\n if (!this.useModel) {\n this._init(null, this.csvData, this.jsonData, this.url)\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // @ts-ignore\n if (changes['pivot'] && this.chart) {\n // @ts-ignore\n this.chart.pivot(changes['pivot'].currentValue)\n }\n }\n\n ngOnDestroy(): void {\n this.chart?.destroy()\n }\n}\n","import {\n Component,\n Input,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n inject\n} from \"@angular/core\";\nimport {PointXY, FixedElementConstraints, Surface} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n@Component({\n selector: \"vjs-decorator\",\n template: `\n <div style=\"display:inline-block;\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DecoratorComponent implements AfterViewInit, OnDestroy {\n \n @Input() placement: 'fixed' | 'floating' = 'floating';\n\n \n @Input() position: PointXY = { x: 0, y: 0 };\n\n \n @Input() constraints?: FixedElementConstraints;\n\n private el = inject(ElementRef);\n\n private surface!:Surface\n\n service = inject(VisuallyJsService)\n\n ngAfterViewInit(): void {\n\n this.service.getSurface(s => {\n const nativeElement = this.el.nativeElement.firstElementChild as HTMLElement;\n\n if (this.placement === 'fixed') {\n s.fixElement(nativeElement, this.position, this.constraints);\n } else {\n s.floatElement(nativeElement, this.position);\n }\n })\n }\n\n ngOnDestroy(): void {\n if (this.surface && this.placement === 'fixed') {\n this.surface.unfixElement(this.el.nativeElement.firstElementChild as HTMLElement);\n }\n }\n // Note: Surface.floatElement typically appends to a layer that is cleaned up\n // when the surface is destroyed, but manual DOM removal of the element\n // handled by Angular's lifecycle is usually sufficient here.\n}\n","import {\n Component,\n Input,\n ContentChild,\n TemplateRef,\n ElementRef,\n ViewChild,\n AfterViewInit,\n OnDestroy,\n inject,\n signal,\n computed, ChangeDetectorRef\n} from \"@angular/core\";\nimport {\n Vertex,\n PopupHandler,\n PopupPosition, CLASS_SURFACE_POPUP\n} from \"@visuallyjs/browser-ui\";\nimport { VisuallyJsService } from \"./vjs-service\";\n\n\n@Component({\n selector: \"vjs-surface-popup\",\n template: `\n <div #container class=\"${CLASS_SURFACE_POPUP}\" [style.display]=\"display()\" style=\"position:absolute\">\n <ng-container *ngIf=\"current()\">\n <ng-container *ngTemplateOutlet=\"template; context: { vertex: current(), model: model(), ui: ui(), hide:_hideFunction }\"></ng-container>\n </ng-container>\n </div>\n `\n})\nexport class SurfacePopupComponent implements AfterViewInit, OnDestroy {\n \n @Input({ required: true }) selector: string;\n\n \n @Input() anchor?: PopupPosition;\n\n \n @ContentChild(TemplateRef) template!: TemplateRef<any>;\n\n \n @ViewChild(\"container\") container!: ElementRef<HTMLDivElement>;\n\n private cdr = inject(ChangeDetectorRef)\n private vjs = inject(VisuallyJsService);\n private initialized = false;\n \n popupHandler!: PopupHandler;\n\n _hideFunction:() => any\n\n readonly current = signal<Vertex | null>(null);\n readonly model = this.vjs.model;\n readonly ui = this.vjs.ui;\n\n readonly display = computed(() => (this.current() == null ? \"none\" : \"block\"));\n\n ngAfterViewInit():void {\n this._hideFunction = function():void {\n this.popupHandler?.$hide()\n }.bind(this)\n\n this.vjs.getSurface((surface) => {\n if (!this.initialized) {\n this.initialized = true;\n this.popupHandler = new PopupHandler(\n this.selector,\n this.container.nativeElement,\n surface,\n (v) => {\n this.current.set(v)\n requestAnimationFrame(() => this.cdr.detectChanges())\n },\n this.anchor\n );\n }\n });\n }\n\n ngOnDestroy():void {\n if (this.popupHandler) {\n this.popupHandler.$destroy()\n }\n }\n}\n\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n ViewContainerRef,\n inject, reflectComponentType, input, effect\n} from \"@angular/core\"\n\nimport {\n EVENT_EDGE_UPDATED,\n EVENT_GROUP_UPDATED,\n EVENT_NODE_UPDATED,\n EVENT_PORT_ADDED,\n EVENT_PORT_UPDATED,\n extend,\n ObjectData,\n PortUpdatedParams,\n Vertex,\n VertexUpdatedParams,\n FullOverlaySpec,\n OverlaySpec,\n renderPaper,\n Paper,\n TemplateRenderer,\n OVERLAY_TYPE_CUSTOM,\n isGroup,\n BrowserElement,\n EVENT_INTERNAL_CONNECTION,\n VisuallyJsModel,\n ModelOptions,\n EVENT_DATA_LOAD_END,\n SurfaceSaveData, ExportOptions, SaveOptions, CustomOverlayOptions, ELEMENT_DIV, Connection, HTMLElementOverlayHolder,\n BrowserUIModel, EdgeAddedParams,\n EdgeRemovedParams,\n EVENT_EDGE_REMOVED,\n EVENT_EDGE_ADDED, EdgeUpdatedParams\n} from \"@visuallyjs/browser-ui\"\nimport {\n AngularRenderOptions,\n AngularViewOptions,\n AngularNodeMapping, AngularGroupMapping,\n} from \"./common\";\n\nimport {\n AngularComponentOverlayType,\n AngularOverlayComponent,\n} from \"./overlay-component\";\nimport { DefaultGroupComponent } from \"./default-group-component\";\nimport { DefaultNodeComponent } from \"./default-node-component\";\nimport { BasePortComponent } from \"./base.port.component\";\nimport {VisuallyJsService} from \"./vjs-service\";\nimport {BrowserUIAngularModel} from \"./model\";\nimport {BaseVertexComponent} from \"./base.vertex.component\";\nimport {\n VisuallyJsAngularComponent,\n VisuallyJsAngularDOMElement,\n VisuallyJsAngularVertexComponent\n} from \"./surface-component\";\n\n\n\n@Component({\n selector: \"vjs-paper\",\n template:`<ng-content></ng-content>`\n})\nexport class PaperComponent<\n RO extends AngularRenderOptions = AngularRenderOptions,\n >\n implements AfterViewInit, OnDestroy\n{\n\n \n @Input({alias:\"model\"}) inputModel?:BrowserUIModel\n\n \n @Input() viewOptions?: AngularViewOptions;\n \n @Input() renderOptions?: AngularRenderOptions;\n\n \n @Input() modelOptions?: ModelOptions;\n\n \n data = input<Record<string, any> | undefined>();\n\n \n url = input<string | undefined>();\n\n \n @Output() vertexEvent = new EventEmitter<{\n \n vertex: Vertex;\n \n event: string;\n \n payload: any;\n \n component: ComponentRef<any>;\n }>();\n\n \n model: BrowserUIModel;\n\n \n paper: Paper;\n\n // we keep these refs in order to be able to cleanup listeners properly.\n nodeUpdateFn: (a: any, e?: any) => any;\n groupUpdateFn: (a: any, e?: any) => any;\n portAddedFn: (a: any, e?: any) => any;\n portUpdateFn: (a: any, e?: any) => any;\n dataLoadEndFn: () => any;\n\n edgeUpdateFn: (a: any, e?: any) => any;\n edgeAddFn: (a: any, e?: any) => any;\n edgeRemoveFn: (a: any, e?: any) => any;\n\n $el = inject(ElementRef)\n $viewContainerRef = inject(ViewContainerRef)\n $ngZone = inject(NgZone)\n\n $vjs = inject(VisuallyJsService)\n\n private _dataEffect = effect(() => {\n const currentData = this.data();\n if (currentData) {\n if (this.model) {\n this.model.clear()\n this.model.load({ data: currentData });\n }\n }\n });\n\n private _urlEffect = effect(() => {\n const currentUrl = this.url();\n if (currentUrl) {\n // Respond to changes in the url here.\n // For example, if you need to reload the model with new data:\n if (this.model) {\n this.model.clear()\n this.model.load({ url:currentUrl });\n }\n }\n });\n\n \n getNativeElement(component: any): VisuallyJsAngularDOMElement {\n return component.location.nativeElement.childNodes[0];\n }\n\n private _getComponent(el:BrowserElement, tryParent:boolean):VisuallyJsAngularComponent<Paper> {\n if (el == null) {\n return null\n } else {\n let vjc = (el as any)._visuallyJsNgComponent\n if (vjc == null && tryParent && el.parentNode != null) {\n vjc = (el.parentNode as any)._visuallyJsNgComponent\n }\n return vjc\n }\n }\n\n private _getComponentThen(el:BrowserElement, then:(component:VisuallyJsAngularComponent<Paper>) => any, tryParent:boolean):void {\n const c = this._getComponent(el, tryParent)\n if (c != null) {\n then(c)\n }\n }\n\n \n nodeOrGroupUpdated(params: VertexUpdatedParams): void {\n const info = this.paper.getObjectInfo(params.vertex, false);\n\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Paper>) => {\n component.data = params.vertex.data\n component.$data?.set(component.data)\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n\n this._maybeUpdateEdgeOverlays(params.vertex)\n\n }\n\n portUpdated(params: PortUpdatedParams): void {\n const info = this.paper.getObjectInfo(params.port, false);\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Paper>) => {\n if (component instanceof BasePortComponent) {\n component.data = params.port.data;\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n }, true)\n\n this._maybeUpdateEdgeOverlays(params.port)\n }\n\n private _maybeUpdateEdgeOverlays(vertex:Vertex):void {\n vertex.getAllEdges().forEach(e => this._handleEdgeUpdate(e.id))\n }\n \n private _handleEdgeUpdate(edgeId:string): void {\n const connection = this.paper.getRenderedConnection(edgeId);\n if (connection) {\n for (let id in connection.overlays) {\n const canvas = (connection.overlays[id] as HTMLElementOverlayHolder).contentElement;\n\n this._getComponentThen(canvas, (component) => {\n if (component.changeDetectorRef != null) {\n component.changeDetectorRef.detectChanges();\n }\n }, false)\n }\n }\n }\n\n \n private edgeUpdated(params: EdgeUpdatedParams): void {\n this._handleEdgeUpdate(params.edge.id)\n }\n\n private edgeAddedRemoved(params:EdgeAddedParams|EdgeRemovedParams):void {\n const info = this.paper.getObjectInfo(params.edge.source, false)\n if (info.el) {\n this._getComponentThen(info.el, (component:VisuallyJsAngularComponent<Paper>) => {\n try {\n ;(component as any).$updateEdges()\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n catch (e) {}\n }, false)\n }\n\n const info2 = this.paper.getObjectInfo(params.edge.target, false)\n if (info2.el && info.obj.getFullId() !== info2.obj.getFullId()) {\n this._getComponentThen(info2.el, (component:VisuallyJsAngularComponent<Paper>) => {\n try {\n ;(component as any).$updateEdges()\n // tslint:disable-next-line:align\n if (component.changeDetectorRef) {\n component.changeDetectorRef.detectChanges();\n }\n }\n catch (e) {}\n }, false)\n }\n }\n\n \n private _processAngularOverlays(\n view: AngularViewOptions,\n ): AngularViewOptions {\n const self = this;\n const edgeTypes = view.edges || {};\n for (let edgeTypeId in edgeTypes) {\n const edgeType = edgeTypes[edgeTypeId];\n if (edgeType.overlays != null) {\n edgeType.overlays = edgeType.overlays.map((o: OverlaySpec) => {\n if (typeof o === \"string\") {\n return o;\n } else {\n const fo = o as FullOverlaySpec;\n if (fo.type === AngularComponentOverlayType) {\n const newSpec = Object.assign(fo as any, {\n type: OVERLAY_TYPE_CUSTOM,\n }) as FullOverlaySpec\n newSpec.options = (newSpec.options || {}) as CustomOverlayOptions<BrowserElement>\n newSpec.options.create = (connection: Connection<BrowserElement>) => {\n const el = document.createElement(ELEMENT_DIV);\n\n let createdComponent = self.$viewContainerRef.createComponent(\n newSpec.options.component,\n );\n\n let angularOverlayComponent = createdComponent.instance as AngularOverlayComponent<Paper>;\n\n let nativeEl = createdComponent.location.nativeElement.childNodes[0];\n el.appendChild(nativeEl);\n (el as any)._visuallyJsNgComponent = angularOverlayComponent;\n\n \n if (connection != null) {\n const edge = connection.edge\n angularOverlayComponent.edge = edge;\n angularOverlayComponent.data = edge.data;\n }\n\n angularOverlayComponent.model = self.model;\n angularOverlayComponent.ui = self.paper;\n\n createdComponent.changeDetectorRef.detectChanges();\n\n return el;\n };\n\n return newSpec;\n } else {\n return fo;\n }\n }\n });\n }\n }\n\n return view;\n }\n\n \n save(options:SaveOptions): void {\n this.paper.save(options)\n }\n\n \n exportData(options:ExportOptions):SurfaceSaveData {\n return this.paper.model.exportData(options)\n }\n\n \n dataLoadEnd(): void {\n setTimeout(() => {\n if (this.paper != null) {\n this.paper.repaintEverything();\n }\n }, 0);\n }\n\n private $removeNgElement(el:any):void {\n if (el._ref != null) {\n el._ref.destroy();\n }\n\n if (el.parentNode != null) {\n el.parentNode.removeChild(el);\n }\n }\n\n \n ngAfterViewInit(): void {\n this.$ngZone.runOutsideAngular(() => {\n const view = this._processAngularOverlays(this.viewOptions || {});\n const self = this;\n this.renderOptions = this.renderOptions || ({} as RO);\n\n const render = (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n paper: Paper,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo?: any,\n ) => {\n let component;\n if (def.component == null) {\n if (isGroup(modelObject)) {\n component = DefaultGroupComponent;\n } else {\n component = DefaultNodeComponent;\n }\n } else {\n component = def.component;\n }\n\n let createdComponent: ComponentRef<any> = self.$viewContainerRef.createComponent(component)\n let _componentRef = createdComponent.instance as VisuallyJsAngularVertexComponent<Paper>\n\n _componentRef.data = data || {};\n _componentRef.model = model;\n _componentRef.paper = paper;\n _componentRef.ui = paper\n _componentRef.modelObject = modelObject;\n\n // get the reflection data for the component\n const componentInfo = reflectComponentType(component)\n // ..and populate any declared inputs from data\n componentInfo.inputs.forEach((pt) => {\n const pv = _componentRef.data[pt.propName];\n if (pv != null) {\n _componentRef[pt.propName] = pv;\n }\n });\n // map to any outputs\n componentInfo.outputs.forEach((pt) => {\n _componentRef[pt.propName].subscribe((d) =>\n self.vertexEvent.emit({\n vertex: modelObject,\n event: pt.propName,\n payload: d,\n component: createdComponent,\n }),\n );\n });\n\n // if angular def has 'inputs' set, set them on the component. this is different to the mechanism above, in which values are extracted from\n // each node's backing data. here we inject values either as a string or from some arbitrary function.\n if (def.inputs != null) {\n for (let k in def.inputs) {\n const v = def.inputs[k];\n const value = typeof v === \"string\" ? v : v(modelObject);\n _componentRef[k] = value;\n }\n }\n\n createdComponent.changeDetectorRef.detectChanges();\n\n // TODO this should not be necessary\n const nativeElement = self.getNativeElement(createdComponent);\n _componentRef._el = nativeElement;\n _componentRef._el._visuallyJsNgComponent = _componentRef;\n _componentRef._el._ref = createdComponent; // we store _ref so we can call `destroy` on it later if the node is removed.\n\n paper.$vertexRendered(modelObject, nativeElement, def as any, eventInfo);\n }\n\n const templateRenderer: TemplateRenderer<any> = {\n asynchronous: false,\n reactive: true,\n usesWrapperElement:false,\n update: (el: any, data: ObjectData, v: Vertex, renderer: Paper) => {},\n render,\n rerender: (\n directiveId: string,\n data: any,\n instance: VisuallyJsModel,\n objectType: string,\n paper: Paper,\n def: AngularNodeMapping|AngularGroupMapping,\n modelObject: Vertex,\n eventInfo: any,\n originalElement:BrowserElement\n ) => {\n this.$removeNgElement(originalElement)\n render(directiveId, data, instance, objectType, paper, def, modelObject, eventInfo)\n },\n cleanupVertex: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n cleanupPort: (objId: string, el: any) => {\n this.$removeNgElement(el)\n },\n };\n\n const renderParams = extend<any>(this.renderOptions || {}, {\n view: view,\n });\n\n let model = this.inputModel || new BrowserUIAngularModel(this.modelOptions);\n this.model = model;\n\n this.paper = renderPaper(\n model,\n self.$el.nativeElement,\n templateRenderer,\n renderParams,\n );\n\n this.$vjs.$setPaper(this.paper)\n\n // ----------------\n\n this.nodeUpdateFn = this.nodeOrGroupUpdated.bind(this);\n model.bind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n model.bind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n model.bind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n\n this.dataLoadEndFn = this.dataLoadEnd.bind(this);\n model.bind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n\n this.portUpdateFn = this.portUpdated.bind(this);\n model.bind(EVENT_PORT_UPDATED, this.portUpdateFn);\n\n this.edgeUpdateFn = this.edgeUpdated.bind(this);\n model.bind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n\n this.edgeAddFn = this.edgeAddedRemoved.bind(this)\n this.edgeRemoveFn = this.edgeAddedRemoved.bind(this)\n model.bind(EVENT_EDGE_ADDED, this.edgeAddFn);\n model.bind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);\n\n const initialData = this.data()\n const initialUrl = this.url()\n if (initialData) {\n this.model.load({ data: initialData });\n } else if (initialUrl) {\n this.model.load({ url: initialUrl });\n }\n });\n }\n\n \n ngOnDestroy(): void {\n this.paper.destroy()\n this.model.unbind(EVENT_NODE_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_ADDED, this.nodeUpdateFn);\n this.model.unbind(EVENT_PORT_UPDATED, this.portUpdateFn);\n this.model.unbind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);\n this.model.unbind(EVENT_EDGE_ADDED, this.edgeAddFn);\n this.model.unbind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);\n this.model.unbind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);\n this.paper.unbind(EVENT_INTERNAL_CONNECTION, this.edgeAddFn);\n }\n}\n","import {inject, Component, AfterViewInit, effect, Input} from \"@angular/core\"\nimport {\n BackgroundOptions,\n BackgroundPlugin,\n log\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n@Component({\n selector:\"vjs-background\",\n template:`<ng-content></ng-content>`\n})\nexport class BackgroundComponent implements AfterViewInit {\n\n @Input() options:BackgroundOptions\n\n $vjs = inject(VisuallyJsService)\n\n private _bg:BackgroundPlugin<BackgroundOptions> = null\n\n private _optionsEffect = effect(() => {\n if (this.options != null) {\n\n }\n })\n\n ngAfterViewInit():void {\n this.$vjs.getSurface(s => {\n try {\n this._bg = s.addPlugin({\n type:BackgroundPlugin.type,\n options:this.options\n }) as unknown as BackgroundPlugin<BackgroundOptions>\n } catch (e) {\n log(`WARN: BackgroundComponent could not mount background ${e}`)\n }\n })\n\n }\n}\n","import {inject, Component, AfterViewInit, Input} from \"@angular/core\"\nimport {\n BackgroundPlugin,\n log, SimpleBackground\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-image-background\",\n template:`<ng-content></ng-content>`\n})\nexport class ImageBackgroundComponent implements AfterViewInit {\n\n \n @Input() url:string\n\n $vjs = inject(VisuallyJsService)\n\n ngAfterViewInit():void {\n this.$vjs.getSurface(s => {\n try {\n // tslint:disable-next-line:no-unused-expression\n s.addPlugin({\n type:BackgroundPlugin.type,\n options:{\n type:SimpleBackground.type,\n url:this.url\n }\n })\n } catch (e) {\n log(`WARN: ImageBackgroundComponent could not mount background ${e}`)\n }\n })\n\n }\n}\n","import {inject, Component, AfterViewInit, effect, Input} from \"@angular/core\"\nimport {\n BackgroundPlugin,\n log, Size, TiledBackground, TiledBackgroundOptions, TilingStrategy\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-tiled-image-background\",\n template:`<ng-content></ng-content>`\n})\nexport class TiledImageBackgroundComponent implements AfterViewInit {\n\n \n @Input() url?:string\n\n \n @Input() urlGenerator?:(z:number, x:number, y:number) => string\n\n \n @Input() tileSize:Size\n\n \n @Input() width:number\n\n \n @Input() height:number\n\n \n @Input() maxZoom?:number\n\n \n @Input() tiling?:TilingStrategy\n\n \n @Input() panDebounceTimeout?:number\n\n \n @Input() zoomDebounceTimeout?:number\n\n $vjs = inject(VisuallyJsService)\n\n private _bg:BackgroundPlugin<TiledBackgroundOptions> = null\n\n ngAfterViewInit():void {\n this.$vjs.getSurface(s => {\n try {\n this._bg = s.addPlugin({\n type:BackgroundPlugin.type,\n options:{\n type:TiledBackground.type,\n url:this.url,\n urlGenerator:this.urlGenerator,\n tileSize:this.tileSize,\n width:this.width,\n height:this.height,\n maxZoom:this.maxZoom,\n tiling:this.tiling,\n panDebounceTimeout:this.panDebounceTimeout,\n zoomDebounceTimeout:this.zoomDebounceTimeout\n }\n }) as unknown as BackgroundPlugin<TiledBackgroundOptions>\n } catch (e) {\n log(`WARN: TiledImageBackgroundComponent could not mount background ${e}`)\n }\n })\n\n }\n}\n","import {inject, Component, AfterViewInit, effect, Input} from \"@angular/core\"\nimport {\n BackgroundPlugin,\n GeneratedGridBackground,\n GeneratedGridBackgroundOptions,\n Grid,\n GridType,\n log\n} from \"@visuallyjs/browser-ui\"\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Component({\n selector:\"vjs-grid-background\",\n template:`<ng-content></ng-content>`\n})\nexport class GridBackgroundComponent implements AfterViewInit {\n\n \n @Input() grid?:Grid\n\n \n @Input() showBorder?:boolean\n\n \n @Input() minWidth?:number\n\n \n @Input() minHeight?:number\n\n \n @Input() showTickMarks?:boolean\n\n \n @Input() tickMarksPerCell?:number\n\n \n @Input() maxWidth?:number\n\n \n @Input() maxHeight?:number\n\n \n @Input() autoShrink?:boolean\n\n \n @Input() gridType?:GridType\n\n \n @Input() dotRadius?:number\n\n \n @Input() tickDotRadius?:number\n\n \n @Input() visible?:boolean\n\n $vjs = inject(VisuallyJsService)\n\n private _bg:BackgroundPlugin<GeneratedGridBackgroundOptions> = null\n\n private _getOptions():GeneratedGridBackgroundOptions {\n return {\n type:GeneratedGridBackground.type,\n grid: this.grid,\n showBorder: this.showBorder,\n minWidth: this.minWidth,\n minHeight: this.minHeight,\n showTickMarks: this.showTickMarks,\n tickMarksPerCell: this.tickMarksPerCell,\n maxWidth: this.maxWidth,\n maxHeight: this.maxHeight,\n autoShrink: this.autoShrink,\n gridType: this.gridType,\n dotRadius: this.dotRadius,\n tickDotRadius: this.tickDotRadius,\n visible: this.visible\n }\n }\n\n ngAfterViewInit():void {\n this.$vjs.getSurface(s => {\n try {\n this._bg = s.addPlugin({\n type:BackgroundPlugin.type,\n options:this._getOptions()\n }) as unknown as BackgroundPlugin<GeneratedGridBackgroundOptions>\n } catch (e) {\n log(`WARN: GridBackgroundComponent could not mount background ${e}`)\n }\n })\n\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from \"@angular/common\"\n\nimport {MiniviewComponent} from \"./miniview-component\"\nimport {SurfaceComponent} from \"./surface-component\"\nimport {ShapePaletteComponent} from \"./shape.palette.component\"\nimport {ShapeComponent} from \"./shape.component\"\nimport {ControlsComponent} from \"./controls-component\"\nimport {EdgeTypePickerComponent} from \"./edge.type.picker.component\"\nimport {DefaultNodeComponent} from \"./default-node-component\"\nimport {DefaultGroupComponent} from \"./default-group-component\"\nimport {BasePortComponent} from \"./base.port.component\"\nimport {PaletteComponent} from \"./palette.component\"\nimport {ExportControlsComponent} from \"./export-controls-component\"\nimport {ColorPickerComponent} from \"./color.tag.component\"\nimport {DiagramComponent} from \"./diagram-component\"\nimport {ColumnChartComponent} from \"./charts/column.chart.component\"\nimport {BarChartComponent} from \"./charts/bar.chart.component\"\nimport { DiagramPaletteComponent } from \"./diagram-palette-component\";\nimport {XYChartComponent} from \"./charts/xy.chart.component\";\nimport {LineChartComponent} from \"./charts/line.chart.component\";\nimport {AreaChartComponent} from \"./charts/area.chart.component\";\nimport {PieChartComponent} from \"./charts/pie.chart.component\";\nimport {ScatterChartComponent} from \"./charts/scatter.chart.component\";\nimport {BubbleChartComponent} from \"./charts/bubble.chart.component\";\nimport {SankeyChartComponent} from \"./charts/sankey.chart.component\";\nimport {DecoratorComponent} from \"./decorator-component\";\nimport {SurfacePopupComponent} from \"./surface-popup-component\";\nimport {PaperComponent} from \"./paper-component\";\nimport { BackgroundComponent } from \"./background.component\";\nimport { ImageBackgroundComponent } from \"./image-background.component\";\nimport { TiledImageBackgroundComponent } from \"./tiled-image-background.component\";\nimport { GridBackgroundComponent } from \"./grid-background.component\";\n\n\n@NgModule({\n imports:[ CommonModule ],\n declarations: [\n DefaultNodeComponent,\n DefaultGroupComponent,\n BasePortComponent,\n MiniviewComponent,\n SurfaceComponent,\n PaperComponent,\n PaletteComponent,\n ShapePaletteComponent,\n DiagramPaletteComponent,\n ShapeComponent,\n ControlsComponent,\n EdgeTypePickerComponent,\n PaletteComponent,\n ExportControlsComponent,\n ColorPickerComponent,\n DiagramComponent,\n ColumnChartComponent,\n BarChartComponent,\n XYChartComponent,\n LineChartComponent,\n AreaChartComponent,\n PieChartComponent,\n ScatterChartComponent,\n BubbleChartComponent,\n SankeyChartComponent,\n DecoratorComponent,\n SurfacePopupComponent,\n BackgroundComponent,\n ImageBackgroundComponent,\n GridBackgroundComponent,\n TiledImageBackgroundComponent\n ],\n exports: [\n MiniviewComponent,\n SurfaceComponent,\n PaperComponent,\n PaletteComponent,\n DiagramPaletteComponent,\n ShapeComponent,\n ShapePaletteComponent,\n ControlsComponent,\n ExportControlsComponent,\n EdgeTypePickerComponent,\n ColorPickerComponent,\n DiagramComponent,\n ColumnChartComponent,\n BarChartComponent,\n XYChartComponent,\n LineChartComponent,\n AreaChartComponent,\n PieChartComponent,\n ScatterChartComponent,\n BubbleChartComponent,\n SankeyChartComponent,\n DecoratorComponent,\n SurfacePopupComponent,\n BackgroundComponent,\n ImageBackgroundComponent,\n GridBackgroundComponent,\n TiledImageBackgroundComponent\n ]\n})\nexport class VisuallyJsModule { }\n","import {\n BrowserElement,\n SurfaceOptions,\n Vertex,\n GroupMapping,\n NodeMapping,\n PortMapping,\n ViewSpec,\n} from \"@visuallyjs/browser-ui\";\n\n\nexport interface AngularNodeMapping\n extends Omit<NodeMapping<BrowserElement>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n\n \n inputs?: Record<string, string | ((v: Vertex) => string)>;\n}\n\n\nexport interface AngularGroupMapping\n extends Omit<GroupMapping<any>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n\n \n inputs?: Record<string, string | ((v: Vertex) => string)>;\n}\n\n\nexport interface AngularPortMapping\n extends Omit<PortMapping<any>, \"templateIdResolver\" | \"template\" | \"templateId\" | \"parameters\"> {\n \n component?: any;\n}\n\n\nexport interface AngularViewOptions extends ViewSpec<BrowserElement> {\n \n nodes?: Record<string, AngularNodeMapping>;\n \n groups?: Record<string, AngularGroupMapping>;\n \n ports?: Record<string, AngularPortMapping>;\n}\n\n\nexport interface AngularRenderOptions\n extends Pick<\n SurfaceOptions,\n Exclude<\n keyof SurfaceOptions,\n [\"view\", \"tags\", \"container\"]\n >\n > {}\n\n// [\"view\", \"tags\", \"container\", \"directRender\", \"storePositionsInModel\"]\n\n\n","import {\n ChangeDetectorRef,\n ElementRef,\n Input,\n inject,\n Directive,\n computed,\n effect,\n} from \"@angular/core\";\nimport {Inspector, Base, Edge, Node, Group, Port, BrowserUI} from \"@visuallyjs/browser-ui\";\nimport {VisuallyJsService} from \"./vjs-service\";\n\n\n@Directive()\nexport class InspectorComponent<T extends Base = Base>\n{\n \n currentObj: T;\n\n \n currentType = \"\";\n\n \n currentObjectType = \"\";\n\n \n EDGE = Edge.objectType\n\n \n NODE = Node.objectType\n\n \n GROUP = Group.objectType\n\n \n PORT = Port.objectType\n\n \n @Input() cssClass?:string\n\n \n @Input() showCloseButton?: boolean;\n\n \n @Input() context?:Record<string, any> = {}\n\n \n inspector!: Inspector;\n\n \n changeDetector = inject(ChangeDetectorRef);\n\n \n el = inject(ElementRef);\n\n\n $vjs = inject(VisuallyJsService)\n ui = this.$vjs.ui\n model = computed(() => this.ui()?.model)\n initialized = false\n\n constructor() {\n effect(() => {\n const ui = this.ui()\n if (!this.initialized && ui != null) {\n this.initialized = true\n this.inspector = new Inspector({\n context:this.context,\n container: this.el.nativeElement,\n cssClass:this.cssClass,\n showCloseButton: this.showCloseButton,\n ui,\n renderEmptyContainer: () => {\n this.reset();\n this.changeDetector.detectChanges();\n },\n refresh: (obj: Base, cb: () => void) => {\n this.currentObj = obj as T;\n this.refresh(obj);\n setTimeout(cb, 0);\n this.changeDetector.detectChanges();\n },\n afterUpdate: () => this.afterUpdate(ui),\n });\n\n this.$vjs.$setInspector(this.inspector)\n }\n })\n }\n\n \n refresh(obj: Base): void {\n this.currentType = obj.data.type;\n this.currentObjectType = obj.objectType;\n }\n\n \n reset(): void {\n this.currentType = \"\";\n this.currentObjectType = ''\n }\n\n \n afterUpdate(ui: BrowserUI): void {}\n}\n","import {EVENT_ZOOM} from \"@visuallyjs/browser-ui\";\nimport {effect, Signal, signal, inject} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\n\n\nexport function useZoom():Signal<number> {\n\n const $vjs = inject(VisuallyJsService)\n const surface = $vjs.surface\n\n const zoom = signal<number>(1)\n\n effect(() => {\n const s = surface()\n if (s != null) {\n const zoomListener = (p:{zoom: number}) => {\n zoom.set(p.zoom);\n };\n s.bind(EVENT_ZOOM, zoomListener);\n zoom.set(s.getZoom());\n return () => {\n s.unbind(EVENT_ZOOM, zoomListener);\n };\n }\n\n return;\n })\n\n return zoom\n}\n","import {EVENT_DATA_UPDATED, EVENT_GRAPH_CLEARED, BrowserUIModel} from \"@visuallyjs/browser-ui\";\nimport {effect, inject} from \"@angular/core\";\nimport {VisuallyJsService} from \"../vjs-service\";\n\n\nexport function useVisuallyJsUpdate(callback:(model:BrowserUIModel) => any):void {\n\n const $vjs = inject(VisuallyJsService)\n\n effect(() => {\n const m = $vjs.model()\n if (m != null) {\n\n const fn = () => callback(m)\n\n m.bind(EVENT_DATA_UPDATED, fn)\n m.bind(EVENT_GRAPH_CLEARED, fn)\n fn()\n\n return (() => {\n m.unbind(EVENT_DATA_UPDATED, fn)\n m.unbind(EVENT_GRAPH_CLEARED, fn)\n })\n }\n return\n })\n}\n","\nexport * from './lib/browser-ui-angular.module'\nexport * from './lib/model'\nexport * from './lib/vjs-service'\nexport * from './lib/base.node.component'\nexport * from './lib/base.vertex.component'\nexport * from './lib/base.group.component'\nexport * from './lib/base.port.component'\nexport * from './lib/default-node-component'\nexport * from './lib/default-group-component'\nexport * from './lib/common'\nexport * from './lib/miniview-component'\nexport * from './lib/surface-component'\nexport * from './lib/surface-popup-component'\nexport * from './lib/paper-component'\nexport * from './lib/overlay-component'\nexport * from './lib/palette.component';\nexport * from './lib/decorator-component';\nexport * from './lib/shape.component';\nexport * from './lib/shape.palette.component';\nexport * from './lib/diagram-palette-component';\nexport * from './lib/controls-component';\nexport * from './lib/export-controls-component';\nexport * from './lib/edge.type.picker.component';\nexport * from './lib/inspector.component';\nexport * from './lib/color.tag.component';\nexport * from './lib/diagram-component';\nexport * from './lib/charts/series.based.chart.component'\nexport * from './lib/charts/column.chart.component'\nexport * from './lib/charts/bar.chart.component'\nexport * from './lib/charts/line.chart.component'\nexport * from './lib/charts/area.chart.component'\nexport * from './lib/charts/xy.chart.component'\nexport * from './lib/charts/pie.chart.component'\nexport * from './lib/charts/scatter.chart.component'\nexport * from './lib/charts/bubble.chart.component'\nexport * from './lib/charts/sankey.chart.component'\nexport * from './lib/hooks/use-zoom'\nexport * from './lib/hooks/use-visuallyjs-update'\nexport * from './lib/background.component'\nexport * from './lib/image-background.component'\nexport * from './lib/tiled-image-background.component'\nexport * from './lib/grid-background.component'\n\n","\n\nexport * from './index';\n"],"names":[],"mappings":"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"}