@skyux/colorpicker 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-colorpicker.js","sources":["../../../projects/colorpicker/src/modules/shared/sky-colorpicker-resources.module.ts","../../../projects/colorpicker/src/modules/colorpicker/types/colorpicker-message-type.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.service.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-classes.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-slider.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-text.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.component.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.component.html","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-input.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.module.ts","../../../projects/colorpicker/src/skyux-colorpicker.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-colorpicker' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule, Injectable } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\"skyux_colorpicker_alpha\":{\"message\":\"A:\"},\"skyux_colorpicker_apply\":{\"message\":\"Apply\"},\"skyux_colorpicker_aria_alpha\":{\"message\":\"Alpha channel value between 0 and 1\"},\"skyux_colorpicker_aria_blue\":{\"message\":\"Blue value between 0 and 255\"},\"skyux_colorpicker_aria_green\":{\"message\":\"Green value between 0 and 255\"},\"skyux_colorpicker_aria_hex\":{\"message\":\"Hexadecimal color code\"},\"skyux_colorpicker_aria_red\":{\"message\":\"Red value between 0 and 255\"},\"skyux_colorpicker_blue\":{\"message\":\"B:\"},\"skyux_colorpicker_close\":{\"message\":\"Cancel\"},\"skyux_colorpicker_dropdown_button\":{\"message\":\"Select color value\"},\"skyux_colorpicker_green\":{\"message\":\"G:\"},\"skyux_colorpicker_hex\":{\"message\":\"Hex:\"},\"skyux_colorpicker_input_default_label\":{\"message\":\"Color value\"},\"skyux_colorpicker_preset_color\":{\"message\":\"Preset Color:\"},\"skyux_colorpicker_red\":{\"message\":\"R:\"},\"skyux_colorpicker_reset\":{\"message\":\"Reset color value to white\"}},\n};\n\n@Injectable()\nexport class SkyColorpickerResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyColorpickerResourcesProvider,\n multi: true\n }]\n})\nexport class SkyColorpickerResourcesModule { }\n","/**\n * Specifies the commands to provide the colorpicker.\n */\nexport enum SkyColorpickerMessageType {\n /**\n * Opens the colorpicker.\n */\n Open = 0,\n /**\n * Resets the selection in the colorpicker.\n */\n Reset = 1,\n /**\n * Toggles whether to display a reset button beside the colorpicker.\n */\n ToggleResetButton = 2,\n /**\n * Closes the colorpicker.\n */\n Close = 3\n}\n","// spell-checker:ignore hsva, hsla, cmyk, denormalize, colorpicker,Injectable\nimport { Injectable } from '@angular/core';\nimport { SkyColorpickerCmyk } from './types/colorpicker-cmyk';\nimport { SkyColorpickerHsla } from './types/colorpicker-hsla';\nimport { SkyColorpickerHsva } from './types/colorpicker-hsva';\nimport { SkyColorpickerRgba } from './types/colorpicker-rgba';\nimport { SkyColorpickerOutput } from './types/colorpicker-output';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyColorpickerService {\n constructor() { }\n\n public hsla2hsva(hsla: SkyColorpickerHsla): SkyColorpickerHsva {\n const alpha: number = Math.min(hsla.alpha, 1);\n const hue: number = Math.min(hsla.hue, 1);\n const lightness: number = Math.min(hsla.lightness, 1);\n const saturation: number = Math.min(hsla.saturation, 1);\n let hsva: SkyColorpickerHsva = {\n 'hue': hue,\n 'saturation': saturation,\n 'value': lightness,\n 'alpha': alpha\n };\n if (lightness === 0) {\n hsva.saturation = 0;\n hsva.value = 0;\n } else {\n hsva.value = lightness + saturation * (1 - Math.abs(2 * lightness - 1)) / 2;\n hsva.saturation = 2 * (hsva.value - lightness) / hsva.value;\n\n }\n return hsva;\n }\n\n public hsva2hsla(hsva: SkyColorpickerHsva): SkyColorpickerHsla {\n const alpha: number = hsva.alpha;\n const hue: number = hsva.hue;\n const saturation: number = hsva.saturation;\n const value: number = hsva.value;\n\n let hsla: SkyColorpickerHsla = {\n 'hue': hue,\n 'saturation': saturation,\n 'lightness': value,\n 'alpha': alpha\n };\n if (value === 0) {\n hsla.lightness = 0;\n hsla.saturation = 0;\n } else {\n hsla.lightness = value * (2 - saturation) / 2;\n hsla.saturation = value * saturation / (1 - Math.abs(2 * hsla.lightness - 1));\n }\n return hsla;\n }\n\n public rgbaToHsva(rgba: SkyColorpickerRgba): SkyColorpickerHsva {\n const red: number = Math.min(rgba.red, 1);\n const green: number = Math.min(rgba.green, 1);\n const blue: number = Math.min(rgba.blue, 1);\n const alpha: number = Math.min(rgba.alpha, 1);\n const max: number = Math.max(red, green, blue);\n const min: number = Math.min(red, green, blue);\n const value: number = max;\n const d = max - min;\n const saturation: number = max === 0 ? 0 : d / max;\n let hue: number = 0;\n let maxValue: { [key: number]: number };\n if (max !== min) {\n maxValue = {\n [red]: (green - blue) / d + (green < blue ? 6 : 0),\n [green]: (blue - red) / d + 2,\n [blue]: (red - green) / d + 4\n };\n hue = maxValue[max];\n hue /= 6;\n }\n const hsva: SkyColorpickerHsva = {\n 'hue': hue,\n 'saturation': saturation,\n 'value': value,\n 'alpha': alpha\n };\n return hsva;\n }\n\n public rgbaToCmyk(rgba: SkyColorpickerRgba): SkyColorpickerCmyk {\n let cmyk: SkyColorpickerCmyk = { 'cyan': 0, 'magenta': 0, 'yellow': 0, 'key': 0 };\n const key: number = 1 - Math.max(rgba.red, rgba.green, rgba.blue);\n\n if (key === 1) {\n cmyk.key = 1;\n return cmyk;\n }\n cmyk.cyan = (1 - rgba.red - key) / (1 - key);\n cmyk.magenta = (1 - rgba.green - key) / (1 - key);\n cmyk.yellow = (1 - rgba.blue - key) / (1 - key);\n cmyk.key = key;\n return cmyk;\n }\n\n public hsvaToRgba(hsva: SkyColorpickerHsva): SkyColorpickerRgba {\n let red: number = 0;\n let green: number = 0;\n let blue: number = 0;\n const hue = hsva.hue;\n const saturation = hsva.saturation;\n const value = hsva.value;\n const alpha = hsva.alpha || hsva.alpha === 0 ? hsva.alpha : 1;\n const i = Math.floor(hue * 6);\n const f = hue * 6 - i;\n const p = value * (1 - saturation);\n const q = value * (1 - f * saturation);\n const t = value * (1 - (1 - f) * saturation);\n const color: { [key: number]: any } = {\n 0: (): void => { red = value; green = t; blue = p; },\n 1: (): void => { red = q; green = value; blue = p; },\n 2: (): void => { red = p; green = value; blue = t; },\n 3: (): void => { red = p; green = q; blue = value; },\n 4: (): void => { red = t; green = p; blue = value; },\n 5: (): void => { red = value; green = p; blue = q; }\n };\n color[i % 6]();\n\n const rgba: SkyColorpickerRgba = {\n 'red': red,\n 'green': green,\n 'blue': blue,\n 'alpha': alpha\n };\n return rgba;\n }\n\n public stringToHsva(colorString: string, hex8: boolean): SkyColorpickerHsva {\n let stringParsers = [\n { // tslint:disable max-line-length\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[2], 0) / 255,\n 'green': parseInt(execResult[3], 0) / 255,\n 'blue': parseInt(execResult[4], 0) / 255,\n 'alpha': parseFloat(execResult[5])\n };\n return rgba;\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: (execResult: any) => {\n const hsla: SkyColorpickerHsla = {\n 'hue': parseInt(execResult[2], 0) / 360,\n 'saturation': parseInt(execResult[3], 0) / 100,\n 'lightness': parseInt(execResult[4], 0) / 100,\n 'alpha': parseFloat(execResult[5])\n };\n return hsla;\n // tslint:enable max-line-length\n }\n }\n ];\n if (hex8) {\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1], 16) / 255,\n 'green': parseInt(execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3], 16) / 255,\n 'alpha': parseInt(execResult[4], 16) / 255\n };\n return rgba;\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1], 16) / 255,\n 'green': parseInt(execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3], 16) / 255,\n 'alpha': 1\n };\n return rgba;\n }\n },\n {\n re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,\n parse: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1] + execResult[1], 16) / 255,\n 'green': parseInt(execResult[2] + execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3] + execResult[3], 16) / 255,\n 'alpha': 1\n };\n return rgba;\n }\n });\n }\n\n let hsva: SkyColorpickerHsva = undefined;\n for (let key in stringParsers) {\n /* istanbul ignore else */ /* for in must be filtered by an if */\n if (stringParsers.hasOwnProperty(key)) {\n let parser = stringParsers[key];\n let match = parser.re.exec(colorString);\n let color: any = match && parser.parse(match);\n if (color) {\n if ('red' in color) {\n hsva = this.rgbaToHsva(color);\n }\n if ('hue' in color) {\n hsva = this.hsla2hsva(color);\n }\n\n return hsva;\n }\n }\n }\n return hsva;\n }\n\n public outputFormat(hsva: SkyColorpickerHsva, outputFormat: string, allowHex8: boolean): string {\n if (['hsla', 'hex', 'cmyk'].indexOf(outputFormat) === -1) { outputFormat = 'rgba'; }\n let color: { [key: string]: any } = {\n 'hsla': () => {\n let hsla = this.denormalizeHSLA(this.hsva2hsla(hsva));\n return `hsla(${hsla.hue},${hsla.saturation}%,${hsla.lightness}%,${hsla.alpha})`;\n },\n 'hex': () => {\n return this.hexText(this.denormalizeRGBA(this.hsvaToRgba(hsva)), allowHex8);\n },\n 'cmyk': () => {\n let cmyk = this.denormalizeCMYK(this.rgbaToCmyk(this.hsvaToRgba(hsva)));\n return `cmyk(${cmyk.cyan}%,${cmyk.magenta}%,${cmyk.yellow}%,${cmyk.key}%)`;\n },\n 'rgba': () => {\n let rgba = this.denormalizeRGBA(this.hsvaToRgba(hsva));\n return `rgba(${rgba.red},${rgba.green},${rgba.blue},${rgba.alpha})`;\n }\n };\n\n return color[outputFormat]();\n }\n\n public skyColorpickerOut(color: SkyColorpickerHsva) {\n let formatColor: SkyColorpickerOutput;\n let cmykText: string = this.outputFormat(color, 'cmyk', true);\n let hslaText: string = this.outputFormat(color, 'hsla', true);\n let rgbaText: string = this.outputFormat(color, 'rgba', true);\n let rgba: SkyColorpickerRgba = this.hsvaToRgba(color);\n let hsla: SkyColorpickerHsla = this.hsva2hsla(color);\n let cmyk: SkyColorpickerCmyk = this.rgbaToCmyk(rgba);\n let hex: string = this.outputFormat(color, 'hex', false);\n\n formatColor = {\n 'cmykText': cmykText,\n 'hslaText': hslaText,\n 'rgbaText': rgbaText,\n 'hsva': this.denormalizeHSVA(color),\n 'rgba': this.denormalizeRGBA(rgba),\n 'hsla': this.denormalizeHSLA(hsla),\n 'cmyk': this.denormalizeCMYK(cmyk),\n 'hex': hex\n };\n return formatColor;\n }\n\n public hexText(rgba: SkyColorpickerRgba, allowHex8: boolean): string {\n // tslint:disable no-bitwise\n let hexText = '#' + ((1 << 24) |\n (rgba.red << 16) |\n (rgba.green << 8) |\n rgba.blue).toString(16).substr(1);\n if (\n hexText[1] === hexText[2]\n && hexText[3] === hexText[4]\n && hexText[5] === hexText[6]\n && rgba.alpha === 1\n && !allowHex8) {\n hexText = '#' + hexText[1] + hexText[3] + hexText[5];\n }\n if (allowHex8) {\n hexText += ((1 << 8) | Math.round(rgba.alpha * 255)).toString(16).substr(1);\n }\n return hexText;\n // tslint:enable no-bitwise\n }\n\n public denormalizeRGBA(rgba: SkyColorpickerRgba): SkyColorpickerRgba {\n const denormalizeRgba: SkyColorpickerRgba = {\n 'red': Math.round(rgba.red * 255),\n 'green': Math.round(rgba.green * 255),\n 'blue': Math.round(rgba.blue * 255),\n 'alpha': Math.round(rgba.alpha * 100) / 100\n };\n return denormalizeRgba;\n }\n\n public denormalizeHSLA(hsla: SkyColorpickerHsla): SkyColorpickerHsla {\n const denormalizeHsla: SkyColorpickerHsla = {\n hue: Math.round((hsla.hue) * 360),\n saturation: Math.round(hsla.saturation * 100),\n lightness: Math.round(hsla.lightness * 100),\n alpha: Math.round(hsla.alpha * 100) / 100\n };\n return denormalizeHsla;\n }\n\n public denormalizeHSVA(hsla: SkyColorpickerHsva): SkyColorpickerHsva {\n const denormalizeHsva: SkyColorpickerHsva = {\n hue: Math.round((hsla.hue) * 360),\n saturation: Math.round(hsla.saturation * 100),\n value: Math.round(hsla.value * 100),\n alpha: Math.round(hsla.alpha * 100) / 100\n };\n return denormalizeHsva;\n }\n\n public denormalizeCMYK(cmyk: SkyColorpickerCmyk): SkyColorpickerCmyk {\n const denormalizeCmyk: SkyColorpickerCmyk = {\n cyan: Math.round((cmyk.cyan) * 100),\n magenta: Math.round(cmyk.magenta * 100),\n yellow: Math.round(cmyk.yellow * 100),\n key: Math.round(cmyk.key * 100)\n };\n return denormalizeCmyk;\n }\n}\n","// spell-checker:ignore colorpicker\n\n/**\n * @internal\n */\nexport class SliderPosition {\n constructor(\n public hue: number,\n public saturation: number,\n public value: number,\n public alpha: number) { }\n}\n/**\n * @internal\n */\nexport class SliderDimension {\n constructor(\n public hue: number,\n public saturation: number,\n public value: number,\n public alpha: number) { }\n}\n","// spell-checker:ignore Colorpicker\nimport {\n Directive,\n Input,\n Output,\n ElementRef,\n EventEmitter,\n HostListener\n} from '@angular/core';\n\nimport {\n SkyColorpickerChangeAxis\n} from './types/colorpicker-axis';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyColorpickerSlider]'\n})\nexport class SkyColorpickerSliderDirective {\n\n @Output()\n public newColorContrast = new EventEmitter<SkyColorpickerChangeAxis>();\n @Input()\n public skyColorpickerSlider: string;\n @Input()\n public color: string;\n @Input()\n public xAxis: number;\n @Input()\n public yAxis: number;\n\n private listenerMove: any;\n private listenerStop: any;\n\n constructor(private el: ElementRef) {\n this.listenerMove = (event: any) => { this.move(event); };\n this.listenerStop = () => { this.stop(); };\n }\n\n public setCursor(event: any) {\n let height = this.el.nativeElement.offsetHeight;\n let width = this.el.nativeElement.offsetWidth;\n let xAxis = Math.max(0, Math.min(this.getX(event), width));\n let yAxis = Math.max(0, Math.min(this.getY(event), height));\n if (this.xAxis !== undefined && this.yAxis !== undefined) {\n this.newColorContrast.emit({\n xCoordinate: xAxis / width,\n yCoordinate: (1 - yAxis / height),\n xAxis: this.xAxis,\n yAxis: this.yAxis\n } as SkyColorpickerChangeAxis);\n } else {\n this.newColorContrast.emit({\n xCoordinate: xAxis / width,\n maxRange: this.xAxis\n } as SkyColorpickerChangeAxis);\n }\n /* // No vertical bars\n if (this.xAxis === undefined && this.yAxis !== undefined) {\n this.newColorContrast.emit({ yCoordinate: yAxis / height, maxRange: this.yAxis });\n } */\n\n }\n\n public move(event: any) {\n event.preventDefault();\n this.setCursor(event);\n }\n @HostListener('touchstart', ['$event'])\n @HostListener('mousedown', ['$event'])\n public start(event: MouseEvent) {\n this.setCursor(event);\n document.addEventListener('mousemove', this.listenerMove);\n document.addEventListener('touchmove', this.listenerMove);\n document.addEventListener('mouseup', this.listenerStop);\n document.addEventListener('touchend', this.listenerStop);\n }\n\n public stop() {\n document.removeEventListener('mousemove', this.listenerMove);\n document.removeEventListener('touchmove', this.listenerMove);\n document.removeEventListener('mouseup', this.listenerStop);\n document.removeEventListener('touchend', this.listenerStop);\n }\n\n public getX(event: any): number {\n return (\n /* Ignoring event.touches as tests are not run on a touch device. */\n /* istanbul ignore next */\n event.pageX !== undefined ? event.pageX : event.touches[0].pageX)\n - this.el.nativeElement.getBoundingClientRect().left\n - window.pageXOffset;\n }\n public getY(event: any): number {\n return (\n /* Ignoring event.touches as tests are not run on a touch device. */\n /* istanbul ignore next */\n event.pageY !== undefined ? event.pageY : event.touches[0].pageY)\n - this.el.nativeElement.getBoundingClientRect().top\n - window.pageYOffset;\n }\n}\n","// spell-checker:ignore Colorpicker\nimport {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener\n} from '@angular/core';\n\nimport {\n SkyColorpickerChangeColor\n} from './types/colorpicker-color';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyColorpickerText]'\n})\nexport class SkyColorpickerTextDirective {\n @Output()\n public newColorContrast = new EventEmitter<SkyColorpickerChangeColor>();\n @Input()\n public skyColorpickerText: any;\n @Input()\n public color: string;\n @Input()\n public maxRange: number;\n\n @HostListener('input', ['$event'])\n public changeInput(event: Event) {\n let element: HTMLInputElement = <HTMLInputElement>event.target;\n let elementValue = parseFloat(element.value);\n if (this.maxRange === undefined) {\n this.newColorContrast.emit({\n color: element.value,\n colorValue: undefined,\n maxRange: undefined\n } as SkyColorpickerChangeColor);\n }\n\n if (!isNaN(elementValue) && elementValue >= 0 && elementValue <= this.maxRange) {\n this.newColorContrast.emit({\n color: this.color,\n colorValue: elementValue,\n maxRange: this.maxRange\n } as SkyColorpickerChangeColor);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixer,\n SkyAffixService,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n fromEvent,\n Subject\n} from 'rxjs';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n SkyColorpickerChangeAxis\n} from './types/colorpicker-axis';\n\nimport {\n SkyColorpickerChangeColor\n} from './types/colorpicker-color';\n\nimport {\n SkyColorpickerHsla\n} from './types/colorpicker-hsla';\n\nimport {\n SkyColorpickerHsva\n} from './types/colorpicker-hsva';\n\nimport {\n SkyColorpickerMessage\n} from './types/colorpicker-message';\n\nimport {\n SkyColorpickerMessageType\n} from './types/colorpicker-message-type';\n\nimport {\n SkyColorpickerOutput\n} from './types/colorpicker-output';\n\nimport {\n SkyColorpickerRgba\n} from './types/colorpicker-rgba';\n\nimport {\n SkyColorpickerResult\n} from './types/colorpicker-result';\n\nimport {\n SkyColorpickerService\n} from './colorpicker.service';\n\nimport {\n SliderPosition,\n SliderDimension\n} from './colorpicker-classes';\n\nlet componentIdIndex = 0;\n\n/**\n * Provides a SKY UX-themed replacement for the HTML `input` element with `type=\"color\"`.\n * The value that users select is driven through the `ngModel` attribute specified on\n * the `input` element.\n */\n@Component({\n selector: 'sky-colorpicker',\n templateUrl: './colorpicker.component.html',\n styleUrls: ['./colorpicker.component.scss'],\n providers: [\n SkyColorpickerService\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyColorpickerComponent implements OnInit, OnDestroy {\n\n /**\n * Specifies an ARIA label for the colorpicker. This sets the colorpicker's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)\n * when the colorpicker does not include a visible label. If the colorpicker includes a visible label, use `labelledBy` instead.\n * @default 'Select color value'\n */\n @Input()\n public label: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels the\n * colorpicker. This sets the colorpicker's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\n * If the colorpicker does not include a visible label, use `label` instead.\n */\n @Input()\n public labelledBy: string;\n\n /**\n * Fires when users select a color in the colorpicker.\n */\n @Output()\n public selectedColorChanged = new EventEmitter<SkyColorpickerOutput>();\n\n /**\n * Fires when users select **Apply** in the colorpicker to apply a color.\n */\n @Output()\n public selectedColorApplied = new EventEmitter<SkyColorpickerResult>();\n\n /**\n * Provides an observable to send commands to the colorpicker. The commands should\n * respect the `SkyColorPickerMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyColorpickerMessage>();\n\n /**\n * Indicates whether to display a reset button to let users return to the default color.\n */\n @Input()\n public showResetButton = true;\n\n public set disabled(value: boolean) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public idIndex: number;\n public skyColorpickerHexId: string;\n public skyColorpickerRedId: string;\n public skyColorpickerGreenId: string;\n public skyColorpickerBlueId: string;\n public skyColorpickerAlphaId: string;\n public alphaChannel: string;\n public allowTransparency: boolean;\n public alphaSliderColor: string;\n public arrowTop: number;\n public format: number;\n public hexText: string;\n public hslaText: SkyColorpickerHsla;\n public hueSliderColor: string;\n public outputFormat: string;\n public presetColors: Array<string>;\n public returnFormat: string;\n public rgbaText: SkyColorpickerRgba;\n public selectedColor: SkyColorpickerOutput;\n public slider: SliderPosition;\n public initialColor: string;\n public lastAppliedColor: string;\n public isPickerVisible: boolean;\n\n public backgroundColorForDisplay: string = '#fff';\n\n public colorpickerId: string;\n\n public isOpen: boolean = false;\n\n public isVisible: boolean = true;\n\n public triggerButtonId: string;\n\n @ViewChild('colorpickerTemplateRef', {\n read: TemplateRef\n })\n private colorpickerTemplateRef: TemplateRef<any>;\n\n @ViewChild('triggerButtonRef', {\n read: ElementRef\n })\n private triggerButtonRef: ElementRef;\n\n @ViewChild('colorpickerRef', {\n read: ElementRef\n })\n private set colorpickerRef(value: ElementRef) {\n if (value) {\n this._colorpickerRef = value;\n this.destroyAffixer();\n\n this.removePickerEventListeners();\n this.pickerUnsubscribe = new Subject<void>();\n\n // Ensure the colorpicker has fully rendered before adding the affixer. Added to address a\n // race condition when running under production conditions.\n setTimeout(() => {\n this.createAffixer();\n this.isPickerVisible = true;\n\n this.coreAdapter.getFocusableChildrenAndApplyFocus(value, '.sky-colorpicker', false);\n this.changeDetector.markForCheck();\n });\n }\n }\n\n private get colorpickerRef(): ElementRef {\n return this._colorpickerRef;\n }\n\n private hsva: SkyColorpickerHsva;\n private sliderDimMax: SliderDimension;\n private ngUnsubscribe = new Subject();\n\n private affixer: SkyAffixer;\n\n private overlay: SkyOverlayInstance;\n\n private pickerUnsubscribe: Subject<void>;\n\n private _colorpickerRef: ElementRef;\n\n private _disabled: boolean = false;\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private coreAdapter: SkyCoreAdapterService,\n private overlayService: SkyOverlayService,\n private service: SkyColorpickerService,\n @Optional() private themeSvc?: SkyThemeService\n ) {\n componentIdIndex++;\n\n this.idIndex = componentIdIndex;\n this.skyColorpickerRedId = 'sky-colorpicker-red-' + this.idIndex;\n this.skyColorpickerHexId = 'sky-colorpicker-hex-' + this.idIndex;\n this.skyColorpickerRedId = 'sky-colorpicker-red-' + this.idIndex;\n this.skyColorpickerGreenId = 'sky-colorpicker-green-' + this.idIndex;\n this.skyColorpickerBlueId = 'sky-colorpicker-blue-' + this.idIndex;\n this.skyColorpickerAlphaId = 'sky-colorpicker-alpha-' + this.idIndex;\n this.colorpickerId = `sky-colorpicker-${this.idIndex}`;\n this.triggerButtonId = `sky-colorpicker-button-${this.idIndex}`;\n }\n\n public setDialog(\n instance: any,\n elementRef: ElementRef,\n color: any,\n outputFormat: string,\n presetColors: Array<string>,\n alphaChannel: string,\n allowTransparency: boolean\n ): void {\n this.initialColor = color;\n this.outputFormat = outputFormat;\n this.presetColors = presetColors;\n this.alphaChannel = alphaChannel;\n this.allowTransparency = allowTransparency;\n\n if (this.outputFormat === 'rgba') {\n this.format = 1;\n } else if (this.outputFormat === 'hsla') {\n this.format = 2;\n } else {\n this.format = 0;\n }\n }\n\n public ngOnInit(): void {\n this.sliderDimMax = new SliderDimension(182, 270, 170, 182);\n this.slider = new SliderPosition(0, 0, 0, 0);\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyColorpickerMessage) => {\n this.handleIncomingMessages(message);\n });\n\n this.addTriggerButtonEventListeners();\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n /* istanbul ignore next */\n const themeName = themeSettings.currentSettings?.theme?.name;\n\n // Hue/alpha slider bars have different widths in Modern theme.\n /* istanbul ignore if */\n if (themeName === 'modern') {\n this.sliderDimMax = new SliderDimension(174, 270, 170, 174);\n } else {\n this.sliderDimMax = new SliderDimension(182, 270, 170, 182);\n }\n this.updateSlider();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.removePickerEventListeners();\n this.destroyAffixer();\n this.destroyOverlay();\n }\n\n public onTriggerButtonClick(): void {\n this.sendMessage(SkyColorpickerMessageType.Open);\n }\n\n public closePicker(): void {\n this.destroyAffixer();\n this.destroyOverlay();\n this.removePickerEventListeners();\n this.triggerButtonRef.nativeElement.focus();\n this.isOpen = false;\n }\n\n public onApplyColorClick(): void {\n this.selectedColorChanged.emit(this.selectedColor);\n this.selectedColorApplied.emit({ color: this.selectedColor });\n this.lastAppliedColor = this.selectedColor.rgbaText;\n this.updatePickerValues(this.lastAppliedColor);\n this.backgroundColorForDisplay = this.selectedColor.rgbaText;\n this.closePicker();\n }\n\n public onCancelClick(): void {\n // Revert picker values back to previous color.\n this.updatePickerValues(this.backgroundColorForDisplay);\n this.closePicker();\n }\n\n public onPresetClick(value: string): void {\n this.updatePickerValues(value);\n }\n\n public onResetClick(): void {\n this.sendMessage(SkyColorpickerMessageType.Reset);\n }\n\n public updatePickerValues(value: string): void {\n const hsva = this.getHsvaValue(value);\n if (hsva) {\n this.hsva = hsva;\n this.update();\n }\n }\n\n public set hue(change: SkyColorpickerChangeAxis) {\n this.hsva.hue = change.xCoordinate / change.maxRange;\n this.update();\n }\n\n public set red(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.red = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set green(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.green = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set blue(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.blue = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set alphaAxis(change: SkyColorpickerChangeAxis) {\n this.hsva.alpha = change.xCoordinate / change.maxRange;\n this.update();\n }\n\n public set alphaColor(change: SkyColorpickerChangeColor) {\n this.hsva.alpha = change.colorValue / change.maxRange;\n this.update();\n }\n\n public set hex(change: SkyColorpickerChangeColor) {\n this.updatePickerValues(change.color);\n }\n\n public set saturationAndLightness(value: SkyColorpickerChangeAxis) {\n this.hsva.saturation = value.xCoordinate / value.xAxis;\n this.hsva.value = value.yCoordinate / value.yAxis;\n this.update();\n }\n\n public update(): void {\n let hsla: SkyColorpickerHsla = this.service.hsva2hsla(this.hsva);\n let dHsla: SkyColorpickerHsla = this.service.denormalizeHSLA(hsla);\n let rgba: SkyColorpickerRgba = this.service.hsvaToRgba(this.hsva);\n let dRgba: SkyColorpickerRgba = this.service.denormalizeRGBA(rgba);\n\n let hsva: SkyColorpickerHsva = {\n 'hue': this.hsva.hue,\n 'saturation': 1,\n 'value': 1,\n 'alpha': 1\n };\n\n let hueRgba = this.service.denormalizeRGBA(\n this.service.hsvaToRgba(hsva)\n );\n\n this.hslaText = dHsla;\n this.rgbaText = dRgba;\n this.hexText = this.service.hexText(dRgba, this.alphaChannel === 'hex8');\n\n this.alphaSliderColor = `rgba(${dRgba.red},${dRgba.green},${dRgba.blue},${dRgba.alpha})`;\n this.hueSliderColor = `rgba(${hueRgba.red},${hueRgba.green},${hueRgba.blue},${rgba.alpha})`;\n\n if (this.format === 0 && this.hsva.alpha < 1 && this.alphaChannel === 'hex6') {\n this.format++;\n }\n\n this.service.outputFormat(\n this.hsva,\n this.outputFormat,\n this.alphaChannel === 'hex8');\n this.selectedColor = this.service.skyColorpickerOut(this.hsva);\n\n this.updateSlider();\n }\n\n private updateSlider(): void {\n if (this.hsva && this.sliderDimMax) {\n this.slider = new SliderPosition(\n (this.hsva.hue) * this.sliderDimMax.hue - 8,\n this.hsva.saturation * this.sliderDimMax.saturation - 8,\n (1 - this.hsva.value) * this.sliderDimMax.value - 8,\n this.hsva.alpha * this.sliderDimMax.alpha - 8\n );\n }\n }\n\n private openPicker(): void {\n this.isPickerVisible = false;\n this.removePickerEventListeners();\n this.destroyOverlay();\n this.createOverlay();\n this.isOpen = true;\n }\n\n private sendMessage(type: SkyColorpickerMessageType) {\n this.messageStream.next({ type });\n }\n\n private handleIncomingMessages(message: SkyColorpickerMessage) {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyColorpickerMessageType.Open:\n if (!this.isOpen) {\n this.openPicker();\n }\n break;\n\n case SkyColorpickerMessageType.Close:\n if (this.isOpen) {\n this.closePicker();\n }\n break;\n\n case SkyColorpickerMessageType.Reset:\n this.updatePickerValues(this.initialColor);\n this.backgroundColorForDisplay = this.initialColor;\n this.selectedColorChanged.emit(this.selectedColor);\n this.selectedColorApplied.emit({ color: this.selectedColor });\n break;\n\n case SkyColorpickerMessageType.ToggleResetButton:\n this.showResetButton = !this.showResetButton;\n break;\n }\n }\n\n private createAffixer(): void {\n const affixer = this.affixService.createAffixer(this.colorpickerRef);\n\n affixer.placementChange\n .pipe(takeUntil(this.pickerUnsubscribe))\n .subscribe((change) => {\n this.isPickerVisible = (change.placement !== null);\n });\n\n affixer.affixTo(this.triggerButtonRef.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: 'left',\n isSticky: true,\n placement: 'below'\n });\n\n this.affixer = affixer;\n }\n\n private destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n }\n\n private createOverlay(): void {\n const overlay = this.overlayService.create({\n enableClose: false,\n enablePointerEvents: false,\n enableScroll: true\n });\n\n overlay.attachTemplate(this.colorpickerTemplateRef);\n\n this.overlay = overlay;\n }\n\n private destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.overlay) {\n this.overlayService.close(this.overlay);\n this.overlay = undefined;\n }\n }\n\n private addTriggerButtonEventListeners(): void {\n fromEvent(window.document, 'keydown')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: KeyboardEvent) => {\n const key = event.key?.toLowerCase();\n /* istanbul ignore else */\n if (key === 'escape') {\n this.sendMessage(SkyColorpickerMessageType.Close);\n }\n });\n }\n\n private removePickerEventListeners(): void {\n /* istanbul ignore else */\n if (this.pickerUnsubscribe) {\n this.pickerUnsubscribe.next();\n this.pickerUnsubscribe.complete();\n this.pickerUnsubscribe = undefined;\n }\n }\n\n private getHsvaValue(value: string): SkyColorpickerHsva {\n let hsva: SkyColorpickerHsva;\n\n if (this.alphaChannel === 'hex8') {\n hsva = this.service.stringToHsva(value, true);\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(value, false);\n }\n\n } else {\n hsva = this.service.stringToHsva(value, false);\n }\n\n return hsva;\n }\n}\n","<div\n class=\"sky-input-group\"\n [ngClass]=\"{\n 'sky-colorpicker-hidden': !isVisible,\n 'sky-colorpicker-disabled': disabled\n }\"\n>\n <div\n [hidden]=\"true\"\n >\n <ng-content></ng-content>\n </div>\n\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-colorpicker-button\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? colorpickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label || (labelledBy ? null : ('skyux_colorpicker_dropdown_button' | skyLibResources))\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"label || (labelledBy ? null : ('skyux_colorpicker_dropdown_button' | skyLibResources))\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-colorpicker-button-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n [style.background-color]=\"backgroundColorForDisplay\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon *ngIf=\"showResetButton\"\n class=\"sky-colorpicker-button-modern-chevron\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"xs\"\n [ngClass]=\"{\n 'sky-colorpicker-button-modern-chevron-disabled': disabled\n }\"\n >\n </sky-icon>\n </ng-container>\n </button>\n\n <ng-template #colorpickerTemplateRef>\n <div\n class=\"sky-colorpicker-container\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"colorpickerId\"\n [hidden]=\"!isPickerVisible\"\n [skyThemeClass]=\"{\n 'sky-shadow' : 'default',\n 'sky-elevation-4' : 'modern'\n }\"\n #colorpickerRef\n >\n <div\n class=\"sky-colorpicker\"\n >\n <div\n class=\"saturation-lightness\"\n [color]=\"slider.saturation - slider.value\"\n [skyColorpickerSlider]\n [style.background-color]=\"hueSliderColor\"\n [xAxis]=\"1\"\n [yAxis]=\"1\"\n (newColorContrast)=\"saturationAndLightness=$event\"\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.saturation\"\n [style.top.px]=\"slider.value\"\n ></div>\n </div>\n\n <div\n class=\"box\"\n >\n <div\n class=\"left\"\n >\n <div\n class=\"selected-color-background sky-rounded-circle\"\n ></div>\n <div\n class=\"selected-color sky-rounded-circle\"\n [style.background-color]=\"selectedColor?.rgbaText\"\n ></div>\n </div>\n <div\n class=\"right\"\n >\n <div\n class=\"hue\"\n [skyColorpickerSlider]\n [xAxis]=\"1\"\n (newColorContrast)=\"hue=$event\"\n #hueSlider\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.hue\"\n ></div>\n </div>\n <div *ngIf=\"this.allowTransparency\"\n class=\"alpha\"\n [skyColorpickerSlider]\n [style.background-color]=\"alphaSliderColor\"\n [xAxis]=\"1\"\n (newColorContrast)=\"alphaAxis=$event\"\n #alphaSlider\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.alpha\"\n ></div>\n </div>\n </div>\n </div>\n\n <div\n class=\"rgba-text\"\n >\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_hex' | skyLibResources\"\n [attr.for]=\"skyColorpickerHexId\"\n >\n {{ 'skyux_colorpicker_hex' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n pattern=\"^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$\"\n [attr.id]=\"skyColorpickerHexId\"\n [skyColorpickerText]\n [value]=\"hexText\"\n (newColorContrast)=\"hex=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_red' | skyLibResources\"\n [attr.for]=\"skyColorpickerRedId\"\n >\n {{ 'skyux_colorpicker_red' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerRedId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.red\"\n (newColorContrast)=\"red=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_green' | skyLibResources\"\n [attr.for]=\"skyColorpickerGreenId\"\n >\n {{ 'skyux_colorpicker_green' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerGreenId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.green\"\n (newColorContrast)=\"green=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_blue' | skyLibResources\"\n [attr.for]=\"skyColorpickerBlueId\"\n >\n {{ 'skyux_colorpicker_blue' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerBlueId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.blue\"\n (newColorContrast)=\"blue=$event\"\n />\n </sky-input-box>\n <sky-input-box *ngIf=\"this.allowTransparency\">\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_alpha' | skyLibResources\"\n [attr.for]=\"skyColorpickerAlphaId\"\n >\n {{ 'skyux_colorpicker_alpha' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"1\"\n min=\"0\"\n pattern=\"[0-9]+([\\.,][0-9]{1,2})?\"\n step=\"0.1\"\n type=\"number\"\n [attr.id]=\"skyColorpickerAlphaId\"\n [maxRange]=\"1\"\n [skyColorpickerText]\n [value]=\"rgbaText?.alpha\"\n (newColorContrast)=\"alphaColor=$event\"\n />\n </sky-input-box>\n </div>\n <div *ngIf=\"presetColors && presetColors.length\"\n class=\"sky-colorpicker-preset-color-area\"\n >\n <button *ngFor=\"let color of presetColors | slice:0:12; let i = index;\"\n type=\"button\"\n [attr.aria-label]=\"('skyux_colorpicker_preset_color' | skyLibResources) + ' ' + color\"\n [skyThemeClass]=\"{\n 'sky-preset-color': 'default',\n 'sky-btn sky-btn-link': 'modern'\n }\"\n [style.backgroundColor]=\"color\"\n (click)=\"onPresetClick(color)\"\n ></button>\n </div>\n </div>\n\n <div\n class=\"sky-colorpicker-footer\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n >\n <section\n class=\"sky-colorpicker-column\"\n >\n <button\n class=\"sky-btn sky-btn-primary sky-btn-colorpicker-apply\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_apply' | skyLibResources\"\n [skyThemeClass]=\"{ 'sky-margin-inline-sm' : 'modern' }\"\n (click)=\"onApplyColorClick()\"\n >\n {{ 'skyux_colorpicker_apply' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-btn-colorpicker-close\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_close' | skyLibResources\"\n (click)=\"onCancelClick()\"\n >\n {{ 'skyux_colorpicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n </ng-template>\n <span *ngIf=\"allowTransparency\"\n aria-hidden=\"true\"\n class=\"sky-colorpicker-checkered-background\"\n >\n </span>\n\n <button *ngIf=\"showResetButton\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_reset' | skyLibResources\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-colorpicker-reset-button-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-colorpicker-reset-button': 'default',\n 'sky-btn sky-btn-icon-borderless sky-colorpicker-reset-button-modern': 'modern'\n }\"\n (click)=\"onResetClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"times\"\n size=\"sm\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"trash\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n NgControl,\n FormControl\n} from '@angular/forms';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyColorpickerService\n} from './colorpicker.service';\n\nimport {\n SkyColorpickerComponent\n} from './colorpicker.component';\n\nimport {\n SkyColorpickerHsva\n} from './types/colorpicker-hsva';\n\nimport {\n SkyColorpickerOutput\n} from './types/colorpicker-output';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_COLORPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyColorpickerInputDirective),\n multi: true\n};\n\nconst SKY_COLORPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyColorpickerInputDirective),\n multi: true\n};\n// tslint:enable\nconst SKY_COLORPICKER_DEFAULT_COLOR = '#FFFFFF';\n\n /**\n * Creates the colorpicker element and dropdown.\n */\n @Directive({\n selector: '[skyColorpickerInput]',\n providers: [\n SKY_COLORPICKER_VALUE_ACCESSOR,\n SKY_COLORPICKER_VALIDATOR\n ]\n})\nexport class SkyColorpickerInputDirective\n implements OnInit, OnChanges, ControlValueAccessor, Validator, OnDestroy {\n\n public pickerChangedSubscription: Subscription;\n\n /**\n * Creates the colorpicker element and dropdown. Place this attribute on an `input` element\n * or `button` element, wrap the element in a `sky-colorpicker` component, and set the attribute\n * to the instance of the `sky-colorpicker` component.\n * @required\n */\n @Input()\n public skyColorpickerInput: SkyColorpickerComponent;\n\n /**\n * Specifies an initial color to load in the colorpicker. Use a reactive or\n * template-driven form to set this value. This property is deprecated. As an alternative,\n * we recommend the `formControlName` property on reactive forms or `ngModel` on\n * template-driven forms. See the demo for examples.\n * @deprecated\n */\n @Input()\n public set initialColor(value: string) {\n /* istanbul ignore else */\n if (!this._initialColor && !this.modelValue) {\n this.writeValue(value);\n }\n this._initialColor = value;\n }\n\n public get initialColor(): string {\n return this._initialColor || SKY_COLORPICKER_DEFAULT_COLOR;\n }\n\n /**\n * This property is deprecated and does not affect the colorpicker.\n * We recommend against using it.\n * @deprecated\n */\n @Input()\n public returnFormat = 'rgba';\n\n /**\n * Specifies the format to use for the color when the colorpicker uses a native input\n * element such as a standard text input or a button. This property accepts `rgba`, `hex`,\n * or `hsla`, but we do not recommend using it because users never see or use its value.\n * Instead, if you need to access this format value, see the demo for an example.\n */\n @Input()\n public outputFormat = 'rgba';\n\n /**\n * Specifies an array of colors to load as preset choices. The colorpicker displays the\n * colors in a series of 12 boxes for users to select.\n */\n @Input()\n public presetColors = ['#333', '#888', '#EFEFEF', '#FFF'];\n\n /**\n * Specifies the type of transparency to use in the transparency slider.\n */\n @Input()\n public alphaChannel = 'hex6';\n\n /**\n * Indicates whether to display a transparency slider for users to select transparency\n * levels.\n */\n @Input()\n public allowTransparency = true;\n\n private _disabled: boolean;\n private _initialColor: string;\n private modelValue: SkyColorpickerOutput;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private service: SkyColorpickerService,\n private resourcesService: SkyLibResourcesService,\n private injector: Injector\n ) { }\n\n @HostListener('input', ['$event'])\n public changeInput(event: any) {\n const value = event.target.value;\n this.skyColorpickerInput.updatePickerValues(value);\n this.skyColorpickerInput.backgroundColorForDisplay = value;\n }\n\n @HostListener('change', ['$event'])\n public onChange(event: any) {\n const newValue = event.target.value;\n this.modelValue = this.formatter(newValue);\n this._validatorChange();\n this._onChange(this.modelValue);\n this.writeModelValue(this.modelValue);\n }\n\n /* istanbul ignore next */\n @HostListener('blur')\n public onBlur() {\n /*istanbul ignore next */\n this._onTouched();\n }\n\n public ngOnInit() {\n const element = this.elementRef.nativeElement;\n\n this.renderer.addClass(element, 'sky-form-control');\n this.skyColorpickerInput.initialColor = this.initialColor;\n this.skyColorpickerInput.returnFormat = this.returnFormat;\n\n this.pickerChangedSubscription =\n this.skyColorpickerInput.selectedColorChanged.subscribe((newColor: SkyColorpickerOutput) => {\n /* istanbul ignore else */\n if (newColor) {\n this.modelValue = this.formatter(newColor);\n this.writeModelValue(this.modelValue);\n }\n this._onChange(newColor);\n });\n\n this.skyColorpickerInput.updatePickerValues(this.initialColor);\n\n /* Sanity check */\n /* istanbul ignore else */\n if (!this._disabled) {\n this.skyColorpickerInput.backgroundColorForDisplay = this.initialColor;\n }\n\n /// Set aria-label as default, if not set\n if (!element.getAttribute('aria-label')) {\n this.renderer.setAttribute(\n element,\n 'aria-label',\n this.getString('skyux_colorpicker_input_default_label'));\n }\n\n const typeAttr = element.getAttribute('type');\n if (typeAttr && typeAttr === 'hidden') {\n this.skyColorpickerInput.isVisible = false;\n } else {\n this.skyColorpickerInput.isVisible = true;\n }\n\n element.setAttribute('readonly', 'true');\n this.renderer.addClass(element, 'sky-colorpicker-input');\n }\n\n public ngOnDestroy() {\n this.pickerChangedSubscription.unsubscribe();\n }\n\n public setColorPickerDefaults() {\n this.skyColorpickerInput.setDialog(\n this,\n this.elementRef,\n this.initialColor,\n this.outputFormat,\n this.presetColors,\n this.alphaChannel,\n this.allowTransparency\n );\n }\n\n public ngOnChanges(): void {\n this._validatorChange();\n this.skyColorpickerInput.returnFormat = this.returnFormat;\n this.setColorPickerDefaults();\n }\n\n public registerOnChange(fn: (value: any) => any): void { this._onChange = fn; }\n public registerOnTouched(fn: () => any): void { this._onTouched = fn; }\n public registerOnValidatorChange(fn: () => void): void { this._validatorChange = fn; }\n\n public writeValue(value: any) {\n if (this.skyColorpickerInput && value && value !== this.skyColorpickerInput.lastAppliedColor) {\n this.modelValue = this.formatter(value);\n this.writeModelValue(this.modelValue);\n\n if (!this._initialColor) {\n this._initialColor = value;\n this.skyColorpickerInput.initialColor = value;\n }\n this.skyColorpickerInput.lastAppliedColor = value;\n let control: FormControl = (this.injector.get<NgControl>(NgControl)).control as FormControl;\n if (control) {\n control.setValue(this.modelValue, { emitEvent: false });\n }\n }\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n let value = control.value;\n if (!value) {\n return;\n }\n // Validation\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.skyColorpickerInput.disabled = isDisabled;\n if (this._disabled) {\n this.skyColorpickerInput.backgroundColorForDisplay = '#fff';\n } else {\n this.skyColorpickerInput.backgroundColorForDisplay = this.modelValue.hex;\n }\n }\n\n private writeModelValue(model: SkyColorpickerOutput) {\n const setElementValue = model.rgbaText;\n const element = this.elementRef.nativeElement;\n\n let output: string;\n // tslint:disable-next-line:switch-default\n switch (this.outputFormat) {\n case 'rgba':\n output = model.rgbaText;\n break;\n\n case 'hsla':\n output = model.hslaText;\n break;\n\n case 'cmyk':\n output = model.cmykText;\n break;\n\n case 'hex':\n output = model.hex;\n break;\n }\n\n this.skyColorpickerInput.updatePickerValues(output);\n this.skyColorpickerInput.backgroundColorForDisplay = output;\n\n this.renderer.setStyle(element, 'background-color', setElementValue);\n this.renderer.setProperty(element, 'value', output);\n }\n\n private formatter(color: any) {\n if (color && typeof color !== 'string') {\n return color;\n }\n\n let formatColor: SkyColorpickerOutput;\n let hsva: SkyColorpickerHsva = this.service.stringToHsva(color, this.alphaChannel === 'hex8');\n\n formatColor = this.service.skyColorpickerOut(hsva);\n\n return formatColor;\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale(\n { locale: 'en-US' },\n key\n );\n }\n\n /*istanbul ignore next */\n private _onChange = (_: any) => { };\n /*istanbul ignore next */\n private _onTouched = () => { };\n private _validatorChange = () => { };\n\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyAffixModule,\n SkyOverlayModule\n} from '@skyux/core';\n\nimport {\n SkyInputBoxModule\n} from '@skyux/forms';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyIconModule\n} from '@skyux/indicators';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyColorpickerResourcesModule\n} from '../shared/sky-colorpicker-resources.module';\n\nimport {\n SkyColorpickerComponent\n} from './colorpicker.component';\n\nimport {\n SkyColorpickerInputDirective\n} from './colorpicker-input.directive';\n\nimport {\n SkyColorpickerSliderDirective\n} from './colorpicker-slider.directive';\n\nimport {\n SkyColorpickerTextDirective\n} from './colorpicker-text.directive';\n\n@NgModule({\n declarations: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective,\n SkyColorpickerTextDirective,\n SkyColorpickerSliderDirective\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyColorpickerResourcesModule,\n SkyI18nModule,\n SkyIconModule,\n SkyInputBoxModule,\n SkyOverlayModule,\n SkyThemeModule\n ],\n exports: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective\n ],\n entryComponents: [\n SkyColorpickerComponent\n ]\n})\nexport class SkyColorpickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-colorpicker.js","sources":["../../../projects/colorpicker/src/modules/shared/sky-colorpicker-resources.module.ts","../../../projects/colorpicker/src/modules/colorpicker/types/colorpicker-message-type.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.service.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-classes.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-slider.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-text.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.component.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.component.html","../../../projects/colorpicker/src/modules/colorpicker/colorpicker-input.directive.ts","../../../projects/colorpicker/src/modules/colorpicker/colorpicker.module.ts","../../../projects/colorpicker/src/skyux-colorpicker.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-colorpicker' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule, Injectable } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\"skyux_colorpicker_alpha\":{\"message\":\"A:\"},\"skyux_colorpicker_apply\":{\"message\":\"Apply\"},\"skyux_colorpicker_aria_alpha\":{\"message\":\"Alpha channel value between 0 and 1\"},\"skyux_colorpicker_aria_blue\":{\"message\":\"Blue value between 0 and 255\"},\"skyux_colorpicker_aria_green\":{\"message\":\"Green value between 0 and 255\"},\"skyux_colorpicker_aria_hex\":{\"message\":\"Hexadecimal color code\"},\"skyux_colorpicker_aria_red\":{\"message\":\"Red value between 0 and 255\"},\"skyux_colorpicker_blue\":{\"message\":\"B:\"},\"skyux_colorpicker_close\":{\"message\":\"Cancel\"},\"skyux_colorpicker_dropdown_button\":{\"message\":\"Select color value\"},\"skyux_colorpicker_green\":{\"message\":\"G:\"},\"skyux_colorpicker_hex\":{\"message\":\"Hex:\"},\"skyux_colorpicker_input_default_label\":{\"message\":\"Color value\"},\"skyux_colorpicker_preset_color\":{\"message\":\"Preset Color:\"},\"skyux_colorpicker_red\":{\"message\":\"R:\"},\"skyux_colorpicker_reset\":{\"message\":\"Reset color value to white\"}},\n};\n\n@Injectable()\nexport class SkyColorpickerResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyColorpickerResourcesProvider,\n multi: true\n }]\n})\nexport class SkyColorpickerResourcesModule { }\n","/**\n * Specifies the commands to provide the colorpicker.\n */\nexport enum SkyColorpickerMessageType {\n /**\n * Opens the colorpicker.\n */\n Open = 0,\n /**\n * Resets the selection in the colorpicker.\n */\n Reset = 1,\n /**\n * Toggles whether to display a reset button beside the colorpicker.\n */\n ToggleResetButton = 2,\n /**\n * Closes the colorpicker.\n */\n Close = 3\n}\n","// spell-checker:ignore hsva, hsla, cmyk, denormalize, colorpicker,Injectable\nimport { Injectable } from '@angular/core';\nimport { SkyColorpickerCmyk } from './types/colorpicker-cmyk';\nimport { SkyColorpickerHsla } from './types/colorpicker-hsla';\nimport { SkyColorpickerHsva } from './types/colorpicker-hsva';\nimport { SkyColorpickerRgba } from './types/colorpicker-rgba';\nimport { SkyColorpickerOutput } from './types/colorpicker-output';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyColorpickerService {\n constructor() { }\n\n public hsla2hsva(hsla: SkyColorpickerHsla): SkyColorpickerHsva {\n const alpha: number = Math.min(hsla.alpha, 1);\n const hue: number = Math.min(hsla.hue, 1);\n const lightness: number = Math.min(hsla.lightness, 1);\n const saturation: number = Math.min(hsla.saturation, 1);\n let hsva: SkyColorpickerHsva = {\n 'hue': hue,\n 'saturation': saturation,\n 'value': lightness,\n 'alpha': alpha\n };\n if (lightness === 0) {\n hsva.saturation = 0;\n hsva.value = 0;\n } else {\n hsva.value = lightness + saturation * (1 - Math.abs(2 * lightness - 1)) / 2;\n hsva.saturation = 2 * (hsva.value - lightness) / hsva.value;\n\n }\n return hsva;\n }\n\n public hsva2hsla(hsva: SkyColorpickerHsva): SkyColorpickerHsla {\n const alpha: number = hsva.alpha;\n const hue: number = hsva.hue;\n const saturation: number = hsva.saturation;\n const value: number = hsva.value;\n\n let hsla: SkyColorpickerHsla = {\n 'hue': hue,\n 'saturation': saturation,\n 'lightness': value,\n 'alpha': alpha\n };\n if (value === 0) {\n hsla.lightness = 0;\n hsla.saturation = 0;\n } else {\n hsla.lightness = value * (2 - saturation) / 2;\n hsla.saturation = value * saturation / (1 - Math.abs(2 * hsla.lightness - 1));\n }\n return hsla;\n }\n\n public rgbaToHsva(rgba: SkyColorpickerRgba): SkyColorpickerHsva {\n const red: number = Math.min(rgba.red, 1);\n const green: number = Math.min(rgba.green, 1);\n const blue: number = Math.min(rgba.blue, 1);\n const alpha: number = Math.min(rgba.alpha, 1);\n const max: number = Math.max(red, green, blue);\n const min: number = Math.min(red, green, blue);\n const value: number = max;\n const d = max - min;\n const saturation: number = max === 0 ? 0 : d / max;\n let hue: number = 0;\n let maxValue: { [key: number]: number };\n if (max !== min) {\n maxValue = {\n [red]: (green - blue) / d + (green < blue ? 6 : 0),\n [green]: (blue - red) / d + 2,\n [blue]: (red - green) / d + 4\n };\n hue = maxValue[max];\n hue /= 6;\n }\n const hsva: SkyColorpickerHsva = {\n 'hue': hue,\n 'saturation': saturation,\n 'value': value,\n 'alpha': alpha\n };\n return hsva;\n }\n\n public rgbaToCmyk(rgba: SkyColorpickerRgba): SkyColorpickerCmyk {\n let cmyk: SkyColorpickerCmyk = { 'cyan': 0, 'magenta': 0, 'yellow': 0, 'key': 0 };\n const key: number = 1 - Math.max(rgba.red, rgba.green, rgba.blue);\n\n if (key === 1) {\n cmyk.key = 1;\n return cmyk;\n }\n cmyk.cyan = (1 - rgba.red - key) / (1 - key);\n cmyk.magenta = (1 - rgba.green - key) / (1 - key);\n cmyk.yellow = (1 - rgba.blue - key) / (1 - key);\n cmyk.key = key;\n return cmyk;\n }\n\n public hsvaToRgba(hsva: SkyColorpickerHsva): SkyColorpickerRgba {\n let red: number = 0;\n let green: number = 0;\n let blue: number = 0;\n const hue = hsva.hue;\n const saturation = hsva.saturation;\n const value = hsva.value;\n const alpha = hsva.alpha || hsva.alpha === 0 ? hsva.alpha : 1;\n const i = Math.floor(hue * 6);\n const f = hue * 6 - i;\n const p = value * (1 - saturation);\n const q = value * (1 - f * saturation);\n const t = value * (1 - (1 - f) * saturation);\n const color: { [key: number]: any } = {\n 0: (): void => { red = value; green = t; blue = p; },\n 1: (): void => { red = q; green = value; blue = p; },\n 2: (): void => { red = p; green = value; blue = t; },\n 3: (): void => { red = p; green = q; blue = value; },\n 4: (): void => { red = t; green = p; blue = value; },\n 5: (): void => { red = value; green = p; blue = q; }\n };\n color[i % 6]();\n\n const rgba: SkyColorpickerRgba = {\n 'red': red,\n 'green': green,\n 'blue': blue,\n 'alpha': alpha\n };\n return rgba;\n }\n\n public stringToHsva(colorString: string, hex8: boolean): SkyColorpickerHsva {\n let stringParsers = [\n { // tslint:disable max-line-length\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[2], 0) / 255,\n 'green': parseInt(execResult[3], 0) / 255,\n 'blue': parseInt(execResult[4], 0) / 255,\n 'alpha': parseFloat(execResult[5])\n };\n return rgba;\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: (execResult: any) => {\n const hsla: SkyColorpickerHsla = {\n 'hue': parseInt(execResult[2], 0) / 360,\n 'saturation': parseInt(execResult[3], 0) / 100,\n 'lightness': parseInt(execResult[4], 0) / 100,\n 'alpha': parseFloat(execResult[5])\n };\n return hsla;\n // tslint:enable max-line-length\n }\n }\n ];\n if (hex8) {\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1], 16) / 255,\n 'green': parseInt(execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3], 16) / 255,\n 'alpha': parseInt(execResult[4], 16) / 255\n };\n return rgba;\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: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1], 16) / 255,\n 'green': parseInt(execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3], 16) / 255,\n 'alpha': 1\n };\n return rgba;\n }\n },\n {\n re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,\n parse: (execResult: any) => {\n const rgba: SkyColorpickerRgba = {\n 'red': parseInt(execResult[1] + execResult[1], 16) / 255,\n 'green': parseInt(execResult[2] + execResult[2], 16) / 255,\n 'blue': parseInt(execResult[3] + execResult[3], 16) / 255,\n 'alpha': 1\n };\n return rgba;\n }\n });\n }\n\n let hsva: SkyColorpickerHsva = undefined;\n for (let key in stringParsers) {\n /* istanbul ignore else */ /* for in must be filtered by an if */\n if (stringParsers.hasOwnProperty(key)) {\n let parser = stringParsers[key];\n let match = parser.re.exec(colorString);\n let color: any = match && parser.parse(match);\n if (color) {\n if ('red' in color) {\n hsva = this.rgbaToHsva(color);\n }\n if ('hue' in color) {\n hsva = this.hsla2hsva(color);\n }\n\n return hsva;\n }\n }\n }\n return hsva;\n }\n\n public outputFormat(hsva: SkyColorpickerHsva, outputFormat: string, allowHex8: boolean): string {\n if (['hsla', 'hex', 'cmyk'].indexOf(outputFormat) === -1) { outputFormat = 'rgba'; }\n let color: { [key: string]: any } = {\n 'hsla': () => {\n let hsla = this.denormalizeHSLA(this.hsva2hsla(hsva));\n return `hsla(${hsla.hue},${hsla.saturation}%,${hsla.lightness}%,${hsla.alpha})`;\n },\n 'hex': () => {\n return this.hexText(this.denormalizeRGBA(this.hsvaToRgba(hsva)), allowHex8);\n },\n 'cmyk': () => {\n let cmyk = this.denormalizeCMYK(this.rgbaToCmyk(this.hsvaToRgba(hsva)));\n return `cmyk(${cmyk.cyan}%,${cmyk.magenta}%,${cmyk.yellow}%,${cmyk.key}%)`;\n },\n 'rgba': () => {\n let rgba = this.denormalizeRGBA(this.hsvaToRgba(hsva));\n return `rgba(${rgba.red},${rgba.green},${rgba.blue},${rgba.alpha})`;\n }\n };\n\n return color[outputFormat]();\n }\n\n public skyColorpickerOut(color: SkyColorpickerHsva) {\n let formatColor: SkyColorpickerOutput;\n let cmykText: string = this.outputFormat(color, 'cmyk', true);\n let hslaText: string = this.outputFormat(color, 'hsla', true);\n let rgbaText: string = this.outputFormat(color, 'rgba', true);\n let rgba: SkyColorpickerRgba = this.hsvaToRgba(color);\n let hsla: SkyColorpickerHsla = this.hsva2hsla(color);\n let cmyk: SkyColorpickerCmyk = this.rgbaToCmyk(rgba);\n let hex: string = this.outputFormat(color, 'hex', false);\n\n formatColor = {\n 'cmykText': cmykText,\n 'hslaText': hslaText,\n 'rgbaText': rgbaText,\n 'hsva': this.denormalizeHSVA(color),\n 'rgba': this.denormalizeRGBA(rgba),\n 'hsla': this.denormalizeHSLA(hsla),\n 'cmyk': this.denormalizeCMYK(cmyk),\n 'hex': hex\n };\n return formatColor;\n }\n\n public hexText(rgba: SkyColorpickerRgba, allowHex8: boolean): string {\n // tslint:disable no-bitwise\n let hexText = '#' + ((1 << 24) |\n (rgba.red << 16) |\n (rgba.green << 8) |\n rgba.blue).toString(16).substr(1);\n if (\n hexText[1] === hexText[2]\n && hexText[3] === hexText[4]\n && hexText[5] === hexText[6]\n && rgba.alpha === 1\n && !allowHex8) {\n hexText = '#' + hexText[1] + hexText[3] + hexText[5];\n }\n if (allowHex8) {\n hexText += ((1 << 8) | Math.round(rgba.alpha * 255)).toString(16).substr(1);\n }\n return hexText;\n // tslint:enable no-bitwise\n }\n\n public denormalizeRGBA(rgba: SkyColorpickerRgba): SkyColorpickerRgba {\n const denormalizeRgba: SkyColorpickerRgba = {\n 'red': Math.round(rgba.red * 255),\n 'green': Math.round(rgba.green * 255),\n 'blue': Math.round(rgba.blue * 255),\n 'alpha': Math.round(rgba.alpha * 100) / 100\n };\n return denormalizeRgba;\n }\n\n public denormalizeHSLA(hsla: SkyColorpickerHsla): SkyColorpickerHsla {\n const denormalizeHsla: SkyColorpickerHsla = {\n hue: Math.round((hsla.hue) * 360),\n saturation: Math.round(hsla.saturation * 100),\n lightness: Math.round(hsla.lightness * 100),\n alpha: Math.round(hsla.alpha * 100) / 100\n };\n return denormalizeHsla;\n }\n\n public denormalizeHSVA(hsla: SkyColorpickerHsva): SkyColorpickerHsva {\n const denormalizeHsva: SkyColorpickerHsva = {\n hue: Math.round((hsla.hue) * 360),\n saturation: Math.round(hsla.saturation * 100),\n value: Math.round(hsla.value * 100),\n alpha: Math.round(hsla.alpha * 100) / 100\n };\n return denormalizeHsva;\n }\n\n public denormalizeCMYK(cmyk: SkyColorpickerCmyk): SkyColorpickerCmyk {\n const denormalizeCmyk: SkyColorpickerCmyk = {\n cyan: Math.round((cmyk.cyan) * 100),\n magenta: Math.round(cmyk.magenta * 100),\n yellow: Math.round(cmyk.yellow * 100),\n key: Math.round(cmyk.key * 100)\n };\n return denormalizeCmyk;\n }\n}\n","// spell-checker:ignore colorpicker\n\n/**\n * @internal\n */\nexport class SliderPosition {\n constructor(\n public hue: number,\n public saturation: number,\n public value: number,\n public alpha: number) { }\n}\n/**\n * @internal\n */\nexport class SliderDimension {\n constructor(\n public hue: number,\n public saturation: number,\n public value: number,\n public alpha: number) { }\n}\n","// spell-checker:ignore Colorpicker\nimport {\n Directive,\n Input,\n Output,\n ElementRef,\n EventEmitter,\n HostListener\n} from '@angular/core';\n\nimport {\n SkyColorpickerChangeAxis\n} from './types/colorpicker-axis';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyColorpickerSlider]'\n})\nexport class SkyColorpickerSliderDirective {\n\n @Output()\n public newColorContrast = new EventEmitter<SkyColorpickerChangeAxis>();\n @Input()\n public skyColorpickerSlider: string;\n @Input()\n public color: string;\n @Input()\n public xAxis: number;\n @Input()\n public yAxis: number;\n\n private listenerMove: any;\n private listenerStop: any;\n\n constructor(private el: ElementRef) {\n this.listenerMove = (event: any) => { this.move(event); };\n this.listenerStop = () => { this.stop(); };\n }\n\n public setCursor(event: any) {\n let height = this.el.nativeElement.offsetHeight;\n let width = this.el.nativeElement.offsetWidth;\n let xAxis = Math.max(0, Math.min(this.getX(event), width));\n let yAxis = Math.max(0, Math.min(this.getY(event), height));\n if (this.xAxis !== undefined && this.yAxis !== undefined) {\n this.newColorContrast.emit({\n xCoordinate: xAxis / width,\n yCoordinate: (1 - yAxis / height),\n xAxis: this.xAxis,\n yAxis: this.yAxis\n } as SkyColorpickerChangeAxis);\n } else {\n this.newColorContrast.emit({\n xCoordinate: xAxis / width,\n maxRange: this.xAxis\n } as SkyColorpickerChangeAxis);\n }\n /* // No vertical bars\n if (this.xAxis === undefined && this.yAxis !== undefined) {\n this.newColorContrast.emit({ yCoordinate: yAxis / height, maxRange: this.yAxis });\n } */\n\n }\n\n public move(event: any) {\n event.preventDefault();\n this.setCursor(event);\n }\n @HostListener('touchstart', ['$event'])\n @HostListener('mousedown', ['$event'])\n public start(event: MouseEvent) {\n this.setCursor(event);\n document.addEventListener('mousemove', this.listenerMove);\n document.addEventListener('touchmove', this.listenerMove);\n document.addEventListener('mouseup', this.listenerStop);\n document.addEventListener('touchend', this.listenerStop);\n }\n\n public stop() {\n document.removeEventListener('mousemove', this.listenerMove);\n document.removeEventListener('touchmove', this.listenerMove);\n document.removeEventListener('mouseup', this.listenerStop);\n document.removeEventListener('touchend', this.listenerStop);\n }\n\n public getX(event: any): number {\n return (\n /* Ignoring event.touches as tests are not run on a touch device. */\n /* istanbul ignore next */\n event.pageX !== undefined ? event.pageX : event.touches[0].pageX)\n - this.el.nativeElement.getBoundingClientRect().left\n - window.pageXOffset;\n }\n public getY(event: any): number {\n return (\n /* Ignoring event.touches as tests are not run on a touch device. */\n /* istanbul ignore next */\n event.pageY !== undefined ? event.pageY : event.touches[0].pageY)\n - this.el.nativeElement.getBoundingClientRect().top\n - window.pageYOffset;\n }\n}\n","// spell-checker:ignore Colorpicker\nimport {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener\n} from '@angular/core';\n\nimport {\n SkyColorpickerChangeColor\n} from './types/colorpicker-color';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyColorpickerText]'\n})\nexport class SkyColorpickerTextDirective {\n @Output()\n public newColorContrast = new EventEmitter<SkyColorpickerChangeColor>();\n @Input()\n public skyColorpickerText: any;\n @Input()\n public color: string;\n @Input()\n public maxRange: number;\n\n @HostListener('input', ['$event'])\n public changeInput(event: Event) {\n let element: HTMLInputElement = <HTMLInputElement>event.target;\n let elementValue = parseFloat(element.value);\n if (this.maxRange === undefined) {\n this.newColorContrast.emit({\n color: element.value,\n colorValue: undefined,\n maxRange: undefined\n } as SkyColorpickerChangeColor);\n }\n\n if (!isNaN(elementValue) && elementValue >= 0 && elementValue <= this.maxRange) {\n this.newColorContrast.emit({\n color: this.color,\n colorValue: elementValue,\n maxRange: this.maxRange\n } as SkyColorpickerChangeColor);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixer,\n SkyAffixService,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyCoreAdapterService\n} from '@skyux/core';\n\nimport {\n SkyThemeService\n} from '@skyux/theme';\n\nimport {\n fromEvent,\n Subject\n} from 'rxjs';\n\nimport {\n takeUntil\n} from 'rxjs/operators';\n\nimport {\n SkyColorpickerChangeAxis\n} from './types/colorpicker-axis';\n\nimport {\n SkyColorpickerChangeColor\n} from './types/colorpicker-color';\n\nimport {\n SkyColorpickerHsla\n} from './types/colorpicker-hsla';\n\nimport {\n SkyColorpickerHsva\n} from './types/colorpicker-hsva';\n\nimport {\n SkyColorpickerMessage\n} from './types/colorpicker-message';\n\nimport {\n SkyColorpickerMessageType\n} from './types/colorpicker-message-type';\n\nimport {\n SkyColorpickerOutput\n} from './types/colorpicker-output';\n\nimport {\n SkyColorpickerRgba\n} from './types/colorpicker-rgba';\n\nimport {\n SkyColorpickerResult\n} from './types/colorpicker-result';\n\nimport {\n SkyColorpickerService\n} from './colorpicker.service';\n\nimport {\n SliderPosition,\n SliderDimension\n} from './colorpicker-classes';\n\nlet componentIdIndex = 0;\n\n/**\n * Provides a SKY UX-themed replacement for the HTML `input` element with `type=\"color\"`.\n * The value that users select is driven through the `ngModel` attribute specified on\n * the `input` element.\n */\n@Component({\n selector: 'sky-colorpicker',\n templateUrl: './colorpicker.component.html',\n styleUrls: ['./colorpicker.component.scss'],\n providers: [\n SkyColorpickerService\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyColorpickerComponent implements OnInit, OnDestroy {\n\n /**\n * Specifies the name of the [Font Awesome 4.7](https://fontawesome.com/v4.7/icons/) icon to overlay on top of the picker. Do not specify the `fa fa-` classes.\n * @internal\n */\n @Input()\n public pickerButtonIcon?: string;\n\n /**\n * Specifies the type of icon to display. Specifying `fa` will display a Font Awesome icon, while specifying `skyux` will display an icon from the custom SKY UX icon font. Note that the custom SKY UX icon font is currently in beta.\n * @internal\n */\n @Input()\n public pickerButtonIconType?: string = 'fa';\n\n /**\n * Specifies an ARIA label for the colorpicker. This sets the colorpicker's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)\n * when the colorpicker does not include a visible label. If the colorpicker includes a visible label, use `labelledBy` instead.\n * @default 'Select color value'\n */\n @Input()\n public label: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels the\n * colorpicker. This sets the colorpicker's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\n * If the colorpicker does not include a visible label, use `label` instead.\n */\n @Input()\n public labelledBy: string;\n\n /**\n * Fires when users select a color in the colorpicker.\n */\n @Output()\n public selectedColorChanged = new EventEmitter<SkyColorpickerOutput>();\n\n /**\n * Fires when users select **Apply** in the colorpicker to apply a color.\n */\n @Output()\n public selectedColorApplied = new EventEmitter<SkyColorpickerResult>();\n\n /**\n * Provides an observable to send commands to the colorpicker. The commands should\n * respect the `SkyColorPickerMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyColorpickerMessage>();\n\n /**\n * Indicates whether to display a reset button to let users return to the default color.\n */\n @Input()\n public showResetButton = true;\n\n public set disabled(value: boolean) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public idIndex: number;\n public skyColorpickerHexId: string;\n public skyColorpickerRedId: string;\n public skyColorpickerGreenId: string;\n public skyColorpickerBlueId: string;\n public skyColorpickerAlphaId: string;\n public alphaChannel: string;\n public allowTransparency: boolean;\n public alphaSliderColor: string;\n public arrowTop: number;\n public format: number;\n public hexText: string;\n public hslaText: SkyColorpickerHsla;\n public hueSliderColor: string;\n public outputFormat: string;\n public presetColors: Array<string>;\n public returnFormat: string;\n public rgbaText: SkyColorpickerRgba;\n public selectedColor: SkyColorpickerOutput;\n public slider: SliderPosition;\n public iconColor: string;\n public initialColor: string;\n public lastAppliedColor: string;\n public isPickerVisible: boolean;\n\n public set backgroundColorForDisplay(value: string) {\n this._backgroundColorForDisplay = value;\n if (this.pickerButtonIcon) {\n this.iconColor = this.getAccessibleIconColor(this.selectedColor);\n }\n }\n\n public get backgroundColorForDisplay(): string {\n /* istanbul ignore next */\n return this._backgroundColorForDisplay || '#fff';\n }\n\n public colorpickerId: string;\n\n public isOpen: boolean = false;\n\n public isVisible: boolean = true;\n\n public triggerButtonId: string;\n\n @ViewChild('colorpickerTemplateRef', {\n read: TemplateRef\n })\n private colorpickerTemplateRef: TemplateRef<any>;\n\n @ViewChild('triggerButtonRef', {\n read: ElementRef\n })\n private triggerButtonRef: ElementRef;\n\n @ViewChild('colorpickerRef', {\n read: ElementRef\n })\n private set colorpickerRef(value: ElementRef) {\n if (value) {\n this._colorpickerRef = value;\n this.destroyAffixer();\n\n this.removePickerEventListeners();\n this.pickerUnsubscribe = new Subject<void>();\n\n // Ensure the colorpicker has fully rendered before adding the affixer. Added to address a\n // race condition when running under production conditions.\n setTimeout(() => {\n this.createAffixer();\n this.isPickerVisible = true;\n\n this.coreAdapter.getFocusableChildrenAndApplyFocus(value, '.sky-colorpicker', false);\n this.changeDetector.markForCheck();\n });\n }\n }\n\n private get colorpickerRef(): ElementRef {\n return this._colorpickerRef;\n }\n\n private hsva: SkyColorpickerHsva;\n private sliderDimMax: SliderDimension;\n private ngUnsubscribe = new Subject();\n\n private affixer: SkyAffixer;\n\n private overlay: SkyOverlayInstance;\n\n private pickerUnsubscribe: Subject<void>;\n\n private _backgroundColorForDisplay: string;\n\n private _colorpickerRef: ElementRef;\n\n private _disabled: boolean = false;\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private coreAdapter: SkyCoreAdapterService,\n private overlayService: SkyOverlayService,\n private service: SkyColorpickerService,\n @Optional() private themeSvc?: SkyThemeService\n ) {\n componentIdIndex++;\n\n this.idIndex = componentIdIndex;\n this.skyColorpickerRedId = 'sky-colorpicker-red-' + this.idIndex;\n this.skyColorpickerHexId = 'sky-colorpicker-hex-' + this.idIndex;\n this.skyColorpickerRedId = 'sky-colorpicker-red-' + this.idIndex;\n this.skyColorpickerGreenId = 'sky-colorpicker-green-' + this.idIndex;\n this.skyColorpickerBlueId = 'sky-colorpicker-blue-' + this.idIndex;\n this.skyColorpickerAlphaId = 'sky-colorpicker-alpha-' + this.idIndex;\n this.colorpickerId = `sky-colorpicker-${this.idIndex}`;\n this.triggerButtonId = `sky-colorpicker-button-${this.idIndex}`;\n }\n\n public setDialog(\n instance: any,\n elementRef: ElementRef,\n color: any,\n outputFormat: string,\n presetColors: Array<string>,\n alphaChannel: string,\n allowTransparency: boolean\n ): void {\n this.initialColor = color;\n this.outputFormat = outputFormat;\n this.presetColors = presetColors;\n this.alphaChannel = alphaChannel;\n this.allowTransparency = allowTransparency;\n\n if (this.outputFormat === 'rgba') {\n this.format = 1;\n } else if (this.outputFormat === 'hsla') {\n this.format = 2;\n } else {\n this.format = 0;\n }\n }\n\n public ngOnInit(): void {\n this.sliderDimMax = new SliderDimension(182, 270, 170, 182);\n this.slider = new SliderPosition(0, 0, 0, 0);\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyColorpickerMessage) => {\n this.handleIncomingMessages(message);\n });\n\n this.addTriggerButtonEventListeners();\n\n /* istanbul ignore else */\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe((themeSettings) => {\n /* istanbul ignore next */\n const themeName = themeSettings.currentSettings?.theme?.name;\n\n // Hue/alpha slider bars have different widths in Modern theme.\n /* istanbul ignore if */\n if (themeName === 'modern') {\n this.sliderDimMax = new SliderDimension(174, 270, 170, 174);\n } else {\n this.sliderDimMax = new SliderDimension(182, 270, 170, 182);\n }\n this.updateSlider();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.removePickerEventListeners();\n this.destroyAffixer();\n this.destroyOverlay();\n }\n\n public onTriggerButtonClick(): void {\n this.sendMessage(SkyColorpickerMessageType.Open);\n }\n\n public closePicker(): void {\n this.destroyAffixer();\n this.destroyOverlay();\n this.removePickerEventListeners();\n this.triggerButtonRef.nativeElement.focus();\n this.isOpen = false;\n }\n\n public onApplyColorClick(): void {\n this.selectedColorChanged.emit(this.selectedColor);\n this.selectedColorApplied.emit({ color: this.selectedColor });\n this.lastAppliedColor = this.selectedColor.rgbaText;\n this.updatePickerValues(this.lastAppliedColor);\n this.backgroundColorForDisplay = this.selectedColor.rgbaText;\n this.closePicker();\n }\n\n public onCancelClick(): void {\n // Revert picker values back to previous color.\n this.updatePickerValues(this.backgroundColorForDisplay);\n this.closePicker();\n }\n\n public onPresetClick(value: string): void {\n this.updatePickerValues(value);\n }\n\n public onResetClick(): void {\n this.sendMessage(SkyColorpickerMessageType.Reset);\n }\n\n public updatePickerValues(value: string): void {\n const hsva = this.getHsvaValue(value);\n if (hsva) {\n this.hsva = hsva;\n this.update();\n }\n }\n\n public set hue(change: SkyColorpickerChangeAxis) {\n this.hsva.hue = change.xCoordinate / change.maxRange;\n this.update();\n }\n\n public set red(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.red = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set green(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.green = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set blue(change: SkyColorpickerChangeColor) {\n let rgba = this.service.hsvaToRgba(this.hsva);\n rgba.blue = change.colorValue / change.maxRange;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.update();\n }\n\n public set alphaAxis(change: SkyColorpickerChangeAxis) {\n this.hsva.alpha = change.xCoordinate / change.maxRange;\n this.update();\n }\n\n public set alphaColor(change: SkyColorpickerChangeColor) {\n this.hsva.alpha = change.colorValue / change.maxRange;\n this.update();\n }\n\n public set hex(change: SkyColorpickerChangeColor) {\n this.updatePickerValues(change.color);\n }\n\n public set saturationAndLightness(value: SkyColorpickerChangeAxis) {\n this.hsva.saturation = value.xCoordinate / value.xAxis;\n this.hsva.value = value.yCoordinate / value.yAxis;\n this.update();\n }\n\n public update(): void {\n let hsla: SkyColorpickerHsla = this.service.hsva2hsla(this.hsva);\n let dHsla: SkyColorpickerHsla = this.service.denormalizeHSLA(hsla);\n let rgba: SkyColorpickerRgba = this.service.hsvaToRgba(this.hsva);\n let dRgba: SkyColorpickerRgba = this.service.denormalizeRGBA(rgba);\n\n let hsva: SkyColorpickerHsva = {\n 'hue': this.hsva.hue,\n 'saturation': 1,\n 'value': 1,\n 'alpha': 1\n };\n\n let hueRgba = this.service.denormalizeRGBA(\n this.service.hsvaToRgba(hsva)\n );\n\n this.hslaText = dHsla;\n this.rgbaText = dRgba;\n this.hexText = this.service.hexText(dRgba, this.alphaChannel === 'hex8');\n\n this.alphaSliderColor = `rgba(${dRgba.red},${dRgba.green},${dRgba.blue},${dRgba.alpha})`;\n this.hueSliderColor = `rgba(${hueRgba.red},${hueRgba.green},${hueRgba.blue},${rgba.alpha})`;\n\n if (this.format === 0 && this.hsva.alpha < 1 && this.alphaChannel === 'hex6') {\n this.format++;\n }\n\n this.service.outputFormat(\n this.hsva,\n this.outputFormat,\n this.alphaChannel === 'hex8');\n this.selectedColor = this.service.skyColorpickerOut(this.hsva);\n\n this.updateSlider();\n }\n\n private updateSlider(): void {\n if (this.hsva && this.sliderDimMax) {\n this.slider = new SliderPosition(\n (this.hsva.hue) * this.sliderDimMax.hue - 8,\n this.hsva.saturation * this.sliderDimMax.saturation - 8,\n (1 - this.hsva.value) * this.sliderDimMax.value - 8,\n this.hsva.alpha * this.sliderDimMax.alpha - 8\n );\n }\n }\n\n private openPicker(): void {\n this.isPickerVisible = false;\n this.removePickerEventListeners();\n this.destroyOverlay();\n this.createOverlay();\n this.isOpen = true;\n }\n\n private sendMessage(type: SkyColorpickerMessageType) {\n this.messageStream.next({ type });\n }\n\n private handleIncomingMessages(message: SkyColorpickerMessage) {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyColorpickerMessageType.Open:\n if (!this.isOpen) {\n this.openPicker();\n }\n break;\n\n case SkyColorpickerMessageType.Close:\n if (this.isOpen) {\n this.closePicker();\n }\n break;\n\n case SkyColorpickerMessageType.Reset:\n this.updatePickerValues(this.initialColor);\n this.backgroundColorForDisplay = this.initialColor;\n this.selectedColorChanged.emit(this.selectedColor);\n this.selectedColorApplied.emit({ color: this.selectedColor });\n break;\n\n case SkyColorpickerMessageType.ToggleResetButton:\n this.showResetButton = !this.showResetButton;\n break;\n }\n }\n\n private createAffixer(): void {\n const affixer = this.affixService.createAffixer(this.colorpickerRef);\n\n affixer.placementChange\n .pipe(takeUntil(this.pickerUnsubscribe))\n .subscribe((change) => {\n this.isPickerVisible = (change.placement !== null);\n });\n\n affixer.affixTo(this.triggerButtonRef.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: 'left',\n isSticky: true,\n placement: 'below'\n });\n\n this.affixer = affixer;\n }\n\n private destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n }\n\n private createOverlay(): void {\n const overlay = this.overlayService.create({\n enableClose: false,\n enablePointerEvents: false,\n enableScroll: true\n });\n\n overlay.attachTemplate(this.colorpickerTemplateRef);\n\n this.overlay = overlay;\n }\n\n private destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.overlay) {\n this.overlayService.close(this.overlay);\n this.overlay = undefined;\n }\n }\n\n private addTriggerButtonEventListeners(): void {\n fromEvent(window.document, 'keydown')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: KeyboardEvent) => {\n const key = event.key?.toLowerCase();\n /* istanbul ignore else */\n if (key === 'escape') {\n this.sendMessage(SkyColorpickerMessageType.Close);\n }\n });\n }\n\n private removePickerEventListeners(): void {\n /* istanbul ignore else */\n if (this.pickerUnsubscribe) {\n this.pickerUnsubscribe.next();\n this.pickerUnsubscribe.complete();\n this.pickerUnsubscribe = undefined;\n }\n }\n\n private getHsvaValue(value: string): SkyColorpickerHsva {\n let hsva: SkyColorpickerHsva;\n\n if (this.alphaChannel === 'hex8') {\n hsva = this.service.stringToHsva(value, true);\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(value, false);\n }\n\n } else {\n hsva = this.service.stringToHsva(value, false);\n }\n\n return hsva;\n }\n\n // http://www.w3.org/TR/AERT#color-contrast\n private getAccessibleIconColor(backgroundColor: SkyColorpickerOutput): string {\n const rgb = backgroundColor.rgba;\n const brightness = Math.round(((rgb.red * 299) +\n (rgb.green * 587) +\n (rgb.blue * 114)) / 1000);\n return (brightness > 125) ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)';\n }\n}\n","<div\n class=\"sky-input-group\"\n [ngClass]=\"{\n 'sky-colorpicker-hidden': !isVisible,\n 'sky-colorpicker-disabled': disabled\n }\"\n>\n <div\n [hidden]=\"true\"\n >\n <ng-content></ng-content>\n </div>\n\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-colorpicker-button\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? colorpickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label || (labelledBy ? null : ('skyux_colorpicker_dropdown_button' | skyLibResources))\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"label || (labelledBy ? null : ('skyux_colorpicker_dropdown_button' | skyLibResources))\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-colorpicker-button-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern'\n }\"\n [style.background-color]=\"backgroundColorForDisplay\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *ngIf=\"pickerButtonIcon\"\n class=\"sky-colorpicker-button-icon\"\n [icon]=\"pickerButtonIcon\"\n [iconType]=\"pickerButtonIconType\"\n [size]=\"'1x'\"\n [style.color]=\"iconColor\"\n >\n </sky-icon>\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon\n class=\"sky-colorpicker-button-modern-chevron\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n size=\"xs\"\n [ngClass]=\"{\n 'sky-colorpicker-button-modern-chevron-disabled': disabled\n }\"\n >\n </sky-icon>\n </ng-container>\n </button>\n\n <ng-template #colorpickerTemplateRef>\n <div\n class=\"sky-colorpicker-container\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"colorpickerId\"\n [hidden]=\"!isPickerVisible\"\n [skyThemeClass]=\"{\n 'sky-shadow' : 'default',\n 'sky-elevation-4' : 'modern'\n }\"\n #colorpickerRef\n >\n <div\n class=\"sky-colorpicker\"\n >\n <div\n class=\"saturation-lightness\"\n [color]=\"slider.saturation - slider.value\"\n [skyColorpickerSlider]\n [style.background-color]=\"hueSliderColor\"\n [xAxis]=\"1\"\n [yAxis]=\"1\"\n (newColorContrast)=\"saturationAndLightness=$event\"\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.saturation\"\n [style.top.px]=\"slider.value\"\n ></div>\n </div>\n\n <div\n class=\"box\"\n >\n <div\n class=\"left\"\n >\n <div\n class=\"selected-color-background sky-rounded-circle\"\n ></div>\n <div\n class=\"selected-color sky-rounded-circle\"\n [style.background-color]=\"selectedColor?.rgbaText\"\n ></div>\n </div>\n <div\n class=\"right\"\n >\n <div\n class=\"hue\"\n [skyColorpickerSlider]\n [xAxis]=\"1\"\n (newColorContrast)=\"hue=$event\"\n #hueSlider\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.hue\"\n ></div>\n </div>\n <div *ngIf=\"this.allowTransparency\"\n class=\"alpha\"\n [skyColorpickerSlider]\n [style.background-color]=\"alphaSliderColor\"\n [xAxis]=\"1\"\n (newColorContrast)=\"alphaAxis=$event\"\n #alphaSlider\n >\n <div\n class=\"cursor sky-rounded-circle\"\n [style.left.px]=\"slider.alpha\"\n ></div>\n </div>\n </div>\n </div>\n\n <div\n class=\"rgba-text\"\n >\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_hex' | skyLibResources\"\n [attr.for]=\"skyColorpickerHexId\"\n >\n {{ 'skyux_colorpicker_hex' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n pattern=\"^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$\"\n [attr.id]=\"skyColorpickerHexId\"\n [skyColorpickerText]\n [value]=\"hexText\"\n (newColorContrast)=\"hex=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_red' | skyLibResources\"\n [attr.for]=\"skyColorpickerRedId\"\n >\n {{ 'skyux_colorpicker_red' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerRedId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.red\"\n (newColorContrast)=\"red=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_green' | skyLibResources\"\n [attr.for]=\"skyColorpickerGreenId\"\n >\n {{ 'skyux_colorpicker_green' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerGreenId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.green\"\n (newColorContrast)=\"green=$event\"\n />\n </sky-input-box>\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_blue' | skyLibResources\"\n [attr.for]=\"skyColorpickerBlueId\"\n >\n {{ 'skyux_colorpicker_blue' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"255\"\n min=\"0\"\n pattern=\"[0-9]*\"\n type=\"number\"\n [attr.id]=\"skyColorpickerBlueId\"\n [maxRange]=\"255\"\n [skyColorpickerText]\n [value]=\"rgbaText?.blue\"\n (newColorContrast)=\"blue=$event\"\n />\n </sky-input-box>\n <sky-input-box *ngIf=\"this.allowTransparency\">\n <label\n class=\"sky-control-label\"\n [attr.aria-label]=\"'skyux_colorpicker_aria_alpha' | skyLibResources\"\n [attr.for]=\"skyColorpickerAlphaId\"\n >\n {{ 'skyux_colorpicker_alpha' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n max=\"1\"\n min=\"0\"\n pattern=\"[0-9]+([\\.,][0-9]{1,2})?\"\n step=\"0.1\"\n type=\"number\"\n [attr.id]=\"skyColorpickerAlphaId\"\n [maxRange]=\"1\"\n [skyColorpickerText]\n [value]=\"rgbaText?.alpha\"\n (newColorContrast)=\"alphaColor=$event\"\n />\n </sky-input-box>\n </div>\n <div *ngIf=\"presetColors && presetColors.length\"\n class=\"sky-colorpicker-preset-color-area\"\n >\n <button *ngFor=\"let color of presetColors | slice:0:12; let i = index;\"\n type=\"button\"\n [attr.aria-label]=\"('skyux_colorpicker_preset_color' | skyLibResources) + ' ' + color\"\n [skyThemeClass]=\"{\n 'sky-preset-color': 'default',\n 'sky-btn sky-btn-link': 'modern'\n }\"\n [style.backgroundColor]=\"color\"\n (click)=\"onPresetClick(color)\"\n ></button>\n </div>\n </div>\n\n <div\n class=\"sky-colorpicker-footer\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n >\n <section\n class=\"sky-colorpicker-column\"\n >\n <button\n class=\"sky-btn sky-btn-primary sky-btn-colorpicker-apply\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_apply' | skyLibResources\"\n [skyThemeClass]=\"{ 'sky-margin-inline-sm' : 'modern' }\"\n (click)=\"onApplyColorClick()\"\n >\n {{ 'skyux_colorpicker_apply' | skyLibResources }}\n </button>\n <button\n class=\"sky-btn sky-btn-link sky-btn-colorpicker-close\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_close' | skyLibResources\"\n (click)=\"onCancelClick()\"\n >\n {{ 'skyux_colorpicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n </ng-template>\n <span *ngIf=\"allowTransparency\"\n aria-hidden=\"true\"\n class=\"sky-colorpicker-checkered-background\"\n >\n </span>\n\n <button *ngIf=\"showResetButton\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_colorpicker_reset' | skyLibResources\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-colorpicker-reset-button-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-colorpicker-reset-button': 'default',\n 'sky-btn sky-btn-icon-borderless sky-colorpicker-reset-button-modern': 'modern'\n }\"\n (click)=\"onResetClick()\"\n >\n <sky-icon *skyThemeIf=\"'default'\"\n icon=\"times\"\n size=\"sm\"\n >\n </sky-icon>\n <sky-icon *skyThemeIf=\"'modern'\"\n icon=\"trash\"\n iconType=\"skyux\"\n size=\"lg\"\n >\n </sky-icon>\n </button>\n</div>\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n NgControl,\n FormControl\n} from '@angular/forms';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n Subscription\n} from 'rxjs';\n\nimport {\n SkyColorpickerService\n} from './colorpicker.service';\n\nimport {\n SkyColorpickerComponent\n} from './colorpicker.component';\n\nimport {\n SkyColorpickerHsva\n} from './types/colorpicker-hsva';\n\nimport {\n SkyColorpickerOutput\n} from './types/colorpicker-output';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_COLORPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyColorpickerInputDirective),\n multi: true\n};\n\nconst SKY_COLORPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyColorpickerInputDirective),\n multi: true\n};\n// tslint:enable\nconst SKY_COLORPICKER_DEFAULT_COLOR = '#FFFFFF';\n\n /**\n * Creates the colorpicker element and dropdown.\n */\n @Directive({\n selector: '[skyColorpickerInput]',\n providers: [\n SKY_COLORPICKER_VALUE_ACCESSOR,\n SKY_COLORPICKER_VALIDATOR\n ]\n})\nexport class SkyColorpickerInputDirective\n implements OnInit, OnChanges, ControlValueAccessor, Validator, OnDestroy {\n\n public pickerChangedSubscription: Subscription;\n\n /**\n * Creates the colorpicker element and dropdown. Place this attribute on an `input` element\n * or `button` element, wrap the element in a `sky-colorpicker` component, and set the attribute\n * to the instance of the `sky-colorpicker` component.\n * @required\n */\n @Input()\n public skyColorpickerInput: SkyColorpickerComponent;\n\n /**\n * Specifies an initial color to load in the colorpicker. Use a reactive or\n * template-driven form to set this value. This property is deprecated. As an alternative,\n * we recommend the `formControlName` property on reactive forms or `ngModel` on\n * template-driven forms. See the demo for examples.\n * @deprecated\n */\n @Input()\n public set initialColor(value: string) {\n /* istanbul ignore else */\n if (!this._initialColor && !this.modelValue) {\n this.writeValue(value);\n }\n this._initialColor = value;\n }\n\n public get initialColor(): string {\n return this._initialColor || SKY_COLORPICKER_DEFAULT_COLOR;\n }\n\n /**\n * This property is deprecated and does not affect the colorpicker.\n * We recommend against using it.\n * @deprecated\n */\n @Input()\n public returnFormat = 'rgba';\n\n /**\n * Specifies the format to use for the color when the colorpicker uses a native input\n * element such as a standard text input or a button. This property accepts `rgba`, `hex`,\n * or `hsla`, but we do not recommend using it because users never see or use its value.\n * Instead, if you need to access this format value, see the demo for an example.\n */\n @Input()\n public outputFormat = 'rgba';\n\n /**\n * Specifies an array of colors to load as preset choices. The colorpicker displays the\n * colors in a series of 12 boxes for users to select.\n */\n @Input()\n public presetColors = ['#333', '#888', '#EFEFEF', '#FFF'];\n\n /**\n * Specifies the type of transparency to use in the transparency slider.\n */\n @Input()\n public alphaChannel = 'hex6';\n\n /**\n * Indicates whether to display a transparency slider for users to select transparency\n * levels.\n */\n @Input()\n public allowTransparency = true;\n\n private _disabled: boolean;\n private _initialColor: string;\n private modelValue: SkyColorpickerOutput;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private service: SkyColorpickerService,\n private resourcesService: SkyLibResourcesService,\n private injector: Injector\n ) { }\n\n @HostListener('input', ['$event'])\n public changeInput(event: any) {\n const value = event.target.value;\n this.skyColorpickerInput.updatePickerValues(value);\n this.skyColorpickerInput.backgroundColorForDisplay = value;\n }\n\n @HostListener('change', ['$event'])\n public onChange(event: any) {\n const newValue = event.target.value;\n this.modelValue = this.formatter(newValue);\n this._validatorChange();\n this._onChange(this.modelValue);\n this.writeModelValue(this.modelValue);\n }\n\n /* istanbul ignore next */\n @HostListener('blur')\n public onBlur() {\n /*istanbul ignore next */\n this._onTouched();\n }\n\n public ngOnInit() {\n const element = this.elementRef.nativeElement;\n\n this.renderer.addClass(element, 'sky-form-control');\n this.skyColorpickerInput.initialColor = this.initialColor;\n this.skyColorpickerInput.returnFormat = this.returnFormat;\n\n this.pickerChangedSubscription =\n this.skyColorpickerInput.selectedColorChanged.subscribe((newColor: SkyColorpickerOutput) => {\n /* istanbul ignore else */\n if (newColor) {\n this.modelValue = this.formatter(newColor);\n this.writeModelValue(this.modelValue);\n }\n this._onChange(newColor);\n });\n\n this.skyColorpickerInput.updatePickerValues(this.initialColor);\n\n /* Sanity check */\n /* istanbul ignore else */\n if (!this._disabled) {\n this.skyColorpickerInput.backgroundColorForDisplay = this.initialColor;\n }\n\n /// Set aria-label as default, if not set\n if (!element.getAttribute('aria-label')) {\n this.renderer.setAttribute(\n element,\n 'aria-label',\n this.getString('skyux_colorpicker_input_default_label'));\n }\n\n const typeAttr = element.getAttribute('type');\n if (typeAttr && typeAttr === 'hidden') {\n this.skyColorpickerInput.isVisible = false;\n } else {\n this.skyColorpickerInput.isVisible = true;\n }\n\n element.setAttribute('readonly', 'true');\n this.renderer.addClass(element, 'sky-colorpicker-input');\n }\n\n public ngOnDestroy() {\n this.pickerChangedSubscription.unsubscribe();\n }\n\n public setColorPickerDefaults() {\n this.skyColorpickerInput.setDialog(\n this,\n this.elementRef,\n this.initialColor,\n this.outputFormat,\n this.presetColors,\n this.alphaChannel,\n this.allowTransparency\n );\n }\n\n public ngOnChanges(): void {\n this._validatorChange();\n this.skyColorpickerInput.returnFormat = this.returnFormat;\n this.setColorPickerDefaults();\n }\n\n public registerOnChange(fn: (value: any) => any): void { this._onChange = fn; }\n public registerOnTouched(fn: () => any): void { this._onTouched = fn; }\n public registerOnValidatorChange(fn: () => void): void { this._validatorChange = fn; }\n\n public writeValue(value: any) {\n if (this.skyColorpickerInput && value && value !== this.skyColorpickerInput.lastAppliedColor) {\n this.modelValue = this.formatter(value);\n this.writeModelValue(this.modelValue);\n\n if (!this._initialColor) {\n this._initialColor = value;\n this.skyColorpickerInput.initialColor = value;\n }\n this.skyColorpickerInput.lastAppliedColor = value;\n let control: FormControl = (this.injector.get<NgControl>(NgControl)).control as FormControl;\n if (control) {\n control.setValue(this.modelValue, { emitEvent: false });\n }\n }\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n let value = control.value;\n if (!value) {\n return;\n }\n // Validation\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.skyColorpickerInput.disabled = isDisabled;\n if (this._disabled) {\n this.skyColorpickerInput.backgroundColorForDisplay = '#fff';\n } else {\n this.skyColorpickerInput.backgroundColorForDisplay = this.modelValue.hex;\n }\n }\n\n private writeModelValue(model: SkyColorpickerOutput) {\n const setElementValue = model.rgbaText;\n const element = this.elementRef.nativeElement;\n\n let output: string;\n // tslint:disable-next-line:switch-default\n switch (this.outputFormat) {\n case 'rgba':\n output = model.rgbaText;\n break;\n\n case 'hsla':\n output = model.hslaText;\n break;\n\n case 'cmyk':\n output = model.cmykText;\n break;\n\n case 'hex':\n output = model.hex;\n break;\n }\n\n this.skyColorpickerInput.updatePickerValues(output);\n this.skyColorpickerInput.backgroundColorForDisplay = output;\n\n this.renderer.setStyle(element, 'background-color', setElementValue);\n this.renderer.setProperty(element, 'value', output);\n }\n\n private formatter(color: any) {\n if (color && typeof color !== 'string') {\n return color;\n }\n\n let formatColor: SkyColorpickerOutput;\n let hsva: SkyColorpickerHsva = this.service.stringToHsva(color, this.alphaChannel === 'hex8');\n\n formatColor = this.service.skyColorpickerOut(hsva);\n\n return formatColor;\n }\n\n private getString(key: string): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale(\n { locale: 'en-US' },\n key\n );\n }\n\n /*istanbul ignore next */\n private _onChange = (_: any) => { };\n /*istanbul ignore next */\n private _onTouched = () => { };\n private _validatorChange = () => { };\n\n}\n","import {\n CommonModule\n} from '@angular/common';\n\nimport {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyAffixModule,\n SkyOverlayModule\n} from '@skyux/core';\n\nimport {\n SkyInputBoxModule\n} from '@skyux/forms';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyIconModule\n} from '@skyux/indicators';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyColorpickerResourcesModule\n} from '../shared/sky-colorpicker-resources.module';\n\nimport {\n SkyColorpickerComponent\n} from './colorpicker.component';\n\nimport {\n SkyColorpickerInputDirective\n} from './colorpicker-input.directive';\n\nimport {\n SkyColorpickerSliderDirective\n} from './colorpicker-slider.directive';\n\nimport {\n SkyColorpickerTextDirective\n} from './colorpicker-text.directive';\n\n@NgModule({\n declarations: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective,\n SkyColorpickerTextDirective,\n SkyColorpickerSliderDirective\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyColorpickerResourcesModule,\n SkyI18nModule,\n SkyIconModule,\n SkyInputBoxModule,\n SkyOverlayModule,\n SkyThemeModule\n ],\n exports: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective\n ],\n entryComponents: [\n SkyColorpickerComponent\n ]\n})\nexport class SkyColorpickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -24,6 +24,16 @@ export declare class SkyColorpickerComponent implements OnInit, OnDestroy {
24
24
  private overlayService;
25
25
  private service;
26
26
  private themeSvc?;
27
+ /**
28
+ * Specifies the name of the [Font Awesome 4.7](https://fontawesome.com/v4.7/icons/) icon to overlay on top of the picker. Do not specify the `fa fa-` classes.
29
+ * @internal
30
+ */
31
+ pickerButtonIcon?: string;
32
+ /**
33
+ * Specifies the type of icon to display. Specifying `fa` will display a Font Awesome icon, while specifying `skyux` will display an icon from the custom SKY UX icon font. Note that the custom SKY UX icon font is currently in beta.
34
+ * @internal
35
+ */
36
+ pickerButtonIconType?: string;
27
37
  /**
28
38
  * Specifies an ARIA label for the colorpicker. This sets the colorpicker's `aria-label` attribute
29
39
  * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)
@@ -77,10 +87,12 @@ export declare class SkyColorpickerComponent implements OnInit, OnDestroy {
77
87
  rgbaText: SkyColorpickerRgba;
78
88
  selectedColor: SkyColorpickerOutput;
79
89
  slider: SliderPosition;
90
+ iconColor: string;
80
91
  initialColor: string;
81
92
  lastAppliedColor: string;
82
93
  isPickerVisible: boolean;
83
- backgroundColorForDisplay: string;
94
+ set backgroundColorForDisplay(value: string);
95
+ get backgroundColorForDisplay(): string;
84
96
  colorpickerId: string;
85
97
  isOpen: boolean;
86
98
  isVisible: boolean;
@@ -95,6 +107,7 @@ export declare class SkyColorpickerComponent implements OnInit, OnDestroy {
95
107
  private affixer;
96
108
  private overlay;
97
109
  private pickerUnsubscribe;
110
+ private _backgroundColorForDisplay;
98
111
  private _colorpickerRef;
99
112
  private _disabled;
100
113
  constructor(affixService: SkyAffixService, changeDetector: ChangeDetectorRef, coreAdapter: SkyCoreAdapterService, overlayService: SkyOverlayService, service: SkyColorpickerService, themeSvc?: SkyThemeService);
@@ -128,6 +141,7 @@ export declare class SkyColorpickerComponent implements OnInit, OnDestroy {
128
141
  private addTriggerButtonEventListeners;
129
142
  private removePickerEventListeners;
130
143
  private getHsvaValue;
144
+ private getAccessibleIconColor;
131
145
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyColorpickerComponent, [null, null, null, null, null, { optional: true; }]>;
132
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyColorpickerComponent, "sky-colorpicker", never, { "label": "label"; "labelledBy": "labelledBy"; "messageStream": "messageStream"; "showResetButton": "showResetButton"; }, { "selectedColorChanged": "selectedColorChanged"; "selectedColorApplied": "selectedColorApplied"; }, never, ["*"]>;
146
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyColorpickerComponent, "sky-colorpicker", never, { "pickerButtonIcon": "pickerButtonIcon"; "pickerButtonIconType": "pickerButtonIconType"; "label": "label"; "labelledBy": "labelledBy"; "messageStream": "messageStream"; "showResetButton": "showResetButton"; }, { "selectedColorChanged": "selectedColorChanged"; "selectedColorApplied": "selectedColorApplied"; }, never, ["*"]>;
133
147
  }
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@skyux/colorpicker",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^12.2.7",
6
- "@angular/core": "^12.2.7",
7
- "@angular/forms": "^12.2.7",
8
- "@skyux/core": "^5.0.0",
5
+ "@angular/common": "^12.2.12",
6
+ "@angular/core": "^12.2.12",
7
+ "@angular/forms": "^12.2.12",
8
+ "@skyux/core": "^5.1.0",
9
9
  "@skyux/forms": "^5.0.0",
10
10
  "@skyux/i18n": "^5.0.0",
11
11
  "@skyux/indicators": "^5.0.0",
12
- "@skyux/theme": "^5.0.0"
12
+ "@skyux/theme": "^5.0.2"
13
13
  },
14
14
  "dependencies": {
15
- "tslib": "^2.3.0"
15
+ "tslib": "^2.3.1"
16
16
  },
17
17
  "main": "bundles/skyux-colorpicker.umd.js",
18
18
  "module": "fesm2015/skyux-colorpicker.js",