⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact 471cce5ee2a90a2e4f59874553adcae095e27c19a061ba6ff69a6fd4cee2fe3f:


0000: 27 75 73 65 20 73 74 72 69 63 74 27 3b 0a 0a 69  'use strict';..i
0010: 6d 70 6f 72 74 20 24 20 66 72 6f 6d 20 27 6a 71  mport $ from 'jq
0020: 75 65 72 79 27 3b 0a 69 6d 70 6f 72 74 20 5f 64  uery';.import _d
0030: 65 66 61 75 6c 74 73 20 66 72 6f 6d 20 27 2e 2f  efaults from './
0040: 6f 70 74 69 6f 6e 73 27 3b 0a 0a 2f 2a 2a 0a 20  options';../**. 
0050: 2a 20 48 61 6e 64 6c 65 73 20 65 76 65 72 79 74  * Handles everyt
0060: 68 69 6e 67 20 72 65 6c 61 74 65 64 20 74 6f 20  hing related to 
0070: 74 68 65 20 55 49 20 6f 66 20 74 68 65 20 63 6f  the UI of the co
0080: 6c 6f 72 70 69 63 6b 65 72 20 70 6f 70 75 70 3a  lorpicker popup:
0090: 20 73 68 6f 77 2c 20 68 69 64 65 2c 20 70 6f 73   show, hide, pos
00a0: 69 74 69 6f 6e 2c 2e 2e 2e 0a 20 2a 20 40 69 67  ition,.... * @ig
00b0: 6e 6f 72 65 0a 20 2a 2f 0a 63 6c 61 73 73 20 50  nore. */.class P
00c0: 6f 70 75 70 48 61 6e 64 6c 65 72 20 7b 0a 20 20  opupHandler {.  
00d0: 2f 2a 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20  /**.   * @param 
00e0: 7b 43 6f 6c 6f 72 70 69 63 6b 65 72 7d 20 63 6f  {Colorpicker} co
00f0: 6c 6f 72 70 69 63 6b 65 72 0a 20 20 20 2a 20 40  lorpicker.   * @
0100: 70 61 72 61 6d 20 7b 57 69 6e 64 6f 77 7d 20 72  param {Window} r
0110: 6f 6f 74 0a 20 20 20 2a 2f 0a 20 20 63 6f 6e 73  oot.   */.  cons
0120: 74 72 75 63 74 6f 72 28 63 6f 6c 6f 72 70 69 63  tructor(colorpic
0130: 6b 65 72 2c 20 72 6f 6f 74 29 20 7b 0a 20 20 20  ker, root) {.   
0140: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70   /**.     * @typ
0150: 65 20 7b 57 69 6e 64 6f 77 7d 0a 20 20 20 20 20  e {Window}.     
0160: 2a 2f 0a 20 20 20 20 74 68 69 73 2e 72 6f 6f 74  */.    this.root
0170: 20 3d 20 72 6f 6f 74 3b 0a 20 20 20 20 2f 2a 2a   = root;.    /**
0180: 0a 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b 43  .     * @type {C
0190: 6f 6c 6f 72 70 69 63 6b 65 72 7d 0a 20 20 20 20  olorpicker}.    
01a0: 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 63 6f 6c   */.    this.col
01b0: 6f 72 70 69 63 6b 65 72 20 3d 20 63 6f 6c 6f 72  orpicker = color
01c0: 70 69 63 6b 65 72 3b 0a 20 20 20 20 2f 2a 2a 0a  picker;.    /**.
01d0: 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b 6a 51       * @type {jQ
01e0: 75 65 72 79 7d 0a 20 20 20 20 20 2a 2f 0a 20 20  uery}.     */.  
01f0: 20 20 74 68 69 73 2e 70 6f 70 6f 76 65 72 54 61    this.popoverTa
0200: 72 67 65 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20  rget = null;.   
0210: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70   /**.     * @typ
0220: 65 20 7b 6a 51 75 65 72 79 7d 0a 20 20 20 20 20  e {jQuery}.     
0230: 2a 2f 0a 20 20 20 20 74 68 69 73 2e 70 6f 70 6f  */.    this.popo
0240: 76 65 72 54 69 70 20 3d 20 6e 75 6c 6c 3b 0a 0a  verTip = null;..
0250: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 49      /**.     * I
0260: 66 20 74 72 75 65 2c 20 74 68 65 20 6c 61 74 65  f true, the late
0270: 73 74 20 63 6c 69 63 6b 20 77 61 73 20 69 6e 73  st click was ins
0280: 69 64 65 20 74 68 65 20 70 6f 70 6f 76 65 72 0a  ide the popover.
0290: 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b 62 6f       * @type {bo
02a0: 6f 6c 65 61 6e 7d 0a 20 20 20 20 20 2a 2f 0a 20  olean}.     */. 
02b0: 20 20 20 74 68 69 73 2e 63 6c 69 63 6b 69 6e 67     this.clicking
02c0: 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 2f 2a   = false;.    /*
02d0: 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b  *.     * @type {
02e0: 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 20 20 2a 2f  boolean}.     */
02f0: 0a 20 20 20 20 74 68 69 73 2e 68 69 64 64 69 6e  .    this.hiddin
0300: 67 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 2f  g = false;.    /
0310: 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 65 20  **.     * @type 
0320: 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 20 20 2a  {boolean}.     *
0330: 2f 0a 20 20 20 20 74 68 69 73 2e 73 68 6f 77 69  /.    this.showi
0340: 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 20 20 7d 0a  ng = false;.  }.
0350: 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 40 70 72 69  .  /**.   * @pri
0360: 76 61 74 65 0a 20 20 20 2a 20 40 72 65 74 75 72  vate.   * @retur
0370: 6e 73 20 7b 6a 51 75 65 72 79 7c 66 61 6c 73 65  ns {jQuery|false
0380: 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 20 69 6e  }.   */.  get in
0390: 70 75 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75  put() {.    retu
03a0: 72 6e 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63  rn this.colorpic
03b0: 6b 65 72 2e 69 6e 70 75 74 48 61 6e 64 6c 65 72  ker.inputHandler
03c0: 2e 69 6e 70 75 74 3b 0a 20 20 7d 0a 0a 20 20 2f  .input;.  }..  /
03d0: 2a 2a 0a 20 20 20 2a 20 40 70 72 69 76 61 74 65  **.   * @private
03e0: 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b  .   * @returns {
03f0: 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 2a 2f 0a 20  boolean}.   */. 
0400: 20 67 65 74 20 68 61 73 49 6e 70 75 74 28 29 20   get hasInput() 
0410: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69  {.    return thi
0420: 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 69 6e  s.colorpicker.in
0430: 70 75 74 48 61 6e 64 6c 65 72 2e 68 61 73 49 6e  putHandler.hasIn
0440: 70 75 74 28 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a  put();.  }..  /*
0450: 2a 0a 20 20 20 2a 20 40 70 72 69 76 61 74 65 0a  *.   * @private.
0460: 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 6a     * @returns {j
0470: 51 75 65 72 79 7c 66 61 6c 73 65 7d 0a 20 20 20  Query|false}.   
0480: 2a 2f 0a 20 20 67 65 74 20 61 64 64 6f 6e 28 29  */.  get addon()
0490: 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68   {.    return th
04a0: 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 61  is.colorpicker.a
04b0: 64 64 6f 6e 48 61 6e 64 6c 65 72 2e 61 64 64 6f  ddonHandler.addo
04c0: 6e 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20  n;.  }..  /**.  
04d0: 20 2a 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a   * @private.   *
04e0: 20 40 72 65 74 75 72 6e 73 20 7b 62 6f 6f 6c 65   @returns {boole
04f0: 61 6e 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 20  an}.   */.  get 
0500: 68 61 73 41 64 64 6f 6e 28 29 20 7b 0a 20 20 20  hasAddon() {.   
0510: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 63 6f 6c   return this.col
0520: 6f 72 70 69 63 6b 65 72 2e 61 64 64 6f 6e 48 61  orpicker.addonHa
0530: 6e 64 6c 65 72 2e 68 61 73 41 64 64 6f 6e 28 29  ndler.hasAddon()
0540: 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20  ;.  }..  /**.   
0550: 2a 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a 20  * @private.   * 
0560: 40 72 65 74 75 72 6e 73 20 7b 62 6f 6f 6c 65 61  @returns {boolea
0570: 6e 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 20 69  n}.   */.  get i
0580: 73 50 6f 70 6f 76 65 72 28 29 20 7b 0a 20 20 20  sPopover() {.   
0590: 20 72 65 74 75 72 6e 20 21 74 68 69 73 2e 63 6f   return !this.co
05a0: 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 69 6f 6e  lorpicker.option
05b0: 73 2e 69 6e 6c 69 6e 65 20 26 26 20 21 21 74 68  s.inline && !!th
05c0: 69 73 2e 70 6f 70 6f 76 65 72 54 69 70 3b 0a 20  is.popoverTip;. 
05d0: 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 42   }..  /**.   * B
05e0: 69 6e 64 73 20 74 68 65 20 64 69 66 66 65 72 65  inds the differe
05f0: 6e 74 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20 65  nt colorpicker e
0600: 6c 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 66  lements to the f
0610: 6f 63 75 73 2f 6d 6f 75 73 65 2f 74 6f 75 63 68  ocus/mouse/touch
0620: 20 65 76 65 6e 74 73 20 73 6f 20 69 74 20 72 65   events so it re
0630: 61 63 74 73 20 69 6e 20 6f 72 64 65 72 20 74 6f  acts in order to
0640: 20 73 68 6f 77 20 6f 72 0a 20 20 20 2a 20 68 69   show or.   * hi
0650: 64 65 20 74 68 65 20 63 6f 6c 6f 72 70 69 63 6b  de the colorpick
0660: 65 72 20 70 6f 70 75 70 20 61 63 63 6f 72 64 69  er popup accordi
0670: 6e 67 6c 79 2e 20 49 74 20 61 6c 73 6f 20 61 64  ngly. It also ad
0680: 64 73 20 74 68 65 20 70 72 6f 70 65 72 20 63 6c  ds the proper cl
0690: 61 73 73 65 73 2e 0a 20 20 20 2a 2f 0a 20 20 62  asses..   */.  b
06a0: 69 6e 64 28 29 20 7b 0a 20 20 20 20 6c 65 74 20  ind() {.    let 
06b0: 63 70 20 3d 20 74 68 69 73 2e 63 6f 6c 6f 72 70  cp = this.colorp
06c0: 69 63 6b 65 72 3b 0a 0a 20 20 20 20 69 66 20 28  icker;..    if (
06d0: 63 70 2e 6f 70 74 69 6f 6e 73 2e 69 6e 6c 69 6e  cp.options.inlin
06e0: 65 29 20 7b 0a 20 20 20 20 20 20 63 70 2e 70 69  e) {.      cp.pi
06f0: 63 6b 65 72 2e 61 64 64 43 6c 61 73 73 28 27 63  cker.addClass('c
0700: 6f 6c 6f 72 70 69 63 6b 65 72 2d 69 6e 6c 69 6e  olorpicker-inlin
0710: 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 76 69  e colorpicker-vi
0720: 73 69 62 6c 65 27 29 3b 0a 20 20 20 20 20 20 72  sible');.      r
0730: 65 74 75 72 6e 3b 20 2f 2f 20 6e 6f 20 6e 65 65  eturn; // no nee
0740: 64 20 74 6f 20 62 69 6e 64 20 73 68 6f 77 2f 68  d to bind show/h
0750: 69 64 65 20 65 76 65 6e 74 73 20 66 6f 72 20 69  ide events for i
0760: 6e 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 73 0a 20  nline elements. 
0770: 20 20 20 7d 0a 0a 20 20 20 20 63 70 2e 70 69 63     }..    cp.pic
0780: 6b 65 72 2e 61 64 64 43 6c 61 73 73 28 27 63 6f  ker.addClass('co
0790: 6c 6f 72 70 69 63 6b 65 72 2d 70 6f 70 75 70 20  lorpicker-popup 
07a0: 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 68 69 64 64  colorpicker-hidd
07b0: 65 6e 27 29 3b 0a 0a 20 20 20 20 2f 2f 20 74 68  en');..    // th
07c0: 65 72 65 20 69 73 20 6e 6f 20 69 6e 70 75 74 20  ere is no input 
07d0: 6f 72 20 61 64 64 6f 6e 0a 20 20 20 20 69 66 20  or addon.    if 
07e0: 28 21 74 68 69 73 2e 68 61 73 49 6e 70 75 74 20  (!this.hasInput 
07f0: 26 26 20 21 74 68 69 73 2e 68 61 73 41 64 64 6f  && !this.hasAddo
0800: 6e 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72  n) {.      retur
0810: 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f  n;.    }..    //
0820: 20 63 72 65 61 74 65 20 42 6f 6f 74 73 74 72 61   create Bootstra
0830: 70 20 34 20 70 6f 70 6f 76 65 72 0a 20 20 20 20  p 4 popover.    
0840: 69 66 20 28 63 70 2e 6f 70 74 69 6f 6e 73 2e 70  if (cp.options.p
0850: 6f 70 6f 76 65 72 29 20 7b 0a 20 20 20 20 20 20  opover) {.      
0860: 74 68 69 73 2e 63 72 65 61 74 65 50 6f 70 6f 76  this.createPopov
0870: 65 72 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  er();.    }..   
0880: 20 2f 2f 20 62 69 6e 64 20 61 64 64 6f 6e 20 73   // bind addon s
0890: 68 6f 77 2f 68 69 64 65 20 65 76 65 6e 74 73 0a  how/hide events.
08a0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 68 61 73      if (this.has
08b0: 41 64 64 6f 6e 29 20 7b 0a 20 20 20 20 20 20 2f  Addon) {.      /
08c0: 2f 20 65 6e 61 62 6c 65 20 66 6f 63 75 73 20 6f  / enable focus o
08d0: 6e 20 61 64 64 6f 6e 73 0a 20 20 20 20 20 20 69  n addons.      i
08e0: 66 20 28 21 74 68 69 73 2e 61 64 64 6f 6e 2e 61  f (!this.addon.a
08f0: 74 74 72 28 27 74 61 62 69 6e 64 65 78 27 29 29  ttr('tabindex'))
0900: 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e   {.        this.
0910: 61 64 64 6f 6e 2e 61 74 74 72 28 27 74 61 62 69  addon.attr('tabi
0920: 6e 64 65 78 27 2c 20 30 29 3b 0a 20 20 20 20 20  ndex', 0);.     
0930: 20 7d 0a 0a 20 20 20 20 20 20 74 68 69 73 2e 61   }..      this.a
0940: 64 64 6f 6e 2e 6f 6e 28 7b 0a 20 20 20 20 20 20  ddon.on({.      
0950: 20 20 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f 6c    'mousedown.col
0960: 6f 72 70 69 63 6b 65 72 20 74 6f 75 63 68 73 74  orpicker touchst
0970: 61 72 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27  art.colorpicker'
0980: 3a 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 74  : $.proxy(this.t
0990: 6f 67 67 6c 65 2c 20 74 68 69 73 29 0a 20 20 20  oggle, this).   
09a0: 20 20 20 7d 29 3b 0a 0a 20 20 20 20 20 20 74 68     });..      th
09b0: 69 73 2e 61 64 64 6f 6e 2e 6f 6e 28 7b 0a 20 20  is.addon.on({.  
09c0: 20 20 20 20 20 20 27 66 6f 63 75 73 2e 63 6f 6c        'focus.col
09d0: 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 72 6f  orpicker': $.pro
09e0: 78 79 28 74 68 69 73 2e 73 68 6f 77 2c 20 74 68  xy(this.show, th
09f0: 69 73 29 0a 20 20 20 20 20 20 7d 29 3b 0a 0a 20  is).      });.. 
0a00: 20 20 20 20 20 74 68 69 73 2e 61 64 64 6f 6e 2e       this.addon.
0a10: 6f 6e 28 7b 0a 20 20 20 20 20 20 20 20 27 66 6f  on({.        'fo
0a20: 63 75 73 6f 75 74 2e 63 6f 6c 6f 72 70 69 63 6b  cusout.colorpick
0a30: 65 72 27 3a 20 24 2e 70 72 6f 78 79 28 74 68 69  er': $.proxy(thi
0a40: 73 2e 68 69 64 65 2c 20 74 68 69 73 29 0a 20 20  s.hide, this).  
0a50: 20 20 20 20 7d 29 3b 0a 20 20 20 20 7d 0a 0a 20      });.    }.. 
0a60: 20 20 20 2f 2f 20 62 69 6e 64 20 69 6e 70 75 74     // bind input
0a70: 20 73 68 6f 77 2f 68 69 64 65 20 65 76 65 6e 74   show/hide event
0a80: 73 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 68  s.    if (this.h
0a90: 61 73 49 6e 70 75 74 20 26 26 20 21 74 68 69 73  asInput && !this
0aa0: 2e 68 61 73 41 64 64 6f 6e 29 20 7b 0a 20 20 20  .hasAddon) {.   
0ab0: 20 20 20 74 68 69 73 2e 69 6e 70 75 74 2e 6f 6e     this.input.on
0ac0: 28 7b 0a 20 20 20 20 20 20 20 20 27 6d 6f 75 73  ({.        'mous
0ad0: 65 64 6f 77 6e 2e 63 6f 6c 6f 72 70 69 63 6b 65  edown.colorpicke
0ae0: 72 20 74 6f 75 63 68 73 74 61 72 74 2e 63 6f 6c  r touchstart.col
0af0: 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 72 6f  orpicker': $.pro
0b00: 78 79 28 74 68 69 73 2e 73 68 6f 77 2c 20 74 68  xy(this.show, th
0b10: 69 73 29 2c 0a 20 20 20 20 20 20 20 20 27 66 6f  is),.        'fo
0b20: 63 75 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27  cus.colorpicker'
0b30: 3a 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 73  : $.proxy(this.s
0b40: 68 6f 77 2c 20 74 68 69 73 29 0a 20 20 20 20 20  how, this).     
0b50: 20 7d 29 3b 0a 0a 20 20 20 20 20 20 74 68 69 73   });..      this
0b60: 2e 69 6e 70 75 74 2e 6f 6e 28 7b 0a 20 20 20 20  .input.on({.    
0b70: 20 20 20 20 27 66 6f 63 75 73 6f 75 74 2e 63 6f      'focusout.co
0b80: 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 72  lorpicker': $.pr
0b90: 6f 78 79 28 74 68 69 73 2e 68 69 64 65 2c 20 74  oxy(this.hide, t
0ba0: 68 69 73 29 0a 20 20 20 20 20 20 7d 29 3b 0a 20  his).      });. 
0bb0: 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 72 65 70     }..    // rep
0bc0: 6f 73 69 74 69 6f 6e 20 70 6f 70 75 70 20 6f 6e  osition popup on
0bd0: 20 77 69 6e 64 6f 77 20 72 65 73 69 7a 65 0a 20   window resize. 
0be0: 20 20 20 24 28 74 68 69 73 2e 72 6f 6f 74 29 2e     $(this.root).
0bf0: 6f 6e 28 27 72 65 73 69 7a 65 2e 63 6f 6c 6f 72  on('resize.color
0c00: 70 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78 79  picker', $.proxy
0c10: 28 74 68 69 73 2e 72 65 70 6f 73 69 74 69 6f 6e  (this.reposition
0c20: 2c 20 74 68 69 73 29 29 3b 0a 20 20 7d 0a 0a 20  , this));.  }.. 
0c30: 20 2f 2a 2a 0a 20 20 20 2a 20 55 6e 62 69 6e 64   /**.   * Unbind
0c40: 73 20 61 6e 79 20 65 76 65 6e 74 20 62 6f 75 6e  s any event boun
0c50: 64 20 62 79 20 74 68 69 73 20 68 61 6e 64 6c 65  d by this handle
0c60: 72 0a 20 20 20 2a 2f 0a 20 20 75 6e 62 69 6e 64  r.   */.  unbind
0c70: 28 29 20 7b 0a 20 20 20 20 69 66 20 28 74 68 69  () {.    if (thi
0c80: 73 2e 68 61 73 49 6e 70 75 74 29 20 7b 0a 20 20  s.hasInput) {.  
0c90: 20 20 20 20 74 68 69 73 2e 69 6e 70 75 74 2e 6f      this.input.o
0ca0: 66 66 28 7b 0a 20 20 20 20 20 20 20 20 27 6d 6f  ff({.        'mo
0cb0: 75 73 65 64 6f 77 6e 2e 63 6f 6c 6f 72 70 69 63  usedown.colorpic
0cc0: 6b 65 72 20 74 6f 75 63 68 73 74 61 72 74 2e 63  ker touchstart.c
0cd0: 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70  olorpicker': $.p
0ce0: 72 6f 78 79 28 74 68 69 73 2e 73 68 6f 77 2c 20  roxy(this.show, 
0cf0: 74 68 69 73 29 2c 0a 20 20 20 20 20 20 20 20 27  this),.        '
0d00: 66 6f 63 75 73 2e 63 6f 6c 6f 72 70 69 63 6b 65  focus.colorpicke
0d10: 72 27 3a 20 24 2e 70 72 6f 78 79 28 74 68 69 73  r': $.proxy(this
0d20: 2e 73 68 6f 77 2c 20 74 68 69 73 29 0a 20 20 20  .show, this).   
0d30: 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 74 68 69     });.      thi
0d40: 73 2e 69 6e 70 75 74 2e 6f 66 66 28 7b 0a 20 20  s.input.off({.  
0d50: 20 20 20 20 20 20 27 66 6f 63 75 73 6f 75 74 2e        'focusout.
0d60: 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e  colorpicker': $.
0d70: 70 72 6f 78 79 28 74 68 69 73 2e 68 69 64 65 2c  proxy(this.hide,
0d80: 20 74 68 69 73 29 0a 20 20 20 20 20 20 7d 29 3b   this).      });
0d90: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28  .    }..    if (
0da0: 74 68 69 73 2e 68 61 73 41 64 64 6f 6e 29 20 7b  this.hasAddon) {
0db0: 0a 20 20 20 20 20 20 74 68 69 73 2e 61 64 64 6f  .      this.addo
0dc0: 6e 2e 6f 66 66 28 7b 0a 20 20 20 20 20 20 20 20  n.off({.        
0dd0: 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f 6c 6f 72  'mousedown.color
0de0: 70 69 63 6b 65 72 20 74 6f 75 63 68 73 74 61 72  picker touchstar
0df0: 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20  t.colorpicker': 
0e00: 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 74 6f 67  $.proxy(this.tog
0e10: 67 6c 65 2c 20 74 68 69 73 29 0a 20 20 20 20 20  gle, this).     
0e20: 20 7d 29 3b 0a 20 20 20 20 20 20 74 68 69 73 2e   });.      this.
0e30: 61 64 64 6f 6e 2e 6f 66 66 28 7b 0a 20 20 20 20  addon.off({.    
0e40: 20 20 20 20 27 66 6f 63 75 73 2e 63 6f 6c 6f 72      'focus.color
0e50: 70 69 63 6b 65 72 27 3a 20 24 2e 70 72 6f 78 79  picker': $.proxy
0e60: 28 74 68 69 73 2e 73 68 6f 77 2c 20 74 68 69 73  (this.show, this
0e70: 29 0a 20 20 20 20 20 20 7d 29 3b 0a 20 20 20 20  ).      });.    
0e80: 20 20 74 68 69 73 2e 61 64 64 6f 6e 2e 6f 66 66    this.addon.off
0e90: 28 7b 0a 20 20 20 20 20 20 20 20 27 66 6f 63 75  ({.        'focu
0ea0: 73 6f 75 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72  sout.colorpicker
0eb0: 27 3a 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e  ': $.proxy(this.
0ec0: 68 69 64 65 2c 20 74 68 69 73 29 0a 20 20 20 20  hide, this).    
0ed0: 20 20 7d 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20    });.    }..   
0ee0: 20 69 66 20 28 74 68 69 73 2e 70 6f 70 6f 76 65   if (this.popove
0ef0: 72 54 61 72 67 65 74 29 20 7b 0a 20 20 20 20 20  rTarget) {.     
0f00: 20 74 68 69 73 2e 70 6f 70 6f 76 65 72 54 61 72   this.popoverTar
0f10: 67 65 74 2e 70 6f 70 6f 76 65 72 28 27 64 69 73  get.popover('dis
0f20: 70 6f 73 65 27 29 3b 0a 20 20 20 20 7d 0a 0a 20  pose');.    }.. 
0f30: 20 20 20 24 28 74 68 69 73 2e 72 6f 6f 74 29 2e     $(this.root).
0f40: 6f 66 66 28 27 72 65 73 69 7a 65 2e 63 6f 6c 6f  off('resize.colo
0f50: 72 70 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78  rpicker', $.prox
0f60: 79 28 74 68 69 73 2e 72 65 70 6f 73 69 74 69 6f  y(this.repositio
0f70: 6e 2c 20 74 68 69 73 29 29 3b 0a 20 20 20 20 24  n, this));.    $
0f80: 28 74 68 69 73 2e 72 6f 6f 74 2e 64 6f 63 75 6d  (this.root.docum
0f90: 65 6e 74 29 2e 6f 66 66 28 27 6d 6f 75 73 65 64  ent).off('moused
0fa0: 6f 77 6e 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 20  own.colorpicker 
0fb0: 74 6f 75 63 68 73 74 61 72 74 2e 63 6f 6c 6f 72  touchstart.color
0fc0: 70 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78 79  picker', $.proxy
0fd0: 28 74 68 69 73 2e 68 69 64 65 2c 20 74 68 69 73  (this.hide, this
0fe0: 29 29 3b 0a 20 20 20 20 24 28 74 68 69 73 2e 72  ));.    $(this.r
0ff0: 6f 6f 74 2e 64 6f 63 75 6d 65 6e 74 29 2e 6f 66  oot.document).of
1000: 66 28 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f 6c  f('mousedown.col
1010: 6f 72 70 69 63 6b 65 72 20 74 6f 75 63 68 73 74  orpicker touchst
1020: 61 72 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27  art.colorpicker'
1030: 2c 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 6f  , $.proxy(this.o
1040: 6e 43 6c 69 63 6b 69 6e 67 49 6e 73 69 64 65 2c  nClickingInside,
1050: 20 74 68 69 73 29 29 3b 0a 20 20 7d 0a 0a 20 20   this));.  }..  
1060: 69 73 43 6c 69 63 6b 69 6e 67 49 6e 73 69 64 65  isClickingInside
1070: 28 65 29 20 7b 0a 20 20 20 20 69 66 20 28 21 65  (e) {.    if (!e
1080: 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e  ) {.      return
1090: 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20   false;.    }.. 
10a0: 20 20 20 72 65 74 75 72 6e 20 28 0a 20 20 20 20     return (.    
10b0: 20 20 74 68 69 73 2e 69 73 4f 72 49 73 49 6e 73    this.isOrIsIns
10c0: 69 64 65 28 74 68 69 73 2e 70 6f 70 6f 76 65 72  ide(this.popover
10d0: 54 69 70 2c 20 65 2e 63 75 72 72 65 6e 74 54 61  Tip, e.currentTa
10e0: 72 67 65 74 29 20 7c 7c 0a 20 20 20 20 20 20 74  rget) ||.      t
10f0: 68 69 73 2e 69 73 4f 72 49 73 49 6e 73 69 64 65  his.isOrIsInside
1100: 28 74 68 69 73 2e 70 6f 70 6f 76 65 72 54 69 70  (this.popoverTip
1110: 2c 20 65 2e 74 61 72 67 65 74 29 20 7c 7c 0a 20  , e.target) ||. 
1120: 20 20 20 20 20 74 68 69 73 2e 69 73 4f 72 49 73       this.isOrIs
1130: 49 6e 73 69 64 65 28 74 68 69 73 2e 63 6f 6c 6f  Inside(this.colo
1140: 72 70 69 63 6b 65 72 2e 70 69 63 6b 65 72 2c 20  rpicker.picker, 
1150: 65 2e 63 75 72 72 65 6e 74 54 61 72 67 65 74 29  e.currentTarget)
1160: 20 7c 7c 0a 20 20 20 20 20 20 74 68 69 73 2e 69   ||.      this.i
1170: 73 4f 72 49 73 49 6e 73 69 64 65 28 74 68 69 73  sOrIsInside(this
1180: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 70 69 63  .colorpicker.pic
1190: 6b 65 72 2c 20 65 2e 74 61 72 67 65 74 29 0a 20  ker, e.target). 
11a0: 20 20 20 29 3b 0a 20 20 7d 0a 0a 20 20 69 73 4f     );.  }..  isO
11b0: 72 49 73 49 6e 73 69 64 65 28 63 6f 6e 74 61 69  rIsInside(contai
11c0: 6e 65 72 2c 20 65 6c 65 6d 65 6e 74 29 20 7b 0a  ner, element) {.
11d0: 20 20 20 20 69 66 20 28 21 63 6f 6e 74 61 69 6e      if (!contain
11e0: 65 72 20 7c 7c 20 21 65 6c 65 6d 65 6e 74 29 20  er || !element) 
11f0: 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66  {.      return f
1200: 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  alse;.    }..   
1210: 20 65 6c 65 6d 65 6e 74 20 3d 20 24 28 65 6c 65   element = $(ele
1220: 6d 65 6e 74 29 3b 0a 0a 20 20 20 20 72 65 74 75  ment);..    retu
1230: 72 6e 20 28 0a 20 20 20 20 20 20 65 6c 65 6d 65  rn (.      eleme
1240: 6e 74 2e 69 73 28 63 6f 6e 74 61 69 6e 65 72 29  nt.is(container)
1250: 20 7c 7c 0a 20 20 20 20 20 20 63 6f 6e 74 61 69   ||.      contai
1260: 6e 65 72 2e 66 69 6e 64 28 65 6c 65 6d 65 6e 74  ner.find(element
1270: 29 2e 6c 65 6e 67 74 68 20 3e 20 30 0a 20 20 20  ).length > 0.   
1280: 20 29 3b 0a 20 20 7d 0a 0a 20 20 6f 6e 43 6c 69   );.  }..  onCli
1290: 63 6b 69 6e 67 49 6e 73 69 64 65 28 65 29 20 7b  ckingInside(e) {
12a0: 0a 20 20 20 20 74 68 69 73 2e 63 6c 69 63 6b 69  .    this.clicki
12b0: 6e 67 20 3d 20 74 68 69 73 2e 69 73 43 6c 69 63  ng = this.isClic
12c0: 6b 69 6e 67 49 6e 73 69 64 65 28 65 29 3b 0a 20  kingInside(e);. 
12d0: 20 7d 0a 0a 20 20 63 72 65 61 74 65 50 6f 70 6f   }..  createPopo
12e0: 76 65 72 28 29 20 7b 0a 20 20 20 20 6c 65 74 20  ver() {.    let 
12f0: 63 70 20 3d 20 74 68 69 73 2e 63 6f 6c 6f 72 70  cp = this.colorp
1300: 69 63 6b 65 72 3b 0a 0a 20 20 20 20 74 68 69 73  icker;..    this
1310: 2e 70 6f 70 6f 76 65 72 54 61 72 67 65 74 20 3d  .popoverTarget =
1320: 20 74 68 69 73 2e 68 61 73 41 64 64 6f 6e 20 3f   this.hasAddon ?
1330: 20 74 68 69 73 2e 61 64 64 6f 6e 20 3a 20 74 68   this.addon : th
1340: 69 73 2e 69 6e 70 75 74 3b 0a 0a 20 20 20 20 63  is.input;..    c
1350: 70 2e 70 69 63 6b 65 72 2e 61 64 64 43 6c 61 73  p.picker.addClas
1360: 73 28 27 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 62  s('colorpicker-b
1370: 73 2d 70 6f 70 6f 76 65 72 2d 63 6f 6e 74 65 6e  s-popover-conten
1380: 74 27 29 3b 0a 0a 20 20 20 20 74 68 69 73 2e 70  t');..    this.p
1390: 6f 70 6f 76 65 72 54 61 72 67 65 74 2e 70 6f 70  opoverTarget.pop
13a0: 6f 76 65 72 28 0a 20 20 20 20 20 20 24 2e 65 78  over(.      $.ex
13b0: 74 65 6e 64 28 0a 20 20 20 20 20 20 20 20 74 72  tend(.        tr
13c0: 75 65 2c 0a 20 20 20 20 20 20 20 20 7b 7d 2c 0a  ue,.        {},.
13d0: 20 20 20 20 20 20 20 20 5f 64 65 66 61 75 6c 74          _default
13e0: 73 2e 70 6f 70 6f 76 65 72 2c 0a 20 20 20 20 20  s.popover,.     
13f0: 20 20 20 63 70 2e 6f 70 74 69 6f 6e 73 2e 70 6f     cp.options.po
1400: 70 6f 76 65 72 2c 0a 20 20 20 20 20 20 20 20 7b  pover,.        {
1410: 74 72 69 67 67 65 72 3a 20 27 6d 61 6e 75 61 6c  trigger: 'manual
1420: 27 2c 20 63 6f 6e 74 65 6e 74 3a 20 63 70 2e 70  ', content: cp.p
1430: 69 63 6b 65 72 2c 20 68 74 6d 6c 3a 20 74 72 75  icker, html: tru
1440: 65 7d 0a 20 20 20 20 20 20 29 0a 20 20 20 20 29  e}.      ).    )
1450: 3b 0a 0a 20 20 20 20 74 68 69 73 2e 70 6f 70 6f  ;..    this.popo
1460: 76 65 72 54 69 70 20 3d 20 24 28 74 68 69 73 2e  verTip = $(this.
1470: 70 6f 70 6f 76 65 72 54 61 72 67 65 74 2e 70 6f  popoverTarget.po
1480: 70 6f 76 65 72 28 27 67 65 74 54 69 70 45 6c 65  pover('getTipEle
1490: 6d 65 6e 74 27 29 2e 64 61 74 61 28 27 62 73 2e  ment').data('bs.
14a0: 70 6f 70 6f 76 65 72 27 29 2e 74 69 70 29 3b 0a  popover').tip);.
14b0: 20 20 20 20 74 68 69 73 2e 70 6f 70 6f 76 65 72      this.popover
14c0: 54 69 70 2e 61 64 64 43 6c 61 73 73 28 27 63 6f  Tip.addClass('co
14d0: 6c 6f 72 70 69 63 6b 65 72 2d 62 73 2d 70 6f 70  lorpicker-bs-pop
14e0: 6f 76 65 72 27 29 3b 0a 0a 20 20 20 20 74 68 69  over');..    thi
14f0: 73 2e 70 6f 70 6f 76 65 72 54 61 72 67 65 74 2e  s.popoverTarget.
1500: 6f 6e 28 27 73 68 6f 77 6e 2e 62 73 2e 70 6f 70  on('shown.bs.pop
1510: 6f 76 65 72 27 2c 20 24 2e 70 72 6f 78 79 28 74  over', $.proxy(t
1520: 68 69 73 2e 66 69 72 65 53 68 6f 77 2c 20 74 68  his.fireShow, th
1530: 69 73 29 29 3b 0a 20 20 20 20 74 68 69 73 2e 70  is));.    this.p
1540: 6f 70 6f 76 65 72 54 61 72 67 65 74 2e 6f 6e 28  opoverTarget.on(
1550: 27 68 69 64 64 65 6e 2e 62 73 2e 70 6f 70 6f 76  'hidden.bs.popov
1560: 65 72 27 2c 20 24 2e 70 72 6f 78 79 28 74 68 69  er', $.proxy(thi
1570: 73 2e 66 69 72 65 48 69 64 65 2c 20 74 68 69 73  s.fireHide, this
1580: 29 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20  ));.  }..  /**. 
1590: 20 20 2a 20 49 66 20 74 68 65 20 77 69 64 67 65    * If the widge
15a0: 74 20 69 73 20 6e 6f 74 20 69 6e 73 69 64 65 20  t is not inside 
15b0: 61 20 63 6f 6e 74 61 69 6e 65 72 20 6f 72 20 69  a container or i
15c0: 6e 6c 69 6e 65 2c 20 72 65 61 72 72 61 6e 67 65  nline, rearrange
15d0: 73 20 69 74 73 20 70 6f 73 69 74 69 6f 6e 20 72  s its position r
15e0: 65 6c 61 74 69 76 65 20 74 6f 20 69 74 73 20 65  elative to its e
15f0: 6c 65 6d 65 6e 74 20 6f 66 66 73 65 74 2e 0a 20  lement offset.. 
1600: 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20    *.   * @param 
1610: 7b 45 76 65 6e 74 7d 20 5b 65 5d 0a 20 20 20 2a  {Event} [e].   *
1620: 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a 2f 0a   @private.   */.
1630: 20 20 72 65 70 6f 73 69 74 69 6f 6e 28 65 29 20    reposition(e) 
1640: 7b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 70  {.    if (this.p
1650: 6f 70 6f 76 65 72 54 61 72 67 65 74 20 26 26 20  opoverTarget && 
1660: 74 68 69 73 2e 69 73 56 69 73 69 62 6c 65 28 29  this.isVisible()
1670: 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e 70  ) {.      this.p
1680: 6f 70 6f 76 65 72 54 61 72 67 65 74 2e 70 6f 70  opoverTarget.pop
1690: 6f 76 65 72 28 27 75 70 64 61 74 65 27 29 3b 0a  over('update');.
16a0: 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 2f 2a 2a      }.  }..  /**
16b0: 0a 20 20 20 2a 20 54 6f 67 67 6c 65 73 20 74 68  .   * Toggles th
16c0: 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20 62 65  e colorpicker be
16d0: 74 77 65 65 6e 20 76 69 73 69 62 6c 65 20 6f 72  tween visible or
16e0: 20 68 69 64 64 65 6e 0a 20 20 20 2a 0a 20 20 20   hidden.   *.   
16f0: 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69  * @fires Colorpi
1700: 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72  cker#colorpicker
1710: 53 68 6f 77 0a 20 20 20 2a 20 40 66 69 72 65 73  Show.   * @fires
1720: 20 43 6f 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c   Colorpicker#col
1730: 6f 72 70 69 63 6b 65 72 48 69 64 65 0a 20 20 20  orpickerHide.   
1740: 2a 20 40 70 61 72 61 6d 20 7b 45 76 65 6e 74 7d  * @param {Event}
1750: 20 5b 65 5d 0a 20 20 20 2a 2f 0a 20 20 74 6f 67   [e].   */.  tog
1760: 67 6c 65 28 65 29 20 7b 0a 20 20 20 20 69 66 20  gle(e) {.    if 
1770: 28 74 68 69 73 2e 69 73 56 69 73 69 62 6c 65 28  (this.isVisible(
1780: 29 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e  )) {.      this.
1790: 68 69 64 65 28 65 29 3b 0a 20 20 20 20 7d 20 65  hide(e);.    } e
17a0: 6c 73 65 20 7b 0a 20 20 20 20 20 20 74 68 69 73  lse {.      this
17b0: 2e 73 68 6f 77 28 65 29 3b 0a 20 20 20 20 7d 0a  .show(e);.    }.
17c0: 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20    }..  /**.   * 
17d0: 53 68 6f 77 73 20 74 68 65 20 63 6f 6c 6f 72 70  Shows the colorp
17e0: 69 63 6b 65 72 20 77 69 64 67 65 74 20 69 66 20  icker widget if 
17f0: 68 69 64 64 65 6e 2e 0a 20 20 20 2a 0a 20 20 20  hidden..   *.   
1800: 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69  * @fires Colorpi
1810: 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72  cker#colorpicker
1820: 53 68 6f 77 0a 20 20 20 2a 20 40 70 61 72 61 6d  Show.   * @param
1830: 20 7b 45 76 65 6e 74 7d 20 5b 65 5d 0a 20 20 20   {Event} [e].   
1840: 2a 2f 0a 20 20 73 68 6f 77 28 65 29 20 7b 0a 20  */.  show(e) {. 
1850: 20 20 20 69 66 20 28 74 68 69 73 2e 69 73 56 69     if (this.isVi
1860: 73 69 62 6c 65 28 29 20 7c 7c 20 74 68 69 73 2e  sible() || this.
1870: 73 68 6f 77 69 6e 67 20 7c 7c 20 74 68 69 73 2e  showing || this.
1880: 68 69 64 64 69 6e 67 29 20 7b 0a 20 20 20 20 20  hidding) {.     
1890: 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a   return;.    }..
18a0: 20 20 20 20 74 68 69 73 2e 73 68 6f 77 69 6e 67      this.showing
18b0: 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 74 68 69   = true;.    thi
18c0: 73 2e 68 69 64 64 69 6e 67 20 3d 20 66 61 6c 73  s.hidding = fals
18d0: 65 3b 0a 20 20 20 20 74 68 69 73 2e 63 6c 69 63  e;.    this.clic
18e0: 6b 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 0a 20  king = false;.. 
18f0: 20 20 20 6c 65 74 20 63 70 20 3d 20 74 68 69 73     let cp = this
1900: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 3b 0a 0a 20  .colorpicker;.. 
1910: 20 20 20 63 70 2e 6c 61 73 74 45 76 65 6e 74 2e     cp.lastEvent.
1920: 61 6c 69 61 73 20 3d 20 27 73 68 6f 77 27 3b 0a  alias = 'show';.
1930: 20 20 20 20 63 70 2e 6c 61 73 74 45 76 65 6e 74      cp.lastEvent
1940: 2e 65 20 3d 20 65 3b 0a 0a 20 20 20 20 2f 2f 20  .e = e;..    // 
1950: 50 72 65 76 65 6e 74 20 73 68 6f 77 69 6e 67 20  Prevent showing 
1960: 62 72 6f 77 73 65 72 20 6e 61 74 69 76 65 20 48  browser native H
1970: 54 4d 4c 35 20 63 6f 6c 6f 72 70 69 63 6b 65 72  TML5 colorpicker
1980: 0a 20 20 20 20 69 66 20 28 0a 20 20 20 20 20 20  .    if (.      
1990: 28 65 20 26 26 20 28 21 74 68 69 73 2e 68 61 73  (e && (!this.has
19a0: 49 6e 70 75 74 20 7c 7c 20 74 68 69 73 2e 69 6e  Input || this.in
19b0: 70 75 74 2e 61 74 74 72 28 27 74 79 70 65 27 29  put.attr('type')
19c0: 20 3d 3d 3d 20 27 63 6f 6c 6f 72 27 29 29 20 26   === 'color')) &
19d0: 26 0a 20 20 20 20 20 20 28 65 20 26 26 20 65 2e  &.      (e && e.
19e0: 70 72 65 76 65 6e 74 44 65 66 61 75 6c 74 29 0a  preventDefault).
19f0: 20 20 20 20 29 20 7b 0a 20 20 20 20 20 20 65 2e      ) {.      e.
1a00: 73 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28  stopPropagation(
1a10: 29 3b 0a 20 20 20 20 20 20 65 2e 70 72 65 76 65  );.      e.preve
1a20: 6e 74 44 65 66 61 75 6c 74 28 29 3b 0a 20 20 20  ntDefault();.   
1a30: 20 7d 0a 0a 20 20 20 20 2f 2f 20 49 66 20 69 74   }..    // If it
1a40: 27 73 20 61 20 70 6f 70 6f 76 65 72 2c 20 61 64  's a popover, ad
1a50: 64 20 65 76 65 6e 74 20 74 6f 20 74 68 65 20 64  d event to the d
1a60: 6f 63 75 6d 65 6e 74 20 74 6f 20 68 69 64 65 20  ocument to hide 
1a70: 74 68 65 20 70 69 63 6b 65 72 20 77 68 65 6e 20  the picker when 
1a80: 63 6c 69 63 6b 69 6e 67 20 6f 75 74 73 69 64 65  clicking outside
1a90: 20 6f 66 20 69 74 0a 20 20 20 20 69 66 20 28 74   of it.    if (t
1aa0: 68 69 73 2e 69 73 50 6f 70 6f 76 65 72 29 20 7b  his.isPopover) {
1ab0: 0a 20 20 20 20 20 20 24 28 74 68 69 73 2e 72 6f  .      $(this.ro
1ac0: 6f 74 29 2e 6f 6e 28 27 72 65 73 69 7a 65 2e 63  ot).on('resize.c
1ad0: 6f 6c 6f 72 70 69 63 6b 65 72 27 2c 20 24 2e 70  olorpicker', $.p
1ae0: 72 6f 78 79 28 74 68 69 73 2e 72 65 70 6f 73 69  roxy(this.reposi
1af0: 74 69 6f 6e 2c 20 74 68 69 73 29 29 3b 0a 20 20  tion, this));.  
1b00: 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 61 64 64 20    }..    // add 
1b10: 76 69 73 69 62 6c 65 20 63 6c 61 73 73 20 62 65  visible class be
1b20: 66 6f 72 65 20 70 6f 70 6f 76 65 72 20 69 73 20  fore popover is 
1b30: 73 68 6f 77 6e 0a 20 20 20 20 63 70 2e 70 69 63  shown.    cp.pic
1b40: 6b 65 72 2e 61 64 64 43 6c 61 73 73 28 27 63 6f  ker.addClass('co
1b50: 6c 6f 72 70 69 63 6b 65 72 2d 76 69 73 69 62 6c  lorpicker-visibl
1b60: 65 27 29 2e 72 65 6d 6f 76 65 43 6c 61 73 73 28  e').removeClass(
1b70: 27 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 68 69 64  'colorpicker-hid
1b80: 64 65 6e 27 29 3b 0a 0a 20 20 20 20 69 66 20 28  den');..    if (
1b90: 74 68 69 73 2e 70 6f 70 6f 76 65 72 54 61 72 67  this.popoverTarg
1ba0: 65 74 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73  et) {.      this
1bb0: 2e 70 6f 70 6f 76 65 72 54 61 72 67 65 74 2e 70  .popoverTarget.p
1bc0: 6f 70 6f 76 65 72 28 27 73 68 6f 77 27 29 3b 0a  opover('show');.
1bd0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20      } else {.   
1be0: 20 20 20 74 68 69 73 2e 66 69 72 65 53 68 6f 77     this.fireShow
1bf0: 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20  ();.    }.  }.. 
1c00: 20 66 69 72 65 53 68 6f 77 28 29 20 7b 0a 20 20   fireShow() {.  
1c10: 20 20 74 68 69 73 2e 68 69 64 64 69 6e 67 20 3d    this.hidding =
1c20: 20 66 61 6c 73 65 3b 0a 20 20 20 20 74 68 69 73   false;.    this
1c30: 2e 73 68 6f 77 69 6e 67 20 3d 20 66 61 6c 73 65  .showing = false
1c40: 3b 0a 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e  ;..    if (this.
1c50: 69 73 50 6f 70 6f 76 65 72 29 20 7b 0a 20 20 20  isPopover) {.   
1c60: 20 20 20 2f 2f 20 41 64 64 20 65 76 65 6e 74 20     // Add event 
1c70: 74 6f 20 68 69 64 65 20 6f 6e 20 6f 75 74 73 69  to hide on outsi
1c80: 64 65 20 63 6c 69 63 6b 0a 20 20 20 20 20 20 24  de click.      $
1c90: 28 74 68 69 73 2e 72 6f 6f 74 2e 64 6f 63 75 6d  (this.root.docum
1ca0: 65 6e 74 29 2e 6f 6e 28 27 6d 6f 75 73 65 64 6f  ent).on('mousedo
1cb0: 77 6e 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 20 74  wn.colorpicker t
1cc0: 6f 75 63 68 73 74 61 72 74 2e 63 6f 6c 6f 72 70  ouchstart.colorp
1cd0: 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78 79 28  icker', $.proxy(
1ce0: 74 68 69 73 2e 68 69 64 65 2c 20 74 68 69 73 29  this.hide, this)
1cf0: 29 3b 0a 20 20 20 20 20 20 24 28 74 68 69 73 2e  );.      $(this.
1d00: 72 6f 6f 74 2e 64 6f 63 75 6d 65 6e 74 29 2e 6f  root.document).o
1d10: 6e 28 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f 6c  n('mousedown.col
1d20: 6f 72 70 69 63 6b 65 72 20 74 6f 75 63 68 73 74  orpicker touchst
1d30: 61 72 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27  art.colorpicker'
1d40: 2c 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 6f  , $.proxy(this.o
1d50: 6e 43 6c 69 63 6b 69 6e 67 49 6e 73 69 64 65 2c  nClickingInside,
1d60: 20 74 68 69 73 29 29 3b 0a 20 20 20 20 7d 0a 0a   this));.    }..
1d70: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 28      /**.     * (
1d80: 43 6f 6c 6f 72 70 69 63 6b 65 72 29 20 57 68 65  Colorpicker) Whe
1d90: 6e 20 73 68 6f 77 28 29 20 69 73 20 63 61 6c 6c  n show() is call
1da0: 65 64 20 61 6e 64 20 74 68 65 20 77 69 64 67 65  ed and the widge
1db0: 74 20 63 61 6e 20 62 65 20 73 68 6f 77 6e 2e 0a  t can be shown..
1dc0: 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 65       *.     * @e
1dd0: 76 65 6e 74 20 43 6f 6c 6f 72 70 69 63 6b 65 72  vent Colorpicker
1de0: 23 63 6f 6c 6f 72 70 69 63 6b 65 72 53 68 6f 77  #colorpickerShow
1df0: 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 74 68 69  .     */.    thi
1e00: 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 74 72  s.colorpicker.tr
1e10: 69 67 67 65 72 28 27 63 6f 6c 6f 72 70 69 63 6b  igger('colorpick
1e20: 65 72 53 68 6f 77 27 29 3b 0a 20 20 7d 0a 0a 20  erShow');.  }.. 
1e30: 20 2f 2a 2a 0a 20 20 20 2a 20 48 69 64 65 73 20   /**.   * Hides 
1e40: 74 68 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20  the colorpicker 
1e50: 77 69 64 67 65 74 2e 0a 20 20 20 2a 20 48 69 64  widget..   * Hid
1e60: 65 20 69 73 20 70 72 65 76 65 6e 74 65 64 20 77  e is prevented w
1e70: 68 65 6e 20 69 74 20 69 73 20 74 72 69 67 67 65  hen it is trigge
1e80: 72 65 64 20 62 79 20 61 6e 20 65 76 65 6e 74 20  red by an event 
1e90: 77 68 6f 73 65 20 74 61 72 67 65 74 20 65 6c 65  whose target ele
1ea0: 6d 65 6e 74 20 68 61 73 20 62 65 65 6e 20 63 6c  ment has been cl
1eb0: 69 63 6b 65 64 2f 74 6f 75 63 68 65 64 2e 0a 20  icked/touched.. 
1ec0: 20 20 2a 0a 20 20 20 2a 20 40 66 69 72 65 73 20    *.   * @fires 
1ed0: 43 6f 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c 6f  Colorpicker#colo
1ee0: 72 70 69 63 6b 65 72 48 69 64 65 0a 20 20 20 2a  rpickerHide.   *
1ef0: 20 40 70 61 72 61 6d 20 7b 45 76 65 6e 74 7d 20   @param {Event} 
1f00: 5b 65 5d 0a 20 20 20 2a 2f 0a 20 20 68 69 64 65  [e].   */.  hide
1f10: 28 65 29 20 7b 0a 20 20 20 20 69 66 20 28 74 68  (e) {.    if (th
1f20: 69 73 2e 69 73 48 69 64 64 65 6e 28 29 20 7c 7c  is.isHidden() ||
1f30: 20 74 68 69 73 2e 73 68 6f 77 69 6e 67 20 7c 7c   this.showing ||
1f40: 20 74 68 69 73 2e 68 69 64 64 69 6e 67 29 20 7b   this.hidding) {
1f50: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20  .      return;. 
1f60: 20 20 20 7d 0a 0a 20 20 20 20 6c 65 74 20 63 70     }..    let cp
1f70: 20 3d 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63   = this.colorpic
1f80: 6b 65 72 2c 20 63 6c 69 63 6b 69 6e 67 20 3d 20  ker, clicking = 
1f90: 28 74 68 69 73 2e 63 6c 69 63 6b 69 6e 67 20 7c  (this.clicking |
1fa0: 7c 20 74 68 69 73 2e 69 73 43 6c 69 63 6b 69 6e  | this.isClickin
1fb0: 67 49 6e 73 69 64 65 28 65 29 29 3b 0a 0a 20 20  gInside(e));..  
1fc0: 20 20 74 68 69 73 2e 68 69 64 64 69 6e 67 20 3d    this.hidding =
1fd0: 20 74 72 75 65 3b 0a 20 20 20 20 74 68 69 73 2e   true;.    this.
1fe0: 73 68 6f 77 69 6e 67 20 3d 20 66 61 6c 73 65 3b  showing = false;
1ff0: 0a 20 20 20 20 74 68 69 73 2e 63 6c 69 63 6b 69  .    this.clicki
2000: 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20  ng = false;..   
2010: 20 63 70 2e 6c 61 73 74 45 76 65 6e 74 2e 61 6c   cp.lastEvent.al
2020: 69 61 73 20 3d 20 27 68 69 64 65 27 3b 0a 20 20  ias = 'hide';.  
2030: 20 20 63 70 2e 6c 61 73 74 45 76 65 6e 74 2e 65    cp.lastEvent.e
2040: 20 3d 20 65 3b 0a 0a 20 20 20 20 2f 2f 20 54 4f   = e;..    // TO
2050: 44 4f 3a 20 66 69 78 20 68 61 76 69 6e 67 20 74  DO: fix having t
2060: 6f 20 63 6c 69 63 6b 20 74 77 69 63 65 20 6f 75  o click twice ou
2070: 74 73 69 64 65 20 77 68 65 6e 20 6c 6f 73 69 6e  tside when losin
2080: 67 20 66 6f 63 75 73 20 61 6e 64 20 6c 61 73 74  g focus and last
2090: 20 32 20 63 6c 69 63 6b 73 20 77 68 65 72 65 20   2 clicks where 
20a0: 69 6e 73 69 64 65 20 74 68 65 20 63 6f 6c 6f 72  inside the color
20b0: 70 69 63 6b 65 72 0a 0a 20 20 20 20 2f 2f 20 50  picker..    // P
20c0: 72 65 76 65 6e 74 20 68 69 64 65 20 69 66 20 74  revent hide if t
20d0: 72 69 67 67 65 72 65 64 20 62 79 20 61 6e 20 65  riggered by an e
20e0: 76 65 6e 74 20 61 6e 64 20 61 6e 20 65 6c 65 6d  vent and an elem
20f0: 65 6e 74 20 69 6e 73 69 64 65 20 74 68 65 20 63  ent inside the c
2100: 6f 6c 6f 72 70 69 63 6b 65 72 20 68 61 73 20 62  olorpicker has b
2110: 65 65 6e 20 63 6c 69 63 6b 65 64 2f 74 6f 75 63  een clicked/touc
2120: 68 65 64 0a 20 20 20 20 69 66 20 28 63 6c 69 63  hed.    if (clic
2130: 6b 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 74 68  king) {.      th
2140: 69 73 2e 68 69 64 64 69 6e 67 20 3d 20 66 61 6c  is.hidding = fal
2150: 73 65 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e  se;.      return
2160: 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20  ;.    }..    if 
2170: 28 74 68 69 73 2e 70 6f 70 6f 76 65 72 54 61 72  (this.popoverTar
2180: 67 65 74 29 20 7b 0a 20 20 20 20 20 20 74 68 69  get) {.      thi
2190: 73 2e 70 6f 70 6f 76 65 72 54 61 72 67 65 74 2e  s.popoverTarget.
21a0: 70 6f 70 6f 76 65 72 28 27 68 69 64 65 27 29 3b  popover('hide');
21b0: 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20  .    } else {.  
21c0: 20 20 20 20 74 68 69 73 2e 66 69 72 65 48 69 64      this.fireHid
21d0: 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a  e();.    }.  }..
21e0: 20 20 66 69 72 65 48 69 64 65 28 29 20 7b 0a 20    fireHide() {. 
21f0: 20 20 20 74 68 69 73 2e 68 69 64 64 69 6e 67 20     this.hidding 
2200: 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 74 68 69  = false;.    thi
2210: 73 2e 73 68 6f 77 69 6e 67 20 3d 20 66 61 6c 73  s.showing = fals
2220: 65 3b 0a 0a 20 20 20 20 6c 65 74 20 63 70 20 3d  e;..    let cp =
2230: 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65   this.colorpicke
2240: 72 3b 0a 0a 20 20 20 20 2f 2f 20 61 64 64 20 68  r;..    // add h
2250: 69 64 64 65 6e 20 63 6c 61 73 73 20 61 66 74 65  idden class afte
2260: 72 20 70 6f 70 6f 76 65 72 20 69 73 20 68 69 64  r popover is hid
2270: 64 65 6e 0a 20 20 20 20 63 70 2e 70 69 63 6b 65  den.    cp.picke
2280: 72 2e 61 64 64 43 6c 61 73 73 28 27 63 6f 6c 6f  r.addClass('colo
2290: 72 70 69 63 6b 65 72 2d 68 69 64 64 65 6e 27 29  rpicker-hidden')
22a0: 2e 72 65 6d 6f 76 65 43 6c 61 73 73 28 27 63 6f  .removeClass('co
22b0: 6c 6f 72 70 69 63 6b 65 72 2d 76 69 73 69 62 6c  lorpicker-visibl
22c0: 65 27 29 3b 0a 0a 20 20 20 20 2f 2f 20 55 6e 62  e');..    // Unb
22d0: 69 6e 64 20 77 69 6e 64 6f 77 20 61 6e 64 20 64  ind window and d
22e0: 6f 63 75 6d 65 6e 74 20 65 76 65 6e 74 73 2c 20  ocument events, 
22f0: 73 69 6e 63 65 20 74 68 65 72 65 20 69 73 20 6e  since there is n
2300: 6f 20 6e 65 65 64 20 74 6f 20 6b 65 65 70 20 74  o need to keep t
2310: 68 65 6d 20 77 68 69 6c 65 20 74 68 65 20 70 6f  hem while the po
2320: 70 75 70 20 69 73 20 68 69 64 64 65 6e 0a 20 20  pup is hidden.  
2330: 20 20 24 28 74 68 69 73 2e 72 6f 6f 74 29 2e 6f    $(this.root).o
2340: 66 66 28 27 72 65 73 69 7a 65 2e 63 6f 6c 6f 72  ff('resize.color
2350: 70 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78 79  picker', $.proxy
2360: 28 74 68 69 73 2e 72 65 70 6f 73 69 74 69 6f 6e  (this.reposition
2370: 2c 20 74 68 69 73 29 29 3b 0a 20 20 20 20 24 28  , this));.    $(
2380: 74 68 69 73 2e 72 6f 6f 74 2e 64 6f 63 75 6d 65  this.root.docume
2390: 6e 74 29 2e 6f 66 66 28 27 6d 6f 75 73 65 64 6f  nt).off('mousedo
23a0: 77 6e 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 20 74  wn.colorpicker t
23b0: 6f 75 63 68 73 74 61 72 74 2e 63 6f 6c 6f 72 70  ouchstart.colorp
23c0: 69 63 6b 65 72 27 2c 20 24 2e 70 72 6f 78 79 28  icker', $.proxy(
23d0: 74 68 69 73 2e 68 69 64 65 2c 20 74 68 69 73 29  this.hide, this)
23e0: 29 3b 0a 20 20 20 20 24 28 74 68 69 73 2e 72 6f  );.    $(this.ro
23f0: 6f 74 2e 64 6f 63 75 6d 65 6e 74 29 2e 6f 66 66  ot.document).off
2400: 28 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f 6c 6f  ('mousedown.colo
2410: 72 70 69 63 6b 65 72 20 74 6f 75 63 68 73 74 61  rpicker touchsta
2420: 72 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27 2c  rt.colorpicker',
2430: 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 6f 6e   $.proxy(this.on
2440: 43 6c 69 63 6b 69 6e 67 49 6e 73 69 64 65 2c 20  ClickingInside, 
2450: 74 68 69 73 29 29 3b 0a 0a 20 20 20 20 2f 2a 2a  this));..    /**
2460: 0a 20 20 20 20 20 2a 20 28 43 6f 6c 6f 72 70 69  .     * (Colorpi
2470: 63 6b 65 72 29 20 57 68 65 6e 20 68 69 64 65 28  cker) When hide(
2480: 29 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 64 20  ) is called and 
2490: 74 68 65 20 77 69 64 67 65 74 20 63 61 6e 20 62  the widget can b
24a0: 65 20 68 69 64 64 65 6e 2e 0a 20 20 20 20 20 2a  e hidden..     *
24b0: 0a 20 20 20 20 20 2a 20 40 65 76 65 6e 74 20 43  .     * @event C
24c0: 6f 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c 6f 72  olorpicker#color
24d0: 70 69 63 6b 65 72 48 69 64 65 0a 20 20 20 20 20  pickerHide.     
24e0: 2a 2f 0a 20 20 20 20 63 70 2e 74 72 69 67 67 65  */.    cp.trigge
24f0: 72 28 27 63 6f 6c 6f 72 70 69 63 6b 65 72 48 69  r('colorpickerHi
2500: 64 65 27 29 3b 0a 20 20 7d 0a 0a 20 20 66 6f 63  de');.  }..  foc
2510: 75 73 28 29 20 7b 0a 20 20 20 20 69 66 20 28 74  us() {.    if (t
2520: 68 69 73 2e 68 61 73 41 64 64 6f 6e 29 20 7b 0a  his.hasAddon) {.
2530: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69        return thi
2540: 73 2e 61 64 64 6f 6e 2e 66 6f 63 75 73 28 29 3b  s.addon.focus();
2550: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 74  .    }.    if (t
2560: 68 69 73 2e 68 61 73 49 6e 70 75 74 29 20 7b 0a  his.hasInput) {.
2570: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69        return thi
2580: 73 2e 69 6e 70 75 74 2e 66 6f 63 75 73 28 29 3b  s.input.focus();
2590: 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72  .    }.    retur
25a0: 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 0a 20 20  n false;.  }..  
25b0: 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73  /**.   * Returns
25c0: 20 74 72 75 65 20 69 66 20 74 68 65 20 63 6f 6c   true if the col
25d0: 6f 72 70 69 63 6b 65 72 20 65 6c 65 6d 65 6e 74  orpicker element
25e0: 20 68 61 73 20 74 68 65 20 63 6f 6c 6f 72 70 69   has the colorpi
25f0: 63 6b 65 72 2d 76 69 73 69 62 6c 65 20 63 6c 61  cker-visible cla
2600: 73 73 20 61 6e 64 20 6e 6f 74 20 74 68 65 20 63  ss and not the c
2610: 6f 6c 6f 72 70 69 63 6b 65 72 2d 68 69 64 64 65  olorpicker-hidde
2620: 6e 20 6f 6e 65 2e 0a 20 20 20 2a 20 46 61 6c 73  n one..   * Fals
2630: 65 20 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 20  e otherwise..   
2640: 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20  *.   * @returns 
2650: 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 2a 2f 0a  {boolean}.   */.
2660: 20 20 69 73 56 69 73 69 62 6c 65 28 29 20 7b 0a    isVisible() {.
2670: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e      return this.
2680: 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 70 69 63 6b  colorpicker.pick
2690: 65 72 2e 68 61 73 43 6c 61 73 73 28 27 63 6f 6c  er.hasClass('col
26a0: 6f 72 70 69 63 6b 65 72 2d 76 69 73 69 62 6c 65  orpicker-visible
26b0: 27 29 20 26 26 0a 20 20 20 20 20 20 21 74 68 69  ') &&.      !thi
26c0: 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 70 69  s.colorpicker.pi
26d0: 63 6b 65 72 2e 68 61 73 43 6c 61 73 73 28 27 63  cker.hasClass('c
26e0: 6f 6c 6f 72 70 69 63 6b 65 72 2d 68 69 64 64 65  olorpicker-hidde
26f0: 6e 27 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a  n');.  }..  /**.
2700: 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 72 75     * Returns tru
2710: 65 20 69 66 20 74 68 65 20 63 6f 6c 6f 72 70 69  e if the colorpi
2720: 63 6b 65 72 20 65 6c 65 6d 65 6e 74 20 68 61 73  cker element has
2730: 20 74 68 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72   the colorpicker
2740: 2d 68 69 64 64 65 6e 20 63 6c 61 73 73 20 61 6e  -hidden class an
2750: 64 20 6e 6f 74 20 74 68 65 20 63 6f 6c 6f 72 70  d not the colorp
2760: 69 63 6b 65 72 2d 76 69 73 69 62 6c 65 20 6f 6e  icker-visible on
2770: 65 2e 0a 20 20 20 2a 20 46 61 6c 73 65 20 6f 74  e..   * False ot
2780: 68 65 72 77 69 73 65 2e 0a 20 20 20 2a 0a 20 20  herwise..   *.  
2790: 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 62 6f 6f   * @returns {boo
27a0: 6c 65 61 6e 7d 0a 20 20 20 2a 2f 0a 20 20 69 73  lean}.   */.  is
27b0: 48 69 64 64 65 6e 28 29 20 7b 0a 20 20 20 20 72  Hidden() {.    r
27c0: 65 74 75 72 6e 20 74 68 69 73 2e 63 6f 6c 6f 72  eturn this.color
27d0: 70 69 63 6b 65 72 2e 70 69 63 6b 65 72 2e 68 61  picker.picker.ha
27e0: 73 43 6c 61 73 73 28 27 63 6f 6c 6f 72 70 69 63  sClass('colorpic
27f0: 6b 65 72 2d 68 69 64 64 65 6e 27 29 20 26 26 0a  ker-hidden') &&.
2800: 20 20 20 20 20 20 21 74 68 69 73 2e 63 6f 6c 6f        !this.colo
2810: 72 70 69 63 6b 65 72 2e 70 69 63 6b 65 72 2e 68  rpicker.picker.h
2820: 61 73 43 6c 61 73 73 28 27 63 6f 6c 6f 72 70 69  asClass('colorpi
2830: 63 6b 65 72 2d 76 69 73 69 62 6c 65 27 29 3b 0a  cker-visible');.
2840: 20 20 7d 0a 7d 0a 0a 65 78 70 6f 72 74 20 64 65    }.}..export de
2850: 66 61 75 6c 74 20 50 6f 70 75 70 48 61 6e 64 6c  fault PopupHandl
2860: 65 72 3b 0a                                      er;.