⌈⌋ ⎇ branch:  Bitrhythm


Hex Artifact Content

Artifact 8a9adab6adfe121eb60d98906b02b335f0b6af2a876769789ef525eb3138c904:


0000: 27 75 73 65 20 73 74 72 69 63 74 27 3b 0a 0a 2f  'use strict';../
0010: 2a 2a 0a 20 2a 20 48 61 6e 64 6c 65 73 20 65 76  **. * Handles ev
0020: 65 72 79 74 68 69 6e 67 20 72 65 6c 61 74 65 64  erything related
0030: 20 74 6f 20 74 68 65 20 63 6f 6c 6f 72 70 69 63   to the colorpic
0040: 6b 65 72 20 61 64 64 6f 6e 0a 20 2a 20 40 69 67  ker addon. * @ig
0050: 6e 6f 72 65 0a 20 2a 2f 0a 63 6c 61 73 73 20 41  nore. */.class A
0060: 64 64 6f 6e 48 61 6e 64 6c 65 72 20 7b 0a 20 20  ddonHandler {.  
0070: 2f 2a 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20  /**.   * @param 
0080: 7b 43 6f 6c 6f 72 70 69 63 6b 65 72 7d 20 63 6f  {Colorpicker} co
0090: 6c 6f 72 70 69 63 6b 65 72 0a 20 20 20 2a 2f 0a  lorpicker.   */.
00a0: 20 20 63 6f 6e 73 74 72 75 63 74 6f 72 28 63 6f    constructor(co
00b0: 6c 6f 72 70 69 63 6b 65 72 29 20 7b 0a 20 20 20  lorpicker) {.   
00c0: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70   /**.     * @typ
00d0: 65 20 7b 43 6f 6c 6f 72 70 69 63 6b 65 72 7d 0a  e {Colorpicker}.
00e0: 20 20 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73       */.    this
00f0: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 20 3d 20 63  .colorpicker = c
0100: 6f 6c 6f 72 70 69 63 6b 65 72 3b 0a 20 20 20 20  olorpicker;.    
0110: 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 65  /**.     * @type
0120: 20 7b 6a 51 75 65 72 79 7d 0a 20 20 20 20 20 2a   {jQuery}.     *
0130: 2f 0a 20 20 20 20 74 68 69 73 2e 61 64 64 6f 6e  /.    this.addon
0140: 20 3d 20 6e 75 6c 6c 3b 0a 20 20 7d 0a 0a 20 20   = null;.  }..  
0150: 68 61 73 41 64 64 6f 6e 28 29 20 7b 0a 20 20 20  hasAddon() {.   
0160: 20 72 65 74 75 72 6e 20 21 21 74 68 69 73 2e 61   return !!this.a
0170: 64 64 6f 6e 3b 0a 20 20 7d 0a 0a 20 20 62 69 6e  ddon;.  }..  bin
0180: 64 28 29 20 7b 0a 20 20 20 20 2f 2a 2a 0a 20 20  d() {.    /**.  
0190: 20 20 20 2a 20 40 74 79 70 65 20 7b 2a 7c 6a 51     * @type {*|jQ
01a0: 75 65 72 79 7d 0a 20 20 20 20 20 2a 2f 0a 20 20  uery}.     */.  
01b0: 20 20 74 68 69 73 2e 61 64 64 6f 6e 20 3d 20 74    this.addon = t
01c0: 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e  his.colorpicker.
01d0: 6f 70 74 69 6f 6e 73 2e 61 64 64 6f 6e 20 3f 0a  options.addon ?.
01e0: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72        this.color
01f0: 70 69 63 6b 65 72 2e 65 6c 65 6d 65 6e 74 2e 66  picker.element.f
0200: 69 6e 64 28 74 68 69 73 2e 63 6f 6c 6f 72 70 69  ind(this.colorpi
0210: 63 6b 65 72 2e 6f 70 74 69 6f 6e 73 2e 61 64 64  cker.options.add
0220: 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 20 20 20  on) : null;..   
0230: 20 69 66 20 28 74 68 69 73 2e 61 64 64 6f 6e 20   if (this.addon 
0240: 26 26 20 28 74 68 69 73 2e 61 64 64 6f 6e 2e 6c  && (this.addon.l
0250: 65 6e 67 74 68 20 3d 3d 3d 20 30 29 29 20 7b 0a  ength === 0)) {.
0260: 20 20 20 20 20 20 2f 2f 20 6e 6f 74 20 66 6f 75        // not fou
0270: 6e 64 0a 20 20 20 20 20 20 74 68 69 73 2e 61 64  nd.      this.ad
0280: 64 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20  don = null;.    
0290: 7d 0a 20 20 7d 0a 0a 20 20 75 6e 62 69 6e 64 28  }.  }..  unbind(
02a0: 29 20 7b 0a 20 20 20 20 69 66 20 28 74 68 69 73  ) {.    if (this
02b0: 2e 68 61 73 41 64 64 6f 6e 28 29 29 20 7b 0a 20  .hasAddon()) {. 
02c0: 20 20 20 20 20 74 68 69 73 2e 61 64 64 6f 6e 2e       this.addon.
02d0: 6f 66 66 28 27 2e 63 6f 6c 6f 72 70 69 63 6b 65  off('.colorpicke
02e0: 72 27 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a  r');.    }.  }..
02f0: 20 20 2f 2a 2a 0a 20 20 20 2a 20 49 66 20 74 68    /**.   * If th
0300: 65 20 61 64 64 6f 6e 20 65 6c 65 6d 65 6e 74 20  e addon element 
0310: 69 73 20 70 72 65 73 65 6e 74 2c 20 69 74 73 20  is present, its 
0320: 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72  background color
0330: 20 69 73 20 75 70 64 61 74 65 64 0a 20 20 20 2a   is updated.   *
0340: 2f 0a 20 20 75 70 64 61 74 65 28 29 20 7b 0a 20  /.  update() {. 
0350: 20 20 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6c     if (!this.col
0360: 6f 72 70 69 63 6b 65 72 2e 63 6f 6c 6f 72 48 61  orpicker.colorHa
0370: 6e 64 6c 65 72 2e 68 61 73 43 6f 6c 6f 72 28 29  ndler.hasColor()
0380: 20 7c 7c 20 21 74 68 69 73 2e 68 61 73 41 64 64   || !this.hasAdd
0390: 6f 6e 28 29 29 20 7b 0a 20 20 20 20 20 20 72 65  on()) {.      re
03a0: 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  turn;.    }..   
03b0: 20 6c 65 74 20 63 6f 6c 6f 72 53 74 72 20 3d 20   let colorStr = 
03c0: 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72  this.colorpicker
03d0: 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 2e 67 65  .colorHandler.ge
03e0: 74 43 6f 6c 6f 72 53 74 72 69 6e 67 28 29 3b 0a  tColorString();.
03f0: 20 20 20 20 6c 65 74 20 73 74 79 6c 65 73 20 3d      let styles =
0400: 20 7b 27 62 61 63 6b 67 72 6f 75 6e 64 27 3a 20   {'background': 
0410: 63 6f 6c 6f 72 53 74 72 7d 3b 0a 0a 20 20 20 20  colorStr};..    
0420: 6c 65 74 20 69 63 6e 20 3d 20 74 68 69 73 2e 61  let icn = this.a
0430: 64 64 6f 6e 2e 66 69 6e 64 28 27 69 27 29 2e 65  ddon.find('i').e
0440: 71 28 30 29 3b 0a 0a 20 20 20 20 69 66 20 28 69  q(0);..    if (i
0450: 63 6e 2e 6c 65 6e 67 74 68 20 3e 20 30 29 20 7b  cn.length > 0) {
0460: 0a 20 20 20 20 20 20 69 63 6e 2e 63 73 73 28 73  .      icn.css(s
0470: 74 79 6c 65 73 29 3b 0a 20 20 20 20 7d 20 65 6c  tyles);.    } el
0480: 73 65 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e  se {.      this.
0490: 61 64 64 6f 6e 2e 63 73 73 28 73 74 79 6c 65 73  addon.css(styles
04a0: 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a  );.    }.  }.}..
04b0: 65 78 70 6f 72 74 20 64 65 66 61 75 6c 74 20 41  export default A
04c0: 64 64 6f 6e 48 61 6e 64 6c 65 72 3b 0a           ddonHandler;.