All Projects → mostafazke → ng-whiteboard

mostafazke / ng-whiteboard

Licence: MIT license
angular whiteboard component

Programming Languages

HTML
75241 projects
typescript
32286 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ng-whiteboard

mirotalk
🚀 WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms.
Stars: ✭ 1,593 (+5589.29%)
Mutual labels:  whiteboard
tableaunoir
An online blackboard 🖉 with fridge magnets 🌈🧲 for teaching, and making animations 🏃 and presentations ⎚.
Stars: ✭ 149 (+432.14%)
Mutual labels:  whiteboard
vindigo
📝 A brand new kanban inspired planning tool for all your projects. 💻
Stars: ✭ 52 (+85.71%)
Mutual labels:  whiteboard
Hiring Without Whiteboards
⭐️ Companies that don't have a broken hiring process
Stars: ✭ 25,494 (+90950%)
Mutual labels:  whiteboard
Excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
Stars: ✭ 25,509 (+91003.57%)
Mutual labels:  whiteboard
js-data-structures-and-algorithms
JavaScript implementations of common data structure and algorithm concepts.
Stars: ✭ 31 (+10.71%)
Mutual labels:  whiteboard
SyncPaint
A web app for synchronized group drawing. Draw together with other people in real time.
Stars: ✭ 42 (+50%)
Mutual labels:  whiteboard
rainbow-board
22nd Century Whiteboard App for Linux, Windows and Mac.
Stars: ✭ 57 (+103.57%)
Mutual labels:  whiteboard
Nibriboard
🖼 An infinite whiteboard for those big ideas. Currently unstable and in alpha.
Stars: ✭ 15 (-46.43%)
Mutual labels:  whiteboard
core
Renderer for tldraw and maybe you, too.
Stars: ✭ 418 (+1392.86%)
Mutual labels:  whiteboard
meeting
https://github.com/GrowthEase/NetEase_Meeting
Stars: ✭ 38 (+35.71%)
Mutual labels:  whiteboard
qboard
The efficient digital whiteboard.
Stars: ✭ 74 (+164.29%)
Mutual labels:  whiteboard
flat
Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.
Stars: ✭ 4,251 (+15082.14%)
Mutual labels:  whiteboard
WisdomEducation
智慧云课堂是网易云信提供的在线互动课堂场景解决方案,基于在线教育场景提供多种课堂模式实践。专为线上课堂场景打造,覆盖多种班型的教学场景、全终端的接入能力,支持课程录制、白板互动、课程活跃度分析等远程课堂功能。在实现云课堂实时互动功能的基础上,还支持业务功能的灵活扩展,帮助您快速上线专属互动教学平台。
Stars: ✭ 23 (-17.86%)
Mutual labels:  whiteboard
room.cafe
An extremely simple video meeting, integrated whiteboard, chat and screen sharing
Stars: ✭ 34 (+21.43%)
Mutual labels:  whiteboard

ng-whiteboard

Lightweight angular whiteboard

Build Status npm version License: MIT Downloads

Demo

https://mostafazke.github.io/ng-whiteboard

Features

  • Supports touch.
  • Highly Customizable.
  • Lightweight.
  • Easy to use.
  • Custom colors.
  • Custom background colors.
  • (Brush | Image | Line | Rect | Ellipse | Text | Eraser) Tools.
  • Custom stroke size.
  • Save drawn as (svg | png | jpeg | base64) images.
  • Undo - Redo.

And more to come...

Installation

  1. Install ng-whiteboard via:

    yarn add ng-whiteboard --save

    or

    npm install ng-whiteboard --save
  2. Add the module to your project

    import { NgWhiteboardModule } from 'ng-whiteboard';
    ...
    
    @NgModule({
        imports: [
            ...
            NgWhiteboardModule
        ]
        ...
    )}
  3. Insert the Whiteboard Component element in the html.

    <ng-whiteboard></ng-whiteboard>

Options

Input Type Default Description
[data] [WhiteboardElement] [] The whiteboard data
[options] WhiteboardOptions null component configuration object, properties described below
[drawingEnabled] boolean true Enable mouse/touch interactions
[selectedTool] ToolsEnum ToolsEnum.BRUSH The current selected tool
[canvasWidth] number 800 The width of whiteboard canvas
[canvasHeight] number 600 The height of whiteboard canvas
[fullScreen] boolean true if true change (canvasWidth, canvasHeight) to fit the parentainer
[strokeColor] string #000000 The default stroke color
[backgroundColor] string #FFFFFF The default background color
[fill] string #333333 The default fill color
[strokeWidth] number 2 The default stroke width
[zoom] number 1 Zoom level
[fontFamily] string sans-serif The default font family
[fontSize] number 24 The default font size
[center] boolean true Center the canvas in parent component, works with fullScreen: false
[x] number 0 if center is false, set the X axis
[y] number 0 if center is false, set the Y axis
[enableGrid] boolean false Enable the grid pattern
[gridSize] number 10 Set the grid inner boxes size
[snapToGrid] boolean false Enable snaping to grid
[lineJoin] LineJoinEnum .ROUND LineJoinEnum The default Line join
[lineCap] LineCapEnum .ROUND LineCapEnum The default Line cap
[dasharray] string '' The default dash-array
[dashoffset] number 0 The default dash-offset

Outputs

Name Description Arguments
(ready) Emitted when the component is ready None
(dataChange) Emitted when the data is changed WhiteboardElement[]
(clear) Emitted when the canvas is cleared None
(undo) Emitted when the user undo an action None
(redo) Emitted when the user redo an action None
(imageAdded) Emitted when the user add an image to the canvas None
(save) Emitted when the user save the canvas base64 image
(selectElement) Emitted when the user select/deselect an element WhiteboardElement / null
(deleteElement) Emitted when the user delete an element WhiteboardElement
(toolChanged) Emitted when the user change the tool ToolsEnum

Methods

Name Description Arguments Defaults
save Save the current board [format]: string, [name]: string [format]: 'base64', [name]: 'New board'
addImage Add images to the board image: (string; ArrayBuffer) None
erase Clean the whiteboard None None
undo Undo last action None None
redo Redo last action None None

to use these Methods inject NgWhiteboardService in your project

import { NgWhiteboardService, FormatType } from 'ng-whiteboard';
...

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
   styleUrls: ['./app.component.scss']
   ...
)}

  constructor(private whiteboardService: NgWhiteboardService) {
   this.whiteboardService.save(FormatType.Base64);
  }

Contributing

The project is open for contributors! Please file an issue or make a PR:)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].