UNPKG

@ng-web-apis/canvas

Version:
46 lines 5.11 kB
import { ContentChildren, Directive, inject, Input, QueryList } from '@angular/core'; import { WaDrawService } from '../services/draw.service'; import { CANVAS_METHOD } from '../tokens/canvas-method'; import * as i0 from "@angular/core"; class WaCanvasPath { pathSteps = new QueryList(); method = inject(WaDrawService); closed = false; fillRule; constructor() { this.method.call = (context) => { context.beginPath(); this.pathSteps.forEach((step) => { step.call(context); }); if (this.closed) { context.closePath(); } context.stroke(); context.fill(this.fillRule); }; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaCanvasPath, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WaCanvasPath, isStandalone: true, selector: "canvas-path:not([path])", inputs: { closed: "closed", fillRule: "fillRule" }, providers: [WaDrawService], queries: [{ propertyName: "pathSteps", predicate: CANVAS_METHOD }], ngImport: i0 }); } export { WaCanvasPath }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaCanvasPath, decorators: [{ type: Directive, args: [{ standalone: true, selector: 'canvas-path:not([path])', providers: [WaDrawService], }] }], ctorParameters: function () { return []; }, propDecorators: { pathSteps: [{ type: ContentChildren, args: [CANVAS_METHOD] }], closed: [{ type: Input }], fillRule: [{ type: Input }] } }); /** * @deprecated: use {@link WaCanvasPath} */ export const PathDirective = WaCanvasPath; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY2FudmFzL3NyYy9tZXRob2RzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbkYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFdEQsTUFLYSxZQUFZO0lBRUosU0FBUyxHQUFHLElBQUksU0FBUyxFQUFnQixDQUFDO0lBRTFDLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFHekMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUdmLFFBQVEsQ0FBa0I7SUFFakM7UUFDSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN2QjtZQUVELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUM7SUFDTixDQUFDO3dHQTNCUSxZQUFZOzRGQUFaLFlBQVksMEhBRlYsQ0FBQyxhQUFhLENBQUMsb0RBR1QsYUFBYTs7U0FEckIsWUFBWTs0RkFBWixZQUFZO2tCQUx4QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzdCOzBFQUdvQixTQUFTO3NCQUR6QixlQUFlO3VCQUFDLGFBQWE7Z0JBTXZCLE1BQU07c0JBRFosS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7O0FBcUJWOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHtDYW52YXNNZXRob2R9IGZyb20gJy4uL2ludGVyZmFjZXMvY2FudmFzLW1ldGhvZCc7XG5pbXBvcnQge1dhRHJhd1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2RyYXcuc2VydmljZSc7XG5pbXBvcnQge0NBTlZBU19NRVRIT0R9IGZyb20gJy4uL3Rva2Vucy9jYW52YXMtbWV0aG9kJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2NhbnZhcy1wYXRoOm5vdChbcGF0aF0pJyxcbiAgICBwcm92aWRlcnM6IFtXYURyYXdTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgV2FDYW52YXNQYXRoIHtcbiAgICBAQ29udGVudENoaWxkcmVuKENBTlZBU19NRVRIT0QpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoU3RlcHMgPSBuZXcgUXVlcnlMaXN0PENhbnZhc01ldGhvZD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0aG9kID0gaW5qZWN0KFdhRHJhd1NlcnZpY2UpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxsUnVsZT86IENhbnZhc0ZpbGxSdWxlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubWV0aG9kLmNhbGwgPSAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcblxuICAgICAgICAgICAgdGhpcy5wYXRoU3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0ZXAuY2FsbChjb250ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xuICAgICAgICAgICAgY29udGV4dC5maWxsKHRoaXMuZmlsbFJ1bGUpO1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogdXNlIHtAbGluayBXYUNhbnZhc1BhdGh9XG4gKi9cbmV4cG9ydCBjb25zdCBQYXRoRGlyZWN0aXZlID0gV2FDYW52YXNQYXRoO1xuIl19