@obliczeniowo/elementary
Version:
Library made in Angular version 20
1 lines • 29.8 kB
Source Map (JSON)
{"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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"}