aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Worth <rdworth@gmail.com>2008-11-12 01:01:05 +0000
committerRichard Worth <rdworth@gmail.com>2008-11-12 01:01:05 +0000
commit79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb (patch)
tree3af0625909fab71f750ab30e61a59b0ddbb8a877
parentfde1cfb4e414b16185680ac6c40b2bb804fb11fd (diff)
downloadjquery-ui-79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb.tar.gz
jquery-ui-79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb.zip
Moved colorpicker to experimental branch
-rw-r--r--demos/functional/templates/ui.colorpicker.html41
-rw-r--r--tests/visual/colorpicker.html357
-rw-r--r--ui/ui.colorpicker.js473
3 files changed, 0 insertions, 871 deletions
diff --git a/demos/functional/templates/ui.colorpicker.html b/demos/functional/templates/ui.colorpicker.html
deleted file mode 100644
index 844b6266f..000000000
--- a/demos/functional/templates/ui.colorpicker.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<script type="text/javascript">
-
- var model = {
-
- renderAt: '#containerDemo',
-
- title: 'Colorpicker Demos',
-
- demos: [
-
- {
- title: 'Inline colorpicker',
- desc: 'With few lines of code you could build a colorpicker. You can try more options on the fly!',
- html: '<div id="colorpicker" />',
- destroy: '$("#colorpicker").colorpicker("destroy");',
- options: [
- { desc: 'Make a colorpicker', source: '$("#colorpicker").colorpicker({flat:true});' }
- ]
- },
-
- {
- title: 'Triggered colorpicker',
- desc: 'With few lines of code you could build a colorpicker. You can try more options on the fly!',
- html: '<input id="colorpicker2" /><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>',
- destroy: '$("#colorpicker2").colorpicker("destroy");',
- options: [
- { desc: 'Make a colorpicker', source: '$("#colorpicker2").colorpicker( {submit: function(e,ui) { $("#colorpicker2").val(ui.hex);} });' },
- { desc: 'Fade in/out a colorpicker', source: '$("#colorpicker2").colorpicker( {show: function (e,ui) { $(this).data("colorpicker").picker.fadeIn(500);return false; }, hide: function (e,ui) { $(this).data("colorpicker").picker.fadeOut(500);return false; }, change: function(e,ui) { $("#colorpicker2").val(ui.hex); } });' }
- ]
- }
-
- ]
- };
-
- $(function(){
-
- uiRenderDemo(model);
-
- });
-
-</script> \ No newline at end of file
diff --git a/tests/visual/colorpicker.html b/tests/visual/colorpicker.html
deleted file mode 100644
index d1dc0a491..000000000
--- a/tests/visual/colorpicker.html
+++ /dev/null
@@ -1,357 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-
- <title>ColorPicker</title>
-
-<style type="text/css" media="screen">
-
-body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
- margin:0;
- padding:0;
-}
-table {
- border-collapse:collapse;
- border-spacing:0;
-}
-fieldset,img {
- border:0;
-}
-address,caption,cite,code,dfn,em,strong,th,var {
- font-style:normal;
- font-weight:normal;
-}
-ol,ul {
- list-style:none;
-}
-caption,th {
- text-align:left;
-}
-h1,h2,h3,h4,h5,h6 {
- font-size:100%;
- font-weight:normal;
-}
-q:before,q:after {
- content:'';
-}
-abbr,acronym { border:0;
-}
-html, body {
- background-color: #fff;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 12px;
- line-height: 18px;
- color: #52697E;
-}
-body {
- text-align: center;
- overflow: auto;
-}
-.wrapper {
- width: 700px;
- margin: 0 auto;
- text-align: left;
-}
-h1 {
- font-size: 21px;
- height: 47px;
- line-height: 47px;
- text-transform: uppercase;
-}
-.navigationTabs {
- height: 23px;
- line-height: 23px;
- border-bottom: 1px solid #ccc;
-}
-.navigationTabs li {
- float: left;
- height: 23px;
- line-height: 23px;
- padding-right: 3px;
-}
-.navigationTabs li a{
- float: left;
- dispaly: block;
- height: 23px;
- line-height: 23px;
- padding: 0 10px;
- overflow: hidden;
- color: #52697E;
- background-color: #eee;
- position: relative;
- text-decoration: none;
-}
-.navigationTabs li a:hover {
- background-color: #f0f0f0;
-}
-.navigationTabs li a.active {
- background-color: #fff;
- border: 1px solid #ccc;
- border-bottom: 0px solid;
-}
-.tabsContent {
- border: 1px solid #ccc;
- border-top: 0px solid;
- width: 698px;
- overflow: hidden;
-}
-.tab {
- padding: 16px;
- display: block;
-}
-.tab h2 {
- font-weight: bold;
- font-size: 16px;
-}
-.tab h3 {
- font-weight: bold;
- font-size: 14px;
- margin-top: 20px;
-}
-.tab p {
- margin-top: 16px;
- clear: both;
-}
-.tab ul {
- margin-top: 16px;
- list-style: disc;
-}
-.tab li {
- margin: 10px 0 0 35px;
-}
-.tab a {
- color: #8FB0CF;
-}
-.tab strong {
- font-weight: bold;
-}
-.tab pre {
- font-size: 11px;
- margin-top: 20px;
- width: 668px;
- overflow: auto;
- clear: both;
-}
-.tab table {
- width: 100%;
-}
-.tab table td {
- padding: 6px 10px 6px 0;
- vertical-align: top;
-}
-.tab dt {
- margin-top: 16px;
-}
-
-#colorSelector {
- position: relative;
- width: 36px;
- height: 36px;
- background: url(../../themes/default/images/select.png);
-}
-#colorSelector div {
- position: absolute;
- top: 3px;
- left: 3px;
- width: 30px;
- height: 30px;
- background: url(../../themes/default/images/select.png) center;
-}
-#colorSelector2 {
- position: absolute;
- top: 0;
- left: 0;
- width: 36px;
- height: 36px;
- background: url(../../themes/default/images/select2.png);
-}
-#colorSelector2 div {
- position: absolute;
- top: 4px;
- left: 4px;
- width: 28px;
- height: 28px;
- background: url(../../themes/default/images/select2.png) center;
-}
-#colorpickerHolder2 {
- top: 32px;
- left: 0;
- width: 356px;
- height: 0;
- overflow: hidden;
- position: absolute;
-}
-#colorpickerHolder2 .ui-colorpicker {
- background-image: url(../../themes/default/images/custom_background.png);
- position: absolute;
- bottom: 0;
- left: 0;
-}
-#colorpickerHolder2 .ui-colorpicker-hue div {
- background-image: url(../../themes/default/images/custom_indic.gif);
-}
-#colorpickerHolder2 .ui-colorpicker-hex {
- background-image: url(../../themes/default/images/custom_hex.png);
-}
-#colorpickerHolder2 .ui-colorpicker-rgb-r {
- background-image: url(../../themes/default/images/custom_rgb_r.png);
-}
-#colorpickerHolder2 .ui-colorpicker-rgb-g {
- background-image: url(../../themes/default/images/custom_rgb_g.png);
-}
-#colorpickerHolder2 .ui-colorpicker-rgb-b {
- background-image: url(../../themes/default/images/custom_rgb_b.png);
-}
-#colorpickerHolder2 .ui-colorpicker-hsb-s {
- background-image: url(../../themes/default/images/custom_hsb_s.png);
- display: none;
-}
-#colorpickerHolder2 .ui-colorpicker-hsb-h {
- background-image: url(../../themes/default/images/custom_hsb_h.png);
- display: none;
-}
-#colorpickerHolder2 .ui-colorpicker-hsb-b {
- background-image: url(../../themes/default/images/custom_hsb_b.png);
- display: none;
-}
-#colorpickerHolder2 .ui-colorpicker-submit {
- background-image: url(../../themes/default/images/colorpicker_submit.png);
-}
-#colorpickerHolder2 .ui-colorpicker input {
- color: #778398;
-}
-#customWidget {
- position: relative;
- height: 36px;
-}
-
-
-</style>
-
-<link rel="stylesheet" href="../../themes/default/ui.all.css" type="text/css" media="screen" title="no title" charset="utf-8">
-
-<script type="text/javascript" src="../../jquery-1.2.6.js"></script>
-<script type="text/javascript" src="../../ui/ui.core.js"></script>
-<script type="text/javascript" src="../../ui/ui.colorpicker.js"></script>
-
-<script type="text/javascript">
-
-$(document).ready(function() {
-
- $('#colorpickerHolder').colorpicker({ flat: true });
- $('#colorpickerHolder2').colorpicker({
- flat: true,
- color: '#00ff00',
- submit: function(e, ui) {
- $('#colorSelector2 div').css('backgroundColor', '#' + ui.hex);
- }
- });
- $('#colorpickerHolder2>div').css('position', 'absolute');
- var widt = false;
- $('#colorSelector2').bind('click', function() {
- $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500);
- widt = !widt;
- });
- $('#colorpickerField1').colorpicker({
- submit: function(e, ui) {
- $('#colorpickerField1').val(ui.hex);
- },
- beforeShow: function (e, ui) {
- $(this).colorpicker("setColor", this.value);
- }
- })
- .bind('keyup', function(){
- $(this).colorpicker("setColor", this.value);
- });
- $('#colorSelector').colorpicker({
- color: '#0000ff',
- show: function (e, ui) {
- $(this).data("colorpicker").picker.fadeIn(500);
- return false;
- },
- hide: function (e, ui) {
- $(this).data("colorpicker").picker.fadeOut(500);
- return false;
- },
- change: function (e, ui) {
- $('#colorSelector div').css('backgroundColor', '#' + ui.hex);
- }
- });
-
-});
-
-</script>
-
-
-</head>
-<body>
- <div class="wrapper">
- <h1>Color Picker</h1>
- <ul class="navigationTabs">
- <li><a href="#about" rel="about">About</a></li>
- </ul>
- <div class="tabsContent">
- <div class="tab">
- <h2>About</h2>
- <p>A simple component to select color in the same way you select color in Adobe Photoshop</p>
- <h3>Features</h3>
- <ul>
- <li>Flat mode - as element in page</li>
- <li>Powerful controls for color selection</li>
- <li>Easy to customize the look by changing some images</li>
- <li>Fits into the viewport</li>
- </ul>
- <h3>Examples</h3>
- <p>Flat mode.</p>
- <p id="colorpickerHolder">
- </p>
- <pre>
-$('#colorpickerHolder').ColorPicker({flat: true});
- </pre>
- <p>Custom skin and using flat mode to display the color picker in a custom widget.</p>
- <div id="customWidget">
- <div id="colorSelector2"><div style="background-color: #00ff00"></div></div>
- <div id="colorpickerHolder2">
- </div>
- </div>
-
- <p>Attached to an text field and using callback functions to update the color with field's value and set the value back in the field by submiting the color.</p>
- <p><input type="text" maxlength="6" size="6" id="colorpickerField1" value="00ff00" /></p>
- <pre>
-$('#colorpickerField1').ColorPicker({
- onSubmit: function(hsb, hex, rgb) {
- $('#colorpickerField1').val(hex);
- },
- onBeforeShow: function () {
- $(this).ColorPickerSetColor(this.value);
- }
-})
-.bind('keyup', function(){
- $(this).ColorPickerSetColor(this.value);
-});
-</pre>
- <p>Attached to DOMElement and using callbacks to live preview the color and adding animation.</p>
- <p>
- <div id="colorSelector"><div style="background-color: #0000ff"></div></div>
- </p>
- <pre>
-$('#colorSelector').ColorPicker({
- color: '#0000ff',
- onShow: function (colpkr) {
- $(colpkr).fadeIn(500);
- return false;
- },
- onHide: function (colpkr) {
- $(colpkr).fadeOut(500);
- return false;
- },
- onChange: function (hsb, hex, rgb) {
- $('#colorSelector div').css('backgroundColor', '#' + hex);
- }
-});
-</pre>
- </div>
- </div>
- </div>
-</body>
-</html>
diff --git a/ui/ui.colorpicker.js b/ui/ui.colorpicker.js
deleted file mode 100644
index 0039e8e71..000000000
--- a/ui/ui.colorpicker.js
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- * jQuery UI Colorpicker @VERSION
- *
- * Copyright (c) 2008 Stefan Petre, Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Colorpicker
- *
- * Depends:
- * ui.core.js
- */
-(function($) {
-
-$.widget("ui.colorpicker", {
-
- _init: function() {
-
- this.charMin = 65;
- var o = this.options, self = this,
- tpl = '<div class="ui-colorpicker clearfix"><div class="ui-colorpicker-color"><div><div></div></div></div><div class="ui-colorpicker-hue"><div></div></div><div class="ui-colorpicker-new-color"></div><div class="ui-colorpicker-current-color"></div><div class="ui-colorpicker-hex"><label for="ui-colorpicker-hex" title="hex"></label><input type="text" maxlength="6" size="6" /></div><div class="ui-colorpicker-rgb-r ui-colorpicker-field"><label for="ui-colorpicker-rgb-r"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-rgb-g ui-colorpicker-field"><label for="ui-colorpicker-rgb-g"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-rgb-b ui-colorpicker-field"><label for="ui-colorpicker-rgb-b"</label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-h ui-colorpicker-field"><label for="ui-colorpicker-hsb-h"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-s ui-colorpicker-field"><label for="ui-colorpicker-hsb-s"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-b ui-colorpicker-field"><label for="ui-colorpicker-hsb-b"></label><input type="text" maxlength="3" size="2" /><span></span></div><button class="ui-colorpicker-submit ui-default-state" name="submit" type="button">Done</button></div>';
-
- if (typeof o.color == 'string') {
- this.color = this._HexToHSB(o.color);
- } else if (o.color.r != undefined && o.color.g != undefined && o.color.b != undefined) {
- this.color = this._RGBToHSB(o.color);
- } else if (o.color.h != undefined && o.color.s != undefined && o.color.b != undefined) {
- this.color = this._fixHSB(o.color);
- } else {
- return this;
- }
-
- this.origColor = this.color;
- this.picker = $(tpl);
-
- if (o.flat) {
- this.picker.appendTo(this.element).show();
- } else {
- this.picker.appendTo(document.body);
- }
-
- this.fields = this.picker.find('input')
- .bind('keydown', function(e) { return self._keyDown.call(self, e); })
- .bind('change', function(e) { return self._change.call(self, e); })
- .bind('blur', function(e) { return self._blur.call(self, e); })
- .bind('focus', function(e) { return self._focus.call(self, e); });
-
- this.picker.find('span').bind('mousedown', function(e) { return self._downIncrement.call(self, e); });
-
- this.selector = this.picker.find('div.ui-colorpicker-color').bind('mousedown', function(e) { return self._downSelector.call(self, e); });
- this.selectorIndic = this.selector.find('div div');
- this.hue = this.picker.find('div.ui-colorpicker-hue div');
- this.picker.find('div.ui-colorpicker-hue').bind('mousedown', function(e) { return self._downHue.call(self, e); });
-
- this.newColor = this.picker.find('div.ui-colorpicker-new-color');
- this.currentColor = this.picker.find('div.ui-colorpicker-current-color');
-
- this.picker.find('.ui-colorpicker-submit')
- .bind('mouseenter', function(e) { return self._enterSubmit.call(self, e); })
- .bind('mouseleave', function(e) { return self._leaveSubmit.call(self, e); })
- .bind('click', function(e) { return self._clickSubmit.call(self, e); });
-
- this._fillRGBFields(this.color);
- this._fillHSBFields(this.color);
- this._fillHexFields(this.color);
- this._setHue(this.color);
- this._setSelector(this.color);
- this._setCurrentColor(this.color);
- this._setNewColor(this.color);
-
- if (o.flat) {
- this.picker.css({
- position: 'relative',
- display: 'block'
- });
- } else {
- $(this.element).bind(o.eventName+".colorpicker", function(e) { return self._show.call(self, e); });
- }
-
- },
-
- destroy: function() {
-
- this.picker.remove();
- this.element.removeData("colorpicker").unbind(".colorpicker");
-
- },
-
- _fillRGBFields: function(hsb) {
- var rgb = this._HSBToRGB(hsb);
- this.fields
- .eq(1).val(rgb.r).end()
- .eq(2).val(rgb.g).end()
- .eq(3).val(rgb.b).end();
- },
- _fillHSBFields: function(hsb) {
- this.fields
- .eq(4).val(hsb.h).end()
- .eq(5).val(hsb.s).end()
- .eq(6).val(hsb.b).end();
- },
- _fillHexFields: function (hsb) {
- this.fields
- .eq(0).val(this._HSBToHex(hsb)).end();
- },
- _setSelector: function(hsb) {
- this.selector.css('backgroundColor', '#' + this._HSBToHex({h: hsb.h, s: 100, b: 100}));
- this.selectorIndic.css({
- left: parseInt(150 * hsb.s/100, 10),
- top: parseInt(150 * (100-hsb.b)/100, 10)
- });
- },
- _setHue: function(hsb) {
- this.hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
- },
- _setCurrentColor: function(hsb) {
- this.currentColor.css('backgroundColor', '#' + this._HSBToHex(hsb));
- },
- _setNewColor: function(hsb) {
- this.newColor.css('backgroundColor', '#' + this._HSBToHex(hsb));
- },
- _keyDown: function(e) {
- var pressedKey = e.charCode || e.keyCode || -1;
- if ((pressedKey >= this.charMin && pressedKey <= 90) || pressedKey == 32) {
- return false;
- }
- },
- _change: function(e, target) {
-
- var col;
- target = target || e.target;
- if (target.parentNode.className.indexOf('-hex') > 0) {
- this.color = col = this._HexToHSB(this.value);
- this._fillRGBFields(col.color);
- this._fillHSBFields(col);
- } else if (target.parentNode.className.indexOf('-hsb') > 0) {
- this.color = col = this._fixHSB({
- h: parseInt(this.fields.eq(4).val(), 10),
- s: parseInt(this.fields.eq(5).val(), 10),
- b: parseInt(this.fields.eq(6).val(), 10)
- });
- this._fillRGBFields(col);
- this._fillHexFields(col);
- } else {
- this.color = col = this._RGBToHSB(this._fixRGB({
- r: parseInt(this.fields.eq(1).val(), 10),
- g: parseInt(this.fields.eq(2).val(), 10),
- b: parseInt(this.fields.eq(3).val(), 10)
- }));
- this._fillHexFields(col);
- this._fillHSBFields(col);
- }
- this._setSelector(col);
- this._setHue(col);
- this._setNewColor(col);
-
- this._trigger('change', e, { options: this.options, hsb: col, hex: this._HSBToHex(col), rgb: this._HSBToRGB(col) });
- },
- _blur: function(e) {
-
- var col = this.color;
- this._fillRGBFields(col);
- this._fillHSBFields(col);
- this._fillHexFields(col);
- this._setHue(col);
- this._setSelector(col);
- this._setNewColor(col);
- this.fields.parent().removeClass('ui-colorpicker-focus');
-
- },
- _focus: function(e) {
-
- this.charMin = e.target.parentNode.className.indexOf('-hex') > 0 ? 70 : 65;
- this.fields.parent().removeClass('ui-colorpicker-focus');
- $(e.target.parentNode).addClass('ui-colorpicker-focus');
-
- },
- _downIncrement: function(e) {
-
- var field = $(e.target).parent().find('input').focus(), self = this;
- this.currentIncrement = {
- el: $(e.target).parent().addClass('ui-colorpicker-slider'),
- max: e.target.parentNode.className.indexOf('-hsb-h') > 0 ? 360 : (e.target.parentNode.className.indexOf('-hsb') > 0 ? 100 : 255),
- y: e.pageY,
- field: field,
- val: parseInt(field.val(), 10)
- };
- $(document).bind('mouseup.cpSlider', function(e) { return self._upIncrement.call(self, e); });
- $(document).bind('mousemove.cpSlider', function(e) { return self._moveIncrement.call(self, e); });
- return false;
-
- },
- _moveIncrement: function(e) {
- this.currentIncrement.field.val(Math.max(0, Math.min(this.currentIncrement.max, parseInt(this.currentIncrement.val + e.pageY - this.currentIncrement.y, 10))));
- this._change.apply(this, [e, this.currentIncrement.field.get(0)]);
- return false;
- },
- _upIncrement: function(e) {
- this.currentIncrement.el.removeClass('ui-colorpicker-slider').find('input').focus();
- this._change.apply(this, [e, this.currentIncrement.field.get(0)]);
- $(document).unbind('mouseup.cpSlider');
- $(document).unbind('mousemove.cpSlider');
- return false;
- },
- _downHue: function(e) {
-
- this.currentHue = {
- y: this.picker.find('div.ui-colorpicker-hue').offset().top
- };
-
- this._change.apply(this, [e, this
- .fields
- .eq(4)
- .val(parseInt(360*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentHue.y))))/150, 10))
- .get(0)]);
-
- var self = this;
- $(document).bind('mouseup.cpSlider', function(e) { return self._upHue.call(self, e); });
- $(document).bind('mousemove.cpSlider', function(e) { return self._moveHue.call(self, e); });
- return false;
-
- },
- _moveHue: function(e) {
-
- this._change.apply(this, [e, this
- .fields
- .eq(4)
- .val(parseInt(360*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentHue.y))))/150, 10))
- .get(0)]);
-
- return false;
-
- },
- _upHue: function(e) {
- $(document).unbind('mouseup.cpSlider');
- $(document).unbind('mousemove.cpSlider');
- return false;
- },
- _downSelector: function(e) {
-
- var self = this;
- this.currentSelector = {
- pos: this.picker.find('div.ui-colorpicker-color').offset()
- };
-
- this._change.apply(this, [e, this
- .fields
- .eq(6)
- .val(parseInt(100*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentSelector.pos.top))))/150, 10))
- .end()
- .eq(5)
- .val(parseInt(100*(Math.max(0,Math.min(150,(e.pageX - this.currentSelector.pos.left))))/150, 10))
- .get(0)
- ]);
- $(document).bind('mouseup.cpSlider', function(e) { return self._upSelector.call(self, e); });
- $(document).bind('mousemove.cpSlider', function(e) { return self._moveSelector.call(self, e); });
- return false;
-
- },
- _moveSelector: function(e) {
-
- this._change.apply(this, [e, this
- .fields
- .eq(6)
- .val(parseInt(100*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentSelector.pos.top))))/150, 10))
- .end()
- .eq(5)
- .val(parseInt(100*(Math.max(0,Math.min(150,(e.pageX - this.currentSelector.pos.left))))/150, 10))
- .get(0)
- ]);
- return false;
-
- },
- _upSelector: function(e) {
- $(document).unbind('mouseup.cpSlider');
- $(document).unbind('mousemove.cpSlider');
- return false;
- },
- _enterSubmit: function(e) {
- this.picker.find('.ui-colorpicker-submit').addClass('ui-colorpicker-focus');
- },
- _leaveSubmit: function(e) {
- this.picker.find('.ui-colorpicker-submit').removeClass('ui-colorpicker-focus');
- },
- _clickSubmit: function(e) {
-
- var col = this.color;
- this.origColor = col;
- this._setCurrentColor(col);
-
- this._trigger("submit", e, { options: this.options, hsb: col, hex: this._HSBToHex(col), rgb: this._HSBToRGB(col) });
- return false;
-
- },
- _show: function(e) {
-
- this._trigger("beforeShow", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) });
-
- var pos = this.element.offset();
- var viewPort = this._getScroll();
- var top = pos.top + this.element[0].offsetHeight;
- var left = pos.left;
- if (top + 176 > viewPort.t + Math.min(viewPort.h,viewPort.ih)) {
- top -= this.element[0].offsetHeight + 176;
- }
- if (left + 356 > viewPort.l + Math.min(viewPort.w,viewPort.iw)) {
- left -= 356;
- }
- this.picker.css({left: left + 'px', top: top + 'px'});
- if (this._trigger("show", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) }) != false) {
- this.picker.show();
- }
-
- var self = this;
- $(document).bind('mousedown.colorpicker', function(e) { return self._hide.call(self, e); });
- return false;
-
- },
- _hide: function(e) {
-
- if (!this._isChildOf(this.picker[0], e.target, this.picker[0])) {
- if (this._trigger("hide", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) }) != false) {
- this.picker.hide();
- }
- $(document).unbind('mousedown.colorpicker');
- }
-
- },
- _isChildOf: function(parentEl, el, container) {
- if (parentEl == el) {
- return true;
- }
- if (parentEl.contains && !$.browser.safari) {
- return parentEl.contains(el);
- }
- if ( parentEl.compareDocumentPosition ) {
- return !!(parentEl.compareDocumentPosition(el) & 16);
- }
- var prEl = el.parentNode;
- while(prEl && prEl != container) {
- if (prEl == parentEl)
- return true;
- prEl = prEl.parentNode;
- }
- return false;
- },
- _getScroll: function() {
- var t,l,w,h,iw,ih;
- if (document.documentElement) {
- t = document.documentElement.scrollTop;
- l = document.documentElement.scrollLeft;
- w = document.documentElement.scrollWidth;
- h = document.documentElement.scrollHeight;
- } else {
- t = document.body.scrollTop;
- l = document.body.scrollLeft;
- w = document.body.scrollWidth;
- h = document.body.scrollHeight;
- }
- iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
- ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
- return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
- },
- _fixHSB: function(hsb) {
- return {
- h: Math.min(360, Math.max(0, hsb.h)),
- s: Math.min(100, Math.max(0, hsb.s)),
- b: Math.min(100, Math.max(0, hsb.b))
- };
- },
- _fixRGB: function(rgb) {
- return {
- r: Math.min(255, Math.max(0, rgb.r)),
- g: Math.min(255, Math.max(0, rgb.g)),
- b: Math.min(255, Math.max(0, rgb.b))
- };
- },
- _HexToRGB: function (hex) {
- var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
- return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
- },
- _HexToHSB: function(hex) {
- return this._RGBToHSB(this._HexToRGB(hex));
- },
- _RGBToHSB: function(rgb) {
- var hsb = {};
- hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
- hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
- hsb.b = Math.round((hsb.b /255)*100);
- if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
- else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
- else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60 + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
- else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
- else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
- else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
- else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
- else hsb.h = 0;
- hsb.h = Math.round(hsb.h);
- return hsb;
- },
- _HSBToRGB: function(hsb) {
- var rgb = {};
- var h = Math.round(hsb.h);
- var s = Math.round(hsb.s*255/100);
- var v = Math.round(hsb.b*255/100);
- if(s == 0) {
- rgb.r = rgb.g = rgb.b = v;
- } else {
- var t1 = v;
- var t2 = (255-s)*v/255;
- var t3 = (t1-t2)*(h%60)/60;
- if(h==360) h = 0;
- if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3;}
- else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3;}
- else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3;}
- else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3;}
- else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3;}
- else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3;}
- else {rgb.r=0; rgb.g=0; rgb.b=0;}
- }
- return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
- },
- _RGBToHex: function(rgb) {
- var hex = [
- rgb.r.toString(16),
- rgb.g.toString(16),
- rgb.b.toString(16)
- ];
- $.each(hex, function (nr, val) {
- if (val.length == 1) {
- hex[nr] = '0' + val;
- }
- });
- return hex.join('');
- },
- _HSBToHex: function(hsb) {
- return this._RGBToHex(this._HSBToRGB(hsb));
- },
- setColor: function(col) {
- if (typeof col == 'string') {
- col = this._HexToHSB(col);
- } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
- col = this._RGBToHSB(col);
- } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
- col = this._fixHSB(col);
- } else {
- return this;
- }
-
- this.color = col;
- this.origColor = col;
- this._fillRGBFields(col);
- this._fillHSBFields(col);
- this._fillHexFields(col);
- this._setHue(col);
- this._setSelector(col);
- this._setCurrentColor(col);
- this._setNewColor(col);
-
- }
-
-});
-
-$.extend($.ui.colorpicker, {
- version: "@VERSION",
- defaults: {
- eventName: 'click',
- color: 'ff0000',
- flat: false
- }
-});
-
-})(jQuery);