{"version":3,"file":"axulus-uikit-colorpicker.mjs","sources":["../../src/app/components/colorpicker/colorpicker.ts","../../src/app/components/colorpicker/axulus-uikit-colorpicker.ts"],"sourcesContent":["import {\n  NgModule,\n  Component,\n  ElementRef,\n  Input,\n  Output,\n  OnDestroy,\n  EventEmitter,\n  forwardRef,\n  Renderer2,\n  ViewChild,\n  ChangeDetectorRef,\n  ChangeDetectionStrategy,\n  ViewEncapsulation\n} from '@angular/core';\nimport { trigger, state, style, transition, animate, AnimationEvent } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler, ConnectedOverlayScrollHandler } from '@axulus/uikit/dom';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { OverlayService, PrimeNGConfig } from '@axulus/uikit/api';\nimport { ZIndexUtils } from '@axulus/uikit/utils';\n\nexport const COLORPICKER_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => ColorPicker),\n  multi: true\n};\n\n@Component({\n  selector: 'p-colorPicker',\n  template: `\n    <div\n      #container\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n      [ngClass]=\"{\n        'p-colorpicker p-component': true,\n        'p-colorpicker-overlay': !inline,\n        'p-colorpicker-dragging': colorDragging || hueDragging\n      }\"\n    >\n      <input\n        #input\n        type=\"text\"\n        *ngIf=\"!inline\"\n        class=\"p-colorpicker-preview p-inputtext\"\n        readonly=\"readonly\"\n        [ngClass]=\"{ 'p-disabled': disabled }\"\n        (focus)=\"onInputFocus()\"\n        (click)=\"onInputClick()\"\n        (keydown)=\"onInputKeydown($event)\"\n        [attr.id]=\"inputId\"\n        [attr.tabindex]=\"tabindex\"\n        [disabled]=\"disabled\"\n        [style.backgroundColor]=\"inputBgColor\"\n      />\n      <div\n        *ngIf=\"inline || overlayVisible\"\n        [ngClass]=\"{ 'p-colorpicker-panel': true, 'p-colorpicker-overlay-panel': !inline, 'p-disabled': disabled }\"\n        (click)=\"onOverlayClick($event)\"\n        [@overlayAnimation]=\"{\n          value: 'visible',\n          params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n        }\"\n        [@.disabled]=\"inline === true\"\n        (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n        (@overlayAnimation.done)=\"onOverlayAnimationEnd($event)\"\n      >\n        <div class=\"p-colorpicker-content\">\n          <div\n            #colorSelector\n            class=\"p-colorpicker-color-selector\"\n            (touchstart)=\"onColorTouchStart($event)\"\n            (touchmove)=\"onMove($event)\"\n            (touchend)=\"onDragEnd()\"\n            (mousedown)=\"onColorMousedown($event)\"\n          >\n            <div class=\"p-colorpicker-color\">\n              <div #colorHandle class=\"p-colorpicker-color-handle\"></div>\n            </div>\n          </div>\n          <div\n            #hue\n            class=\"p-colorpicker-hue\"\n            (mousedown)=\"onHueMousedown($event)\"\n            (touchstart)=\"onHueTouchStart($event)\"\n            (touchmove)=\"onMove($event)\"\n            (touchend)=\"onDragEnd()\"\n          >\n            <div #hueHandle class=\"p-colorpicker-hue-handle\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  animations: [\n    trigger('overlayAnimation', [\n      transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]),\n      transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])\n    ])\n  ],\n  providers: [COLORPICKER_VALUE_ACCESSOR],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./colorpicker.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class ColorPicker implements ControlValueAccessor, OnDestroy {\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() inline: boolean;\n\n  @Input() format: string = 'hex';\n\n  @Input() appendTo: any;\n\n  @Input() disabled: boolean;\n\n  @Input() tabindex: string;\n\n  @Input() inputId: string;\n\n  @Input() autoZIndex: boolean = true;\n\n  @Input() baseZIndex: number = 0;\n\n  @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n  @Input() hideTransitionOptions: string = '.1s linear';\n\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('container') containerViewChild: ElementRef;\n\n  @ViewChild('input') inputViewChild: ElementRef;\n\n  value: any = { h: 0, s: 100, b: 100 };\n\n  inputBgColor: string;\n\n  shown: boolean;\n\n  overlayVisible: boolean;\n\n  defaultColor: string = 'ff0000';\n\n  onModelChange: Function = () => {};\n\n  onModelTouched: Function = () => {};\n\n  documentClickListener: Function;\n\n  documentResizeListener: any;\n\n  documentMousemoveListener: Function;\n\n  documentMouseupListener: Function;\n\n  documentHueMoveListener: Function;\n\n  scrollHandler: any;\n\n  selfClick: boolean;\n\n  colorDragging: boolean;\n\n  hueDragging: boolean;\n\n  overlay: HTMLDivElement;\n\n  colorSelectorViewChild: ElementRef;\n\n  colorHandleViewChild: ElementRef;\n\n  hueViewChild: ElementRef;\n\n  hueHandleViewChild: ElementRef;\n\n  constructor(\n    public el: ElementRef,\n    public renderer: Renderer2,\n    public cd: ChangeDetectorRef,\n    public config: PrimeNGConfig,\n    public overlayService: OverlayService\n  ) {}\n\n  @ViewChild('colorSelector') set colorSelector(element: ElementRef) {\n    this.colorSelectorViewChild = element;\n  }\n\n  @ViewChild('colorHandle') set colorHandle(element: ElementRef) {\n    this.colorHandleViewChild = element;\n  }\n\n  @ViewChild('hue') set hue(element: ElementRef) {\n    this.hueViewChild = element;\n  }\n\n  @ViewChild('hueHandle') set hueHandle(element: ElementRef) {\n    this.hueHandleViewChild = element;\n  }\n\n  onHueMousedown(event: MouseEvent) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.bindDocumentMousemoveListener();\n    this.bindDocumentMouseupListener();\n\n    this.hueDragging = true;\n    this.pickHue(event);\n  }\n\n  onHueTouchStart(event) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.hueDragging = true;\n    this.pickHue(event, event.changedTouches[0]);\n  }\n\n  onColorTouchStart(event) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.colorDragging = true;\n    this.pickColor(event, event.changedTouches[0]);\n  }\n\n  pickHue(event, position?) {\n    let pageY = position ? position.pageY : event.pageY;\n    let top: number =\n      this.hueViewChild.nativeElement.getBoundingClientRect().top +\n      (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n    this.value = this.validateHSB({\n      h: Math.floor((360 * (150 - Math.max(0, Math.min(150, pageY - top)))) / 150),\n      s: this.value.s,\n      b: this.value.b\n    });\n\n    this.updateColorSelector();\n    this.updateUI();\n    this.updateModel();\n    this.onChange.emit({ originalEvent: event, value: this.getValueToUpdate() });\n  }\n\n  onColorMousedown(event: MouseEvent) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.bindDocumentMousemoveListener();\n    this.bindDocumentMouseupListener();\n\n    this.colorDragging = true;\n    this.pickColor(event);\n  }\n\n  onMove(event) {\n    if (this.colorDragging) {\n      this.pickColor(event, event.changedTouches[0]);\n      event.preventDefault();\n    }\n\n    if (this.hueDragging) {\n      this.pickHue(event, event.changedTouches[0]);\n      event.preventDefault();\n    }\n  }\n\n  onDragEnd() {\n    this.colorDragging = false;\n    this.hueDragging = false;\n\n    this.unbindDocumentMousemoveListener();\n    this.unbindDocumentMouseupListener();\n  }\n\n  pickColor(event, position?) {\n    let pageX = position ? position.pageX : event.pageX;\n    let pageY = position ? position.pageY : event.pageY;\n    let rect = this.colorSelectorViewChild.nativeElement.getBoundingClientRect();\n    let top = rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n    let left = rect.left + document.body.scrollLeft;\n    let saturation = Math.floor((100 * Math.max(0, Math.min(150, pageX - left))) / 150);\n    let brightness = Math.floor((100 * (150 - Math.max(0, Math.min(150, pageY - top)))) / 150);\n    this.value = this.validateHSB({\n      h: this.value.h,\n      s: saturation,\n      b: brightness\n    });\n\n    this.updateUI();\n    this.updateModel();\n    this.onChange.emit({ originalEvent: event, value: this.getValueToUpdate() });\n  }\n\n  getValueToUpdate() {\n    let val: any;\n    switch (this.format) {\n      case 'hex':\n        val = '#' + this.HSBtoHEX(this.value);\n        break;\n\n      case 'rgb':\n        val = this.HSBtoRGB(this.value);\n        break;\n\n      case 'hsb':\n        val = this.value;\n        break;\n    }\n\n    return val;\n  }\n\n  updateModel(): void {\n    this.onModelChange(this.getValueToUpdate());\n  }\n\n  writeValue(value: any): void {\n    if (value) {\n      switch (this.format) {\n        case 'hex':\n          this.value = this.HEXtoHSB(value);\n          break;\n\n        case 'rgb':\n          this.value = this.RGBtoHSB(value);\n          break;\n\n        case 'hsb':\n          this.value = value;\n          break;\n      }\n    } else {\n      this.value = this.HEXtoHSB(this.defaultColor);\n    }\n\n    this.updateColorSelector();\n    this.updateUI();\n    this.cd.markForCheck();\n  }\n\n  updateColorSelector() {\n    if (this.colorSelectorViewChild) {\n      const hsb: any = {};\n      hsb.s = 100;\n      hsb.b = 100;\n      hsb.h = this.value.h;\n\n      this.colorSelectorViewChild.nativeElement.style.backgroundColor = '#' + this.HSBtoHEX(hsb);\n    }\n  }\n\n  updateUI() {\n    if (this.colorHandleViewChild && this.hueHandleViewChild.nativeElement) {\n      this.colorHandleViewChild.nativeElement.style.left = Math.floor((150 * this.value.s) / 100) + 'px';\n      this.colorHandleViewChild.nativeElement.style.top = Math.floor((150 * (100 - this.value.b)) / 100) + 'px';\n      this.hueHandleViewChild.nativeElement.style.top = Math.floor(150 - (150 * this.value.h) / 360) + 'px';\n    }\n\n    this.inputBgColor = '#' + this.HSBtoHEX(this.value);\n  }\n\n  onInputFocus() {\n    this.onModelTouched();\n  }\n\n  show() {\n    this.overlayVisible = true;\n    this.cd.markForCheck();\n  }\n\n  onOverlayAnimationStart(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        if (!this.inline) {\n          this.overlay = event.element;\n          this.appendOverlay();\n\n          if (this.autoZIndex) {\n            ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n          }\n\n          this.alignOverlay();\n          this.bindDocumentClickListener();\n          this.bindDocumentResizeListener();\n          this.bindScrollListener();\n\n          this.updateColorSelector();\n          this.updateUI();\n        }\n        break;\n\n      case 'void':\n        this.onOverlayHide();\n        break;\n    }\n  }\n\n  onOverlayAnimationEnd(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        if (!this.inline) {\n          this.onShow.emit({});\n        }\n        break;\n\n      case 'void':\n        if (this.autoZIndex) {\n          ZIndexUtils.clear(event.element);\n        }\n\n        this.onHide.emit({});\n        break;\n    }\n  }\n\n  appendOverlay() {\n    if (this.appendTo) {\n      if (this.appendTo === 'body') document.body.appendChild(this.overlay);\n      else DomHandler.appendChild(this.overlay, this.appendTo);\n    }\n  }\n\n  restoreOverlayAppend() {\n    if (this.overlay && this.appendTo) {\n      this.el.nativeElement.appendChild(this.overlay);\n    }\n  }\n\n  alignOverlay() {\n    if (this.appendTo) DomHandler.absolutePosition(this.overlay, this.inputViewChild.nativeElement);\n    else DomHandler.relativePosition(this.overlay, this.inputViewChild.nativeElement);\n  }\n\n  hide() {\n    this.overlayVisible = false;\n    this.cd.markForCheck();\n  }\n\n  onInputClick() {\n    this.selfClick = true;\n    this.togglePanel();\n  }\n\n  togglePanel() {\n    if (!this.overlayVisible) this.show();\n    else this.hide();\n  }\n\n  onInputKeydown(event: KeyboardEvent) {\n    switch (event.which) {\n      //space\n      case 32:\n        this.togglePanel();\n        event.preventDefault();\n        break;\n\n      //escape and tab\n      case 27:\n      case 9:\n        this.hide();\n        break;\n    }\n  }\n\n  onOverlayClick(event) {\n    this.overlayService.add({\n      originalEvent: event,\n      target: this.el.nativeElement\n    });\n\n    this.selfClick = true;\n  }\n\n  registerOnChange(fn: Function): void {\n    this.onModelChange = fn;\n  }\n\n  registerOnTouched(fn: Function): void {\n    this.onModelTouched = fn;\n  }\n\n  setDisabledState(val: boolean): void {\n    this.disabled = val;\n    this.cd.markForCheck();\n  }\n\n  bindDocumentClickListener() {\n    if (!this.documentClickListener) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentClickListener = this.renderer.listen(documentTarget, 'click', () => {\n        if (!this.selfClick) {\n          this.overlayVisible = false;\n          this.unbindDocumentClickListener();\n        }\n\n        this.selfClick = false;\n        this.cd.markForCheck();\n      });\n    }\n  }\n\n  unbindDocumentClickListener() {\n    if (this.documentClickListener) {\n      this.documentClickListener();\n      this.documentClickListener = null;\n    }\n  }\n\n  bindDocumentMousemoveListener() {\n    if (!this.documentMousemoveListener) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentMousemoveListener = this.renderer.listen(documentTarget, 'mousemove', (event: MouseEvent) => {\n        if (this.colorDragging) {\n          this.pickColor(event);\n        }\n\n        if (this.hueDragging) {\n          this.pickHue(event);\n        }\n      });\n    }\n  }\n\n  unbindDocumentMousemoveListener() {\n    if (this.documentMousemoveListener) {\n      this.documentMousemoveListener();\n      this.documentMousemoveListener = null;\n    }\n  }\n\n  bindDocumentMouseupListener() {\n    if (!this.documentMouseupListener) {\n      const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n      this.documentMouseupListener = this.renderer.listen(documentTarget, 'mouseup', () => {\n        this.colorDragging = false;\n        this.hueDragging = false;\n        this.unbindDocumentMousemoveListener();\n        this.unbindDocumentMouseupListener();\n      });\n    }\n  }\n\n  unbindDocumentMouseupListener() {\n    if (this.documentMouseupListener) {\n      this.documentMouseupListener();\n      this.documentMouseupListener = null;\n    }\n  }\n\n  bindDocumentResizeListener() {\n    this.documentResizeListener = this.onWindowResize.bind(this);\n    window.addEventListener('resize', this.documentResizeListener);\n  }\n\n  unbindDocumentResizeListener() {\n    if (this.documentResizeListener) {\n      window.removeEventListener('resize', this.documentResizeListener);\n      this.documentResizeListener = null;\n    }\n  }\n\n  onWindowResize() {\n    if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n      this.hide();\n    }\n  }\n\n  bindScrollListener() {\n    if (!this.scrollHandler) {\n      this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild.nativeElement, () => {\n        if (this.overlayVisible) {\n          this.hide();\n        }\n      });\n    }\n\n    this.scrollHandler.bindScrollListener();\n  }\n\n  unbindScrollListener() {\n    if (this.scrollHandler) {\n      this.scrollHandler.unbindScrollListener();\n    }\n  }\n\n  validateHSB(hsb) {\n    return {\n      h: Math.min(360, Math.max(0, hsb.h)),\n      s: Math.min(100, Math.max(0, hsb.s)),\n      b: Math.min(100, Math.max(0, hsb.b))\n    };\n  }\n\n  validateRGB(rgb) {\n    return {\n      r: Math.min(255, Math.max(0, rgb.r)),\n      g: Math.min(255, Math.max(0, rgb.g)),\n      b: Math.min(255, Math.max(0, rgb.b))\n    };\n  }\n\n  validateHEX(hex) {\n    var len = 6 - hex.length;\n    if (len > 0) {\n      var o = [];\n      for (var i = 0; i < len; i++) {\n        o.push('0');\n      }\n      o.push(hex);\n      hex = o.join('');\n    }\n    return hex;\n  }\n\n  HEXtoRGB(hex) {\n    let hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n    return { r: hexValue >> 16, g: (hexValue & 0x00ff00) >> 8, b: hexValue & 0x0000ff };\n  }\n\n  HEXtoHSB(hex) {\n    return this.RGBtoHSB(this.HEXtoRGB(hex));\n  }\n\n  RGBtoHSB(rgb) {\n    var hsb = {\n      h: 0,\n      s: 0,\n      b: 0\n    };\n    var min = Math.min(rgb.r, rgb.g, rgb.b);\n    var max = Math.max(rgb.r, rgb.g, rgb.b);\n    var delta = max - min;\n    hsb.b = max;\n    hsb.s = max != 0 ? (255 * delta) / max : 0;\n    if (hsb.s != 0) {\n      if (rgb.r == max) {\n        hsb.h = (rgb.g - rgb.b) / delta;\n      } else if (rgb.g == max) {\n        hsb.h = 2 + (rgb.b - rgb.r) / delta;\n      } else {\n        hsb.h = 4 + (rgb.r - rgb.g) / delta;\n      }\n    } else {\n      hsb.h = -1;\n    }\n    hsb.h *= 60;\n    if (hsb.h < 0) {\n      hsb.h += 360;\n    }\n    hsb.s *= 100 / 255;\n    hsb.b *= 100 / 255;\n    return hsb;\n  }\n\n  HSBtoRGB(hsb) {\n    var rgb = {\n      r: null,\n      g: null,\n      b: null\n    };\n    let h: number = hsb.h;\n    let s: number = (hsb.s * 255) / 100;\n    let v: number = (hsb.b * 255) / 100;\n    if (s == 0) {\n      rgb = {\n        r: v,\n        g: v,\n        b: v\n      };\n    } else {\n      let t1: number = v;\n      let t2: number = ((255 - s) * v) / 255;\n      let t3: number = ((t1 - t2) * (h % 60)) / 60;\n      if (h == 360) h = 0;\n      if (h < 60) {\n        rgb.r = t1;\n        rgb.b = t2;\n        rgb.g = t2 + t3;\n      } else if (h < 120) {\n        rgb.g = t1;\n        rgb.b = t2;\n        rgb.r = t1 - t3;\n      } else if (h < 180) {\n        rgb.g = t1;\n        rgb.r = t2;\n        rgb.b = t2 + t3;\n      } else if (h < 240) {\n        rgb.b = t1;\n        rgb.r = t2;\n        rgb.g = t1 - t3;\n      } else if (h < 300) {\n        rgb.b = t1;\n        rgb.g = t2;\n        rgb.r = t2 + t3;\n      } else if (h < 360) {\n        rgb.r = t1;\n        rgb.g = t2;\n        rgb.b = t1 - t3;\n      } else {\n        rgb.r = 0;\n        rgb.g = 0;\n        rgb.b = 0;\n      }\n    }\n    return { r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b) };\n  }\n\n  RGBtoHEX(rgb) {\n    var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n\n    for (var key in hex) {\n      if (hex[key].length == 1) {\n        hex[key] = '0' + hex[key];\n      }\n    }\n\n    return hex.join('');\n  }\n\n  HSBtoHEX(hsb) {\n    return this.RGBtoHEX(this.HSBtoRGB(hsb));\n  }\n\n  onOverlayHide() {\n    this.unbindScrollListener();\n    this.unbindDocumentResizeListener();\n    this.unbindDocumentClickListener();\n    this.overlay = null;\n  }\n\n  ngOnDestroy() {\n    if (this.scrollHandler) {\n      this.scrollHandler.destroy();\n      this.scrollHandler = null;\n    }\n\n    if (this.overlay && this.autoZIndex) {\n      ZIndexUtils.clear(this.overlay);\n    }\n\n    this.restoreOverlayAppend();\n    this.onOverlayHide();\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [ColorPicker],\n  declarations: [ColorPicker]\n})\nexport class ColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}