⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact 1d048748dcac887ea06a53b222d54e30f66e59ec773fb4b2f2faf3755392c834:


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 43 6f 6c 6f 72 70 69 63 6b 65  mport Colorpicke
0020: 72 20 66 72 6f 6d 20 27 2e 2f 43 6f 6c 6f 72 70  r from './Colorp
0030: 69 63 6b 65 72 27 3b 0a 69 6d 70 6f 72 74 20 24  icker';.import $
0040: 20 66 72 6f 6d 20 27 6a 71 75 65 72 79 27 3b 0a   from 'jquery';.
0050: 0a 6c 65 74 20 70 6c 75 67 69 6e 20 3d 20 27 63  .let plugin = 'c
0060: 6f 6c 6f 72 70 69 63 6b 65 72 27 3b 0a 0a 24 5b  olorpicker';..$[
0070: 70 6c 75 67 69 6e 5d 20 3d 20 43 6f 6c 6f 72 70  plugin] = Colorp
0080: 69 63 6b 65 72 3b 0a 0a 2f 2f 20 43 6f 6c 6f 72  icker;..// Color
0090: 70 69 63 6b 65 72 20 6a 51 75 65 72 79 20 50 6c  picker jQuery Pl
00a0: 75 67 69 6e 20 41 50 49 0a 24 2e 66 6e 5b 70 6c  ugin API.$.fn[pl
00b0: 75 67 69 6e 5d 20 3d 20 66 75 6e 63 74 69 6f 6e  ugin] = function
00c0: 20 28 6f 70 74 69 6f 6e 29 20 7b 0a 20 20 6c 65   (option) {.  le
00d0: 74 20 66 6e 41 72 67 73 20 3d 20 41 72 72 61 79  t fnArgs = Array
00e0: 2e 70 72 6f 74 6f 74 79 70 65 2e 73 6c 69 63 65  .prototype.slice
00f0: 2e 63 61 6c 6c 28 61 72 67 75 6d 65 6e 74 73 2c  .call(arguments,
0100: 20 31 29 2c 0a 20 20 20 20 69 73 53 69 6e 67 6c   1),.    isSingl
0110: 65 45 6c 65 6d 65 6e 74 20 3d 20 28 74 68 69 73  eElement = (this
0120: 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 31 29 2c 0a  .length === 1),.
0130: 20 20 20 20 72 65 74 75 72 6e 56 61 6c 75 65 20      returnValue 
0140: 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 6c 65 74 20 24  = null;..  let $
0150: 65 6c 65 6d 65 6e 74 73 20 3d 20 74 68 69 73 2e  elements = this.
0160: 65 61 63 68 28 66 75 6e 63 74 69 6f 6e 20 28 29  each(function ()
0170: 20 7b 0a 20 20 20 20 6c 65 74 20 24 74 68 69 73   {.    let $this
0180: 20 3d 20 24 28 74 68 69 73 29 2c 0a 20 20 20 20   = $(this),.    
0190: 20 20 69 6e 73 74 20 3d 20 24 74 68 69 73 2e 64    inst = $this.d
01a0: 61 74 61 28 70 6c 75 67 69 6e 29 2c 0a 20 20 20  ata(plugin),.   
01b0: 20 20 20 6f 70 74 69 6f 6e 73 20 3d 20 28 28 74     options = ((t
01c0: 79 70 65 6f 66 20 6f 70 74 69 6f 6e 20 3d 3d 3d  ypeof option ===
01d0: 20 27 6f 62 6a 65 63 74 27 29 20 3f 20 6f 70 74   'object') ? opt
01e0: 69 6f 6e 20 3a 20 7b 7d 29 3b 0a 0a 20 20 20 20  ion : {});..    
01f0: 2f 2f 20 43 72 65 61 74 65 20 69 6e 73 74 61 6e  // Create instan
0200: 63 65 20 69 66 20 64 6f 65 73 20 6e 6f 74 20 65  ce if does not e
0210: 78 69 73 74 0a 20 20 20 20 69 66 20 28 21 69 6e  xist.    if (!in
0220: 73 74 29 20 7b 0a 20 20 20 20 20 20 69 6e 73 74  st) {.      inst
0230: 20 3d 20 6e 65 77 20 43 6f 6c 6f 72 70 69 63 6b   = new Colorpick
0240: 65 72 28 74 68 69 73 2c 20 6f 70 74 69 6f 6e 73  er(this, options
0250: 29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2e 64  );.      $this.d
0260: 61 74 61 28 70 6c 75 67 69 6e 2c 20 69 6e 73 74  ata(plugin, inst
0270: 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66  );.    }..    if
0280: 20 28 21 69 73 53 69 6e 67 6c 65 45 6c 65 6d 65   (!isSingleEleme
0290: 6e 74 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75  nt) {.      retu
02a0: 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72  rn;.    }..    r
02b0: 65 74 75 72 6e 56 61 6c 75 65 20 3d 20 24 74 68  eturnValue = $th
02c0: 69 73 3b 0a 0a 20 20 20 20 69 66 20 28 74 79 70  is;..    if (typ
02d0: 65 6f 66 20 6f 70 74 69 6f 6e 20 3d 3d 3d 20 27  eof option === '
02e0: 73 74 72 69 6e 67 27 29 20 7b 0a 20 20 20 20 20  string') {.     
02f0: 20 69 66 20 28 6f 70 74 69 6f 6e 20 3d 3d 3d 20   if (option === 
0300: 27 63 6f 6c 6f 72 70 69 63 6b 65 72 27 29 20 7b  'colorpicker') {
0310: 0a 20 20 20 20 20 20 20 20 2f 2f 20 52 65 74 75  .        // Retu
0320: 72 6e 20 63 6f 6c 6f 72 70 69 63 6b 65 72 20 69  rn colorpicker i
0330: 6e 73 74 61 6e 63 65 3a 20 65 2e 67 2e 20 2e 63  nstance: e.g. .c
0340: 6f 6c 6f 72 70 69 63 6b 65 72 28 27 63 6f 6c 6f  olorpicker('colo
0350: 72 70 69 63 6b 65 72 27 29 0a 20 20 20 20 20 20  rpicker').      
0360: 20 20 72 65 74 75 72 6e 56 61 6c 75 65 20 3d 20    returnValue = 
0370: 69 6e 73 74 3b 0a 20 20 20 20 20 20 7d 20 65 6c  inst;.      } el
0380: 73 65 20 69 66 20 28 24 2e 69 73 46 75 6e 63 74  se if ($.isFunct
0390: 69 6f 6e 28 69 6e 73 74 5b 6f 70 74 69 6f 6e 5d  ion(inst[option]
03a0: 29 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20  )) {.        // 
03b0: 52 65 74 75 72 6e 20 6d 65 74 68 6f 64 20 63 61  Return method ca
03c0: 6c 6c 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3a  ll return value:
03d0: 20 65 2e 67 2e 20 2e 63 6f 6c 6f 72 70 69 63 6b   e.g. .colorpick
03e0: 65 72 28 27 69 73 45 6e 61 62 6c 65 64 27 29 0a  er('isEnabled').
03f0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 56 61          returnVa
0400: 6c 75 65 20 3d 20 69 6e 73 74 5b 6f 70 74 69 6f  lue = inst[optio
0410: 6e 5d 2e 61 70 70 6c 79 28 69 6e 73 74 2c 20 66  n].apply(inst, f
0420: 6e 41 72 67 73 29 3b 0a 20 20 20 20 20 20 7d 20  nArgs);.      } 
0430: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 2f  else {.        /
0440: 2f 20 52 65 74 75 72 6e 20 70 72 6f 70 65 72 74  / Return propert
0450: 79 20 76 61 6c 75 65 3a 20 65 2e 67 2e 20 2e 63  y value: e.g. .c
0460: 6f 6c 6f 72 70 69 63 6b 65 72 28 27 65 6c 65 6d  olorpicker('elem
0470: 65 6e 74 27 29 0a 20 20 20 20 20 20 20 20 72 65  ent').        re
0480: 74 75 72 6e 56 61 6c 75 65 20 3d 20 69 6e 73 74  turnValue = inst
0490: 5b 6f 70 74 69 6f 6e 5d 3b 0a 20 20 20 20 20 20  [option];.      
04a0: 7d 0a 20 20 20 20 7d 0a 20 20 7d 29 3b 0a 0a 20  }.    }.  });.. 
04b0: 20 72 65 74 75 72 6e 20 69 73 53 69 6e 67 6c 65   return isSingle
04c0: 45 6c 65 6d 65 6e 74 20 3f 20 72 65 74 75 72 6e  Element ? return
04d0: 56 61 6c 75 65 20 3a 20 24 65 6c 65 6d 65 6e 74  Value : $element
04e0: 73 3b 0a 7d 3b 0a 0a 24 2e 66 6e 5b 70 6c 75 67  s;.};..$.fn[plug
04f0: 69 6e 5d 2e 63 6f 6e 73 74 72 75 63 74 6f 72 20  in].constructor 
0500: 3d 20 43 6f 6c 6f 72 70 69 63 6b 65 72 3b 0a     = Colorpicker;.