⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact f19dfa9650aeaa002e120224b6f7dd9bc0ae229d37a505ea7a6654f9ffa9bac0:


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 45 78 74 65 6e 73 69 6f 6e 20  mport Extension 
0020: 66 72 6f 6d 20 27 2e 2f 45 78 74 65 6e 73 69 6f  from './Extensio
0030: 6e 27 3b 0a 69 6d 70 6f 72 74 20 64 65 66 61 75  n';.import defau
0040: 6c 74 73 20 66 72 6f 6d 20 27 2e 2f 6f 70 74 69  lts from './opti
0050: 6f 6e 73 27 3b 0a 69 6d 70 6f 72 74 20 63 6f 72  ons';.import cor
0060: 65 45 78 74 65 6e 73 69 6f 6e 73 20 66 72 6f 6d  eExtensions from
0070: 20 27 65 78 74 65 6e 73 69 6f 6e 73 27 3b 0a 69   'extensions';.i
0080: 6d 70 6f 72 74 20 24 20 66 72 6f 6d 20 27 6a 71  mport $ from 'jq
0090: 75 65 72 79 27 3b 0a 69 6d 70 6f 72 74 20 53 6c  uery';.import Sl
00a0: 69 64 65 72 48 61 6e 64 6c 65 72 20 66 72 6f 6d  iderHandler from
00b0: 20 27 2e 2f 53 6c 69 64 65 72 48 61 6e 64 6c 65   './SliderHandle
00c0: 72 27 3b 0a 69 6d 70 6f 72 74 20 50 6f 70 75 70  r';.import Popup
00d0: 48 61 6e 64 6c 65 72 20 66 72 6f 6d 20 27 2e 2f  Handler from './
00e0: 50 6f 70 75 70 48 61 6e 64 6c 65 72 27 3b 0a 69  PopupHandler';.i
00f0: 6d 70 6f 72 74 20 49 6e 70 75 74 48 61 6e 64 6c  mport InputHandl
0100: 65 72 20 66 72 6f 6d 20 27 2e 2f 49 6e 70 75 74  er from './Input
0110: 48 61 6e 64 6c 65 72 27 3b 0a 69 6d 70 6f 72 74  Handler';.import
0120: 20 43 6f 6c 6f 72 48 61 6e 64 6c 65 72 20 66 72   ColorHandler fr
0130: 6f 6d 20 27 2e 2f 43 6f 6c 6f 72 48 61 6e 64 6c  om './ColorHandl
0140: 65 72 27 3b 0a 69 6d 70 6f 72 74 20 50 69 63 6b  er';.import Pick
0150: 65 72 48 61 6e 64 6c 65 72 20 66 72 6f 6d 20 27  erHandler from '
0160: 2e 2f 50 69 63 6b 65 72 48 61 6e 64 6c 65 72 27  ./PickerHandler'
0170: 3b 0a 69 6d 70 6f 72 74 20 41 64 64 6f 6e 48 61  ;.import AddonHa
0180: 6e 64 6c 65 72 20 66 72 6f 6d 20 27 2e 2f 41 64  ndler from './Ad
0190: 64 6f 6e 48 61 6e 64 6c 65 72 27 3b 0a 69 6d 70  donHandler';.imp
01a0: 6f 72 74 20 43 6f 6c 6f 72 49 74 65 6d 20 66 72  ort ColorItem fr
01b0: 6f 6d 20 27 2e 2f 43 6f 6c 6f 72 49 74 65 6d 27  om './ColorItem'
01c0: 3b 0a 0a 6c 65 74 20 63 6f 6c 6f 72 50 69 63 6b  ;..let colorPick
01d0: 65 72 49 64 43 6f 75 6e 74 65 72 20 3d 20 30 3b  erIdCounter = 0;
01e0: 0a 6c 65 74 20 72 6f 6f 74 20 3d 20 28 74 79 70  .let root = (typ
01f0: 65 6f 66 20 73 65 6c 66 20 21 3d 3d 20 27 75 6e  eof self !== 'un
0200: 64 65 66 69 6e 65 64 27 20 3f 20 73 65 6c 66 20  defined' ? self 
0210: 3a 20 74 68 69 73 29 3b 20 2f 2f 20 77 69 6e 64  : this); // wind
0220: 6f 77 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6c 6f 72  ow../**. * Color
0230: 70 69 63 6b 65 72 20 77 69 64 67 65 74 20 63 6c  picker widget cl
0240: 61 73 73 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6f  ass. */.class Co
0250: 6c 6f 72 70 69 63 6b 65 72 20 7b 0a 20 20 2f 2a  lorpicker {.  /*
0260: 2a 0a 20 20 20 2a 20 43 6f 6c 6f 72 20 63 6c 61  *.   * Color cla
0270: 73 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 73 74  ss.   *.   * @st
0280: 61 74 69 63 0a 20 20 20 2a 20 40 74 79 70 65 20  atic.   * @type 
0290: 7b 43 6f 6c 6f 72 7d 0a 20 20 20 2a 2f 0a 20 20  {Color}.   */.  
02a0: 73 74 61 74 69 63 20 67 65 74 20 43 6f 6c 6f 72  static get Color
02b0: 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20  () {.    return 
02c0: 43 6f 6c 6f 72 49 74 65 6d 3b 0a 20 20 7d 0a 0a  ColorItem;.  }..
02d0: 20 20 2f 2a 2a 0a 20 20 20 2a 20 45 78 74 65 6e    /**.   * Exten
02e0: 73 69 6f 6e 20 63 6c 61 73 73 0a 20 20 20 2a 0a  sion class.   *.
02f0: 20 20 20 2a 20 40 73 74 61 74 69 63 0a 20 20 20     * @static.   
0300: 2a 20 40 74 79 70 65 20 7b 45 78 74 65 6e 73 69  * @type {Extensi
0310: 6f 6e 7d 0a 20 20 20 2a 2f 0a 20 20 73 74 61 74  on}.   */.  stat
0320: 69 63 20 67 65 74 20 45 78 74 65 6e 73 69 6f 6e  ic get Extension
0330: 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20  () {.    return 
0340: 45 78 74 65 6e 73 69 6f 6e 3b 0a 20 20 7d 0a 0a  Extension;.  }..
0350: 20 20 2f 2a 2a 0a 20 20 20 2a 20 49 6e 74 65 72    /**.   * Inter
0360: 6e 61 6c 20 63 6f 6c 6f 72 20 6f 62 6a 65 63 74  nal color object
0370: 0a 20 20 20 2a 0a 20 20 20 2a 20 40 74 79 70 65  .   *.   * @type
0380: 20 7b 43 6f 6c 6f 72 7c 6e 75 6c 6c 7d 0a 20 20   {Color|null}.  
0390: 20 2a 2f 0a 20 20 67 65 74 20 63 6f 6c 6f 72 28   */.  get color(
03a0: 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74  ) {.    return t
03b0: 68 69 73 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72  his.colorHandler
03c0: 2e 63 6f 6c 6f 72 3b 0a 20 20 7d 0a 0a 20 20 2f  .color;.  }..  /
03d0: 2a 2a 0a 20 20 20 2a 20 49 6e 74 65 72 6e 61 6c  **.   * Internal
03e0: 20 63 6f 6c 6f 72 20 66 6f 72 6d 61 74 0a 20 20   color format.  
03f0: 20 2a 0a 20 20 20 2a 20 40 74 79 70 65 20 7b 53   *.   * @type {S
0400: 74 72 69 6e 67 7c 6e 75 6c 6c 7d 0a 20 20 20 2a  tring|null}.   *
0410: 2f 0a 20 20 67 65 74 20 66 6f 72 6d 61 74 28 29  /.  get format()
0420: 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68   {.    return th
0430: 69 73 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 2e  is.colorHandler.
0440: 66 6f 72 6d 61 74 3b 0a 20 20 7d 0a 0a 20 20 2f  format;.  }..  /
0450: 2a 2a 0a 20 20 20 2a 20 47 65 74 74 65 72 20 6f  **.   * Getter o
0460: 66 20 74 68 65 20 70 69 63 6b 65 72 20 65 6c 65  f the picker ele
0470: 6d 65 6e 74 0a 20 20 20 2a 0a 20 20 20 2a 20 40  ment.   *.   * @
0480: 72 65 74 75 72 6e 73 20 7b 6a 51 75 65 72 79 7c  returns {jQuery|
0490: 48 54 4d 4c 45 6c 65 6d 65 6e 74 7d 0a 20 20 20  HTMLElement}.   
04a0: 2a 2f 0a 20 20 67 65 74 20 70 69 63 6b 65 72 28  */.  get picker(
04b0: 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74  ) {.    return t
04c0: 68 69 73 2e 70 69 63 6b 65 72 48 61 6e 64 6c 65  his.pickerHandle
04d0: 72 2e 70 69 63 6b 65 72 3b 0a 20 20 7d 0a 0a 20  r.picker;.  }.. 
04e0: 20 2f 2a 2a 0a 20 20 20 2a 20 40 66 69 72 65 73   /**.   * @fires
04f0: 20 43 6f 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c   Colorpicker#col
0500: 6f 72 70 69 63 6b 65 72 43 72 65 61 74 65 0a 20  orpickerCreate. 
0510: 20 20 2a 20 40 70 61 72 61 6d 20 7b 4f 62 6a 65    * @param {Obje
0520: 63 74 7c 53 74 72 69 6e 67 7d 20 65 6c 65 6d 65  ct|String} eleme
0530: 6e 74 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b  nt.   * @param {
0540: 4f 62 6a 65 63 74 7d 20 6f 70 74 69 6f 6e 73 0a  Object} options.
0550: 20 20 20 2a 20 40 63 6f 6e 73 74 72 75 63 74 6f     * @constructo
0560: 72 0a 20 20 20 2a 2f 0a 20 20 63 6f 6e 73 74 72  r.   */.  constr
0570: 75 63 74 6f 72 28 65 6c 65 6d 65 6e 74 2c 20 6f  uctor(element, o
0580: 70 74 69 6f 6e 73 29 20 7b 0a 20 20 20 20 63 6f  ptions) {.    co
0590: 6c 6f 72 50 69 63 6b 65 72 49 64 43 6f 75 6e 74  lorPickerIdCount
05a0: 65 72 20 2b 3d 20 31 3b 0a 20 20 20 20 2f 2a 2a  er += 1;.    /**
05b0: 0a 20 20 20 20 20 2a 20 54 68 65 20 63 6f 6c 6f  .     * The colo
05c0: 72 70 69 63 6b 65 72 20 69 6e 73 74 61 6e 63 65  rpicker instance
05d0: 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 2a 20 40   number.     * @
05e0: 74 79 70 65 20 7b 6e 75 6d 62 65 72 7d 0a 20 20  type {number}.  
05f0: 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 69     */.    this.i
0600: 64 20 3d 20 63 6f 6c 6f 72 50 69 63 6b 65 72 49  d = colorPickerI
0610: 64 43 6f 75 6e 74 65 72 3b 0a 0a 20 20 20 20 2f  dCounter;..    /
0620: 2a 2a 0a 20 20 20 20 20 2a 20 4c 61 74 65 73 74  **.     * Latest
0630: 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20 65 76 65   colorpicker eve
0640: 6e 74 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a  nt.     *.     *
0650: 20 40 74 79 70 65 20 7b 7b 6e 61 6d 65 3a 20 53   @type {{name: S
0660: 74 72 69 6e 67 2c 20 65 3a 20 2a 7d 7d 0a 20 20  tring, e: *}}.  
0670: 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 6c     */.    this.l
0680: 61 73 74 45 76 65 6e 74 20 3d 20 7b 0a 20 20 20  astEvent = {.   
0690: 20 20 20 61 6c 69 61 73 3a 20 6e 75 6c 6c 2c 0a     alias: null,.
06a0: 20 20 20 20 20 20 65 3a 20 6e 75 6c 6c 0a 20 20        e: null.  
06b0: 20 20 7d 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20    };..    /**.  
06c0: 20 20 20 2a 20 54 68 65 20 65 6c 65 6d 65 6e 74     * The element
06d0: 20 74 68 61 74 20 74 68 65 20 63 6f 6c 6f 72 70   that the colorp
06e0: 69 63 6b 65 72 20 69 73 20 62 6f 75 6e 64 20 74  icker is bound t
06f0: 6f 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20  o.     *.     * 
0700: 40 74 79 70 65 20 7b 2a 7c 6a 51 75 65 72 79 7d  @type {*|jQuery}
0710: 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 74 68 69  .     */.    thi
0720: 73 2e 65 6c 65 6d 65 6e 74 20 3d 20 24 28 65 6c  s.element = $(el
0730: 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 2e 61 64  ement).      .ad
0740: 64 43 6c 61 73 73 28 27 63 6f 6c 6f 72 70 69 63  dClass('colorpic
0750: 6b 65 72 2d 65 6c 65 6d 65 6e 74 27 29 0a 20 20  ker-element').  
0760: 20 20 20 20 2e 61 74 74 72 28 27 64 61 74 61 2d      .attr('data-
0770: 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 69 64 27 2c  colorpicker-id',
0780: 20 74 68 69 73 2e 69 64 29 3b 0a 0a 20 20 20 20   this.id);..    
0790: 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 65  /**.     * @type
07a0: 20 7b 64 65 66 61 75 6c 74 73 7d 0a 20 20 20 20   {defaults}.    
07b0: 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 6f 70 74   */.    this.opt
07c0: 69 6f 6e 73 20 3d 20 24 2e 65 78 74 65 6e 64 28  ions = $.extend(
07d0: 74 72 75 65 2c 20 7b 7d 2c 20 64 65 66 61 75 6c  true, {}, defaul
07e0: 74 73 2c 20 6f 70 74 69 6f 6e 73 2c 20 74 68 69  ts, options, thi
07f0: 73 2e 65 6c 65 6d 65 6e 74 2e 64 61 74 61 28 29  s.element.data()
0800: 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20  );..    /**.    
0810: 20 2a 20 40 74 79 70 65 20 7b 62 6f 6f 6c 65 61   * @type {boolea
0820: 6e 7d 0a 20 20 20 20 20 2a 20 40 70 72 69 76 61  n}.     * @priva
0830: 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 74  te.     */.    t
0840: 68 69 73 2e 64 69 73 61 62 6c 65 64 20 3d 20 66  his.disabled = f
0850: 61 6c 73 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20  alse;..    /**. 
0860: 20 20 20 20 2a 20 45 78 74 65 6e 73 69 6f 6e 73      * Extensions
0870: 20 61 64 64 65 64 20 74 6f 20 74 68 69 73 20 69   added to this i
0880: 6e 73 74 61 6e 63 65 0a 20 20 20 20 20 2a 0a 20  nstance.     *. 
0890: 20 20 20 20 2a 20 40 74 79 70 65 20 7b 45 78 74      * @type {Ext
08a0: 65 6e 73 69 6f 6e 5b 5d 7d 0a 20 20 20 20 20 2a  ension[]}.     *
08b0: 2f 0a 20 20 20 20 74 68 69 73 2e 65 78 74 65 6e  /.    this.exten
08c0: 73 69 6f 6e 73 20 3d 20 5b 5d 3b 0a 0a 20 20 20  sions = [];..   
08d0: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 68 65 20   /**.     * The 
08e0: 65 6c 65 6d 65 6e 74 20 77 68 65 72 65 20 74 68  element where th
08f0: 65 0a 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b  e.     * @type {
0900: 2a 7c 6a 51 75 65 72 79 7d 0a 20 20 20 20 20 2a  *|jQuery}.     *
0910: 2f 0a 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 61  /.    this.conta
0920: 69 6e 65 72 20 3d 20 28 0a 20 20 20 20 20 20 74  iner = (.      t
0930: 68 69 73 2e 6f 70 74 69 6f 6e 73 2e 63 6f 6e 74  his.options.cont
0940: 61 69 6e 65 72 20 3d 3d 3d 20 74 72 75 65 20 7c  ainer === true |
0950: 7c 0a 20 20 20 20 20 20 28 74 68 69 73 2e 6f 70  |.      (this.op
0960: 74 69 6f 6e 73 2e 63 6f 6e 74 61 69 6e 65 72 20  tions.container 
0970: 21 3d 3d 20 74 72 75 65 20 26 26 20 74 68 69 73  !== true && this
0980: 2e 6f 70 74 69 6f 6e 73 2e 69 6e 6c 69 6e 65 20  .options.inline 
0990: 3d 3d 3d 20 74 72 75 65 29 0a 20 20 20 20 29 20  === true).    ) 
09a0: 3f 20 74 68 69 73 2e 65 6c 65 6d 65 6e 74 20 3a  ? this.element :
09b0: 20 74 68 69 73 2e 6f 70 74 69 6f 6e 73 2e 63 6f   this.options.co
09c0: 6e 74 61 69 6e 65 72 3b 0a 0a 20 20 20 20 74 68  ntainer;..    th
09d0: 69 73 2e 63 6f 6e 74 61 69 6e 65 72 20 3d 20 28  is.container = (
09e0: 74 68 69 73 2e 63 6f 6e 74 61 69 6e 65 72 20 21  this.container !
09f0: 3d 3d 20 66 61 6c 73 65 29 20 3f 20 24 28 74 68  == false) ? $(th
0a00: 69 73 2e 63 6f 6e 74 61 69 6e 65 72 29 20 3a 20  is.container) : 
0a10: 66 61 6c 73 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a  false;..    /**.
0a20: 20 20 20 20 20 2a 20 40 74 79 70 65 20 7b 49 6e       * @type {In
0a30: 70 75 74 48 61 6e 64 6c 65 72 7d 0a 20 20 20 20  putHandler}.    
0a40: 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 69 6e 70   */.    this.inp
0a50: 75 74 48 61 6e 64 6c 65 72 20 3d 20 6e 65 77 20  utHandler = new 
0a60: 49 6e 70 75 74 48 61 6e 64 6c 65 72 28 74 68 69  InputHandler(thi
0a70: 73 29 3b 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20  s);.    /**.    
0a80: 20 2a 20 40 74 79 70 65 20 7b 43 6f 6c 6f 72 48   * @type {ColorH
0a90: 61 6e 64 6c 65 72 7d 0a 20 20 20 20 20 2a 2f 0a  andler}.     */.
0aa0: 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72 48 61      this.colorHa
0ab0: 6e 64 6c 65 72 20 3d 20 6e 65 77 20 43 6f 6c 6f  ndler = new Colo
0ac0: 72 48 61 6e 64 6c 65 72 28 74 68 69 73 29 3b 0a  rHandler(this);.
0ad0: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40      /**.     * @
0ae0: 74 79 70 65 20 7b 53 6c 69 64 65 72 48 61 6e 64  type {SliderHand
0af0: 6c 65 72 7d 0a 20 20 20 20 20 2a 2f 0a 20 20 20  ler}.     */.   
0b00: 20 74 68 69 73 2e 73 6c 69 64 65 72 48 61 6e 64   this.sliderHand
0b10: 6c 65 72 20 3d 20 6e 65 77 20 53 6c 69 64 65 72  ler = new Slider
0b20: 48 61 6e 64 6c 65 72 28 74 68 69 73 29 3b 0a 20  Handler(this);. 
0b30: 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74     /**.     * @t
0b40: 79 70 65 20 7b 50 6f 70 75 70 48 61 6e 64 6c 65  ype {PopupHandle
0b50: 72 7d 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 74  r}.     */.    t
0b60: 68 69 73 2e 70 6f 70 75 70 48 61 6e 64 6c 65 72  his.popupHandler
0b70: 20 3d 20 6e 65 77 20 50 6f 70 75 70 48 61 6e 64   = new PopupHand
0b80: 6c 65 72 28 74 68 69 73 2c 20 72 6f 6f 74 29 3b  ler(this, root);
0b90: 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20  .    /**.     * 
0ba0: 40 74 79 70 65 20 7b 50 69 63 6b 65 72 48 61 6e  @type {PickerHan
0bb0: 64 6c 65 72 7d 0a 20 20 20 20 20 2a 2f 0a 20 20  dler}.     */.  
0bc0: 20 20 74 68 69 73 2e 70 69 63 6b 65 72 48 61 6e    this.pickerHan
0bd0: 64 6c 65 72 20 3d 20 6e 65 77 20 50 69 63 6b 65  dler = new Picke
0be0: 72 48 61 6e 64 6c 65 72 28 74 68 69 73 29 3b 0a  rHandler(this);.
0bf0: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40      /**.     * @
0c00: 74 79 70 65 20 7b 41 64 64 6f 6e 48 61 6e 64 6c  type {AddonHandl
0c10: 65 72 7d 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20  er}.     */.    
0c20: 74 68 69 73 2e 61 64 64 6f 6e 48 61 6e 64 6c 65  this.addonHandle
0c30: 72 20 3d 20 6e 65 77 20 41 64 64 6f 6e 48 61 6e  r = new AddonHan
0c40: 64 6c 65 72 28 74 68 69 73 29 3b 0a 0a 20 20 20  dler(this);..   
0c50: 20 74 68 69 73 2e 69 6e 69 74 28 29 3b 0a 0a 20   this.init();.. 
0c60: 20 20 20 2f 2f 20 45 6d 69 74 20 61 20 63 72 65     // Emit a cre
0c70: 61 74 65 20 65 76 65 6e 74 0a 20 20 20 20 24 28  ate event.    $(
0c80: 24 2e 70 72 6f 78 79 28 66 75 6e 63 74 69 6f 6e  $.proxy(function
0c90: 20 28 29 20 7b 0a 20 20 20 20 20 20 2f 2a 2a 0a   () {.      /**.
0ca0: 20 20 20 20 20 20 20 2a 20 28 43 6f 6c 6f 72 70         * (Colorp
0cb0: 69 63 6b 65 72 29 20 57 68 65 6e 20 74 68 65 20  icker) When the 
0cc0: 43 6f 6c 6f 72 70 69 63 6b 65 72 20 69 6e 73 74  Colorpicker inst
0cd0: 61 6e 63 65 20 68 61 73 20 62 65 65 6e 20 63 72  ance has been cr
0ce0: 65 61 74 65 64 20 61 6e 64 20 74 68 65 20 44 4f  eated and the DO
0cf0: 4d 20 69 73 20 72 65 61 64 79 2e 0a 20 20 20 20  M is ready..    
0d00: 20 20 20 2a 0a 20 20 20 20 20 20 20 2a 20 40 65     *.       * @e
0d10: 76 65 6e 74 20 43 6f 6c 6f 72 70 69 63 6b 65 72  vent Colorpicker
0d20: 23 63 6f 6c 6f 72 70 69 63 6b 65 72 43 72 65 61  #colorpickerCrea
0d30: 74 65 0a 20 20 20 20 20 20 20 2a 2f 0a 20 20 20  te.       */.   
0d40: 20 20 20 74 68 69 73 2e 74 72 69 67 67 65 72 28     this.trigger(
0d50: 27 63 6f 6c 6f 72 70 69 63 6b 65 72 43 72 65 61  'colorpickerCrea
0d60: 74 65 27 29 3b 0a 20 20 20 20 7d 2c 20 74 68 69  te');.    }, thi
0d70: 73 29 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a  s));.  }..  /**.
0d80: 20 20 20 2a 20 49 6e 69 74 69 61 6c 69 7a 65 73     * Initializes
0d90: 20 74 68 65 20 70 6c 75 67 69 6e 0a 20 20 20 2a   the plugin.   *
0da0: 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a 2f 0a   @private.   */.
0db0: 20 20 69 6e 69 74 28 29 20 7b 0a 20 20 20 20 2f    init() {.    /
0dc0: 2f 20 49 6e 69 74 20 61 64 64 6f 6e 0a 20 20 20  / Init addon.   
0dd0: 20 74 68 69 73 2e 61 64 64 6f 6e 48 61 6e 64 6c   this.addonHandl
0de0: 65 72 2e 62 69 6e 64 28 29 3b 0a 0a 20 20 20 20  er.bind();..    
0df0: 2f 2f 20 49 6e 69 74 20 69 6e 70 75 74 0a 20 20  // Init input.  
0e00: 20 20 74 68 69 73 2e 69 6e 70 75 74 48 61 6e 64    this.inputHand
0e10: 6c 65 72 2e 62 69 6e 64 28 29 3b 0a 0a 20 20 20  ler.bind();..   
0e20: 20 2f 2f 20 49 6e 69 74 20 65 78 74 65 6e 73 69   // Init extensi
0e30: 6f 6e 73 20 28 62 65 66 6f 72 65 20 69 6e 69 74  ons (before init
0e40: 69 61 6c 69 7a 69 6e 67 20 74 68 65 20 63 6f 6c  ializing the col
0e50: 6f 72 29 0a 20 20 20 20 74 68 69 73 2e 69 6e 69  or).    this.ini
0e60: 74 45 78 74 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a  tExtensions();..
0e70: 20 20 20 20 2f 2f 20 49 6e 69 74 20 63 6f 6c 6f      // Init colo
0e80: 72 0a 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72  r.    this.color
0e90: 48 61 6e 64 6c 65 72 2e 62 69 6e 64 28 29 3b 0a  Handler.bind();.
0ea0: 0a 20 20 20 20 2f 2f 20 49 6e 69 74 20 70 69 63  .    // Init pic
0eb0: 6b 65 72 0a 20 20 20 20 74 68 69 73 2e 70 69 63  ker.    this.pic
0ec0: 6b 65 72 48 61 6e 64 6c 65 72 2e 62 69 6e 64 28  kerHandler.bind(
0ed0: 29 3b 0a 0a 20 20 20 20 2f 2f 20 49 6e 69 74 20  );..    // Init 
0ee0: 73 6c 69 64 65 72 73 20 61 6e 64 20 70 6f 70 75  sliders and popu
0ef0: 70 0a 20 20 20 20 74 68 69 73 2e 73 6c 69 64 65  p.    this.slide
0f00: 72 48 61 6e 64 6c 65 72 2e 62 69 6e 64 28 29 3b  rHandler.bind();
0f10: 0a 20 20 20 20 74 68 69 73 2e 70 6f 70 75 70 48  .    this.popupH
0f20: 61 6e 64 6c 65 72 2e 62 69 6e 64 28 29 3b 0a 0a  andler.bind();..
0f30: 20 20 20 20 2f 2f 20 49 6e 6a 65 63 74 20 69 6e      // Inject in
0f40: 74 6f 20 74 68 65 20 44 4f 4d 20 28 74 68 69 73  to the DOM (this
0f50: 20 6d 61 79 20 6d 61 6b 65 20 69 74 20 76 69 73   may make it vis
0f60: 69 62 6c 65 29 0a 20 20 20 20 74 68 69 73 2e 70  ible).    this.p
0f70: 69 63 6b 65 72 48 61 6e 64 6c 65 72 2e 61 74 74  ickerHandler.att
0f80: 61 63 68 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 55  ach();..    // U
0f90: 70 64 61 74 65 20 61 6c 6c 20 63 6f 6d 70 6f 6e  pdate all compon
0fa0: 65 6e 74 73 0a 20 20 20 20 74 68 69 73 2e 75 70  ents.    this.up
0fb0: 64 61 74 65 28 29 3b 0a 0a 20 20 20 20 69 66 20  date();..    if 
0fc0: 28 74 68 69 73 2e 69 6e 70 75 74 48 61 6e 64 6c  (this.inputHandl
0fd0: 65 72 2e 69 73 44 69 73 61 62 6c 65 64 28 29 29  er.isDisabled())
0fe0: 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e 64 69   {.      this.di
0ff0: 73 61 62 6c 65 28 29 3b 0a 20 20 20 20 7d 0a 20  sable();.    }. 
1000: 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 49   }..  /**.   * I
1010: 6e 69 74 69 61 6c 69 7a 65 73 20 74 68 65 20 70  nitializes the p
1020: 6c 75 67 69 6e 20 65 78 74 65 6e 73 69 6f 6e 73  lugin extensions
1030: 0a 20 20 20 2a 20 40 70 72 69 76 61 74 65 0a 20  .   * @private. 
1040: 20 20 2a 2f 0a 20 20 69 6e 69 74 45 78 74 65 6e    */.  initExten
1050: 73 69 6f 6e 73 28 29 20 7b 0a 20 20 20 20 69 66  sions() {.    if
1060: 20 28 21 41 72 72 61 79 2e 69 73 41 72 72 61 79   (!Array.isArray
1070: 28 74 68 69 73 2e 6f 70 74 69 6f 6e 73 2e 65 78  (this.options.ex
1080: 74 65 6e 73 69 6f 6e 73 29 29 20 7b 0a 20 20 20  tensions)) {.   
1090: 20 20 20 74 68 69 73 2e 6f 70 74 69 6f 6e 73 2e     this.options.
10a0: 65 78 74 65 6e 73 69 6f 6e 73 20 3d 20 5b 5d 3b  extensions = [];
10b0: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28  .    }..    if (
10c0: 74 68 69 73 2e 6f 70 74 69 6f 6e 73 2e 64 65 62  this.options.deb
10d0: 75 67 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73  ug) {.      this
10e0: 2e 6f 70 74 69 6f 6e 73 2e 65 78 74 65 6e 73 69  .options.extensi
10f0: 6f 6e 73 2e 70 75 73 68 28 7b 6e 61 6d 65 3a 20  ons.push({name: 
1100: 27 64 65 62 75 67 67 65 72 27 7d 29 3b 0a 20 20  'debugger'});.  
1110: 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 52 65 67 69    }..    // Regi
1120: 73 74 65 72 20 61 6e 64 20 69 6e 73 74 61 6e 74  ster and instant
1130: 69 61 74 65 20 65 78 74 65 6e 73 69 6f 6e 73 0a  iate extensions.
1140: 20 20 20 20 74 68 69 73 2e 6f 70 74 69 6f 6e 73      this.options
1150: 2e 65 78 74 65 6e 73 69 6f 6e 73 2e 66 6f 72 45  .extensions.forE
1160: 61 63 68 28 28 65 78 74 29 20 3d 3e 20 7b 0a 20  ach((ext) => {. 
1170: 20 20 20 20 20 74 68 69 73 2e 72 65 67 69 73 74       this.regist
1180: 65 72 45 78 74 65 6e 73 69 6f 6e 28 43 6f 6c 6f  erExtension(Colo
1190: 72 70 69 63 6b 65 72 2e 65 78 74 65 6e 73 69 6f  rpicker.extensio
11a0: 6e 73 5b 65 78 74 2e 6e 61 6d 65 2e 74 6f 4c 6f  ns[ext.name.toLo
11b0: 77 65 72 43 61 73 65 28 29 5d 2c 20 65 78 74 2e  werCase()], ext.
11c0: 6f 70 74 69 6f 6e 73 20 7c 7c 20 7b 7d 29 3b 0a  options || {});.
11d0: 20 20 20 20 7d 29 3b 0a 20 20 7d 0a 0a 20 20 2f      });.  }..  /
11e0: 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 73 20  **.   * Creates 
11f0: 61 6e 64 20 72 65 67 69 73 74 65 72 73 20 74 68  and registers th
1200: 65 20 67 69 76 65 6e 20 65 78 74 65 6e 73 69 6f  e given extensio
1210: 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72  n.   *.   * @par
1220: 61 6d 20 7b 45 78 74 65 6e 73 69 6f 6e 7d 20 45  am {Extension} E
1230: 78 74 65 6e 73 69 6f 6e 43 6c 61 73 73 20 54 68  xtensionClass Th
1240: 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6c 61 73  e extension clas
1250: 73 20 74 6f 20 69 6e 73 74 61 6e 74 69 61 74 65  s to instantiate
1260: 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 4f 62  .   * @param {Ob
1270: 6a 65 63 74 7d 20 5b 63 6f 6e 66 69 67 5d 20 45  ject} [config] E
1280: 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 66 69 67 75  xtension configu
1290: 72 61 74 69 6f 6e 0a 20 20 20 2a 20 40 72 65 74  ration.   * @ret
12a0: 75 72 6e 73 20 7b 45 78 74 65 6e 73 69 6f 6e 7d  urns {Extension}
12b0: 0a 20 20 20 2a 2f 0a 20 20 72 65 67 69 73 74 65  .   */.  registe
12c0: 72 45 78 74 65 6e 73 69 6f 6e 28 45 78 74 65 6e  rExtension(Exten
12d0: 73 69 6f 6e 43 6c 61 73 73 2c 20 63 6f 6e 66 69  sionClass, confi
12e0: 67 20 3d 20 7b 7d 29 20 7b 0a 20 20 20 20 6c 65  g = {}) {.    le
12f0: 74 20 65 78 74 20 3d 20 6e 65 77 20 45 78 74 65  t ext = new Exte
1300: 6e 73 69 6f 6e 43 6c 61 73 73 28 74 68 69 73 2c  nsionClass(this,
1310: 20 63 6f 6e 66 69 67 29 3b 0a 0a 20 20 20 20 74   config);..    t
1320: 68 69 73 2e 65 78 74 65 6e 73 69 6f 6e 73 2e 70  his.extensions.p
1330: 75 73 68 28 65 78 74 29 3b 0a 20 20 20 20 72 65  ush(ext);.    re
1340: 74 75 72 6e 20 65 78 74 3b 0a 20 20 7d 0a 0a 20  turn ext;.  }.. 
1350: 20 2f 2a 2a 0a 20 20 20 2a 20 44 65 73 74 72 6f   /**.   * Destro
1360: 79 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 69  ys the current i
1370: 6e 73 74 61 6e 63 65 0a 20 20 20 2a 0a 20 20 20  nstance.   *.   
1380: 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69  * @fires Colorpi
1390: 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72  cker#colorpicker
13a0: 44 65 73 74 72 6f 79 0a 20 20 20 2a 2f 0a 20 20  Destroy.   */.  
13b0: 64 65 73 74 72 6f 79 28 29 20 7b 0a 20 20 20 20  destroy() {.    
13c0: 6c 65 74 20 63 6f 6c 6f 72 20 3d 20 74 68 69 73  let color = this
13d0: 2e 63 6f 6c 6f 72 3b 0a 0a 20 20 20 20 74 68 69  .color;..    thi
13e0: 73 2e 73 6c 69 64 65 72 48 61 6e 64 6c 65 72 2e  s.sliderHandler.
13f0: 75 6e 62 69 6e 64 28 29 3b 0a 20 20 20 20 74 68  unbind();.    th
1400: 69 73 2e 69 6e 70 75 74 48 61 6e 64 6c 65 72 2e  is.inputHandler.
1410: 75 6e 62 69 6e 64 28 29 3b 0a 20 20 20 20 74 68  unbind();.    th
1420: 69 73 2e 70 6f 70 75 70 48 61 6e 64 6c 65 72 2e  is.popupHandler.
1430: 75 6e 62 69 6e 64 28 29 3b 0a 20 20 20 20 74 68  unbind();.    th
1440: 69 73 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 2e  is.colorHandler.
1450: 75 6e 62 69 6e 64 28 29 3b 0a 20 20 20 20 74 68  unbind();.    th
1460: 69 73 2e 61 64 64 6f 6e 48 61 6e 64 6c 65 72 2e  is.addonHandler.
1470: 75 6e 62 69 6e 64 28 29 3b 0a 20 20 20 20 74 68  unbind();.    th
1480: 69 73 2e 70 69 63 6b 65 72 48 61 6e 64 6c 65 72  is.pickerHandler
1490: 2e 75 6e 62 69 6e 64 28 29 3b 0a 0a 20 20 20 20  .unbind();..    
14a0: 74 68 69 73 2e 65 6c 65 6d 65 6e 74 0a 20 20 20  this.element.   
14b0: 20 20 20 2e 72 65 6d 6f 76 65 43 6c 61 73 73 28     .removeClass(
14c0: 27 63 6f 6c 6f 72 70 69 63 6b 65 72 2d 65 6c 65  'colorpicker-ele
14d0: 6d 65 6e 74 27 29 0a 20 20 20 20 20 20 2e 72 65  ment').      .re
14e0: 6d 6f 76 65 44 61 74 61 28 27 63 6f 6c 6f 72 70  moveData('colorp
14f0: 69 63 6b 65 72 27 2c 20 27 63 6f 6c 6f 72 27 29  icker', 'color')
1500: 0a 20 20 20 20 20 20 2e 6f 66 66 28 27 2e 63 6f  .      .off('.co
1510: 6c 6f 72 70 69 63 6b 65 72 27 29 3b 0a 0a 20 20  lorpicker');..  
1520: 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 28 43 6f    /**.     * (Co
1530: 6c 6f 72 70 69 63 6b 65 72 29 20 57 68 65 6e 20  lorpicker) When 
1540: 74 68 65 20 69 6e 73 74 61 6e 63 65 20 69 73 20  the instance is 
1550: 64 65 73 74 72 6f 79 65 64 20 77 69 74 68 20 61  destroyed with a
1560: 6c 6c 20 65 76 65 6e 74 73 20 75 6e 62 6f 75 6e  ll events unboun
1570: 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a  d..     *.     *
1580: 20 40 65 76 65 6e 74 20 43 6f 6c 6f 72 70 69 63   @event Colorpic
1590: 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72 44  ker#colorpickerD
15a0: 65 73 74 72 6f 79 0a 20 20 20 20 20 2a 2f 0a 20  estroy.     */. 
15b0: 20 20 20 74 68 69 73 2e 74 72 69 67 67 65 72 28     this.trigger(
15c0: 27 63 6f 6c 6f 72 70 69 63 6b 65 72 44 65 73 74  'colorpickerDest
15d0: 72 6f 79 27 2c 20 63 6f 6c 6f 72 29 3b 0a 20 20  roy', color);.  
15e0: 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 68  }..  /**.   * Sh
15f0: 6f 77 73 20 74 68 65 20 63 6f 6c 6f 72 70 69 63  ows the colorpic
1600: 6b 65 72 20 77 69 64 67 65 74 20 69 66 20 68 69  ker widget if hi
1610: 64 64 65 6e 2e 0a 20 20 20 2a 20 49 66 20 74 68  dden..   * If th
1620: 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20 69 73  e colorpicker is
1630: 20 64 69 73 61 62 6c 65 64 20 74 68 69 73 20 63   disabled this c
1640: 61 6c 6c 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f  all will be igno
1650: 72 65 64 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40  red..   *.   * @
1660: 66 69 72 65 73 20 43 6f 6c 6f 72 70 69 63 6b 65  fires Colorpicke
1670: 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72 53 68 6f  r#colorpickerSho
1680: 77 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 45  w.   * @param {E
1690: 76 65 6e 74 7d 20 5b 65 5d 0a 20 20 20 2a 2f 0a  vent} [e].   */.
16a0: 20 20 73 68 6f 77 28 65 29 20 7b 0a 20 20 20 20    show(e) {.    
16b0: 74 68 69 73 2e 70 6f 70 75 70 48 61 6e 64 6c 65  this.popupHandle
16c0: 72 2e 73 68 6f 77 28 65 29 3b 0a 20 20 7d 0a 0a  r.show(e);.  }..
16d0: 20 20 2f 2a 2a 0a 20 20 20 2a 20 48 69 64 65 73    /**.   * Hides
16e0: 20 74 68 65 20 63 6f 6c 6f 72 70 69 63 6b 65 72   the colorpicker
16f0: 20 77 69 64 67 65 74 2e 0a 20 20 20 2a 0a 20 20   widget..   *.  
1700: 20 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f 72 70   * @fires Colorp
1710: 69 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65  icker#colorpicke
1720: 72 48 69 64 65 0a 20 20 20 2a 20 40 70 61 72 61  rHide.   * @para
1730: 6d 20 7b 45 76 65 6e 74 7d 20 5b 65 5d 0a 20 20  m {Event} [e].  
1740: 20 2a 2f 0a 20 20 68 69 64 65 28 65 29 20 7b 0a   */.  hide(e) {.
1750: 20 20 20 20 74 68 69 73 2e 70 6f 70 75 70 48 61      this.popupHa
1760: 6e 64 6c 65 72 2e 68 69 64 65 28 65 29 3b 0a 20  ndler.hide(e);. 
1770: 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54   }..  /**.   * T
1780: 6f 67 67 6c 65 73 20 74 68 65 20 63 6f 6c 6f 72  oggles the color
1790: 70 69 63 6b 65 72 20 62 65 74 77 65 65 6e 20 76  picker between v
17a0: 69 73 69 62 6c 65 20 61 6e 64 20 68 69 64 64 65  isible and hidde
17b0: 6e 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 66 69  n..   *.   * @fi
17c0: 72 65 73 20 43 6f 6c 6f 72 70 69 63 6b 65 72 23  res Colorpicker#
17d0: 63 6f 6c 6f 72 70 69 63 6b 65 72 53 68 6f 77 0a  colorpickerShow.
17e0: 20 20 20 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f     * @fires Colo
17f0: 72 70 69 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63  rpicker#colorpic
1800: 6b 65 72 48 69 64 65 0a 20 20 20 2a 20 40 70 61  kerHide.   * @pa
1810: 72 61 6d 20 7b 45 76 65 6e 74 7d 20 5b 65 5d 0a  ram {Event} [e].
1820: 20 20 20 2a 2f 0a 20 20 74 6f 67 67 6c 65 28 65     */.  toggle(e
1830: 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 70 6f 70  ) {.    this.pop
1840: 75 70 48 61 6e 64 6c 65 72 2e 74 6f 67 67 6c 65  upHandler.toggle
1850: 28 65 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a  (e);.  }..  /**.
1860: 20 20 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65     * Returns the
1870: 20 63 75 72 72 65 6e 74 20 63 6f 6c 6f 72 20 76   current color v
1880: 61 6c 75 65 20 61 73 20 73 74 72 69 6e 67 0a 20  alue as string. 
1890: 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20    *.   * @param 
18a0: 7b 53 74 72 69 6e 67 7c 2a 7d 20 5b 64 65 66 61  {String|*} [defa
18b0: 75 6c 74 56 61 6c 75 65 5d 0a 20 20 20 2a 20 40  ultValue].   * @
18c0: 72 65 74 75 72 6e 73 20 7b 53 74 72 69 6e 67 7c  returns {String|
18d0: 2a 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 56 61  *}.   */.  getVa
18e0: 6c 75 65 28 64 65 66 61 75 6c 74 56 61 6c 75 65  lue(defaultValue
18f0: 20 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 6c   = null) {.    l
1900: 65 74 20 76 61 6c 20 3d 20 74 68 69 73 2e 63 6f  et val = this.co
1910: 6c 6f 72 48 61 6e 64 6c 65 72 2e 63 6f 6c 6f 72  lorHandler.color
1920: 3b 0a 0a 20 20 20 20 76 61 6c 20 3d 20 28 76 61  ;..    val = (va
1930: 6c 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6c  l instanceof Col
1940: 6f 72 49 74 65 6d 29 20 3f 20 76 61 6c 20 3a 20  orItem) ? val : 
1950: 64 65 66 61 75 6c 74 56 61 6c 75 65 3b 0a 0a 20  defaultValue;.. 
1960: 20 20 20 69 66 20 28 76 61 6c 20 69 6e 73 74 61     if (val insta
1970: 6e 63 65 6f 66 20 43 6f 6c 6f 72 49 74 65 6d 29  nceof ColorItem)
1980: 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20   {.      return 
1990: 76 61 6c 2e 73 74 72 69 6e 67 28 74 68 69 73 2e  val.string(this.
19a0: 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 7d 0a 0a  format);.    }..
19b0: 20 20 20 20 72 65 74 75 72 6e 20 76 61 6c 3b 0a      return val;.
19c0: 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20    }..  /**.   * 
19d0: 53 65 74 73 20 74 68 65 20 63 6f 6c 6f 72 20 6d  Sets the color m
19e0: 61 6e 75 61 6c 6c 79 0a 20 20 20 2a 0a 20 20 20  anually.   *.   
19f0: 2a 20 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69  * @fires Colorpi
1a00: 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72  cker#colorpicker
1a10: 43 68 61 6e 67 65 0a 20 20 20 2a 20 40 70 61 72  Change.   * @par
1a20: 61 6d 20 7b 53 74 72 69 6e 67 7c 43 6f 6c 6f 72  am {String|Color
1a30: 7d 20 76 61 6c 0a 20 20 20 2a 2f 0a 20 20 73 65  } val.   */.  se
1a40: 74 56 61 6c 75 65 28 76 61 6c 29 20 7b 0a 20 20  tValue(val) {.  
1a50: 20 20 69 66 20 28 74 68 69 73 2e 69 73 44 69 73    if (this.isDis
1a60: 61 62 6c 65 64 28 29 29 20 7b 0a 20 20 20 20 20  abled()) {.     
1a70: 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 20   return;.    }. 
1a80: 20 20 20 6c 65 74 20 63 68 20 3d 20 74 68 69 73     let ch = this
1a90: 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a  .colorHandler;..
1aa0: 20 20 20 20 69 66 20 28 0a 20 20 20 20 20 20 28      if (.      (
1ab0: 63 68 2e 68 61 73 43 6f 6c 6f 72 28 29 20 26 26  ch.hasColor() &&
1ac0: 20 21 21 76 61 6c 20 26 26 20 63 68 2e 63 6f 6c   !!val && ch.col
1ad0: 6f 72 2e 65 71 75 61 6c 73 28 76 61 6c 29 29 20  or.equals(val)) 
1ae0: 7c 7c 0a 20 20 20 20 20 20 28 21 63 68 2e 68 61  ||.      (!ch.ha
1af0: 73 43 6f 6c 6f 72 28 29 20 26 26 20 21 76 61 6c  sColor() && !val
1b00: 29 0a 20 20 20 20 29 20 7b 0a 20 20 20 20 20 20  ).    ) {.      
1b10: 2f 2f 20 73 61 6d 65 20 63 6f 6c 6f 72 20 6f 72  // same color or
1b20: 20 73 74 69 6c 6c 20 65 6d 70 74 79 0a 20 20 20   still empty.   
1b30: 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d     return;.    }
1b40: 0a 0a 20 20 20 20 63 68 2e 63 6f 6c 6f 72 20 3d  ..    ch.color =
1b50: 20 76 61 6c 20 3f 20 63 68 2e 63 72 65 61 74 65   val ? ch.create
1b60: 43 6f 6c 6f 72 28 76 61 6c 2c 20 74 68 69 73 2e  Color(val, this.
1b70: 6f 70 74 69 6f 6e 73 2e 61 75 74 6f 49 6e 70 75  options.autoInpu
1b80: 74 46 61 6c 6c 62 61 63 6b 29 20 3a 20 6e 75 6c  tFallback) : nul
1b90: 6c 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20  l;..    /**.    
1ba0: 20 2a 20 28 43 6f 6c 6f 72 70 69 63 6b 65 72 29   * (Colorpicker)
1bb0: 20 57 68 65 6e 20 74 68 65 20 63 6f 6c 6f 72 20   When the color 
1bc0: 69 73 20 73 65 74 20 70 72 6f 67 72 61 6d 6d 61  is set programma
1bd0: 74 69 63 61 6c 6c 79 20 77 69 74 68 20 73 65 74  tically with set
1be0: 56 61 6c 75 65 28 29 2e 0a 20 20 20 20 20 2a 0a  Value()..     *.
1bf0: 20 20 20 20 20 2a 20 40 65 76 65 6e 74 20 43 6f       * @event Co
1c00: 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c 6f 72 70  lorpicker#colorp
1c10: 69 63 6b 65 72 43 68 61 6e 67 65 0a 20 20 20 20  ickerChange.    
1c20: 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 74 72 69   */.    this.tri
1c30: 67 67 65 72 28 27 63 6f 6c 6f 72 70 69 63 6b 65  gger('colorpicke
1c40: 72 43 68 61 6e 67 65 27 2c 20 63 68 2e 63 6f 6c  rChange', ch.col
1c50: 6f 72 2c 20 76 61 6c 29 3b 0a 0a 20 20 20 20 2f  or, val);..    /
1c60: 2f 20 66 6f 72 63 65 20 75 70 64 61 74 65 20 69  / force update i
1c70: 66 20 63 6f 6c 6f 72 20 68 61 73 20 63 68 61 6e  f color has chan
1c80: 67 65 64 20 74 6f 20 65 6d 70 74 79 0a 20 20 20  ged to empty.   
1c90: 20 74 68 69 73 2e 75 70 64 61 74 65 28 29 3b 0a   this.update();.
1ca0: 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20    }..  /**.   * 
1cb0: 55 70 64 61 74 65 73 20 74 68 65 20 55 49 20 61  Updates the UI a
1cc0: 6e 64 20 74 68 65 20 69 6e 70 75 74 20 63 6f 6c  nd the input col
1cd0: 6f 72 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20  or according to 
1ce0: 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 63 6f 6c  the internal col
1cf0: 6f 72 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 66  or..   *.   * @f
1d00: 69 72 65 73 20 43 6f 6c 6f 72 70 69 63 6b 65 72  ires Colorpicker
1d10: 23 63 6f 6c 6f 72 70 69 63 6b 65 72 55 70 64 61  #colorpickerUpda
1d20: 74 65 0a 20 20 20 2a 2f 0a 20 20 75 70 64 61 74  te.   */.  updat
1d30: 65 28 29 20 7b 0a 20 20 20 20 69 66 20 28 74 68  e() {.    if (th
1d40: 69 73 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 2e  is.colorHandler.
1d50: 68 61 73 43 6f 6c 6f 72 28 29 29 20 7b 0a 20 20  hasColor()) {.  
1d60: 20 20 20 20 74 68 69 73 2e 69 6e 70 75 74 48 61      this.inputHa
1d70: 6e 64 6c 65 72 2e 75 70 64 61 74 65 28 29 3b 0a  ndler.update();.
1d80: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20      } else {.   
1d90: 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72 48 61 6e     this.colorHan
1da0: 64 6c 65 72 2e 61 73 73 75 72 65 43 6f 6c 6f 72  dler.assureColor
1db0: 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 74  ();.    }..    t
1dc0: 68 69 73 2e 61 64 64 6f 6e 48 61 6e 64 6c 65 72  his.addonHandler
1dd0: 2e 75 70 64 61 74 65 28 29 3b 0a 20 20 20 20 74  .update();.    t
1de0: 68 69 73 2e 70 69 63 6b 65 72 48 61 6e 64 6c 65  his.pickerHandle
1df0: 72 2e 75 70 64 61 74 65 28 29 3b 0a 0a 20 20 20  r.update();..   
1e00: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 28 43 6f 6c   /**.     * (Col
1e10: 6f 72 70 69 63 6b 65 72 29 20 46 69 72 65 64 20  orpicker) Fired 
1e20: 77 68 65 6e 20 74 68 65 20 77 69 64 67 65 74 20  when the widget 
1e30: 69 73 20 75 70 64 61 74 65 64 2e 0a 20 20 20 20  is updated..    
1e40: 20 2a 0a 20 20 20 20 20 2a 20 40 65 76 65 6e 74   *.     * @event
1e50: 20 43 6f 6c 6f 72 70 69 63 6b 65 72 23 63 6f 6c   Colorpicker#col
1e60: 6f 72 70 69 63 6b 65 72 55 70 64 61 74 65 0a 20  orpickerUpdate. 
1e70: 20 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e      */.    this.
1e80: 74 72 69 67 67 65 72 28 27 63 6f 6c 6f 72 70 69  trigger('colorpi
1e90: 63 6b 65 72 55 70 64 61 74 65 27 29 3b 0a 20 20  ckerUpdate');.  
1ea0: 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 45 6e  }..  /**.   * En
1eb0: 61 62 6c 65 73 20 74 68 65 20 77 69 64 67 65 74  ables the widget
1ec0: 20 61 6e 64 20 74 68 65 20 69 6e 70 75 74 20 69   and the input i
1ed0: 66 20 61 6e 79 0a 20 20 20 2a 0a 20 20 20 2a 20  f any.   *.   * 
1ee0: 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69 63 6b  @fires Colorpick
1ef0: 65 72 23 63 6f 6c 6f 72 70 69 63 6b 65 72 45 6e  er#colorpickerEn
1f00: 61 62 6c 65 0a 20 20 20 2a 20 40 72 65 74 75 72  able.   * @retur
1f10: 6e 73 20 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20  ns {boolean}.   
1f20: 2a 2f 0a 20 20 65 6e 61 62 6c 65 28 29 20 7b 0a  */.  enable() {.
1f30: 20 20 20 20 74 68 69 73 2e 69 6e 70 75 74 48 61      this.inputHa
1f40: 6e 64 6c 65 72 2e 65 6e 61 62 6c 65 28 29 3b 0a  ndler.enable();.
1f50: 20 20 20 20 74 68 69 73 2e 64 69 73 61 62 6c 65      this.disable
1f60: 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 74  d = false;.    t
1f70: 68 69 73 2e 70 69 63 6b 65 72 2e 72 65 6d 6f 76  his.picker.remov
1f80: 65 43 6c 61 73 73 28 27 63 6f 6c 6f 72 70 69 63  eClass('colorpic
1f90: 6b 65 72 2d 64 69 73 61 62 6c 65 64 27 29 3b 0a  ker-disabled');.
1fa0: 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20  .    /**.     * 
1fb0: 28 43 6f 6c 6f 72 70 69 63 6b 65 72 29 20 57 68  (Colorpicker) Wh
1fc0: 65 6e 20 74 68 65 20 77 69 64 67 65 74 20 68 61  en the widget ha
1fd0: 73 20 62 65 65 6e 20 65 6e 61 62 6c 65 64 2e 0a  s been enabled..
1fe0: 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 65       *.     * @e
1ff0: 76 65 6e 74 20 43 6f 6c 6f 72 70 69 63 6b 65 72  vent Colorpicker
2000: 23 63 6f 6c 6f 72 70 69 63 6b 65 72 45 6e 61 62  #colorpickerEnab
2010: 6c 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 74  le.     */.    t
2020: 68 69 73 2e 74 72 69 67 67 65 72 28 27 63 6f 6c  his.trigger('col
2030: 6f 72 70 69 63 6b 65 72 45 6e 61 62 6c 65 27 29  orpickerEnable')
2040: 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75  ;.    return tru
2050: 65 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20  e;.  }..  /**.  
2060: 20 2a 20 44 69 73 61 62 6c 65 73 20 74 68 65 20   * Disables the 
2070: 77 69 64 67 65 74 20 61 6e 64 20 74 68 65 20 69  widget and the i
2080: 6e 70 75 74 20 69 66 20 61 6e 79 0a 20 20 20 2a  nput if any.   *
2090: 0a 20 20 20 2a 20 40 66 69 72 65 73 20 43 6f 6c  .   * @fires Col
20a0: 6f 72 70 69 63 6b 65 72 23 63 6f 6c 6f 72 70 69  orpicker#colorpi
20b0: 63 6b 65 72 44 69 73 61 62 6c 65 0a 20 20 20 2a  ckerDisable.   *
20c0: 20 40 72 65 74 75 72 6e 73 20 7b 62 6f 6f 6c 65   @returns {boole
20d0: 61 6e 7d 0a 20 20 20 2a 2f 0a 20 20 64 69 73 61  an}.   */.  disa
20e0: 62 6c 65 28 29 20 7b 0a 20 20 20 20 74 68 69 73  ble() {.    this
20f0: 2e 69 6e 70 75 74 48 61 6e 64 6c 65 72 2e 64 69  .inputHandler.di
2100: 73 61 62 6c 65 28 29 3b 0a 20 20 20 20 74 68 69  sable();.    thi
2110: 73 2e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75  s.disabled = tru
2120: 65 3b 0a 20 20 20 20 74 68 69 73 2e 70 69 63 6b  e;.    this.pick
2130: 65 72 2e 61 64 64 43 6c 61 73 73 28 27 63 6f 6c  er.addClass('col
2140: 6f 72 70 69 63 6b 65 72 2d 64 69 73 61 62 6c 65  orpicker-disable
2150: 64 27 29 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20  d');..    /**.  
2160: 20 20 20 2a 20 28 43 6f 6c 6f 72 70 69 63 6b 65     * (Colorpicke
2170: 72 29 20 57 68 65 6e 20 74 68 65 20 77 69 64 67  r) When the widg
2180: 65 74 20 68 61 73 20 62 65 65 6e 20 64 69 73 61  et has been disa
2190: 62 6c 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20  bled..     *.   
21a0: 20 20 2a 20 40 65 76 65 6e 74 20 43 6f 6c 6f 72    * @event Color
21b0: 70 69 63 6b 65 72 23 63 6f 6c 6f 72 70 69 63 6b  picker#colorpick
21c0: 65 72 44 69 73 61 62 6c 65 0a 20 20 20 20 20 2a  erDisable.     *
21d0: 2f 0a 20 20 20 20 74 68 69 73 2e 74 72 69 67 67  /.    this.trigg
21e0: 65 72 28 27 63 6f 6c 6f 72 70 69 63 6b 65 72 44  er('colorpickerD
21f0: 69 73 61 62 6c 65 27 29 3b 0a 20 20 20 20 72 65  isable');.    re
2200: 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 0a  turn true;.  }..
2210: 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72    /**.   * Retur
2220: 6e 73 20 74 72 75 65 20 69 66 20 74 68 69 73 20  ns true if this 
2230: 69 6e 73 74 61 6e 63 65 20 69 73 20 65 6e 61 62  instance is enab
2240: 6c 65 64 0a 20 20 20 2a 20 40 72 65 74 75 72 6e  led.   * @return
2250: 73 20 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 2a  s {boolean}.   *
2260: 2f 0a 20 20 69 73 45 6e 61 62 6c 65 64 28 29 20  /.  isEnabled() 
2270: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 21 74 68  {.    return !th
2280: 69 73 2e 69 73 44 69 73 61 62 6c 65 64 28 29 3b  is.isDisabled();
2290: 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a  .  }..  /**.   *
22a0: 20 52 65 74 75 72 6e 73 20 74 72 75 65 20 69 66   Returns true if
22b0: 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 69   this instance i
22c0: 73 20 64 69 73 61 62 6c 65 64 0a 20 20 20 2a 20  s disabled.   * 
22d0: 40 72 65 74 75 72 6e 73 20 7b 62 6f 6f 6c 65 61  @returns {boolea
22e0: 6e 7d 0a 20 20 20 2a 2f 0a 20 20 69 73 44 69 73  n}.   */.  isDis
22f0: 61 62 6c 65 64 28 29 20 7b 0a 20 20 20 20 72 65  abled() {.    re
2300: 74 75 72 6e 20 74 68 69 73 2e 64 69 73 61 62 6c  turn this.disabl
2310: 65 64 20 3d 3d 3d 20 74 72 75 65 3b 0a 20 20 7d  ed === true;.  }
2320: 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 72 69  ..  /**.   * Tri
2330: 67 67 65 72 73 20 61 20 43 6f 6c 6f 72 70 69 63  ggers a Colorpic
2340: 6b 65 72 20 65 76 65 6e 74 2e 0a 20 20 20 2a 0a  ker event..   *.
2350: 20 20 20 2a 20 40 70 61 72 61 6d 20 65 76 65 6e     * @param even
2360: 74 4e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61  tName.   * @para
2370: 6d 20 63 6f 6c 6f 72 0a 20 20 20 2a 20 40 70 61  m color.   * @pa
2380: 72 61 6d 20 76 61 6c 75 65 0a 20 20 20 2a 2f 0a  ram value.   */.
2390: 20 20 74 72 69 67 67 65 72 28 65 76 65 6e 74 4e    trigger(eventN
23a0: 61 6d 65 2c 20 63 6f 6c 6f 72 20 3d 20 6e 75 6c  ame, color = nul
23b0: 6c 2c 20 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 29  l, value = null)
23c0: 20 7b 0a 20 20 20 20 74 68 69 73 2e 65 6c 65 6d   {.    this.elem
23d0: 65 6e 74 2e 74 72 69 67 67 65 72 28 7b 0a 20 20  ent.trigger({.  
23e0: 20 20 20 20 74 79 70 65 3a 20 65 76 65 6e 74 4e      type: eventN
23f0: 61 6d 65 2c 0a 20 20 20 20 20 20 63 6f 6c 6f 72  ame,.      color
2400: 70 69 63 6b 65 72 3a 20 74 68 69 73 2c 0a 20 20  picker: this,.  
2410: 20 20 20 20 63 6f 6c 6f 72 3a 20 63 6f 6c 6f 72      color: color
2420: 20 3f 20 63 6f 6c 6f 72 20 3a 20 74 68 69 73 2e   ? color : this.
2430: 63 6f 6c 6f 72 2c 0a 20 20 20 20 20 20 76 61 6c  color,.      val
2440: 75 65 3a 20 76 61 6c 75 65 20 3f 20 76 61 6c 75  ue: value ? valu
2450: 65 20 3a 20 74 68 69 73 2e 67 65 74 56 61 6c 75  e : this.getValu
2460: 65 28 29 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 0a  e().    });.  }.
2470: 7d 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6c 6f 72 70  }../**. * Colorp
2480: 69 63 6b 65 72 20 65 78 74 65 6e 73 69 6f 6e 20  icker extension 
2490: 63 6c 61 73 73 65 73 2c 20 69 6e 64 65 78 65 64  classes, indexed
24a0: 20 62 79 20 65 78 74 65 6e 73 69 6f 6e 20 6e 61   by extension na
24b0: 6d 65 0a 20 2a 0a 20 2a 20 40 73 74 61 74 69 63  me. *. * @static
24c0: 0a 20 2a 20 40 74 79 70 65 20 7b 4f 62 6a 65 63  . * @type {Objec
24d0: 74 7d 20 61 20 6d 61 70 20 62 65 74 77 65 65 6e  t} a map between
24e0: 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6e   the extension n
24f0: 61 6d 65 20 61 6e 64 20 69 74 73 20 63 6c 61 73  ame and its clas
2500: 73 0a 20 2a 2f 0a 43 6f 6c 6f 72 70 69 63 6b 65  s. */.Colorpicke
2510: 72 2e 65 78 74 65 6e 73 69 6f 6e 73 20 3d 20 63  r.extensions = c
2520: 6f 72 65 45 78 74 65 6e 73 69 6f 6e 73 3b 0a 0a  oreExtensions;..
2530: 65 78 70 6f 72 74 20 64 65 66 61 75 6c 74 20 43  export default C
2540: 6f 6c 6f 72 70 69 63 6b 65 72 3b 0a              olorpicker;.