UNPKG

@ng-web-apis/canvas

Version:
42 lines 5.07 kB
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=