Artifact
37c4654141865f5fbd44edb4dc56909636e232a3372085dac39a5a8581dcf867:
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 43 6f uery';.import Co
0030: 6c 6f 72 49 74 65 6d 20 66 72 6f 6d 20 27 2e 2f lorItem from './
0040: 43 6f 6c 6f 72 49 74 65 6d 27 3b 0a 0a 2f 2a 2a ColorItem';../**
0050: 0a 20 2a 20 48 61 6e 64 6c 65 73 20 65 76 65 72 . * Handles ever
0060: 79 74 68 69 6e 67 20 72 65 6c 61 74 65 64 20 74 ything related t
0070: 6f 20 74 68 65 20 63 6f 6c 6f 72 70 69 63 6b 65 o the colorpicke
0080: 72 20 63 6f 6c 6f 72 0a 20 2a 20 40 69 67 6e 6f r color. * @igno
0090: 72 65 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6f 6c re. */.class Col
00a0: 6f 72 48 61 6e 64 6c 65 72 20 7b 0a 20 20 2f 2a orHandler {. /*
00b0: 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 43 *. * @param {C
00c0: 6f 6c 6f 72 70 69 63 6b 65 72 7d 20 63 6f 6c 6f olorpicker} colo
00d0: 72 70 69 63 6b 65 72 0a 20 20 20 2a 2f 0a 20 20 rpicker. */.
00e0: 63 6f 6e 73 74 72 75 63 74 6f 72 28 63 6f 6c 6f constructor(colo
00f0: 72 70 69 63 6b 65 72 29 20 7b 0a 20 20 20 20 2f rpicker) {. /
0100: 2a 2a 0a 20 20 20 20 20 2a 20 40 74 79 70 65 20 **. * @type
0110: 7b 43 6f 6c 6f 72 70 69 63 6b 65 72 7d 0a 20 20 {Colorpicker}.
0120: 20 20 20 2a 2f 0a 20 20 20 20 74 68 69 73 2e 63 */. this.c
0130: 6f 6c 6f 72 70 69 63 6b 65 72 20 3d 20 63 6f 6c olorpicker = col
0140: 6f 72 70 69 63 6b 65 72 3b 0a 20 20 7d 0a 0a 20 orpicker;. }..
0150: 20 2f 2a 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 /**. * @retur
0160: 6e 73 20 7b 2a 7c 53 74 72 69 6e 67 7c 43 6f 6c ns {*|String|Col
0170: 6f 72 49 74 65 6d 7d 0a 20 20 20 2a 2f 0a 20 20 orItem}. */.
0180: 67 65 74 20 66 61 6c 6c 62 61 63 6b 28 29 20 7b get fallback() {
0190: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 . return this
01a0: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 .colorpicker.opt
01b0: 69 6f 6e 73 2e 66 61 6c 6c 62 61 63 6b 43 6f 6c ions.fallbackCol
01c0: 6f 72 20 3f 0a 20 20 20 20 20 20 74 68 69 73 2e or ?. this.
01d0: 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 69 colorpicker.opti
01e0: 6f 6e 73 2e 66 61 6c 6c 62 61 63 6b 43 6f 6c 6f ons.fallbackColo
01f0: 72 20 3a 20 28 74 68 69 73 2e 68 61 73 43 6f 6c r : (this.hasCol
0200: 6f 72 28 29 20 3f 20 74 68 69 73 2e 63 6f 6c 6f or() ? this.colo
0210: 72 20 3a 20 6e 75 6c 6c 29 3b 0a 20 20 7d 0a 0a r : null);. }..
0220: 20 20 2f 2a 2a 0a 20 20 20 2a 20 40 72 65 74 75 /**. * @retu
0230: 72 6e 73 20 7b 53 74 72 69 6e 67 7c 6e 75 6c 6c rns {String|null
0240: 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 20 66 6f }. */. get fo
0250: 72 6d 61 74 28 29 20 7b 0a 20 20 20 20 69 66 20 rmat() {. if
0260: 28 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 (this.colorpicke
0270: 72 2e 6f 70 74 69 6f 6e 73 2e 66 6f 72 6d 61 74 r.options.format
0280: 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e ) {. return
0290: 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 this.colorpicke
02a0: 72 2e 6f 70 74 69 6f 6e 73 2e 66 6f 72 6d 61 74 r.options.format
02b0: 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 ;. }.. if
02c0: 28 74 68 69 73 2e 68 61 73 43 6f 6c 6f 72 28 29 (this.hasColor()
02d0: 20 26 26 20 74 68 69 73 2e 63 6f 6c 6f 72 2e 68 && this.color.h
02e0: 61 73 54 72 61 6e 73 70 61 72 65 6e 63 79 28 29 asTransparency()
02f0: 20 26 26 20 74 68 69 73 2e 63 6f 6c 6f 72 2e 66 && this.color.f
0300: 6f 72 6d 61 74 2e 6d 61 74 63 68 28 2f 5e 68 65 ormat.match(/^he
0310: 78 2f 29 29 20 7b 0a 20 20 20 20 20 20 72 65 74 x/)) {. ret
0320: 75 72 6e 20 74 68 69 73 2e 69 73 41 6c 70 68 61 urn this.isAlpha
0330: 45 6e 61 62 6c 65 64 28 29 20 3f 20 27 72 67 62 Enabled() ? 'rgb
0340: 61 27 20 3a 20 27 68 65 78 27 3b 0a 20 20 20 20 a' : 'hex';.
0350: 7d 0a 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e }.. if (this.
0360: 68 61 73 43 6f 6c 6f 72 28 29 29 20 7b 0a 20 20 hasColor()) {.
0370: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
0380: 63 6f 6c 6f 72 2e 66 6f 72 6d 61 74 3b 0a 20 20 color.format;.
0390: 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 }.. return
03a0: 27 72 67 62 27 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 'rgb';. }.. /*
03b0: 2a 0a 20 20 20 2a 20 49 6e 74 65 72 6e 61 6c 20 *. * Internal
03c0: 63 6f 6c 6f 72 20 67 65 74 74 65 72 0a 20 20 20 color getter.
03d0: 2a 0a 20 20 20 2a 20 40 74 79 70 65 20 7b 43 6f *. * @type {Co
03e0: 6c 6f 72 49 74 65 6d 7c 6e 75 6c 6c 7d 0a 20 20 lorItem|null}.
03f0: 20 2a 2f 0a 20 20 67 65 74 20 63 6f 6c 6f 72 28 */. get color(
0400: 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 ) {. return t
0410: 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e his.colorpicker.
0420: 65 6c 65 6d 65 6e 74 2e 64 61 74 61 28 27 63 6f element.data('co
0430: 6c 6f 72 27 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a lor');. }.. /*
0440: 2a 0a 20 20 20 2a 20 49 6e 74 65 72 6e 61 6c 20 *. * Internal
0450: 63 6f 6c 6f 72 20 73 65 74 74 65 72 0a 20 20 20 color setter.
0460: 2a 0a 20 20 20 2a 20 40 69 67 6e 6f 72 65 0a 20 *. * @ignore.
0470: 20 20 2a 20 40 70 61 72 61 6d 20 7b 43 6f 6c 6f * @param {Colo
0480: 72 49 74 65 6d 7c 6e 75 6c 6c 7d 20 76 61 6c 75 rItem|null} valu
0490: 65 0a 20 20 20 2a 2f 0a 20 20 73 65 74 20 63 6f e. */. set co
04a0: 6c 6f 72 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 lor(value) {.
04b0: 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 this.colorpicke
04c0: 72 2e 65 6c 65 6d 65 6e 74 2e 64 61 74 61 28 27 r.element.data('
04d0: 63 6f 6c 6f 72 27 2c 20 76 61 6c 75 65 29 3b 0a color', value);.
04e0: 0a 20 20 20 20 69 66 20 28 28 76 61 6c 75 65 20 . if ((value
04f0: 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6c 6f 72 instanceof Color
0500: 49 74 65 6d 29 20 26 26 20 28 74 68 69 73 2e 63 Item) && (this.c
0510: 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 69 6f olorpicker.optio
0520: 6e 73 2e 66 6f 72 6d 61 74 20 3d 3d 3d 20 27 61 ns.format === 'a
0530: 75 74 6f 27 29 29 20 7b 0a 20 20 20 20 20 20 2f uto')) {. /
0540: 2f 20 49 66 20 66 6f 72 6d 61 74 20 69 73 20 27 / If format is '
0550: 61 75 74 6f 27 2c 20 75 73 65 20 74 68 65 20 66 auto', use the f
0560: 69 72 73 74 20 70 61 72 73 65 64 20 6f 6e 65 20 irst parsed one
0570: 66 72 6f 6d 20 6e 6f 77 20 6f 6e 0a 20 20 20 20 from now on.
0580: 20 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b this.colorpick
0590: 65 72 2e 6f 70 74 69 6f 6e 73 2e 66 6f 72 6d 61 er.options.forma
05a0: 74 20 3d 20 74 68 69 73 2e 63 6f 6c 6f 72 2e 66 t = this.color.f
05b0: 6f 72 6d 61 74 3b 0a 20 20 20 20 7d 0a 20 20 7d ormat;. }. }
05c0: 0a 0a 20 20 62 69 6e 64 28 29 20 7b 0a 20 20 20 .. bind() {.
05d0: 20 2f 2f 20 69 66 20 74 68 65 20 63 6f 6c 6f 72 // if the color
05e0: 20 6f 70 74 69 6f 6e 20 69 73 20 73 65 74 0a 20 option is set.
05f0: 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6c 6f if (this.colo
0600: 72 70 69 63 6b 65 72 2e 6f 70 74 69 6f 6e 73 2e rpicker.options.
0610: 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 20 20 74 color) {. t
0620: 68 69 73 2e 63 6f 6c 6f 72 20 3d 20 74 68 69 73 his.color = this
0630: 2e 63 72 65 61 74 65 43 6f 6c 6f 72 28 74 68 69 .createColor(thi
0640: 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 s.colorpicker.op
0650: 74 69 6f 6e 73 2e 63 6f 6c 6f 72 29 3b 0a 20 20 tions.color);.
0660: 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 return;.
0670: 7d 0a 0a 20 20 20 20 2f 2f 20 69 66 20 65 6c 65 }.. // if ele
0680: 6d 65 6e 74 5b 63 6f 6c 6f 72 5d 20 69 73 20 65 ment[color] is e
0690: 6d 70 74 79 20 61 6e 64 20 74 68 65 20 69 6e 70 mpty and the inp
06a0: 75 74 20 68 61 73 20 61 20 76 61 6c 75 65 0a 20 ut has a value.
06b0: 20 20 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6c if (!this.col
06c0: 6f 72 20 26 26 20 21 21 74 68 69 73 2e 63 6f 6c or && !!this.col
06d0: 6f 72 70 69 63 6b 65 72 2e 69 6e 70 75 74 48 61 orpicker.inputHa
06e0: 6e 64 6c 65 72 2e 67 65 74 56 61 6c 75 65 28 29 ndler.getValue()
06f0: 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e 63 ) {. this.c
0700: 6f 6c 6f 72 20 3d 20 74 68 69 73 2e 63 72 65 61 olor = this.crea
0710: 74 65 43 6f 6c 6f 72 28 0a 20 20 20 20 20 20 20 teColor(.
0720: 20 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b 65 this.colorpicke
0730: 72 2e 69 6e 70 75 74 48 61 6e 64 6c 65 72 2e 67 r.inputHandler.g
0740: 65 74 56 61 6c 75 65 28 29 2c 20 74 68 69 73 2e etValue(), this.
0750: 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 6f 70 74 69 colorpicker.opti
0760: 6f 6e 73 2e 61 75 74 6f 49 6e 70 75 74 46 61 6c ons.autoInputFal
0770: 6c 62 61 63 6b 0a 20 20 20 20 20 20 29 3b 0a 20 lback. );.
0780: 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 75 6e 62 69 }. }.. unbi
0790: 6e 64 28 29 20 7b 0a 20 20 20 20 74 68 69 73 2e nd() {. this.
07a0: 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 65 6c 65 6d colorpicker.elem
07b0: 65 6e 74 2e 72 65 6d 6f 76 65 44 61 74 61 28 27 ent.removeData('
07c0: 63 6f 6c 6f 72 27 29 3b 0a 20 20 7d 0a 0a 20 20 color');. }..
07d0: 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 /**. * Returns
07e0: 20 74 68 65 20 63 6f 6c 6f 72 20 73 74 72 69 6e the color strin
07f0: 67 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 75 74 g from the input
0800: 20 76 61 6c 75 65 20 6f 72 20 74 68 65 20 27 64 value or the 'd
0810: 61 74 61 2d 63 6f 6c 6f 72 27 20 61 74 74 72 69 ata-color' attri
0820: 62 75 74 65 20 6f 66 20 74 68 65 20 69 6e 70 75 bute of the inpu
0830: 74 20 6f 72 20 65 6c 65 6d 65 6e 74 2e 0a 20 20 t or element..
0840: 20 2a 20 49 66 20 65 6d 70 74 79 2c 20 69 74 20 * If empty, it
0850: 72 65 74 75 72 6e 73 20 74 68 65 20 64 65 66 61 returns the defa
0860: 75 6c 74 56 61 6c 75 65 20 70 61 72 61 6d 65 74 ultValue paramet
0870: 65 72 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 er.. *. * @r
0880: 65 74 75 72 6e 73 20 7b 53 74 72 69 6e 67 7c 2a eturns {String|*
0890: 7d 0a 20 20 20 2a 2f 0a 20 20 67 65 74 43 6f 6c }. */. getCol
08a0: 6f 72 53 74 72 69 6e 67 28 29 20 7b 0a 20 20 20 orString() {.
08b0: 20 69 66 20 28 21 74 68 69 73 2e 68 61 73 43 6f if (!this.hasCo
08c0: 6c 6f 72 28 29 29 20 7b 0a 20 20 20 20 20 20 72 lor()) {. r
08d0: 65 74 75 72 6e 20 27 27 3b 0a 20 20 20 20 7d 0a eturn '';. }.
08e0: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 . return this
08f0: 2e 63 6f 6c 6f 72 2e 73 74 72 69 6e 67 28 74 68 .color.string(th
0900: 69 73 2e 66 6f 72 6d 61 74 29 3b 0a 20 20 7d 0a is.format);. }.
0910: 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 73 . /**. * Sets
0920: 20 74 68 65 20 63 6f 6c 6f 72 20 76 61 6c 75 65 the color value
0930: 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 . *. * @para
0940: 6d 20 7b 53 74 72 69 6e 67 7c 43 6f 6c 6f 72 49 m {String|ColorI
0950: 74 65 6d 7d 20 76 61 6c 0a 20 20 20 2a 2f 0a 20 tem} val. */.
0960: 20 73 65 74 43 6f 6c 6f 72 53 74 72 69 6e 67 28 setColorString(
0970: 76 61 6c 29 20 7b 0a 20 20 20 20 6c 65 74 20 63 val) {. let c
0980: 6f 6c 6f 72 20 3d 20 76 61 6c 20 3f 20 74 68 69 olor = val ? thi
0990: 73 2e 63 72 65 61 74 65 43 6f 6c 6f 72 28 76 61 s.createColor(va
09a0: 6c 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 l) : null;..
09b0: 74 68 69 73 2e 63 6f 6c 6f 72 20 3d 20 63 6f 6c this.color = col
09c0: 6f 72 20 3f 20 63 6f 6c 6f 72 20 3a 20 6e 75 6c or ? color : nul
09d0: 6c 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 l;. }.. /**.
09e0: 20 2a 20 43 72 65 61 74 65 73 20 61 20 6e 65 77 * Creates a new
09f0: 20 63 6f 6c 6f 72 20 75 73 69 6e 67 20 74 68 65 color using the
0a00: 20 77 69 64 67 65 74 20 69 6e 73 74 61 6e 63 65 widget instance
0a10: 20 6f 70 74 69 6f 6e 73 20 28 66 61 6c 6c 62 61 options (fallba
0a20: 63 6b 43 6f 6c 6f 72 2c 20 66 6f 72 6d 61 74 29 ckColor, format)
0a30: 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 66 69 72 .. *. * @fir
0a40: 65 73 20 43 6f 6c 6f 72 70 69 63 6b 65 72 23 63 es Colorpicker#c
0a50: 6f 6c 6f 72 70 69 63 6b 65 72 49 6e 76 61 6c 69 olorpickerInvali
0a60: 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 2a d. * @param {*
0a70: 7d 20 76 61 6c 0a 20 20 20 2a 20 40 70 61 72 61 } val. * @para
0a80: 6d 20 7b 62 6f 6f 6c 65 61 6e 7d 20 66 61 6c 6c m {boolean} fall
0a90: 62 61 63 6b 4f 6e 49 6e 76 61 6c 69 64 0a 20 20 backOnInvalid.
0aa0: 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 43 6f 6c * @returns {Col
0ab0: 6f 72 49 74 65 6d 7d 0a 20 20 20 2a 2f 0a 20 20 orItem}. */.
0ac0: 63 72 65 61 74 65 43 6f 6c 6f 72 28 76 61 6c 2c createColor(val,
0ad0: 20 66 61 6c 6c 62 61 63 6b 4f 6e 49 6e 76 61 6c fallbackOnInval
0ae0: 69 64 20 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 id = true) {.
0af0: 20 6c 65 74 20 63 6f 6c 6f 72 20 3d 20 6e 65 77 let color = new
0b00: 20 43 6f 6c 6f 72 49 74 65 6d 28 74 68 69 73 2e ColorItem(this.
0b10: 72 65 73 6f 6c 76 65 43 6f 6c 6f 72 44 65 6c 65 resolveColorDele
0b20: 67 61 74 65 28 76 61 6c 29 2c 20 74 68 69 73 2e gate(val), this.
0b30: 66 6f 72 6d 61 74 29 3b 0a 0a 20 20 20 20 69 66 format);.. if
0b40: 20 28 21 63 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 (!color.isValid
0b50: 28 29 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 ()) {. if (
0b60: 66 61 6c 6c 62 61 63 6b 4f 6e 49 6e 76 61 6c 69 fallbackOnInvali
0b70: 64 29 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c d) {. col
0b80: 6f 72 20 3d 20 74 68 69 73 2e 67 65 74 46 61 6c or = this.getFal
0b90: 6c 62 61 63 6b 43 6f 6c 6f 72 28 29 3b 0a 20 20 lbackColor();.
0ba0: 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 2f 2a 2a }.. /**
0bb0: 0a 20 20 20 20 20 20 20 2a 20 28 43 6f 6c 6f 72 . * (Color
0bc0: 70 69 63 6b 65 72 29 20 46 69 72 65 64 20 77 68 picker) Fired wh
0bd0: 65 6e 20 74 68 65 20 63 6f 6c 6f 72 20 69 73 20 en the color is
0be0: 69 6e 76 61 6c 69 64 20 61 6e 64 20 74 68 65 20 invalid and the
0bf0: 66 61 6c 6c 62 61 63 6b 20 63 6f 6c 6f 72 20 69 fallback color i
0c00: 73 20 67 6f 69 6e 67 20 74 6f 20 62 65 20 75 73 s going to be us
0c10: 65 64 2e 0a 20 20 20 20 20 20 20 2a 0a 20 20 20 ed.. *.
0c20: 20 20 20 20 2a 20 40 65 76 65 6e 74 20 43 6f 6c * @event Col
0c30: 6f 72 70 69 63 6b 65 72 23 63 6f 6c 6f 72 70 69 orpicker#colorpi
0c40: 63 6b 65 72 49 6e 76 61 6c 69 64 0a 20 20 20 20 ckerInvalid.
0c50: 20 20 20 2a 2f 0a 20 20 20 20 20 20 74 68 69 73 */. this
0c60: 2e 63 6f 6c 6f 72 70 69 63 6b 65 72 2e 74 72 69 .colorpicker.tri
0c70: 67 67 65 72 28 27 63 6f 6c 6f 72 70 69 63 6b 65 gger('colorpicke
0c80: 72 49 6e 76 61 6c 69 64 27 2c 20 63 6f 6c 6f 72 rInvalid', color
0c90: 2c 20 76 61 6c 29 3b 0a 20 20 20 20 7d 0a 0a 20 , val);. }..
0ca0: 20 20 20 69 66 20 28 21 74 68 69 73 2e 69 73 41 if (!this.isA
0cb0: 6c 70 68 61 45 6e 61 62 6c 65 64 28 29 29 20 7b lphaEnabled()) {
0cc0: 0a 20 20 20 20 20 20 2f 2f 20 41 6c 70 68 61 20 . // Alpha
0cd0: 69 73 20 64 69 73 61 62 6c 65 64 0a 20 20 20 20 is disabled.
0ce0: 20 20 63 6f 6c 6f 72 2e 61 6c 70 68 61 20 3d 20 color.alpha =
0cf0: 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 1;. }.. re
0d00: 74 75 72 6e 20 63 6f 6c 6f 72 3b 0a 20 20 7d 0a turn color;. }.
0d10: 0a 20 20 67 65 74 46 61 6c 6c 62 61 63 6b 43 6f . getFallbackCo
0d20: 6c 6f 72 28 29 20 7b 0a 20 20 20 20 69 66 20 28 lor() {. if (
0d30: 74 68 69 73 2e 66 61 6c 6c 62 61 63 6b 20 26 26 this.fallback &&
0d40: 20 28 74 68 69 73 2e 66 61 6c 6c 62 61 63 6b 20 (this.fallback
0d50: 3d 3d 3d 20 74 68 69 73 2e 63 6f 6c 6f 72 29 29 === this.color))
0d60: 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 {. return
0d70: 74 68 69 73 2e 63 6f 6c 6f 72 3b 0a 20 20 20 20 this.color;.
0d80: 7d 0a 0a 20 20 20 20 6c 65 74 20 66 61 6c 6c 62 }.. let fallb
0d90: 61 63 6b 20 3d 20 74 68 69 73 2e 72 65 73 6f 6c ack = this.resol
0da0: 76 65 43 6f 6c 6f 72 44 65 6c 65 67 61 74 65 28 veColorDelegate(
0db0: 74 68 69 73 2e 66 61 6c 6c 62 61 63 6b 29 3b 0a this.fallback);.
0dc0: 20 20 20 20 6c 65 74 20 63 6f 6c 6f 72 20 3d 20 let color =
0dd0: 6e 65 77 20 43 6f 6c 6f 72 49 74 65 6d 28 66 61 new ColorItem(fa
0de0: 6c 6c 62 61 63 6b 2c 20 74 68 69 73 2e 66 6f 72 llback, this.for
0df0: 6d 61 74 29 3b 0a 0a 20 20 20 20 69 66 20 28 21 mat);.. if (!
0e00: 63 6f 6c 6f 72 2e 69 73 56 61 6c 69 64 28 29 29 color.isValid())
0e10: 20 7b 0a 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 {. console
0e20: 2e 77 61 72 6e 28 27 54 68 65 20 66 61 6c 6c 62 .warn('The fallb
0e30: 61 63 6b 20 63 6f 6c 6f 72 20 69 73 20 69 6e 76 ack color is inv
0e40: 61 6c 69 64 2e 20 46 61 6c 6c 69 6e 67 20 62 61 alid. Falling ba
0e50: 63 6b 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f ck to the previo
0e60: 75 73 20 63 6f 6c 6f 72 20 6f 72 20 62 6c 61 63 us color or blac
0e70: 6b 20 69 66 20 61 6e 79 2e 27 29 3b 0a 20 20 20 k if any.');.
0e80: 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 63 return this.c
0e90: 6f 6c 6f 72 20 3f 20 74 68 69 73 2e 63 6f 6c 6f olor ? this.colo
0ea0: 72 20 3a 20 6e 65 77 20 43 6f 6c 6f 72 49 74 65 r : new ColorIte
0eb0: 6d 28 27 23 30 30 30 30 30 30 27 2c 20 74 68 69 m('#000000', thi
0ec0: 73 2e 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 7d s.format);. }
0ed0: 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6c .. return col
0ee0: 6f 72 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 or;. }.. /**.
0ef0: 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 43 6f * @returns {Co
0f00: 6c 6f 72 49 74 65 6d 7d 0a 20 20 20 2a 2f 0a 20 lorItem}. */.
0f10: 20 61 73 73 75 72 65 43 6f 6c 6f 72 28 29 20 7b assureColor() {
0f20: 0a 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 68 . if (!this.h
0f30: 61 73 43 6f 6c 6f 72 28 29 29 20 7b 0a 20 20 20 asColor()) {.
0f40: 20 20 20 74 68 69 73 2e 63 6f 6c 6f 72 20 3d 20 this.color =
0f50: 74 68 69 73 2e 67 65 74 46 61 6c 6c 62 61 63 6b this.getFallback
0f60: 43 6f 6c 6f 72 28 29 3b 0a 20 20 20 20 7d 0a 0a Color();. }..
0f70: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
0f80: 63 6f 6c 6f 72 3b 0a 20 20 7d 0a 0a 20 20 2f 2a color;. }.. /*
0f90: 2a 0a 20 20 20 2a 20 44 65 6c 65 67 61 74 65 73 *. * Delegates
0fa0: 20 74 68 65 20 63 6f 6c 6f 72 20 72 65 73 6f 6c the color resol
0fb0: 75 74 69 6f 6e 20 74 6f 20 74 68 65 20 63 6f 6c ution to the col
0fc0: 6f 72 70 69 63 6b 65 72 20 65 78 74 65 6e 73 69 orpicker extensi
0fd0: 6f 6e 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 ons.. *. * @
0fe0: 70 61 72 61 6d 20 7b 53 74 72 69 6e 67 7c 2a 7d param {String|*}
0ff0: 20 63 6f 6c 6f 72 0a 20 20 20 2a 20 40 70 61 72 color. * @par
1000: 61 6d 20 7b 62 6f 6f 6c 65 61 6e 7d 20 72 65 61 am {boolean} rea
1010: 6c 43 6f 6c 6f 72 20 69 66 20 74 72 75 65 2c 20 lColor if true,
1020: 74 68 65 20 63 6f 6c 6f 72 20 73 68 6f 75 6c 64 the color should
1030: 20 72 65 73 6f 6c 76 65 20 69 6e 74 6f 20 61 20 resolve into a
1040: 72 65 61 6c 20 28 6e 6f 74 20 6e 61 6d 65 64 29 real (not named)
1050: 20 63 6f 6c 6f 72 20 63 6f 64 65 0a 20 20 20 2a color code. *
1060: 20 40 72 65 74 75 72 6e 73 20 7b 43 6f 6c 6f 72 @returns {Color
1070: 49 74 65 6d 7c 53 74 72 69 6e 67 7c 2a 7c 6e 75 Item|String|*|nu
1080: 6c 6c 7d 0a 20 20 20 2a 2f 0a 20 20 72 65 73 6f ll}. */. reso
1090: 6c 76 65 43 6f 6c 6f 72 44 65 6c 65 67 61 74 65 lveColorDelegate
10a0: 28 63 6f 6c 6f 72 2c 20 72 65 61 6c 43 6f 6c 6f (color, realColo
10b0: 72 20 3d 20 74 72 75 65 29 20 7b 0a 20 20 20 20 r = true) {.
10c0: 6c 65 74 20 65 78 74 52 65 73 6f 6c 76 65 64 43 let extResolvedC
10d0: 6f 6c 6f 72 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 olor = false;..
10e0: 20 20 20 24 2e 65 61 63 68 28 74 68 69 73 2e 63 $.each(this.c
10f0: 6f 6c 6f 72 70 69 63 6b 65 72 2e 65 78 74 65 6e olorpicker.exten
1100: 73 69 6f 6e 73 2c 20 66 75 6e 63 74 69 6f 6e 20 sions, function
1110: 28 6e 61 6d 65 2c 20 65 78 74 29 20 7b 0a 20 20 (name, ext) {.
1120: 20 20 20 20 69 66 20 28 65 78 74 52 65 73 6f 6c if (extResol
1130: 76 65 64 43 6f 6c 6f 72 20 21 3d 3d 20 66 61 6c vedColor !== fal
1140: 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f se) {. //
1150: 20 73 6b 69 70 20 69 66 20 72 65 73 6f 6c 76 65 skip if resolve
1160: 64 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e d. return
1170: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;. }.
1180: 65 78 74 52 65 73 6f 6c 76 65 64 43 6f 6c 6f 72 extResolvedColor
1190: 20 3d 20 65 78 74 2e 72 65 73 6f 6c 76 65 43 6f = ext.resolveCo
11a0: 6c 6f 72 28 63 6f 6c 6f 72 2c 20 72 65 61 6c 43 lor(color, realC
11b0: 6f 6c 6f 72 29 3b 0a 20 20 20 20 7d 29 3b 0a 0a olor);. });..
11c0: 20 20 20 20 72 65 74 75 72 6e 20 65 78 74 52 65 return extRe
11d0: 73 6f 6c 76 65 64 43 6f 6c 6f 72 20 3f 20 65 78 solvedColor ? ex
11e0: 74 52 65 73 6f 6c 76 65 64 43 6f 6c 6f 72 20 3a tResolvedColor :
11f0: 20 63 6f 6c 6f 72 3b 0a 20 20 7d 0a 0a 20 20 2f color;. }.. /
1200: 2a 2a 0a 20 20 20 2a 20 43 68 65 63 6b 73 20 69 **. * Checks i
1210: 66 20 74 68 65 72 65 20 69 73 20 61 20 63 6f 6c f there is a col
1220: 6f 72 20 6f 62 6a 65 63 74 2c 20 74 68 61 74 20 or object, that
1230: 69 74 20 69 73 20 76 61 6c 69 64 20 61 6e 64 20 it is valid and
1240: 69 74 20 69 73 20 6e 6f 74 20 61 20 66 61 6c 6c it is not a fall
1250: 62 61 63 6b 0a 20 20 20 2a 20 40 72 65 74 75 72 back. * @retur
1260: 6e 73 20 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 ns {boolean}.
1270: 2a 2f 0a 20 20 69 73 49 6e 76 61 6c 69 64 43 6f */. isInvalidCo
1280: 6c 6f 72 28 29 20 7b 0a 20 20 20 20 72 65 74 75 lor() {. retu
1290: 72 6e 20 21 74 68 69 73 2e 68 61 73 43 6f 6c 6f rn !this.hasColo
12a0: 72 28 29 20 7c 7c 20 21 74 68 69 73 2e 63 6f 6c r() || !this.col
12b0: 6f 72 2e 69 73 56 61 6c 69 64 28 29 3b 0a 20 20 or.isValid();.
12c0: 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 }.. /**. * Re
12d0: 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 74 68 turns true if th
12e0: 65 20 75 73 65 41 6c 70 68 61 20 6f 70 74 69 6f e useAlpha optio
12f0: 6e 20 69 73 20 65 78 61 63 74 6c 79 20 74 72 75 n is exactly tru
1300: 65 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 e, false otherwi
1310: 73 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 se. * @returns
1320: 20 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 2a 2f {boolean}. */
1330: 0a 20 20 69 73 41 6c 70 68 61 45 6e 61 62 6c 65 . isAlphaEnable
1340: 64 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e d() {. return
1350: 20 28 74 68 69 73 2e 63 6f 6c 6f 72 70 69 63 6b (this.colorpick
1360: 65 72 2e 6f 70 74 69 6f 6e 73 2e 75 73 65 41 6c er.options.useAl
1370: 70 68 61 20 21 3d 3d 20 66 61 6c 73 65 29 3b 0a pha !== false);.
1380: 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
1390: 52 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 Returns true if
13a0: 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6c 6f the current colo
13b0: 72 20 6f 62 6a 65 63 74 20 69 73 20 61 6e 20 69 r object is an i
13c0: 6e 73 74 61 6e 63 65 20 6f 66 20 43 6f 6c 6f 72 nstance of Color
13d0: 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 , false otherwis
13e0: 65 2e 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 e.. * @returns
13f0: 20 7b 62 6f 6f 6c 65 61 6e 7d 0a 20 20 20 2a 2f {boolean}. */
1400: 0a 20 20 68 61 73 43 6f 6c 6f 72 28 29 20 7b 0a . hasColor() {.
1410: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
1420: 63 6f 6c 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 color instanceof
1430: 20 43 6f 6c 6f 72 49 74 65 6d 3b 0a 20 20 7d 0a ColorItem;. }.
1440: 7d 0a 0a 65 78 70 6f 72 74 20 64 65 66 61 75 6c }..export defaul
1450: 74 20 43 6f 6c 6f 72 48 61 6e 64 6c 65 72 3b 0a t ColorHandler;.