{"version":3,"file":"ngx-mat-color-picker.mjs","sources":["../../../projects/ngx-mat-color-picker/src/lib/ngx-mat-color-picker.component.ts","../../../projects/ngx-mat-color-picker/src/lib/ngx-mat-color-picker.component.html","../../../projects/ngx-mat-color-picker/src/lib/ngx-mat-color-picker.module.ts","../../../projects/ngx-mat-color-picker/src/public-api.ts","../../../projects/ngx-mat-color-picker/src/ngx-mat-color-picker.ts"],"sourcesContent":["import {\r\n  Component,\r\n  HostListener,\r\n  Input,\r\n  OnInit,\r\n  OnDestroy,\r\n  forwardRef,\r\n} from '@angular/core';\r\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\r\nimport {\r\n  ControlValueAccessor,\r\n  FormGroup,\r\n  NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'ngx-mat-color-picker',\r\n  templateUrl: './ngx-mat-color-picker.component.html',\r\n  styleUrls: ['./ngx-mat-color-picker.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NgxMatColorPickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NgxMatColorPickerComponent\r\n  implements OnInit, OnDestroy, ControlValueAccessor\r\n{\r\n  private formSubscription: Subscription | undefined;\r\n\r\n  @Input() appearance: MatFormFieldAppearance;\r\n  @Input() color: string;\r\n  @Input() label: string;\r\n  @Input() placeholder: string;\r\n  @Input() formControlName: string;\r\n  @Input() form: FormGroup;\r\n\r\n  positionPairs: ConnectionPositionPair[] = [\r\n    {\r\n      originX: 'start',\r\n      originY: 'bottom',\r\n      overlayX: 'start',\r\n      overlayY: 'bottom',\r\n      offsetX: -210,\r\n      offsetY: 0,\r\n    },\r\n  ];\r\n\r\n  chosenColor = '#FFFFFF';\r\n  pickerVisible = false;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.formSubscription = this.form\r\n      .get(this.formControlName)\r\n      ?.valueChanges.subscribe((value: string) => {\r\n        if (this.validColor(value)) {\r\n          this.chosenColor = value.toUpperCase();\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.formSubscription) this.formSubscription.unsubscribe();\r\n  }\r\n\r\n  onChange: any = () => {};\r\n\r\n  onTouched: any = () => {};\r\n\r\n  writeValue(color: string) {\r\n    this.chosenColor = color;\r\n  }\r\n\r\n  registerOnChange(fn: any) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any) {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  changeFormColor($event: any) {\r\n    this.form.get(this.formControlName)?.setValue($event.toUpperCase());\r\n  }\r\n\r\n  @HostListener('document:keydown.escape', ['$event'])\r\n  onEscape($event: KeyboardEvent) {\r\n    $event.preventDefault();\r\n\r\n    this.pickerVisible = false;\r\n  }\r\n\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  onEnter($event: KeyboardEvent) {\r\n    $event.preventDefault();\r\n  }\r\n\r\n  private validColor(color: string) {\r\n    return /^#[0-9a-fA-F]{6}$/i.test(color);\r\n  }\r\n}\r\n","<mat-form-field [appearance]=appearance [color]=color>\r\n    <mat-label>{{ label }}</mat-label>\r\n    <div class=\"mat-form-group\" [formGroup]=\"form\">\r\n        <input matInput ngDefaultControl [formControlName]=formControlName [placeholder]=placeholder>\r\n        <button mat-icon-button (click)=\"pickerVisible = !pickerVisible\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n            <mat-icon>palette</mat-icon>\r\n        </button>\r\n    </div>\r\n</mat-form-field>\r\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=pickerVisible [cdkConnectedOverlayHasBackdrop]=pickerVisible [cdkConnectedOverlayPositions]=positionPairs (backdropClick)=\"pickerVisible = !pickerVisible\">\r\n    <chrome-picker [color]=\"chosenColor\" (colorChange)=\"changeFormColor($event)\" style.display=\"{{pickerVisible ? 'block' : 'none'}}\"></chrome-picker>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxMatColorPickerComponent } from './ngx-mat-color-picker.component';\r\nimport { ColorPickerModule } from '@iplab/ngx-color-picker';\r\n\r\n@NgModule({\r\n  declarations: [NgxMatColorPickerComponent],\r\n  imports: [\r\n    OverlayModule,\r\n    MatIconModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    BrowserAnimationsModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    ColorPickerModule,\r\n  ],\r\n  exports: [NgxMatColorPickerComponent],\r\n})\r\nexport class NgxMatColorPickerModule {}\r\n","/*\n * Public API Surface of ngx-mat-color-picker\n */\n\nexport * from './lib/ngx-mat-color-picker.component';\nexport * from './lib/ngx-mat-color-picker.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}