UNPKG

@ng-web-apis/canvas

Version:
1 lines 54.4 kB
{"version":3,"file":"ng-web-apis-canvas.mjs","sources":["../../../libs/canvas/src/tokens/canvas-2d-context.ts","../../../libs/canvas/src/tokens/canvas-properties.ts","../../../libs/canvas/src/services/draw.service.ts","../../../libs/canvas/src/contexts/canvas-2d.ts","../../../libs/canvas/src/tokens/canvas-method.ts","../../../libs/canvas/src/methods/clip-path.ts","../../../libs/canvas/src/methods/draw-image.ts","../../../libs/canvas/src/methods/path.ts","../../../libs/canvas/src/methods/path-2d.ts","../../../libs/canvas/src/methods/text.ts","../../../libs/canvas/src/path/arc.ts","../../../libs/canvas/src/path/arc-to.ts","../../../libs/canvas/src/path/bezier-curve-to.ts","../../../libs/canvas/src/path/ellipse.ts","../../../libs/canvas/src/path/line-to.ts","../../../libs/canvas/src/path/move-to.ts","../../../libs/canvas/src/path/quadratic-curve-to.ts","../../../libs/canvas/src/path/rect.ts","../../../libs/canvas/src/pipes/gradient.pipe.ts","../../../libs/canvas/src/pipes/path.pipe.ts","../../../libs/canvas/src/pipes/pattern.pipe.ts","../../../libs/canvas/src/pipes/rad.pipe.ts","../../../libs/canvas/src/pipes/transform.pipe.ts","../../../libs/canvas/src/properties/clip.ts","../../../libs/canvas/src/properties/compositing.ts","../../../libs/canvas/src/properties/fill-stroke-styles.ts","../../../libs/canvas/src/properties/filter.ts","../../../libs/canvas/src/properties/image-smoothing.ts","../../../libs/canvas/src/properties/path-drawing-styles.ts","../../../libs/canvas/src/properties/shadow-styles.ts","../../../libs/canvas/src/properties/text-drawing-styles.ts","../../../libs/canvas/src/properties/transform.ts","../../../libs/canvas/src/canvas.ts","../../../libs/canvas/src/ng-web-apis-canvas.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const WA_CANVAS_2D_CONTEXT = new InjectionToken<CanvasRenderingContext2D>(\n ngDevMode ? '[WA_CANVAS_2D_CONTEXT]' : '',\n);\n","import {type ExistingProvider, InjectionToken, type Type} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\n\nexport const WA_CANVAS_PROPERTIES = new InjectionToken<CanvasMethod[]>(\n ngDevMode ? '[WA_CANVAS_PROPERTIES]' : '',\n {factory: () => []},\n);\n\nexport function asCanvasProperty(useExisting: Type<CanvasMethod>): ExistingProvider {\n return {provide: WA_CANVAS_PROPERTIES, multi: true, useExisting};\n}\n","import {inject, Injectable, NgZone, type OnDestroy} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {type Subscription} from 'rxjs';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {WA_CANVAS_2D_CONTEXT} from '../tokens/canvas-2d-context';\nimport {WA_CANVAS_PROPERTIES} from '../tokens/canvas-properties';\nimport {type Context2dProcessor} from '../types/context-processor';\n\n@Injectable()\nexport class WaDrawService implements OnDestroy, CanvasMethod {\n private readonly subscription: Subscription;\n\n constructor() {\n const parent = inject(WA_CANVAS_PROPERTIES, {skipSelf: true});\n const properties = inject(WA_CANVAS_PROPERTIES);\n const context = inject(WA_CANVAS_2D_CONTEXT);\n const animationFrame$ = inject(WA_ANIMATION_FRAME);\n const ngZone = inject(NgZone);\n\n this.subscription = ngZone.runOutsideAngular(() =>\n animationFrame$.subscribe(() => {\n context.save();\n parent.forEach((property) => property.call(context));\n properties.forEach((property) => property.call(context));\n this.call(context);\n context.restore();\n }),\n );\n }\n\n public call: Context2dProcessor = (): void => {};\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {isPlatformServer} from '@angular/common';\nimport {Directive, ElementRef, inject, PLATFORM_ID} from '@angular/core';\n\nimport {WaDrawService} from '../services/draw.service';\nimport {WA_CANVAS_2D_CONTEXT} from '../tokens/canvas-2d-context';\n\n@Directive({\n selector: 'canvas[waCanvas2d]',\n inputs: ['waOpaque', 'waDesynchronized'],\n providers: [\n {\n provide: WA_CANVAS_2D_CONTEXT,\n useFactory: (): CanvasRenderingContext2D => {\n if (isPlatformServer(inject(PLATFORM_ID))) {\n return {} as unknown as CanvasRenderingContext2D;\n }\n\n const {nativeElement} = inject(ElementRef);\n const opaque = nativeElement.getAttribute('waOpaque');\n const desynchronized = nativeElement.getAttribute('waDesynchronized');\n\n const context = nativeElement.getContext('2d', {\n alpha: opaque === null,\n desynchronized: desynchronized !== null,\n });\n\n if (!context) {\n throw new Error('Context of different type was already requested');\n }\n\n return context;\n },\n },\n WaDrawService,\n ],\n})\nexport class WaCanvas2d {\n private readonly context = inject(WA_CANVAS_2D_CONTEXT);\n private readonly method = inject(WaDrawService);\n public waOpaque = '' as const;\n public waDesynchronized = '' as const;\n\n constructor() {\n this.context.strokeStyle = 'transparent';\n\n this.method.call = (context) => {\n context.clearRect(0, 0, context.canvas.width, context.canvas.height);\n };\n }\n}\n","import {type ExistingProvider, InjectionToken, type Type} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\n\nexport const WA_CANVAS_METHOD = new InjectionToken<CanvasMethod>(\n ngDevMode ? '[WA_CANVAS_METHOD]' : '',\n);\n\nexport function asCanvasMethod(useExisting: Type<CanvasMethod>): ExistingProvider {\n return {provide: WA_CANVAS_METHOD, useExisting};\n}\n","import {ChangeDetectionStrategy, Component, contentChildren} from '@angular/core';\n\nimport {WA_CANVAS_METHOD} from '../tokens/canvas-method';\n\n@Component({\n selector: 'canvas-clip-path',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WaCanvasClipPath {\n public readonly pathSteps = contentChildren(WA_CANVAS_METHOD);\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaDrawService} from '../services/draw.service';\n\n@Directive({\n selector: 'canvas-draw-image',\n inputs: ['image', 'dX', 'dY', 'dWidth', 'dHeight', 'sX', 'sY', 'sWidth', 'sHeight'],\n providers: [WaDrawService],\n})\nexport class WaCanvasDrawImage {\n private readonly method = inject(WaDrawService);\n public image?: CanvasImageSource;\n public dX = 0;\n public dY = 0;\n public dWidth?: number;\n public dHeight?: number;\n public sX?: number;\n public sY?: number;\n public sWidth?: number;\n public sHeight?: number;\n\n constructor() {\n this.method.call = (context) => {\n if (!this.image) {\n return;\n }\n\n if (\n this.sWidth !== undefined &&\n this.sHeight !== undefined &&\n this.sX !== undefined &&\n this.sY !== undefined &&\n this.dWidth !== undefined &&\n this.dHeight !== undefined\n ) {\n context.drawImage(\n this.image,\n this.sX,\n this.sY,\n this.sWidth,\n this.sHeight,\n this.dX,\n this.dY,\n this.dWidth,\n this.dHeight,\n );\n } else if (this.dWidth !== undefined && this.dHeight !== undefined) {\n context.drawImage(\n this.image,\n this.dX,\n this.dY,\n this.dWidth,\n this.dHeight,\n );\n } else {\n context.drawImage(this.image, this.dX, this.dY);\n }\n };\n }\n}\n","import {contentChildren, Directive, inject} from '@angular/core';\n\nimport {WaDrawService} from '../services/draw.service';\nimport {WA_CANVAS_METHOD} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-path:not([path])',\n inputs: ['closed', 'fillRule'],\n providers: [WaDrawService],\n})\nexport class WaCanvasPath {\n private readonly pathSteps = contentChildren(WA_CANVAS_METHOD);\n private readonly method = inject(WaDrawService);\n public closed = false;\n public fillRule?: CanvasFillRule;\n\n constructor() {\n this.method.call = (context) => {\n context.beginPath();\n\n this.pathSteps().forEach((step) => {\n step.call(context);\n });\n\n if (this.closed) {\n context.closePath();\n }\n\n context.stroke();\n context.fill(this.fillRule);\n };\n }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaDrawService} from '../services/draw.service';\n\n@Directive({\n selector: 'canvas-path[path]',\n inputs: ['path', 'fillRule'],\n providers: [WaDrawService],\n})\nexport class WaCanvasPath2d {\n private readonly method = inject(WaDrawService);\n public path = new Path2D();\n public fillRule?: CanvasFillRule;\n\n constructor() {\n this.method.call = (context) => {\n context.fill(this.path, this.fillRule);\n context.stroke(this.path);\n };\n }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaDrawService} from '../services/draw.service';\n\n@Directive({\n selector: 'canvas-text',\n inputs: ['text', 'x', 'y', 'maxWidth'],\n providers: [WaDrawService],\n})\nexport class WaCanvasText {\n private readonly method = inject(WaDrawService);\n public text = '';\n public x = 0;\n public y = 0;\n public maxWidth?: number;\n\n constructor() {\n this.method.call = (context) => {\n context.fillText(this.text, this.x, this.y, this.maxWidth);\n context.strokeText(this.text, this.x, this.y, this.maxWidth);\n };\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-arc',\n inputs: ['x', 'y', 'radius', 'startAngle', 'endAngle', 'anticlockwise'],\n providers: [asCanvasMethod(WaCanvasArc)],\n})\nexport class WaCanvasArc implements CanvasMethod {\n public x = 0;\n public y = 0;\n public radius = 0;\n public startAngle = 0;\n public endAngle = 0;\n public anticlockwise = false;\n\n public call(context: CanvasRenderingContext2D): void {\n context.arc(\n this.x,\n this.y,\n this.radius,\n this.startAngle,\n this.endAngle,\n this.anticlockwise,\n );\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-arc-to',\n inputs: ['x1', 'y1', 'x2', 'y2', 'radius'],\n providers: [asCanvasMethod(WaCanvasArcTo)],\n})\nexport class WaCanvasArcTo implements CanvasMethod {\n public x1 = 0;\n public y1 = 0;\n public x2 = 0;\n public y2 = 0;\n public radius = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.arcTo(this.x1, this.y1, this.x2, this.y2, this.radius);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-bezier-curve-to',\n inputs: ['cp1x', 'cp1y', 'cp2x', 'cp2y', 'x', 'y'],\n providers: [asCanvasMethod(WaCanvasBezierCurveTo)],\n})\nexport class WaCanvasBezierCurveTo implements CanvasMethod {\n public cp1x = 0;\n public cp1y = 0;\n public cp2x = 0;\n public cp2y = 0;\n public x = 0;\n public y = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.bezierCurveTo(this.cp1x, this.cp1y, this.cp2x, this.cp2y, this.x, this.y);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-ellipse',\n inputs: ['x', 'y', 'radiusX', 'radiusY', 'startAngle', 'endAngle', 'anticlockwise'],\n providers: [asCanvasMethod(WaCanvasEllipse)],\n})\nexport class WaCanvasEllipse implements CanvasMethod {\n public x = 0;\n public y = 0;\n public radiusX = 0;\n public radiusY = 0;\n public rotation = 0;\n public startAngle = 0;\n public endAngle = 0;\n public anticlockwise = false;\n\n public call(context: CanvasRenderingContext2D): void {\n context.ellipse(\n this.x,\n this.y,\n this.radiusX,\n this.radiusY,\n this.rotation,\n this.startAngle,\n this.endAngle,\n this.anticlockwise,\n );\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-line-to',\n inputs: ['x', 'y'],\n providers: [asCanvasMethod(WaCanvasLineTo)],\n})\nexport class WaCanvasLineTo implements CanvasMethod {\n public x = 0;\n public y = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.lineTo(this.x, this.y);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-move-to',\n inputs: ['x', 'y'],\n providers: [asCanvasMethod(WaCanvasMoveTo)],\n})\nexport class WaCanvasMoveTo implements CanvasMethod {\n public x = 0;\n public y = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.moveTo(this.x, this.y);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-quadratic-curve-to',\n inputs: ['x', 'y', 'cpx', 'cpy'],\n providers: [asCanvasMethod(WaCanvasQuadraticCurveTo)],\n})\nexport class WaCanvasQuadraticCurveTo implements CanvasMethod {\n public cpx = 0;\n public cpy = 0;\n public x = 0;\n public y = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.quadraticCurveTo(this.cpx, this.cpy, this.x, this.y);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasMethod} from '../tokens/canvas-method';\n\n@Directive({\n selector: 'canvas-rect',\n inputs: ['x', 'y', 'width', 'height'],\n providers: [asCanvasMethod(WaCanvasRect)],\n})\nexport class WaCanvasRect implements CanvasMethod {\n public x = 0;\n public y = 0;\n public width = 0;\n public height = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.rect(this.x, this.y, this.width, this.height);\n }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\n\nimport {WA_CANVAS_2D_CONTEXT} from '../tokens/canvas-2d-context';\n\n@Pipe({name: 'gradient'})\nexport class WaCanvasGradientPipe implements PipeTransform {\n private readonly context = inject(WA_CANVAS_2D_CONTEXT);\n\n public transform(\n stops: Map<number, string>,\n x0: number,\n y0: number,\n x1: number,\n y1: number,\n ): CanvasGradient;\n public transform(\n stops: Map<number, string>,\n x0: number,\n y0: number,\n r0: number,\n x1: number,\n y1: number,\n r1: number,\n ): CanvasGradient;\n // eslint-disable-next-line max-params,@typescript-eslint/max-params\n public transform(\n stops: Map<number, string>,\n a1: number,\n a2: number,\n a3: number,\n a4: number,\n a5?: number,\n a6?: number,\n ): CanvasGradient {\n const gradient =\n a5 !== undefined && a6 !== undefined\n ? this.context.createRadialGradient(a1, a2, a3, a4, a5, a6)\n : this.context.createLinearGradient(a1, a2, a3, a4);\n\n Array.from(stops.keys()).forEach((stop) =>\n gradient.addColorStop(stop, stops.get(stop) ?? ''),\n );\n\n return gradient;\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({name: 'path'})\nexport class WaCanvasPathPipe implements PipeTransform {\n public transform(path: string): Path2D {\n return new Path2D(path);\n }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\n\nimport {WA_CANVAS_2D_CONTEXT} from '../tokens/canvas-2d-context';\n\n@Pipe({name: 'pattern'})\nexport class WaCanvasPatternPipe implements PipeTransform {\n private readonly context = inject(WA_CANVAS_2D_CONTEXT);\n\n public transform(image: CanvasImageSource, repetition = 'repeat'): CanvasPattern {\n return this.context.createPattern(image, repetition)!;\n }\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\n@Pipe({name: 'rad'})\nexport class WaCanvasRadPipe implements PipeTransform {\n public transform(input: number): number {\n return (input * Math.PI) / 180;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, Pipe, type PipeTransform, PLATFORM_ID} from '@angular/core';\n\n@Pipe({name: 'transform'})\nexport class WaCanvasTransformPipe implements PipeTransform {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n public transform(value: string): DOMMatrix | null {\n return this.isBrowser ? new DOMMatrix(value) : null;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {WaCanvasClipPath} from '../methods/clip-path';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-draw-image[clip],canvas-draw-image[clipFillRule],canvas-path[clip],canvas-path[clipFillRule],canvas-text[clip],canvas-text[clipFillRule]',\n inputs: ['clip', 'clipFillRule'],\n providers: [asCanvasProperty(WaCanvasClip)],\n})\nexport class WaCanvasClip implements CanvasMethod {\n public clip: Path2D | WaCanvasClipPath = new Path2D();\n public clipFillRule?: CanvasFillRule;\n\n public call(context: CanvasRenderingContext2D): void {\n if (this.clip instanceof WaCanvasClipPath) {\n context.beginPath();\n\n this.clip.pathSteps().forEach((step) => {\n step.call(context);\n });\n\n context.clip(this.clipFillRule);\n } else {\n context.clip(this.clip, this.clipFillRule);\n }\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-draw-image[globalAlpha],canvas-draw-image[globalCompositeOperation],canvas-path[globalAlpha],canvas-path[globalCompositeOperation],canvas-text[globalAlpha],canvas-text[globalCompositeOperation]',\n inputs: ['globalAlpha', 'globalCompositeOperation'],\n providers: [asCanvasProperty(WaCanvasCompositing)],\n})\nexport class WaCanvasCompositing implements CanvasMethod, CanvasCompositing {\n public globalAlpha = 1;\n public globalCompositeOperation: GlobalCompositeOperation = 'source-over';\n\n public call(context: CanvasRenderingContext2D): void {\n context.globalAlpha = this.globalAlpha;\n context.globalCompositeOperation = this.globalCompositeOperation;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-path[fillStyle],canvas-path[strokeStyle],canvas-text[fillStyle],canvas-text[strokeStyle]',\n inputs: ['fillStyle', 'strokeStyle'],\n providers: [asCanvasProperty(WaCanvasFillStrokeStyles)],\n})\nexport class WaCanvasFillStrokeStyles implements CanvasMethod {\n public fillStyle: CanvasGradient | CanvasPattern | string = 'black';\n public strokeStyle: CanvasGradient | CanvasPattern | string = 'transparent';\n\n public call(context: CanvasRenderingContext2D): void {\n context.fillStyle = this.fillStyle;\n context.strokeStyle = this.strokeStyle;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector: 'canvas-draw-image[filter],canvas-path[filter],canvas-text[filter]',\n inputs: ['filter'],\n providers: [asCanvasProperty(WaCanvasFilter)],\n})\nexport class WaCanvasFilter implements CanvasMethod, CanvasFilters {\n public filter = 'none';\n\n public call(context: CanvasRenderingContext2D): void {\n context.filter = this.filter;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-draw-image[imageSmoothingEnabled],canvas-draw-image[imageSmoothingQuality],canvas-path[imageSmoothingEnabled],canvas-path[imageSmoothingQuality],canvas-text[imageSmoothingEnabled],canvas-text[imageSmoothingQuality]',\n inputs: ['imageSmoothingEnabled', 'imageSmoothingQuality'],\n providers: [asCanvasProperty(WaCanvasImageSmoothing)],\n})\nexport class WaCanvasImageSmoothing implements CanvasMethod, CanvasImageSmoothing {\n public imageSmoothingEnabled = true;\n public imageSmoothingQuality: ImageSmoothingQuality = 'low';\n\n public call(context: CanvasRenderingContext2D): void {\n context.imageSmoothingEnabled = this.imageSmoothingEnabled;\n context.imageSmoothingQuality = this.imageSmoothingQuality;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-path[lineCap],canvas-path[lineDashOffset],canvas-path[lineJoin],canvas-path[lineWidth],canvas-path[lineDash],canvas-path[miterLimit],canvas-text[lineCap],canvas-text[lineDashOffset],canvas-text[lineJoin],canvas-text[lineWidth],canvas-text[lineDash],canvas-text[miterLimit]',\n inputs: [\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'lineDash',\n 'miterLimit',\n ],\n providers: [asCanvasProperty(WaCanvasPathDrawingStyles)],\n})\nexport class WaCanvasPathDrawingStyles\n implements CanvasMethod, Omit<CanvasPathDrawingStyles, 'getLineDash' | 'setLineDash'>\n{\n public lineCap: CanvasLineCap = 'butt';\n public lineDashOffset = 0;\n public lineJoin: CanvasLineJoin = 'miter';\n public lineWidth = 1;\n public lineDash: number[] = [];\n public miterLimit = 10;\n\n public call(context: CanvasRenderingContext2D): void {\n context.lineCap = this.lineCap;\n context.lineDashOffset = this.lineDashOffset;\n context.lineJoin = this.lineJoin;\n context.lineWidth = this.lineWidth;\n context.miterLimit = this.miterLimit;\n context.setLineDash(this.lineDash);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-draw-image[shadowBlur],canvas-draw-image[shadowColor],canvas-draw-image[shadowOffsetX],canvas-draw-image[shadowOffsetY],canvas-path[shadowBlur],canvas-path[shadowColor],canvas-path[shadowOffsetX],canvas-path[shadowOffsetY],canvas-text[shadowBlur],canvas-text[shadowColor],canvas-text[shadowOffsetX],canvas-text[shadowOffsetY]',\n inputs: ['shadowBlur', 'shadowColor', 'shadowOffsetX', 'shadowOffsetY'],\n providers: [asCanvasProperty(WaCanvasShadowStyles)],\n})\nexport class WaCanvasShadowStyles implements CanvasShadowStyles {\n public shadowBlur = 0;\n public shadowColor = 'transparent';\n public shadowOffsetX = 0;\n public shadowOffsetY = 0;\n\n public call(context: CanvasRenderingContext2D): void {\n context.shadowBlur = this.shadowBlur;\n context.shadowColor = this.shadowColor;\n context.shadowOffsetX = this.shadowOffsetX;\n context.shadowOffsetY = this.shadowOffsetY;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas-text[direction],canvas-text[font],canvas-text[textAlign],canvas-text[textBaseline]',\n inputs: ['direction', 'font', 'textAlign', 'fontKerning', 'textBaseline'],\n providers: [asCanvasProperty(WaCanvasTextDrawingStyles)],\n})\nexport class WaCanvasTextDrawingStyles implements CanvasMethod, CanvasTextDrawingStyles {\n public direction: CanvasDirection = 'inherit';\n public font = '10px sans-serif';\n public textAlign: CanvasTextAlign = 'start';\n public fontKerning: CanvasFontKerning = 'auto';\n public textBaseline: CanvasTextBaseline = 'alphabetic';\n declare public fontStretch: CanvasFontStretch;\n declare public fontVariantCaps: CanvasFontVariantCaps;\n declare public letterSpacing: string;\n declare public textRendering: CanvasTextRendering;\n declare public wordSpacing: string;\n\n public call(context: CanvasRenderingContext2D): void {\n context.direction = this.direction;\n context.font = this.font;\n context.textAlign = this.textAlign;\n context.textBaseline = this.textBaseline;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {Directive, inject, PLATFORM_ID} from '@angular/core';\n\nimport {type CanvasMethod} from '../interfaces/canvas-method';\nimport {asCanvasProperty} from '../tokens/canvas-properties';\n\n@Directive({\n selector:\n 'canvas[transform],canvas-draw-image[transform],canvas-path[transform],canvas-text[transform]',\n inputs: ['transform'],\n providers: [asCanvasProperty(WaCanvasTransform)],\n})\nexport class WaCanvasTransform implements CanvasMethod {\n private readonly parent = inject(WaCanvasTransform, {\n skipSelf: true,\n optional: true,\n });\n\n public transform = isPlatformBrowser(inject(PLATFORM_ID)) ? new DOMMatrix() : null;\n\n public call(context: CanvasRenderingContext2D): void {\n if (this.transform) {\n context.setTransform(\n this.parent?.transform?.multiply(this.transform) || this.transform,\n );\n }\n }\n}\n","import {WaCanvas2d} from './contexts/canvas-2d';\nimport {WaCanvasClipPath} from './methods/clip-path';\nimport {WaCanvasDrawImage} from './methods/draw-image';\nimport {WaCanvasPath} from './methods/path';\nimport {WaCanvasPath2d} from './methods/path-2d';\nimport {WaCanvasText} from './methods/text';\nimport {WaCanvasArc} from './path/arc';\nimport {WaCanvasArcTo} from './path/arc-to';\nimport {WaCanvasBezierCurveTo} from './path/bezier-curve-to';\nimport {WaCanvasEllipse} from './path/ellipse';\nimport {WaCanvasLineTo} from './path/line-to';\nimport {WaCanvasMoveTo} from './path/move-to';\nimport {WaCanvasQuadraticCurveTo} from './path/quadratic-curve-to';\nimport {WaCanvasRect} from './path/rect';\nimport {WaCanvasGradientPipe} from './pipes/gradient.pipe';\nimport {WaCanvasPathPipe} from './pipes/path.pipe';\nimport {WaCanvasPatternPipe} from './pipes/pattern.pipe';\nimport {WaCanvasRadPipe} from './pipes/rad.pipe';\nimport {WaCanvasTransformPipe} from './pipes/transform.pipe';\nimport {WaCanvasClip} from './properties/clip';\nimport {WaCanvasCompositing} from './properties/compositing';\nimport {WaCanvasFillStrokeStyles} from './properties/fill-stroke-styles';\nimport {WaCanvasFilter} from './properties/filter';\nimport {WaCanvasImageSmoothing} from './properties/image-smoothing';\nimport {WaCanvasPathDrawingStyles} from './properties/path-drawing-styles';\nimport {WaCanvasShadowStyles} from './properties/shadow-styles';\nimport {WaCanvasTextDrawingStyles} from './properties/text-drawing-styles';\nimport {WaCanvasTransform} from './properties/transform';\n\nexport const WaCanvas = [\n WaCanvas2d,\n WaCanvasClipPath,\n WaCanvasDrawImage,\n WaCanvasPath,\n WaCanvasPath2d,\n WaCanvasText,\n WaCanvasArc,\n WaCanvasArcTo,\n WaCanvasBezierCurveTo,\n WaCanvasEllipse,\n WaCanvasLineTo,\n WaCanvasMoveTo,\n WaCanvasQuadraticCurveTo,\n WaCanvasRect,\n WaCanvasClip,\n WaCanvasCompositing,\n WaCanvasFillStrokeStyles,\n WaCanvasFilter,\n WaCanvasImageSmoothing,\n WaCanvasPathDrawingStyles,\n WaCanvasShadowStyles,\n WaCanvasTextDrawingStyles,\n WaCanvasGradientPipe,\n WaCanvasPathPipe,\n WaCanvasPatternPipe,\n WaCanvasRadPipe,\n WaCanvasTransform,\n WaCanvasTransformPipe,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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