UNPKG

111 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-color-picker.umd.js","sources":["../../projects/lib/src/lib/formats.ts","../../projects/lib/src/lib/helpers.ts","../../projects/lib/src/lib/color-picker.service.ts","../../projects/lib/src/lib/color-picker.component.ts","../../projects/lib/src/lib/color-picker.directive.ts","../../projects/lib/src/lib/color-picker.module.ts","../../../projects/lib/src/ngx-color-picker.ts"],"sourcesContent":["export enum ColorFormats {\n HEX,\n RGBA,\n HSLA,\n CMYK\n}\n\nexport class Rgba {\n constructor(public r: number, public g: number, public b: number, public a: number) {}\n}\n\nexport class Hsva {\n constructor(public h: number, public s: number, public v: number, public a: number) {}\n}\n\nexport class Hsla {\n constructor(public h: number, public s: number, public l: number, public a: number) {}\n}\n\nexport class Cmyk {\n constructor(public c: number, public m: number, public y: number, public k: number, public a: number = 1) {}\n}\n","import { Directive, Input, Output, EventEmitter, HostListener, ElementRef } from '@angular/core';\n\nexport type ColorMode = 'color' | 'c' | '1' |\n 'grayscale' | 'g' | '2' | 'presets' | 'p' | '3';\n\nexport type AlphaChannel = 'enabled' | 'disabled' | 'always' | 'forced';\n\nexport type BoundingRectangle = {\n top: number;\n bottom: number;\n left: number;\n right: number;\n height: number;\n width: number;\n};\n\nexport type OutputFormat = 'auto' | 'hex' | 'rgba' | 'hsla';\n\nexport function calculateAutoPositioning(elBounds: BoundingRectangle, triggerElBounds: BoundingRectangle): string {\n // Defaults\n let usePositionX = 'right';\n let usePositionY = 'bottom';\n // Calculate collisions\n const { height, width } = elBounds;\n const { top, left } = triggerElBounds;\n const bottom = top + triggerElBounds.height;\n const right = left + triggerElBounds.width;\n\n const collisionTop = top - height < 0;\n const collisionBottom = bottom + height > (window.innerHeight || document.documentElement.clientHeight);\n const collisionLeft = left - width < 0;\n const collisionRight = right + width > (window.innerWidth || document.documentElement.clientWidth);\n const collisionAll = collisionTop && collisionBottom && collisionLeft && collisionRight;\n\n // Generate X & Y position values\n if (collisionBottom) {\n usePositionY = 'top';\n }\n\n if (collisionTop) {\n usePositionY = 'bottom';\n }\n\n if (collisionLeft) {\n usePositionX = 'right';\n }\n\n if (collisionRight) {\n usePositionX = 'left';\n }\n\n\n // Choose the largest gap available\n if (collisionAll) {\n const postions = ['left', 'right', 'top', 'bottom'];\n return postions.reduce((prev, next) => elBounds[prev] > elBounds[next] ? prev : next);\n }\n\n if ((collisionLeft && collisionRight)) {\n if (collisionTop) { return 'bottom'; }\n if (collisionBottom) { return 'top'; }\n return top > bottom ? 'top' : 'bottom';\n }\n\n if ((collisionTop && collisionBottom)) {\n if (collisionLeft) { return 'right'; }\n if (collisionRight) { return 'left'; }\n return left > right ? 'left' : 'right';\n }\n\n return `${usePositionY}-${usePositionX}`;\n}\n\nexport function detectIE(): boolean | number {\n let ua = '';\n\n if (typeof navigator !== 'undefined') {\n ua = navigator.userAgent.toLowerCase();\n }\n\n const msie = ua.indexOf('msie ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n // Other browser\n return false;\n}\n\n@Directive({\n selector: '[text]'\n})\nexport class TextDirective {\n @Input() rg: number;\n @Input() text: any;\n\n @Output() newValue = new EventEmitter<any>();\n\n @HostListener('input', ['$event']) inputChange(event: any): void {\n const value = event.target.value;\n\n if (this.rg === undefined) {\n this.newValue.emit(value);\n } else {\n const numeric = parseFloat(value);\n\n this.newValue.emit({ v: numeric, rg: this.rg });\n }\n }\n}\n\n@Directive({\n selector: '[slider]'\n})\nexport class SliderDirective {\n private listenerMove: any;\n private listenerStop: any;\n\n @Input() rgX: number;\n @Input() rgY: number;\n\n @Input() slider: string;\n\n @Output() dragEnd = new EventEmitter();\n @Output() dragStart = new EventEmitter();\n\n @Output() newValue = new EventEmitter<any>();\n\n @HostListener('mousedown', ['$event']) mouseDown(event: any): void {\n this.start(event);\n }\n\n @HostListener('touchstart', ['$event']) touchStart(event: any): void {\n this.start(event);\n }\n\n constructor(private elRef: ElementRef) {\n this.listenerMove = (event: any) => this.move(event);\n\n this.listenerStop = () => this.stop();\n }\n\n private move(event: any): void {\n event.preventDefault();\n\n this.setCursor(event);\n }\n\n private start(event: any): void {\n this.setCursor(event);\n\n event.stopPropagation();\n\n document.addEventListener('mouseup', this.listenerStop);\n document.addEventListener('touchend', this.listenerStop);\n document.addEventListener('mousemove', this.listenerMove);\n document.addEventListener('touchmove', this.listenerMove);\n\n this.dragStart.emit();\n }\n\n private stop(): void {\n document.removeEventListener('mouseup', this.listenerStop);\n document.removeEventListener('touchend', this.listenerStop);\n document.removeEventListener('mousemove', this.listenerMove);\n document.removeEventListener('touchmove', this.listenerMove);\n\n this.dragEnd.emit();\n }\n\n private getX(event: any): number {\n const position = this.elRef.nativeElement.getBoundingClientRect();\n\n const pageX = (event.pageX !== undefined) ? event.pageX : event.touches[0].pageX;\n\n return pageX - position.left - window.pageXOffset;\n }\n\n private getY(event: any): number {\n const position = this.elRef.nativeElement.getBoundingClientRect();\n\n const pageY = (event.pageY !== undefined) ? event.pageY : event.touches[0].pageY;\n\n return pageY - position.top - window.pageYOffset;\n }\n\n private setCursor(event: any): void {\n const width = this.elRef.nativeElement.offsetWidth;\n const height = this.elRef.nativeElement.offsetHeight;\n\n const x = Math.max(0, Math.min(this.getX(event), width));\n const y = Math.max(0, Math.min(this.getY(event), height));\n\n if (this.rgX !== undefined && this.rgY !== undefined) {\n this.newValue.emit({ s: x / width, v: (1 - y / height), rgX: this.rgX, rgY: this.rgY });\n } else if (this.rgX === undefined && this.rgY !== undefined) {\n this.newValue.emit({ v: y / height, rgY: this.rgY });\n } else if (this.rgX !== undefined && this.rgY === undefined) {\n this.newValue.emit({ v: x / width, rgX: this.rgX });\n }\n }\n}\n\nexport class SliderPosition {\n constructor(public h: number, public s: number, public v: number, public a: number) {}\n}\n\nexport class SliderDimension {\n constructor(public h: number, public s: number, public v: number, public a: number) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Cmyk, Rgba, Hsla, Hsva } from './formats';\n\nimport { ColorPickerComponent } from './color-picker.component';\n\n@Injectable()\nexport class ColorPickerService {\n private active: ColorPickerComponent | null = null;\n\n constructor() {}\n\n public setActive(active: ColorPickerComponent | null): void {\n if (this.active && this.active !== active && this.active.cpDialogDisplay !== 'inline') {\n this.active.closeDialog();\n }\n\n this.active = active;\n }\n\n public hsva2hsla(hsva: Hsva): Hsla {\n const h = hsva.h, s = hsva.s, v = hsva.v, a = hsva.a;\n\n if (v === 0) {\n return new Hsla(h, 0, 0, a);\n } else if (s === 0 && v === 1) {\n return new Hsla(h, 1, 1, a);\n } else {\n const l = v * (2 - s) / 2;\n\n return new Hsla(h, v * s / (1 - Math.abs(2 * l - 1)), l, a);\n }\n }\n\n public hsla2hsva(hsla: Hsla): Hsva {\n const h = Math.min(hsla.h, 1), s = Math.min(hsla.s, 1);\n const l = Math.min(hsla.l, 1), a = Math.min(hsla.a, 1);\n\n if (l === 0) {\n return new Hsva(h, 0, 0, a);\n } else {\n const v = l + s * (1 - Math.abs(2 * l - 1)) / 2;\n\n return new Hsva(h, 2 * (v - l) / v, v, a);\n }\n }\n\n public hsvaToRgba(hsva: Hsva): Rgba {\n let r: number, g: number, b: number;\n\n const h = hsva.h, s = hsva.s, v = hsva.v, a = hsva.a;\n\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v, g = t, b = p;\n break;\n case 1:\n r = q, g = v, b = p;\n break;\n case 2:\n r = p, g = v, b = t;\n break;\n case 3:\n r = p, g = q, b = v;\n break;\n case 4:\n r = t, g = p, b = v;\n break;\n case 5:\n r = v, g = p, b = q;\n break;\n default:\n r = 0, g = 0, b = 0;\n }\n\n return new Rgba(r, g, b, a);\n }\n\n public cmykToRgb(cmyk: Cmyk): Rgba {\n const r = ( 1 - cmyk.c ) * (1 - cmyk.k);\n const g = ( 1 - cmyk.m ) * (1 - cmyk.k);\n const b = ( 1 - cmyk.y ) * (1 - cmyk.k);\n\n return new Rgba(r, g, b, cmyk.a);\n }\n\n public rgbaToCmyk(rgba: Rgba): Cmyk {\n const k: number = 1 - Math.max(rgba.r, rgba.g, rgba.b);\n\n if (k === 1) {\n return new Cmyk(0, 0, 0, 1, rgba.a);\n } else {\n const c = (1 - rgba.r - k) / (1 - k);\n const m = (1 - rgba.g - k) / (1 - k);\n const y = (1 - rgba.b - k) / (1 - k);\n\n return new Cmyk(c, m, y, k, rgba.a);\n }\n }\n\n public rgbaToHsva(rgba: Rgba): Hsva {\n let h: number, s: number;\n\n const r = Math.min(rgba.r, 1), g = Math.min(rgba.g, 1);\n const b = Math.min(rgba.b, 1), a = Math.min(rgba.a, 1);\n\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n\n const v: number = max, d = max - min;\n\n s = (max === 0) ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n h = 0;\n }\n\n h /= 6;\n }\n\n return new Hsva(h, s, v, a);\n }\n\n public rgbaToHex(rgba: Rgba, allowHex8?: boolean): string {\n /* tslint:disable:no-bitwise */\n let hex = '#' + ((1 << 24) | (rgba.r << 16) | (rgba.g << 8) | rgba.b).toString(16).substr(1);\n\n if (allowHex8) {\n hex += ((1 << 8) | Math.round(rgba.a * 255)).toString(16).substr(1);\n }\n /* tslint:enable:no-bitwise */\n\n return hex;\n }\n\n public normalizeCMYK(cmyk: Cmyk): Cmyk {\n return new Cmyk(cmyk.c / 100, cmyk.m / 100, cmyk.y / 100, cmyk.k / 100, cmyk.a);\n }\n\n public denormalizeCMYK(cmyk: Cmyk): Cmyk {\n return new Cmyk(Math.floor(cmyk.c * 100), Math.floor(cmyk.m * 100), Math.floor(cmyk.y * 100),\n Math.floor(cmyk.k * 100), cmyk.a);\n }\n\n public denormalizeRGBA(rgba: Rgba): Rgba {\n return new Rgba(Math.round(rgba.r * 255), Math.round(rgba.g * 255), Math.round(rgba.b * 255), rgba.a);\n }\n\n public stringToHsva(colorString: string = '', allowHex8: boolean = false): Hsva | null {\n let hsva: Hsva | null = null;\n\n colorString = (colorString || '').toLowerCase();\n\n const stringParsers = [\n {\n re: /(rgb)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*%?,\\s*(\\d{1,3})\\s*%?(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function(execResult: any) {\n return new Rgba(parseInt(execResult[2], 10) / 255,\n parseInt(execResult[3], 10) / 255,\n parseInt(execResult[4], 10) / 255,\n isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5]));\n }\n }, {\n re: /(hsl)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function(execResult: any) {\n return new Hsla(parseInt(execResult[2], 10) / 360,\n parseInt(execResult[3], 10) / 100,\n parseInt(execResult[4], 10) / 100,\n isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5]));\n }\n }\n ];\n\n if (allowHex8) {\n stringParsers.push({\n re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})?$/,\n parse: function(execResult: any) {\n return new Rgba(parseInt(execResult[1], 16) / 255,\n parseInt(execResult[2], 16) / 255,\n parseInt(execResult[3], 16) / 255,\n parseInt(execResult[4] || 'FF', 16) / 255);\n }\n });\n } else {\n stringParsers.push({\n re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/,\n parse: function(execResult: any) {\n return new Rgba(parseInt(execResult[1], 16) / 255,\n parseInt(execResult[2], 16) / 255,\n parseInt(execResult[3], 16) / 255,\n 1);\n }\n });\n }\n\n stringParsers.push({\n re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,\n parse: function(execResult: any) {\n return new Rgba(parseInt(execResult[1] + execResult[1], 16) / 255,\n parseInt(execResult[2] + execResult[2], 16) / 255,\n parseInt(execResult[3] + execResult[3], 16) / 255,\n 1);\n }\n });\n\n for (const key in stringParsers) {\n if (stringParsers.hasOwnProperty(key)) {\n const parser = stringParsers[key];\n\n const match = parser.re.exec(colorString), color: any = match && parser.parse(match);\n\n if (color) {\n if (color instanceof Rgba) {\n hsva = this.rgbaToHsva(color);\n } else if (color instanceof Hsla) {\n hsva = this.hsla2hsva(color);\n }\n\n return hsva;\n }\n }\n }\n\n return hsva;\n }\n\n public outputFormat(hsva: Hsva, outputFormat: string, alphaChannel: string | null): string {\n if (outputFormat === 'auto') {\n outputFormat = hsva.a < 1 ? 'rgba' : 'hex';\n }\n\n switch (outputFormat) {\n case 'hsla':\n const hsla = this.hsva2hsla(hsva);\n\n const hslaText = new Hsla(Math.round((hsla.h) * 360), Math.round(hsla.s * 100),\n Math.round(hsla.l * 100), Math.round(hsla.a * 100) / 100);\n\n if (hsva.a < 1 || alphaChannel === 'always') {\n return 'hsla(' + hslaText.h + ',' + hslaText.s + '%,' + hslaText.l + '%,' +\n hslaText.a + ')';\n } else {\n return 'hsl(' + hslaText.h + ',' + hslaText.s + '%,' + hslaText.l + '%)';\n }\n\n case 'rgba':\n const rgba = this.denormalizeRGBA(this.hsvaToRgba(hsva));\n\n if (hsva.a < 1 || alphaChannel === 'always') {\n return 'rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' +\n Math.round(rgba.a * 100) / 100 + ')';\n } else {\n return 'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')';\n }\n\n default:\n const allowHex8 = (alphaChannel === 'always' || alphaChannel === 'forced');\n\n return this.rgbaToHex(this.denormalizeRGBA(this.hsvaToRgba(hsva)), allowHex8);\n }\n }\n}\n","import { Component, OnInit, OnDestroy, AfterViewInit,\n ViewChild, HostListener, ViewEncapsulation,\n ElementRef, ChangeDetectorRef } from '@angular/core';\n\nimport { detectIE, calculateAutoPositioning } from './helpers';\n\nimport { ColorFormats, Cmyk, Hsla, Hsva, Rgba } from './formats';\nimport { AlphaChannel, OutputFormat, SliderDimension, SliderPosition } from './helpers';\n\nimport { ColorPickerService } from './color-picker.service';\n\n@Component({\n selector: 'color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: [ './color-picker.component.css' ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ColorPickerComponent implements OnInit, OnDestroy, AfterViewInit {\n private isIE10: boolean = false;\n\n private cmyk: Cmyk;\n private hsva: Hsva;\n\n private width: number;\n private height: number;\n\n private cmykColor: string;\n private outputColor: string;\n private initialColor: string;\n private fallbackColor: string;\n\n private listenerResize: any;\n private listenerMouseDown: any;\n\n private directiveInstance: any;\n\n private sliderH: number;\n private sliderDimMax: SliderDimension;\n private directiveElementRef: ElementRef;\n\n private dialogArrowSize: number = 10;\n private dialogArrowOffset: number = 15;\n\n private dialogInputFields: ColorFormats[] = [\n ColorFormats.HEX,\n ColorFormats.RGBA,\n ColorFormats.HSLA,\n ColorFormats.CMYK\n ];\n\n private useRootViewContainer: boolean = false;\n\n public show: boolean;\n public hidden: boolean;\n\n public top: number;\n public left: number;\n public position: string;\n\n public format: ColorFormats;\n public slider: SliderPosition;\n\n public hexText: string;\n public hexAlpha: number;\n\n public cmykText: Cmyk;\n public hslaText: Hsla;\n public rgbaText: Rgba;\n\n public arrowTop: number;\n\n public selectedColor: string;\n public hueSliderColor: string;\n public alphaSliderColor: string;\n\n public cpWidth: number;\n public cpHeight: number;\n\n public cpColorMode: number;\n\n public cpCmykEnabled: boolean;\n\n public cpAlphaChannel: AlphaChannel;\n public cpOutputFormat: OutputFormat;\n\n public cpDisableInput: boolean;\n public cpDialogDisplay: string;\n\n public cpIgnoredElements: any;\n\n public cpSaveClickOutside: boolean;\n public cpCloseClickOutside: boolean;\n\n public cpPosition: string;\n public cpUsePosition: string;\n public cpPositionOffset: number;\n\n public cpOKButton: boolean;\n public cpOKButtonText: string;\n public cpOKButtonClass: string;\n\n public cpCancelButton: boolean;\n public cpCancelButtonText: string;\n public cpCancelButtonClass: string;\n\n public cpPresetLabel: string;\n public cpPresetColors: string[];\n public cpPresetColorsClass: string;\n public cpMaxPresetColorsLength: number;\n\n public cpPresetEmptyMessage: string;\n public cpPresetEmptyMessageClass: string;\n\n public cpAddColorButton: boolean;\n public cpAddColorButtonText: string;\n public cpAddColorButtonClass: string;\n public cpRemoveColorButtonClass: string;\n\n public cpTriggerElement: ElementRef;\n\n @ViewChild('dialogPopup', { static: true }) dialogElement: ElementRef;\n\n @ViewChild('hueSlider', { static: true }) hueSlider: ElementRef;\n @ViewChild('alphaSlider', { static: true }) alphaSlider: ElementRef;\n\n @HostListener('document:keyup.esc', ['$event']) handleEsc(event: any): void {\n if (this.show && this.cpDialogDisplay === 'popup') {\n this.onCancelColor(event);\n }\n }\n\n @HostListener('document:keyup.enter', ['$event']) handleEnter(event: any): void {\n if (this.show && this.cpDialogDisplay === 'popup') {\n this.onAcceptColor(event);\n }\n }\n\n constructor(private elRef: ElementRef, private cdRef: ChangeDetectorRef, private service: ColorPickerService) {}\n\n ngOnInit(): void {\n this.slider = new SliderPosition(0, 0, 0, 0);\n\n const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140;\n const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140;\n\n this.sliderDimMax = new SliderDimension(hueWidth, this.cpWidth, 130, alphaWidth);\n\n if (this.cpCmykEnabled) {\n this.format = ColorFormats.CMYK;\n } else if (this.cpOutputFormat === 'rgba') {\n this.format = ColorFormats.RGBA;\n } else if (this.cpOutputFormat === 'hsla') {\n this.format = ColorFormats.HSLA;\n } else {\n this.format = ColorFormats.HEX;\n }\n\n this.listenerMouseDown = (event: any) => { this.onMouseDown(event); };\n this.listenerResize = () => { this.onResize(); };\n\n this.openDialog(this.initialColor, false);\n }\n\n ngOnDestroy(): void {\n this.closeDialog();\n }\n\n ngAfterViewInit(): void {\n if (this.cpWidth !== 230 || this.cpDialogDisplay === 'inline') {\n const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140;\n const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140;\n\n this.sliderDimMax = new SliderDimension(hueWidth, this.cpWidth, 130, alphaWidth);\n\n this.updateColorPicker(false);\n\n this.cdRef.detectChanges();\n }\n }\n\n public openDialog(color: any, emit: boolean = true): void {\n this.service.setActive(this);\n\n if (!this.width) {\n this.cpWidth = this.directiveElementRef.nativeElement.offsetWidth;\n }\n\n if (!this.height) {\n this.height = 320;\n }\n\n this.setInitialColor(color);\n\n this.setColorFromString(color, emit);\n\n this.openColorPicker();\n }\n\n public closeDialog(): void {\n this.closeColorPicker();\n }\n\n public setupDialog(instance: any, elementRef: ElementRef, color: any,\n cpWidth: string, cpHeight: string, cpDialogDisplay: string, cpFallbackColor: string,\n cpColorMode: string, cpCmykEnabled: boolean, cpAlphaChannel: AlphaChannel,\n cpOutputFormat: OutputFormat, cpDisableInput: boolean, cpIgnoredElements: any,\n cpSaveClickOutside: boolean, cpCloseClickOutside: boolean, cpUseRootViewContainer: boolean,\n cpPosition: string, cpPositionOffset: string, cpPositionRelativeToArrow: boolean,\n cpPresetLabel: string, cpPresetColors: string[], cpPresetColorsClass: string,\n cpMaxPresetColorsLength: number, cpPresetEmptyMessage: string,\n cpPresetEmptyMessageClass: string, cpOKButton: boolean, cpOKButtonClass: string,\n cpOKButtonText: string, cpCancelButton: boolean, cpCancelButtonClass: string,\n cpCancelButtonText: string, cpAddColorButton: boolean, cpAddColorButtonClass: string,\n cpAddColorButtonText: string, cpRemoveColorButtonClass: string, cpTriggerElement: ElementRef): void\n {\n this.setInitialColor(color);\n\n this.setColorMode(cpColorMode);\n\n this.isIE10 = (detectIE() === 10);\n\n this.directiveInstance = instance;\n this.directiveElementRef = elementRef;\n\n this.cpDisableInput = cpDisableInput;\n\n this.cpCmykEnabled = cpCmykEnabled;\n this.cpAlphaChannel = cpAlphaChannel;\n this.cpOutputFormat = cpOutputFormat;\n\n this.cpDialogDisplay = cpDialogDisplay;\n\n this.cpIgnoredElements = cpIgnoredElements;\n\n this.cpSaveClickOutside = cpSaveClickOutside;\n this.cpCloseClickOutside = cpCloseClickOutside;\n\n this.useRootViewContainer = cpUseRootViewContainer;\n\n this.width = this.cpWidth = parseInt(cpWidth, 10);\n this.height = this.cpHeight = parseInt(cpHeight, 10);\n\n this.cpPosition = cpPosition;\n this.cpPositionOffset = parseInt(cpPositionOffset, 10);\n\n this.cpOKButton = cpOKButton;\n this.cpOKButtonText = cpOKButtonText;\n this.cpOKButtonClass = cpOKButtonClass;\n\n this.cpCancelButton = cpCancelButton;\n this.cpCancelButtonText = cpCancelButtonText;\n this.cpCancelButtonClass = cpCancelButtonClass;\n\n this.fallbackColor = cpFallbackColor || '#fff';\n\n this.setPresetConfig(cpPresetLabel, cpPresetColors);\n\n this.cpPresetColorsClass = cpPresetColorsClass;\n this.cpMaxPresetColorsLength = cpMaxPresetColorsLength;\n this.cpPresetEmptyMessage = cpPresetEmptyMessage;\n this.cpPresetEmptyMessageClass = cpPresetEmptyMessageClass;\n\n this.cpAddColorButton = cpAddColorButton;\n this.cpAddColorButtonText = cpAddColorButtonText;\n this.cpAddColorButtonClass = cpAddColorButtonClass;\n this.cpRemoveColorButtonClass = cpRemoveColorButtonClass;\n\n this.cpTriggerElement = cpTriggerElement;\n\n if (!cpPositionRelativeToArrow) {\n this.dialogArrowOffset = 0;\n }\n\n if (cpDialogDisplay === 'inline') {\n this.dialogArrowSize = 0;\n this.dialogArrowOffset = 0;\n }\n\n if (cpOutputFormat === 'hex' &&\n cpAlphaChannel !== 'always' && cpAlphaChannel !== 'forced')\n {\n this.cpAlphaChannel = 'disabled';\n }\n }\n\n public setColorMode(mode: string): void {\n switch (mode.toString().toUpperCase()) {\n case '1':\n case 'C':\n case 'COLOR':\n this.cpColorMode = 1;\n break;\n case '2':\n case 'G':\n case 'GRAYSCALE':\n this.cpColorMode = 2;\n break;\n case '3':\n case 'P':\n case 'PRESETS':\n this.cpColorMode = 3;\n break;\n default:\n this.cpColorMode = 1;\n }\n }\n\n public setInitialColor(color: any): void {\n this.initialColor = color;\n }\n\n public setPresetConfig(cpPresetLabel: string, cpPresetColors: string[]): void {\n this.cpPresetLabel = cpPresetLabel;\n this.cpPresetColors = cpPresetColors;\n }\n\n public setColorFromString(value: string, emit: boolean = true, update: boolean = true): void {\n let hsva: Hsva | null;\n\n if (this.cpAlphaChannel === 'always' || this.cpAlphaChannel === 'forced') {\n hsva = this.service.stringToHsva(value, true);\n\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(value, false);\n }\n } else {\n hsva = this.service.stringToHsva(value, false);\n }\n\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(this.fallbackColor, false);\n }\n\n if (hsva) {\n this.hsva = hsva;\n\n this.sliderH = this.hsva.h;\n\n if (this.cpOutputFormat === 'hex' && this.cpAlphaChannel === 'disabled') {\n this.hsva.a = 1;\n }\n\n this.updateColorPicker(emit, update);\n }\n }\n\n public onResize(): void {\n if (this.position === 'fixed') {\n this.setDialogPosition();\n } else if (this.cpDialogDisplay !== 'inline') {\n this.closeColorPicker();\n }\n }\n\n public onDragEnd(slider: string): void {\n this.directiveInstance.sliderDragEnd({ slider: slider, color: this.outputColor });\n }\n\n public onDragStart(slider: string): void {\n this.directiveInstance.sliderDragStart({ slider: slider, color: this.outputColor });\n }\n\n public onMouseDown(event: MouseEvent): void {\n if (this.show &&\n !this.isIE10 && this.cpDialogDisplay === 'popup' &&\n event.target !== this.directiveElementRef.nativeElement &&\n !this.isDescendant(this.elRef.nativeElement, event.target) &&\n !this.isDescendant(this.directiveElementRef.nativeElement, event.target) &&\n this.cpIgnoredElements.filter((item: any) => item === event.target).length === 0)\n {\n if (this.cpSaveClickOutside) {\n this.directiveInstance.colorSelected(this.outputColor);\n } else {\n this.hsva = null;\n\n this.setColorFromString(this.initialColor, false);\n\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n\n this.directiveInstance.colorChanged(this.initialColor);\n\n this.directiveInstance.colorCanceled();\n }\n\n if (this.cpCloseClickOutside) {\n this.closeColorPicker();\n }\n }\n }\n\n public onAcceptColor(event: Event): void {\n event.stopPropagation();\n\n if (this.outputColor) {\n this.directiveInstance.colorSelected(this.outputColor);\n }\n\n if (this.cpDialogDisplay === 'popup') {\n this.closeColorPicker();\n }\n }\n\n public onCancelColor(event: Event): void {\n this.hsva = null;\n\n event.stopPropagation();\n\n this.directiveInstance.colorCanceled();\n\n this.setColorFromString(this.initialColor, true);\n\n if (this.cpDialogDisplay === 'popup') {\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n\n this.directiveInstance.colorChanged(this.initialColor, true);\n\n this.closeColorPicker();\n }\n }\n\n public onFormatToggle(change: number): void {\n const availableFormats = this.dialogInputFields.length -\n (this.cpCmykEnabled ? 0 : 1);\n\n const nextFormat = (((this.dialogInputFields.indexOf(this.format) + change) %\n availableFormats) + availableFormats) % availableFormats;\n\n this.format = this.dialogInputFields[nextFormat];\n }\n\n public onColorChange(value: { s: number, v: number, rgX: number, rgY: number }): void {\n this.hsva.s = value.s / value.rgX;\n this.hsva.v = value.v / value.rgY;\n\n this.updateColorPicker();\n\n this.directiveInstance.sliderChanged({\n slider: 'lightness',\n value: this.hsva.v,\n color: this.outputColor\n });\n\n this.directiveInstance.sliderChanged({\n slider: 'saturation',\n value: this.hsva.s,\n color: this.outputColor\n });\n }\n\n public onHueChange(value: { v: number, rgX: number }): void {\n this.hsva.h = value.v / value.rgX;\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n\n this.directiveInstance.sliderChanged({\n slider: 'hue',\n value: this.hsva.h,\n color: this.outputColor\n });\n }\n\n public onValueChange(value: { v: number, rgX: number }): void {\n this.hsva.v = value.v / value.rgX;\n\n this.updateColorPicker();\n\n this.directiveInstance.sliderChanged({\n slider: 'value',\n value: this.hsva.v,\n color: this.outputColor\n });\n }\n\n public onAlphaChange(value: { v: number, rgX: number }): void {\n this.hsva.a = value.v / value.rgX;\n\n this.updateColorPicker();\n\n this.directiveInstance.sliderChanged({\n slider: 'alpha',\n value: this.hsva.a,\n color: this.outputColor\n });\n }\n\n public onHexInput(value: string | null): void {\n if (value === null) {\n this.updateColorPicker();\n } else {\n if (value && value[0] !== '#') {\n value = '#' + value;\n }\n\n let validHex = /^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;\n\n if (this.cpAlphaChannel === 'always') {\n validHex = /^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi;\n }\n\n const valid = validHex.test(value);\n\n if (valid) {\n if (value.length < 5) {\n value = '#' + value.substring(1)\n .split('')\n .map(c => c + c)\n .join('');\n }\n\n if (this.cpAlphaChannel === 'forced') {\n value += Math.round(this.hsva.a * 255).toString(16);\n }\n\n this.setColorFromString(value, true, false);\n }\n\n this.directiveInstance.inputChanged({\n input: 'hex',\n valid: valid,\n value: value,\n color: this.outputColor\n });\n }\n }\n\n public onRedInput(value: { v: number, rg: number }): void {\n const rgba = this.service.hsvaToRgba(this.hsva);\n\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n rgba.r = value.v / value.rg;\n\n this.hsva = this.service.rgbaToHsva(rgba);\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'red',\n valid: valid,\n value: rgba.r,\n color: this.outputColor\n });\n }\n\n public onBlueInput(value: { v: number, rg: number }): void {\n const rgba = this.service.hsvaToRgba(this.hsva);\n\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n rgba.b = value.v / value.rg;\n\n this.hsva = this.service.rgbaToHsva(rgba);\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'blue',\n valid: valid,\n value: rgba.b,\n color: this.outputColor\n });\n }\n\n public onGreenInput(value: { v: number, rg: number }): void {\n const rgba = this.service.hsvaToRgba(this.hsva);\n\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n rgba.g = value.v / value.rg;\n\n this.hsva = this.service.rgbaToHsva(rgba);\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'green',\n valid: valid,\n value: rgba.g,\n color: this.outputColor\n });\n }\n\n public onHueInput(value: { v: number, rg: number }) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.hsva.h = value.v / value.rg;\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'hue',\n valid: valid,\n value: this.hsva.h,\n color: this.outputColor\n });\n }\n\n public onValueInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.hsva.v = value.v / value.rg;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'value',\n valid: valid,\n value: this.hsva.v,\n color: this.outputColor\n });\n }\n\n public onAlphaInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.hsva.a = value.v / value.rg;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'alpha',\n valid: valid,\n value: this.hsva.a,\n color: this.outputColor\n });\n }\n\n public onLightnessInput(value: { v: number, rg: number }): void {\n const hsla = this.service.hsva2hsla(this.hsva);\n\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n hsla.l = value.v / value.rg;\n\n this.hsva = this.service.hsla2hsva(hsla);\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'lightness',\n valid: valid,\n value: hsla.l,\n color: this.outputColor\n });\n }\n\n public onSaturationInput(value: { v: number, rg: number }): void {\n const hsla = this.service.hsva2hsla(this.hsva);\n\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n hsla.s = value.v / value.rg;\n\n this.hsva = this.service.hsla2hsva(hsla);\n\n this.sliderH = this.hsva.h;\n\n this.updateColorPicker();\n }\n\n this.directiveInstance.inputChanged({\n input: 'saturation',\n valid: valid,\n value: hsla.s,\n color: this.outputColor\n });\n }\n\n public onCyanInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.cmyk.c = value.v;\n\n this.updateColorPicker(false, true, true);\n }\n\n this.directiveInstance.inputChanged({\n input: 'cyan',\n valid: true,\n value: this.cmyk.c,\n color: this.outputColor\n });\n }\n\n public onMagentaInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.cmyk.m = value.v;\n\n this.updateColorPicker(false, true, true);\n }\n\n this.directiveInstance.inputChanged({\n input: 'magenta',\n valid: true,\n value: this.cmyk.m,\n color: this.outputColor\n });\n }\n\n public onYellowInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.cmyk.y = value.v;\n\n this.updateColorPicker(false, true, true);\n }\n\n this.directiveInstance.inputChanged({\n input: 'yellow',\n valid: true,\n value: this.cmyk.y,\n color: this.outputColor\n });\n }\n\n public onBlackInput(value: { v: number, rg: number }): void {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n\n if (valid) {\n this.cmyk.k = value.v;\n\n this.updateColorPicker(false, true, true);\n }\n\n this.directiveInstance.inputChanged({\n input: 'black',\n valid: true,\n value: this.cmyk.k,\n color: this.outputColor\n });\n }\n\n public onAddPresetColor(event: any, value: string): void {\n event.stopPropagation();\n\n if (!this.cpPresetColors.filter((color) => (color === value)).length) {\n this.cpPresetColors = this.cpPresetColors.concat(value);\n\n this.directiveInstance.presetColorsChanged(this.cpPresetColors);\n }\n }\n\n public onRemovePresetColor(event: any, value: string): void {\n event.stopPropagation();\n\n this.cpPresetColors = this.cpPresetColors.filter((color) => (color !== value));\n\n this.directiveInstance.presetColorsChanged(this.cpPresetColors);\n }\n\n // Private helper functions for the color picker dialog status\n\n private openColorPicker(): void {\n if (!this.show) {\n this.show = true;\n this.hidden = true;\n\n setTimeout(() => {\n this.hidden = false;\n\n this.setDialogPosition();\n\n this.cdRef.detectChanges();\n }, 0);\n\n this.directiveInstance.stateChanged(true);\n\n if (!this.isIE10) {\n document.addEventListener('mousedown', this.listenerMouseDown);\n document.addEventListener('touchstart', this.listenerMouseDown);\n }\n\n window.addEventListener('resize', this.listenerResize);\n }\n }\n\n private closeColorPicker(): void {\n if (this.show) {\n this.show = false;\n\n this.directiveInstance.stateChanged(false);\n\n if (!this.isIE10) {\n document.removeEventListener('mousedown', this.listenerMouseDown);\n document.removeEventListener('touchstart', this.listenerMouseDown);\n }\n\n window.removeEventListener('resize', this.listenerResize);\n\n if (!this.cdRef['destroyed']) {\n this.cdRef.detectChanges();\n }\n }\n }\n\n private updateColorPicker(emit: boolean = true, update: boolean = true, cmykInput: boolean = false): void {\n if (this.sliderDimMax) {\n if (this.cpColorMode === 2) {\n this.hsva.s = 0;\n }\n\n let hue: Rgba, hsla: Hsla, rgba: Rgba;\n\n const lastOutput = this.outputColor;\n\n hsla = this.service.hsva2hsla(this.hsva);\n\n if (!this.cpCmykEnabled) {\n rgba = this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva));\n } else {\n if (!cmykInput) {\n rgba = this.service.hsvaToRgba(this.hsva);\n\n this.cmyk = this.service.denormalizeCMYK(this.service.rgbaToCmyk(rgba));\n } else {\n rgba = this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk));\n\n this.hsva = this.service.rgbaToHsva(rgba);\n }\n\n rgba = this.service.denormalizeRGBA(rgba);\n\n this.sliderH = this.hsva.h;\n }\n\n hue = this.service.denormalizeRGBA(this.service.hsvaToRgba(new Hsva(this.sliderH || this.hsva.h, 1, 1, 1)));\n\n if (update) {\n this.hslaText = new Hsla(Math.round((hsla.h) * 360), Math.round(hsla.s * 100), Math.round(hsla.l * 100),\n Math.round(hsla.a * 100) / 100);\n\n this.rgbaText = new Rgba(rgba.r, rgba.g, rgba.b, Math.round(rgba.a * 100) / 100);\n\n if (this.cpCmykEnabled) {\n this.cmykText = new Cmyk(this.cmyk.c, this.cmyk.m, this.cmyk.y, this.cmyk.k,\n Math.round(this.cmyk.a * 100) / 100);\n }\n\n const allowHex8 = this.cpAlphaChannel === 'always';\n\n this.hexText = this.service.rgbaToHex(rgba, allowHex8);\n this.hexAlpha = this.rgbaText.a;\n }\n\n if (this.cpOutputFormat === 'auto') {\n if (this.format !== ColorFormats.RGBA && this.format !== ColorFormats.CMYK) {\n if (this.hsva.a < 1) {\n this.format = this.hsva.a < 1 ? ColorFormats.RGBA : ColorFormats.HEX;\n }\n }\n }\n\n this.hueSliderColor = 'rgb(' + hue.r + ',' + hue.g + ',' + hue.b + ')';\n this.alphaSliderColor = 'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')';\n\n this.outputColor = this.service.outputFormat(this.hsva, this.cpOutputFormat, this.cpAlphaChannel);\n this.selectedColor = this.service.outputFormat(this.hsva, 'rgba', null);\n\n if (this.format !== ColorFormats.CMYK) {\n this.cmykColor = '';\n } else {\n if (this.cpAlphaChannel === 'always' || this.cpAlphaChannel === 'enabled' ||\n this.cpAlphaChannel === 'forced')\n {\n const alpha = Math.round(this.cmyk.a * 100) / 100;\n\n this.cmykColor = `cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${alpha})`;\n } else {\n this.cmykColor = `cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;\n }\n }\n\n this.slider = new SliderPosition(\n (this.sliderH || this.hsva.h) * this.sliderDimMax.h - 8,\n this.hsva.s * this.sliderDimMax.s - 8,\n (1 - this.hsva.v) * this.sliderDimMax.v - 8,\n this.hsva.a * this.sliderDimMax.a - 8\n );\n\n if (emit && lastOutput !== this.outputColor) {\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n\n this.directiveInstance.colorChanged(this.outputColor);\n }\n }\n }\n\n // Private helper functions for the color picker dialog positioning\n\n private setDialogPosition(): void {\n if (this.cpDialogDisplay === 'inline') {\n this.position = 'relative';\n } else {\n let position = 'static', transform = '', style;\n\n let parentNode: any = null, transformNode: any = null;\n\n let node = this.directiveElementRef.nativeElement.parentNode;\n\n const dialogHeight = this.dialogElement.nativeElement.offsetHeight;\n\n while (node !== null && node.tagName !== 'HTML') {\n style = window.getComputedStyle(node);\n position = style.getPropertyValue('position');\n transform = style.getPropertyValue('transform');\n\n if (position !== 'static' && parentNode === null) {\n parentNode = node;\n }\n\n if (transform && transform !== 'none' && transformNode === null) {\n transformNode = node;\n }\n\n if (position === 'fixed') {\n parentNode = transformNode;\n\n break;\n }\n\n node = node.parentNode;\n }\n\n const boxDirective = this.createDialogBox(this.directiveElementRef.nativeElement, (position !== 'fixed'));\n\n if (this.useRootViewContainer || (position === 'fixed' &&\n (!parentNode || parentNode instanceof HTMLUnknownElement)))\n {\n this.top = boxDirective.top;\n this.left = boxDirective.left;\n } else {\n if (parentNode === null) {\n parentNode = node;\n }\n\n const boxParent = this.createDialogBox(parentNode, (position !== 'fixed'));\n\n this.top = boxDirective.top - boxParent.top;\n this.left = boxDirective.left - boxParent.left;\n }\n\n if (position === 'fixed') {\n this.position = 'fixed';\n }\n\n let usePosition = this.cpPosition;\n\n if (this.cpPosition === 'auto') {\n const dialogBounds = this.dialogElement.nativeElement.getBoundingClientRect();\n const triggerBounds = this.cpTriggerElement.nativeElement.getBoundingClientRect();\n usePosition = calculateAutoPositioning(dialogBounds, triggerBounds);\n }\n\n if (usePosition === 'top') {\n this.arrowTop = dialogHeight - 1;\n\n this.top -= dialogHeight + this.dialogArrowSize;\n this.left += this.cpPositionOffset / 100 * boxDirective.width - this.dialogArrowOffset;\n } else if (usePosition === 'bottom') {\n this.top += boxDirective.height + this.dialogArrowSize;\n this.left += this.cpPositionOffset / 100 * boxDirective.width - this.dialogArrowOffset;\n } else if (usePosition === 'top-left' || usePosition === 'left-top') {\n this.top -= dialogHeight - boxDirective.height + boxDirective.height * this.cpPositionOffset / 100;\n this.left -= this.cpWidth + this.dialogArrowSize - 2 - this.dialogArrowOffset;\n } else if (usePosition === 'top-right' || usePosition === 'right-top') {\n this.top -= dialogHeight - boxDirective.height + boxDirective.height * this.cpPositionOffset / 100;\n this.left += boxDirective.width + this.dialogArrowSize - 2 - this.dialogArrowOffset;\n } else if (usePosition === 'left' || usePosition === 'bottom-left' || usePosition === 'left-bottom') {\n this.top += boxDirective.height * this.cpPositionOffset / 100 - this.dialogArrowOffset;\n this.left -= this.cpWidth + this.dialogArrowSize - 2;\n } else { // usePosition === 'right' || usePosition === 'bottom-right' || usePosition === 'right-bottom'\n this.top += boxDirective.height * this.cpPositionOffset / 100 - this.dialogArrowOffset;\n this.left += boxDirective.width + this.dialogArrowSize - 2;\n }\n\n this.cpUsePosition = usePosition;\n }\n }\n\n // Private helper functions for the color picker dialog positioning and opening\n\n private isDescendant(parent: any, child: any): boolean {\n let node: any = child.parentNode;\n\n while (node !== null) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n }\n\n private createDialogBox(element: any, offset: boolean): any {\n return {\n top: element.getBoundingClientRect().top + (offset ? window.pageYOffset : 0),\n left: element.getBoundingClientRect().left + (offset ? window.pageXOffset : 0),\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n}\n","import { Directive, OnChanges, OnDestroy, Input, Output, EventEmitter,\n HostListener, ApplicationRef, ComponentRef, ElementRef, ViewContainerRef,\n Injector, ReflectiveInjector, ComponentFactoryResolver, EmbeddedViewRef } from '@angular/core';\n\nimport { ColorPickerService } from './color-picker.service';\nimport { ColorPickerComponent } from './color-picker.component';\n\nimport { AlphaChannel, ColorMode, OutputFormat } from './helpers';\n\n@Directive({\n selector: '[colorPicker]',\n exportAs: 'ngxColorPicker'\n})\nexport class ColorPickerDirective implements OnChanges, OnDestroy {\n private dialog: any;\n\n private dialogCreated: boolean = false;\n private ignoreChanges: boolean = false;\n\n private cmpRef: ComponentRef<ColorPickerComponent>;\n private viewAttachedToAppRef: boolean = false;\n\n @Input() colorPicker: string;\n\n @Input() cpWidth: string = '230px';\n @Input() cpHeight: string = 'auto';\n\n @Input() cpToggle: boolean = false;\n @Input() cpDisabled: boolean = false;\n\n @Input() cpIgnoredElements: any = [];\n\n @Input() cpFallbackColor: string = '';\n\n @Input() cpColorMode: ColorMode = 'color';\n\n @Input() cpCmykEnabled: boolean = false;\n\n @Input() cpOutputFormat: OutputFormat = 'auto';\n @Input() cpAlphaChannel: AlphaChannel = 'enabled';\n\n @Input() cpDisableInput: boolean = false;\n\n @Input() cpDialogDisplay: string = 'popup';\n\n @Input() cpSaveClickOutside: boolean = true;\n @Input() cpCloseClickOutside: boolean = true;\n\n @Input() cpUseRootViewContainer: boolean = false;\n\n @Input() cpPosition: string = 'auto';\n @Input() cpPositionOffset: string = '0%';\n @Input() cpPositionRelativeToArrow: boolean = false;\n\n @Input() cpOKButton: boolean = false;\n @Input() cpOKButtonText: string = 'OK';\n @Input() cpOKButtonClass: string = 'cp-ok-button-class';\n\n @Input() cpCancelButton: boolean = false;\n @Input() cpCancelButtonText: string = 'Cancel';\n @Input() cpCancelButtonClass: string = 'cp-cancel-button-class';\n\n @Input() cpPresetLabel: string = 'Preset colors';\n @Input() cpPresetColors: string[];\n @Input() cpPresetColorsClass: string = 'cp-preset-colors-class';\n @Input() cpMaxPresetColorsLength: number = 6;\n\n @Input() cpPresetEmptyMessage: string = 'No colors added';\n @Input() cpPresetEmptyMessageClass: string = 'preset-empty-message';\n\n @Input() cpAddColorButton: boolean = false;\n @Input() cpAddColorButtonText: string = 'Add color';\n @Input() cpAddColorButtonClass: string = 'cp-add-color-button-class';\n\n @Input() cpRemoveColorButtonClass: string = 'cp-remove-color-button-class';\n\n @Output() cpInputChange = new EventEmitter<{input: string, value: number | string, color: string}>(true);\n\n @Output() cpToggleChange = new EventEmitter<boolean>(true);\n\n @Output() cpSliderChange = new EventEmitter<{slider: string, value: string | number, color: string}>(true);\n @Output() cpSliderDragEnd = new EventEmitter<{slider: string, color: string}>(true);\n @Output() cpSliderDragStart = new EventEmitter<{slider: string, color: string}>(true);\n\n @Output() colorPickerOpen = new EventEmitter<string>(true);\n @Output() colorPickerClose = new EventEmitter<string>(true);\n\n @Output() colorPickerCancel = new EventEmitter<string>(true);\n @Output() colorPickerSelect = new EventEmitter<string>(true);\n @Output() colorPickerChange = new EventEmitter<string>(false);\n\n @Output() cpCmykColorChange = new EventEmitter<string>(true);\n\n @Output() cpPresetColorsChange = new EventEmitter<any>(true);\n\n @HostListener('click') handleClick(): void {\n this.inputFocus();\n }\n\n @HostListener('focus') handleFocus(): void {\n this.inputFocus();\n }\n\n @HostListener('input', ['$event']) handleInput(event: any): void {\n this.inputChange(event);\n }\n\n constructor(private injector: Injector, private cfr: ComponentFactoryResolver,\n private appRef: ApplicationRef, private vcRef: ViewContainerRef, private elRef: ElementRef,\n private _service: ColorPickerService) {}\n\n ngOnDestroy(): void {\n if (this.cmpRef != null) {\n if (this.viewAttachedToAppRef) {\n this.appRef.detachView(this.cmpRef.hostView);\n }\n\n this.cmpRef.destroy();\n\n this.cmpRef = null;\n this.dialog = null;\n }\n }\n\n ngOnChanges(changes: any): void {\n if (changes.cpToggle && !this.cpDisabled) {\n if (changes.cpToggle.currentValue) {\n this.openDialog();\n } else if (!changes.cpToggle.currentValue) {\n this.closeDialog();\n }\n }\n\n if (changes.colorPicker) {\n if (this.dialog && !this.ignoreChanges) {\n if (this.cpDialogDisplay === 'inline') {\n this.dialog.setInitialColor(changes.colorPicker.currentValue);\n }\n\n this.dialog.setColorFromString(changes.colorPicker.currentValue, false);\n\n if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n this.cmpRef.changeDetectorRef.detectChanges();\n }\n }\n\n this.ignoreChanges = false;\n }\n\n if (changes.cpPresetLabel || changes.cpPresetColors) {\n if (this.dialog) {\n this.dialog.setPresetConfig(this.cpPresetLabel, this.cpPresetColors);\n }\n }\n }\n\n public openDialog(): void {\n if (!this.dialogCreated) {\n let vcRef = this.vcRef;\n\n this.dialogCreated = true;\n this.viewAttachedToAppRef = false;\n\n if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n const classOfRootComponent = this.appRef.componentTypes[0];\n const appInstance = this.injector.get(classOfRootComponent, Injector.NULL);\n\n if (appInstance !== Injector.NULL) {\n vcRef = appInstance.vcRef || appInstance.viewContainerRef || this.vcRef;\n\n if (vcRef === this.vcRef) {\n console.warn('You are using cpUseRootViewContainer, ' +\n 'but the root component is not exposing viewContainerRef!' +\n 'Please expose it by adding \\'public vcRef: ViewContainerRef\\' to the constructor.');\n }\n } else {\n this.viewAttachedToAppRef = true;\n }\n }\n\n const compFactory = this.cfr.resolveComponentFactory(ColorPickerComponent);\n\n if (this.viewAttachedToAppRef) {\n this.cmpRef = compFactory.create(this.injector);\n this.appRef.attachView(this.cmpRef.hostView);\n document.body.appendChild((this.cmpRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement);\n } else {\n const injector = ReflectiveInjector.fromResolvedProviders([], vcRef.parentInjector);\n\n this.cmpRef = vcRef.createComponent(compFactory, 0, injector, []);\n }\n\n this.cmpRef.instance.setupDialog(this, this.elRef, this.colorPicker,\n this.cpWidth, this.cpHeight, this.cpDialogDisplay, this.cpFallbackColor, this.cpColorMode,\n this.cpCmykEnabled, this.cpAlphaChannel, this.cpOutputFormat, this.cpDisableInput,\n this.cpIgnoredElements, this.cpSaveClickOutside, this.cpCloseClickOutside,\n this.cpUseRootViewContainer, this.cpPosition, this.cpPositionOffset,\n this.cpPositionRelativeToArrow, this.cpPresetLabel, this.cpPresetColors,\n this.cpPresetColorsClass, this.cpMaxPresetColorsLength, this.cpPresetEmptyMessage,\n this.cpPresetEmptyMessageClass, this.cpOKButton, this.cpOKButtonClass,\n this.cpOKButtonText, this.cpCancelButton, this.cpCancelButtonClass,\n this.cpCancelButtonText, this.cpAddColorButton, this.cpAddColorButtonClass,\n this.cpAddColorButtonText, this.cpRemoveColorButtonClass, this.elRef);\n\n this.dialog = this.cmpRef.instance;\n\n if (this.vcRef !== vcRef) {\n this.cmpRef.changeDetectorRef.detectChanges();\n }\n } else if (this.dialog) {\n this.dialog.openDialog(this.colorPicker);\n }\n }\n\n public closeDialog(): void {\n if (this.dialog && this.cpDialogDisplay === 'popup') {\n this.dialog.closeDialog();\n }\n }\n\n public cmykChanged(value: string): void {\n this.cpCmykColorChange.emit(value);\n }\n\n public stateChanged(state: boolean): void {\n this.cpToggleChange.emit(state);\n\n if (state) {\n this.colorPickerOpen.emit(this.colorPicker);\n } else {\n this.colorPickerClose.emit(this.colorPicker);\n }\n }\n\n public colorChanged(value: string, ignore: boolean = true): void {\n this.ignoreChanges = ignore;\n\n this.colorPickerChange.emit(value);\n }\n\n public colorSelected(value: string): void {\n this.colorPickerSelect.emit(value);\n }\n\n public colorCanceled(): void {\n this.colorPickerCancel.emit();\n }\n\n public inputFocus(): void {\n const element = this.elRef.nativeElement;\n\n const ignored = this.cpIgnoredElements.filter((item: any) => item === element);\n\n if (!this.cpDisabled && !ignored.length) {\n if (typeof document !== 'undefined' && element === document.activeElement) {\n this.openDialog();\n } else if (!this.dialog || !this.dialog.show) {\n this.openDialog();\n } else {\n this.closeDialog();\n }\n }\n }\n\n public inputChange(event: any): void {\n if (this.dialog) {\n this.dialog.setColorFromString(event.target.value, true);\n } else {\n this.colorPicker = event.target.value;\n\n this.colorPickerChange.emit(this.colorPicker);\n }\n }\n\n public inputChanged(event: any): void {\n this.cpInputChange.emit(event);\n }\n\n public sliderChanged(event: any): void {\n this.cpSliderChange.emit(event);\n }\n\n public sliderDragEnd(event: { slider: string, color: string }): void {\n this.cpSliderDragEnd.emit(event);\n }\n\n public sliderDragStart(event: { slider: string, color: string }): void {\n this.cpSliderDragStart.emit(event);\n }\n\n public presetColorsChanged(value: any[]): void {\n this.cpPresetColorsChange.emit(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TextDirective, SliderDirective } from './helpers';\n\nimport { ColorPickerService } from './color-picker.service';\nimport { ColorPickerComponent } from './color-picker.component';\nimport { ColorPickerDirective } from './color-picker.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n exports: [ ColorPickerDirective ],\n providers: [ ColorPickerService ],\n declarations: [ ColorPickerComponent, ColorPickerDirective, TextDirective, SliderDirective ],\n entryComponents: [ ColorPickerComponent ]\n})\nexport class ColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Directive","Input","Output","HostListener","ElementRef","Injectable","Component","ViewEncapsulation","ChangeDetectorRef","ViewChild","Injector","ReflectiveInjector","ComponentFactoryResolver","ApplicationRef","ViewContainerRef","NgModule","CommonModule"],"mappings":"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"}
\No newline at end of file