{"version":3,"file":"ngx-colors.mjs","sources":["../../../projects/ngx-colors/src/lib/helpers/formats.ts","../../../projects/ngx-colors/src/lib/enums/formats.ts","../../../projects/ngx-colors/src/lib/helpers/default-colors.ts","../../../projects/ngx-colors/src/lib/clases/formats.ts","../../../projects/ngx-colors/src/lib/clases/color.ts","../../../projects/ngx-colors/src/lib/services/converter.service.ts","../../../projects/ngx-colors/src/lib/clases/slider.ts","../../../projects/ngx-colors/src/lib/directives/slider.directive.ts","../../../projects/ngx-colors/src/lib/components/color-picker/color-picker.component.ts","../../../projects/ngx-colors/src/lib/components/color-picker/color-picker.component.html","../../../projects/ngx-colors/src/lib/components/panel/panel.component.ts","../../../projects/ngx-colors/src/lib/components/panel/panel.component.html","../../../projects/ngx-colors/src/lib/services/overlay-styles.ts","../../../projects/ngx-colors/src/lib/services/panel-factory.service.ts","../../../projects/ngx-colors/src/lib/directives/ngx-colors-trigger.directive.ts","../../../projects/ngx-colors/src/lib/ngx-colors.component.ts","../../../projects/ngx-colors/src/lib/ngx-colors.component.html","../../../projects/ngx-colors/src/lib/ngx-colors.module.ts","../../../projects/ngx-colors/src/lib/validators/valid-color.validator.ts","../../../projects/ngx-colors/src/public-api.ts","../../../projects/ngx-colors/src/ngx-colors.ts"],"sourcesContent":["export const formats = ['hex','rgba','hsla', 'cmyk']","export enum ColorFormats {\n    HEX,\n    RGBA,\n    HSLA,\n    CMYK\n  }","export const defaultColors = [\n    {\n        color: \"rojo\", preview: \"#E57373\", variants:\n            [\"#FFEBEE\", \"#FFCDD2\", \"#EF9A9A\", \"#E57373\", \"#EF5350\", \"#F44336\", \"#E53935\", \"#D32F2F\", \"#C62828\"]\n    },\n    {\n        color: \"rosa\", preview: \"#F06292\", variants:\n            [\"#FCE4EC\", \"#F8BBD0\", \"#F48FB1\", \"#F06292\", \"#EC407A\", \"#E91E63\", \"#D81B60\", \"#C2185B\", \"#AD1457\"]\n    },\n    {\n        color: \"purpura\", preview: \"#BA68C8\", variants:\n            [\"#F3E5F5\", \"#E1BEE7\", \"#CE93D8\", \"#BA68C8\", \"#AB47BC\", \"#9C27B0\", \"#8E24AA\", \"#7B1FA2\", \"#6A1B9A\"]\n    },\n    {\n        color: \"purpura oscuro\", preview: \"#9575CD\", variants:\n            [\"#EDE7F6\", \"#D1C4E9\", \"#B39DDB\", \"#9575CD\", \"#7E57C2\", \"#673AB7\", \"#5E35B1\", \"#512DA8\", \"#4527A0\"]\n    },\n    {\n        color: \"indigo\", preview: \"#7986CB\", variants:\n            [\"#E8EAF6\", \"#C5CAE9\", \"#9FA8DA\", \"#7986CB\", \"#5C6BC0\", \"#3F51B5\", \"#3949AB\", \"#303F9F\", \"#283593\"]\n    },\n    {\n        color: \"azul\", preview: \"#64B5F6\", variants:\n            [\"#E3F2FD\", \"#BBDEFB\", \"#90CAF9\", \"#64B5F6\", \"#42A5F5\", \"#2196F3\", \"#1E88E5\", \"#1976D2\", \"#1565C0\"]\n    },\n    {\n        color: \"celeste\", preview: \"#4FC3F7\", variants:\n            [\"#E1F5FE\", \"#B3E5FC\", \"#81D4FA\", \"#4FC3F7\", \"#29B6F6\", \"#03A9F4\", \"#039BE5\", \"#0288D1\", \"#0277BD\"]\n    },\n    {\n        color: \"cyan\", preview: \"#4DD0E1\", variants:\n            [\"#E0F7FA\", \"#B2EBF2\", \"#80DEEA\", \"#4DD0E1\", \"#26C6DA\", \"#00BCD4\", \"#00ACC1\", \"#0097A7\", \"#00838F\"]\n    },\n    {\n        color: \"color\", preview: \"#4DB6AC\", variants:\n            [\"#E0F2F1\", \"#B2DFDB\", \"#80CBC4\", \"#4DB6AC\", \"#26A69A\", \"#009688\", \"#00897B\", \"#00796B\", \"#00695C\"]\n    },\n    {\n        color: \"verde\", preview: \"#81C784\", variants:\n            [\"#E8F5E9\", \"#C8E6C9\", \"#A5D6A7\", \"#81C784\", \"#66BB6A\", \"#4CAF50\", \"#43A047\", \"#388E3C\", \"#2E7D32\"]\n    },\n    {\n        color: \"verde claro\", preview: \"#AED581\", variants:\n            [\"#F1F8E9\", \"#DCEDC8\", \"#C5E1A5\", \"#AED581\", \"#9CCC65\", \"#8BC34A\", \"#7CB342\", \"#689F38\", \"#558B2F\"]\n    },\n    {\n        color: \"lima\", preview: \"#DCE775\", variants:\n            [\"#F9FBE7\", \"#F0F4C3\", \"#E6EE9C\", \"#DCE775\", \"#D4E157\", \"#CDDC39\", \"#C0CA33\", \"#AFB42B\", \"#9E9D24\"]\n    },\n    {\n        color: \"amarillo\", preview: \"#FFF176\", variants:\n            [\"#FFFDE7\", \"#FFF9C4\", \"#FFF59D\", \"#FFF176\", \"#FFEE58\", \"#FFEB3B\", \"#FDD835\", \"#FBC02D\", \"#F9A825\"]\n    },\n    {\n        color: \"ambar\", preview: \"#FFD54F\", variants:\n            [\"#FFF8E1\", \"#FFECB3\", \"#FFE082\", \"#FFD54F\", \"#FFCA28\", \"#FFC107\", \"#FFB300\", \"#FFA000\", \"#FF8F00\"]\n    },\n    {\n        color: \"naranja\", preview: \"#FFB74D\", variants:\n            [\"#FFF3E0\", \"#FFE0B2\", \"#FFCC80\", \"#FFB74D\", \"#FFA726\", \"#FF9800\", \"#FB8C00\", \"#F57C00\", \"#EF6C00\"]\n    },\n    {\n        color: \"naranja oscuro\", preview: \"#FF8A65\", variants:\n            [\"#FBE9E7\", \"#FFCCBC\", \"#FFAB91\", \"#FF8A65\", \"#FF7043\", \"#FF5722\", \"#F4511E\", \"#E64A19\", \"#D84315\"]\n    },\n    {\n        color: \"marron\", preview: \"#A1887F\", variants:\n            [\"#EFEBE9\", \"#D7CCC8\", \"#BCAAA4\", \"#A1887F\", \"#8D6E63\", \"#795548\", \"#6D4C41\", \"#5D4037\", \"#4E342E\"]\n    },\n    {\n        color: \"escala de grises\", preview: \"#E0E0E0\", variants:\n            [\"#FFFFFF\", \"#FAFAFA\", \"#F5F5F5\", \"#EEEEEE\", \"#E0E0E0\", \"#BDBDBD\", \"#9E9E9E\", \"#757575\", \"#616161\", \"#424242\", \"#000000\"]\n    },\n    {\n        color: \"azul gris\", preview: \"#90A4AE\", variants:\n            [\"#ECEFF1\", \"#CFD8DC\", \"#B0BEC5\", \"#90A4AE\", \"#78909C\", \"#607D8B\", \"#546E7A\", \"#455A64\", \"#37474F\"]\n    }] \n","import { EventEmitter, Output } from '@angular/core';\nimport { ColorFormats } from '../enums/formats';\nimport { ConverterService } from '../services/converter.service';\n\nexport class Rgba {\n  constructor(public r: number, public g: number, public b: number, public a: number) {}\n\n  public denormalize():Rgba{\n    this.r = Math.round(this.r * 255);\n    this.g = Math.round(this.g * 255);\n    this.b = Math.round(this.b * 255);\n    return this;\n  }\n\n  public toString():string{\n    this.denormalize();\n    let output =  \n    'rgb' + \n    (this.a != 1 ? 'a(' : '(')+\n    this.r + ', ' +\n    this.g + ', ' +\n    this.b + \n    (this.a != 1 ? ', ' + this.a.toPrecision(2) + ')' : ')')\n    return output;\n  }\n\n\n}\n\nexport class Hsva {\n\n  public onChange:EventEmitter<Hsva> = new EventEmitter<Hsva>(true);\n\n  constructor(public h: number, public s: number, public v: number, public a: number) {\n    \n  }\n\n  public onColorChange(value: { s: number, v: number, rgX: number, rgY: number }): void {\n    this.s = value.s / value.rgX;\n    this.v = value.v / value.rgY;\n  }\n\n  public onHueChange(value: { v: number, rgX: number }): void {\n    this.h = value.v / value.rgX;\n    // this.sliderH = this.hsva.h;\n  }\n\n  public onValueChange(value: { v: number, rgX: number }): void {\n    this.v = value.v / value.rgX;\n  }\n\n  public onAlphaChange(value: { v: number, rgX: number }): void {\n    this.a = value.v / value.rgX;\n  }\n\n}\n\nexport class Hsla {\n  constructor(public h: number, public s: number, public l: number, public a: number) {}\n  \n  public denormalize():Hsla{\n    this.h = Math.round(this.h * 360);\n    this.s = Math.round(this.s * 100);\n    this.l = Math.round(this.l * 100);\n    return this;\n  }\n  public toString():string{\n    let output =  \n    'hsl' + \n    (this.a != 1 ? 'a(': '(') +\n    this.h + ', ' +\n    this.s + '%, ' +\n    this.l + '%' + \n    (this.a != 1 ? ', ' + this.a.toPrecision(2) + ')' : ')')\n    return output;\n  }\n\n}\n\nexport class Cmyk {\n  constructor(public c: number, public m: number, public y: number, public k: number, public a: number = 1) {}\n\n  public denormalize():Cmyk{\n    this.c = Math.round(this.c * 100);\n    this.m = Math.round(this.m * 100);\n    this.y = Math.round(this.y * 100);\n    this.k = Math.round(this.k * 100);\n    return this;\n  }\n  public toString():string {\n    this.denormalize();\n    let output =  \n    'cmyk(' + \n    this.c + ', ' +\n    this.m + ', ' +\n    this.y + ', ' + \n    this.k + ')';\n    return output;\n  }\n}\n","export class NgxColorsColor {\n  preview: string;\n  variants: Array<string>;\n  constructor(params?) {\n    if (params) {\n      this.preview = params.preview;\n      this.variants = params.variants;\n    }\n  }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Cmyk, Rgba, Hsla, Hsva } from \"../clases/formats\";\n\nimport { ColorPickerComponent } from \"../components/color-picker/color-picker.component\";\nimport { ColorFormats } from \"../enums/formats\";\n\n@Injectable()\nexport class ConverterService {\n  // private active: ColorPickerComponent | null = null;\n\n  constructor() {}\n\n  // public setActive(active: ColorPickerComponent | null): void {\n  //   this.active = active;\n  // }\n\n  toFormat(hsva: Hsva, format: ColorFormats) {\n    var output = \"\";\n    if (hsva) {\n      switch (format) {\n        case ColorFormats.HEX:\n          var rgba: Rgba = this.hsvaToRgba(hsva);\n          rgba.denormalize();\n          var output = this.rgbaToHex(rgba, true);\n          break;\n        case ColorFormats.HSLA:\n          var hsla: Hsla = this.hsva2hsla(hsva);\n          hsla.denormalize();\n          var output = hsla.toString();\n          break;\n        case ColorFormats.RGBA:\n          var rgba: Rgba = this.hsvaToRgba(hsva);\n          var output = rgba.toString();\n          break;\n        case ColorFormats.CMYK:\n          var cmyk: Cmyk = this.hsvaToCmyk(hsva);\n          var output = cmyk.toString();\n          break;\n      }\n    }\n    return output;\n  }\n\n  public stringToFormat(color: string, format: ColorFormats) {\n    var hsva = this.stringToHsva(color, true);\n    return this.toFormat(hsva, format);\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 hsvaToCmyk(hsva: Hsva): Cmyk {\n    let rgba = this.hsvaToRgba(hsva);\n    let cmyk = this.rgbaToCmyk(rgba);\n    \n    return cmyk;\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    /* tslint: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 (rgba.a != 1) {\n      hex += ((1 << 8) | Math.round(rgba.a * 255)).toString(16).substr(1);\n    }\n    /* tslint: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 = true\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        re: /cmyk?\\(\\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 Cmyk(\n            parseInt(execResult[1], 10) / 100,\n            parseInt(execResult[2], 10) / 100,\n            parseInt(execResult[3], 10) / 100,\n            parseInt(execResult[4], 10) / 100\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          } else if (color instanceof Cmyk) {\n            let rgb = this.cmykToRgb(color);\n            hsva = this.rgbaToHsva(rgb);\n          }\n\n          return hsva;\n        }\n      }\n    }\n\n    return hsva;\n  }\n\n  public outputFormat(hsva: Hsva): string {\n    return this.hsvaToRgba(hsva).toString();\n  }\n\n  public getFormatByString(color: string): string {\n    if (color) {\n      color = color.toLowerCase();\n      let regexHex: RegExp = /(#([\\da-f]{3}(?:[\\da-f]{3})?(?:[\\da-f]{2})?))/;\n      let regexRGBA: RegExp =\n        /(rgba\\((\\d{1,3},\\s?){3}(1|0?\\.\\d+)\\)|rgb\\(\\d{1,3}(,\\s?\\d{1,3}){2}\\))/;\n      let regexHSLA: RegExp =\n        /(hsla\\((\\d{1,3}%?,\\s?){3}(1|0?\\.\\d+)\\)|hsl\\(\\d{1,3}%?(,\\s?\\d{1,3}%?){2}\\))/;\n      let regexCMYK: RegExp =\n        /(cmyk\\(\\d{1,3}(,\\s?\\d{1,3}){3}\\))/;\n      if (regexHex.test(color)) {\n        return \"hex\";\n      } else if (regexRGBA.test(color)) {\n        return \"rgba\";\n      } else if (regexHSLA.test(color)) {\n        return \"hsla\";\n      } else if (regexCMYK.test(color)) {\n        return \"cmyk\";\n      }\n    }\n    return \"hex\";\n  }\n}\n","export class SliderPosition {\n    constructor(public h: number, public s: number, public v: number, public a: number) {}\n}\n  \nexport class SliderDimension {\n    constructor(public h: number, public s: number, public v: number, public a: number) {}\n}","import { Input, Directive, Output, EventEmitter, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n    selector: '[slider]'\n  })\n  export class SliderDirective {\n    private listenerMove: any;\n    private listenerStop: any;\n  \n    @Input() rgX: number;\n    @Input() rgY: number;\n  \n    @Input() slider: string;\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(private elRef: ElementRef) {\n      this.listenerMove = (event: any) => this.move(event);\n  \n      this.listenerStop = () => this.stop();\n    }\n  \n    private move(event: any): void {\n      event.preventDefault();\n  \n      this.setCursor(event);\n    }\n  \n    private start(event: any): void {\n      this.setCursor(event);\n  \n      event.stopPropagation();\n  \n      document.addEventListener('mouseup', this.listenerStop);\n      document.addEventListener('touchend', this.listenerStop);\n      document.addEventListener('mousemove', this.listenerMove);\n      document.addEventListener('touchmove', this.listenerMove);\n  \n      this.dragStart.emit();\n    }\n  \n    private stop(): void {\n      document.removeEventListener('mouseup', this.listenerStop);\n      document.removeEventListener('touchend', this.listenerStop);\n      document.removeEventListener('mousemove', this.listenerMove);\n      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 = (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 = (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({ s: x / width, v: (1 - y / height), rgX: this.rgX, rgY: this.rgY });\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  }","import {\n  Component,\n  OnInit,\n  OnDestroy,\n  AfterViewInit,\n  ViewChild,\n  ViewEncapsulation,\n  ElementRef,\n  ChangeDetectorRef,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n} from \"@angular/core\";\n\nimport { Cmyk, Hsla, Hsva, Rgba } from \"../../clases/formats\";\nimport { ColorFormats } from \"../../enums/formats\";\nimport { SliderDimension, SliderPosition } from \"../../clases/slider\";\n\nimport { ConverterService } from \"../../services/converter.service\";\n\n@Component({\n  selector: \"color-picker\",\n  templateUrl: \"./color-picker.component.html\",\n  styleUrls: [\"./color-picker.component.scss\"],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class ColorPickerComponent\n  implements OnInit, OnDestroy, AfterViewInit, OnChanges\n{\n  //IO color\n  @Input() color: Hsva = new Hsva(0, 1, 1, 1);\n  @Input() controls: \"default\" | \"only-alpha\" | \"no-alpha\" = \"default\";\n  @Output() sliderChange: EventEmitter<Hsva> = new EventEmitter<Hsva>(false);\n  @Output() onAlphaChange: EventEmitter<any> = new EventEmitter<any>(false);\n  //Event triggered when any slider change\n  // @Output() colorSelectedChange:EventEmitter<Hsva> = new EventEmitter<Hsva>(false);\n\n  private hsva: Hsva = new Hsva(0, 1, 1, 1);\n  private outputColor: Hsva;\n  public selectedColor: string = \"#000000\";\n  private fallbackColor: string = \"#000000\";\n\n  // private sHue: number;\n  private sliderDimMax: SliderDimension;\n  public slider: SliderPosition;\n\n  public hueSliderColor: string;\n  public alphaSliderColor: string;\n\n  @ViewChild(\"hueSlider\", { static: false }) hueSlider: ElementRef;\n  @ViewChild(\"alphaSlider\", { static: false }) alphaSlider: ElementRef;\n\n  constructor(\n    private service: ConverterService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  ngOnInit(): void {\n    if (!this.color) {\n      this.color = new Hsva(0, 1, 1, 1);\n    }\n    this.slider = new SliderPosition(0, 0, 0, 0);\n    this.update();\n  }\n\n  ngOnDestroy(): void {}\n\n  ngOnChanges(changes: any): void {\n    if (changes.color && this.color) {\n      this.update();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    const hueWidth = this.hueSlider?.nativeElement.offsetWidth || 140;\n    const alphaWidth = this.alphaSlider?.nativeElement.offsetWidth || 140;\n    this.sliderDimMax = new SliderDimension(hueWidth, 220, 130, alphaWidth);\n    this.update();\n  }\n\n  public onSliderChange(type: string, event) {\n    switch (type) {\n      case \"saturation-lightness\":\n        this.hsva.onColorChange(event);\n        break;\n      case \"hue\":\n        this.hsva.onHueChange(event);\n        break;\n      case \"alpha\":\n        this.hsva.onAlphaChange(event);\n        this.onAlphaChange.emit(event);\n        break;\n      case \"value\":\n        this.hsva.onValueChange(event);\n        break;\n    }\n    // this.sHue = this.hsva.h;\n    this.update();\n    this.setColor(this.outputColor);\n  }\n\n  setColor(color) {\n    this.color = color;\n    this.sliderChange.emit(this.color);\n  }\n\n  public getBackgroundColor(color) {\n    return {\n      background:\n        \"linear-gradient(90deg, rgba(36,0,0,0) 0%, \" + color + \" 100%)\",\n    };\n  }\n\n  private update(): void {\n    this.hsva = this.color;\n    if (this.sliderDimMax) {\n      let rgba = this.service.hsvaToRgba(this.hsva).denormalize();\n      let hue = this.service\n        .hsvaToRgba(new Hsva(this.hsva.h, 1, 1, 1))\n        .denormalize();\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.hsva;\n      this.selectedColor = this.service.hsvaToRgba(this.hsva).toString();\n\n      this.slider = new SliderPosition(\n        // (this.sHue || this.hsva.h) * this.sliderDimMax.h - 8,\n        this.hsva.h * this.sliderDimMax.h - 5,\n        this.hsva.s * this.sliderDimMax.s - 8,\n        (1 - this.hsva.v) * this.sliderDimMax.v - 8,\n        this.hsva.a * this.sliderDimMax.a - 5\n      );\n      this.cdr.detectChanges();\n    }\n  }\n}\n","<div #dialogPopup class=\"color-picker\" (click)=\"$event.stopPropagation()\">\n  <div\n    class=\"saturation-lightness\"\n    *ngIf=\"this.controls != 'only-alpha'\"\n    [slider]\n    [rgX]=\"1\"\n    [rgY]=\"1\"\n    [style.background-color]=\"hueSliderColor\"\n    (newValue)=\"onSliderChange('saturation-lightness', $event)\"\n  >\n    <div class=\"cursor\" [style.top.px]=\"slider?.v\" [style.left.px]=\"slider?.s\">\n      <div></div>\n    </div>\n  </div>\n\n  <div class=\"hue-alpha box\">\n    <div class=\"left\" *ngIf=\"this.controls != 'only-alpha'\">\n      <div class=\"selected-color-background\"></div>\n      <div\n        class=\"selected-color\"\n        [style.background-color]=\"selectedColor\"\n      ></div>\n    </div>\n\n    <div class=\"right\">\n      <div\n        *ngIf=\"this.controls != 'only-alpha'\"\n        #hueSlider\n        class=\"hue\"\n        [slider]\n        [rgX]=\"1\"\n        (newValue)=\"onSliderChange('hue', $event)\"\n      >\n        <div class=\"sliderCursor\" [style.left.px]=\"slider?.h\">\n          <div><div></div></div>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"this.controls != 'no-alpha'\"\n        #alphaSlider\n        class=\"alpha\"\n        [slider]\n        [rgX]=\"1\"\n        (newValue)=\"onSliderChange('alpha', $event)\"\n      >\n        <div\n          class=\"alpha-gradient\"\n          [ngStyle]=\"getBackgroundColor(alphaSliderColor)\"\n        ></div>\n        <div class=\"sliderCursor\" [style.left.px]=\"slider?.a\">\n          <div><div></div></div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectorRef,\n  ViewChild,\n  ElementRef,\n  HostListener,\n  HostBinding,\n} from '@angular/core';\nimport {\n  trigger,\n  transition,\n  query,\n  style,\n  stagger,\n  animate,\n  keyframes,\n} from '@angular/animations';\nimport { isDescendantOrSame } from '../../helpers/helpers';\nimport { ColorFormats } from '../../enums/formats';\nimport { ConverterService } from '../../services/converter.service';\nimport { defaultColors } from '../../helpers/default-colors';\nimport { formats } from '../../helpers/formats';\nimport { NgxColorsTriggerDirective } from '../../directives/ngx-colors-trigger.directive';\nimport { Hsva } from '../../clases/formats';\nimport { NgxColorsColor } from '../../clases/color';\n\n@Component({\n  selector: 'ngx-colors-panel',\n  templateUrl: './panel.component.html',\n  styleUrls: ['./panel.component.scss'],\n  animations: [\n    trigger('colorsAnimation', [\n      transition('void => slide-in', [\n        // Initially all colors are hidden\n        query(':enter', style({ opacity: 0 }), { optional: true }),\n        //slide-in animation\n        query(\n          ':enter',\n          stagger('10ms', [\n            animate(\n              '.3s ease-in',\n              keyframes([\n                style({ opacity: 0, transform: 'translatex(-50%)', offset: 0 }),\n                style({\n                  opacity: 0.5,\n                  transform: 'translatex(-10px) scale(1.1)',\n                  offset: 0.3,\n                }),\n                style({ opacity: 1, transform: 'translatex(0)', offset: 1 }),\n              ])\n            ),\n          ]),\n          { optional: true }\n        ),\n      ]),\n      //popup animation\n      transition('void => popup', [\n        query(':enter', style({ opacity: 0, transform: 'scale(0)' }), {\n          optional: true,\n        }),\n        query(\n          ':enter',\n          stagger('10ms', [\n            animate(\n              '500ms ease-out',\n              keyframes([\n                style({ opacity: 0.5, transform: 'scale(.5)', offset: 0.3 }),\n                style({ opacity: 1, transform: 'scale(1.1)', offset: 0.8 }),\n                style({ opacity: 1, transform: 'scale(1)', offset: 1 }),\n              ])\n            ),\n          ]),\n          { optional: true }\n        ),\n      ]),\n    ]),\n  ],\n})\nexport class PanelComponent implements OnInit {\n  @HostListener('document:mousedown', ['$event'])\n  click(event) {\n    if (this.isOutside(event)) {\n      this.emitClose('cancel');\n    }\n  }\n\n  @HostListener('document:scroll')\n  onScroll() {\n    this.onScreenMovement();\n  }\n  @HostListener('window:resize')\n  onResize() {\n    this.onScreenMovement();\n  }\n\n  @HostBinding('style.top.px') public top: number;\n  @HostBinding('style.left.px') public left: number;\n  @ViewChild('dialog') panelRef: ElementRef;\n  constructor(\n    public service: ConverterService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  public color = '#000000';\n  public previewColor: string = '#000000';\n  public hsva = new Hsva(0, 1, 1, 1);\n\n  public colorsAnimationEffect = 'slide-in';\n\n  public palette = defaultColors;\n  public variants = [];\n\n  public userFormats: string[] = [];\n  public colorFormats = formats;\n  public format: ColorFormats = ColorFormats.HEX;\n  public formatMap = {\n    'hex': ColorFormats.HEX,\n    'rgba': ColorFormats.RGBA,\n    'hsla': ColorFormats.HSLA,\n    'cmyk': ColorFormats.CMYK\n  }\n\n  public canChangeFormat: boolean = true;\n\n  public menu = 1;\n\n  public hideColorPicker: boolean = false;\n  public hideTextInput: boolean = false;\n  public acceptLabel: string;\n  public cancelLabel: string;\n  public colorPickerControls: 'default' | 'only-alpha' | 'no-alpha' = 'default';\n  private triggerInstance: NgxColorsTriggerDirective;\n  private TriggerBBox;\n  public isSelectedColorInPalette: boolean;\n  public indexSeleccionado;\n  public positionString;\n  public temporalColor;\n  public backupColor;\n  public placeholder = '#FFFFFF';\n\n  public ngOnInit() {\n    this.setPosition();\n    this.hsva = this.service.stringToHsva(this.color);\n    this.indexSeleccionado = this.findIndexSelectedColor(this.palette);\n  }\n  public ngAfterViewInit() {\n    this.setPositionY();\n  }\n\n  private onScreenMovement() {\n    this.setPosition();\n    this.setPositionY();\n    if (!this.panelRef.nativeElement.style.transition) {\n      this.panelRef.nativeElement.style.transition = 'transform 0.5s ease-out';\n    }\n  }\n\n  private findIndexSelectedColor(colors): number {\n    let resultIndex = undefined;\n    if (this.color) {\n      for (let i = 0; i < colors.length; i++) {\n        const color = colors[i];\n        if (typeof color == 'string') {\n          if (\n            this.service.stringToFormat(this.color, ColorFormats.HEX) ==\n            this.service.stringToFormat(color, ColorFormats.HEX)\n          ) {\n            resultIndex = i;\n          }\n        } else if (color === undefined) {\n          this.color = undefined;\n        } else {\n          if (this.findIndexSelectedColor(color.variants) != undefined) {\n            resultIndex = i;\n          }\n        }\n      }\n    }\n    return resultIndex;\n  }\n\n  public iniciate(\n    triggerInstance: NgxColorsTriggerDirective,\n    triggerElementRef,\n    color,\n    palette,\n    animation,\n    format: string,\n    hideTextInput: boolean,\n    hideColorPicker: boolean,\n    acceptLabel: string,\n    cancelLabel: string,\n    colorPickerControls: 'default' | 'only-alpha' | 'no-alpha',\n    position: 'top' | 'bottom',\n    userFormats: string[] = [],\n  ) {\n    this.colorPickerControls = colorPickerControls;\n    this.triggerInstance = triggerInstance;\n    this.TriggerBBox = triggerElementRef;\n    this.color = color;\n    this.hideColorPicker = hideColorPicker;\n    this.hideTextInput = hideTextInput;\n    this.acceptLabel = acceptLabel;\n    this.cancelLabel = cancelLabel;\n\n    if(userFormats.length) {\n      const allFormatsValid = userFormats.every(frt => formats.includes(frt));\n      if( allFormatsValid ) {\n        this.colorFormats = userFormats;\n      }\n    }\n\n    if (format) {\n      if (this.colorFormats.includes(format)) {\n        this.format = this.colorFormats.indexOf(format.toLowerCase());\n        this.canChangeFormat = false;\n        if (\n          this.service.getFormatByString(this.color) != format.toLowerCase()\n        ) {\n          this.setColor(this.service.stringToHsva(this.color));\n        }\n      } else {\n        console.error('Format provided is invalid, using HEX');\n        this.format = ColorFormats.HEX;\n      }\n    } else {\n      this.format = this.colorFormats.indexOf(this.service.getFormatByString(this.color));\n      if( this.format < 0 ) {\n        this.format = 0;\n      }\n    }\n\n    this.previewColor = this.color;\n    this.palette = palette ?? defaultColors;\n    this.colorsAnimationEffect = animation;\n    if (position == 'top') {\n      let TriggerBBox = this.TriggerBBox.nativeElement.getBoundingClientRect();\n      this.positionString =\n        'transform: translateY(calc( -100% - ' + TriggerBBox.height + 'px ))';\n    }\n  }\n\n  public setPosition(): void {\n    if (this.TriggerBBox) {\n      const panelWidth = 250;\n      const viewportOffset =\n        this.TriggerBBox.nativeElement.getBoundingClientRect();\n      this.top = viewportOffset.top + viewportOffset.height;\n      if (viewportOffset.left + panelWidth > window.innerWidth) {\n        this.left =\n          viewportOffset.right < panelWidth\n            ? window.innerWidth / 2 - panelWidth / 2\n            : viewportOffset.right - panelWidth;\n      } else {\n        this.left = viewportOffset.left;\n      }\n    }\n  }\n\n  private setPositionY(): void {\n    const triggerBBox = this.TriggerBBox.nativeElement.getBoundingClientRect();\n    const panelBBox = this.panelRef.nativeElement.getBoundingClientRect();\n    const panelHeight = panelBBox.height;\n    // Check for space below the trigger\n    if (triggerBBox.bottom + panelHeight > window.innerHeight) {\n      // there is no space, move panel over the trigger\n      this.positionString =\n        triggerBBox.top < panelBBox.height\n          ? 'transform: translateY(-' + triggerBBox.bottom + 'px );'\n          : 'transform: translateY(calc( -100% - ' +\n            triggerBBox.height +\n            'px ));';\n    } else {\n      this.positionString = '';\n    }\n    this.cdr.detectChanges();\n  }\n\n  public hasVariant(color): boolean {\n    if (!this.previewColor) {\n      return false;\n    }\n    return (\n      typeof color != 'string' &&\n      color.variants.some(\n        (v) => v.toUpperCase() == this.previewColor.toUpperCase()\n      )\n    );\n  }\n\n  public isSelected(color) {\n    if (!this.previewColor) {\n      return false;\n    }\n    return (\n      typeof color == 'string' &&\n      color.toUpperCase() == this.previewColor.toUpperCase()\n    );\n  }\n\n  public getBackgroundColor(color) {\n    if (typeof color == 'string') {\n      return { background: color };\n    } else {\n      return { background: color?.preview };\n    }\n  }\n\n  public onAlphaChange(event) {\n    this.palette = this.ChangeAlphaOnPalette(event, this.palette);\n  }\n\n  private ChangeAlphaOnPalette(\n    alpha,\n    colors: Array<string | NgxColorsColor>\n  ): Array<any> {\n    var result = [];\n    for (let i = 0; i < colors.length; i++) {\n      const color = colors[i];\n      if (typeof color == 'string') {\n        let newColor = this.service.stringToHsva(color);\n        newColor.onAlphaChange(alpha);\n        result.push(this.service.toFormat(newColor, this.format));\n      } else {\n        let newColor = new NgxColorsColor();\n        let newColorPreview = this.service.stringToHsva(color.preview);\n        newColorPreview.onAlphaChange(alpha);\n        newColor.preview = this.service.toFormat(newColorPreview, this.format);\n        newColor.variants = this.ChangeAlphaOnPalette(alpha, color.variants);\n        result.push(newColor);\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Change color from default colors\n   * @param string color\n   */\n  public changeColor(color: string): void {\n    this.setColor(this.service.stringToHsva(color));\n    // this.triggerInstance.onChange();\n    this.emitClose('accept');\n  }\n\n  public onChangeColorPicker(event: Hsva) {\n    this.temporalColor = event;\n    this.color = this.service.toFormat(event, this.format);\n    // this.setColor(event);\n    this.triggerInstance.sliderChange(\n      this.service.toFormat(event, this.format)\n    );\n  }\n\n  public changeColorManual(color: string): void {\n    this.previewColor = color;\n    this.color = color;\n    this.hsva = this.service.stringToHsva(color);\n    this.setPreviewColor(this.hsva);\n    this.temporalColor = this.hsva;\n    this.triggerInstance.setColor(this.color, this.previewColor);\n    // this.triggerInstance.onChange();\n  }\n\n  setColor(value: Hsva, colorIndex: number = -1) {\n    this.hsva = value;\n\n    let formatName = this.colorFormats[this.format];\n    let index = colorIndex\n    if( index < 0){\n      index = this.formatMap[formatName];\n    }\n    \n    this.color = this.service.toFormat(value, index);\n    this.setPreviewColor(value);\n    this.triggerInstance.setColor(this.color, this.previewColor);\n  }\n\n  setPreviewColor(value: Hsva) {\n    this.previewColor = value\n      ? this.service.hsvaToRgba(value).toString()\n      : undefined;\n  }\n  hsvaToRgba;\n  onChange() {\n    // this.triggerInstance.onChange();\n  }\n\n  public onColorClick(color) {\n    if (typeof color == 'string' || color === undefined) {\n      this.changeColor(color);\n    } else {\n      this.variants = color.variants;\n      this.menu = 2;\n    }\n  }\n\n  public addColor() {\n    this.menu = 3;\n    this.backupColor = this.color;\n    // this.color = \"#FF0000\";\n    this.temporalColor = this.service.stringToHsva(this.color);\n  }\n\n  public nextFormat() {\n    if (this.canChangeFormat) {\n      this.format = (this.format + 1) % this.colorFormats.length;\n\n      let formatName = this.colorFormats[this.format];\n      let index = this.formatMap[formatName];\n\n      this.setColor(this.hsva, index);\n      this.placeholder = this.service.toFormat(\n        new Hsva(0, 0, 1, 1),\n        index\n      );\n    }\n  }\n\n  public emitClose(status: 'cancel' | 'accept') {\n    if (this.menu == 3) {\n      if (status == 'cancel') {\n      } else if (status == 'accept') {\n        this.setColor(this.temporalColor);\n      }\n    }\n    this.triggerInstance.closePanel();\n  }\n\n  public onClickBack() {\n    if (this.menu == 3) {\n      this.color = this.backupColor;\n      this.hsva = this.service.stringToHsva(this.color);\n    }\n    this.indexSeleccionado = this.findIndexSelectedColor(this.palette);\n    this.menu = 1;\n  }\n\n  isOutside(event) {\n    return event.target.classList.contains('ngx-colors-overlay');\n  }\n}\n","<div class=\"opened\" [style]=\"positionString\" #dialog>\n  <ng-container *ngIf=\"menu == 1\">\n    <div class=\"colors\" [@colorsAnimation]=\"colorsAnimationEffect\">\n      <ng-container *ngFor=\"let color of palette; let i = index\">\n        <div class=\"circle wrapper color\">\n          <div\n            (click)=\"onColorClick(color)\"\n            class=\"circle color circle-border\"\n            [class.colornull]=\"!color\"\n            [ngStyle]=\"getBackgroundColor(color)\"\n          >\n            <div *ngIf=\"i == this.indexSeleccionado\" class=\"selected\"></div>\n          </div>\n        </div>\n      </ng-container>\n      <div\n        style=\"background: rgb(245 245 245); position: relative\"\n        (click)=\"addColor()\"\n        *ngIf=\"!hideColorPicker && this.colorPickerControls != 'only-alpha'\"\n        class=\"circle button\"\n      >\n        <div\n          *ngIf=\"this.indexSeleccionado === undefined\"\n          style=\"\n            position: absolute;\n            height: 7px;\n            width: 7px;\n            border: 1px solid rgba(0, 0, 0, 0.03);\n            border-radius: 100%;\n            top: 0;\n            right: 0;\n          \"\n          [ngStyle]=\"getBackgroundColor(color)\"\n        ></div>\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          height=\"24px\"\n          viewBox=\"0 0 24 24\"\n          width=\"24px\"\n          fill=\"#222222\"\n        >\n          <path d=\"M24 24H0V0h24v24z\" fill=\"none\" opacity=\".87\" />\n          <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z\" />\n        </svg>\n        <!-- <div class=\"add\">\n          <icons icon=\"add\"></icons>\n        </div> -->\n      </div>\n      <color-picker\n        *ngIf=\"!hideColorPicker && this.colorPickerControls == 'only-alpha'\"\n        [controls]=\"colorPickerControls\"\n        [color]=\"hsva\"\n        (colorChange)=\"onChangeColorPicker($event)\"\n        (onAlphaChange)=\"onAlphaChange($event)\"\n      ></color-picker>\n    </div>\n  </ng-container>\n  <ng-container *ngIf=\"menu == 2\">\n    <div class=\"colors\" [@colorsAnimation]=\"colorsAnimationEffect\">\n      <div class=\"circle wrapper\">\n        <div (click)=\"onClickBack()\" class=\"add\">\n          <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"24\"\n            height=\"24\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n            <path\n              d=\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n            />\n          </svg>\n        </div>\n      </div>\n\n      <ng-container *ngFor=\"let variant of variants\">\n        <div class=\"circle wrapper color\">\n          <div\n            [class.colornull]=\"!variant\"\n            (click)=\"changeColor(variant)\"\n            class=\"circle circle-border\"\n            [ngStyle]=\"{ background: variant }\"\n          >\n            <div *ngIf=\"isSelected(variant)\" class=\"selected\"></div>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </ng-container>\n  <ng-container *ngIf=\"menu == 3\">\n    <div class=\"nav-wrapper\">\n      <div\n        (click)=\"onClickBack()\"\n        class=\"round-button button\"\n        style=\"float: left\"\n      >\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          width=\"24\"\n          height=\"24\"\n          viewBox=\"0 0 24 24\"\n        >\n          <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n          <path\n            d=\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n          />\n        </svg>\n      </div>\n      <button (click)=\"emitClose('cancel')\" style=\"float: right\">\n        {{ cancelLabel }}\n      </button>\n      <button (click)=\"emitClose('accept')\" style=\"float: right\">\n        {{ acceptLabel }}\n      </button>\n    </div>\n    <div class=\"color-picker-wrapper\">\n      <!-- <span [(colorPicker)]=\"color\"></span> -->\n      <color-picker\n        [controls]=\"colorPickerControls\"\n        [color]=\"hsva\"\n        (sliderChange)=\"onChangeColorPicker($event)\"\n      ></color-picker>\n    </div>\n  </ng-container>\n  <div class=\"manual-input-wrapper\" *ngIf=\"!hideTextInput\">\n    <p (click)=\"nextFormat()\" style=\"cursor: pointer;\">{{ colorFormats[format] }}</p>\n    <div class=\"g-input\">\n      <input\n        [placeholder]=\"placeholder\"\n        type=\"text\"\n        [value]=\"color\"\n        [style.font-size.px]=\"color && color.length > 23 ? 9 : 10\"\n        [style.letter-spacing.px]=\"color && color.length > 16 ? 0 : 1.5\"\n        (keyup)=\"changeColorManual(paintInput.value)\"\n        (keydown.enter)=\"emitClose('accept')\"\n        #paintInput\n      />\n    </div>\n  </div>\n</div>\n","export const OVERLAY_STYLES = {\n  position: 'fixed',\n  height: '100%',\n  width: '100%',\n  'z-index': 2000,\n  top: 0,\n  left: 0,\n}\n","import {\n  Injectable,\n  ComponentFactoryResolver,\n  Injector,\n  Inject,\n  TemplateRef,\n  Type,\n  ComponentFactory,\n  ApplicationRef,\n  EmbeddedViewRef,\n  ComponentRef,\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { PanelComponent } from \"../components/panel/panel.component\";\nimport { OVERLAY_STYLES } from \"./overlay-styles\";\n\n@Injectable()\nexport class PanelFactoryService {\n  constructor(\n    private resolver: ComponentFactoryResolver,\n    private applicationRef: ApplicationRef,\n    private injector: Injector\n  ) {}\n\n  componentRef: ComponentRef<PanelComponent>;\n  _factory: ComponentFactory<PanelComponent>;\n  overlay;\n\n  createPanel(\n    attachTo: string | undefined,\n    overlayClassName: string | undefined\n  ): ComponentRef<PanelComponent> {\n    if (this.componentRef != undefined) {\n      this.removePanel();\n    }\n    const factory: ComponentFactory<PanelComponent> =\n      this.resolver.resolveComponentFactory(PanelComponent);\n\n    this.componentRef = factory.create(this.injector);\n    this.applicationRef.attachView(this.componentRef.hostView);\n    const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n\n    this.overlay = document.createElement(\"div\");\n    this.overlay.id = \"ngx-colors-overlay\";\n    this.overlay.classList.add(\"ngx-colors-overlay\");\n    this.overlay.classList.add(overlayClassName);\n    Object.keys(OVERLAY_STYLES).forEach((attr: string) => {\n      this.overlay.style[attr] = OVERLAY_STYLES[attr];\n    });\n    if (attachTo) {\n      document.getElementById(attachTo).appendChild(this.overlay);\n    } else {\n      document.body.appendChild(this.overlay);\n    }\n    this.overlay.appendChild(domElem);\n\n    return this.componentRef;\n  }\n\n  removePanel() {\n    this.applicationRef.detachView(this.componentRef.hostView);\n    this.componentRef.destroy();\n    this.overlay.remove();\n  }\n}\n","import {\n  EventEmitter,\n  Input,\n  Output,\n  Directive,\n  ElementRef,\n  ComponentRef,\n  HostListener,\n  forwardRef,\n  OnDestroy,\n} from '@angular/core';\nimport { PanelFactoryService } from '../services/panel-factory.service';\nimport { PanelComponent } from '../components/panel/panel.component';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgxColorsColor } from '../clases/color';\nimport { ConverterService } from '../services/converter.service';\nimport { formats } from '../helpers/formats';\nimport { ColorFormats } from '../enums/formats';\n\n@Directive({\n  selector: '[ngx-colors-trigger]',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NgxColorsTriggerDirective),\n      multi: true,\n    },\n  ],\n})\nexport class NgxColorsTriggerDirective\n  implements ControlValueAccessor, OnDestroy\n{\n  //Main input/output of the color picker\n  // @Input() color = '#000000';\n  // @Output() colorChange:EventEmitter<string> = new EventEmitter<string>();\n\n  color = '';\n\n  //This defines the type of animation for the palatte.(slide-in | popup)\n  @Input() colorsAnimation: 'slide-in' | 'popup' = 'slide-in';\n\n  //This is used to set a custom palette of colors in the panel;\n  @Input() palette: Array<string> | Array<NgxColorsColor>;\n\n  @Input() format: string;\n  @Input() formats: string[];\n  @Input() position: 'top' | 'bottom' = 'bottom';\n  @Input() hideTextInput: boolean;\n  @Input() hideColorPicker: boolean;\n  @Input() attachTo: string | undefined = undefined;\n  @Input() overlayClassName: string | undefined = undefined;\n  @Input() colorPickerControls: 'default' | 'only-alpha' | 'no-alpha' =\n    'default';\n  @Input() acceptLabel: string = 'ACCEPT';\n  @Input() cancelLabel: string = 'CANCEL';\n  // This event is trigger every time the selected color change\n  @Output() change: EventEmitter<string> = new EventEmitter<string>();\n  // This event is trigger every time the user change the color using the panel\n  @Output() input: EventEmitter<string> = new EventEmitter<string>();\n  // This event is trigger every time the user change the color using the panel\n  @Output() slider: EventEmitter<string> = new EventEmitter<string>();\n  @Output() close: EventEmitter<string> = new EventEmitter<string>();\n  @Output() open: EventEmitter<string> = new EventEmitter<string>();\n\n  @HostListener('click') onClick() {\n    this.openPanel();\n  }\n  constructor(\n    private triggerRef: ElementRef,\n    private panelFactory: PanelFactoryService,\n    private service: ConverterService\n  ) {}\n\n  panelRef: ComponentRef<PanelComponent>;\n  isDisabled: boolean = false;\n\n  onTouchedCallback: () => void = () => {};\n  onChangeCallback: (_: any) => void = () => {};\n\n  public ngOnDestroy(): void {\n    if (this.panelRef) {\n      this.panelFactory.removePanel();\n    }\n  }\n\n  public openPanel() {\n    if (!this.isDisabled) {\n      this.panelRef = this.panelFactory.createPanel(\n        this.attachTo,\n        this.overlayClassName\n      );\n      this.panelRef.instance.iniciate(\n        this,\n        this.triggerRef,\n        this.color,\n        this.palette,\n        this.colorsAnimation,\n        this.format,\n        this.hideTextInput,\n        this.hideColorPicker,\n        this.acceptLabel,\n        this.cancelLabel,\n        this.colorPickerControls,\n        this.position,\n        this.formats\n      );\n    }\n    this.open.emit(this.color);\n  }\n\n  public closePanel() {\n    this.panelFactory.removePanel();\n    this.onTouchedCallback();\n    this.close.emit(this.color);\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.triggerRef.nativeElement.style.opacity = isDisabled ? 0.5 : 1;\n  }\n\n  public setColor(color, previewColor = \"\") {\n    this.writeValue(color, previewColor);\n    this.onChangeCallback(color);\n    this.input.emit(color);\n  }\n\n  public sliderChange(color) {\n    this.slider.emit(color);\n  }\n\n  get value(): string {\n    return this.color;\n  }\n\n  set value(value: string) {\n    this.setColor(value);\n    this.onChangeCallback(value);\n  }\n\n  writeValue(value, previewColor = \"\") {\n    if (value !== this.color) {\n      if (this.format) {\n        let format = formats.indexOf(this.format.toLowerCase());\n        value = this.service.stringToFormat(value, format);\n      }\n      this.color = value;\n\n      let isCmyk = false;\n      if( value && value.startsWith('cmyk')) {\n        isCmyk = true;\n        if( !previewColor ) {\n          previewColor = this.service.stringToFormat(value, ColorFormats.RGBA);\n        }\n      }\n\n      this.change.emit( isCmyk ? previewColor : value);\n    }\n  }\n\n  registerOnChange(fn: any) {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this.onTouchedCallback = fn;\n  }\n}\n","import { Component, Host, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NgxColorsTriggerDirective } from './directives/ngx-colors-trigger.directive';\n\n@Component({\n  selector: 'ngx-colors',\n  templateUrl: './ngx-colors.component.html',\n  styleUrls: ['./ngx-colors.component.scss'],\n})\nexport class NgxColorsComponent implements OnInit, OnDestroy {\n  private triggerDirectiveColorChangeSubscription: Subscription | null = null;\n\n  constructor(\n    private cdRef: ChangeDetectorRef,\n    @Host() private triggerDirective: NgxColorsTriggerDirective\n  ) {}\n\n  ngOnInit(): void {\n    this.triggerDirectiveColorChangeSubscription =\n      this.triggerDirective.change.subscribe((color) => {\n        this.color = color;\n        this.cdRef.markForCheck();\n      });\n  }\n\n  ngOnDestroy(): void {\n    if (this.triggerDirectiveColorChangeSubscription) {\n      this.triggerDirectiveColorChangeSubscription.unsubscribe();\n    }\n  }\n\n  //IO color\n  color: string = this.triggerDirective.color;\n}\n","<div class=\"app-color-picker\">\n  <div class=\"preview\">\n    <div class=\"preview-background\">\n      <div\n        class=\"circle\"\n        [class.colornull]=\"!color\"\n        [ngStyle]=\"{ background: color }\"\n      ></div>\n    </div>\n  </div>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { NgxColorsComponent } from \"./ngx-colors.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { ColorPickerComponent } from \"./components/color-picker/color-picker.component\";\nimport { ConverterService } from \"./services/converter.service\";\nimport { SliderDirective } from \"./directives/slider.directive\";\nimport { PanelComponent } from \"./components/panel/panel.component\";\nimport { PanelFactoryService } from \"./services/panel-factory.service\";\nimport { NgxColorsTriggerDirective } from \"./directives/ngx-colors-trigger.directive\";\n\n@NgModule({\n  declarations: [\n    NgxColorsComponent,\n    ColorPickerComponent,\n    SliderDirective,\n    PanelComponent,\n    NgxColorsTriggerDirective,\n  ],\n  imports: [CommonModule],\n  providers: [ConverterService, PanelFactoryService],\n  exports: [NgxColorsComponent, NgxColorsTriggerDirective],\n})\nexport class NgxColorsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\n\nexport function validColorValidator(): ValidatorFn {\n  return (control: AbstractControl): ValidationErrors | null => {\n    const value = control.value;\n\n    if (!value) {\n      return null;\n    }\n    const rgbTest =\n      /^\\s*rgba?\\(\\s*(1?\\d{1,2}|2[0-4]\\d|25[0-5])\\s*,\\s*(1?\\d{1,2}|2[0-4]\\d|25[0-5])\\s*,\\s*(1?\\d{1,2}|2[0-4]\\d|25[0-5])\\s*(,\\s*(0\\.\\d{1,2}|1))?\\s*\\)\\s*$/i;\n    const hslTest =\n      /^\\s*hsla?\\(\\s*([0-2]?\\d{1,2}|3[0-5]\\d|360)\\s*,\\s*(0|[1-9]{1,2}|100)\\%\\s*,\\s*(0|[1-9]{1,2}|100)\\%\\s*(,\\s*(0\\.\\d{1,2}|1))?\\s*\\)\\s*$/i;\n    const hexTest = /^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n\n    const colorValid =\n      rgbTest.test(value) || hslTest.test(value) || hexTest.test(value);\n    return !colorValid ? { invalidColor: true } : null;\n  };\n}\n","/*\n * Public API Surface of ngx-colors\n */\nexport * from \"./lib/directives/ngx-colors-trigger.directive\";\nexport * from \"./lib/ngx-colors.component\";\nexport * from \"./lib/ngx-colors.module\";\nexport * from \"./lib/clases/color\";\nexport * from \"./lib/validators/valid-color.validator\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ConverterService","i3.SliderDirective","i3.ColorPickerComponent","i1.PanelFactoryService","i2.ConverterService","i1.NgxColorsTriggerDirective"],"mappings":"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"}