{"version":3,"file":"acorex-components-paint.mjs","sources":["../../../../packages/components/paint/src/lib/paint/paint.service.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools-selector/paint-tools-selector.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.ts","../../../../packages/components/paint/src/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.html","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.ts","../../../../packages/components/paint/src/lib/paint/paint-container/paint-container.component.html","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.ts","../../../../packages/components/paint/src/lib/paint/paint-view/paint-view.component.html","../../../../packages/components/paint/src/lib/paint.module.ts","../../../../packages/components/paint/src/acorex-components-paint.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXPaintService {\n  penColor = signal<string | CanvasGradient | CanvasPattern>('rgb(12, 12, 12)');\n  highlightColor = signal<string | CanvasGradient | CanvasPattern>('rgb(255, 210, 48)');\n  penWidth = signal<number>(10);\n  highlightWidth = signal<number>(10);\n  eraserWidth = signal<number>(10);\n  toggleClear = signal(false);\n  activeToolState = signal<'pen' | 'highlight' | 'eraser'>('pen');\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPaintService } from '../paint.service';\n\n@Component({\n  selector: 'ax-paint-tools-selector',\n  templateUrl: './paint-tools-selector.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [AXButtonComponent, AXDecoratorModule, AXTooltipDirective, AsyncPipe, AXTranslatorPipe],\n\n  providers: [{ provide: AXComponent, useExisting: AXPaintToolsSelectorComponent }],\n})\nexport class AXPaintToolsSelectorComponent {\n  protected service = inject(AXPaintService);\n\n  protected pen = signal<string>(null);\n  protected highlight = signal<string>(null);\n  protected eraser = signal<string>(null);\n  protected reset = signal<string>(null);\n\n  protected changeToolHandler(tool: 'pen' | 'highlight' | 'eraser') {\n    if (this.service.activeToolState() === tool) {\n      this.service.activeToolState.set(null);\n      return;\n    }\n\n    this.service.activeToolState.set(tool);\n  }\n\n  protected clear() {\n    this.service.toggleClear.update((prev) => !prev);\n  }\n}\n","<ax-button\n  class=\"ax-sm\"\n  [axTooltip]=\"'@acorex:paint.tools.pen' | translate | async\"\n  axTooltipPlacement=\"top\"\n  (onClick)=\"changeToolHandler('pen')\"\n  look=\"blank\"\n  [selected]=\"this.service.activeToolState() === 'pen' ? true : false\"\n  [color]=\"this.service.activeToolState() === 'pen' ? 'primary' : 'default'\"\n>\n  <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n</ax-button>\n\n<ax-button\n  class=\"ax-sm\"\n  [axTooltip]=\"'@acorex:paint.tools.highlight' | translate | async\"\n  axTooltipPlacement=\"top\"\n  (onClick)=\"changeToolHandler('highlight')\"\n  look=\"blank\"\n  [selected]=\"this.service.activeToolState() === 'highlight' ? true : false\"\n  [color]=\"this.service.activeToolState() === 'highlight' ? 'primary' : 'default'\"\n>\n  <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n</ax-button>\n\n<ax-button\n  class=\"ax-sm\"\n  [axTooltip]=\"'@acorex:paint.tools.eraser' | translate | async\"\n  axTooltipPlacement=\"top\"\n  (onClick)=\"changeToolHandler('eraser')\"\n  look=\"blank\"\n  [selected]=\"this.service.activeToolState() === 'eraser' ? true : false\"\n  [color]=\"this.service.activeToolState() === 'eraser' ? 'primary' : 'default'\"\n>\n  <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n</ax-button>\n\n<ax-button\n  class=\"ax-sm\"\n  [axTooltip]=\"'@acorex:paint.actions.reset' | translate | async\"\n  axTooltipPlacement=\"top\"\n  (onClick)=\"clear()\"\n  look=\"blank\"\n>\n  <i class=\"fa-solid fa-rotate\"></i>\n</ax-button>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n  selector: 'ax-paint-eraser-tool',\n  templateUrl: './paint-eraser-tool.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [FormsModule, AXRangeSliderComponent],\n\n  providers: [{ provide: AXComponent, useExisting: AXPaintEraserToolComponent }],\n})\nexport class AXPaintEraserToolComponent {\n  protected service = inject(AXPaintService);\n\n  protected value = linkedSignal(() => this.service.eraserWidth());\n\n  /** @ignore */\n  protected valueHandler(e: number) {\n    this.service.eraserWidth.set(e);\n  }\n}\n","<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n  selector: 'ax-paint-highlight-tool',\n  templateUrl: './paint-highlight-tool.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n\n  providers: [{ provide: AXComponent, useExisting: AXPaintHighlightToolComponent }],\n})\nexport class AXPaintHighlightToolComponent {\n  protected service = inject(AXPaintService);\n\n  protected value = linkedSignal(() => this.service.highlightWidth());\n\n  protected selectedColor = linkedSignal(() => this.service.highlightColor());\n\n  protected changeColorHandler(e: string) {\n    this.service.highlightColor.set(e);\n    this.selectedColor.set(e);\n  }\n\n  /** @ignore */\n  protected valueHandler(e: number) {\n    this.service.highlightWidth.set(e);\n  }\n}\n","<ax-color-box\n  [showValue]=\"false\"\n  [showIcon]=\"false\"\n  axTooltip=\"Pen Color Picker\"\n  axTooltipPlacement=\"top\"\n  look=\"none\"\n  [ngModel]=\"selectedColor()\"\n  (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXColorBoxComponent } from '@acorex/components/color-box';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\n\nimport { Component, inject, linkedSignal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintService } from '../../paint.service';\n\n/**\n * paint mode.\n * @category Components\n */\n@Component({\n  selector: 'ax-paint-pen-tool',\n  templateUrl: './paint-pen-tool.component.html',\n  encapsulation: ViewEncapsulation.None,\n  imports: [AXColorBoxComponent, FormsModule, AXRangeSliderComponent],\n\n  providers: [{ provide: AXComponent, useExisting: AXPaintPenToolComponent }],\n})\nexport class AXPaintPenToolComponent {\n  protected service = inject(AXPaintService);\n\n  /** @ignore */\n  protected value = linkedSignal(() => this.service.penWidth());\n\n  /** @ignore */\n  protected selectedColor = linkedSignal(() => this.service.penColor());\n\n  protected changeColorHandler(e: string) {\n    this.service.penColor.set(e);\n    this.selectedColor.set(e);\n  }\n\n  /** @ignore */\n  protected valueHandler(e: number) {\n    this.service.penWidth.set(e);\n  }\n}\n","<ax-color-box\n  [showValue]=\"false\"\n  [showIcon]=\"false\"\n  axTooltip=\"Pen Color Picker\"\n  axTooltipPlacement=\"top\"\n  look=\"none\"\n  [ngModel]=\"selectedColor()\"\n  (ngModelChange)=\"changeColorHandler($event)\"\n>\n</ax-color-box>\n\n<ax-range-slider [min]=\"2\" [max]=\"20\" [(ngModel)]=\"value\" (ngModelChange)=\"valueHandler($event)\"></ax-range-slider>\n","import {\n  AXComponent,\n  AXFocusableComponent,\n  AXValuableComponent,\n  MXInputBaseValueComponent,\n  MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXToolBarComponent } from '@acorex/components/toolbar';\nimport { Component, HostBinding, ViewEncapsulation, effect, forwardRef, inject, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXPaintToolsSelectorComponent } from '../paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from '../paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from '../paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from '../paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * paint container.\n * @category Components\n */\n@Component({\n  selector: 'ax-paint-container',\n  templateUrl: './paint-container.component.html',\n  styleUrl: './paint-container.component.css',\n  encapsulation: ViewEncapsulation.None,\n  inputs: ['look', 'disabled'],\n  providers: [\n    AXPaintService,\n    { provide: AXComponent, useExisting: AXPaintContainerComponent },\n    { provide: AXFocusableComponent, useExisting: AXPaintContainerComponent },\n    { provide: AXValuableComponent, useExisting: AXPaintContainerComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXPaintContainerComponent),\n      multi: true,\n    },\n  ],\n\n  imports: [\n    AXToolBarComponent,\n    AXDecoratorModule,\n    AXPaintToolsSelectorComponent,\n    AXPaintPenToolComponent,\n    AXPaintHighlightToolComponent,\n    AXPaintEraserToolComponent,\n  ],\n})\nexport class AXPaintContainerComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n  protected service = inject(AXPaintService);\n\n  readonly editMode = input(false);\n\n  #eff = effect(() => {\n    if (this.editMode()) {\n      this.service.activeToolState.set('pen');\n    }\n  });\n\n  @HostBinding('class')\n  get __hostClass(): string {\n    if (this.disabled) return 'ax-state-disabled';\n    return '';\n  }\n\n  /**\n   * Sets the active drawing tool.\n   *\n   * @param tool - The tool to activate: 'pen', 'highlight', or 'eraser'\n   */\n  setActiveTool(tool: 'pen' | 'highlight' | 'eraser') {\n    this.service.activeToolState.set(tool);\n  }\n\n  /**\n   * Sets the pen color for drawing.\n   *\n   * @param color - The color to use for the pen tool\n   */\n  setPenColor(color: string | CanvasGradient | CanvasPattern) {\n    this.service.penColor.set(color);\n  }\n\n  /**\n   * Sets the highlight color for highlighting.\n   *\n   * @param color - The color to use for the highlight tool\n   */\n  setHighlightColor(color: string | CanvasGradient | CanvasPattern) {\n    this.service.highlightColor.set(color);\n  }\n\n  /**\n   * Sets the pen width for drawing.\n   *\n   * @param width - The width of the pen stroke in pixels\n   */\n  setPenWidth(width: number) {\n    this.service.penWidth.set(width);\n  }\n\n  /**\n   * Sets the highlight width for highlighting.\n   *\n   * @param width - The width of the highlight stroke in pixels\n   */\n  setHighlightWidth(width: number) {\n    this.service.highlightWidth.set(width);\n  }\n\n  /**\n   * Sets the eraser width for erasing.\n   *\n   * @param width - The width of the eraser in pixels\n   */\n  setEraserWidth(width: number) {\n    this.service.eraserWidth.set(width);\n  }\n\n  /**\n   * Clears the entire canvas.\n   */\n  clear() {\n    this.service.toggleClear.update((prev) => !prev);\n  }\n\n  @HostBinding('attr.name')\n  private get __hostName(): string {\n    return this.name;\n  }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n  <ng-content></ng-content>\n\n  @if (service.activeToolState() && !editMode()) {\n    <div class=\"ax-secondary-toolbar\">\n      @switch (service.activeToolState()) {\n        @case ('pen') {\n          <ax-paint-pen-tool></ax-paint-pen-tool>\n        }\n        @case ('eraser') {\n          <ax-paint-eraser-tool></ax-paint-eraser-tool>\n        }\n        @case ('highlight') {\n          <ax-paint-highlight-tool></ax-paint-highlight-tool>\n        }\n      }\n    </div>\n  }\n\n  @if (!editMode()) {\n    <ax-toolbar class=\"ax-main-toolbar\">\n      <ax-content>\n        <ax-paint-tools-selector></ax-paint-tools-selector>\n      </ax-content>\n    </ax-toolbar>\n  }\n\n  <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n\n@if (disabled) {\n  <div class=\"ax-disable-overlay\"></div>\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  afterNextRender,\n  Component,\n  effect,\n  ElementRef,\n  HostBinding,\n  inject,\n  input,\n  OnDestroy,\n  PLATFORM_ID,\n  Renderer2,\n  signal,\n  viewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXPaintContainerComponent } from '../paint-container/paint-container.component';\nimport { AXPaintService } from '../paint.service';\n\n/**\n * @category Components\n * paint view\n */\n@Component({\n  selector: 'ax-paint-view',\n  templateUrl: './paint-view.component.html',\n  styleUrl: './paint-view.component.css',\n  encapsulation: ViewEncapsulation.None,\n\n  providers: [{ provide: AXComponent, useExisting: AXPaintViewComponent }],\n})\nexport class AXPaintViewComponent implements OnDestroy {\n  /** @ignore */\n  private parent = inject(AXPaintContainerComponent);\n\n  /** @ignore */\n  protected service = inject(AXPaintService);\n\n  /** @ignore */\n  protected renderer = inject(Renderer2);\n\n  private platformID = inject(PLATFORM_ID);\n\n  protected hostElem = inject(ElementRef);\n\n  /** @ignore */\n  private resizeEvent: () => void;\n\n  readonly paintBackgroundColor = input<'black' | 'white'>('white');\n\n  /** @ignore */\n  protected canvasElem = viewChild<ElementRef<HTMLCanvasElement>>('c');\n\n  /** @ignore */\n  protected ctx = signal<CanvasRenderingContext2D>(null);\n\n  /** @ignore */\n  protected isPainting = signal(false);\n\n  /** @ignore */\n  protected isUserInteract = signal(false);\n\n  #init = afterNextRender(() => {\n    this.ctx.set(this.canvasElem().nativeElement.getContext('2d'));\n    this.ctx().lineJoin = 'round';\n    this.ctx().lineCap = 'round';\n\n    setTimeout(() => {\n      this.resizeEventHandler();\n    });\n\n    if (isPlatformBrowser(this.platformID)) {\n      this.resizeEvent = this.renderer.listen(window, 'resize', this.resizeEventHandler.bind(this));\n    }\n  });\n\n  #effect = effect(() => {\n    this.isUserInteract.set(false);\n    this.service.toggleClear();\n    this.ctx()?.clearRect(0, 0, this.getBoundingCanvasHandler()?.width, this.getBoundingCanvasHandler()?.height);\n  });\n\n  /** @ignore */\n  ngOnDestroy(): void {\n    if (isPlatformBrowser(this.platformID) && this.resizeEvent) {\n      this.resizeEvent();\n    }\n  }\n\n  /** @ignore */\n  protected resizeEventHandler() {\n    this.ctx().canvas.width = this.getBoundingCanvasHandler()?.width;\n    this.ctx().canvas.height = this.getBoundingCanvasHandler()?.height;\n  }\n\n  /** @ignore */\n  protected penConfigHandler(penType: 'eraser' | 'pen' | 'highlight') {\n    switch (penType) {\n      case 'pen':\n        this.ctx().globalAlpha = 1;\n        this.ctx().globalCompositeOperation = 'source-over';\n        this.ctx().strokeStyle = this.service.penColor();\n        this.ctx().lineWidth = this.service.penWidth();\n        break;\n      case 'eraser':\n        this.ctx().globalAlpha = 1;\n        this.ctx().globalCompositeOperation = 'destination-out';\n        this.ctx().lineWidth = this.service.eraserWidth();\n        break;\n      case 'highlight':\n        this.ctx().globalAlpha = 0.008;\n        this.ctx().globalCompositeOperation = 'source-over';\n        this.ctx().strokeStyle = this.service.highlightColor();\n        this.ctx().lineWidth = this.service.highlightWidth();\n        break;\n    }\n  }\n\n  /** @ignore */\n  protected getBoundingCanvasHandler() {\n    return this.hostElem.nativeElement.getBoundingClientRect();\n  }\n\n  /** @ignore */\n  protected mouseDownHandler(e: MouseEvent) {\n    if (!this.service.activeToolState()) return;\n\n    this.isPainting.set(true);\n    this.isUserInteract.set(true);\n\n    this.penConfigHandler(this.service.activeToolState());\n\n    this.ctx().beginPath();\n    this.ctx().moveTo(e.offsetX, e.offsetY);\n    this.ctx().lineTo(e.offsetX, e.offsetY);\n    this.ctx().stroke();\n  }\n\n  /** @ignore */\n  protected mouseMoveHandler(e: MouseEvent) {\n    if (this.isPainting()) {\n      this.ctx().lineTo(e.offsetX, e.offsetY);\n      this.ctx().stroke();\n    }\n  }\n\n  /** @ignore */\n  protected mouseUpHandler() {\n    this.ctx().closePath();\n    this.isPainting.set(false);\n    this.getOutPut('image/png');\n  }\n\n  /**\n   * Loads an image onto the canvas (e.g. for editing an existing signature).\n   *\n   * @param dataUrl - Data URL of the image (e.g. from toDataURL or existing value)\n   */\n  loadImage(dataUrl: string): void {\n    const ctx = this.ctx();\n    const canvas = this.canvasElem()?.nativeElement;\n    if (!ctx || !canvas || !dataUrl) return;\n    const img = new Image();\n    img.crossOrigin = 'anonymous';\n    img.onload = () => {\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n      ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n      this.isUserInteract.set(true);\n      this.parent.commitValue(canvas.toDataURL('image/png'));\n    };\n    img.src = dataUrl;\n  }\n\n  /**\n   * Exports the canvas content as an image.\n   *\n   * @param format - The image format: 'image/webp', 'image/png', or 'image/jpeg'\n   */\n  getOutPut(e: 'image/webp' | 'image/png' | 'image/jpeg') {\n    const base64 = this.canvasElem().nativeElement.toDataURL(e, 0.1);\n    if (this.isUserInteract()) {\n      this.parent.commitValue(base64);\n    } else {\n      this.parent.commitValue(null);\n    }\n  }\n\n  @HostBinding('class')\n  get __hostClass(): string[] {\n    return [`ax-${this.paintBackgroundColor()}`];\n  }\n}\n","<canvas\n  #c\n  tabindex=\"1\"\n  (pointerdown)=\"mouseDownHandler($event)\"\n  (pointerup)=\"mouseUpHandler()\"\n  (pointermove)=\"mouseMoveHandler($event)\"\n  class=\"ax-canvas-element\"\n>\n</canvas>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPaintContainerComponent } from './paint/paint-container/paint-container.component';\nimport { AXPaintToolsSelectorComponent } from './paint/paint-tools-selector/paint-tools-selector.component';\nimport { AXPaintEraserToolComponent } from './paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component';\nimport { AXPaintHighlightToolComponent } from './paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component';\nimport { AXPaintPenToolComponent } from './paint/paint-tools/paint-pen-tool/paint-pen-tool.component';\nimport { AXPaintViewComponent } from './paint/paint-view/paint-view.component';\n\nconst COMPONENT = [\n  AXPaintContainerComponent,\n  AXPaintViewComponent,\n  AXPaintToolsSelectorComponent,\n  AXPaintPenToolComponent,\n  AXPaintHighlightToolComponent,\n  AXPaintEraserToolComponent,\n];\n\nconst MODULES = [\n  FormsModule,\n  AXRangeSliderModule,\n  AXSelectBoxModule,\n  AXButtonModule,\n  AXColorBoxModule,\n  AXPopoverModule,\n  AXDecoratorModule,\n  AXTooltipModule,\n];\n\n@NgModule({\n  imports: [...MODULES, ...COMPONENT],\n  exports: [...COMPONENT],\n  providers: [],\n})\nexport class AXPaintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}