@ekisa-cdk/graph-drawing
Version:
📈 Dynamically draw graphs on SVG elements
185 lines (150 loc) • 3.24 kB
Markdown
# @ekisa-cdk/graph-drawing
[](https://www.npmjs.com/package/@ekisa-cdk/graph-drawing)
## Table of contents
- [Getting started](#getting-started)
- [Basic usage](#basic-usage)
- [Scoped frame options](#scoped-frame-options)
- [API usage](#api-usage)
## **Getting started**
**1. Install package**:
```
npm i @ekisa-cdk/graph-drawing
```
## **Basic usage**
**1. Import LineGraphDrawing class**:
```ts
import { LineGraphDrawing } from '@ekisa-cdk/graph-drawing';
```
**2. Create instance, mount scoped frame & run process**:
```ts
const graph = new LineGraphDrawing({
canDrawLines: true,
canRemoveNodes: true,
})
.mountScopedFrame({
image: {
src: 'some-image.png',
alt: 'Some description',
objectFit: 'fill',
},
container: {
boundaries: [
// top
{
width: '100%',
height: '116px',
inset: '0',
cursor: 'url("https://i.stack.imgur.com/bUGV0.png"), auto',
},
// right
{
width: '114px',
height: '100%',
inset: '0 0 0 auto',
cursor: 'url("https://i.stack.imgur.com/bUGV0.png"), auto',
},
// bottom
{
width: '100%',
height: '98px',
inset: 'auto auto 0 auto',
cursor: 'url("https://i.stack.imgur.com/bUGV0.png"), auto',
},
// left
{
width: '88px',
height: '100%',
inset: '0 auto 0 0',
cursor: 'url("https://i.stack.imgur.com/bUGV0.png"), auto',
},
],
styles: {
width: '1000px',
heigth: '800px',
},
},
frame: {
styles: {
cursor: 'crosshair',
},
},
})
.startProcess();
```
## **Scoped frame options**
```ts
{
image: {
src: string;
alt?: string;
objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down';
};
container?: {
boundaries?: Array<
Partial<{
width: string;
height: string;
inset: string;
backgroundColor?: string;
opacity?: number;
cursor?: Cursor;
}>
>;
styles?: Partial<{
width: string;
heigth: string;
}>;
};
frame?: {
styles?: {
backgroundColor?: string;
opacity?: number;
cursor?: Cursor;
};
};
}
```
## **API usage**
### **Get nodes**
```ts
graph.getNodes();
```
### **Get frame coordinate**
```ts
graph.getContainerElement();
```
### **Load coordinates on the frame**
```ts
graph.loadCoordinates([
{ x: 94, y: 165, order: 0 },
{ x: 507, y: 166, order: 1 },
{ x: 172, y: 366, order: 2 },
]);
```
### **Redraw nodes**
```ts
graph.redraw();
```
### **Export graph**
```ts
graph.exportAs('image/jpeg');
graph.exportAs('image/png');
```
### **Enable lines drawing**
```ts
graph.enableDrawingLines();
```
### **Disable lines drawing**
```ts
graph.disableDrawingLines();
```
### **Enable nodes removal**
```ts
graph.enableNodesRemoval();
```
### **Disable nodes removal**
```ts
graph.disableNodesRemoval();
```
## License
[MIT](./LICENSE) License © 2021 [Ekisa Team](https://github.com/Ekisa-Team/cdk)