@ng-web-apis/canvas
Version:
A library for declarative use of Canvas API with Angular
42 lines • 5.07 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { WaCanvasClipPath } from '../methods/clip-path';
import { asCanvasProperty } from '../tokens/canvas-properties';
import * as i0 from "@angular/core";
class WaCanvasClip {
clip = new Path2D();
clipFillRule;
call(context) {
if (this.clip instanceof WaCanvasClipPath) {
context.beginPath();
this.clip.pathSteps.forEach((step) => {
step.call(context);
});
context.clip(this.clipFillRule);
}
else {
context.clip(this.clip, this.clipFillRule);
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaCanvasClip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WaCanvasClip, isStandalone: true, selector: "canvas-draw-image[clip],canvas-draw-image[clipFillRule],canvas-path[clip],canvas-path[clipFillRule],canvas-text[clip],canvas-text[clipFillRule]", inputs: { clip: "clip", clipFillRule: "clipFillRule" }, providers: [asCanvasProperty(WaCanvasClip)], ngImport: i0 });
}
export { WaCanvasClip };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaCanvasClip, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: 'canvas-draw-image[clip],canvas-draw-image[clipFillRule],' +
'canvas-path[clip],canvas-path[clipFillRule],' +
'canvas-text[clip],canvas-text[clipFillRule]',
providers: [asCanvasProperty(WaCanvasClip)],
}]
}], propDecorators: { clip: [{
type: Input
}], clipFillRule: [{
type: Input
}] } });
/**
* @deprecated: use {@link WaCanvasClip}
*/
export const ClipDirective = WaCanvasClip;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY2FudmFzL3NyYy9wcm9wZXJ0aWVzL2NsaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBRTdELE1BUWEsWUFBWTtJQUVkLElBQUksR0FBOEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUcvQyxZQUFZLENBQWtCO0lBRTlCLElBQUksQ0FBQyxPQUFpQztRQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksZ0JBQWdCLEVBQUU7WUFDdkMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUM7SUFDTCxDQUFDO3dHQW5CUSxZQUFZOzRGQUFaLFlBQVksc1BBRlYsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzs7U0FFbEMsWUFBWTs0RkFBWixZQUFZO2tCQVJ4QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQ0osMERBQTBEO3dCQUMxRCw4Q0FBOEM7d0JBQzlDLDZDQUE2QztvQkFDakQsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLGNBQWMsQ0FBQztpQkFDOUM7OEJBR1UsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7O0FBa0JWOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHtDYW52YXNNZXRob2R9IGZyb20gJy4uL2ludGVyZmFjZXMvY2FudmFzLW1ldGhvZCc7XG5pbXBvcnQge1dhQ2FudmFzQ2xpcFBhdGh9IGZyb20gJy4uL21ldGhvZHMvY2xpcC1wYXRoJztcbmltcG9ydCB7YXNDYW52YXNQcm9wZXJ0eX0gZnJvbSAnLi4vdG9rZW5zL2NhbnZhcy1wcm9wZXJ0aWVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ2NhbnZhcy1kcmF3LWltYWdlW2NsaXBdLGNhbnZhcy1kcmF3LWltYWdlW2NsaXBGaWxsUnVsZV0sJyArXG4gICAgICAgICdjYW52YXMtcGF0aFtjbGlwXSxjYW52YXMtcGF0aFtjbGlwRmlsbFJ1bGVdLCcgK1xuICAgICAgICAnY2FudmFzLXRleHRbY2xpcF0sY2FudmFzLXRleHRbY2xpcEZpbGxSdWxlXScsXG4gICAgcHJvdmlkZXJzOiBbYXNDYW52YXNQcm9wZXJ0eShXYUNhbnZhc0NsaXApXSxcbn0pXG5leHBvcnQgY2xhc3MgV2FDYW52YXNDbGlwIGltcGxlbWVudHMgQ2FudmFzTWV0aG9kIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjbGlwOiBQYXRoMkQgfCBXYUNhbnZhc0NsaXBQYXRoID0gbmV3IFBhdGgyRCgpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xpcEZpbGxSdWxlPzogQ2FudmFzRmlsbFJ1bGU7XG5cbiAgICBwdWJsaWMgY2FsbChjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xpcCBpbnN0YW5jZW9mIFdhQ2FudmFzQ2xpcFBhdGgpIHtcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG5cbiAgICAgICAgICAgIHRoaXMuY2xpcC5wYXRoU3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0ZXAuY2FsbChjb250ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb250ZXh0LmNsaXAodGhpcy5jbGlwRmlsbFJ1bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGV4dC5jbGlwKHRoaXMuY2xpcCwgdGhpcy5jbGlwRmlsbFJ1bGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkOiB1c2Uge0BsaW5rIFdhQ2FudmFzQ2xpcH1cbiAqL1xuZXhwb3J0IGNvbnN0IENsaXBEaXJlY3RpdmUgPSBXYUNhbnZhc0NsaXA7XG4iXX0=