Artifact
91627560bc73d82908159a85f50cf05a6b90b14430ffdd47697e2e816f415183:
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 0a 2f 2a 2a 0a 20 2a 20 43 uery';../**. * C
0030: 6c 61 73 73 20 74 68 61 74 20 68 61 6e 64 6c 65 lass that handle
0040: 73 20 61 6c 6c 20 63 6f 6e 66 69 67 75 72 65 64 s all configured
0050: 20 73 6c 69 64 65 72 73 20 6f 6e 20 6d 6f 75 73 sliders on mous
0060: 65 20 6f 72 20 74 6f 75 63 68 20 65 76 65 6e 74 e or touch event
0070: 73 2e 0a 20 2a 20 40 69 67 6e 6f 72 65 0a 20 2a s.. * @ignore. *
0080: 2f 0a 63 6c 61 73 73 20 53 6c 69 64 65 72 48 61 /.class SliderHa
0090: 6e 64 6c 65 72 20 7b 0a 20 20 2f 2a 2a 0a 20 20 ndler {. /**.
00a0: 20 2a 20 40 70 61 72 61 6d 20 7b 43 6f 6c 6f 72 * @param {Color
00b0: 70 69 63 6b 65 72 7d 20 63 6f 6c 6f 72 70 69 63 picker} colorpic
00c0: 6b 65 72 0a 20 20 20 2a 2f 0a 20 20 63 6f 6e 73 ker. */. cons
00d0: 74 72 75 63 74 6f 72 28 63 6f 6c 6f 72 70 69 63 tructor(colorpic
00e0: 6b 65 72 29 20 7b 0a 20 20 20 20 2f 2a 2a 0a 20 ker) {. /**.
00f0: 20 20 20 20 2a 20 40 74 79 70 65 20 7b 43 6f 6c * @type {Col
0100: 6f 72 70 69 63 6b 65 72 7d 0a 20 20 20 20 20 2a orpicker}. *
0110: 2f 0a 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72 /. this.color
0120: 70 69 63 6b 65 72 20 3d 20 63 6f 6c 6f 72 70 69 picker = colorpi
0130: 63 6b 65 72 3b 0a 20 20 20 20 2f 2a 2a 0a 20 20 cker;. /**.
0140: 20 20 20 2a 20 40 74 79 70 65 20 7b 2a 7c 53 74 * @type {*|St
0150: 72 69 6e 67 7d 0a 20 20 20 20 20 2a 20 40 70 72 ring}. * @pr
0160: 69 76 61 74 65 0a 20 20 20 20 20 2a 2f 0a 20 20 ivate. */.
0170: 20 20 74 68 69 73 2e 63 75 72 72 65 6e 74 53 6c this.currentSl
0180: 69 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 ider = null;.
0190: 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 /**. * @typ
01a0: 65 20 7b 7b 6c 65 66 74 3a 20 6e 75 6d 62 65 72 e {{left: number
01b0: 2c 20 74 6f 70 3a 20 6e 75 6d 62 65 72 7d 7d 0a , top: number}}.
01c0: 20 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0a * @private.
01d0: 20 20 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73 */. this
01e0: 2e 6d 6f 75 73 65 50 6f 69 6e 74 65 72 20 3d 20 .mousePointer =
01f0: 7b 0a 20 20 20 20 20 20 6c 65 66 74 3a 20 30 2c {. left: 0,
0200: 0a 20 20 20 20 20 20 74 6f 70 3a 20 30 0a 20 20 . top: 0.
0210: 20 20 7d 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 };.. /**.
0220: 20 20 20 2a 20 40 74 79 70 65 20 7b 46 75 6e 63 * @type {Func
0230: 74 69 6f 6e 7d 0a 20 20 20 20 20 2a 2f 0a 20 20 tion}. */.
0240: 20 20 74 68 69 73 2e 6f 6e 4d 6f 76 65 20 3d 20 this.onMove =
0250: 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 64 65 66 $.proxy(this.def
0260: 61 75 6c 74 4f 6e 4d 6f 76 65 2c 20 74 68 69 73 aultOnMove, this
0270: 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
0280: 20 2a 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e * This function
0290: 20 69 73 20 63 61 6c 6c 65 64 20 65 76 65 72 79 is called every
02a0: 20 74 69 6d 65 20 61 20 73 6c 69 64 65 72 20 67 time a slider g
02b0: 75 69 64 65 20 69 73 20 6d 6f 76 65 64 0a 20 20 uide is moved.
02c0: 20 2a 20 54 68 65 20 73 63 6f 70 65 20 6f 66 20 * The scope of
02d0: 22 74 68 69 73 22 20 69 73 20 74 68 65 20 53 6c "this" is the Sl
02e0: 69 64 65 72 48 61 6e 64 6c 65 72 20 6f 62 6a 65 iderHandler obje
02f0: 63 74 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 ct.. *. * @p
0300: 61 72 61 6d 20 7b 69 6e 74 7d 20 74 6f 70 0a 20 aram {int} top.
0310: 20 20 2a 20 40 70 61 72 61 6d 20 7b 69 6e 74 7d * @param {int}
0320: 20 6c 65 66 74 0a 20 20 20 2a 2f 0a 20 20 64 65 left. */. de
0330: 66 61 75 6c 74 4f 6e 4d 6f 76 65 28 74 6f 70 2c faultOnMove(top,
0340: 20 6c 65 66 74 29 20 7b 0a 20 20 20 20 69 66 20 left) {. if
0350: 28 21 74 68 69 73 2e 63 75 72 72 65 6e 74 53 6c (!this.currentSl
0360: 69 64 65 72 29 20 7b 0a 20 20 20 20 20 20 72 65 ider) {. re
0370: 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 turn;. }..
0380: 20 6c 65 74 20 73 6c 69 64 65 72 20 3d 20 74 68 let slider = th
0390: 69 73 2e 63 75 72 72 65 6e 74 53 6c 69 64 65 72 is.currentSlider
03a0: 2c 20 63 70 20 3d 20 74 68 69 73 2e 63 6f 6c 6f , cp = this.colo
03b0: 72 70 69 63 6b 65 72 2c 20 63 68 20 3d 20 63 70 rpicker, ch = cp
03c0: 2e 63 6f 6c 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a .colorHandler;..
03d0: 20 20 20 20 2f 2f 20 43 72 65 61 74 65 20 61 20 // Create a
03e0: 63 6f 6c 6f 72 20 6f 62 6a 65 63 74 0a 20 20 20 color object.
03f0: 20 6c 65 74 20 63 6f 6c 6f 72 20 3d 20 21 63 68 let color = !ch
0400: 2e 68 61 73 43 6f 6c 6f 72 28 29 20 3f 20 63 68 .hasColor() ? ch
0410: 2e 67 65 74 46 61 6c 6c 62 61 63 6b 43 6f 6c 6f .getFallbackColo
0420: 72 28 29 20 3a 20 63 68 2e 63 6f 6c 6f 72 2e 67 r() : ch.color.g
0430: 65 74 43 6c 6f 6e 65 28 29 3b 0a 0a 20 20 20 20 etClone();..
0440: 2f 2f 20 41 64 6a 75 73 74 20 74 68 65 20 67 75 // Adjust the gu
0450: 69 64 65 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 ide position.
0460: 20 73 6c 69 64 65 72 2e 67 75 69 64 65 53 74 79 slider.guideSty
0470: 6c 65 2e 6c 65 66 74 20 3d 20 6c 65 66 74 20 2b le.left = left +
0480: 20 27 70 78 27 3b 0a 20 20 20 20 73 6c 69 64 65 'px';. slide
0490: 72 2e 67 75 69 64 65 53 74 79 6c 65 2e 74 6f 70 r.guideStyle.top
04a0: 20 3d 20 74 6f 70 20 2b 20 27 70 78 27 3b 0a 0a = top + 'px';..
04b0: 20 20 20 20 2f 2f 20 41 64 6a 75 73 74 20 74 68 // Adjust th
04c0: 65 20 63 6f 6c 6f 72 0a 20 20 20 20 69 66 20 28 e color. if (
04d0: 73 6c 69 64 65 72 2e 63 61 6c 6c 4c 65 66 74 29 slider.callLeft)
04e0: 20 7b 0a 20 20 20 20 20 20 63 6f 6c 6f 72 5b 73 {. color[s
04f0: 6c 69 64 65 72 2e 63 61 6c 6c 4c 65 66 74 5d 28 lider.callLeft](
0500: 6c 65 66 74 20 2f 20 73 6c 69 64 65 72 2e 6d 61 left / slider.ma
0510: 78 4c 65 66 74 29 3b 0a 20 20 20 20 7d 0a 20 20 xLeft);. }.
0520: 20 20 69 66 20 28 73 6c 69 64 65 72 2e 63 61 6c if (slider.cal
0530: 6c 54 6f 70 29 20 7b 0a 20 20 20 20 20 20 63 6f lTop) {. co
0540: 6c 6f 72 5b 73 6c 69 64 65 72 2e 63 61 6c 6c 54 lor[slider.callT
0550: 6f 70 5d 28 74 6f 70 20 2f 20 73 6c 69 64 65 72 op](top / slider
0560: 2e 6d 61 78 54 6f 70 29 3b 0a 20 20 20 20 7d 0a .maxTop);. }.
0570: 0a 20 20 20 20 2f 2f 20 53 65 74 20 74 68 65 20 . // Set the
0580: 6e 65 77 20 63 6f 6c 6f 72 0a 20 20 20 20 63 70 new color. cp
0590: 2e 73 65 74 56 61 6c 75 65 28 63 6f 6c 6f 72 29 .setValue(color)
05a0: 3b 0a 20 20 20 20 63 70 2e 70 6f 70 75 70 48 61 ;. cp.popupHa
05b0: 6e 64 6c 65 72 2e 66 6f 63 75 73 28 29 3b 0a 20 ndler.focus();.
05c0: 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 42 }.. /**. * B
05d0: 69 6e 64 73 20 74 68 65 20 63 6f 6c 6f 72 70 69 inds the colorpi
05e0: 63 6b 65 72 20 73 6c 69 64 65 72 73 20 74 6f 20 cker sliders to
05f0: 74 68 65 20 6d 6f 75 73 65 2f 74 6f 75 63 68 20 the mouse/touch
0600: 65 76 65 6e 74 73 0a 20 20 20 2a 2f 0a 20 20 62 events. */. b
0610: 69 6e 64 28 29 20 7b 0a 20 20 20 20 6c 65 74 20 ind() {. let
0620: 73 6c 69 64 65 72 73 20 3d 20 74 68 69 73 2e 63 sliders = this.c
0630: 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 69 6f olorpicker.optio
0640: 6e 73 2e 68 6f 72 69 7a 6f 6e 74 61 6c 20 3f 20 ns.horizontal ?
0650: 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 this.colorpicker
0660: 0a 20 20 20 20 20 20 2e 6f 70 74 69 6f 6e 73 2e . .options.
0670: 73 6c 69 64 65 72 73 48 6f 72 7a 20 3a 20 74 68 slidersHorz : th
0680: 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f is.colorpicker.o
0690: 70 74 69 6f 6e 73 2e 73 6c 69 64 65 72 73 3b 0a ptions.sliders;.
06a0: 20 20 20 20 6c 65 74 20 73 6c 69 64 65 72 43 6c let sliderCl
06b0: 61 73 73 65 73 20 3d 20 5b 5d 3b 0a 0a 20 20 20 asses = [];..
06c0: 20 66 6f 72 20 28 6c 65 74 20 73 6c 69 64 65 72 for (let slider
06d0: 4e 61 6d 65 20 69 6e 20 73 6c 69 64 65 72 73 29 Name in sliders)
06e0: 20 7b 0a 20 20 20 20 20 20 69 66 20 28 21 73 6c {. if (!sl
06f0: 69 64 65 72 73 2e 68 61 73 4f 77 6e 50 72 6f 70 iders.hasOwnProp
0700: 65 72 74 79 28 73 6c 69 64 65 72 4e 61 6d 65 29 erty(sliderName)
0710: 29 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 ) {. cont
0720: 69 6e 75 65 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 inue;. }..
0730: 20 20 20 20 20 73 6c 69 64 65 72 43 6c 61 73 73 sliderClass
0740: 65 73 2e 70 75 73 68 28 73 6c 69 64 65 72 73 5b es.push(sliders[
0750: 73 6c 69 64 65 72 4e 61 6d 65 5d 2e 73 65 6c 65 sliderName].sele
0760: 63 74 6f 72 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 ctor);. }..
0770: 20 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b this.colorpick
0780: 65 72 2e 70 69 63 6b 65 72 2e 66 69 6e 64 28 73 er.picker.find(s
0790: 6c 69 64 65 72 43 6c 61 73 73 65 73 2e 6a 6f 69 liderClasses.joi
07a0: 6e 28 27 2c 20 27 29 29 0a 20 20 20 20 20 20 2e n(', ')). .
07b0: 6f 6e 28 27 6d 6f 75 73 65 64 6f 77 6e 2e 63 6f on('mousedown.co
07c0: 6c 6f 72 70 69 63 6b 65 72 20 74 6f 75 63 68 73 lorpicker touchs
07d0: 74 61 72 74 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 tart.colorpicker
07e0: 27 2c 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e ', $.proxy(this.
07f0: 70 72 65 73 73 65 64 2c 20 74 68 69 73 29 29 3b pressed, this));
0800: 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
0810: 20 55 6e 62 69 6e 64 73 20 61 6e 79 20 65 76 65 Unbinds any eve
0820: 6e 74 20 62 6f 75 6e 64 20 62 79 20 74 68 69 73 nt bound by this
0830: 20 68 61 6e 64 6c 65 72 0a 20 20 20 2a 2f 0a 20 handler. */.
0840: 20 75 6e 62 69 6e 64 28 29 20 7b 0a 20 20 20 20 unbind() {.
0850: 24 28 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b $(this.colorpick
0860: 65 72 2e 70 69 63 6b 65 72 29 2e 6f 66 66 28 7b er.picker).off({
0870: 0a 20 20 20 20 20 20 27 6d 6f 75 73 65 6d 6f 76 . 'mousemov
0880: 65 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 e.colorpicker':
0890: 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 6d 6f 76 $.proxy(this.mov
08a0: 65 64 2c 20 74 68 69 73 29 2c 0a 20 20 20 20 20 ed, this),.
08b0: 20 27 74 6f 75 63 68 6d 6f 76 65 2e 63 6f 6c 6f 'touchmove.colo
08c0: 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 72 6f 78 rpicker': $.prox
08d0: 79 28 74 68 69 73 2e 6d 6f 76 65 64 2c 20 74 68 y(this.moved, th
08e0: 69 73 29 2c 0a 20 20 20 20 20 20 27 6d 6f 75 73 is),. 'mous
08f0: 65 75 70 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27 eup.colorpicker'
0900: 3a 20 24 2e 70 72 6f 78 79 28 74 68 69 73 2e 72 : $.proxy(this.r
0910: 65 6c 65 61 73 65 64 2c 20 74 68 69 73 29 2c 0a eleased, this),.
0920: 20 20 20 20 20 20 27 74 6f 75 63 68 65 6e 64 2e 'touchend.
0930: 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e colorpicker': $.
0940: 70 72 6f 78 79 28 74 68 69 73 2e 72 65 6c 65 61 proxy(this.relea
0950: 73 65 64 2c 20 74 68 69 73 29 0a 20 20 20 20 7d sed, this). }
0960: 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
0970: 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 72 69 67 * Function trig
0980: 67 65 72 65 64 20 77 68 65 6e 20 63 6c 69 63 6b gered when click
0990: 69 6e 67 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 ing in one of th
09a0: 65 20 63 6f 6c 6f 72 20 61 64 6a 75 73 74 6d 65 e color adjustme
09b0: 6e 74 20 62 61 72 73 0a 20 20 20 2a 0a 20 20 20 nt bars. *.
09c0: 2a 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a 20 * @private. *
09d0: 40 66 69 72 65 73 20 43 6f 6c 6f 72 70 69 63 6b @fires Colorpick
09e0: 65 72 23 6d 6f 75 73 65 6d 6f 76 65 0a 20 20 20 er#mousemove.
09f0: 2a 20 40 70 61 72 61 6d 20 7b 45 76 65 6e 74 7d * @param {Event}
0a00: 20 65 0a 20 20 20 2a 2f 0a 20 20 70 72 65 73 73 e. */. press
0a10: 65 64 28 65 29 20 7b 0a 20 20 20 20 69 66 20 28 ed(e) {. if (
0a20: 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 this.colorpicker
0a30: 2e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b .isDisabled()) {
0a40: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 . return;.
0a50: 20 20 20 7d 0a 20 20 20 20 74 68 69 73 2e 63 6f }. this.co
0a60: 6c 6f 72 70 69 63 6b 65 72 2e 6c 61 73 74 45 76 lorpicker.lastEv
0a70: 65 6e 74 2e 61 6c 69 61 73 20 3d 20 27 70 72 65 ent.alias = 'pre
0a80: 73 73 65 64 27 3b 0a 20 20 20 20 74 68 69 73 2e ssed';. this.
0a90: 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6c 61 73 74 colorpicker.last
0aa0: 45 76 65 6e 74 2e 65 20 3d 20 65 3b 0a 0a 20 20 Event.e = e;..
0ab0: 20 20 69 66 20 28 21 65 2e 70 61 67 65 58 20 26 if (!e.pageX &
0ac0: 26 20 21 65 2e 70 61 67 65 59 20 26 26 20 65 2e & !e.pageY && e.
0ad0: 6f 72 69 67 69 6e 61 6c 45 76 65 6e 74 20 26 26 originalEvent &&
0ae0: 20 65 2e 6f 72 69 67 69 6e 61 6c 45 76 65 6e 74 e.originalEvent
0af0: 2e 74 6f 75 63 68 65 73 29 20 7b 0a 20 20 20 20 .touches) {.
0b00: 20 20 65 2e 70 61 67 65 58 20 3d 20 65 2e 6f 72 e.pageX = e.or
0b10: 69 67 69 6e 61 6c 45 76 65 6e 74 2e 74 6f 75 63 iginalEvent.touc
0b20: 68 65 73 5b 30 5d 2e 70 61 67 65 58 3b 0a 20 20 hes[0].pageX;.
0b30: 20 20 20 20 65 2e 70 61 67 65 59 20 3d 20 65 2e e.pageY = e.
0b40: 6f 72 69 67 69 6e 61 6c 45 76 65 6e 74 2e 74 6f originalEvent.to
0b50: 75 63 68 65 73 5b 30 5d 2e 70 61 67 65 59 3b 0a uches[0].pageY;.
0b60: 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 65 2e 73 }. // e.s
0b70: 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28 29 topPropagation()
0b80: 3b 0a 20 20 20 20 2f 2f 20 65 2e 70 72 65 76 65 ;. // e.preve
0b90: 6e 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 20 20 ntDefault();..
0ba0: 20 20 6c 65 74 20 74 61 72 67 65 74 20 3d 20 24 let target = $
0bb0: 28 65 2e 74 61 72 67 65 74 29 3b 0a 0a 20 20 20 (e.target);..
0bc0: 20 2f 2f 20 64 65 74 65 63 74 20 74 68 65 20 73 // detect the s
0bd0: 6c 69 64 65 72 20 61 6e 64 20 73 65 74 20 74 68 lider and set th
0be0: 65 20 6c 69 6d 69 74 73 20 61 6e 64 20 63 61 6c e limits and cal
0bf0: 6c 62 61 63 6b 73 0a 20 20 20 20 6c 65 74 20 7a lbacks. let z
0c00: 6f 6e 65 20 3d 20 74 61 72 67 65 74 2e 63 6c 6f one = target.clo
0c10: 73 65 73 74 28 27 64 69 76 27 29 3b 0a 20 20 20 sest('div');.
0c20: 20 6c 65 74 20 73 6c 69 64 65 72 73 20 3d 20 74 let sliders = t
0c30: 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e his.colorpicker.
0c40: 6f 70 74 69 6f 6e 73 2e 68 6f 72 69 7a 6f 6e 74 options.horizont
0c50: 61 6c 20 3f 20 74 68 69 73 2e 63 6f 6c 6f 72 70 al ? this.colorp
0c60: 69 63 6b 65 72 0a 20 20 20 20 20 20 2e 6f 70 74 icker. .opt
0c70: 69 6f 6e 73 2e 73 6c 69 64 65 72 73 48 6f 72 7a ions.slidersHorz
0c80: 20 3a 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 : this.colorpic
0c90: 6b 65 72 2e 6f 70 74 69 6f 6e 73 2e 73 6c 69 64 ker.options.slid
0ca0: 65 72 73 3b 0a 0a 20 20 20 20 69 66 20 28 7a 6f ers;.. if (zo
0cb0: 6e 65 2e 69 73 28 27 2e 63 6f 6c 6f 72 70 69 63 ne.is('.colorpic
0cc0: 6b 65 72 27 29 29 20 7b 0a 20 20 20 20 20 20 72 ker')) {. r
0cd0: 65 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 eturn;. }..
0ce0: 20 20 74 68 69 73 2e 63 75 72 72 65 6e 74 53 6c this.currentSl
0cf0: 69 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 ider = null;..
0d00: 20 20 66 6f 72 20 28 6c 65 74 20 73 6c 69 64 65 for (let slide
0d10: 72 4e 61 6d 65 20 69 6e 20 73 6c 69 64 65 72 73 rName in sliders
0d20: 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 21 73 ) {. if (!s
0d30: 6c 69 64 65 72 73 2e 68 61 73 4f 77 6e 50 72 6f liders.hasOwnPro
0d40: 70 65 72 74 79 28 73 6c 69 64 65 72 4e 61 6d 65 perty(sliderName
0d50: 29 29 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e )) {. con
0d60: 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 7d 0a 0a tinue;. }..
0d70: 20 20 20 20 20 20 6c 65 74 20 73 6c 69 64 65 72 let slider
0d80: 20 3d 20 73 6c 69 64 65 72 73 5b 73 6c 69 64 65 = sliders[slide
0d90: 72 4e 61 6d 65 5d 3b 0a 0a 20 20 20 20 20 20 69 rName];.. i
0da0: 66 20 28 7a 6f 6e 65 2e 69 73 28 73 6c 69 64 65 f (zone.is(slide
0db0: 72 2e 73 65 6c 65 63 74 6f 72 29 29 20 7b 0a 20 r.selector)) {.
0dc0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 72 this.curr
0dd0: 65 6e 74 53 6c 69 64 65 72 20 3d 20 24 2e 65 78 entSlider = $.ex
0de0: 74 65 6e 64 28 7b 7d 2c 20 73 6c 69 64 65 72 2c tend({}, slider,
0df0: 20 7b 6e 61 6d 65 3a 20 73 6c 69 64 65 72 4e 61 {name: sliderNa
0e00: 6d 65 7d 29 3b 0a 20 20 20 20 20 20 20 20 62 72 me});. br
0e10: 65 61 6b 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 eak;. } els
0e20: 65 20 69 66 20 28 73 6c 69 64 65 72 2e 63 68 69 e if (slider.chi
0e30: 6c 64 53 65 6c 65 63 74 6f 72 20 21 3d 3d 20 75 ldSelector !== u
0e40: 6e 64 65 66 69 6e 65 64 20 26 26 20 7a 6f 6e 65 ndefined && zone
0e50: 2e 69 73 28 73 6c 69 64 65 72 2e 63 68 69 6c 64 .is(slider.child
0e60: 53 65 6c 65 63 74 6f 72 29 29 20 7b 0a 20 20 20 Selector)) {.
0e70: 20 20 20 20 20 74 68 69 73 2e 63 75 72 72 65 6e this.curren
0e80: 74 53 6c 69 64 65 72 20 3d 20 24 2e 65 78 74 65 tSlider = $.exte
0e90: 6e 64 28 7b 7d 2c 20 73 6c 69 64 65 72 2c 20 7b nd({}, slider, {
0ea0: 6e 61 6d 65 3a 20 73 6c 69 64 65 72 4e 61 6d 65 name: sliderName
0eb0: 7d 29 3b 0a 20 20 20 20 20 20 20 20 7a 6f 6e 65 });. zone
0ec0: 20 3d 20 7a 6f 6e 65 2e 70 61 72 65 6e 74 28 29 = zone.parent()
0ed0: 3b 20 2f 2f 20 7a 6f 6e 65 2e 70 61 72 65 6e 74 ; // zone.parent
0ee0: 73 28 73 6c 69 64 65 72 2e 73 65 6c 65 63 74 6f s(slider.selecto
0ef0: 72 29 2e 66 69 72 73 74 28 29 20 3f 0a 20 20 20 r).first() ?.
0f00: 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 break;.
0f10: 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6c }. }.. l
0f20: 65 74 20 67 75 69 64 65 20 3d 20 7a 6f 6e 65 2e et guide = zone.
0f30: 66 69 6e 64 28 27 2e 63 6f 6c 6f 72 70 69 63 6b find('.colorpick
0f40: 65 72 2d 67 75 69 64 65 27 29 2e 67 65 74 28 30 er-guide').get(0
0f50: 29 3b 0a 0a 20 20 20 20 69 66 20 28 74 68 69 73 );.. if (this
0f60: 2e 63 75 72 72 65 6e 74 53 6c 69 64 65 72 20 3d .currentSlider =
0f70: 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 67 75 69 64 65 == null || guide
0f80: 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 === null) {.
0f90: 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d return;. }
0fa0: 0a 0a 20 20 20 20 6c 65 74 20 6f 66 66 73 65 74 .. let offset
0fb0: 20 3d 20 7a 6f 6e 65 2e 6f 66 66 73 65 74 28 29 = zone.offset()
0fc0: 3b 0a 0a 20 20 20 20 2f 2f 20 72 65 66 65 72 65 ;.. // refere
0fd0: 6e 63 65 20 74 6f 20 67 75 69 64 65 27 73 20 73 nce to guide's s
0fe0: 74 79 6c 65 0a 20 20 20 20 74 68 69 73 2e 63 75 tyle. this.cu
0ff0: 72 72 65 6e 74 53 6c 69 64 65 72 2e 67 75 69 64 rrentSlider.guid
1000: 65 53 74 79 6c 65 20 3d 20 67 75 69 64 65 2e 73 eStyle = guide.s
1010: 74 79 6c 65 3b 0a 20 20 20 20 74 68 69 73 2e 63 tyle;. this.c
1020: 75 72 72 65 6e 74 53 6c 69 64 65 72 2e 6c 65 66 urrentSlider.lef
1030: 74 20 3d 20 65 2e 70 61 67 65 58 20 2d 20 6f 66 t = e.pageX - of
1040: 66 73 65 74 2e 6c 65 66 74 3b 0a 20 20 20 20 74 fset.left;. t
1050: 68 69 73 2e 63 75 72 72 65 6e 74 53 6c 69 64 65 his.currentSlide
1060: 72 2e 74 6f 70 20 3d 20 65 2e 70 61 67 65 59 20 r.top = e.pageY
1070: 2d 20 6f 66 66 73 65 74 2e 74 6f 70 3b 0a 20 20 - offset.top;.
1080: 20 20 74 68 69 73 2e 6d 6f 75 73 65 50 6f 69 6e this.mousePoin
1090: 74 65 72 20 3d 20 7b 0a 20 20 20 20 20 20 6c 65 ter = {. le
10a0: 66 74 3a 20 65 2e 70 61 67 65 58 2c 0a 20 20 20 ft: e.pageX,.
10b0: 20 20 20 74 6f 70 3a 20 65 2e 70 61 67 65 59 0a top: e.pageY.
10c0: 20 20 20 20 7d 3b 0a 0a 20 20 20 20 2f 2f 20 54 };.. // T
10d0: 4f 44 4f 3a 20 66 69 78 20 6d 6f 76 69 6e 67 20 ODO: fix moving
10e0: 6f 75 74 73 69 64 65 20 74 68 65 20 70 69 63 6b outside the pick
10f0: 65 72 20 6d 61 6b 65 73 20 74 68 65 20 67 75 69 er makes the gui
1100: 64 65 73 20 74 6f 20 6b 65 65 70 20 6d 6f 76 69 des to keep movi
1110: 6e 67 2e 20 54 68 65 20 65 76 65 6e 74 20 6e 65 ng. The event ne
1120: 65 64 73 20 74 6f 20 62 65 20 62 6f 75 6e 64 20 eds to be bound
1130: 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 2e 0a 20 to the window..
1140: 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 28 77 /**. * (w
1150: 69 6e 64 6f 77 2e 64 6f 63 75 6d 65 6e 74 29 20 indow.document)
1160: 54 72 69 67 67 65 72 65 64 20 6f 6e 20 6d 6f 75 Triggered on mou
1170: 73 65 64 6f 77 6e 20 66 6f 72 20 74 68 65 20 64 sedown for the d
1180: 6f 63 75 6d 65 6e 74 20 6f 62 6a 65 63 74 2c 0a ocument object,.
1190: 20 20 20 20 20 2a 20 73 6f 20 74 68 65 20 63 6f * so the co
11a0: 6c 6f 72 20 61 64 6a 75 73 74 6d 65 6e 74 20 67 lor adjustment g
11b0: 75 69 64 65 20 69 73 20 6d 6f 76 65 64 20 74 6f uide is moved to
11c0: 20 74 68 65 20 63 6c 69 63 6b 65 64 20 70 6f 73 the clicked pos
11d0: 69 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 0a 20 20 ition.. *.
11e0: 20 20 20 2a 20 40 65 76 65 6e 74 20 43 6f 6c 6f * @event Colo
11f0: 72 70 69 63 6b 65 72 23 6d 6f 75 73 65 6d 6f 76 rpicker#mousemov
1200: 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 24 28 e. */. $(
1210: 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 this.colorpicker
1220: 2e 70 69 63 6b 65 72 29 2e 6f 6e 28 7b 0a 20 20 .picker).on({.
1230: 20 20 20 20 27 6d 6f 75 73 65 6d 6f 76 65 2e 63 'mousemove.c
1240: 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 olorpicker': $.p
1250: 72 6f 78 79 28 74 68 69 73 2e 6d 6f 76 65 64 2c roxy(this.moved,
1260: 20 74 68 69 73 29 2c 0a 20 20 20 20 20 20 27 74 this),. 't
1270: 6f 75 63 68 6d 6f 76 65 2e 63 6f 6c 6f 72 70 69 ouchmove.colorpi
1280: 63 6b 65 72 27 3a 20 24 2e 70 72 6f 78 79 28 74 cker': $.proxy(t
1290: 68 69 73 2e 6d 6f 76 65 64 2c 20 74 68 69 73 29 his.moved, this)
12a0: 2c 0a 20 20 20 20 20 20 27 6d 6f 75 73 65 75 70 ,. 'mouseup
12b0: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 24 .colorpicker': $
12c0: 2e 70 72 6f 78 79 28 74 68 69 73 2e 72 65 6c 65 .proxy(this.rele
12d0: 61 73 65 64 2c 20 74 68 69 73 29 2c 0a 20 20 20 ased, this),.
12e0: 20 20 20 27 74 6f 75 63 68 65 6e 64 2e 63 6f 6c 'touchend.col
12f0: 6f 72 70 69 63 6b 65 72 27 3a 20 24 2e 70 72 6f orpicker': $.pro
1300: 78 79 28 74 68 69 73 2e 72 65 6c 65 61 73 65 64 xy(this.released
1310: 2c 20 74 68 69 73 29 0a 20 20 20 20 7d 29 2e 74 , this). }).t
1320: 72 69 67 67 65 72 28 27 6d 6f 75 73 65 6d 6f 76 rigger('mousemov
1330: 65 27 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a e');. }.. /**.
1340: 20 20 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 72 * Function tr
1350: 69 67 67 65 72 65 64 20 77 68 65 6e 20 64 72 61 iggered when dra
1360: 67 67 69 6e 67 20 61 20 67 75 69 64 65 20 69 6e gging a guide in
1370: 73 69 64 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 side one of the
1380: 63 6f 6c 6f 72 20 61 64 6a 75 73 74 6d 65 6e 74 color adjustment
1390: 20 62 61 72 73 2e 0a 20 20 20 2a 0a 20 20 20 2a bars.. *. *
13a0: 20 40 70 72 69 76 61 74 65 0a 20 20 20 2a 20 40 @private. * @
13b0: 70 61 72 61 6d 20 7b 45 76 65 6e 74 7d 20 65 0a param {Event} e.
13c0: 20 20 20 2a 2f 0a 20 20 6d 6f 76 65 64 28 65 29 */. moved(e)
13d0: 20 7b 0a 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f {. this.colo
13e0: 72 70 69 63 6b 65 72 2e 6c 61 73 74 45 76 65 6e rpicker.lastEven
13f0: 74 2e 61 6c 69 61 73 20 3d 20 27 6d 6f 76 65 64 t.alias = 'moved
1400: 27 3b 0a 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f ';. this.colo
1410: 72 70 69 63 6b 65 72 2e 6c 61 73 74 45 76 65 6e rpicker.lastEven
1420: 74 2e 65 20 3d 20 65 3b 0a 0a 20 20 20 20 69 66 t.e = e;.. if
1430: 20 28 21 65 2e 70 61 67 65 58 20 26 26 20 21 65 (!e.pageX && !e
1440: 2e 70 61 67 65 59 20 26 26 20 65 2e 6f 72 69 67 .pageY && e.orig
1450: 69 6e 61 6c 45 76 65 6e 74 20 26 26 20 65 2e 6f inalEvent && e.o
1460: 72 69 67 69 6e 61 6c 45 76 65 6e 74 2e 74 6f 75 riginalEvent.tou
1470: 63 68 65 73 29 20 7b 0a 20 20 20 20 20 20 65 2e ches) {. e.
1480: 70 61 67 65 58 20 3d 20 65 2e 6f 72 69 67 69 6e pageX = e.origin
1490: 61 6c 45 76 65 6e 74 2e 74 6f 75 63 68 65 73 5b alEvent.touches[
14a0: 30 5d 2e 70 61 67 65 58 3b 0a 20 20 20 20 20 20 0].pageX;.
14b0: 65 2e 70 61 67 65 59 20 3d 20 65 2e 6f 72 69 67 e.pageY = e.orig
14c0: 69 6e 61 6c 45 76 65 6e 74 2e 74 6f 75 63 68 65 inalEvent.touche
14d0: 73 5b 30 5d 2e 70 61 67 65 59 3b 0a 20 20 20 20 s[0].pageY;.
14e0: 7d 0a 0a 20 20 20 20 2f 2f 20 65 2e 73 74 6f 70 }.. // e.stop
14f0: 50 72 6f 70 61 67 61 74 69 6f 6e 28 29 3b 0a 20 Propagation();.
1500: 20 20 20 65 2e 70 72 65 76 65 6e 74 44 65 66 61 e.preventDefa
1510: 75 6c 74 28 29 3b 20 2f 2f 20 70 72 65 76 65 6e ult(); // preven
1520: 74 73 20 73 63 72 6f 6c 6c 69 6e 67 20 6f 6e 20 ts scrolling on
1530: 6d 6f 62 69 6c 65 0a 0a 20 20 20 20 6c 65 74 20 mobile.. let
1540: 6c 65 66 74 20 3d 20 4d 61 74 68 2e 6d 61 78 28 left = Math.max(
1550: 0a 20 20 20 20 20 20 30 2c 0a 20 20 20 20 20 20 . 0,.
1560: 4d 61 74 68 2e 6d 69 6e 28 0a 20 20 20 20 20 20 Math.min(.
1570: 20 20 74 68 69 73 2e 63 75 72 72 65 6e 74 53 6c this.currentSl
1580: 69 64 65 72 2e 6d 61 78 4c 65 66 74 2c 0a 20 20 ider.maxLeft,.
1590: 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 72 65 this.curre
15a0: 6e 74 53 6c 69 64 65 72 2e 6c 65 66 74 20 2b 20 ntSlider.left +
15b0: 28 28 65 2e 70 61 67 65 58 20 7c 7c 20 74 68 69 ((e.pageX || thi
15c0: 73 2e 6d 6f 75 73 65 50 6f 69 6e 74 65 72 2e 6c s.mousePointer.l
15d0: 65 66 74 29 20 2d 20 74 68 69 73 2e 6d 6f 75 73 eft) - this.mous
15e0: 65 50 6f 69 6e 74 65 72 2e 6c 65 66 74 29 0a 20 ePointer.left).
15f0: 20 20 20 20 20 29 0a 20 20 20 20 29 3b 0a 0a 20 ). );..
1600: 20 20 20 6c 65 74 20 74 6f 70 20 3d 20 4d 61 74 let top = Mat
1610: 68 2e 6d 61 78 28 0a 20 20 20 20 20 20 30 2c 0a h.max(. 0,.
1620: 20 20 20 20 20 20 4d 61 74 68 2e 6d 69 6e 28 0a Math.min(.
1630: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 this.cur
1640: 72 65 6e 74 53 6c 69 64 65 72 2e 6d 61 78 54 6f rentSlider.maxTo
1650: 70 2c 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e p,. this.
1660: 63 75 72 72 65 6e 74 53 6c 69 64 65 72 2e 74 6f currentSlider.to
1670: 70 20 2b 20 28 28 65 2e 70 61 67 65 59 20 7c 7c p + ((e.pageY ||
1680: 20 74 68 69 73 2e 6d 6f 75 73 65 50 6f 69 6e 74 this.mousePoint
1690: 65 72 2e 74 6f 70 29 20 2d 20 74 68 69 73 2e 6d er.top) - this.m
16a0: 6f 75 73 65 50 6f 69 6e 74 65 72 2e 74 6f 70 29 ousePointer.top)
16b0: 0a 20 20 20 20 20 20 29 0a 20 20 20 20 29 3b 0a . ). );.
16c0: 0a 20 20 20 20 74 68 69 73 2e 6f 6e 4d 6f 76 65 . this.onMove
16d0: 28 74 6f 70 2c 20 6c 65 66 74 29 3b 0a 20 20 7d (top, left);. }
16e0: 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 46 75 6e .. /**. * Fun
16f0: 63 74 69 6f 6e 20 74 72 69 67 67 65 72 65 64 20 ction triggered
1700: 77 68 65 6e 20 72 65 6c 65 61 73 69 6e 67 20 74 when releasing t
1710: 68 65 20 63 6c 69 63 6b 20 69 6e 20 6f 6e 65 20 he click in one
1720: 6f 66 20 74 68 65 20 63 6f 6c 6f 72 20 61 64 6a of the color adj
1730: 75 73 74 6d 65 6e 74 20 62 61 72 73 2e 0a 20 20 ustment bars..
1740: 20 2a 0a 20 20 20 2a 20 40 70 72 69 76 61 74 65 *. * @private
1750: 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 45 76 . * @param {Ev
1760: 65 6e 74 7d 20 65 0a 20 20 20 2a 2f 0a 20 20 72 ent} e. */. r
1770: 65 6c 65 61 73 65 64 28 65 29 20 7b 0a 20 20 20 eleased(e) {.
1780: 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 this.colorpicke
1790: 72 2e 6c 61 73 74 45 76 65 6e 74 2e 61 6c 69 61 r.lastEvent.alia
17a0: 73 20 3d 20 27 72 65 6c 65 61 73 65 64 27 3b 0a s = 'released';.
17b0: 20 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 this.colorpi
17c0: 63 6b 65 72 2e 6c 61 73 74 45 76 65 6e 74 2e 65 cker.lastEvent.e
17d0: 20 3d 20 65 3b 0a 0a 20 20 20 20 2f 2f 20 65 2e = e;.. // e.
17e0: 73 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28 stopPropagation(
17f0: 29 3b 0a 20 20 20 20 2f 2f 20 65 2e 70 72 65 76 );. // e.prev
1800: 65 6e 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 20 entDefault();..
1810: 20 20 20 24 28 74 68 69 73 2e 63 6f 6c 6f 72 70 $(this.colorp
1820: 69 63 6b 65 72 2e 70 69 63 6b 65 72 29 2e 6f 66 icker.picker).of
1830: 66 28 7b 0a 20 20 20 20 20 20 27 6d 6f 75 73 65 f({. 'mouse
1840: 6d 6f 76 65 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 move.colorpicker
1850: 27 3a 20 74 68 69 73 2e 6d 6f 76 65 64 2c 0a 20 ': this.moved,.
1860: 20 20 20 20 20 27 74 6f 75 63 68 6d 6f 76 65 2e 'touchmove.
1870: 63 6f 6c 6f 72 70 69 63 6b 65 72 27 3a 20 74 68 colorpicker': th
1880: 69 73 2e 6d 6f 76 65 64 2c 0a 20 20 20 20 20 20 is.moved,.
1890: 27 6d 6f 75 73 65 75 70 2e 63 6f 6c 6f 72 70 69 'mouseup.colorpi
18a0: 63 6b 65 72 27 3a 20 74 68 69 73 2e 72 65 6c 65 cker': this.rele
18b0: 61 73 65 64 2c 0a 20 20 20 20 20 20 27 74 6f 75 ased,. 'tou
18c0: 63 68 65 6e 64 2e 63 6f 6c 6f 72 70 69 63 6b 65 chend.colorpicke
18d0: 72 27 3a 20 74 68 69 73 2e 72 65 6c 65 61 73 65 r': this.release
18e0: 64 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 0a 7d 0a d. });. }.}.
18f0: 0a 65 78 70 6f 72 74 20 64 65 66 61 75 6c 74 20 .export default
1900: 53 6c 69 64 65 72 48 61 6e 64 6c 65 72 3b 0a SliderHandler;.