{"version":3,"file":"ngx-color-picker.mjs","sources":["../../../projects/lib/src/lib/formats.ts","../../../projects/lib/src/lib/helpers.ts","../../../projects/lib/src/lib/color-picker.service.ts","../../../projects/lib/src/lib/color-picker.component.ts","../../../projects/lib/src/lib/color-picker.component.html","../../../projects/lib/src/lib/color-picker.directive.ts","../../../projects/lib/src/ngx-color-picker.ts"],"sourcesContent":["export enum ColorFormats {\n  HEX,\n  RGBA,\n  HSLA,\n  CMYK,\n}\n\nexport class Rgba {\n  constructor(\n    public r: number,\n    public g: number,\n    public b: number,\n    public a: number\n  ) {}\n}\n\nexport class Hsva {\n  constructor(\n    public h: number,\n    public s: number,\n    public v: number,\n    public a: number\n  ) {}\n}\n\nexport class Hsla {\n  constructor(\n    public h: number,\n    public s: number,\n    public l: number,\n    public a: number\n  ) {}\n}\n\nexport class Cmyk {\n  constructor(\n    public c: number,\n    public m: number,\n    public y: number,\n    public k: number,\n    public a: number = 1\n  ) {}\n}\n","import { DOCUMENT } from '@angular/common'\nimport {\n  Directive,\n  Input,\n  Output,\n  EventEmitter,\n  HostListener,\n  ElementRef,\n  inject,\n} from '@angular/core'\n\nexport type ColorMode =\n  | 'color'\n  | 'c'\n  | '1'\n  | 'grayscale'\n  | 'g'\n  | '2'\n  | 'presets'\n  | 'p'\n  | '3'\n\nexport type AlphaChannel = 'enabled' | 'disabled' | 'always' | 'forced'\n\nexport type BoundingRectangle = {\n  top: number\n  bottom: number\n  left: number\n  right: number\n  height: number\n  width: number\n}\n\nexport type OutputFormat = 'auto' | 'hex' | 'rgba' | 'hsla'\n\nexport function calculateAutoPositioning(\n  elBounds: BoundingRectangle,\n  triggerElBounds: BoundingRectangle,\n  window: Window\n): string {\n  // Defaults\n  let usePositionX = 'right'\n  let usePositionY = 'bottom'\n  // Calculate collisions\n  const { height, width } = elBounds\n  const { top, left } = triggerElBounds\n  const bottom = top + triggerElBounds.height\n  const right = left + triggerElBounds.width\n\n  const collisionTop = top - height < 0\n  const collisionBottom =\n    bottom + height >\n    (window.innerHeight || document.documentElement.clientHeight)\n  const collisionLeft = left - width < 0\n  const collisionRight =\n    right + width > (window.innerWidth || document.documentElement.clientWidth)\n  const collisionAll =\n    collisionTop && collisionBottom && collisionLeft && collisionRight\n\n  // Generate X & Y position values\n  if (collisionBottom) {\n    usePositionY = 'top'\n  }\n\n  if (collisionTop) {\n    usePositionY = 'bottom'\n  }\n\n  if (collisionLeft) {\n    usePositionX = 'right'\n  }\n\n  if (collisionRight) {\n    usePositionX = 'left'\n  }\n\n  // Choose the largest gap available\n  if (collisionAll) {\n    const postions = ['left', 'right', 'top', 'bottom']\n    return postions.reduce((prev, next) =>\n      elBounds[prev] > elBounds[next] ? prev : next\n    )\n  }\n\n  if (collisionLeft && collisionRight) {\n    if (collisionTop) {\n      return 'bottom'\n    }\n    if (collisionBottom) {\n      return 'top'\n    }\n    return top > bottom ? 'top' : 'bottom'\n  }\n\n  if (collisionTop && collisionBottom) {\n    if (collisionLeft) {\n      return 'right'\n    }\n    if (collisionRight) {\n      return 'left'\n    }\n    return left > right ? 'left' : 'right'\n  }\n\n  return `${usePositionY}-${usePositionX}`\n}\n\n@Directive({\n  selector: '[text]',\n})\nexport class TextDirective {\n  @Input() rg: number\n  @Input() text: any\n\n  @Output() newValue = new EventEmitter<any>()\n\n  @HostListener('input', ['$event']) inputChange(event: any): void {\n    const value = event.target.value\n\n    if (this.rg === undefined) {\n      this.newValue.emit(value)\n    } else {\n      const numeric = parseFloat(value)\n\n      this.newValue.emit({ v: numeric, rg: this.rg })\n    }\n  }\n}\n\n@Directive({\n  selector: '[slider]',\n})\nexport class SliderDirective {\n  private elRef = inject(ElementRef)\n  private document = inject<Document>(DOCUMENT)\n\n  private readonly listenerMove: (event: Event) => void\n  private readonly listenerStop: () => void\n\n  @Input() rgX: number\n  @Input() rgY: number\n\n  @Output() dragEnd = new EventEmitter()\n  @Output() dragStart = new EventEmitter()\n\n  @Output() newValue = new EventEmitter<any>()\n\n  @HostListener('mousedown', ['$event']) mouseDown(event: any): void {\n    this.start(event)\n  }\n\n  @HostListener('touchstart', ['$event']) touchStart(event: any): void {\n    this.start(event)\n  }\n\n  constructor() {\n    this.listenerMove = (event: Event) => this.move(event)\n\n    this.listenerStop = () => this.stop()\n  }\n\n  private move(event: Event): void {\n    event.preventDefault()\n\n    this.setCursor(event)\n  }\n\n  private start(event: Event): void {\n    this.setCursor(event)\n\n    event.stopPropagation()\n\n    this.document.addEventListener('mouseup', this.listenerStop)\n    this.document.addEventListener('touchend', this.listenerStop)\n    this.document.addEventListener('mousemove', this.listenerMove)\n    this.document.addEventListener('touchmove', this.listenerMove)\n\n    this.dragStart.emit()\n  }\n\n  private stop(): void {\n    this.document.removeEventListener('mouseup', this.listenerStop)\n    this.document.removeEventListener('touchend', this.listenerStop)\n    this.document.removeEventListener('mousemove', this.listenerMove)\n    this.document.removeEventListener('touchmove', this.listenerMove)\n\n    this.dragEnd.emit()\n  }\n\n  private getX(event: any): number {\n    const position = this.elRef.nativeElement.getBoundingClientRect()\n\n    const pageX =\n      event.pageX !== undefined ? event.pageX : event.touches[0].pageX\n\n    return pageX - position.left - window.pageXOffset\n  }\n\n  private getY(event: any): number {\n    const position = this.elRef.nativeElement.getBoundingClientRect()\n\n    const pageY =\n      event.pageY !== undefined ? event.pageY : event.touches[0].pageY\n\n    return pageY - position.top - window.pageYOffset\n  }\n\n  private setCursor(event: any): void {\n    const width = this.elRef.nativeElement.offsetWidth\n    const height = this.elRef.nativeElement.offsetHeight\n\n    const x = Math.max(0, Math.min(this.getX(event), width))\n    const y = Math.max(0, Math.min(this.getY(event), height))\n\n    if (this.rgX !== undefined && this.rgY !== undefined) {\n      this.newValue.emit({\n        s: x / width,\n        v: 1 - y / height,\n        rgX: this.rgX,\n        rgY: this.rgY,\n      })\n    } else if (this.rgX === undefined && this.rgY !== undefined) {\n      this.newValue.emit({ v: y / height, rgY: this.rgY })\n    } else if (this.rgX !== undefined && this.rgY === undefined) {\n      this.newValue.emit({ v: x / width, rgX: this.rgX })\n    }\n  }\n}\n\nexport class SliderPosition {\n  constructor(\n    public h: number,\n    public s: number,\n    public v: number,\n    public a: number\n  ) {}\n}\n\nexport class SliderDimension {\n  constructor(\n    public h: number,\n    public s: number,\n    public v: number,\n    public a: number\n  ) {}\n}\n","import { Injectable } from '@angular/core'\n\nimport { Cmyk, Rgba, Hsla, Hsva } from './formats'\n\nimport { ColorPickerComponent } from './color-picker.component'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ColorPickerService {\n  private active: ColorPickerComponent | null = null\n\n  public setActive(active: ColorPickerComponent | null): void {\n    if (\n      this.active &&\n      this.active !== active &&\n      this.active.cpDialogDisplay !== 'inline'\n    ) {\n      this.active.closeDialog()\n    }\n\n    this.active = active\n  }\n\n  public hsva2hsla(hsva: Hsva): Hsla {\n    const h = hsva.h,\n      s = hsva.s,\n      v = hsva.v,\n      a = hsva.a\n\n    if (v === 0) {\n      return new Hsla(h, 0, 0, a)\n    } else if (s === 0 && v === 1) {\n      return new Hsla(h, 1, 1, a)\n    } else {\n      const l = (v * (2 - s)) / 2\n\n      return new Hsla(h, (v * s) / (1 - Math.abs(2 * l - 1)), l, a)\n    }\n  }\n\n  public hsla2hsva(hsla: Hsla): Hsva {\n    const h = Math.min(hsla.h, 1),\n      s = Math.min(hsla.s, 1)\n    const l = Math.min(hsla.l, 1),\n      a = Math.min(hsla.a, 1)\n\n    if (l === 0) {\n      return new Hsva(h, 0, 0, a)\n    } else {\n      const v = l + (s * (1 - Math.abs(2 * l - 1))) / 2\n\n      return new Hsva(h, (2 * (v - l)) / v, v, a)\n    }\n  }\n\n  public hsvaToRgba(hsva: Hsva): Rgba {\n    let r: number, g: number, b: number\n\n    const h = hsva.h,\n      s = hsva.s,\n      v = hsva.v,\n      a = hsva.a\n\n    const i = Math.floor(h * 6)\n    const f = h * 6 - i\n    const p = v * (1 - s)\n    const q = v * (1 - f * s)\n    const t = v * (1 - (1 - f) * s)\n\n    switch (i % 6) {\n      case 0:\n        ;(r = v), (g = t), (b = p)\n        break\n      case 1:\n        ;(r = q), (g = v), (b = p)\n        break\n      case 2:\n        ;(r = p), (g = v), (b = t)\n        break\n      case 3:\n        ;(r = p), (g = q), (b = v)\n        break\n      case 4:\n        ;(r = t), (g = p), (b = v)\n        break\n      case 5:\n        ;(r = v), (g = p), (b = q)\n        break\n      default:\n        ;(r = 0), (g = 0), (b = 0)\n    }\n\n    return new Rgba(r, g, b, a)\n  }\n\n  public cmykToRgb(cmyk: Cmyk): Rgba {\n    const r = (1 - cmyk.c) * (1 - cmyk.k)\n    const g = (1 - cmyk.m) * (1 - cmyk.k)\n    const b = (1 - cmyk.y) * (1 - cmyk.k)\n\n    return new Rgba(r, g, b, cmyk.a)\n  }\n\n  public rgbaToCmyk(rgba: Rgba): Cmyk {\n    const k: number = 1 - Math.max(rgba.r, rgba.g, rgba.b)\n\n    if (k === 1) {\n      return new Cmyk(0, 0, 0, 1, rgba.a)\n    } else {\n      const c = (1 - rgba.r - k) / (1 - k)\n      const m = (1 - rgba.g - k) / (1 - k)\n      const y = (1 - rgba.b - k) / (1 - k)\n\n      return new Cmyk(c, m, y, k, rgba.a)\n    }\n  }\n\n  public rgbaToHsva(rgba: Rgba): Hsva {\n    let h: number, s: number\n\n    const r = Math.min(rgba.r, 1),\n      g = Math.min(rgba.g, 1)\n    const b = Math.min(rgba.b, 1),\n      a = Math.min(rgba.a, 1)\n\n    const max = Math.max(r, g, b),\n      min = Math.min(r, g, b)\n\n    const v: number = max,\n      d = max - min\n\n    s = max === 0 ? 0 : d / max\n\n    if (max === min) {\n      h = 0\n    } else {\n      switch (max) {\n        case r:\n          h = (g - b) / d + (g < b ? 6 : 0)\n          break\n        case g:\n          h = (b - r) / d + 2\n          break\n        case b:\n          h = (r - g) / d + 4\n          break\n        default:\n          h = 0\n      }\n\n      h /= 6\n    }\n\n    return new Hsva(h, s, v, a)\n  }\n\n  public rgbaToHex(rgba: Rgba, allowHex8?: boolean): string {\n    /* eslint-disable no-bitwise */\n    let hex =\n      '#' +\n      ((1 << 24) | (rgba.r << 16) | (rgba.g << 8) | rgba.b)\n        .toString(16)\n        .substr(1)\n\n    if (allowHex8) {\n      hex += ((1 << 8) | Math.round(rgba.a * 255)).toString(16).substr(1)\n    }\n    /* eslint-enable no-bitwise */\n\n    return hex\n  }\n\n  public normalizeCMYK(cmyk: Cmyk): Cmyk {\n    return new Cmyk(\n      cmyk.c / 100,\n      cmyk.m / 100,\n      cmyk.y / 100,\n      cmyk.k / 100,\n      cmyk.a\n    )\n  }\n\n  public denormalizeCMYK(cmyk: Cmyk): Cmyk {\n    return new Cmyk(\n      Math.floor(cmyk.c * 100),\n      Math.floor(cmyk.m * 100),\n      Math.floor(cmyk.y * 100),\n      Math.floor(cmyk.k * 100),\n      cmyk.a\n    )\n  }\n\n  public denormalizeRGBA(rgba: Rgba): Rgba {\n    return new Rgba(\n      Math.round(rgba.r * 255),\n      Math.round(rgba.g * 255),\n      Math.round(rgba.b * 255),\n      rgba.a\n    )\n  }\n\n  public stringToHsva(\n    colorString: string = '',\n    allowHex8: boolean = false\n  ): Hsva | null {\n    let hsva: Hsva | null = null\n\n    colorString = (colorString || '').toLowerCase()\n\n    const stringParsers = [\n      {\n        re: /(rgb)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*%?,\\s*(\\d{1,3})\\s*%?(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n        parse: function (execResult: any) {\n          return new Rgba(\n            parseInt(execResult[2], 10) / 255,\n            parseInt(execResult[3], 10) / 255,\n            parseInt(execResult[4], 10) / 255,\n            isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5])\n          )\n        },\n      },\n      {\n        re: /(hsl)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n        parse: function (execResult: any) {\n          return new Hsla(\n            parseInt(execResult[2], 10) / 360,\n            parseInt(execResult[3], 10) / 100,\n            parseInt(execResult[4], 10) / 100,\n            isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5])\n          )\n        },\n      },\n    ]\n\n    if (allowHex8) {\n      stringParsers.push({\n        re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})?$/,\n        parse: function (execResult: any) {\n          return new Rgba(\n            parseInt(execResult[1], 16) / 255,\n            parseInt(execResult[2], 16) / 255,\n            parseInt(execResult[3], 16) / 255,\n            parseInt(execResult[4] || 'FF', 16) / 255\n          )\n        },\n      })\n    } else {\n      stringParsers.push({\n        re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/,\n        parse: function (execResult: any) {\n          return new Rgba(\n            parseInt(execResult[1], 16) / 255,\n            parseInt(execResult[2], 16) / 255,\n            parseInt(execResult[3], 16) / 255,\n            1\n          )\n        },\n      })\n    }\n\n    stringParsers.push({\n      re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,\n      parse: function (execResult: any) {\n        return new Rgba(\n          parseInt(execResult[1] + execResult[1], 16) / 255,\n          parseInt(execResult[2] + execResult[2], 16) / 255,\n          parseInt(execResult[3] + execResult[3], 16) / 255,\n          1\n        )\n      },\n    })\n\n    for (const key in stringParsers) {\n      if (stringParsers.hasOwnProperty(key)) {\n        const parser = stringParsers[key]\n\n        const match = parser.re.exec(colorString),\n          color: any = match && parser.parse(match)\n\n        if (color) {\n          if (color instanceof Rgba) {\n            hsva = this.rgbaToHsva(color)\n          } else if (color instanceof Hsla) {\n            hsva = this.hsla2hsva(color)\n          }\n\n          return hsva\n        }\n      }\n    }\n\n    return hsva\n  }\n\n  public outputFormat(\n    hsva: Hsva,\n    outputFormat: string,\n    alphaChannel: string | null\n  ): string {\n    if (outputFormat === 'auto') {\n      outputFormat = hsva.a < 1 ? 'rgba' : 'hex'\n    }\n\n    switch (outputFormat) {\n      case 'hsla':\n        const hsla = this.hsva2hsla(hsva)\n\n        const hslaText = new Hsla(\n          Math.round(hsla.h * 360),\n          Math.round(hsla.s * 100),\n          Math.round(hsla.l * 100),\n          Math.round(hsla.a * 100) / 100\n        )\n\n        if (hsva.a < 1 || alphaChannel === 'always') {\n          return (\n            'hsla(' +\n            hslaText.h +\n            ',' +\n            hslaText.s +\n            '%,' +\n            hslaText.l +\n            '%,' +\n            hslaText.a +\n            ')'\n          )\n        } else {\n          return (\n            'hsl(' + hslaText.h + ',' + hslaText.s + '%,' + hslaText.l + '%)'\n          )\n        }\n\n      case 'rgba':\n        const rgba = this.denormalizeRGBA(this.hsvaToRgba(hsva))\n\n        if (hsva.a < 1 || alphaChannel === 'always') {\n          return (\n            'rgba(' +\n            rgba.r +\n            ',' +\n            rgba.g +\n            ',' +\n            rgba.b +\n            ',' +\n            Math.round(rgba.a * 100) / 100 +\n            ')'\n          )\n        } else {\n          return 'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')'\n        }\n\n      default:\n        const allowHex8 = alphaChannel === 'always' || alphaChannel === 'forced'\n\n        return this.rgbaToHex(\n          this.denormalizeRGBA(this.hsvaToRgba(hsva)),\n          allowHex8\n        )\n    }\n  }\n}\n","import {\n  Component,\n  OnInit,\n  OnDestroy,\n  AfterViewInit,\n  ViewChild,\n  HostListener,\n  ViewEncapsulation,\n  ElementRef,\n  ChangeDetectorRef,\n  TemplateRef,\n  NgZone,\n  PLATFORM_ID,\n  inject\n} from '@angular/core'\n\nimport {\n  DOCUMENT,\n  isPlatformBrowser,\n  NgForOf,\n  NgIf,\n  NgTemplateOutlet\n} from '@angular/common'\n\nimport {\n  calculateAutoPositioning,\n  SliderDirective,\n  TextDirective\n} from './helpers'\n\nimport { ColorFormats, Cmyk, Hsla, Hsva, Rgba } from './formats'\nimport {\n  AlphaChannel,\n  OutputFormat,\n  SliderDimension,\n  SliderPosition\n} from './helpers'\n\nimport { ColorPickerService } from './color-picker.service'\n\n// Do not store that on the class instance since the condition will be run\n// every time the class is created.\nconst SUPPORTS_TOUCH = typeof window !== 'undefined' && 'ontouchstart' in window\n\n@Component({\n  selector: 'color-picker',\n  templateUrl: './color-picker.component.html',\n  styleUrls: ['./color-picker.component.css'],\n  encapsulation: ViewEncapsulation.None,\n  imports: [SliderDirective, TextDirective, NgIf, NgForOf, NgTemplateOutlet]\n})\nexport class ColorPickerComponent implements OnInit, OnDestroy, AfterViewInit {\n  private ngZone = inject(NgZone)\n\n  private elRef = inject(ElementRef)\n  private cdRef = inject(ChangeDetectorRef)\n\n  private platformId = inject(PLATFORM_ID)\n\n  private service = inject(ColorPickerService)\n\n  private document = inject<Document>(DOCUMENT)\n\n  private cmyk: Cmyk\n  private hsva: Hsva\n\n  private width: number\n  private height: number\n\n  private cmykColor: string\n  private outputColor: string\n  private initialColor: string\n  private fallbackColor: string\n\n  private listenerResize: any\n  private listenerMouseDown: EventListener\n\n  private directiveInstance: any\n\n  private sliderH: number\n  private sliderDimMax: SliderDimension\n  private directiveElementRef: ElementRef\n\n  private dialogArrowSize: number = 10\n  private dialogArrowOffset: number = 15\n\n  private dialogInputFields: ColorFormats[] = [\n    ColorFormats.HEX,\n    ColorFormats.RGBA,\n    ColorFormats.HSLA,\n    ColorFormats.CMYK\n  ]\n\n  private useRootViewContainer: boolean = false\n\n  private readonly window: Window\n\n  public show: boolean\n  public hidden: boolean\n\n  public top: number\n  public left: number\n  public position: string\n\n  public format: ColorFormats\n  public slider: SliderPosition\n\n  public hexText: string\n  public hexAlpha: number\n\n  public cmykText: Cmyk\n  public hslaText: Hsla\n  public rgbaText: Rgba\n\n  public arrowTop: number\n\n  public selectedColor: string\n  public hueSliderColor: string\n  public alphaSliderColor: string\n\n  public cpWidth: number\n  public cpHeight: number\n\n  public cpColorMode: number\n\n  public cpCmykEnabled: boolean\n\n  public cpAlphaChannel: AlphaChannel\n  public cpOutputFormat: OutputFormat\n\n  public cpDisableInput: boolean\n  public cpDialogDisplay: string\n\n  public cpIgnoredElements: any\n\n  public cpSaveClickOutside: boolean\n  public cpCloseClickOutside: boolean\n\n  public cpPosition: string\n  public cpUsePosition: string\n  public cpPositionOffset: number\n\n  public cpOKButton: boolean\n  public cpOKButtonText: string\n  public cpOKButtonClass: string\n\n  public cpCancelButton: boolean\n  public cpCancelButtonText: string\n  public cpCancelButtonClass: string\n\n  public cpEyeDropper: boolean\n  public eyeDropperSupported: boolean\n\n  public cpPresetLabel: string\n  public cpPresetColors: string[]\n  public cpPresetColorsClass: string\n  public cpMaxPresetColorsLength: number\n\n  public cpPresetEmptyMessage: string\n  public cpPresetEmptyMessageClass: string\n\n  public cpAddColorButton: boolean\n  public cpAddColorButtonText: string\n  public cpAddColorButtonClass: string\n  public cpRemoveColorButtonClass: string\n  public cpArrowPosition: number\n\n  public cpTriggerElement: ElementRef\n\n  public cpExtraTemplate: TemplateRef<any>\n\n  @ViewChild('dialogPopup', { static: true }) dialogElement: ElementRef\n\n  @ViewChild('hueSlider', { static: true }) hueSlider: ElementRef\n  @ViewChild('alphaSlider', { static: true }) alphaSlider: ElementRef\n\n  @HostListener('document:keyup.esc', ['$event']) handleEsc(event: any): void {\n    if (this.show && this.cpDialogDisplay === 'popup') {\n      this.onCancelColor(event)\n    }\n  }\n\n  @HostListener('document:keyup.enter', ['$event']) handleEnter(\n    event: any\n  ): void {\n    if (this.show && this.cpDialogDisplay === 'popup') {\n      this.onAcceptColor(event)\n    }\n  }\n\n  constructor() {\n    this.window = this.document.defaultView\n    this.eyeDropperSupported =\n      isPlatformBrowser(this.platformId) && 'EyeDropper' in this.window\n  }\n\n  ngOnInit(): void {\n    this.slider = new SliderPosition(0, 0, 0, 0)\n\n    const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140\n    const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140\n\n    this.sliderDimMax = new SliderDimension(\n      hueWidth,\n      this.cpWidth,\n      130,\n      alphaWidth\n    )\n\n    if (this.cpCmykEnabled) {\n      this.format = ColorFormats.CMYK\n    } else if (this.cpOutputFormat === 'rgba') {\n      this.format = ColorFormats.RGBA\n    } else if (this.cpOutputFormat === 'hsla') {\n      this.format = ColorFormats.HSLA\n    } else {\n      this.format = ColorFormats.HEX\n    }\n\n    this.listenerMouseDown = (event: MouseEvent) => {\n      this.onMouseDown(event)\n    }\n    this.listenerResize = () => {\n      this.onResize()\n    }\n\n    this.openDialog(this.initialColor, false)\n  }\n\n  ngOnDestroy(): void {\n    this.closeDialog()\n  }\n\n  ngAfterViewInit(): void {\n    if (this.cpWidth !== 230 || this.cpDialogDisplay === 'inline') {\n      const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140\n      const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140\n\n      this.sliderDimMax = new SliderDimension(\n        hueWidth,\n        this.cpWidth,\n        130,\n        alphaWidth\n      )\n\n      this.updateColorPicker(false)\n\n      this.cdRef.detectChanges()\n    }\n  }\n\n  public openDialog(color: any, emit: boolean = true): void {\n    this.service.setActive(this)\n\n    if (!this.width) {\n      this.cpWidth = this.directiveElementRef.nativeElement.offsetWidth\n    }\n\n    if (!this.height) {\n      this.height = 320\n    }\n\n    this.setInitialColor(color)\n\n    this.setColorFromString(color, emit)\n\n    this.openColorPicker()\n  }\n\n  public closeDialog(): void {\n    this.closeColorPicker()\n  }\n\n  public setupDialog(\n    instance: any,\n    elementRef: ElementRef,\n    color: any,\n    cpWidth: string,\n    cpHeight: string,\n    cpDialogDisplay: string,\n    cpFallbackColor: string,\n    cpColorMode: string,\n    cpCmykEnabled: boolean,\n    cpAlphaChannel: AlphaChannel,\n    cpOutputFormat: OutputFormat,\n    cpDisableInput: boolean,\n    cpIgnoredElements: any,\n    cpSaveClickOutside: boolean,\n    cpCloseClickOutside: boolean,\n    cpUseRootViewContainer: boolean,\n    cpPosition: string,\n    cpPositionOffset: string,\n    cpPositionRelativeToArrow: boolean,\n    cpPresetLabel: string,\n    cpPresetColors: string[],\n    cpPresetColorsClass: string,\n    cpMaxPresetColorsLength: number,\n    cpPresetEmptyMessage: string,\n    cpPresetEmptyMessageClass: string,\n    cpOKButton: boolean,\n    cpOKButtonClass: string,\n    cpOKButtonText: string,\n    cpCancelButton: boolean,\n    cpCancelButtonClass: string,\n    cpCancelButtonText: string,\n    cpAddColorButton: boolean,\n    cpAddColorButtonClass: string,\n    cpAddColorButtonText: string,\n    cpRemoveColorButtonClass: string,\n    cpEyeDropper: boolean,\n    cpTriggerElement: ElementRef,\n    cpExtraTemplate: TemplateRef<any>\n  ): void {\n    this.setInitialColor(color)\n\n    this.setColorMode(cpColorMode)\n\n    this.directiveInstance = instance\n    this.directiveElementRef = elementRef\n\n    this.cpDisableInput = cpDisableInput\n\n    this.cpCmykEnabled = cpCmykEnabled\n    this.cpAlphaChannel = cpAlphaChannel\n    this.cpOutputFormat = cpOutputFormat\n\n    this.cpDialogDisplay = cpDialogDisplay\n\n    this.cpIgnoredElements = cpIgnoredElements\n\n    this.cpSaveClickOutside = cpSaveClickOutside\n    this.cpCloseClickOutside = cpCloseClickOutside\n\n    this.useRootViewContainer = cpUseRootViewContainer\n\n    this.width = this.cpWidth = parseInt(cpWidth, 10)\n    this.height = this.cpHeight = parseInt(cpHeight, 10)\n\n    this.cpPosition = cpPosition\n    this.cpPositionOffset = parseInt(cpPositionOffset, 10)\n\n    this.cpOKButton = cpOKButton\n    this.cpOKButtonText = cpOKButtonText\n    this.cpOKButtonClass = cpOKButtonClass\n\n    this.cpCancelButton = cpCancelButton\n    this.cpCancelButtonText = cpCancelButtonText\n    this.cpCancelButtonClass = cpCancelButtonClass\n\n    this.cpEyeDropper = cpEyeDropper\n\n    this.fallbackColor = cpFallbackColor || '#fff'\n\n    this.setPresetConfig(cpPresetLabel, cpPresetColors)\n\n    this.cpPresetColorsClass = cpPresetColorsClass\n    this.cpMaxPresetColorsLength = cpMaxPresetColorsLength\n    this.cpPresetEmptyMessage = cpPresetEmptyMessage\n    this.cpPresetEmptyMessageClass = cpPresetEmptyMessageClass\n\n    this.cpAddColorButton = cpAddColorButton\n    this.cpAddColorButtonText = cpAddColorButtonText\n    this.cpAddColorButtonClass = cpAddColorButtonClass\n    this.cpRemoveColorButtonClass = cpRemoveColorButtonClass\n\n    this.cpTriggerElement = cpTriggerElement\n    this.cpExtraTemplate = cpExtraTemplate\n\n    if (!cpPositionRelativeToArrow) {\n      this.dialogArrowOffset = 0\n    }\n\n    if (cpDialogDisplay === 'inline') {\n      this.dialogArrowSize = 0\n      this.dialogArrowOffset = 0\n    }\n\n    if (\n      cpOutputFormat === 'hex' &&\n      cpAlphaChannel !== 'always' &&\n      cpAlphaChannel !== 'forced'\n    ) {\n      this.cpAlphaChannel = 'disabled'\n    }\n  }\n\n  public setColorMode(mode: string): void {\n    switch (mode.toString().toUpperCase()) {\n      case '1':\n      case 'C':\n      case 'COLOR':\n        this.cpColorMode = 1\n        break\n      case '2':\n      case 'G':\n      case 'GRAYSCALE':\n        this.cpColorMode = 2\n        break\n      case '3':\n      case 'P':\n      case 'PRESETS':\n        this.cpColorMode = 3\n        break\n      default:\n        this.cpColorMode = 1\n    }\n  }\n\n  public setInitialColor(color: any): void {\n    this.initialColor = color\n  }\n\n  public setPresetConfig(\n    cpPresetLabel: string,\n    cpPresetColors: string[]\n  ): void {\n    this.cpPresetLabel = cpPresetLabel\n    this.cpPresetColors = cpPresetColors\n  }\n\n  public setColorFromString(\n    value: string,\n    emit: boolean = true,\n    update: boolean = true\n  ): void {\n    let hsva: Hsva | null\n\n    if (this.cpAlphaChannel === 'always' || this.cpAlphaChannel === 'forced') {\n      hsva = this.service.stringToHsva(value, true)\n\n      if (!hsva && !this.hsva) {\n        hsva = this.service.stringToHsva(value, false)\n      }\n    } else {\n      hsva = this.service.stringToHsva(value, false)\n    }\n\n    if (!hsva && !this.hsva) {\n      hsva = this.service.stringToHsva(this.fallbackColor, false)\n    }\n\n    if (hsva) {\n      this.hsva = hsva\n\n      this.sliderH = this.hsva.h\n\n      if (this.cpOutputFormat === 'hex' && this.cpAlphaChannel === 'disabled') {\n        this.hsva.a = 1\n      }\n\n      this.updateColorPicker(emit, update)\n    }\n  }\n\n  public onResize(): void {\n    if (this.position === 'fixed') {\n      this.setDialogPosition()\n    } else if (this.cpDialogDisplay !== 'inline') {\n      this.closeColorPicker()\n    }\n  }\n\n  public onDragEnd(slider: string): void {\n    this.directiveInstance.sliderDragEnd({\n      slider: slider,\n      color: this.outputColor\n    })\n  }\n\n  public onDragStart(slider: string): void {\n    this.directiveInstance.sliderDragStart({\n      slider: slider,\n      color: this.outputColor\n    })\n  }\n\n  public onMouseDown(event: MouseEvent): void {\n    if (\n      this.show &&\n      this.cpDialogDisplay === 'popup' &&\n      event.target !== this.directiveElementRef.nativeElement &&\n      !this.isDescendant(this.elRef.nativeElement, event.target) &&\n      !this.isDescendant(\n        this.directiveElementRef.nativeElement,\n        event.target\n      ) &&\n      this.cpIgnoredElements.filter((item: any) => item === event.target)\n        .length === 0\n    ) {\n      this.ngZone.run(() => {\n        if (this.cpSaveClickOutside) {\n          this.directiveInstance.colorSelected(this.outputColor)\n        } else {\n          this.hsva = null\n\n          this.setColorFromString(this.initialColor, false)\n\n          if (this.cpCmykEnabled) {\n            this.directiveInstance.cmykChanged(this.cmykColor)\n          }\n\n          this.directiveInstance.colorChanged(this.initialColor)\n\n          this.directiveInstance.colorCanceled()\n        }\n\n        if (this.cpCloseClickOutside) {\n          this.closeColorPicker()\n        }\n      })\n    }\n  }\n\n  public onAcceptColor(event: Event): void {\n    event.stopPropagation()\n\n    if (this.outputColor) {\n      this.directiveInstance.colorSelected(this.outputColor)\n    }\n\n    if (this.cpDialogDisplay === 'popup') {\n      this.closeColorPicker()\n    }\n  }\n\n  public onCancelColor(event: Event): void {\n    this.hsva = null\n\n    event.stopPropagation()\n\n    this.directiveInstance.colorCanceled()\n\n    this.setColorFromString(this.initialColor, true)\n\n    if (this.cpDialogDisplay === 'popup') {\n      if (this.cpCmykEnabled) {\n        this.directiveInstance.cmykChanged(this.cmykColor)\n      }\n\n      this.directiveInstance.colorChanged(this.initialColor, true)\n\n      this.closeColorPicker()\n    }\n  }\n\n  public onEyeDropper(): void {\n    if (!this.eyeDropperSupported) return\n    const eyeDropper = new (window as any).EyeDropper()\n    eyeDropper.open().then((eyeDropperResult: { sRGBHex: string }) => {\n      this.setColorFromString(eyeDropperResult.sRGBHex, true)\n    })\n  }\n\n  public onFormatToggle(change: number): void {\n    const availableFormats =\n      this.dialogInputFields.length - (this.cpCmykEnabled ? 0 : 1)\n\n    const nextFormat =\n      (((this.dialogInputFields.indexOf(this.format) + change) %\n        availableFormats) +\n        availableFormats) %\n      availableFormats\n\n    this.format = this.dialogInputFields[nextFormat]\n  }\n\n  public onColorChange(value: {\n    s: number\n    v: number\n    rgX: number\n    rgY: number\n  }): void {\n    this.hsva.s = value.s / value.rgX\n    this.hsva.v = value.v / value.rgY\n\n    this.updateColorPicker()\n\n    this.directiveInstance.sliderChanged({\n      slider: 'lightness',\n      value: this.hsva.v,\n      color: this.outputColor\n    })\n\n    this.directiveInstance.sliderChanged({\n      slider: 'saturation',\n      value: this.hsva.s,\n      color: this.outputColor\n    })\n  }\n\n  public onHueChange(value: { v: number; rgX: number }): void {\n    this.hsva.h = value.v / value.rgX\n    this.sliderH = this.hsva.h\n\n    this.updateColorPicker()\n\n    this.directiveInstance.sliderChanged({\n      slider: 'hue',\n      value: this.hsva.h,\n      color: this.outputColor\n    })\n  }\n\n  public onValueChange(value: { v: number; rgX: number }): void {\n    this.hsva.v = value.v / value.rgX\n\n    this.updateColorPicker()\n\n    this.directiveInstance.sliderChanged({\n      slider: 'value',\n      value: this.hsva.v,\n      color: this.outputColor\n    })\n  }\n\n  public onAlphaChange(value: { v: number; rgX: number }): void {\n    this.hsva.a = value.v / value.rgX\n\n    this.updateColorPicker()\n\n    this.directiveInstance.sliderChanged({\n      slider: 'alpha',\n      value: this.hsva.a,\n      color: this.outputColor\n    })\n  }\n\n  public onHexInput(value: string | null): void {\n    if (value === null) {\n      this.updateColorPicker()\n    } else {\n      if (value && value[0] !== '#') {\n        value = '#' + value\n      }\n\n      let validHex = /^#[a-f0-9]{6}$/gi\n\n      if (this.cpAlphaChannel === 'always') {\n        validHex = /^#([a-f0-9]{6}|[a-f0-9]{8})$/gi\n      }\n\n      const valid = validHex.test(value)\n\n      if (valid) {\n        if (this.cpAlphaChannel === 'forced') {\n          value += Math.round(this.hsva.a * 255).toString(16)\n        }\n\n        this.setColorFromString(value, true, false)\n      }\n\n      this.directiveInstance.inputChanged({\n        input: 'hex',\n        valid: valid,\n        value: value,\n        color: this.outputColor\n      })\n    }\n  }\n\n  public onRedInput(value: { v: number; rg: number }): void {\n    const rgba = this.service.hsvaToRgba(this.hsva)\n\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      rgba.r = value.v / value.rg\n\n      this.hsva = this.service.rgbaToHsva(rgba)\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'red',\n      valid: valid,\n      value: rgba.r,\n      color: this.outputColor\n    })\n  }\n\n  public onBlueInput(value: { v: number; rg: number }): void {\n    const rgba = this.service.hsvaToRgba(this.hsva)\n\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      rgba.b = value.v / value.rg\n\n      this.hsva = this.service.rgbaToHsva(rgba)\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'blue',\n      valid: valid,\n      value: rgba.b,\n      color: this.outputColor\n    })\n  }\n\n  public onGreenInput(value: { v: number; rg: number }): void {\n    const rgba = this.service.hsvaToRgba(this.hsva)\n\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      rgba.g = value.v / value.rg\n\n      this.hsva = this.service.rgbaToHsva(rgba)\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'green',\n      valid: valid,\n      value: rgba.g,\n      color: this.outputColor\n    })\n  }\n\n  public onHueInput(value: { v: number; rg: number }) {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.hsva.h = value.v / value.rg\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'hue',\n      valid: valid,\n      value: this.hsva.h,\n      color: this.outputColor\n    })\n  }\n\n  public onValueInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.hsva.v = value.v / value.rg\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'value',\n      valid: valid,\n      value: this.hsva.v,\n      color: this.outputColor\n    })\n  }\n\n  public onAlphaInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.hsva.a = value.v / value.rg\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'alpha',\n      valid: valid,\n      value: this.hsva.a,\n      color: this.outputColor\n    })\n  }\n\n  public onLightnessInput(value: { v: number; rg: number }): void {\n    const hsla = this.service.hsva2hsla(this.hsva)\n\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      hsla.l = value.v / value.rg\n\n      this.hsva = this.service.hsla2hsva(hsla)\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'lightness',\n      valid: valid,\n      value: hsla.l,\n      color: this.outputColor\n    })\n  }\n\n  public onSaturationInput(value: { v: number; rg: number }): void {\n    const hsla = this.service.hsva2hsla(this.hsva)\n\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      hsla.s = value.v / value.rg\n\n      this.hsva = this.service.hsla2hsva(hsla)\n\n      this.sliderH = this.hsva.h\n\n      this.updateColorPicker()\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'saturation',\n      valid: valid,\n      value: hsla.s,\n      color: this.outputColor\n    })\n  }\n\n  public onCyanInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.cmyk.c = value.v\n\n      this.updateColorPicker(false, true, true)\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'cyan',\n      valid: true,\n      value: this.cmyk.c,\n      color: this.outputColor\n    })\n  }\n\n  public onMagentaInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.cmyk.m = value.v\n\n      this.updateColorPicker(false, true, true)\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'magenta',\n      valid: true,\n      value: this.cmyk.m,\n      color: this.outputColor\n    })\n  }\n\n  public onYellowInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.cmyk.y = value.v\n\n      this.updateColorPicker(false, true, true)\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'yellow',\n      valid: true,\n      value: this.cmyk.y,\n      color: this.outputColor\n    })\n  }\n\n  public onBlackInput(value: { v: number; rg: number }): void {\n    const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg\n\n    if (valid) {\n      this.cmyk.k = value.v\n\n      this.updateColorPicker(false, true, true)\n    }\n\n    this.directiveInstance.inputChanged({\n      input: 'black',\n      valid: true,\n      value: this.cmyk.k,\n      color: this.outputColor\n    })\n  }\n\n  public onAddPresetColor(event: any, value: string): void {\n    event.stopPropagation()\n\n    if (!this.cpPresetColors.filter((color) => color === value).length) {\n      this.cpPresetColors = this.cpPresetColors.concat(value)\n\n      this.directiveInstance.presetColorsChanged(this.cpPresetColors)\n    }\n  }\n\n  public onRemovePresetColor(event: any, value: string): void {\n    event.stopPropagation()\n\n    this.cpPresetColors = this.cpPresetColors.filter((color) => color !== value)\n\n    this.directiveInstance.presetColorsChanged(this.cpPresetColors)\n  }\n\n  // Private helper functions for the color picker dialog status\n\n  private openColorPicker(): void {\n    if (!this.show) {\n      this.show = true\n      this.hidden = true\n\n      setTimeout(() => {\n        this.hidden = false\n\n        this.setDialogPosition()\n\n        this.cdRef.detectChanges()\n      }, 0)\n\n      this.directiveInstance.stateChanged(true)\n\n      // The change detection should be run on `mousedown` event only when the condition\n      // is met within the `onMouseDown` method.\n      this.ngZone.runOutsideAngular(() => {\n        // There's no sense to add both event listeners on touch devices since the `touchstart`\n        // event is handled earlier than `mousedown`, so we'll get 2 change detections and the\n        // second one will be unnecessary.\n        if (SUPPORTS_TOUCH) {\n          this.document.addEventListener('touchstart', this.listenerMouseDown)\n        } else {\n          this.document.addEventListener('mousedown', this.listenerMouseDown)\n        }\n      })\n\n      this.window.addEventListener('resize', this.listenerResize)\n    }\n  }\n\n  private closeColorPicker(): void {\n    if (this.show) {\n      this.show = false\n\n      this.directiveInstance.stateChanged(false)\n\n      if (SUPPORTS_TOUCH) {\n        this.document.removeEventListener('touchstart', this.listenerMouseDown)\n      } else {\n        this.document.removeEventListener('mousedown', this.listenerMouseDown)\n      }\n\n      this.window.removeEventListener('resize', this.listenerResize)\n\n      if (!this.cdRef['destroyed']) {\n        this.cdRef.detectChanges()\n      }\n    }\n  }\n\n  private updateColorPicker(\n    emit: boolean = true,\n    update: boolean = true,\n    cmykInput: boolean = false\n  ): void {\n    if (this.sliderDimMax) {\n      if (this.cpColorMode === 2) {\n        this.hsva.s = 0\n      }\n\n      let hue: Rgba, hsla: Hsla, rgba: Rgba\n\n      const lastOutput = this.outputColor\n\n      hsla = this.service.hsva2hsla(this.hsva)\n\n      if (!this.cpCmykEnabled) {\n        rgba = this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva))\n      } else {\n        if (!cmykInput) {\n          rgba = this.service.hsvaToRgba(this.hsva)\n\n          this.cmyk = this.service.denormalizeCMYK(\n            this.service.rgbaToCmyk(rgba)\n          )\n        } else {\n          rgba = this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk))\n\n          this.hsva = this.service.rgbaToHsva(rgba)\n        }\n\n        rgba = this.service.denormalizeRGBA(rgba)\n\n        this.sliderH = this.hsva.h\n      }\n\n      hue = this.service.denormalizeRGBA(\n        this.service.hsvaToRgba(new Hsva(this.sliderH || this.hsva.h, 1, 1, 1))\n      )\n\n      if (update) {\n        this.hslaText = new Hsla(\n          Math.round(hsla.h * 360),\n          Math.round(hsla.s * 100),\n          Math.round(hsla.l * 100),\n          Math.round(hsla.a * 100) / 100\n        )\n\n        this.rgbaText = new Rgba(\n          rgba.r,\n          rgba.g,\n          rgba.b,\n          Math.round(rgba.a * 100) / 100\n        )\n\n        if (this.cpCmykEnabled) {\n          this.cmykText = new Cmyk(\n            this.cmyk.c,\n            this.cmyk.m,\n            this.cmyk.y,\n            this.cmyk.k,\n            Math.round(this.cmyk.a * 100) / 100\n          )\n        }\n\n        const allowHex8 = this.cpAlphaChannel === 'always'\n\n        this.hexText = this.service.rgbaToHex(rgba, allowHex8)\n        this.hexAlpha = this.rgbaText.a\n      }\n\n      if (this.cpOutputFormat === 'auto') {\n        if (\n          this.format !== ColorFormats.RGBA &&\n          this.format !== ColorFormats.CMYK &&\n          this.format !== ColorFormats.HSLA\n        ) {\n          if (this.hsva.a < 1) {\n            this.format = this.hsva.a < 1 ? ColorFormats.RGBA : ColorFormats.HEX\n          }\n        }\n      }\n\n      this.hueSliderColor = 'rgb(' + hue.r + ',' + hue.g + ',' + hue.b + ')'\n      this.alphaSliderColor =\n        'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')'\n\n      this.outputColor = this.service.outputFormat(\n        this.hsva,\n        this.cpOutputFormat,\n        this.cpAlphaChannel\n      )\n      this.selectedColor = this.service.outputFormat(this.hsva, 'rgba', null)\n\n      if (this.format !== ColorFormats.CMYK) {\n        this.cmykColor = ''\n      } else {\n        if (\n          this.cpAlphaChannel === 'always' ||\n          this.cpAlphaChannel === 'enabled' ||\n          this.cpAlphaChannel === 'forced'\n        ) {\n          const alpha = Math.round(this.cmyk.a * 100) / 100\n\n          this.cmykColor = `cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${alpha})`\n        } else {\n          this.cmykColor = `cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`\n        }\n      }\n\n      this.slider = new SliderPosition(\n        (this.sliderH || this.hsva.h) * this.sliderDimMax.h - 8,\n        this.hsva.s * this.sliderDimMax.s - 8,\n        (1 - this.hsva.v) * this.sliderDimMax.v - 8,\n        this.hsva.a * this.sliderDimMax.a - 8\n      )\n\n      if (emit && lastOutput !== this.outputColor) {\n        if (this.cpCmykEnabled) {\n          this.directiveInstance.cmykChanged(this.cmykColor)\n        }\n\n        this.directiveInstance.colorChanged(this.outputColor)\n      }\n    }\n  }\n\n  // Private helper functions for the color picker dialog positioning\n\n  private setDialogPosition(): void {\n    if (this.cpDialogDisplay === 'inline') {\n      this.position = 'relative'\n    } else {\n      let position = 'static',\n        transform = '',\n        style\n\n      let parentNode: any = null,\n        transformNode: any = null\n\n      let node = this.directiveElementRef.nativeElement.parentNode\n\n      const dialogHeight = this.dialogElement.nativeElement.offsetHeight\n\n      while (node !== null && node.tagName !== 'HTML') {\n        style = this.window.getComputedStyle(node)\n        position = style.getPropertyValue('position')\n        transform = style.getPropertyValue('transform')\n\n        if (position !== 'static' && parentNode === null) {\n          parentNode = node\n        }\n\n        if (transform && transform !== 'none' && transformNode === null) {\n          transformNode = node\n        }\n\n        if (position === 'fixed') {\n          parentNode = transformNode\n\n          break\n        }\n\n        node = node.parentNode\n      }\n\n      const boxDirective = this.createDialogBox(\n        this.directiveElementRef.nativeElement,\n        position !== 'fixed'\n      )\n\n      if (\n        this.useRootViewContainer ||\n        (position === 'fixed' &&\n          (!parentNode || parentNode instanceof HTMLUnknownElement))\n      ) {\n        this.top = boxDirective.top\n        this.left = boxDirective.left\n      } else {\n        if (parentNode === null) {\n          parentNode = node\n        }\n\n        const boxParent = this.createDialogBox(parentNode, position !== 'fixed')\n\n        this.top = boxDirective.top - boxParent.top\n        this.left = boxDirective.left - boxParent.left\n      }\n\n      if (position === 'fixed') {\n        this.position = 'fixed'\n      }\n\n      let usePosition = this.cpPosition\n\n      const dialogBounds =\n        this.dialogElement.nativeElement.getBoundingClientRect()\n      if (this.cpPosition === 'auto') {\n        const triggerBounds =\n          this.cpTriggerElement.nativeElement.getBoundingClientRect()\n        usePosition = calculateAutoPositioning(\n          dialogBounds,\n          triggerBounds,\n          this.window\n        )\n      }\n\n      this.arrowTop = usePosition === 'top' ? dialogHeight - 1 : undefined\n      this.cpArrowPosition = undefined\n\n      switch (usePosition) {\n        case 'top':\n          this.top -= dialogHeight + this.dialogArrowSize\n          this.left +=\n            (this.cpPositionOffset / 100) * boxDirective.width -\n            this.dialogArrowOffset\n          break\n        case 'bottom':\n          this.top += boxDirective.height + this.dialogArrowSize\n          this.left +=\n            (this.cpPositionOffset / 100) * boxDirective.width -\n            this.dialogArrowOffset\n          break\n        case 'top-left':\n        case 'left-top':\n          this.top -=\n            dialogHeight -\n            boxDirective.height +\n            (boxDirective.height * this.cpPositionOffset) / 100\n          this.left -=\n            this.cpWidth + this.dialogArrowSize - 2 - this.dialogArrowOffset\n          break\n        case 'top-right':\n        case 'right-top':\n          this.top -=\n            dialogHeight -\n            boxDirective.height +\n            (boxDirective.height * this.cpPositionOffset) / 100\n          this.left +=\n            boxDirective.width +\n            this.dialogArrowSize -\n            2 -\n            this.dialogArrowOffset\n          break\n        case 'left':\n        case 'bottom-left':\n        case 'left-bottom':\n          this.top +=\n            (boxDirective.height * this.cpPositionOffset) / 100 -\n            this.dialogArrowOffset\n          this.left -= this.cpWidth + this.dialogArrowSize - 2\n          break\n        case 'right':\n        case 'bottom-right':\n        case 'right-bottom':\n        default:\n          this.top +=\n            (boxDirective.height * this.cpPositionOffset) / 100 -\n            this.dialogArrowOffset\n          this.left += boxDirective.width + this.dialogArrowSize - 2\n          break\n      }\n\n      const windowInnerHeight = this.window.innerHeight\n      const windowInnerWidth = this.window.innerWidth\n      const elRefClientRect = this.elRef.nativeElement.getBoundingClientRect()\n      const bottom = this.top + dialogBounds.height\n      if (bottom > windowInnerHeight) {\n        this.top = windowInnerHeight - dialogBounds.height\n        this.cpArrowPosition = elRefClientRect.x / 2 - 20\n      }\n      const right = this.left + dialogBounds.width\n      if (right > windowInnerWidth) {\n        this.left = windowInnerWidth - dialogBounds.width\n        this.cpArrowPosition = elRefClientRect.x / 2 - 20\n      }\n\n      this.cpUsePosition = usePosition\n    }\n  }\n\n  // Private helper functions for the color picker dialog positioning and opening\n\n  private isDescendant(parent: any, child: any): boolean {\n    let node: any = child.parentNode\n\n    while (node !== null) {\n      if (node === parent) {\n        return true\n      }\n\n      node = node.parentNode\n    }\n\n    return false\n  }\n\n  private createDialogBox(element: any, offset: boolean): any {\n    const { top, left } = element.getBoundingClientRect()\n    return {\n      top: top + (offset ? this.window.pageYOffset : 0),\n      left: left + (offset ? this.window.pageXOffset : 0),\n      width: element.offsetWidth,\n      height: element.offsetHeight\n    }\n  }\n}\n","<div #dialogPopup class=\"color-picker\" [class.open]=\"show\" [style.display]=\"!show ? 'none' : 'block'\" [style.visibility]=\"hidden ? 'hidden' : 'visible'\" [style.top.px]=\"top\" [style.left.px]=\"left\" [style.position]=\"position\" [style.height.px]=\"cpHeight\" [style.width.px]=\"cpWidth\" (click)=\"$event.stopPropagation()\">\n  <div *ngIf=\"cpDialogDisplay === 'popup'\" [style.left]=\"cpArrowPosition\" class=\"arrow arrow-{{cpUsePosition}}\" [style.top.px]=\"arrowTop\"></div>\n\n  <div *ngIf=\"(cpColorMode || 1) === 1\" class=\"saturation-lightness\" slider [rgX]=\"1\" [rgY]=\"1\" [style.background-color]=\"hueSliderColor\" (newValue)=\"onColorChange($event)\" (dragStart)=\"onDragStart('saturation-lightness')\" (dragEnd)=\"onDragEnd('saturation-lightness')\">\n    <div class=\"cursor\" [style.top.px]=\"slider?.v\" [style.left.px]=\"slider?.s\"></div>\n  </div>\n\n  <div class=\"hue-alpha box\">\n    <div class=\"left\">\n      <div class=\"selected-color-background\"></div>\n\n      <div class=\"selected-color\" [style.background-color]=\"selectedColor\" [style.cursor]=\"eyeDropperSupported && cpEyeDropper ? 'pointer' : null\" (click)=\"eyeDropperSupported && cpEyeDropper && onEyeDropper()\">\n        <svg *ngIf=\"eyeDropperSupported && cpEyeDropper\" class=\"eyedropper-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z\"/></svg>\n      </div>\n\n      <button *ngIf=\"cpAddColorButton\" type=\"button\" class=\"{{cpAddColorButtonClass}}\" [disabled]=\"cpPresetColors && cpPresetColors.length >= cpMaxPresetColorsLength\" (click)=\"onAddPresetColor($event, selectedColor)\">\n        {{cpAddColorButtonText}}\n      </button>\n    </div>\n\n    <div class=\"right\">\n      <div *ngIf=\"cpAlphaChannel==='disabled'\" style=\"height: 16px;\"></div>\n\n      <div #hueSlider class=\"hue\" slider [rgX]=\"1\" [style.display]=\"(cpColorMode || 1) === 1 ? 'block' : 'none'\" (newValue)=\"onHueChange($event)\" (dragStart)=\"onDragStart('hue')\" (dragEnd)=\"onDragEnd('hue')\">\n        <div class=\"cursor\" [style.left.px]=\"slider?.h\"></div>\n      </div>\n\n      <div #valueSlider class=\"value\" slider [rgX]=\"1\" [style.display]=\"(cpColorMode || 1) === 2 ? 'block': 'none'\" (newValue)=\"onValueChange($event)\" (dragStart)=\"onDragStart('value')\" (dragEnd)=\"onDragEnd('value')\">\n        <div class=\"cursor\" [style.right.px]=\"slider?.v\"></div>\n      </div>\n\n      <div #alphaSlider class=\"alpha\" slider [rgX]=\"1\" [style.display]=\"cpAlphaChannel === 'disabled' ? 'none' : 'block'\" [style.background-color]=\"alphaSliderColor\" (newValue)=\"onAlphaChange($event)\" (dragStart)=\"onDragStart('alpha')\" (dragEnd)=\"onDragEnd('alpha')\">\n        <div class=\"cursor\" [style.left.px]=\"slider?.a\"></div>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 1\" class=\"cmyk-text\" [style.display]=\"format !== 3 ? 'none' : 'block'\">\n    <div class=\"box\">\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"cmykText?.c\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onCyanInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"cmykText?.m\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onMagentaInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"cmykText?.y\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onYellowInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"cmykText?.k\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onBlackInput($event)\" />\n      <input *ngIf=\"cpAlphaChannel!=='disabled'\" type=\"number\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" step=\"0.1\" [text] [rg]=\"1\" [value]=\"cmykText?.a\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onAlphaInput($event)\" />\n    </div>\n\n     <div class=\"box\">\n      <div>C</div><div>M</div><div>Y</div><div>K</div><div *ngIf=\"cpAlphaChannel!=='disabled'\" >A</div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 1 \" class=\"hsla-text\" [style.display]=\"format !== 2 ? 'none' : 'block'\">\n    <div class=\"box\">\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"360\" [text] [rg]=\"360\" [value]=\"hslaText?.h\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onHueInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"hslaText?.s\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onSaturationInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"hslaText?.l\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onLightnessInput($event)\" />\n      <input *ngIf=\"cpAlphaChannel!=='disabled'\" type=\"number\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" step=\"0.1\" [text] [rg]=\"1\" [value]=\"hslaText?.a\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onAlphaInput($event)\" />\n    </div>\n\n    <div class=\"box\">\n      <div>H</div><div>S</div><div>L</div><div *ngIf=\"cpAlphaChannel!=='disabled'\">A</div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 1 \" [style.display]=\"format !== 1 ? 'none' : 'block'\" class=\"rgba-text\">\n    <div class=\"box\">\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [text] [rg]=\"255\" [value]=\"rgbaText?.r\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onRedInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [text] [rg]=\"255\" [value]=\"rgbaText?.g\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onGreenInput($event)\" />\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [text] [rg]=\"255\" [value]=\"rgbaText?.b\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onBlueInput($event)\" />\n      <input *ngIf=\"cpAlphaChannel!=='disabled'\" type=\"number\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" step=\"0.1\" [text] [rg]=\"1\" [value]=\"rgbaText?.a\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onAlphaInput($event)\" />\n    </div>\n\n    <div class=\"box\">\n      <div>R</div><div>G</div><div>B</div><div *ngIf=\"cpAlphaChannel!=='disabled'\" >A</div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 1\" class=\"hex-text\" [class.hex-alpha]=\"cpAlphaChannel==='forced'\"\n    [style.display]=\"format !== 0 ? 'none' : 'block'\">\n    <div class=\"box\">\n      <input [text] [value]=\"hexText\" (blur)=\"onHexInput(null)\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onHexInput($event)\"/>\n      <input *ngIf=\"cpAlphaChannel==='forced'\" type=\"number\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" step=\"0.1\" [text] [rg]=\"1\" [value]=\"hexAlpha\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onAlphaInput($event)\"/>\n    </div>\n\n    <div class=\"box\">\n      <div>Hex</div>\n      <div *ngIf=\"cpAlphaChannel==='forced'\">A</div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 2\" class=\"value-text\">\n    <div class=\"box\">\n      <input type=\"number\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [text] [rg]=\"100\" [value]=\"hslaText?.l\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onValueInput($event)\" />\n      <input *ngIf=\"cpAlphaChannel!=='disabled'\" type=\"number\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" step=\"0.1\"  [text] [rg]=\"1\" [value]=\"hslaText?.a\" (keyup.enter)=\"onAcceptColor($event)\" (newValue)=\"onAlphaInput($event)\" />\n    </div>\n\n    <div class=\"box\">\n      <div>V</div><div>A</div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!cpDisableInput && (cpColorMode || 1) === 1\" class=\"type-policy\">\n    <span class=\"type-policy-arrow\" (click)=\"onFormatToggle(-1)\"></span>\n    <span class=\"type-policy-arrow\" (click)=\"onFormatToggle(1)\"></span>\n  </div>\n\n  <div *ngIf=\"cpPresetColors?.length || cpAddColorButton\" class=\"preset-area\">\n    <hr>\n\n    <div class=\"preset-label\">{{cpPresetLabel}}</div>\n\n    <div *ngIf=\"cpPresetColors?.length\" class=\"{{cpPresetColorsClass}}\">\n      <div *ngFor=\"let color of cpPresetColors\" class=\"preset-color\" [style.backgroundColor]=\"color\" (click)=\"setColorFromString(color)\">\n        <span *ngIf=\"cpAddColorButton\" class=\"{{cpRemoveColorButtonClass}}\" (click)=\"onRemovePresetColor($event, color)\"></span>\n      </div>\n    </div>\n\n    <div *ngIf=\"!cpPresetColors?.length && cpAddColorButton\" class=\"{{cpPresetEmptyMessageClass}}\">{{cpPresetEmptyMessage}}</div>\n  </div>\n\n  <div *ngIf=\"cpOKButton || cpCancelButton\" class=\"button-area\">\n    <button *ngIf=\"cpCancelButton\" type=\"button\" class=\"{{cpCancelButtonClass}}\" (click)=\"onCancelColor($event)\">{{cpCancelButtonText}}</button>\n\n    <button *ngIf=\"cpOKButton\" type=\"button\" class=\"{{cpOKButtonClass}}\" (click)=\"onAcceptColor($event)\">{{cpOKButtonText}}</button>\n  </div>\n\n  <div class=\"extra-template\" *ngIf=\"cpExtraTemplate\">\n    <ng-container *ngTemplateOutlet=\"cpExtraTemplate\"></ng-container>\n  </div>\n</div>\n","import {\n  Directive,\n  OnChanges,\n  OnDestroy,\n  Input,\n  Output,\n  EventEmitter,\n  HostListener,\n  ApplicationRef,\n  ComponentRef,\n  ElementRef,\n  ViewContainerRef,\n  Injector,\n  EmbeddedViewRef,\n  TemplateRef,\n  isDevMode,\n  inject,\n} from '@angular/core'\n\nimport { ColorPickerComponent } from './color-picker.component'\n\nimport { AlphaChannel, ColorMode, OutputFormat } from './helpers'\n\n@Directive({\n  selector: '[colorPicker]',\n  exportAs: 'ngxColorPicker',\n})\nexport class ColorPickerDirective implements OnChanges, OnDestroy {\n  private readonly injector = inject(Injector)\n  private readonly appRef = inject(ApplicationRef)\n  private readonly vcRef = inject(ViewContainerRef)\n  private readonly elRef = inject(ElementRef)\n\n  private dialog: any\n\n  private dialogCreated: boolean = false\n  private ignoreChanges: boolean = false\n\n  private cmpRef: ComponentRef<ColorPickerComponent>\n  private viewAttachedToAppRef: boolean = false\n\n  @Input() colorPicker: string\n\n  @Input() cpWidth: string = '230px'\n  @Input() cpHeight: string = 'auto'\n\n  @Input() cpToggle: boolean = false\n  @Input() cpDisabled: boolean = false\n\n  @Input() cpIgnoredElements: any = []\n\n  @Input() cpFallbackColor: string = ''\n\n  @Input() cpColorMode: ColorMode = 'color'\n\n  @Input() cpCmykEnabled: boolean = false\n\n  @Input() cpOutputFormat: OutputFormat = 'auto'\n  @Input() cpAlphaChannel: AlphaChannel = 'enabled'\n\n  @Input() cpDisableInput: boolean = false\n\n  @Input() cpDialogDisplay: string = 'popup'\n\n  @Input() cpSaveClickOutside: boolean = true\n  @Input() cpCloseClickOutside: boolean = true\n\n  @Input() cpUseRootViewContainer: boolean = false\n\n  @Input() cpPosition: string = 'auto'\n  @Input() cpPositionOffset: string = '0%'\n  @Input() cpPositionRelativeToArrow: boolean = false\n\n  @Input() cpOKButton: boolean = false\n  @Input() cpOKButtonText: string = 'OK'\n  @Input() cpOKButtonClass: string = 'cp-ok-button-class'\n\n  @Input() cpCancelButton: boolean = false\n  @Input() cpCancelButtonText: string = 'Cancel'\n  @Input() cpCancelButtonClass: string = 'cp-cancel-button-class'\n\n  @Input() cpEyeDropper: boolean = false\n\n  @Input() cpPresetLabel: string = 'Preset colors'\n  @Input() cpPresetColors: string[]\n  @Input() cpPresetColorsClass: string = 'cp-preset-colors-class'\n  @Input() cpMaxPresetColorsLength: number = 6\n\n  @Input() cpPresetEmptyMessage: string = 'No colors added'\n  @Input() cpPresetEmptyMessageClass: string = 'preset-empty-message'\n\n  @Input() cpAddColorButton: boolean = false\n  @Input() cpAddColorButtonText: string = 'Add color'\n  @Input() cpAddColorButtonClass: string = 'cp-add-color-button-class'\n\n  @Input() cpRemoveColorButtonClass: string = 'cp-remove-color-button-class'\n  @Input() cpArrowPosition: number = 0\n\n  @Input() cpExtraTemplate: TemplateRef<any>\n\n  @Output() cpInputChange = new EventEmitter<{\n    input: string\n    value: number | string\n    color: string\n  }>(true)\n\n  @Output() cpToggleChange = new EventEmitter<boolean>(true)\n\n  @Output() cpSliderChange = new EventEmitter<{\n    slider: string\n    value: string | number\n    color: string\n  }>(true)\n  @Output() cpSliderDragEnd = new EventEmitter<{\n    slider: string\n    color: string\n  }>(true)\n  @Output() cpSliderDragStart = new EventEmitter<{\n    slider: string\n    color: string\n  }>(true)\n\n  @Output() colorPickerOpen = new EventEmitter<string>(true)\n  @Output() colorPickerClose = new EventEmitter<string>(true)\n\n  @Output() colorPickerCancel = new EventEmitter<string>(true)\n  @Output() colorPickerSelect = new EventEmitter<string>(true)\n  @Output() colorPickerChange = new EventEmitter<string>(false)\n\n  @Output() cpCmykColorChange = new EventEmitter<string>(true)\n\n  @Output() cpPresetColorsChange = new EventEmitter<any>(true)\n\n  @HostListener('click') handleClick(): void {\n    this.inputFocus()\n  }\n\n  @HostListener('focus') handleFocus(): void {\n    this.inputFocus()\n  }\n\n  @HostListener('input', ['$event']) handleInput(event: any): void {\n    this.inputChange(event)\n  }\n\n  ngOnDestroy(): void {\n    if (this.cmpRef != null) {\n      if (this.viewAttachedToAppRef) {\n        this.appRef.detachView(this.cmpRef.hostView)\n      }\n\n      this.cmpRef.destroy()\n\n      this.cmpRef = null\n      this.dialog = null\n    }\n  }\n\n  ngOnChanges(changes: any): void {\n    if (changes.cpToggle && !this.cpDisabled) {\n      if (changes.cpToggle.currentValue) {\n        this.openDialog()\n      } else if (!changes.cpToggle.currentValue) {\n        this.closeDialog()\n      }\n    }\n\n    if (changes.colorPicker) {\n      if (this.dialog && !this.ignoreChanges) {\n        if (this.cpDialogDisplay === 'inline') {\n          this.dialog.setInitialColor(changes.colorPicker.currentValue)\n        }\n\n        this.dialog.setColorFromString(changes.colorPicker.currentValue, false)\n\n        if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n          this.cmpRef.changeDetectorRef.detectChanges()\n        }\n      }\n\n      this.ignoreChanges = false\n    }\n\n    if (changes.cpPresetLabel || changes.cpPresetColors) {\n      if (this.dialog) {\n        this.dialog.setPresetConfig(this.cpPresetLabel, this.cpPresetColors)\n      }\n    }\n  }\n\n  public openDialog(): void {\n    if (!this.dialogCreated) {\n      let vcRef = this.vcRef\n\n      this.dialogCreated = true\n      this.viewAttachedToAppRef = false\n\n      if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n        const classOfRootComponent = this.appRef.componentTypes[0]\n        const appInstance = this.injector.get(\n          classOfRootComponent,\n          Injector.NULL\n        )\n\n        if (appInstance !== Injector.NULL) {\n          vcRef =\n            appInstance.vcRef || appInstance.viewContainerRef || this.vcRef\n\n          if (isDevMode() && vcRef === this.vcRef) {\n            console.warn(\n              'You are using cpUseRootViewContainer, ' +\n                'but the root component is not exposing viewContainerRef!' +\n                \"Please expose it by adding 'public vcRef: ViewContainerRef' to the constructor.\"\n            )\n          }\n        } else {\n          this.viewAttachedToAppRef = true\n        }\n      }\n\n      if (this.viewAttachedToAppRef) {\n        this.cmpRef = vcRef.createComponent(ColorPickerComponent, {\n          injector: this.injector,\n        })\n        document.body.appendChild(\n          (this.cmpRef.hostView as EmbeddedViewRef<any>)\n            .rootNodes[0] as HTMLElement\n        )\n      } else {\n        const injector = Injector.create({\n          providers: [],\n          // We shouldn't use `vcRef.parentInjector` since it's been deprecated long time ago and might be removed\n          // in newer Angular versions: https://github.com/angular/angular/pull/25174.\n          parent: vcRef.injector,\n        })\n\n        this.cmpRef = vcRef.createComponent(ColorPickerComponent, {\n          injector,\n          index: 0,\n        })\n      }\n\n      this.cmpRef.instance.setupDialog(\n        this,\n        this.elRef,\n        this.colorPicker,\n        this.cpWidth,\n        this.cpHeight,\n        this.cpDialogDisplay,\n        this.cpFallbackColor,\n        this.cpColorMode,\n        this.cpCmykEnabled,\n        this.cpAlphaChannel,\n        this.cpOutputFormat,\n        this.cpDisableInput,\n        this.cpIgnoredElements,\n        this.cpSaveClickOutside,\n        this.cpCloseClickOutside,\n        this.cpUseRootViewContainer,\n        this.cpPosition,\n        this.cpPositionOffset,\n        this.cpPositionRelativeToArrow,\n        this.cpPresetLabel,\n        this.cpPresetColors,\n        this.cpPresetColorsClass,\n        this.cpMaxPresetColorsLength,\n        this.cpPresetEmptyMessage,\n        this.cpPresetEmptyMessageClass,\n        this.cpOKButton,\n        this.cpOKButtonClass,\n        this.cpOKButtonText,\n        this.cpCancelButton,\n        this.cpCancelButtonClass,\n        this.cpCancelButtonText,\n        this.cpAddColorButton,\n        this.cpAddColorButtonClass,\n        this.cpAddColorButtonText,\n        this.cpRemoveColorButtonClass,\n        this.cpEyeDropper,\n        this.elRef,\n        this.cpExtraTemplate\n      )\n\n      this.dialog = this.cmpRef.instance\n\n      if (this.vcRef !== vcRef) {\n        this.cmpRef.changeDetectorRef.detectChanges()\n      }\n    } else if (this.dialog) {\n      // Update properties.\n      this.cmpRef.instance.cpAlphaChannel = this.cpAlphaChannel\n\n      // Open dialog.\n      this.dialog.openDialog(this.colorPicker)\n    }\n  }\n\n  public closeDialog(): void {\n    if (this.dialog && this.cpDialogDisplay === 'popup') {\n      this.dialog.closeDialog()\n    }\n  }\n\n  public cmykChanged(value: string): void {\n    this.cpCmykColorChange.emit(value)\n  }\n\n  public stateChanged(state: boolean): void {\n    this.cpToggleChange.emit(state)\n\n    if (state) {\n      this.colorPickerOpen.emit(this.colorPicker)\n    } else {\n      this.colorPickerClose.emit(this.colorPicker)\n    }\n  }\n\n  public colorChanged(value: string, ignore: boolean = true): void {\n    this.ignoreChanges = ignore\n\n    this.colorPickerChange.emit(value)\n  }\n\n  public colorSelected(value: string): void {\n    this.colorPickerSelect.emit(value)\n  }\n\n  public colorCanceled(): void {\n    this.colorPickerCancel.emit()\n  }\n\n  public inputFocus(): void {\n    const element = this.elRef.nativeElement\n\n    const ignored = this.cpIgnoredElements.filter(\n      (item: any) => item === element\n    )\n\n    if (!this.cpDisabled && !ignored.length) {\n      if (\n        typeof document !== 'undefined' &&\n        element === document.activeElement\n      ) {\n        this.openDialog()\n      } else if (!this.dialog || !this.dialog.show) {\n        this.openDialog()\n      } else {\n        this.closeDialog()\n      }\n    }\n  }\n\n  public inputChange(event: any): void {\n    if (this.dialog) {\n      this.dialog.setColorFromString(event.target.value, true)\n    } else {\n      this.colorPicker = event.target.value\n\n      this.colorPickerChange.emit(this.colorPicker)\n    }\n  }\n\n  public inputChanged(event: any): void {\n    this.cpInputChange.emit(event)\n  }\n\n  public sliderChanged(event: any): void {\n    this.cpSliderChange.emit(event)\n  }\n\n  public sliderDragEnd(event: { slider: string; color: string }): void {\n    this.cpSliderDragEnd.emit(event)\n  }\n\n  public sliderDragStart(event: { slider: string; color: string }): void {\n    this.cpSliderDragStart.emit(event)\n  }\n\n  public presetColorsChanged(value: any[]): void {\n    this.cpPresetColorsChange.emit(value)\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}