@drizm/ng-whiteboard
Version:
A Canvas component for Angular which supports free drawing.
30 lines • 4.25 kB
JavaScript
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
export class CanvasWhiteboardService {
constructor() {
this._canvasDrawSubject = new Subject();
this.canvasDrawSubject$ = this._canvasDrawSubject.asObservable();
this._canvasClearSubject = new Subject();
this.canvasClearSubject$ = this._canvasClearSubject.asObservable();
this._canvasUndoSubject = new Subject();
this.canvasUndoSubject$ = this._canvasUndoSubject.asObservable();
this._canvasRedoSubject = new Subject();
this.canvasRedoSubject$ = this._canvasRedoSubject.asObservable();
}
drawCanvas(updates) {
this._canvasDrawSubject.next(updates);
}
clearCanvas() {
this._canvasClearSubject.next();
}
undoCanvas(updateUUD) {
this._canvasUndoSubject.next(updateUUD);
}
redoCanvas(updateUUD) {
this._canvasRedoSubject.next(updateUUD);
}
}
CanvasWhiteboardService.decorators = [
{ type: Injectable }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLXdoaXRlYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdoaXRlYm9hcmQvc3JjL2xpYi9fc2VydmljZXMvY2FudmFzLXdoaXRlYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0MsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVVLHVCQUFrQixHQUFzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlFLHVCQUFrQixHQUF5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFMUYsd0JBQW1CLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUQsd0JBQW1CLEdBQW9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2RSx1QkFBa0IsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN6RCx1QkFBa0IsR0FBb0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJFLHVCQUFrQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pELHVCQUFrQixHQUFvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFpQi9FLENBQUM7SUFmUSxVQUFVLENBQUMsT0FBaUM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxTQUFpQjtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVLENBQUMsU0FBaUI7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7WUE1QkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FudmFzV2hpdGVib2FyZFVwZGF0ZSB9IGZyb20gJy4uL19jbGFzc2VzL2NhbnZhcy13aGl0ZWJvYXJkLXVwZGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhbnZhc1doaXRlYm9hcmRTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9jYW52YXNEcmF3U3ViamVjdDogU3ViamVjdDxDYW52YXNXaGl0ZWJvYXJkVXBkYXRlW10+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjYW52YXNEcmF3U3ViamVjdCQ6IE9ic2VydmFibGU8Q2FudmFzV2hpdGVib2FyZFVwZGF0ZVtdPiA9IHRoaXMuX2NhbnZhc0RyYXdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9jYW52YXNDbGVhclN1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2FudmFzQ2xlYXJTdWJqZWN0JDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fY2FudmFzQ2xlYXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9jYW52YXNVbmRvU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjYW52YXNVbmRvU3ViamVjdCQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX2NhbnZhc1VuZG9TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9jYW52YXNSZWRvU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjYW52YXNSZWRvU3ViamVjdCQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX2NhbnZhc1JlZG9TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwdWJsaWMgZHJhd0NhbnZhcyh1cGRhdGVzOiBDYW52YXNXaGl0ZWJvYXJkVXBkYXRlW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX2NhbnZhc0RyYXdTdWJqZWN0Lm5leHQodXBkYXRlcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJDYW52YXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jYW52YXNDbGVhclN1YmplY3QubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVuZG9DYW52YXModXBkYXRlVVVEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NhbnZhc1VuZG9TdWJqZWN0Lm5leHQodXBkYXRlVVVEKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRvQ2FudmFzKHVwZGF0ZVVVRDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jYW52YXNSZWRvU3ViamVjdC5uZXh0KHVwZGF0ZVVVRCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==