PaperOptions
Options specific to the Paper UI.
| Name | Type | Description |
|---|---|---|
| align? | PaperAlignment | Strategy to use to place content within whitespace. This applies to both axes; use horizontalAlign and/or verticalAlign to set axes differently. |
| canCollapseGroup? | (group:Group, currentSize:Size) => boolean | ObjectData | Returns whether or not the given group can be collapsed |
| canExpandGroup? | (group:Group, currentSize:Size) => boolean | ObjectData | Returns whether or not the given group can be expanded |
| consumeRightClick? | boolean | Whether or not to consume right clicks, which ordinarily will cause a browser to show a context menu with some native browser functions. This defaults to true. |
| defaultCollapsedGroupSize? | Size | Optional default size for a collapsed group. Defaults to 200x150. |
| defaults? | PaperDefaults | Optional default settings |
| dragOptions? | DragOptions<BrowserElement> | Options for dragging vertices. |
| edges? | BrowserUIEdgeOptions | Options for edges |
| elementsDraggable? | boolean | Whether or not the elements in the UI should be draggable. Defaults to true. |
| getCollapsedGroupSize? | (group:Group, currentSize:Size) => Size | Optional function to determine the size of a collapsed group. This is given precedence over any default or per-type specification for a collapsed group's size. |
| grid? | GridOptions | Options for imposing a grid onto the elements in the UI |
| horizontalAlign? | PaperAlignment | Strategy to use to place content within whitespace in the horizontal axis. |
| id? | string | Optional ID for the UI. Allows you to retrieve this UI from a model's method. |
| layout? | LayoutSpec | Defines the layout to use. |
| logicalPorts? | boolean | Defaults to false. When true, the UI treats the vertex's element as the element for the port if it cannot find a specific element for the port. |
| margin? | number | Margin to leave around content |
| plugins? | Array<UIPluginSpec<any>> | Optional list of plugins to attach to the UI. |
| relayoutOnEdgeConnect? | boolean | When true, the UI will run a of the underlying layout whenever a new edge is established. This defaults to false, but you might want to set this to true if you're using the Hierarchical or Hierarchy layouts, because it has a bearing on the way they paint. However, if your users are able to drag vertices around, you may not wish for the layout to move things that they have placed, which is why this defaults to false. |
| relayoutOnResize? | boolean | Whether or not to relayout the UI when an element's size changes as a result of content changes in its element. Defaults to false. |
| relayoutOnVertexRemove? | boolean | Whether or not to relayout the UI when a vertex is removed. Defaults to false. For some layouts, like the Hierarchy layout, you may wish to switch this on. |
| router? | (u:UICore<BrowserElement>) => Router<BrowserElement> | Optional factory method to instantiate a router. This is only for certain advanced usages in which you wish to route all of the edges yourself. Most applications do not need to consider this. |
| selection? | Function | VisuallyJsSelection | Optional Selection - or generator - to use as the dataset to render. If you supply this the UI will render the contents of the selection, or the list of vertices that the given function returns. This is useful for such things as inspector windows for parts of your UI. |
| shapes? | ShapesOptions | Optional shape library that can render SVG shapes into node elements. When you provide a shape library to a surface, two things happen: - firstly, the surface registers a tag that your templates can use. The of each node is used to extract an appropriate SVG shape definition from the shape library. Secondly, the 'exportToSvg()' method becomes available. Note that SVG export has a few constraints/requirements - see the docs for a discussion. |
| templates? | Record<string,string> | When using 'vanilla' VisuallyJs, you can provide a map of templates here rather than including them somewhere in the HTML of the page. This is ignored when you are using a library integration. |
| useModelForPositions? | boolean | Defaults to true - we get positions for elements from our layout. In some use cases you may wish to use element positions retrieved from the DOM. |
| useModelForSizes? | boolean | Defaults to false. When true, newly created nodes are sized according to values in their backing data, using the modelWidthAttribute and modelHeightAttribute as keys. NOTE: when this flag is set, VisuallyJs will write the size onto each element as it is created. Depending on your app, you may not need it to do this - if you know your node sizes are set via css, for instance, or you know the template rendering your vertices writes out the size in an element's style or an SVG element's width/height. If that is the case, you can set writeSizeToElements to be false, and you'll get a performance boost. |
| useSvgContainer? | boolean | Defaults to false. When true, VisuallyJs will use an SVG element as the container for all the other elements. You will need to ensure your templates/components write out SVG elements, and you will have to stick to SVG elements in any Decorators. You may wish to consider looking at the Diagram class if you want to build an SVG diagram. |
| verticalAlign? | PaperAlignment | Strategy to use to place content within whitespace in the vertical axis. |
| writeSizeToElements? | boolean | When useModelForSizes is true, VisuallyJs will write out the model size onto each element rendered. But if you know your node sizes are set via css, or you know the template rendering your vertices writes out the size in an element's style or an SVG element's width/height, you can instruct VisuallyJs not to bother writing out the size to the element itself, by setting this flag to true (the default is false). This can provide a performance boost. |
| zoomToFit? | boolean | If true, zoom the display so that the dataset is entirely visible after initialisation. |
| zoomToFitIfNecessary? | boolean | If true, zoom the display so that the dataset is entirely visible after initialisation, but only adjust the zoom level if the dataset is not already visible at the default zoom level. |