{"version":3,"file":"obliczeniowo-elementary-color-picker.mjs","sources":["../../../../projects/components/color-picker/components/color-component/color.component.ts","../../../../projects/components/color-picker/components/color-component/color.component.html","../../../../projects/components/color-picker/components/color-picker-control/color-picker-control.component.ts","../../../../projects/components/color-picker/components/color-picker-control/color-picker-control.component.html","../../../../projects/components/color-picker/color-picker.module.ts","../../../../projects/components/color-picker/obliczeniowo-elementary-color-picker.ts"],"sourcesContent":["import { ElementaryMath } from '@obliczeniowo/elementary/math';\nimport { Component, OnInit, ElementRef, AfterViewInit, Input, EventEmitter, Output, input } from '@angular/core';\nimport { ColorRGB } from '@obliczeniowo/elementary/classes';\n\nexport interface ColorTranslations {\n  red: string;\n  green: string;\n  blue: string;\n  alpha: string;\n}\n\n@Component({\n    selector: 'obl-color',\n    templateUrl: './color.component.html',\n    styleUrls: ['./color.component.scss'],\n    standalone: false\n})\nexport class ColorComponent implements OnInit, AfterViewInit {\n  colorsCanvas!: HTMLCanvasElement;\n  colorBlue!: HTMLCanvasElement;\n  colorAlpha!: HTMLCanvasElement;\n\n  colorsCtx!: CanvasRenderingContext2D;\n  colorBlueCtx!: CanvasRenderingContext2D;\n  colorAlphaCtx!: CanvasRenderingContext2D;\n\n  colorsBitmap!: ImageData;\n\n  @Input()\n  chosenColor: ColorRGB = new ColorRGB(255, 150, 0, 255);\n\n  inputBorder = input<'outlined' | 'underlined' | 'none'>('outlined');\n\n  @Output() changed: EventEmitter<ColorRGB> = new EventEmitter<ColorRGB>();\n\n  transparentImage!: HTMLImageElement;\n\n  pointer!: HTMLDivElement;\n\n  @Input() translations: ColorTranslations = {\n    red: 'Red',\n    green: 'Green',\n    blue: 'Blue',\n    alpha: 'Alpha'\n  };\n\n  constructor(private readonly elementRef: ElementRef<HTMLElement>) { }\n\n  ngOnInit(): void { }\n\n  ngAfterViewInit(): void {\n    this.colorsCanvas = this.elementRef.nativeElement.querySelector(\n      '#colors'\n    ) as HTMLCanvasElement;\n    this.colorsCanvas.setAttribute('width', '255px');\n    this.colorsCanvas.setAttribute('height', '255px');\n\n    this.colorBlue = this.elementRef.nativeElement.querySelector(\n      '#blue_color_gradient'\n    ) as HTMLCanvasElement;\n    this.colorBlue.setAttribute('width', '28px');\n    this.colorBlue.setAttribute('height', '255px');\n\n    this.colorAlpha = this.elementRef.nativeElement.querySelector(\n      '#alpha_color_gradient'\n    ) as HTMLCanvasElement;\n    this.colorAlpha.setAttribute('width', '28px');\n    this.colorAlpha.setAttribute('height', '255px');\n\n    this.transparentImage = this.elementRef.nativeElement.querySelector(\n      '.transparent-image'\n    ) as HTMLImageElement;\n\n    this.transparentImage.onload = () => {\n      this.redrawAll();\n    };\n    setTimeout(() => {\n      this.pointer = this.elementRef.nativeElement.querySelector(\n        '#map-colors-pointer'\n      ) as HTMLDivElement;\n\n      this.colorsCtx = this.colorsCanvas.getContext(\n        '2d'\n      ) as CanvasRenderingContext2D;\n      this.colorBlueCtx = this.colorBlue.getContext(\n        '2d'\n      ) as CanvasRenderingContext2D;\n      this.colorAlphaCtx = this.colorAlpha.getContext(\n        '2d'\n      ) as CanvasRenderingContext2D;\n\n      this.colorsBitmap = this.colorsCtx.getImageData(0, 0, 255, 255);\n\n      this.redrawAll();\n    });\n  }\n\n  valueChanged(event: any, value: string, emit: boolean = true): void {\n    if (event.target.value !== ElementaryMath.minmax(event.target.value, 0, 255)) {\n      event.target.value = ElementaryMath.minmax(event.target.value, 0, 255);\n    }\n    (this.chosenColor as any)[value] = event.target.value;\n    this.redrawAll();\n    if (emit) {\n      this.changed.emit(this.chosenColor);\n    }\n  }\n\n  redrawAll(): void {\n    if (this.colorsCtx && this.colorBlueCtx && this.colorAlphaCtx) {\n      this.redrawBlueGradientMap();\n      this.redrawColorsMap();\n      this.refreshAlphaGradient();\n    }\n  }\n\n  redrawColorsMap(): void {\n    const b = this.chosenColor.blue;\n    for (let x = 0; x < 255; x++) {\n      for (let y = 0; y < 255; y++) {\n        this.colorsBitmap.data[x * 4 + 255 * 4 * y] = x;\n        this.colorsBitmap.data[x * 4 + 1 + 255 * 4 * y] = y;\n        this.colorsBitmap.data[x * 4 + 2 + 255 * 4 * y] = b;\n        this.colorsBitmap.data[x * 4 + 3 + 255 * 4 * y] = 255;\n      }\n    }\n\n    this.colorsCtx.putImageData(this.colorsBitmap, 0, 0);\n  }\n\n  redrawBlueGradientMap(): void {\n    const grd: CanvasGradient = this.colorBlueCtx.createLinearGradient(\n      0,\n      0,\n      0,\n      this.colorBlue.height\n    );\n\n    grd.addColorStop(\n      0,\n      `rgb(${this.chosenColor.red}, ${this.chosenColor.green}, 255)`\n    );\n    grd.addColorStop(\n      1,\n      `rgb(${this.chosenColor.red}, ${this.chosenColor.green}, 0)`\n    );\n\n    this.colorBlueCtx.fillStyle = grd;\n    this.colorBlueCtx.fillRect(\n      0,\n      0,\n      this.colorBlue.width,\n      this.colorBlue.height\n    );\n\n    this.colorBlueCtx.beginPath();\n\n    this.colorBlueCtx.strokeStyle =\n      this.chosenColor.red + this.chosenColor.green + this.chosenColor.blue <\n        450\n        ? '#ffffff'\n        : '#000000';\n    this.colorBlueCtx.moveTo(0, 255 - this.chosenColor.blue);\n    this.colorBlueCtx.lineTo(\n      this.colorBlue.width,\n      255 - this.chosenColor.blue\n    );\n\n    this.colorBlueCtx.stroke();\n  }\n\n  refreshAlphaGradient(): void {\n    if (this.transparentImage.width) {\n      this.colorAlphaCtx.drawImage(\n        this.transparentImage,\n        0,\n        0,\n        this.colorAlpha.width,\n        this.colorAlpha.height\n      );\n    }\n\n    const grd = this.colorAlphaCtx.createLinearGradient(\n      0,\n      0,\n      0,\n      this.colorAlpha.height\n    );\n\n    grd.addColorStop(\n      0,\n      'rgba(' +\n      this.chosenColor.red +\n      ', ' +\n      this.chosenColor.green +\n      ', ' +\n      this.chosenColor.blue +\n      ', 1)'\n    );\n    grd.addColorStop(\n      1,\n      'rgba(' +\n      this.chosenColor.red +\n      ', ' +\n      this.chosenColor.green +\n      ', ' +\n      this.chosenColor.blue +\n      ', 0)'\n    );\n\n    this.colorAlphaCtx.fillStyle = grd;\n    this.colorAlphaCtx.fillRect(\n      0,\n      0,\n      this.colorAlpha.height,\n      this.colorAlpha.height\n    );\n\n    this.colorAlphaCtx.beginPath();\n    this.colorAlphaCtx.fillStyle = '#ffffff';\n    this.colorAlphaCtx.fillRect(\n      0,\n      255 - this.chosenColor.alpha - 2,\n      this.colorAlpha.width,\n      4\n    );\n\n    this.colorAlphaCtx.beginPath();\n    this.colorAlphaCtx.strokeStyle = 'black';\n    this.colorAlphaCtx.moveTo(0, 255 - this.chosenColor.alpha);\n    this.colorAlphaCtx.lineTo(\n      this.colorAlpha.width,\n      255 - this.chosenColor.alpha\n    );\n    this.colorAlphaCtx.stroke();\n  }\n\n  // events:\n\n  colorsMapClicked(event: any): void {\n    const rect: DOMRect = event.target.getBoundingClientRect();\n    event.stopPropagation();\n    this.chosenColor.green = event.clientY - rect.top;\n    this.chosenColor.red = event.clientX - rect.left;\n    this.redrawAll();\n    this.changed.emit(this.chosenColor);\n  }\n\n  blueMapClicked(event: any): void {\n    const rect: DOMRect = event.target.getBoundingClientRect();\n    event.stopPropagation();\n    this.chosenColor.blue = 255 - event.clientY + rect.top;\n    this.redrawAll();\n    this.changed.emit(this.chosenColor);\n  }\n\n  alphaMapClicked(event: any): void {\n    const rect: DOMRect = event.target.getBoundingClientRect();\n    event.stopPropagation();\n    this.chosenColor.alpha = 255 - event.clientY + rect.top;\n    this.redrawAll();\n    this.changed.emit(this.chosenColor);\n  }\n\n  input(event: any, field: string): void {\n    event.target.value = ElementaryMath.minmax(event.target.value.replace(/[^0-9.]/g, '').replace(/(\\..*?)\\..*/g, '$1'), 0, 255);\n    this.valueChanged(event, field, false);\n  }\n}\n","<div class=\"color-component\" (click)=\"$event.stopPropagation()\">\n  <div class=\"color-area\">\n    <img\n      class=\"transparent-image\"\n      src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAD+CAYAAAApgWUdAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QEeCwMx6szXgwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAyklEQVR42u3VsQ2AMAxFQYPYyNN6qMwUBgCMoEAUlxahK36it1TVjIszxojuZGb7/ez/NT4+QODjs3VX/821v/vfhkDg8R12b02egEA9tCFQD/UQCNRDGwL1UA+BQD20IVAP9RAI1EMbAvVQD4FAPbQhUA/1EAjUQxsC9VAPgUA9tCFQD/UQCNRDGwL1UA+BQD20IVAP9RAI1EMbAvVQD4FAPbQhUA/1EAjUQxsC9VAPgUA9tCFQD/UQCNRDGwK9Qz0EAvXQhsD/gTvlBcRrM7n5twAAAABJRU5ErkJggg==\"\n      (load)=\"redrawAll()\"\n    />\n\n    <div class=\"color-map-frame\">\n      <div class=\"color-canvas-area\">\n        <canvas\n          id=\"colors\"\n          #colorsC\n          (click)=\"colorsMapClicked($event)\"\n        ></canvas>\n        <div\n          class=\"map-colors-pointer map-background\"\n          [style.left.px]=\"chosenColor.red - 6\"\n          [style.top.px]=\"chosenColor.green - 6\"\n        ></div>\n        <div\n          class=\"map-colors-pointer\"\n          [style.left.px]=\"chosenColor.red - 5\"\n          [style.top.px]=\"chosenColor.green - 5\"\n        ></div>\n      </div>\n    </div>\n\n    <div class=\"gradient-frame\" (click)=\"blueMapClicked($event)\">\n      <canvas id=\"blue_color_gradient\"></canvas>\n    </div>\n\n    <div class=\"gradient-frame\" (click)=\"alphaMapClicked($event)\">\n      <canvas id=\"alpha_color_gradient\"></canvas>\n    </div>\n\n    <div class=\"controls\">\n      <obl-input-wrapper [label]=\"translations.red\" [display]=\"inputBorder()\">\n        <input\n          oblInput\n          type=\"number\"\n          name=\"red\"\n          [(ngModel)]=\"chosenColor.red\"\n          min=\"0\"\n          max=\"255\"\n          (change)=\"valueChanged($event, 'red')\"\n          (input)=\"input($event, 'red')\"\n        />\n      </obl-input-wrapper>\n\n      <obl-input-wrapper [label]=\"translations.green\" [display]=\"inputBorder()\">\n        <input\n          oblInput\n          type=\"number\"\n          name=\"green\"\n          [(ngModel)]=\"chosenColor.green\"\n          min=\"0\"\n          max=\"255\"\n          (change)=\"valueChanged($event, 'green')\"\n          (input)=\"input($event, 'green')\"\n        />\n      </obl-input-wrapper>\n\n      <obl-input-wrapper [label]=\"translations.blue\" [display]=\"inputBorder()\">\n        <input\n          oblInput\n          type=\"number\"\n          name=\"blue\"\n          min=\"0\"\n          max=\"255\"\n          [(ngModel)]=\"chosenColor.blue\"\n          (change)=\"valueChanged($event, 'blue')\"\n          (input)=\"input($event, 'blue')\"\n        />\n      </obl-input-wrapper>\n\n      <obl-input-wrapper [label]=\"translations.alpha\" [display]=\"inputBorder()\">\n        <input\n          oblInput\n          type=\"number\"\n          name=\"transparent\"\n          max=\"255\"\n          min=\"0\"\n          [(ngModel)]=\"chosenColor.alpha\"\n          (change)=\"valueChanged($event, 'alpha')\"\n          (input)=\"input($event, 'alpha')\"\n        />\n      </obl-input-wrapper>\n    </div>\n  </div>\n\n  <ng-content></ng-content>\n</div>\n","import { ColorComponent, ColorTranslations } from './../color-component/color.component';\nimport {\n  Component,\n  ViewChild,\n  ElementRef,\n  Input,\n  EventEmitter,\n  Output,\n  input\n} from '@angular/core';\nimport { ColorRGB } from '@obliczeniowo/elementary/classes';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface ColorPickerTranslations extends ColorTranslations {\n  set: string;\n  cancel: string;\n}\n\nexport type PickerColor = ColorRGB | { r: string | number; g: string | number; b: string | number; a: string | number };\n\n@Component({\n    selector: 'obl-color-picker-control',\n    templateUrl: './color-picker-control.component.html',\n    styleUrls: ['./color-picker-control.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            multi: true,\n            useExisting: ColorPickerControlComponent\n        },\n    ],\n    standalone: false\n})\nexport class ColorPickerControlComponent implements ControlValueAccessor {\n  private pChosenColor: ColorRGB = new ColorRGB(0, 0, 0, 255);\n\n  isOpen = false;\n\n  translations = input<ColorPickerTranslations>({\n    set: 'Ustaw',\n    cancel: 'Anuluj',\n    red: 'Czerwony',\n    green: 'Zielony',\n    blue: 'Niebieski',\n    alpha: 'Przezroczystość'\n  });\n\n  @Input() set chosenColor(chosenColor: PickerColor) {\n    if (!(chosenColor instanceof ColorRGB)) {\n      chosenColor = new ColorRGB(chosenColor.r, chosenColor.g, chosenColor.b, chosenColor.a);\n    }\n\n    this.pChosenColor = chosenColor;\n    if (this.colorComponent) {\n      this.colorComponent.chosenColor = this.pChosenColor;\n      this.colorComponent.redrawAll();\n    }\n  }\n\n  inputBorder = input<'outlined' | 'underlined' | 'none'>('outlined');\n\n  @ViewChild('buttonPos', { static: false })\n\n  buttonPos!: ElementRef<HTMLElement>;\n\n  @ViewChild('colorComponent', { static: false }) colorComponent!: ColorComponent;\n\n  @Output() changed: EventEmitter<ColorRGB> = new EventEmitter<ColorRGB>();\n\n  onChange = (value: ColorRGB | undefined) => {\n  };\n\n  onTouched = () => { };\n\n  registerOnValidatorChange(fn: () => void): void { this.onChange = fn; }\n\n  writeValue(set?: ColorRGB): void {\n    this.chosenColor = set || new ColorRGB(0, 0, 0, 255);\n  }\n\n  registerOnChange(onChange: any): void {\n    this.onChange = onChange;\n  }\n\n  registerOnTouched(onTouched: any): void {\n    this.onTouched = onTouched;\n  }\n\n  save(): void {\n    if (this.colorComponent) {\n      this.writeValue(this.colorComponent.chosenColor.copy());\n      this.onChange(this.colorComponent.chosenColor.copy());\n      this.changed.emit(this.pChosenColor);\n    }\n    this.isOpen = !this.isOpen;\n  }\n\n  toggle(): void {\n    this.isOpen = !this.isOpen;\n    setTimeout(() => {\n      if (this.colorComponent) {\n        this.colorComponent.chosenColor = this.pChosenColor.copy();\n        this.colorComponent.redrawAll();\n      }\n    }, 0);\n  }\n\n  color(): string {\n    return this.pChosenColor.getRGBAColor();\n  }\n}\n","<div>\n  <button\n    oblButton\n    class=\"color-button\"\n    (click)=\"toggle()\"\n    cdkOverlayOrigin\n    #trigger=\"cdkOverlayOrigin\"\n  >\n    <div class=\"color-key\" [style.backgroundColor]=\"color()\"></div>\n  </button>\n</div>\n\n<ng-template\n  #picker\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"trigger\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  (overlayOutsideClick)=\"toggle()\"\n>\n  <obl-color [translations]=\"translations()\" [inputBorder]=\"inputBorder()\" #colorComponent>\n    <div class=\"controls\">\n      <button oblButton (click)=\"save()\">{{ translations().set }}</button>\n      <button oblButton (click)=\"toggle()\">{{ translations().cancel }}</button>\n    </div>\n  </obl-color>\n</ng-template>\n","import { ButtonsModule } from '@obliczeniowo/elementary/buttons';\nimport { InputModule } from '@obliczeniowo/elementary/input';\nimport { ColorPickerControlComponent } from './components/color-picker-control/color-picker-control.component';\nimport { ColorComponent } from './components/color-component/color.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n  declarations: [\n    ColorComponent,\n    ColorPickerControlComponent,\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    InputModule,\n    ButtonsModule\n  ],\n  exports: [\n    ColorComponent,\n    ColorPickerControlComponent\n  ],\n})\nexport class ColorPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.ColorComponent"],"mappings":"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"}