2.0.5-alpha3 • Published 1 day ago

@spoonconsulting/drawing v2.0.5-alpha3

Weekly downloads
157
License
MIT
Repository
github
Last release
1 day ago

Building

  1. Clone the repository
  2. npm install
  3. npm run build

This will generate drawing.min.js which is ready to be used in your web page.

Developing

Execute npm run start to launch the development server with livereload.

Usage

Creating a Drawing Experience

const drawingExperience = await DrawingExperience.create(background, {
  inputSvg: '<svg xmlns="http://www.w3.org/2000/svg">...</svg>
  contextMenu: false,
  actions: [
    {
      id: "save",
      icon: "M433.1 129.1l-83.9-83.9C342.3 38.32 327.1 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 152.9 441.7 137.7 433.1 129.1zM224 416c-35.34 0-64-28.66-64-64s28.66-64 64-64s64 28.66 64 64S259.3 416 224 416zM320 208C320 216.8 312.8 224 304 224h-224C71.16 224 64 216.8 64 208v-96C64 103.2 71.16 96 80 96h224C312.8 96 320 103.2 320 112V208z",
      label: "Save",
      action: () => {
        alert("DOWNLOAD ANNOTATION !!");
      },
    },
    {
      id: "close",
      icon: "m406.59 361.4c12.5 12.5 12.5 32.75 0 45.25-6.2 6.25-14.4 9.35-22.6 9.35s-16.38-3.125-22.62-9.375l-105.38-105.32-105.37 105.3c-6.25 6.3-14.44 9.4-22.63 9.4s-16.37-3.1-22.625-9.4c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4-105.4-105.35c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l105.38 105.45 105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4z",
      label: "Close",
      action: () => {
        drawingExperience.destroy();
      },
    },
  ],
});

Exporting Foreground SVG

cosnt svg = drawingExperience.drawing.export();
console.log(svg);

Can also be acessed directly from DrawingExperience

cosnt svg = drawingExperience.export();
console.log(svg);

Using Marker Expperience

var markerExperience = drawingExperience.markerExperience;
console.log(markerExperience.export());
console.log(markerExperience.jsonToSVG(markerExperience.export()));

Can also be acessed directly from DrawingExperience

console.log(drawingExperience.export());
console.log(drawingExperience.jsonToSVG(drawingExperience.export()));

export() - Get SVG with updatedAt svgToJSON() - Convert SVG to JSON jsonToSVG() - Convert JSON to SVG

Options

inputSvg - Text SVG as Input. Can be used if you have a foreground svg to display on top of background (Optional)

container - Container to append Drawing (Optional)

sizeMenu - Shows size menu(True/False) (False by default) (Optional)

contextMenu - Shows context menu(True/False) (False by default) (Optional)

toolMenu - Shows tool menu(True/False) (True by default) (Optional)

colorMenu - Shows color menu(True/False) (False by default) (Optional)

undoRedo - Shows undo redo menu(True/False) (False by default) (Optional)

gridMenu - Shows grid menu(True/False) (False by default) (Optional)

commentsMenu - Show comment menu(True/False or Object(with readOnly)) (False by default) (Optional)

commentsMenu: false
// OR
commentsMenu: {
  readOnly: true
}

tools - Add tools to tool menu (Optional)

tools: [
  "path",
  "line",
  "circle",
  "rect",
  "marker",
  "double-arrow"
]
  • Add tool with options
tools: [
  "path",
  {
    type: "text",
    textStyleBold: true,
    textStyleUnderline: true,
    textStyleFontFamily: "monospace",
  },
  {
    name: "circle",
    type: "circle",
    colors: "#00ff00",
    lineStyle: "dashed",
    gridSize: [100, 100, 100, 100],
  },
  {
    name: "circleRed",
    type: "circle",
    colors: "#ff0000",
    size: 10,
  },
  {
    name: "highlighter",
    type: "path",
    colors: "#f1c40f60",
    size: 80,
    iconUrl: `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAY...`,
  },
]
  • Adding stickers
tools: [
  ...,
  "double-arrow",
  {
    "name": "sticker",
    "width": 426,
    "height": 426,
    "scale": 1,
    "dataUrl": `data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iM...`,
  },
  ...
]

edits - Add edit tools to tool menu (Optional)

edits: [
  "marker",
  "double-arrow"
]

colors - Add custom colors to color menu (Optional)

colors: [
  { name: "red", colors: "#e74c3c" },
  { name: "redFilled", colors: ["#e74c3c", "#e74c3c66"] },
  { name: "redOpaque", colors: ["#e74c3c", "#e74c3cff"] },
  { name: "redTransparent", colors: "#e74c3c20" },
  { name: "orange", colors: "#f39c12" },
  { name: "green", colors: "#2ecc71" },
  { name: "greenTransparent", colors: "#2ecc7120" },
  { name: "blue", colors: "#3498db" },
  { name: "blueTransparent", colors: "#3498db20" },
  { name: "purple", colors: "#8e44ad" },
  { name: "pink", colors: "#fc6ffc" },
  { name: "yellow", colors: "#f1c40f" },
  { name: "white", colors: "#ecf0f1" },
  { name: "black", colors: "#2c3e50" },
],

actions - Shows drawing actions (Optional)

actions: [
  {
    id: "save",
    icon: "", // path of icon
    label: "Save",
    action: () => {
      alert("DOWNLOAD ANNOTATION !!");
    },
  },
  {
    id: "download",
    icon: "", // path of icon
    label: "Close",
    action: () => {
      drawingExperience.destroy();
    },
  },
],

resizeElementsOnZoom - Enable resizing of elements when zooming on canvas (This is currently only done for markers) (True/False) (False by default)

promptText - Setup custom parameters and metrics for prompt text menu

promptText: {
  metrics: ["mm", "cm", "m"]
},

Documentation

See static/preview.html for an example usage.

More to come.

2.0.5-alpha3

1 day ago

2.0.5-beta2

1 day ago

2.0.5-alpha2

5 days ago

2.0.5-beta1

5 days ago

2.0.5-alpha1

13 days ago

2.0.4-alpha8

14 days ago

2.0.4-alpha6

21 days ago

2.0.4-alpha7

21 days ago

2.0.4-alpha5

27 days ago

2.0.4-alpha4

29 days ago

2.0.4-alpha2

29 days ago

2.0.4-alpha3

29 days ago

2.0.3-alpha31

1 month ago

2.0.4-alpha1

1 month ago

2.0.3-alpha29

1 month ago

2.0.3-alpha28

1 month ago

2.0.3-alpha30

1 month ago

2.0.3-alpha27

2 months ago

2.0.3-alpha26

2 months ago

2.0.3-alpha25

2 months ago

2.0.3-alpha24

2 months ago

2.0.3-alpha19

2 months ago

2.0.3-alpha18

2 months ago

2.0.3-alpha17

2 months ago

2.0.3-alpha23

2 months ago

2.0.3-alpha22

2 months ago

2.0.3-alpha21

2 months ago

2.0.3-alpha20

2 months ago

2.0.3-alpha16

2 months ago

2.0.3-alpha15

2 months ago

2.0.3-alpha14

2 months ago

2.0.3-alpha13

2 months ago

2.0.3-alpha11

2 months ago

2.0.3-alpha10

2 months ago

2.0.3-alpha9

2 months ago

2.0.3-alpha8

3 months ago

2.0.3-alpha7

3 months ago

2.0.3-alpha6

3 months ago

2.0.3-alpha5

3 months ago

2.0.3-alpha4

3 months ago

2.0.3-alpha3

3 months ago

2.0.3-alpha2

3 months ago

2.0.3-alpha1

3 months ago

2.0.2-alpha13

3 months ago

2.0.2-alpha15

3 months ago

2.0.2-alpha14

3 months ago

2.0.2-alpha12

4 months ago

2.0.2-alpha11

4 months ago

2.0.2-alpha10

4 months ago

2.0.2-alpha9

4 months ago

2.0.2-alpha8

4 months ago

2.0.2-alpha6

4 months ago

2.0.2-alpha7

4 months ago

2.0.2-alpha5

4 months ago

2.0.2-alpha1

5 months ago

2.0.2-alpha2

5 months ago

2.0.2-alpha3

5 months ago

2.0.1-alpha9

5 months ago

2.0.1-alpha8

5 months ago

2.0.1-beta2

5 months ago

2.0.1-beta1

5 months ago

2.0.1-alpha11

5 months ago

2.0.1-alpha12

5 months ago

2.0.1-alpha13

5 months ago

2.0.1-alpha14

5 months ago

2.0.1-alpha15

5 months ago

2.0.1-alpha16

5 months ago

2.0.1-alpha17

5 months ago

2.0.1-alpha10

5 months ago

2.0.1-alpha5

8 months ago

2.0.1-alpha4

8 months ago

2.0.1-alpha7

6 months ago

2.0.1-alpha6

8 months ago

2.0.1-alpha1

8 months ago

2.0.1-alpha3

8 months ago

2.0.1-alpha2

8 months ago

2.0.0-alpha24

11 months ago

2.0.0-alpha23

12 months ago

2.0.0-alpha20

1 year ago

2.0.0-alpha21

1 year ago

2.0.0-alpha22

1 year ago

2.0.0-alpha16

1 year ago

2.0.0-alpha17

1 year ago

2.0.0-alpha18

1 year ago

2.0.0-alpha19

1 year ago

2.0.0-alpha12

1 year ago

2.0.0-alpha13

1 year ago

2.0.0-alpha14

1 year ago

2.0.0-alpha15

1 year ago

2.0.0-alpha10

1 year ago

2.0.0-alpha11

1 year ago

2.0.0-alpha6

1 year ago

2.0.0-alpha5

1 year ago

2.0.0-alpha9

1 year ago

2.0.0-alpha8

1 year ago

2.0.0-alpha7

1 year ago

0.8.0-alpha-9

2 years ago

0.8.0-alpha-8

2 years ago

0.8.0-alpha-5

2 years ago

0.8.0-alpha-4

2 years ago

0.8.0-alpha-7

2 years ago

0.8.0-alpha-6

2 years ago

0.8.0-alpha-1

2 years ago

0.8.0-alpha-3

2 years ago

0.8.0-alpha-2

2 years ago

0.8.0-alpha

2 years ago

0.8.0-alpha-11

2 years ago

0.8.0-alpha-10

2 years ago

0.7.2

2 years ago

0.7.4

2 years ago

0.7.3

2 years ago

0.7.6

2 years ago

0.7.5

2 years ago

0.7.1-1

2 years ago

0.7.1-0

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.5.2-alpha4

2 years ago

0.5.2-alpha7

2 years ago

0.5.2-alpha8

2 years ago

0.5.2-alpha9

2 years ago

0.4.19

2 years ago

0.7.0-3

2 years ago

0.7.0-2

2 years ago

0.7.0-5

2 years ago

0.7.0-4

2 years ago

0.7.0-7

2 years ago

0.7.0-6

2 years ago

0.7.0-9

2 years ago

0.5.2-alpha2

2 years ago

0.7.0-8

2 years ago

0.5.2-alpha3

2 years ago

0.7.0-1

2 years ago

0.7.0-0

2 years ago

0.4.17

2 years ago

0.4.18

2 years ago

0.4.15

2 years ago

0.4.14

2 years ago

0.5.3-0

2 years ago

0.6.1-1

2 years ago

0.6.1-3

2 years ago

0.6.1-2

2 years ago

0.5.3-5

2 years ago

0.5.2-alpha

2 years ago

0.5.3-2

2 years ago

0.5.3-1

2 years ago

0.5.3-4

2 years ago

0.5.3-3

2 years ago

0.6.0

2 years ago

0.4.13-alpha-1

3 years ago

0.4.13-alpha-2

3 years ago

0.4.13-alpha-4

3 years ago

0.4.13-alpha-6

3 years ago

0.4.13-alpha-7

3 years ago

0.4.13-alpha-8

3 years ago

0.4.13-alpha-9

3 years ago

0.4.13

3 years ago

0.4.12

3 years ago

0.4.12-beta-2

3 years ago

0.4.12-alpha-8

3 years ago

0.4.12-alpha-7

3 years ago

0.4.12-alpha-4

3 years ago

0.4.12-alpha-6

3 years ago

0.4.12-alpha-5

3 years ago

0.4.12-alpha-3

3 years ago

0.4.12-alpha-2

3 years ago

0.4.12-alpha

3 years ago

0.4.11

3 years ago

0.4.11-beta

3 years ago

0.4.9

3 years ago

0.4.9-beta4

3 years ago

0.4.9-beta1

3 years ago

0.4.9-beta3

3 years ago

0.4.9-beta2

3 years ago

0.4.10

3 years ago

0.4.8

3 years ago

0.4.7-beta

3 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1-beta

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.4.0-beta-6

3 years ago

0.4.0-beta-4

3 years ago

0.4.0-beta-5

3 years ago

0.4.0-beta-3

3 years ago

0.4.0-beta-2

3 years ago

0.4.0-beta-1

3 years ago

0.3.1-beta-4

3 years ago

0.3.1-beta-3

3 years ago

0.3.1-beta-2

3 years ago

0.3.1-beta-1

3 years ago

0.4.0-alpha-5

3 years ago

0.4.0-alpha-3

3 years ago

0.4.0-alpha-4

3 years ago

0.4.0-alpha-2

3 years ago

0.4.0-alpha-1

4 years ago

0.4.0-alpha-0

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.0-beta-copy9

4 years ago

0.2.0-beta-copy8

4 years ago

0.2.0-beta-copy7

4 years ago

0.2.0-beta-copy6

4 years ago

0.2.0-beta-copy2

4 years ago

0.2.0-beta-copy

4 years ago

0.2.0-beta-copy5

4 years ago

0.2.0-beta-copy4

4 years ago

0.2.0-beta-copy3

4 years ago

0.2.0

4 years ago

0.1.23

4 years ago

0.1.26

4 years ago

0.1.22

4 years ago

0.1.16

4 years ago

0.1.17

4 years ago

0.1.18

4 years ago

0.1.19

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.2

4 years ago

0.1.3

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago