# Samples and Extensions

Below is a list of every GoJS sample and extension. See the samples index for a subset of this list with screenshots and short descriptions.

## Samples

These are in the `samples/` directory. Most are stand-alone apps, but a few depend on extensions and/or on common third-party libraries. Remember that the GoJS library does not depend on any other library.

- absolute.html
- addRemoveColumns.html
- addToPalette.html
- adornmentButtons.html
- animatedFocus.html
- arrowheads.html
- barCharts.html
- basic.html
- beatPaths.html
- belts.html
- blockEditor.html
- candlestickCharts.html
- canvases.html
- classHierarchy.html
- cLayout.html
- comments.html
- conceptMap.html
- connectionBoxNode.html
- constantSize.html
- contentAlign.html
- controlGauges.html
- customAnimations.html
- customContextMenu.html
- customExpandCollapse.html
- customTextEditingTool.html
- dataFlow.html
- dataFlowVertical.html
- dataVisualization.html
- decisionTree.html
- distances.html
- DOMTree.html
- donutCharts.html
- doubleCircle.html
- doubleTree.html
- dragDropFields.html
- draggableLink.html
- dragOutFields.html
- dragUnoccupied.html
- dynamicPieChart.html
- dynamicPorts.html
- entityRelationship.html
- euler.html
- familyTree.html
- familyTreeJP.html
- faultTree.html
- fdLayout.html
- flowBuilder.html
- flowchart.html
- flowgrammer.html
- friendWheel.html
- gameOfLife.html
- gantt.html
- genogram.html
- gestureBehavior.html
- gLayout.html
- grafcet.html
- grouping.html
- hoverButtons.html
- htmlDragDrop.html
- htmlInteraction.html
- icons.html
- incrementalTree.html
- instrumentGauge.html
- interactiveForce.html
- IVRtree.html
- kanban.html
- kittenMonitor.html
- ldLayout.html
- leaflet.html
- linksToLinks.html
- localView.html
- logicCircuit.html
- macros.html
- magnifier.html
- mindMap.html
- minimal.html
- minimalBlob.html
- minimalSvg.html
- multiArrow.html
- multiColorLinks.html
- multiNodePathLinks.html
- navigation.html
- network.html
- networkConfig.html
- orgChartAssistants.html
- orgChartEditor.html
- orgChartExtras.html
- orgChartStatic.html
- pageFlow.html
- panelLayout.html
- parseTree.html
- pathAnimation.html
- PERT.html
- pieCharts.html
- pinchResizing.html
- pipes.html
- pipeTree.html
- planogram.html
- processFlow.html
- productionEditor.html
- productionProcess.html
- radial.html
- radialAdornment.html
- radialPartition.html
- records.html
- regrouping.html
- regroupingTreeView.html
- relationships.html
- roundedGroups.html
- ruleredDiagram.html
- sankey.html
- scrollModes.html
- seatingChart.html
- selectableFields.html
- selectablePorts.html
- sequenceDiagram.html
- sequentialFunction.html
- shapes.html
- sharedStates.html
- shopFloorMonitor.html
- singlePage.html
- spacingZoom.html
- sparklineGraphs.html
- spreadsheet.html
- stateChart.html
- stateChartIncremental.html
- svgDataUrl.html
- swimBands.html
- swimLanes.html
- swimLanesVertical.html
- systemDynamics.html
- taperedLinks.html
- thermometer.html
- tiger.html
- timeline.html
- tLayout.html
- tournament.html
- treeLoadAnimation.html
- treeMapper.html
- treeView.html
- triStateCheckBoxTree.html
- twoDiagrams.html
- twoHalves.html
- umlClass.html
- updateDemo.html
- virtualized.html
- virtualizedForceLayout.html
- virtualizedTree.html
- virtualizedTreeLayout.html
- visualTree.html
- visualTreeGrouping.html
- vue.html
- warehouse.html
- wordcloud.html
- .htmlBPMN
- Floorplanner
- PDF multi page
- PDF multi diagram
- PDF one page

## Extensions

There are two extension directories.

- `extensions/`, loadable in a simple <script> tag
- `extensionsJSM/`, using `go-module.js`, compiled as an ECMAScript module and loaded by `import`

In all cases you should copy the extension code into your own project and make sure that any `import` or `require` is adjusted to fit your environment. Subtle errors can occur if your app loads the GoJS library more than once, especially if they are of different versions.

### Layout Extensions:

- Arranging.html, using ArrangingLayout.js
- DoubleTree.html, using DoubleTreeLayout.js
- Fishbone.html, using FishboneLayout.js
- PackedHierarchy.html, using PackedLayout.js
- PackedLayout.html, using PackedLayout.js
- Parallel.html, using ParallelLayout.js
- radial.html, using RadialLayout.js
- Serpentine.html, using SerpentineLayout.js
- Spiral.html, using SpiralLayout.js
- SwimLaneLayout.html, using SwimLaneLayout.js
- Table.html, using TableLayout.js
- TreeMap.html, using TreeMapLayout.js
- VirtualizedPacked.html, using VirtualizedPackedLayout.js

### PanelLayout Extensions

- PanelLayoutFlow.html, using PanelLayoutFlow.js

### Router Extensions

- AvoidsLinksRouter.html, using AvoidsLinksRouter.js
- LinkLabelRouter.html, using LinkLabelRouter.js

### Tool Extensions:

- ColumnResizing.html, using ColumnResizingTool.js
- CurvedLinkReshaping.html using CurvedLinkReshapingTool.js
- DragCreating.html using DragCreatingTool.js
- DragZooming.html using DragZoomingTool.js
- FreehandDrawing.html using FreehandDrawingTool.js
- GeometryReshaping.html using GeometryReshapingTool.js
- GuidedDragging.html using GuidedDraggingTool.js
- LinkLabelDragging.html using LinkLabelDraggingTool.js
- LinkLabelOnPathDragging.html using LinkLabelOnPathDraggingTool.js
- LinkShifting.html using LinkShiftingTool.js
- NodeLabelDragging.html using NodeLabelDraggingTool.js
- NonRealtimeDragging.html using NonRealtimeDraggingTool.js
- OrthogonalLinkReshaping.html using OrthogonalLinkReshapingTool.js
- OverviewResizing.html using OverviewResizingTool.js
- PolygonDrawing.html using PolygonDrawingTool.js
- PolylineLinking.html using PolylineLinkingTool.js
- PortShifting.html using PortShiftingTool.js
- RealtimeDragSelecting.html using RealtimeDragSelectingTool.js
- Rescaling.html using RescalingTool.js
- ResizeMultiple.html using ResizeMultipleTool.js
- RowResizing.html, using RowResizingTool.js
- RotateMultiple.html using RotateMultipleTool.js
- SectorReshaping.html using SectorReshapingTool.js
- SnapLinkReshaping.html using SnapLinkReshapingTool.js
- SpotRotating.html using SpotRotatingTool.js

### CommandHandler Extensions:

- Accessibility.html using AriaCommandHandler.js
- DrawCommandHandler.html using DrawCommandHandler.js
- LocalStorageCommandHandler.html using LocalStorageCommandHandler.js

### Builder and Link Extensions:

- BalloonLink.html using BalloonLink.js
- CheckBoxes.html using predefined "CheckBox"s shown in Buttons.js
- Dimensioning.html using DimensioningLink.js
- Hyperlink.html using HyperlinkText.js
- ParallelRoute.html using ParallelRouteLink.js
- ScrollingTable.html using ScrollingTable.js
- TextEditor.html using TextEditor.js, TextEditorRadioButtons.js, or TextEditorSelectBox.js

### Miscellaneous Extensions:

- DataInspector.html using DataInspector.js
- htmlLightBoxContextMenu.html using LightBoxContextMenu.js
- Robot.html using Robot.js
- Themes.js, as discussed in intro/Theming
- ZoomSlider.html using ZoomSlider.js

# Predefined, built-in functionality:

- Arrowheads.js all shown by arrowheads.html
- Buttons.js as shown in intro/Buttons.html
- Figures.js all shown by shapes.html
- Templates.js
- TextEditor.js as shown by TextEditor.html

See the samples index for a subset of this list with screenshots and short descriptions.