{"version":3,"file":"novo-elements-elements-color-picker.mjs","sources":["../../../projects/novo-elements/src/elements/color-picker/color-swatch.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-picker.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-input.component.ts","../../../projects/novo-elements/src/elements/color-picker/color-picker.module.ts","../../../projects/novo-elements/src/elements/color-picker/novo-elements-elements-color-picker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n    selector: 'novo-color-swatch',\n    template: `\n    <div\n      class=\"swatch\"\n      [ngStyle]=\"currentStyles()\"\n      [attr.title]=\"color\"\n      (click)=\"handleClick(color, $event)\"\n      (keydown.enter)=\"handleClick(color, $event)\"\n      (focus)=\"handleFocus()\"\n      (blur)=\"handleFocusOut()\"\n      (mouseover)=\"handleHover(color, $event)\"\n      tabindex=\"0\"\n    >\n      <ng-content></ng-content>\n    </div>\n  `,\n    styles: [\n        `\n      .swatch {\n        border-radius: 0.4rem;\n      }\n    `,\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class NovoColorSwatchComponent implements OnInit {\n  @Input() color!: string;\n  @Input() style: { [key: string]: string } = {};\n  @Input() focusStyle: { [key: string]: string } = {};\n  @Input() focus!: boolean;\n  @Output() onClick = new EventEmitter<any>();\n  @Output() onHover = new EventEmitter<any>();\n  divStyles: { [key: string]: string } = {};\n  focusStyles: { [key: string]: string } = {};\n  inFocus = false;\n\n  ngOnInit() {\n    this.divStyles = {\n      background: this.color as string,\n      height: '100%',\n      width: '100%',\n      cursor: 'pointer',\n      position: 'relative',\n      outline: 'none',\n      ...this.style,\n    };\n  }\n  currentStyles() {\n    this.focusStyles = {\n      ...this.divStyles,\n      ...this.focusStyle,\n    };\n    return this.focus || this.inFocus ? this.focusStyles : this.divStyles;\n  }\n  handleFocusOut() {\n    this.inFocus = false;\n  }\n  handleFocus() {\n    this.inFocus = true;\n  }\n  handleHover(hex: string, $event) {\n    this.onHover.emit({ hex, $event });\n  }\n  handleClick(hex: string, $event) {\n    this.onClick.emit({ hex, $event });\n  }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { Color, HSL, HSLA, HSV, HSVA, RGB, RGBA } from 'novo-elements/utils';\n\n@Component({\n    selector: 'novo-color-picker',\n    template: `\n    <div class=\"novo-color-preview\" [style.backgroundColor]=\"currentColor.hex\">\n      <div class=\"novo-color-preview-text\">{{ hex }}</div>\n    </div>\n    <div class=\"novo-color-swatches\">\n      <novo-color-swatch\n        *ngFor=\"let color of colors\"\n        [color]=\"color\"\n        (onClick)=\"handleBlockChange($event)\"\n        (onHover)=\"handleSwatchHover($event)\"\n      ></novo-color-swatch>\n    </div>\n    <div class=\"novo-color-input\">\n      <input [value]=\"hex.replace('#', '')\" (onChange)=\"handleValueChange($event)\" />\n    </div>\n  `,\n    styleUrls: ['./color-picker.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    preserveWhitespaces: false,\n    standalone: false,\n})\nexport class NovoColorPickerComponent implements OnInit, OnChanges, OnDestroy {\n  /** Pixel value for picker width */\n  @Input() width: string | number = 276;\n  /** Color squares to display */\n  @Input() colors = ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'];\n  @Input() color: HSLA | HSVA | RGBA | string = {\n    h: 250,\n    s: 0.5,\n    l: 0.2,\n    a: 1,\n  };\n  @Output() onChange = new EventEmitter<any>();\n  @Output() onChangeComplete = new EventEmitter<any>();\n  @Output() onSwatchHover = new EventEmitter<any>();\n  hsl!: HSL;\n  hsv!: HSV;\n  rgb!: RGB;\n  hex!: string;\n  currentColor!: Color;\n  changes!: Subscription;\n\n  swatchStyle: { [key: string]: string } = {\n    width: '30px',\n    height: '30px',\n    borderRadius: '4px',\n    fontSize: '0',\n  };\n  input: { [key: string]: string } = {\n    borderRadius: '4px',\n    borderBottomLeftRadius: '0',\n    borderTopLeftRadius: '0',\n    border: '1px solid #e6ecf0',\n    boxSizing: 'border-box',\n    display: 'inline',\n    fontSize: '14px',\n    height: '30px',\n    padding: '0',\n    paddingLeft: '6px',\n    width: '100%',\n    color: '#657786',\n  };\n\n  focus(color: string) {\n    return { boxShadow: `0 0 4px ${color}` };\n  }\n\n  handleBlockChange({ hex, $event }: any) {\n    if (Color.isValidHex(hex)) {\n      this.handleChange({ hex, source: 'hex' }, $event);\n    }\n  }\n\n  handleValueChange({ data, $event }: any) {\n    this.handleBlockChange({ hex: data, $event });\n  }\n\n  ngOnInit() {\n    this.changes = this.onChange.pipe(debounceTime(100)).subscribe((x) => this.onChangeComplete.emit(x));\n    this.setState(new Color(this.color));\n  }\n\n  ngOnChanges() {\n    this.setState(new Color(this.color));\n  }\n\n  ngOnDestroy() {\n    this.changes.unsubscribe();\n  }\n\n  setState(data: Color) {\n    this.currentColor = data;\n    this.hsl = data.hsl;\n    this.hsv = data.hsv;\n    this.rgb = data.rgb;\n    this.hex = data.hex;\n    this.afterValidChange();\n  }\n\n  handleChange(data, $event) {\n    const color = new Color(data.hex);\n    if (color.isValid) {\n      this.setState(color);\n      this.onChange.emit({ color, $event });\n      this.afterValidChange();\n    }\n  }\n  /** hook for components after a complete change */\n  afterValidChange() {}\n\n  handleSwatchHover($event) {\n    const color = new Color($event.hex);\n    if (color.isValid) {\n      this.setState(color);\n      this.onSwatchHover.emit({ color, $event });\n    }\n  }\n}\n","// NG\nimport {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\n\n// Value accessor for the component (supports ngModel)\nconst COLOR_VALUE_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NovoColorInputElement),\n  multi: true,\n};\n\n@Component({\n    selector: 'novo-color-input',\n    providers: [COLOR_VALUE_ACCESSOR],\n    template: `\n    <novo-field>\n      <input\n        novoInput\n        type=\"text\"\n        [name]=\"name\"\n        [placeholder]=\"placeholder\"\n        [disabled]=\"disabled\"\n        [style.color]=\"value\"\n        (focus)=\"_handleFocus($event)\"\n        (keydown)=\"_handleKeydown($event)\"\n        (input)=\"_handleInput($event)\"\n        (blur)=\"_handleBlur($event)\"\n        [(ngModel)]=\"value\"\n        #input\n      />\n      <novo-icon *ngIf=\"!hasValue\" (click)=\"openPanel()\">complex</novo-icon>\n      <novo-icon *ngIf=\"hasValue\" smaller (click)=\"clearValue()\">x</novo-icon>\n    </novo-field>\n    <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n      <novo-color-picker [(color)]=\"value\" (onChange)=\"setValueAndClose($event)\"></novo-color-picker>\n    </novo-overlay-template>\n  `,\n    standalone: false,\n})\nexport class NovoColorInputElement implements OnInit, ControlValueAccessor {\n  @Input()\n  name: string;\n  @Input()\n  placeholder: string = '#ffffff';\n  @Output()\n  blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n  @Output()\n  focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n  /** Element for the panel containing the autocomplete options. */\n  @ViewChild(NovoOverlayTemplateComponent)\n  overlay: NovoOverlayTemplateComponent;\n\n  @Output() change = new EventEmitter();\n  @Output() blur = new EventEmitter();\n  @Output() focus = new EventEmitter();\n\n  private _value: string = '';\n  public lastValidValue: string = '';\n  private _disabled: boolean = false;\n\n  @Input() get value(): string {\n    return this._value;\n  }\n  set value(value) {\n    if (this.value !== value) {\n      this._value = value;\n      this._setFormValue(value);\n      this.onChangeCallback(this._value);\n    }\n  }\n\n  // Disabled State\n  @Input()\n  @HostBinding('class.disabled')\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = !!value;\n  }\n\n  constructor(public element: ElementRef, public labels: NovoLabelService, private cdr: ChangeDetectorRef) {}\n\n  ngOnInit() {}\n\n  /** BEGIN: Convenient Panel Methods. */\n  openPanel(): void {\n    if (!this.disabled) {\n      this.panelOpen ? this.overlay.closePanel() : this.overlay.openPanel();\n    }\n  }\n  closePanel(): void {\n    this.overlay && this.overlay.closePanel();\n  }\n  get panelOpen(): boolean {\n    return this.overlay && this.overlay.panelOpen;\n  }\n  /** END: Convenient Panel Methods. */\n\n  _handleKeydown(event: KeyboardEvent): void {\n    if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n      this.closePanel();\n      event.stopPropagation();\n    }\n  }\n\n  _handleInput(event: KeyboardEvent): void {\n  }\n\n  _handleBlur(event: FocusEvent): void {\n    this.blurEvent.emit(event);\n  }\n\n  _handleFocus(event: FocusEvent): void {\n    this.openPanel();\n    this.focusEvent.emit(event);\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouchedCallback = fn;\n  }\n\n  private onChangeCallback = (_: any) => {\n    // placeholder\n  };\n\n  private onTouchedCallback = () => {\n    // placeholder\n  };\n\n  private _setFormValue(value: string): void {\n    if (this.value) {\n      // hmm...\n    }\n  }\n\n  /**\n   * This method closes the panel, and if a value is specified, also sets the associated\n   * control to that value. It will also mark the control as dirty if this interaction\n   * stemmed from the user.\n   */\n  public setValueAndClose(event: any): void {\n    if (event) {\n      this.value = event.color.hex;\n      this.change.emit(this.value);\n      this.closePanel();\n    }\n  }\n\n  /**\n   * Clear any previous selected option and emit a selection change event for this option\n   */\n  public clearValue() {\n    this.value = '';\n    this.change.emit(this.value);\n  }\n\n  public get hasValue() {\n    return !Helpers.isEmpty(this.value);\n  }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoPipesModule } from 'novo-elements/pipes';\nimport { NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoFieldModule } from 'novo-elements/elements/field';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoColorInputElement } from './color-input.component';\nimport { NovoColorPickerComponent } from './color-picker.component';\nimport { NovoColorSwatchComponent } from './color-swatch.component';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, NovoPipesModule, NovoFieldModule, NovoOverlayModule, NovoIconModule],\n  declarations: [NovoColorPickerComponent, NovoColorInputElement, NovoColorSwatchComponent],\n  exports: [NovoColorPickerComponent, NovoColorInputElement, NovoColorSwatchComponent],\n})\nexport class NovoColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.NovoColorSwatchComponent","i1","i2","i7.NovoColorPickerComponent"],"mappings":"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"}